Сокращение необходимого списка корневых сертификатов для ограниченных устройств - PullRequest
0 голосов
/ 04 апреля 2019

Я занимаюсь разработкой устройства IoT с ограниченным объемом памяти и хотел бы подключить его к Google IoT Core через MQTT.Список необходимых корневых сертификатов, которым необходимо доверять, чтобы обеспечить проверку сертификата TLS на сервере, очень длинный.Я ищу меньший список, который подходит для IoT-устройств с ограниченными ресурсами, но не перестанет работать.Есть ли способ безопасно сократить этот список необходимых сертификатов?

Из онлайн-документации (https://cloud.google.com/iot/docs/concepts/device-security) в разделе «Рекомендации по безопасности устройства» указано:

'Использовать TLS 1.2, когдасвяжитесь с mqtt.googleapis.com:8883 (или: 443) и убедитесь, что сертификат сервера действителен с использованием корневых центров сертификации. Прочтите эту заметку по безопасности для подробных требований TLS и будущей совместимости. '

Из безопасностипримечание (https://security.googleblog.com/2015/09/disabling-sslv3-and-rc4.html) в нем говорится:

'По крайней мере, сертификаты в https://pki.google.com/roots.pem должны быть доверенными.'

Я ясно вижу, что в документации указано полноесписок необходим, но это не представляется приемлемым для устройств IoT с ограниченным объемом памяти. В качестве примера AWS требует только один сертификат - в зависимости от выбранного шифра TLS. См. документацию AWS в разделе Аутентификация сервера (https://docs.aws.amazon.com/iot/latest/developerguide/managing-device-certs.html)

Любая помощь в понимании того, как можно сократить список корневых сертификатов, например, на основе исключения.n Проверка на основе ECC против проверки на основе RSA - было бы полезно.

1 Ответ

1 голос
/ 26 апреля 2019

Благодаря полезному инженеру Google на Github, который ответил на вопрос Уточните, как были выбраны trust_RootCA_certs в проекте iot-device-sdk-embedded-c, предоставленном Google, решение - использовать домен долгосрочной поддержки (LTS) .

Из документации можно использовать специальный домен " mqtt.2030.ltsapis.goog " вместо "mqtt.googleapis.com", что позволяет использовать только два корневых сертификата CA./ small ECC 256 открытых ключей вместо всего пакета root.pem (128 КБ).

Эти сертификаты корневого CA фиксируются до 2030 года.

Требуются следующие корневые CA:

  • GTS LTSR в качестве основного
  • GS Root R4 в качестве резервной копии

Обратите внимание на другие требования и функции для встроенных устройств в документации домена долгосрочной поддержки (LTS) .

...