Проверка подлинности удостоверений с помощью сертификатов X.509
Центр Интернета вещей использует сертификаты X.509 для проверки подлинности устройств. Применение сертификатов X.509 позволяет проверять подлинность устройства IoT на физическом уровне при установлении подключения по протоколу TLS.
Сертификат ЦС X.509 — это цифровой сертификат, с помощью которого можно подписывать другие сертификаты. Цифровой сертификат считается сертификатом X.509, если он соответствует стандарту форматирования сертификатов, установленному стандартом RFC 5280 IETF. Центр сертификации (ЦС) означает, что его владелец может подписать другие сертификаты.
В этой статье описывается, как использовать сертификаты центра сертификации X.509 для проверки подлинности устройств, подключающихся к Центр Интернета вещей, включая следующие действия.
- Как получить сертификат ЦС X.509
- Как зарегистрировать сертификат ЦС X.509 в Центре Интернета вещей
- подпись устройств с помощью сертификата ЦС X.509;
- способ проверки подлинности устройств, подписанных центром сертификации X.509.
Внимание
Следующие функции для устройств, использующих проверку подлинности центра сертификации X.509, пока недоступны, но режим предварительного просмотра должен быть включен:
- протоколы HTTPS, MQTT через WebSockets и AMQP через WebSockets;
- передача файлов (по всем протоколам).
Эти возможности обычно доступны на устройствах, использующих проверку подлинности X.509 с помощью отпечатка пальца. Дополнительные сведения о проверке подлинности на основе сертификата X.509 с помощью Центра Интернета вещей см. в разделе Поддерживаемые сертификаты X.509.
Функция центра сертификации X.509 обеспечивает аутентификацию устройства в Центре Интернета вещей с помощью центра сертификации. Это упрощает начальный процесс регистрации устройств и логистику цепочки поставок во время производства устройств.
Проверка подлинности и авторизация
Проверка подлинности — это процесс, подтверждающий, что вы являетесь тем, за кого себя выдаете. Проверка подлинности проверяет удостоверение пользователя или устройства на Центр Интернета вещей. Иногда для этого термина используется сокращение AuthN (Authentication). Авторизация — это процесс подтверждения разрешений для прошедшего проверку подлинности пользователя или устройства на Центр Интернета вещей. Он указывает, какие ресурсы и команды можно получить к доступу, а также какие возможности можно сделать с этими ресурсами и командами. Авторизация иногда сокращенно обозначается AuthZ (Authorization).
В этой статье описывается проверка подлинности с помощью сертификатов X.509. Вы можете выполнить аутентификацию для устройства в Центре Интернета вещей при помощи любого сертификата X.509. Для этого отправьте отпечаток сертификата или данные центра сертификации (ЦС) в Центр Интернета вещей.
Сертификаты X.509 используются для проверки подлинности в Центр Интернета вещей, а не авторизации. В отличие от идентификатора Microsoft Entra и подписанных URL-адресов, нельзя настраивать разрешения с помощью сертификатов 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
Аутентификация на основе сертификата ЦС X.509 — это способ аутентификации устройств в Центре Интернета вещей с использованием метода, который значительно упрощает создание удостоверения устройства и управление жизненным циклом в цепочке поставок.
Отличительным признаком аутентификации на основе сертификата 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 может криптографически подписать промежуточный ЦС, который, в свою очередь, может подписать другой промежуточный ЦС и т. д. до последнего промежуточного ЦС, который завершает этот процесс, подписывая сертификат устройства. Результатом является каскадная цепочка сертификатов, известная как цепочка сертификатов доверия. Это делегирование доверия важно, так как оно устанавливает криптографически переменную цепочку хранения и избегает совместного использования ключей подписывания.
Сертификат устройства (также называемый конечным сертификатом) должен иметь общее имя (CN) для идентификатора устройства (CN=deviceId
), который использовался при регистрации устройства Интернета вещей в Центр Интернета вещей Azure. Этот параметр требуется для проверки подлинности.
Для модулей, использующих проверку подлинности X.509, сертификат модуля должен иметь общее имя (CN).CN=deviceId/moduleId
Узнайте, как создать цепочку сертификатов, как это было сделано при подписи устройств.
регистрация сертификата ЦС X.509 в Центре Интернета вещей;
Зарегистрируйте сертификат ЦС X.509 в Центр Интернета вещей, который использует его для проверки подлинности устройств во время регистрации и подключения. Регистрация сертификата ЦС X.509 — это двухэтапный процесс, который включает в себя загрузку файла сертификата и последующее подтверждение владения им.
Процесс отправки подразумевает отправку файла, содержащего сертификат. Этот файл не должен содержать какие-либо закрытые ключи.
Шаг подтверждения владения включает в себя криптографический запрос и ответ между вами и Центром Интернета вещей. Учитывая, что содержимое цифрового сертификата является общедоступным и, следовательно, уязвимо для перехвата, Центр Интернета вещей должен убедиться, что вы действительно являетесь владельцем сертификата ЦС. Вы можете автоматически или вручную проверить владение. Для проверки вручную Центр Интернета вещей Azure создает случайный вызов, который вы подписываете с помощью соответствующего закрытого ключа сертификата ЦС. Если вы сохранили секрет закрытого ключа и защищены как рекомендуемые, то только вы обладаете знаниями для выполнения этого шага. Секретность закрытых ключей выступает источником доверия в этом методе. После подписывания задачи выполните этот шаг и вручную проверьте сертификат, отправив файл, содержащий результаты.
Узнайте, как зарегистрировать сертификат ЦС.
Проверка подлинности устройств, подписанных с помощью сертификатов ЦС 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-Widget. Этот комплексный сценарий включает следующие действия.
Получение сертификата ЦС X.509
регистрация сертификата ЦС X.509 в Центре Интернета вещей;
подпись устройств в цепочке доверия сертификатов;
подключение устройств.
Эти действия демонстрируются в руководстве по созданию и отправке сертификатов для тестирования.
Получение сертификата
Компания X может приобрести сертификат ЦС X.509 у общедоступного корневого центра сертификации или создать его с помощью самозаверяющего процесса. Независимо от варианта, процесс предусматривает два основных этапа: создание пары открытого и закрытого ключей и подписание открытого ключа в сертификате.
Подробности выполнения этих шагов отличаются для различных поставщиков услуг.
Приобретение сертификата
Приобретение сертификата ЦС имеет преимущество — известный корневой ЦС выступает в качестве доверенной третьей стороны для подтверждения легитимности устройств Центра Интернета вещей при подключении устройств. Выберите этот параметр, если устройства взаимодействуют с сторонними продуктами или службами.
Чтобы приобрести сертификат ЦС X.509, выберите поставщика услуг корневого сертификата. Поставщик корневого ЦС поможет создать пару открытого и закрытого ключей и создать запрос на подпись сертификата (CSR) для служб. CSR является формальным процессом применения сертификата из центра сертификации. Результатом этой покупки будет сертификат для использования в качестве сертификата центра сертификации. Учитывая распространенность сертификатов X.509, сертификат, скорее всего, будет правильно отформатирован в соответствии со стандартном RFC 5280 IETF.
Создание самозаверяющего сертификата
Процесс создания самозаверяющего сертификата ЦС X.509 аналогичен покупке, за исключением привлечения стороннего подписывающего лица, такого как корневой центр сертификации. В нашем примере компания X подписывает свой сертификат вместо корневого центра сертификации.
Вы можете выбрать этот вариант для тестирования, пока не будете готовы приобрести сертификат ЦС. Вы также можете использовать самозаверяющий сертификат ЦС X.509 в рабочей среде, если устройства не подключаются к сторонним службам за пределами Центр Интернета вещей.
Регистрация сертификата в Центре Интернета вещей
Компания X должна зарегистрировать ЦС X.509 в Центр Интернета вещей, где она служит для проверки подлинности Smart-X-Мини-приложений при подключении. Это однократный процесс, который дает возможность выполнять аутентификацию и управлять любым количеством устройств Smart-X-Widget. Связь "один ко многим" между сертификатами ЦС и сертификатами устройств является одним из основных преимуществ использования метода проверки подлинности ЦС X.509. В качестве альтернативы можно передать отдельные отпечатки сертификатов для каждого устройства Smart-X-Widget, что увеличивает эксплуатационные расходы.
Регистрация сертификата ЦС X.509 — это двухэтапный процесс: передача сертификата, а затем подтверждение владения сертификатом.
Загрузка сертификата
Чтобы отправить сертификат ЦС X.509, необходимо просто передать сертификат ЦС в Центр Интернета вещей. Центр Интернета вещей ожидает, что сертификат содержится в файле.
Файл сертификата не должен ни при каких обстоятельствах содержать закрытые ключи. Рекомендации согласно стандартам управления инфраструктурой открытых ключей (PKI) предусматривают, чтобы закрытые ключи были известны только в компании X.
Доказать владение
Сертификат ЦС X.509, как и любой цифровой сертификат, является общедоступной информацией, которая подвержена атакам перехвата информации. Таким образом, злоумышленник может перехватить сертификат и попытаться передать его как свой собственный. В нашем примере Центр Интернета вещей хочет удостовериться, что передаваемый сертификат ЦС компании X действительно принадлежит этой компании. Центр Интернета вещей требует, чтобы компания доказала, что она действительно владеет сертификатом, с помощью потока подтверждения владения.
В потоке подтверждения владения Центр Интернета вещей генерирует случайное число, которое должна подписать компания X, используя свой закрытый ключ. Если компания следует рекомендациям PKI и защищает закрытый ключ, тогда только она сможет пройти проверку подтверждения владения. Центр Интернета вещей продолжает регистрацию сертификата ЦС X.509, когда проверка подтверждения владения будет успешно пройдена.
После успешного ответа на запрос подтверждения владения от Центра Интернета вещей регистрация сертификата ЦС X.509 завершается.
подпись устройств в цепочке доверия сертификатов;
Для Интернета вещей требуется уникальное удостоверение для каждого устройства, которое подключается. Для проверки подлинности на основе сертификатов эти удостоверения находятся в виде сертификатов. В нашем примере проверка подлинности на основе сертификатов означает, что каждый smart-X-Widget должен иметь уникальный сертификат устройства.
Допустимый, но неэффективный способ предоставления уникальных сертификатов на каждом устройстве заключается в предварительном создании сертификатов для Smart-X-Widgets и доверия партнерам цепочки поставок с соответствующими закрытыми ключами. Для компании X это означает, что необходимо доверить ключи фабрике Y и техническому специалисту Z. Этот метод поставляется с проблемами, которые необходимо преодолеть, чтобы обеспечить доверие следующим образом:
Предоставление закрытых ключей устройств партнерам по цепочке поставок, помимо игнорирования рекомендаций PKI, делает установку доверия в цепочке поставок дорогостоящей. Для этого требуются такие системы, как безопасные комнаты для размещения закрытых ключей устройств, и такие процессы, как периодический аудит безопасности. Оба способа увеличивают стоимость цепочки поставок.
Надежный учет устройств в цепочке поставок и последующее управление ими при развертывании становится задачей "один к одному" для каждой пары "ключ — устройство" с момента создания уникального сертификата устройства (и закрытого ключа) до вывода устройства из эксплуатации. Это исключает возможность группового управления устройствами, если только концепция группы не явно встроена в процесс каким-либо образом. Таким образом, безопасный учет и управление жизненным циклом устройств существенно усложняются.
Аутентификация на основе сертификатов ЦС X.509 предлагает элегантные решения этих проблем благодаря использованию цепочки сертификатов. Цепочка сертификатов начинается с центра сертификации, подписывающего промежуточный центр сертификации, который, в свою очередь, подписывает еще один промежуточный центр сертификации, и так продолжается до тех пор, пока конечный промежуточный центр сертификации не подпишет устройство. В нашем примере компания X подписывает фабрику Y, которая, в свою очередь, подписывает специалиста Z, который, наконец, подписывает Smart-X-Widget.
Этот каскад сертификатов в цепочке представляет логическую передачу полномочий. Многие цепочки поставок следуют этой логической передаче, когда каждый промежуточный ЦС подписывается в цепочке при получении всех вышестоящих сертификатов ЦС, а последний промежуточный ЦС подписывает каждое устройство и вставляет все сертификаты ЦС из цепочки в устройство. Эта передача распространена, когда контрактная производственная компания с иерархией заводов комиссии конкретной фабрики делать производство. Хотя иерархия может иметь несколько уровней (например, география/тип продукта/производственная линия), только фабрика в конце получает возможность взаимодействовать с устройством, а цепочка поддерживается с вершины иерархии.
Альтернативные цепочки могут иметь разные промежуточные центры сертификации, взаимодействующие с устройством, и в этом случае ЦС, взаимодействующий с устройством, внедряет содержимое цепочки сертификатов в этой точке. Гибридные модели также возможны, когда только некоторые из ЦС физически взаимодействуют с устройством.
На указанной ниже схеме показано, как цепочка сертификатов доверия объединяется в нашем примере Smart-X-Widget.
- Компания X никогда физически не взаимодействует с какими-либо из приложений Smart-X-Widget. Она инициирует цепочку сертификатов доверия, подписывая промежуточный сертификат ЦС фабрики Y.
- Фабрика Y теперь имеет собственный промежуточный сертификат ЦС и подпись компании X. Она передает копии этих элементов на устройство. Она также использует промежуточный сертификат ЦС для подписи промежуточного сертификата ЦС технического специалиста Z и сертификата устройства Smart-X-Widget.
- Теперь у технического специалиста Z есть собственный промежуточный сертификат ЦС и подпись фабрики Y. Она передает копии этих элементов на устройство. Она также использует промежуточный сертификат ЦС для подписи сертификата устройства Smart-X-Widget.
- Каждое устройство Smart-X-Widget теперь имеет собственный уникальный сертификат устройства и копии открытых ключей и подписей из каждого промежуточного сертификата ЦС, с которым оно взаимодействовало во всей цепочке поставок. Эти сертификаты и подписи можно отследить до исходной корневой компании X.
Метод проверки подлинности на основе ЦС обеспечивает надежную отчетность в цепочке поставок производства устройств. Из-за процесса цепочки сертификатов действия каждого члена в цепочке криптографически записываются и проверяются.
Этот процесс основывается на предположении, что пара открытых и закрытых ключей уникального устройства создается независимо и что закрытый ключ всегда защищен на устройстве. К счастью, надежные кремниевые микросхемы доступны в виде HSM способны создавать ключи внутри себя и защищать закрытые ключи. Компании X необходимо добавить одну из таких микросхем в спецификацию компонентов Smart-X-Widget.
Проверка подлинности устройств
После регистрации сертификата ЦС верхнего уровня в Центре Интернета вещей и получения уникальных сертификатов для устройства, как подключить эти сертификаты? Зарегистрируя сертификат ЦС X.509 для Центр Интернета вещей один раз, как потенциально миллионы устройств подключаются и проходят проверку подлинности с первого раза? Через тот же поток отправки сертификатов и проверки владения, который мы ранее столкнулись с регистрацией сертификата ЦС X.509.
Устройства, которые должны пройти аутентификацию ЦС X.509, снабжены уникальными сертификатами устройств и цепочкой сертификатов соответствующей производственной цепочки поставок. Даже первое подключение устройства происходит в два этапа: передача цепочки сертификатов и подтверждение владения.
Во время передачи цепочки сертификатов устройство передает свой уникальный сертификат и установленную на нем цепочку сертификатов в Центр Интернета вещей. Используя предварительно зарегистрированный сертификат ЦС X.509, Центр Интернета вещей проверяет, что переданная цепочка сертификатов внутренне согласована и что цепочка была создана истинным владельцем сертификата ЦС X.509. Как и процесс регистрации ЦС X.509, Центр Интернета вещей использует процесс подтверждения владения, чтобы убедиться, что цепочка и, следовательно, сертификат устройства принадлежат устройству, которое его передает. В результате успешного ответа Центр Интернета вещей воспринимает устройство как аутентичное и разрешает ему подключиться.
В нашем примере каждый Smart-X-Widget будет загружать уникальный сертификат своего устройства вместе с сертификатами ЦС X.509 фабрики Y и поставщика Z, а затем проходить процесс подтверждения владения, инициированный Центром Интернета вещей.
Основой доверия является защита закрытых ключей, включая закрытые ключи устройства. Поэтому важно использовать надежные кремниевые микросхемы в виде модулей HSM для защиты закрытых ключей устройства и следовать рекомендации никогда не давать доступ к закрытым ключам, например, когда одна фабрика доверяет другой свой закрытый ключ.
Следующие шаги
Используйте службу подготовки устройств для подготовки нескольких устройств X.509 с помощью групп регистрации.
Дополнительные сведения о полях, составляющих сертификат X.509, см. в разделе сертификатов X.509.
Если у вас есть сертификат корневого ЦС или подчиненный сертификат ЦС, и вы хотите передать его в центр Интернета вещей, необходимо убедиться, что этот сертификат принадлежит. Дополнительные сведения см. в руководстве по созданию и отправке сертификатов для тестирования.