Поделиться через


Проверка подлинности удостоверений с помощью сертификатов X.509

Центр Интернета вещей использует сертификаты X.509 для проверки подлинности устройств. Проверка подлинности X.509 позволяет выполнять проверку подлинности устройства Интернета вещей в рамках стандартного создания подключения tls.

Сертификат центра сертификации X.509 (ЦС) — это цифровой сертификат, который может подписывать другие сертификаты. Цифровой сертификат считается сертификатом X.509, если он соответствует стандарту форматирования сертификатов, установленному стандартом RFC 5280 IETF.

Функция центра сертификации X.509 обеспечивает аутентификацию устройства в Центре Интернета вещей с помощью центра сертификации. Это упрощает начальный процесс регистрации устройств и логистику цепочки поставок во время производства устройств.

Проверка подлинности и авторизация

Проверка подлинности — это процесс подтверждения того, что вы говорите, что вы являетесь . Проверка подлинности проверяет удостоверение пользователя или устройства на Центр Интернета вещей. Иногда для этого термина используется сокращение AuthN (Authentication).

Авторизация — это процесс подтверждения разрешений для прошедшего проверку подлинности пользователя или устройства на Центр Интернета вещей. Он указывает, какие ресурсы и команды можно получить к доступу, а также какие возможности можно сделать с этими ресурсами и командами. Авторизация иногда сокращенно обозначается AuthZ (Authorization).

Сертификаты X.509 используются только для проверки подлинности в Центр Интернета вещей, а не авторизации. В отличие от идентификатора Microsoft Entra и подписанных URL-адресов, нельзя настраивать разрешения с помощью сертификатов X.509.

Типы проверки подлинности сертификата

Для проверки подлинности устройства с Центр Интернета вещей можно использовать любой сертификат X.509, отправив отпечаток сертификата или центр сертификации (ЦС) в Центр Интернета вещей.

  • ЦС X.509, подписанный - этим параметром, рекомендуется для рабочих сценариев и является основной частью этой статьи.

    Если у вашего устройства есть сертификат ЦС, подписанный ЦС X.509, перед регистрацией устройства вы отправляете корневой или промежуточный сертификат ЦС в цепочку подписей в Центр Интернета вещей. Устройство имеет сертификат X.509 с проверенным ЦС X.509 в цепочке сертификатов доверия. Когда устройство подключается, оно представляет полную цепочку сертификатов, а Центр Интернета вещей может проверить его, так как он знает ЦС X.509. Несколько устройств могут проходить проверку подлинности в одном проверенной ЦС X.509.

  • Самозаверяющий X.509

    Если у устройства есть самозаверяющий сертификат X.509, вы дайте Центр Интернета вещей версию сертификата для проверки подлинности. При регистрации устройства вы отправляете отпечаток сертификата, который является хэшом сертификата X.509 устройства. Когда устройство подключается, он представляет свой сертификат, а Центр Интернета вещей может проверить его в соответствии с хэшом, который он знает.

Внимание

Следующие функции для устройств, использующих проверку подлинности центра сертификации X.509 (ЦС), пока недоступны, и режим предварительной версии должен быть включен:

  • протоколы HTTPS, MQTT через WebSockets и AMQP через WebSockets;
  • передача файлов (по всем протоколам).

Эти возможности обычно доступны на устройствах, использующих проверку подлинности X.509 с помощью отпечатка пальца.

Принудительное применение проверки подлинности X.509

Для дополнительной безопасности центр Интернета вещей можно настроить, чтобы не разрешать проверку подлинности SAS для устройств и модулей, оставляя X.509 единственным допустимым вариантом проверки подлинности. В настоящее время эта функция недоступна на портале Azure. Чтобы настроить ее, задайте для disableDeviceSAS и disableModuleSAS значение true в свойствах ресурса центра Интернета вещей.

az resource update -n <iothubName> -g <resourceGroupName> --resource-type Microsoft.Devices/IotHubs --set properties.disableDeviceSAS=true properties.disableModuleSAS=true

Преимущества аутентификации сертификата ЦС X.509

Для Интернета вещей требуется уникальное удостоверение для каждого устройства, которое подключается. Для проверки подлинности на основе сертификатов эти удостоверения находятся в виде сертификатов.

Допустимый, но неэффективный способ предоставления уникального сертификата на каждом устройстве заключается в создании сертификатов и предоставлении всем партнерам цепочки поставок соответствующих закрытых ключей. Этот метод поставляется с проблемами, которые необходимо преодолеть, чтобы обеспечить доверие следующим образом:

  • Предоставление закрытых ключей устройств партнерам по цепочке поставок, помимо игнорирования рекомендаций PKI, делает установку доверия в цепочке поставок дорогостоящей. Для этого требуются такие системы, как безопасные комнаты для размещения закрытых ключей устройств, и такие процессы, как периодический аудит безопасности. Оба способа увеличивают стоимость цепочки поставок.

  • Безопасное учет устройств в цепочке поставок и последующее управление ими в развертывании с помощью выхода на пенсию устройств становится задачей "один к одному" для каждой пары "ключ — устройство". Эта связь исключает управление группами устройств, если концепция групп явно не встроена в процесс. Таким образом, безопасный учет и управление жизненным циклом устройств существенно усложняются.

Аутентификация на основе сертификатов ЦС X.509 предлагает элегантные решения этих проблем благодаря использованию цепочки сертификатов. Цепочка сертификатов начинается с центра сертификации, подписывающего промежуточный центр сертификации, который, в свою очередь, подписывает еще один промежуточный центр сертификации, и так продолжается до тех пор, пока конечный промежуточный центр сертификации не подпишет устройство. Цепочки сертификатов создают связь "один ко многим" между сертификатом ЦС и его подчиненными устройствами. Эта связь позволяет зарегистрировать любое количество устройств в Центр Интернета вещей путем регистрации сертификата ЦС X.509 один раз.

Проверка подлинности ЦС X.509 также упрощает логистику цепочки поставок. Типичный процесс производства устройств включает в себя несколько этапов и хранителей. Используя центры сертификации, вы можете подписать каждого хранителя в криптографическую цепочку доверия, а не доверять им закрытые ключи устройства. Каждый хранитель подписывает устройства на соответствующем этапе производственного потока. Общим результатом является оптимальная цепочка поставок со встроенной подотчетностью благодаря использованию зашифрованной цепочки доверия.

Этот процесс обеспечивает максимальную безопасность, когда устройства защищают свои уникальные закрытые ключи. Для этого рекомендуется использовать аппаратные защищенные модули (HSM), способные создавать закрытые ключи.

Служба подготовки устройств к добавлению в Центр Интернета вещей Azure (DPS) упрощает подготовку групп устройств в центрах. Дополнительные сведения см. в статье Руководство по инициализации нескольких устройств X.509 с помощью групп регистрации.

Поток сертификатов X.509

В этом разделе описывается использование сертификатов ЦС X.509 для проверки подлинности устройств, подключающихся к Центр Интернета вещей, включая следующие действия.

  • Получите сертификат ЦС X.509.
  • Подписывая устройства с помощью сертификатов ЦС X.509.
  • Зарегистрируйте сертификат ЦС X.509 для Центр Интернета вещей.
  • Проверка подлинности устройств, подписанных с помощью ЦС X.509.
  • Отмените сертификат устройства, если он скомпрометирован.

Получение сертификата ЦС X.509

Сертификат ЦС X.509 является верхней частью цепочки сертификатов для каждого устройства. Вы можете приобрести или создать его в зависимости от способа его использования.

Для рабочих сред рекомендуется приобрести сертификат ЦС X.509 от поставщика профессиональных служб сертификатов.

Вы также можете создать самозаверяющий сертификат ЦС X.509 для тестирования. Дополнительные сведения о создании сертификатов для тестирования см. в разделе "Создание и отправка сертификатов для тестирования". Мы не рекомендуем самозаверяющий сертификат для рабочих сред.

Независимо от того, как вы получаете сертификат ЦС X.509, обязательно сохраняйте соответствующий секрет закрытого ключа и всегда защищены.

Приобретение сертификата

Приобретение сертификата ЦС имеет преимущество — известный корневой ЦС выступает в качестве доверенной третьей стороны для подтверждения легитимности устройств Центра Интернета вещей при подключении устройств. Выберите этот параметр, если устройства повторно входят в открытую сеть Интернета вещей, где они взаимодействуют со сторонними продуктами или службами.

Чтобы приобрести сертификат ЦС X.509, выберите поставщика услуг корневого сертификата. Поставщик корневого ЦС поможет вам создать пару открытых и закрытых ключей и как создать запрос на подпись сертификата (CSR) для своих служб. CSR является формальным процессом применения сертификата из центра сертификации. Результатом этой покупки будет сертификат для использования в качестве сертификата центра сертификации. Учитывая распространенность сертификатов X.509, сертификат, скорее всего, будет правильно отформатирован в соответствии со стандартном RFC 5280 IETF.

Создание самозаверяющего сертификата

Процесс создания самозаверяющего сертификата ЦС X.509 аналогичен покупке, за исключением привлечения стороннего подписывающего лица, такого как корневой центр сертификации.

Вы можете выбрать этот вариант для тестирования, пока не будете готовы приобрести сертификат ЦС. Вы также можете использовать самозаверяющий сертификат ЦС X.509 в рабочей среде, если устройства не подключаются к сторонним службам за пределами Центр Интернета вещей.

Подпись устройств в цепочке доверия сертификатов

Владелец сертификата ЦС X.509 может криптографически подписать промежуточный ЦС, который, в свою очередь, может подписать другой промежуточный ЦС и т. д., пока последний промежуточный ЦС не подписывает сертификат устройства. Результатом является каскадная цепочка сертификатов, известная как цепочка сертификатов доверия. Это делегирование доверия важно, так как оно устанавливает цепочку хранения и избегает совместного использования ключей подписывания.

Этот каскад сертификатов в цепочке представляет ​​логическую передачу полномочий. Многие цепочки поставок следуют этой логической рукой, при которой каждый промежуточный ЦС выполняет вход в цепочку при получении всех сертификатов ЦС вышестоящего уровня. Последний промежуточный ЦС, наконец, подписывает каждое устройство и внедряет все сертификаты центра из цепочки в устройство.

Схема, показывющая сертификаты в цепочке доверия.

Сертификат устройства (также называемый конечным сертификатом) должен иметь общее имя (CN) для идентификатора устройства (CN=deviceId), который используется при регистрации устройства Интернета вещей в Центр Интернета вещей Azure. Этот параметр требуется для проверки подлинности.

Для модулей, использующих проверку подлинности X.509, сертификат модуля должен иметь общее имя (CN).CN=deviceId/moduleId

Узнайте, как создать цепочку сертификатов, как это было сделано при подписи устройств.

регистрация сертификата ЦС X.509 в Центре Интернета вещей;

Зарегистрируйте сертификат ЦС X.509 в Центр Интернета вещей, который использует его для проверки подлинности устройств. Сертификат ЦС X.509 может пройти проверку подлинности любого устройства, имеющего ЦС в цепочке сертификатов доверия. Регистрация сертификата ЦС X.509 — это двухэтапный процесс, который включает в себя загрузку файла сертификата и последующее подтверждение владения им.

Процесс отправки подразумевает отправку файла, содержащего сертификат. Этот файл не должен содержать какие-либо закрытые ключи.

Подтверждение владения включает в себя процесс шифрования и реагирования между вами и Центр Интернета вещей, чтобы убедиться, что вы действительно владеете сертификатом ЦС. Вы можете автоматически или вручную проверить владение. При проверке вручную Центр Интернета вещей создает случайный вызов, который вы подписываете с помощью закрытого ключа сертификата ЦС. Если вы сохранили секрет закрытого ключа и защищены как рекомендуемые, то только вы обладаете знаниями для выполнения этого шага. Секретность закрытых ключей выступает источником доверия в этом методе. После подписывания задачи вы отправите файл, содержащий результаты для завершения проверки.

Узнайте, как зарегистрировать сертификат ЦС.

Проверка подлинности устройств, подписанных с помощью сертификатов ЦС X.509

После регистрации сертификата ЦС X.509 и устройств, подписанных цепочкой доверия, последний шаг — проверка подлинности устройств. Когда устройство, подписанное ЦС X.509, подключается, оно отправляет свою цепочку сертификатов для проверки. С помощью этой информации Центр Интернета вещей выполняет проверку подлинности устройства в два этапа.

Во-первых, Центр Интернета вещей криптографически проверяет цепочку сертификатов для внутренней согласованности. Затем Центр Интернета вещей выдает вызов подтверждения владения устройству. Центр Интернета вещей объявляет устройство подлинным при успешном ответе на запрос подтверждения владения от устройства. Это объявление предполагает, что закрытый ключ устройства защищен и что только устройство может успешно ответить на этот запрос. Рекомендуем использовать безопасные микросхемы, такие как аппаратные модули безопасности (HSM), на устройствах для защиты закрытых ключей.

Успешное подключение устройства к Центру Интернета вещей завершает процесс проверки подлинности и является индикатором надлежащей настройки. При каждом подключении устройства Центр Интернета вещей повторно согласовывает сеанс TLS и проверяет сертификат X.509 устройства.

Отзыв сертификата устройства

Центр Интернета вещей не проверяет списки отзыва сертификатов из центра сертификации при проверке подлинности устройств с проверкой подлинности на основе сертификатов. Если у вас есть устройство, которое необходимо заблокировать подключение к Центр Интернета вещей из-за потенциально скомпрометированного сертификата, отключите устройство в реестре удостоверений. Дополнительные сведения см. в разделе "Отключение или удаление устройства".

Пример сценария

Компания X создает приложения Smart-X-Widget, предназначенные для профессиональной установки. Компания X делегирует процесс производства и установки сторонним производителям. Фабрика Y производит приложения Smart-X-Widget, а технический специалист Z устанавливает их. Компания X хочет, чтобы приложения Smart-X-Widget отправлялось непосредственно из фабрики Y к техническому специалисту Z для установки, а затем подключалось непосредственно к экземпляру компании X в Центре Интернета вещей. Чтобы это произошло, Компания-X должна выполнить несколько однократных операций настройки, чтобы подготовить Smart-X-Мини-приложение для автоматического подключения. Этот комплексный сценарий включает следующие действия.

  1. Получение сертификата ЦС X.509

  2. регистрация сертификата ЦС X.509 в Центре Интернета вещей;

  3. подпись устройств в цепочке доверия сертификатов;

  4. подключение устройств.

Эти действия демонстрируются в руководстве по созданию и отправке сертификатов для тестирования.

Получение сертификата

Компания X может приобрести сертификат ЦС X.509 у общедоступного корневого центра сертификации или создать его с помощью самозаверяющего процесса. Независимо от варианта, процесс предусматривает два основных этапа: создание пары открытого и закрытого ключей и подписание открытого ключа в сертификате.

Подробности выполнения этих шагов отличаются для различных поставщиков услуг.

Схема, показывающая поток для создания сертификата ЦС X.509.

Регистрация сертификата в Центре Интернета вещей

Компания X должна зарегистрировать ЦС X.509 в Центр Интернета вещей, где она служит для проверки подлинности Smart-X-Мини-приложений при подключении. Это однократный процесс, который дает возможность выполнять аутентификацию и управлять любым количеством устройств Smart-X-Widget. Связь "один ко многим" между сертификатами ЦС и сертификатами устройств является одним из основных преимуществ использования метода проверки подлинности ЦС X.509. В качестве альтернативы можно передать отдельные отпечатки сертификатов для каждого устройства Smart-X-Widget, что увеличивает эксплуатационные расходы.

Регистрация сертификата ЦС X.509 — это двухэтапный процесс: передача сертификата, а затем подтверждение владения сертификатом.

Схема, показывающая поток процесса для регистрации сертификата ЦС X.509.

Загрузка сертификата

Чтобы отправить сертификат ЦС X.509, необходимо просто передать сертификат ЦС в Центр Интернета вещей. Центр Интернета вещей ожидает, что сертификат содержится в файле.

Файл сертификата не должен ни при каких обстоятельствах содержать закрытые ключи. Рекомендации согласно стандартам управления инфраструктурой открытых ключей (PKI) предусматривают, чтобы закрытые ключи были известны только в компании X.

Доказать владение

Сертификат ЦС X.509, как и любой цифровой сертификат, является общедоступной информацией, которая подвержена атакам перехвата информации. Таким образом, прослушивание может перехватывать сертификат и пытаться передать его как собственный. В нашем примере Центр Интернета вещей хочет удостовериться, что передаваемый сертификат ЦС компании X действительно принадлежит этой компании. Центр Интернета вещей требует, чтобы компания доказала, что она действительно владеет сертификатом, с помощью потока подтверждения владения.

Для потока подтверждения владения Центр Интернета вещей создает случайное число для подписывания компании-X с помощью закрытого ключа. Если компания следует рекомендациям PKI и защищает закрытый ключ, тогда только она сможет пройти проверку подтверждения владения. Центр Интернета вещей продолжает регистрацию сертификата ЦС X.509, когда проверка подтверждения владения будет успешно пройдена.

После успешного ответа на запрос подтверждения владения от Центра Интернета вещей регистрация сертификата ЦС X.509 завершается.

подпись устройств в цепочке доверия сертификатов;

В нашем примере проверка подлинности на основе сертификатов означает, что каждый smart-X-Widget должен иметь уникальный сертификат устройства. Вместо создания отдельных пар сертификатов и ключей для каждого устройства Компания-X решает использовать сертификаты ЦС и создать цепочку доверия для каждого устройства.

В нашем примере компания X подписывает фабрику Y, которая, в свою очередь, подписывает специалиста Z, который, наконец, подписывает Smart-X-Widget.

Схема, показывающая пример иерархии цепочки сертификатов.

На указанной ниже схеме показано, как цепочка сертификатов доверия объединяется в нашем примере Smart-X-Widget.

Схема, показывающая цепочку сертификатов доверия от сертификатов одной компании к сертификатам другой компании.

  1. Компания X никогда физически не взаимодействует с какими-либо из приложений Smart-X-Widget. Она инициирует цепочку сертификатов доверия, подписывая промежуточный сертификат ЦС фабрики Y.
  2. Factory-Y теперь имеет собственный промежуточный сертификат ЦС с подписью компании-X. Он передает копии этих элементов каждому устройству. Он также использует промежуточный сертификат ЦС для подписи промежуточного сертификата ЦС и сертификатов устройства Smart-X-Widget.
  3. Теперь у технического специалиста-Z есть собственный промежуточный сертификат ЦС с подписью фабрики-Y. Он передает копии этих элементов каждому устройству. Он также использует промежуточный сертификат ЦС для подписи сертификатов устройств Smart-X-Widget.
  4. Каждое устройство Smart-X-Widget теперь имеет собственный уникальный сертификат устройства и копии открытых ключей и подписей из каждого промежуточного сертификата ЦС, с которым оно взаимодействовало во всей цепочке поставок. Эти сертификаты и подписи можно отследить до исходной корневой компании X.

Метод проверки подлинности на основе ЦС обеспечивает надежную отчетность в цепочке поставок производства устройств. Из-за процесса цепочки сертификатов действия каждого члена в цепочке криптографически записываются и проверяются.

Этот процесс основывается на предположении, что пара открытых и закрытых ключей уникального устройства создается независимо и что закрытый ключ всегда защищен на устройстве. К счастью, надежные кремниевые микросхемы доступны в виде HSM способны создавать ключи внутри себя и защищать закрытые ключи. Компании X необходимо добавить одну из таких микросхем в спецификацию компонентов Smart-X-Widget.

Проверка подлинности устройств

Устройства, которые должны пройти аутентификацию ЦС X.509, снабжены уникальными сертификатами устройств и цепочкой сертификатов соответствующей производственной цепочки поставок. Даже первое подключение устройства происходит в два этапа: передача цепочки сертификатов и подтверждение владения.

В нашем примере каждый smart-X-Мини-приложение отправляет свой уникальный сертификат устройства вместе с сертификатами ЦС Фабрики-Y и технического специалиста X.509, а затем отвечает на запрос подтверждения владения из Центр Интернета вещей.

Используя предварительно зарегистрированный сертификат ЦС X.509 из Компании-X, Центр Интернета вещей проверяет, что цепочка отправленных сертификатов является внутренне согласованной и что действительный владелец сертификата ЦС X.509 произошел в цепочке. Как и процесс регистрации ЦС X.509, Центр Интернета вещей использует процесс подтверждения владения, чтобы убедиться, что цепочка и, следовательно, сертификат устройства принадлежат устройству, которое его передает. В результате успешного ответа Центр Интернета вещей воспринимает устройство как аутентичное и разрешает ему подключиться.

Схема, показывающая поток проверки сертификата устройства.

Основой доверия является защита закрытых ключей, включая закрытые ключи устройства. Поэтому мы не можем подчеркнуть достаточно важности безопасных кремниевых чипов в виде аппаратных безопасных модулей (HSM) для защиты закрытых ключей устройства, и в целом рекомендуется никогда не предоставлять общий доступ к закрытым ключам из любого сертификата в цепочке.

Следующие шаги

Используйте службу подготовки устройств для подготовки нескольких устройств X.509 с помощью групп регистрации.

Дополнительные сведения о полях, составляющих сертификат X.509, см. в разделе сертификатов X.509.

Если у вас есть сертификат корневого ЦС или подчиненный сертификат ЦС, и вы хотите передать его в центр Интернета вещей, необходимо убедиться, что этот сертификат принадлежит. Дополнительные сведения см. в руководстве по созданию и отправке сертификатов для тестирования.