mschapv2在Radius中的认证实现

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][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][2]

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

[1]: http://tools.ietf.org/html/rfc2759.html#section-8.1 [2]: http://tools.ietf.org/html/rfc2759.html#section-8.7

转载于:https://my.oschina.net/jamiesun/blog/649629

StrongSwan是一款开源的IPsec(Internet Protocol Security)框架,用于实现企业级的网络通信加密。EAP-Mschapv2是一种基于Microsoft Challenge-Handshake Authentication Protocol(MS-CHAP v2)的身份验证协议,适用于IPSec IKE(Internet Key Exchange)协商。 要在StrongSwan 5.3.5设置IPsec服务器并启用EAP-Mschapv2认证,你需要按照以下步骤操作: 1. **安装和配置StrongSwan**: 首先确保你已经安装了StrongSwan,并创建了一个服务配置文件。你可以通过编辑`/etc/ipsec.conf`来配置基本的IPsec参数。 2. **添加IKE Phase 1配置**: 为IKE Phase 1(建立安全关联阶段)添加一个新的配置段,例如: ``` config ike { # IKE proposal proposals = ikedemo; # EAP-Mschapv2 authentication method eap = mschapv2; } ``` 3. **IKE Phase 2配置**: 创建一个IKE Phase 2(隧道模式)配置,指定IKE交换机和IPSec SA(Security Association)信息: ``` conn myconn { left = <your-ip>:<ike-port> # 通常IKE端口是500 right = <remote-ip>:<ipsec-tunnel-port> # 通常是4500 or 5001 authby = secret; auto=start; type=tun; esp=%ike.proposals; ike=%ike; } ``` 将 `<your-ip>` 替换为你的服务器地址,`<remote-ip>` 替换为客户需要连接的IP地址。 4. **添加EAP身份验证密钥**: 编辑IKE Phase 1部分的`secret`配置,提供用于EAP-Mschapv2认证的共享秘密: ``` secret /etc/ipsec.secrets <your-hostname>.local %ike: <shared-secret>; ``` 这里的`<shared-secret>`就是你们双方约定的共享密钥。 5. **启动 StrongSwan**: 重启或初始化StrongSwan服务,使其应用新的配置: ```bash systemctl restart strongswan ``` 6. **测试连接**: 客户端应该能够发起EAP-Mschapv2身份验证尝试,如果一切配置无误,他们将成功建立IPsec连接。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值