我正在开发一个自定义半径服务器来验证无线客户端,在最后一步使用 peapv0-mschapv2,不确定如何在 Access-Accept 数据包中生成 ms-mppe-send-key 和 ms-mppe-revc-key,我已经按照 rfc3079 生成 128 位会话密钥,但在最后一步,不知道如何处理 rc4_key() 函数,
来自 RFC3079
GetNewKeyFromSHA(MasterSendKey, MasterSendKey, 16, SendSessionKey) GetNewKeyFromSHA(MasterReceiveKey, MasterReceiveKey, 16, ReceiveSessionKey)
最后,使用新的会话密钥初始化 RC4 表:
rc4_key(SendRC4key, 16, SendSessionKey)
rc4_key(ReceiveRC4key, 16, ReceiveSessionKey)
我生成了一个 16 字节的 SendSessionKey 和一个 16 字节的 ReceiveSessionKey,但不确定 SendRC4Key 和 ReceiveRC4Key 的来源。没有用 rfc 说 :(
然后我尝试使用 SendSessionKey 和 ReceiveSessionKey 跟随 rfc2548 并加密 ms-mppe-send-key 和 ms-mppe-recv-key 并发送给客户端,但不起作用,客户端不断重置并从客户端你好重新开始。当我在网上进行一些搜索时,看起来像使用 32 字节密钥进行加密并发送给客户端的免费半径。也不确定如何获得 32 字节的 SendSessionKey。感谢您提前提供任何帮助!