需要什么椭圆比曲线?

时间:2019-01-04 17:14:34

标签: mqtt tls1.2 x509 azure-iot-hub mbed

mqtt 握手成功后,使用带有 mbed TLS

的ECC x509 CONNECTACK失败

我正在尝试使用STM32板连接到IoT中心。 我有一个使用Linux且具有完全相同的CA签名的受信任证书和设备证书的模拟项目,以确保问题不在证书或服务器配置上。 Linux设备连接良好(它使用OpenSSL作为削片机)

但是对于我的嵌入式设备STM32,我正在使用 mbedTLS 堆栈。

启用跟踪,看到15个握手步骤,然后出现以下错误:

IoTHub Connection Status = IOTHUB_CLIENT_CONNECTION_UNAUTHENTICATED, Reason = IOTHUB_CLIENT_CONNECTION_DEVICE_DISABLED
ERROR: mqtt_operation_complete_callback L#1616
Connection Not Accepted: 0x5: Not Authorized

原因对我来说可疑,但是服务器端,设备已启用并查看源代码,唯一的反应是服务器拒绝了连接。

由于我排除了证书,服务器设置和传输,因此我认为我的问题出在削片机上。

Q1)知道需要什么特定曲线吗?

//#define MBEDTLS_ECP_DP_SECP192R1_ENABLED
//#define MBEDTLS_ECP_DP_SECP224R1_ENABLED
#define MBEDTLS_ECP_DP_SECP256R1_ENABLED
#define MBEDTLS_ECP_DP_SECP384R1_ENABLED
//#define MBEDTLS_ECP_DP_SECP521R1_ENABLED
//#define MBEDTLS_ECP_DP_SECP192K1_ENABLED
//#define MBEDTLS_ECP_DP_SECP224K1_ENABLED
#define MBEDTLS_ECP_DP_SECP256K1_ENABLED
#define MBEDTLS_ECP_DP_BP256R1_ENABLED
#define MBEDTLS_ECP_DP_BP384R1_ENABLED
//#define MBEDTLS_ECP_DP_BP512R1_ENABLED
//#define MBEDTLS_ECP_DP_CURVE25519_ENABLED

Q2)我可以启用哪些跟踪来了解为什么服务器拒绝证书。

2 个答案:

答案 0 :(得分:0)

https://github.com/coisme/Mbed-to-Azure-IoT-Hub声称它可以与Azure IoT Hub一起使用,并且它在默认配置之上唯一启用的功能是MBEDTLS_SHA1_C

答案 1 :(得分:0)