mschapv2在Radius中的認證明現

mschapv2在Radius中的認證明現

在Radius的認證請求AccessRequest包中若是包含 MS-CHAP2-Response 和 MS-CHAP-Challenge 屬性則意味着須要實現ms-chap-v2認證。html

客戶端 MS-CHAP2-Response 和 MS-CHAP-Challenge 生成的規則

MS-CHAP-Challenge

MS-CHAP-Challenge (即AuthChallenge) 是客戶端生成的隨機16字節。併發

MS-CHAP2-Response

隨機生成16字節屬性 PeerChallenge,連同AuthChallenge,UserName,Password做爲輸入參數,調用方法 GenerateNTResponse 獲得 NtResponse.code

GenerateNTResponse(AuthChallenge, PeerChallenge, UserName, Password)

GenerateNTResponse 方法的實現參考 http://tools.ietf.org/html/rfc2759.html#section-8.1htm

封裝50字節的 MS-CHAP2-Response 屬性:get

[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應該丟棄,併發送拒絕認證。io

從 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 方法獲得 AuthenticatorResponsetools

GenerateAuthenticatorResponse(
	Password,
	NtResponse,
	PeerChallenge, 
	AuthChallenge
	UserName
)

GenerateAuthenticatorResponse 方法的實現參考 http://tools.ietf.org/html/rfc2759.html#section-8.7

設置Radius響應消息屬性 MS-CHAP2-Success = AuthenticatorResponse

相關文章
相關標籤/搜索