找不到有关对等方之间的通信方式的任何流程图。我知道在启用PAP的Radius中它是如何工作的,但是似乎要使用MS-Chapv2进行大量工作。
我正在尝试开发RADIUS服务器来接收和验证用户请求。请以信息而非代码的形式帮助我。
最佳答案
MSCHAPv2非常复杂,通常在其他EAP方法(例如EAP-TLS,EAP-TTLS或PEAP)中执行。这些外部方法使用TLS加密MSCHAPv2交换。例如,下图显示了PEAP流程图,其中客户端或请求者与RADIUS服务器(身份验证服务器)建立TLS隧道并执行MSCHAPv2交换。
MSCHAPv2交换本身可以总结如下:
如果您想了解所涉及的细节和精确计算,请随时查看我的论文here。第4.5.4节和第4.5.3节应包含您需要的所有信息,以实现能够执行MSCHAP交换的RADIUS服务器。
从图中可以看出,派生和使用了许多不同的键。 This document提供了对其功能的非常直观的了解。但是,本文档未解释CSK。该 key 可选地用于“加密绑定(bind)”,即为了向AS证明TLS隧道和MSCHAPv2交换均由同一个对等方执行。可以仅从TLS主 key 派生MSK,但是您将很容易受到中继攻击(本文还包含一份研究报告,其中提供了此类攻击的示例)。
最后,the asleap readme给出了MSCHAPv2协议(protocol)的另一个良好且通用的逐步说明,这可能会进一步帮助您。