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)