luluorxixi 2015-04-14 07:16 采纳率: 66.7%
浏览 2674
已采纳

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?

  • 写回答

1条回答 默认 最新

  • luluorxixi 2015-04-20 06:16
    关注

    自己解决了……
    公式中的加号表示:连接
    公式中的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)

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 Arduino红外遥控代码有问题
  • ¥15 数值计算离散正交多项式
  • ¥30 数值计算均差系数编程
  • ¥15 redis-full-check比较 两个集群的数据出错
  • ¥15 Matlab编程问题
  • ¥15 训练的多模态特征融合模型准确度很低怎么办
  • ¥15 kylin启动报错log4j类冲突
  • ¥15 超声波模块测距控制点灯,灯的闪烁很不稳定,经过调试发现测的距离偏大
  • ¥15 import arcpy出现importing _arcgisscripting 找不到相关程序
  • ¥15 onvif+openssl,vs2022编译openssl64