Правильная настройка регистрации группы Azure IoT Hub DPS с x509 - PullRequest
0 голосов
/ 01 июля 2019

У меня есть очередь о правильных сертификатах конфигурации в IoT Hub Auzre. Я хочу использовать Device Provisioning Service с регистрацией в группах. Моя цель - реализовать следующий сценарий: использовать корневой сертификат CA для создания некоторого промежуточного сертификата, а затем использовать этот промежуточный сертификат для подписи сертификата устройства. Итак, после прочтения документации я понимаю следующие шаги:

  1. Загрузка корневого сертификата CA:

enter image description here

  1. Загрузка промежуточного сертификата в конфигурации регистрации группы:

enter image description here

  1. Использование сертификата устройства в коде Java для предоставления.

И это работает только тогда, когда я передаю свой промежуточный сертификат в коде устройства (независимо от того, выбираю ли я CA или промежуточный сертификат на шаге 2):

private static final Collection<String> INTERMEDIATE_CERTS = new LinkedList<>();
...
SecurityProvider securityProviderX509 = new SecurityProviderX509Cert(privateCert, privateKey, INTERMEDIATE_CERTS);
provisioningDeviceClient = ProvisioningDeviceClient.create(globalEndpoint, idScope, PROVISIONING_DEVICE_CLIENT_TRANSPORT_PROTOCOL, securityProviderX509);

Этот код взят из образцов Azure Github. Какова цель использования промежуточного сертификата в коде устройства? Не следует ли проверить его на основе цепочки промежуточных и корневых сертификатов CA, загруженных в Azure на предыдущих этапах?

1 Ответ

1 голос
/ 01 июля 2019

Когда вы загружаете промежуточный сертификат, ЕДИНСТВЕННАЯ вещь, которая загружается, это сам сертификат, а не вся цепочка от корневого до промежуточного. Единственное, что имеет промежуточный сертификат - это информация о сертификате, который его подписал, и ничего более. В цепочке может быть несколько промежуточных звеньев, и мы не можем делать какие-либо предположения относительно промежуточной цепочки при оценке цепочки сертификатов устройства.

Устройство должно представить всю цепочку сертификатов для DPS, чтобы успешно подготовить устройство. Без полной цепочки невозможно определить, находится ли проверенный сертификат в цепочке доверия устройства.

Мы рекомендуем использовать промежуточный сертификат для подписи устройства, потому что наилучшая практика безопасности - держать корни в автономном режиме.

...