当我使用mbedtls时,MPPE键不匹配

时间:2018-01-10 14:35:19

标签: openssl ubuntu-16.04 freeradius 802.11 mbedtls

我在嵌入式平台上运行Mbed TLS作为核心安全库。 我的应用程序用于使用PEAPv0连接到企业网络,mschapv2作为phase2身份验证。

以下是设置详情 Ubuntu上的服务器设置

      Eap Server : Free radius with version 3.0.15
      openssl :1.0.2g
      Ubuntu version : 16.04LTS

客户端设置

      platform : Micro controller based platform
      OS : FreeRTOS

我使用TLSv1.2和密码套件MBEDTLS_TLS_RSA_WITH_AES_256_GCM_SHA384  / MBEDTLS_TLS_ECDHE_WITH_AES_256_GCM_SHA384并且我正在为所提到的密码套件提供内置tls-prf函数的帮助,它使用tls_prf_sha384函数,我发现客户端和服务器端生成的MPPE密钥不匹配。

但是当我使用MBEDTLS_TLS_RSA_WITH_AES_256_GCM_SHA256 / MBEDTLS_TLS_RSA_WITH_AES_128_CBC_SHA实习生使用tls_prf_sha256时,我发现生成的MPPE密钥在两端匹配

但是,根据TLS v1.2 RFC,已经规定基于客户端 - 服务器协商动态选择密码套件。但如果小于TLSv1.2,则使用tls1_prf函数。

当我查看openssl代码,freeradius和wpa_supplicant代码时,它使用函数SSL_export_keying_material。 然后alos im无法找到实现差异wrt openssl" SSL_export_keying_material"功能和Mbedtls" tls_prf"。

我可以知道我还缺少什么。

1 个答案:

答案 0 :(得分:0)

要获得可见性,请在Mbed TLS support forum中复制我的答案:

要排除基础知识,请验证您的配置文件中是否已定义MBEDTLS_SHA512_C。 密钥材料在mbedtls_ssl_derive_keys()中生成。它应该派生使用SSL_export_keying_material()派生的相同密钥。 如果可能,您应检查客户端和服务器的输入参数是否相同,例如,您的平台上没有内存问题,导致缓冲区中的内容损坏。 问候, Mbed TL团队成员 罗恩