mschapv2在radius中的认证实现

在Radius的认证请求AccessRequest包中如果包含 MS-CHAP2-Response 和 MS-CHAP-Challenge 属性则意味着需要实现ms-chap-v2认证。

客户端 MS-CHAP2-Response 和 MS-CHAP-Challenge 生成的规则


MS-CHAP-Challenge

MS-CHAP-Challenge (AuthChallenge) 是客户端生成的随机16字节。

MS-CHAP2-Response

随机生成16字节属性 PeerChallenge,连同AuthChallenge,UserName,Password作为输入参数,调用方法 GenerateNTResponse 得到 NtResponse.

GenerateNTResponse(AuthChallenge, PeerChallenge, UserName, Password) 

GenerateNTResponse 方法的实现参考 http://tools.ietf.org/html/rfc2759.html#section-8.1

封装50字节的 MS-CHAP2-Response 属性:

[0 : 2]           Flags  \x00\x00
[2 : 18]          PeerChallenge 
[18 : 26]         Reserved \x00\x00\x00\x00\x00\x00\x00\x00
[26 : 50]         NtResponse

服务端认证规则


校验 MS-CHAP2-Response 长度,长度不等于50应该丢弃,并发送拒绝认证。

从 MS-CHAP2-Response 提取 PeerChallenge,NtResponse

NtResponse = MS-CHAP2-Response[26 : 50]
PeerChallenge = MS-CHAP2-Response[2 : 18]

调用 GenerateNTResponse 方法得到 MyNtResponse

GenerateNTResponse(AuthChallenge, PeerChallenge, UserName, Password)  

比较 MyNtResponse 与 NtResponse,不相等则验证失败。

Radius 认证响应


调用 GenerateAuthenticatorResponse 方法得到 AuthenticatorResponse

GenerateAuthenticatorResponse(
    Password,
    NtResponse,
    PeerChallenge, 
    AuthChallenge
    UserName
) 

GenerateAuthenticatorResponse 方法的实现参考 http://tools.ietf.org/html/rfc2759.html#section-8.7

设置Radius响应消息属性 MS-CHAP2-Success = AuthenticatorResponse

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,288评论 19 139
  • 国家电网公司企业标准(Q/GDW)- 面向对象的用电信息数据交换协议 - 报批稿:20170802 前言: 排版 ...
    庭说阅读 11,319评论 6 13
  • 首发于乌云知识库:http://drops.wooyun.org/wireless/15269 Author:qi...
    qingxp9阅读 5,425评论 0 3
  • 一、概念(载录于:http://www.cnblogs.com/EricaMIN1987_IT/p/3837436...
    yuantao123434阅读 8,554评论 6 152
  • 收藏了这张照片。 是因为我与在场二位同事,一位共建单位的科长,三位异地旅级军人的一个半小时谈话,值得回...
    林与木阅读 334评论 0 1