带RADIUS的MSCHAPv2 - 加密过程究竟是如何进行的?

时间:2015-05-31 11:56:09

标签: node.js security vpn radius

我正在构建一个RADIUS服务器,以便在node.js中使用MS-CHAPv2。 我有一个RADIUS CLient,它是一个VPN服务器,它在Access-Request中向我发送以下内容:

用户-名称

MS-CHAP质询

MS-chap2的-响应

我使用实际的Microsoft RADIUS服务器进行了测试,并且Access-Accept响应始终包含以下内容:

MS-MPPE-RECV-KEY:长字符串

MS-MPPE-SEND-KEY:长字符串

MS-CHAP2-SUCESS:长字符串

我尝试使用RFC材料,但它非常复杂,我只需要理解:

  1. 我应该将Access-Request属性(挑战和响应)作为服务器做什么?

  2. 我应该如何在Access-Accept中创建3个键?

  3. 我读过许多文章和地点,包括测试范例。

    有些人说使用了RC4,3DES,MD4,MD5,SHA1,我不知道应该遵循哪个,因为它只提供2-3行解释。

    什么是加密的?我如何验证用户?我是否应该创建挑战/响应的哈希副本,因为它包含MD4和3DES加密密码?

    请帮助......

1 个答案:

答案 0 :(得分:0)

构建radius服务器非常复杂,

  

我应该将Access-Request属性(挑战和响应)作为服务器做什么?

服务器需要响应客户端请求,要求做握手,创建ssl隧道,请求识别等等。

  

我应该如何在Access-Accept中创建3个键?

ms-mppe密钥是通过握手和验证过程生成的数据,而且非常复杂,必须进行大量的计算和加密,比使用rc4,3des,md4更复杂...

  

什么是加密的?我如何验证用户?我是否应该创建挑战/响应的哈希副本,因为它包含MD4和3DES加密密码?

如果使用ssl,则所有内容都从change cipher Spec加密到access-accept。要对用户进行身份验证,您必须比较客户端提供的数据和数据库,最后向NAS发送访问接受。取决于使用哪种身份验证方法,密码比仅使用md4& amp; 3DES。例如,如果使用ms-chapv2,则必须使用其他一些数据进行哈希处理。