MySQL的chap服务器_mschapv2在Radius中的认证实现

本文详细介绍了MS-CHAPv2在Radius认证过程中的实现细节,包括客户端如何生成MS-CHAP2-Response和MS-CHAP-Challenge,以及服务端的验证规则和响应机制。在服务端,通过比较NtResponse来确认认证是否成功。
摘要由CSDN通过智能技术生成

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)

封装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

)

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值