какая эллиптическая кривая нужна? - PullRequest
0 голосов
/ 04 января 2019

mqtt Сбой CONNECTACK после успешного рукопожатия с использованием ECC x509 с mbed TLS

Я пытаюсь подключиться к IoT Hub с помощью платы STM32. У меня есть смоделированный проект, использующий 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

Причина мне кажется подозрительной, но на стороне сервера устройство включено и, глядя на исходный код, единственный ответ - сервер отклонил соединение.

Поскольку я исключил сертификаты, настройки сервера и транспорт, я предполагаю, что моя проблема связана с Chipper.

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 голосов
/ 09 января 2019
0 голосов
/ 07 января 2019

https://github.com/coisme/Mbed-to-Azure-IoT-Hub утверждает, что он работает с концентратором IoT Azure, и единственное, что он включает поверх конфигурации по умолчанию, это MBEDTLS_SHA1_C.

...