RADIUS与MS-CHAPv2说明

时间:2015-05-19 08:18:46

标签: vpn radius node.js

找不到关于对等方之间通信如何工作的任何流程图。我知道在启用PAP的Radius中它是如何工作的,但似乎在MS-Chapv2中还有很多工作需要开发。

我正在尝试开发RADIUS服务器来接收和验证用户请求。请以信息而不是代码的形式帮助我。

3 个答案:

答案 0 :(得分:12)

MSCHAPv2非常复杂,通常在 内执行另一种EAP方法,如EAP-TLS,EAP-TTLS或PEAP。这些外部方法使用TLS加密MSCHAPv2交换。例如,下图显示了PEAP流程图,其中客户端或请求者与RADIUS服务器(身份验证服务器)建立TLS隧道并执行MSCHAPv2交换。

enter image description here

MSCHAPv2交换本身可归纳如下:

  • AS首先生成一个16字节的随机服务器质询并将其发送给请求者。
  • 请求方还会生成随机的16字节对等质询。然后根据用户的密码计算质询响应。此质询响应与同行挑战一起传回AS。
  • AS会检查质询响应。
  • AS根据密码和对等挑战计算对等质询响应。
  • 请求方检查对等质询响应,完成MSCHAPv2身份验证。

如果您想了解所涉及的详细信息和精确计算,请随时查看我的论文here。 4.5.4和4.5.3节应包含实现能够执行MSCHAP交换的RADIUS服务器所需的所有信息。

如图所示,可以派生和使用许多不同的键。 This document提供了对其功能的非常直观的见解。但是,本文档中未解释CSK。该密钥可选地用于"加密绑定",即为了向AS证明TLS隧道和MSCHAPv2交换都是由同一对等体执行的。可以仅从TLS主密钥中获取MSK,但是您将容易受到中继攻击(该论文还包含一个研究论文,其中给出了此类攻击的示例)。

最后,the asleap readme给出了MSCHAPv2协议的另一个好的和一般性的逐步描述,这可能对你有所帮助。

答案 1 :(得分:1)

不幸的是我不能再添加评论,要求我有50个声望。

根据您的要求: 我的实验室环境是与RADIUS的AS一起使用的SSL-VPN。 由以下3项构成:

  1. 最终用户 - >没有安装“客户端”,连接通过Web门户启动。客户=网络浏览器

  2. NAS - >这是提供Web门户的机器(最终用户输入用户名和密码的地方) AND 充当RADIUS CLient,将请求传输到AS。

  3. AS(RADIUS) - >这就是我。我收到了访问请求并验证了用户名和&密码

  4. 因此,根据这一点,我在Access-Request中收到的是:

    MS-chap2的-响应: 的 7d00995134e04768014856243ebad1136e3f00000000000000005a7d2e6888dd31963e220fa0b700b71e07644437bd9c9e09

    MS-CHAP-挑战: 838577fcbd20e293d7b06029f8b1cd0b

    根据RFC2548:

    • MS-CHAP-Challenge 此属性包含 NAS 向Microsoft质询握手身份验证协议(MS-CHAP)用户发送的质询。它可以用于Access-Request和Access-Challenge数据包。

    • MS-CHAP2-Response 此属性包含MS提供的响应值   CHAP-V2同行响应挑战。它仅用于   访问请求数据包。

    如果我理解正确,请保持冷静,这对我来说都很新鲜,根据您的流程图,AS也是LCP中的身份验证者。 在我的情况下,LCP由NAS发起,所以我的生活变得简单,我只获得了访问请求而无需创建隧道。

    我现在的问题是,如何解密密码?我知道有一个随机挑战16字节密钥,但由NAS持有。

    从我的记忆中,我只需要知道共享的秘密,并使用论文中描述的算法解密整个事物。

    但算法是巨大的,我已经尝试了不同的网站,看看AS应该使用哪一部分,并且在每次尝试解密时都失败了。 由于我不能在这个帖子中寻求帮助,我只能说这个小文本框不能满足你的帮助,真的很幸运能让你看到我的帖子。

    请给我发电子邮件,我的联系信息在我的个人资料中。 此外,由于某些原因,我无法将您的答案标记为解决方案。

答案 2 :(得分:0)

" 通常在另一种EAP方法中执行,例如EAP-TLS,EAP-TTLS或PEAP。"

唉... RADIUS win2008服务器在这里,配置为 NO EAP,只有MS-CHAPv2加密,才能替换PAP。

这就是为什么你说的很多,我所说的不是加起来...... 我不是MITM,我是AS,而我的NAS(敲门的人)是RADIUS_Client / Authenticator。

当用户输入UN& PW时,我现在正在查找的随机加密是使用MS-CHAPv2创建的,所有上述内容都无关紧要。

使用从身份验证器收到的项目: - 用户名,MS-CHAP-Challenge,MS-CHAP2-Response

AS举行了一场神奇的仪式,提出以下建议: -Access - 接受

-MPPE寄密钥

-MPPE-RECV密钥

-MS-chap2的-Sucess

-MS-CHAP域

这是来自一个工作场景,我有一个RADIUS服务器,一个radius客户端和一个用户。

NOT 工作方案,是我是RADIUS服务器(AS)的原因,因为这是我的目标,构建RADIUS服务器,而不是MITM。 所以我所剩下的就是找出那些以及如何解密algorithem。