如何计算Radius Access Accept消息的Authenticator?附排查与实现方法
RADIUS Access Accept 消息 Authenticator 校验方案
手动计算步骤(遵循RFC2865)
提取核心数据
从抓包结果中获取:- Access Request报文中的16字节
Request Authenticator - Access Accept报文的完整原始字节流
- RADIUS服务器与客户端共享的
Secret密钥
- Access Request报文中的16字节
构造哈希输入串
按以下顺序拼接所有内容(均为字节形式):- Access Accept的报文代码(固定为
0x02,即1字节) - Access Accept的报文长度(2字节,大端序,直接取自抓包的报文首部)
- 报文标识符(1字节,必须与对应Access Request的标识符一致)
- 从Access Request中获取的
Request Authenticator(16字节) - Access Accept报文中的所有属性字段(从第20字节开始到报文末尾,保持原始顺序)
- 共享的
Secret密钥(转成字节流,通常用UTF-8编码)
- Access Accept的报文代码(固定为
计算MD5哈希
对上述拼接后的字节串计算MD5哈希,得到的16字节结果就是标准的Response Authenticator,将其与Access Accept报文中第4-20字节的Authenticator值对比。
Python 校验脚本
import hashlib def compute_radius_response_auth(request_auth, accept_packet, secret): # 拆分Access Accept报文首部 code = accept_packet[0:1] pkt_length = accept_packet[1:3] pkt_id = accept_packet[3:4] # 提取属性部分(跳过首部20字节) attributes = accept_packet[20:] # 按RFC2865规则拼接哈希输入 hash_input = code + pkt_length + pkt_id + request_auth + attributes + secret.encode('utf-8') # 计算MD5哈希得到Response Authenticator return hashlib.md5(hash_input).digest() # 示例使用(替换为实际数据) if __name__ == "__main__": # 从Access Request抓包中提取的Request Authenticator(bytes类型) req_auth = b'\x12\x34\x56\x78\x90\xab\xcd\xef\x12\x34\x56\x78\x90\xab\xcd\xef' # 抓包得到的完整Access Accept报文(bytes类型) accept_pkt = b'\x02\x00\x38\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06\x06\x00\x00\x00\x00\x0f\x06\x00\x00\x00\x00\x1a\x06\x00\x00\x00\x00\x1f\x06\x00\x00\x00\x00' # RADIUS共享密钥 shared_secret = "your_radius_secret_here" computed_auth = compute_radius_response_auth(req_auth, accept_pkt, shared_secret) # 提取服务器返回的Response Authenticator server_auth = accept_pkt[4:20] print(f"计算值: {computed_auth.hex()}") print(f"服务器返回值: {server_auth.hex()}") print(f"校验结果: {'匹配' if computed_auth == server_auth else '不匹配'}")
常见问题排查
- 确保抓包工具捕获的是完整报文,没有截断属性字段
- Secret密钥必须完全匹配,注意特殊字符的编码(避免用ASCII编码非ASCII字符)
- 报文长度字段必须使用抓包得到的原始值,不能手动计算(RFC要求用实际报文长度)
- 标识符必须与对应Access Request的标识符一致,否则计算必然失败
内容的提问来源于stack exchange,提问作者Praveen
相关产品推荐
相关产品推荐

