程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> radius-Radius協議中的Response Authenticator字段MD5加密如何理解?

radius-Radius協議中的Response Authenticator字段MD5加密如何理解?

編輯:編程綜合問答
Radius協議中的Response Authenticator字段MD5加密如何理解?

ResponseAuth = MD5(Code+ID+Length+RequestAuth+Attributes+Secret)

3個問題:
1)公式中的加號是將各部分轉換成十六進制相加嘛?
2)公式中的Attributes具體意義?(一封應答報文中含有多個Attributes,長短不一,是將這些Attributes分別相加還是拓展成字符串連接起來,又或者是只將Attributes的type相加?)
3)Secret的來源是?是否是radius服務器和認證設備(交換機等)約定好了就可以,長度是多少?

跪求各位大神,不勝感激

舉例:rfc2865標准中有這麼個例子

公共密鑰Secret=“xyzzy5461”

請求報文如下:
01 00 00 38 0f 40 3f 94 73 97 80 57 bd 83 d5 cb
98 f4 22 7a 01 06 6e 65 6d 6f 02 12 0d be 70 8d
93 d4 13 ce 31 96 e4 3f 78 2a 0a ee 04 06 c0 a8
01 10 05 06 00 00 00 03
請求報文分析如下:
1 Code = Access-Request (1)
1 ID = 0
2 Length = 56
16 Request Authenticator

  Attributes:
   6  User-Name = "nemo"
  18  User-Password
   6  NAS-IP-Address = 192.168.1.16
   6  NAS-Port = 3

應答報文如下:

02 00 00 26 86 fe 22 0e 76 24 ba 2a 10 05 f6 bf
9b 55 e0 b2 06 06 00 00 00 01 0f 06 00 00 00 00
0e 06 c0 a8 01 03
應答報文分析入下:
1 Code = Access-Accept (2)
1 ID = 0 (same as in Access-Request)
2 Length = 38
16 Response Authenticator

  Attributes:
   6  Service-Type (6) = Login (1)
   6  Login-Service (15) = Telnet (0)
   6  Login-IP-Host (14) = 192.168.1.3

請問如何從請求報文推算出應答報文的16字節Response Authenticator?

最佳回答:


自己解決了……
公式中的加號表示:連接
公式中的Attributes具體意義:所有Attributes組成的報文,原本是多少就是多少,不需做任何更改和運算
Secret的來源是:公共秘鑰,radius服務器和客戶端(或者中繼設備)預定好並保持一致

題中的結果已驗證,應答報文的Response Authenticator計算過程如下:
Response Authenticator=MD5({0x02 ,0x00 ,0x00 ,0x26 , 0x0f , 0x40 , 0x3f , 0x94 , 0x73 , 0x97 , 0x80 , 0x57 , 0xbd , 0x83 , 0xd5 , 0xcb, 0x98 ,0xf4 ,0x22, 0x7a , 0x06 , 0x06 , 0x00 , 0x00 , 0x00 , 0x01 , 0x0f , 0x06 , 0x00 , 0x00 , 0x00 , 0x00, 0x0e ,0x06 ,0xc0 ,0xa8 , 0x01, 0x03, 0x78 , 0x79 , 0x7A , 0x7A , 0x79 , 0x35 , 0x34 , 0x36 , 0x31 })
})
具體方法:在應答報文中,用Request Authenticator填入Response Authenticator的位置,並且在尾部添上密鑰(“xyzzy5461”),做MD5運算即可得到結果(86 fe 22 0e 76 24 ba 2a 10 05 f6 bf 9b 55 e0 b2)

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved