Radius - 报文解析

news/2025/2/28 9:49:30/文章来源:https://www.cnblogs.com/chen1880/p/18742632

请求报文_Authenticator:MD5(Code + Identifier + Length + 16字节零填充 + 属性 + 共享密钥)

响应报文_Authenticator:
Res_Message-Authenticator:HMAC-MD5(共享密钥, 完整报文数据) ,更新属性
MD5(Code + Identifier + Length + 请求报文Authenticator + 属性 + 共享密钥)

======================================================================================================
【共享密钥】:52 33 51 6C 55 6D 46 6B 61 58 56 7A 4D 6A 51 6A 4E 6A 55 34 59 7A 52 6D 59 6D 4E 6B 59 32 59 30 4D 7A 63 32 4E 44 59 33 4D 47 4E 69 59 57 4D 33 4D 47 51 32 4F 44 6B 34 5A 6D 59 3D

【请求报文】:04 00 00 21 1C 6F 61 B9 FC 60 26 53 00 F4 AE BD 18 90 62 21 28 06 00 00 00 01 2C 07 31 36 32 34 30
Step1:创建报文,添加属性,计算Auth_MD5

添加属性
AVP: t=Acct-Status-Type(40) l=6 val=Start(1)
AVP: t=Acct-Session-Id(44) l=7 val=16240

04 00 00 21 -- Code + Identifier + Length
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -- 16字节零填充
28 06 00 00 00 01 2C 07 31 36 32 34 30 -- 属性
52 33 51 6C 55 6D 46 6B 61 58 56 7A 4D 6A 51 6A 4E 6A 55 34 59 7A 52 6D 59 6D 4E 6B 59 32 59 30 4D 7A 63 32 4E 44 59 33 4D 47 4E 69 59 57 4D 33 4D 47 51 32 4F 44 6B 34 5A 6D 59 3D -- 共享密钥

Auth_MD5: 1C 6F 61 B9 FC 60 26 53 00 F4 AE BD 18 90 62 21

Step2:更新报文Auth(字节4-20的位置),结束


【响应报文】:05 00 00 26 B4 9C 6E 23 71 F4 C5 D3 35 BB 68 B9 7F 67 CD 63 50 12 9A AB 65 EE DE 81 5A DF 4E 1C 37 CB D1 C0 03 06

Step1:创建报文,添加属性,计算Message_MD5

添加属性
AVP: t=Message-Authenticator(80) l=18 val=00000000000000000000000000000000
Type=80 (Hex:50)
Length: 2 + 16 (Hex:12)
Value: 16 字节零填充

05 00 00 26 -- Code + Identifier + Length
1C 6F 61 B9 FC 60 26 53 00 F4 AE BD 18 90 62 21 -- 请求报文Authenticator
50 12 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -- Type:80,Length:18, Value:16字节零填充

HMAC-MD5(共享密钥, 完整报文数据 Code + Identifier + Length + 请求报文Authenticator + 属性 + 共享密钥) 9A AB 65 EE DE 81 5A DF 4E 1C 37 CB D1 C0 03 06

步骤2:更新Message_MD5+追加密钥
05 00 00 26 -- Code + Identifier + Length
1C 6F 61 B9 FC 60 26 53 00 F4 AE BD 18 90 62 21 -- 请求报文Authenticator
50 12 9A AB 65 EE DE 81 5A DF 4E 1C 37 CB D1 C0 03 06 -- 更新后属性
52 33 51 6C 55 6D 46 6B 61 58 56 7A 4D 6A 51 6A 4E 6A 55 34 59 7A 52 6D 59 6D 4E 6B 59 32 59 30 4D 7A 63 32 4E 44 59 33 4D 47 4E 69 59 57 4D 33 4D 47 51 32 4F 44 6B 34 5A 6D 59 3D -- 共享密钥

Auth_MD5: B4 9C 6E 23 71 F4 C5 D3 35 BB 68 B9 7F 67 CD 63

Step3:更新报文Auth(字节4-20的位置),结束

 /// <summary>/// 生成Authenticator/// </summary>static byte[] CreateAuthenticator(byte code, byte identifier, ushort length, byte[] attributes, byte[] secretBytes, byte[] padding){ using (MD5 md5 = MD5.Create()){byte[] input = new[] { code, identifier }.Concat(BitConverter.GetBytes(IPAddress.HostToNetworkOrder((short)length))).Concat(padding).Concat(attributes).Concat(secretBytes).ToArray();var b1 = BitConverter.ToString(input).Replace("-", " ");var b2 = md5.ComputeHash(input); var b3 = BitConverter.ToString(b2).Replace("-", " ");return b2;}}/// <summary>/// 生成Authenticator/// </summary>static byte[] CreateAuthenticator(byte[] data, byte[] secretBytes){using (MD5 md5 = MD5.Create()){byte[] input = data.Concat(secretBytes).ToArray();var b1 = BitConverter.ToString(input).Replace("-", " ");var b2 = md5.ComputeHash(input); var b3 = BitConverter.ToString(b2).Replace("-", " ");return b2;}}/// <summary>/// 生成MessageAuthenticator/// </summary>static byte[] CreateMessageAuthenticator(byte[] data, byte[] secret){ using (var hmac = new HMACMD5(secret)){var b1 = BitConverter.ToString(data).Replace("-", " ");byte[] hmacResult = hmac.ComputeHash(data);var strMessageMD5 = BitConverter.ToString(hmacResult).Replace("-", " ");// 9AAB65EEDE815ADF4E1C37CBD1C00306return hmacResult;}}

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/891040.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

为什么低代码让开发者头疼?6 款好用工具推荐

许多开发者对低代码感到困惑——拖拽搭建真的高效吗?功能黑盒、扩展受限、难以集成,低代码的“易用性”常常并不如预期。本文深入分析低代码为何让开发者头疼,并推荐 6 款真正灵活、可扩展的工具,让你在低代码开发中少踩坑、高效构建应用。低代码开发平台近年来饱受争议。在…

海康威视400密码重置助手如何安装?附安装包

前言 大家好,我是小徐啊。我们在使用海康威视的摄像头的时候,有时候容易忘记设备的密码,导致我们无法访问对应的设备。这给我们的使用带来了不方便。好在海康威视提供了一个400密码重置助手,今天小徐就来介绍下如何安装400密码重置助手。文末附获取方式。 如何安装海康威视…

No.24 CSS--CSS3新特性(圆角、阴影、动画、媒体查询)

主要内容:圆角 阴影 动画一、圆角(border-radius)<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>div{width: 50…

全网最简单!3分钟用满血DeepSeek R1开发一款AI智能客服,零代码轻松接入微信、公众号、小程序,新手也能快速上手!

大家好,我是狂师。 在当今数字化时代,智能客服已成为提升用户体验、提高运营效率的关键工具。 今天,我们将为大家带来一个超级简单的教程,教你如何在短短3分钟内,利用腾讯微搭平台,将满血 DeepSeek R1接入到微信、公众号、小程序,打造属于自己的 AI 智能客服,哪怕你是新…

20250228

1. PVC 谨慎多

7.5.1 训练深层网络

当网络很深的时候会出现下面的问题梯度消失是一般情况,所以上面讨论的是梯度消失的情况(每一层的梯度都很小,很多个很小的数相乘就会导致底部的层梯度比上面的层的梯度小);梯度爆炸是另外一回事 之所以会导致上面这种情况是因为不同层之间数据分布是有差别的。所以一个简单…

还在为内外网文件传输头疼?6个方法帮你轻松搞定!

在当今数字化办公时代,内外网文件传输已成为企业日常运营中不可或缺的一环。无论是跨国公司的分部协作,还是企业与外部合作伙伴的数据共享,高效、安全的内外网文件传输都至关重要。 然而,在实际操作中,企业往往会面临诸多挑战: 1、网络隔离,传输不便: 出于安全考虑,企…

迎接自然语言交互时代:Datafocus 助您轻松集成智能问答

随着大型语言模型 (LLM) 能力的飞跃和日益普及,我们正在迈入一个全新的计算时代。自然语言交互不再是科幻小说中的场景,而是真真切切地走进了我们的工作和生活。可以预见,自然语言交互将进入到软件应用的方方面面,而智能问答功能也将成为所有软件的“标配”。 LLM 驱动的自…

基于控制台的c++的贪吃蛇游戏修改

来源同学代码运行环境+运行结果的截图运行环境:c++ 代码#include <conio.h> // 用于 _kbhit 和 _getch #include <windows.h> // 用于 Sleep #include <vector>using namespace std;// 定义方向 enum Direction { STOP = 0, LEFT, RIGHT, UP, DOWN };class…

厦大也来指导啦,厦门大学DeepSeek手册Ⅰ、Ⅱ一同放出!

随着春节DeepSeek的发布震撼全球,也标志着人工智能大模型进入了"惠普"时代,DeepSeek等各类大模型开始逐渐参与到我们的工作、学习以及生活的方方面面,因此更好的了解和使用大模型成为了必修课;目前各大企业和高校也都搭建起来自己的大模型平台,并且推出了使用指…

读DAMA数据管理知识体系指南07数据架构(上)

数字化转型推动各行业变革,数据架构成为关键,包括业务、应用、技术架构等,旨在优化系统功能和用户体验,数据架构师需确保数据与企业战略一致,设计满足长期需求的数据结构和规划。1. 浪潮 1.1. 第一波浪潮是银行和金融交易 1.2. 第二波浪潮是各种数字服务交互 1.3. 在第三波…

Token 无感刷新:打造无缝用户体验与坚实安全防线

一、前言 在前端开发中,用户身份认证通常通过 Token 来实现。然而,Token 的有效期是有限的,过期后用户需要重新登录,这会影响用户体验。为了解决这个问题,Token 无感刷新成为了一种常见的优化方案。 本文将详细介绍如何实现 Token 无感刷新,并探讨其在高并发场景下的优化…