Поддержка протокола TLS в Центре Интернета вещей
Центр Интернета вещей использует протокол TLS для защиты подключений от устройств и служб Интернета вещей.
Примечание.
Центр Интернета вещей Azure завершит поддержку TLS 1.0 и 1.1 в соответствии с объявлением о широкой службе Azure для Tls 1.0 и 1.1 выхода на пенсию 31 августа 2025 г.
Поэтому необходимо правильно проверить и проверить, совместимы ли все устройства и службы Интернета вещей с TLS 1.2 и рекомендуемыми шифрами заранее. Настоятельно рекомендуется использовать минимальную функцию принудительного применения TLS в качестве механизма тестирования и соответствия требованиям.
Чтобы узнать версию TLS, Центр Интернета вещей устройства работают, ознакомьтесь с руководством по поддержке TLS 1.0 и 1.1.
Взаимная поддержка TLS
Взаимная проверка подлинности TLS гарантирует, что клиент выполняет проверку подлинности сертификата сервера (Центр Интернета вещей), а сервер (Центр Интернета вещей) выполняет проверку подлинности клиента с помощью сертификата клиента X.509 или отпечатка X.509. Центр Интернета вещей выполняет авторизацию после завершения проверки подлинности.
Для протоколов расширенной очереди сообщений (AMQP) и очереди сообщений транспорта телеметрии (MQTT) Центр Интернета вещей запрашивает сертификат клиента в первоначальном подтверждении TLS. Если он указан, Центр Интернета вещей проверяет подлинность сертификата клиента, а клиент выполняет проверку подлинности сертификата Центр Интернета вещей. Этот процесс называется взаимной проверкой подлинности TLS. Когда Центр Интернета вещей получает пакет подключения MQTT или откроется ссылка AMQP, Центр Интернета вещей выполняет авторизацию для запрашивающего клиента и определяет, требуется ли проверка подлинности X.509. Если взаимная проверка подлинности TLS завершена, и клиент может подключиться как устройство, это разрешено. Однако если клиенту требуется проверка подлинности X.509 и проверка подлинности клиента не была завершена во время подтверждения TLS, то Центр Интернета вещей отклоняет подключение.
Для протокола HTTP, когда клиент выполняет свой первый запрос, Центр Интернета вещей проверяет, требуется ли для клиента проверка подлинности X.509 и если проверка подлинности клиента завершена, Центр Интернета вещей выполняет авторизацию. Если проверка подлинности клиента не завершена, Центр Интернета вещей отклоняет подключение.
После успешного подтверждения TLS Центр Интернета вещей может проверить подлинность устройства с помощью симметричного ключа или сертификата X.509. Для проверки подлинности на основе сертификатов Центр Интернета вещей проверяет сертификат на основе отпечатка или центра сертификации (ЦС). Дополнительные сведения см. в статье "Проверка подлинности удостоверений с помощью сертификатов X.509".
Сертификат TLS сервера Центра Интернета вещей
Во время подтверждения TLS Центр Интернета вещей предоставляет сертификаты сервера с ключом RSA для подключения клиентов. Все центры Интернета вещей в глобальном облаке Azure используют сертификат TLS, выданный Global Root G2 DigiCert.
Настоятельно рекомендуется, чтобы все устройства доверяли следующим трем корневым ЦС:
- Корневой ЦС DigiCert Global G2
- Корневой ЦС Microsoft RSA 2017
Ссылки на скачивание этих сертификатов см. в разделе "Центр сертификации Azure".
Миграции корневого ЦС редки. Вы всегда должны подготовить решение Интернета вещей к маловероятному событию, что корневой ЦС скомпрометирован и требуется миграция корневого ЦС для экстренного реагирования.
Комплекты шифров
Чтобы обеспечить соответствие политике безопасности Azure для безопасного подключения, Центр Интернета вещей поддерживает следующие наборы шифров RSA и ECDSA для TLS 1.2:
- TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
- TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
- TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256
- TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384
- TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
- TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
- TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256
- TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384
В настоящее время в Центр Интернета вещей разрешены следующие наборы шифров. Однако эти наборы шифров больше не рекомендуются рекомендациями по безопасности Azure.
Комплекты шифров | Поддержка версий TLS |
---|---|
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 | TLS 1.2 |
TLS_DHE_RSA_WITH_AES_256_GCM_SHA384 | TLS 1.2 |
TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 | TLS 1.2 |
TLS_RSA_WITH_AES_256_GCM_SHA384 | TLS 1.2 |
TLS_RSA_WITH_AES_128_GCM_SHA256 | TLS 1.2 |
TLS_RSA_WITH_AES_256_CBC_SHA256 | TLS 1.2 |
TLS_RSA_WITH_AES_128_CBC_SHA256 | TLS 1.2 |
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA | TLS 1.0/1.1/1.2 |
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA | TLS 1.0/1.1/1.2 |
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA | TLS 1.0/1.1/1.2 |
TLS_RSA_WITH_3DES_EDE_CBC_SHA | TLS 1.0/1.1/1.2 |
TLS_RSA_WITH_3DES_EDE_CBC_SHA | TLS 1.0/1.1/1.2 |
TLS_RSA_WITH_AES_128_CBC_SHA | TLS 1.0/1.1/1.2 |
TLS_RSA_WITH_AES_256_CBC_SHA | TLS 1.0/1.1/1.2 |
Клиент может предложить список наборов шифров более поздних версий для использования во время ClientHello
. Однако некоторые из них могут не поддерживаться Центром Интернета вещей (например, ECDHE-ECDSA-AES256-GCM-SHA384
). В этом случае Центр Интернета вещей пытается следовать предпочтениям клиента, но в конечном итоге согласуется с набором шифров.ServerHello
Принудительное применение Центр Интернета вещей для использования наборов шифров TLS 1.2 и строгих наборов шифров
Чтобы обеспечить соответствие устройств Интернета вещей tls 1.2 и строгому соответствию наборов шифров, вы можете применить соответствие с помощью минимальной функции принудительного применения TLS в Центр Интернета вещей Azure.
В настоящее время эта функция доступна только в следующих регионах и во время создания Центр Интернета вещей (другие регионы Azure будут поддерживаться в 2025 году):
- Восточная часть США
- Центрально-южная часть США
- западная часть США 2
- US Gov (Аризона)
- US Gov (Вирджиния) (поддержка TLS 1.0/1.1 недоступна в этом регионе — необходимо включить принудительное использование TLS 1.2, иначе не удастся создать Центр Интернета вещей)
Чтобы включить принудительное применение наборов шифров TLS 1.2 и строгих наборов шифров в портал Azure:
Просмотр с помощью мастера создания Центр Интернета вещей в портал Azure
Выберите Регион из указанного выше списка.
В разделе Управление -> Расширенные-> TLS -> Минимальная версия TLS выберите 1.2. Этот параметр отображается только для центра Интернета вещей, созданного в поддерживаемом регионе.
Нажмите кнопку Создать.
Подключение устройств Интернета вещей к этому Центр Интернета вещей
Чтобы использовать шаблон ARM для создания, подготовьте новый центр Интернета вещей в любом из поддерживаемых регионов и присвойте свойству minTlsVersion
значение 1.2
в спецификации ресурсов:
{
"$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"resources": [
{
"type": "Microsoft.Devices/IotHubs",
"apiVersion": "2020-01-01",
"name": "<provide-a-valid-resource-name>",
"location": "<any-of-supported-regions-below>",
"properties": {
"minTlsVersion": "1.2"
},
"sku": {
"name": "<your-hubs-SKU-name>",
"tier": "<your-hubs-SKU-tier>",
"capacity": 1
}
}
]
}
Созданный ресурс Центр Интернета вещей с помощью этой конфигурации отклоняет клиенты устройств и служб, которые пытаются подключиться с помощью TLS версии 1.0 и 1.1. Аналогичным образом, подтверждение TLS отказывается, если ClientHello
сообщение не перечисляет какие-либо рекомендуемые шифры.
Примечание.
Свойство minTlsVersion
доступно только для чтения и не может быть изменено после создания ресурса Центр Интернета вещей. Поэтому необходимо правильно проверить и проверить, совместимы ли все устройства и службы Интернета вещей с TLS 1.2 и рекомендуемыми шифрами заранее.
После отработки minTlsVersion
отказа свойство Центр Интернета вещей остается эффективным в геопаренной области после отработки отказа.
Проверка версий TLS для устройств Центр Интернета вещей
Центр Интернета вещей Azure могут предоставлять журналы диагностики для нескольких категорий, которые можно анализировать с помощью журналов Azure Monitor. В журнале подключений можно найти версию TLS для Центр Интернета вещей устройств.
Чтобы просмотреть эти журналы, выполните следующие действия.
- Найдите нужный Центр Интернета вещей на портале Azure.
- В меню ресурсов в разделе "Мониторинг" выберите параметры диагностики. Убедитесь, что параметры диагностики имеют флажок "Подключения".
- В меню ресурсов в разделе "Мониторинг" выберите "Журналы".
- Введите следующий запрос:
AzureDiagnostics
| where ResourceProvider == "MICROSOFT.DEVICES" and ResourceType == "IOTHUBS"
| where Category == "Connections"
| where OperationName == "deviceConnect"
| extend props_json = parse_json(properties_s)
| project DeviceId = props_json.deviceId, TLSVersion = props_json.tlsVersion
- Пример результатов запроса выглядит следующим образом:
- Примечание. Запрос версии TLS недоступен для устройств с помощью подключений HTTPS.
Конфигурация TLS для пакета SDK и IoT Edge
Используйте следующие ссылки для настройки шифров TLS 1.2 и разрешенных шифров в Центр Интернета вещей клиентских пакетах SDK.
Язык | Версии, поддерживающие TLS 1.2 | Документация |
---|---|---|
C | Тег 2019-12-11 или более новый | Ссылка |
Python | Версия 2.0.0 или более новая | Ссылка |
C# | Версия 1.21.4 или более новая | Ссылка |
Java | Версия 1.19.0 или более новая | Ссылка |
NodeJS | Версия 1.12.2 или более новая | Ссылка |
Устройства IoT Edge можно настроить для использования TLS 1.2 при обмене данными с Центром Интернета вещей. Дополнительные сведения см. на странице документации IoT Edge.
Сертификат TLS сервера с многоточием кривой (ECC)
Обеспечивая почти тот же уровень безопасности, что и сертификаты RSA, проверка сертификата ECC (с уникальными наборами шифров) использует до 40 % меньше вычислительных ресурсов, памяти и пропускной способности. Эта экономия важна для устройств Интернета вещей из-за небольших профилей и памяти, а также для поддержки вариантов использования в средах с ограниченной пропускной способностью сети.
Чтобы использовать сертификат сервера ECC Центр Интернета вещей, выполните приведенные ниже действия.
- Убедитесь, что все устройства доверяют следующим корневым центрам сертификации:
- Корневой ЦС DigiCert Global G2
- Корневой ЦС Microsoft RSA 2017
-
Настройте клиент так, чтобы он включал только наборы шифров ECDSA и не включал наборы шифров RSA. Это поддерживаемые наборы шифров для сертификата ECC:
TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256
TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384
- Подключите клиент к Центру Интернета вещей.
Согласование максимальной длины фрагментов TLS
Центр Интернета вещей также поддерживает согласование максимальной длины фрагмента TLS, которое иногда называют согласованием размера кадра TLS. Эта функция предоставляется в общедоступной предварительной версии.
Используйте эту функцию, чтобы указать максимальную длину фрагмента в виде открытого текста, значение которого меньше значения по умолчанию 2^14 байт. После согласования Центр Интернета вещей и клиент начинают фрагментирование сообщений, чтобы все фрагменты были меньше согласованной длины. Такое поведение полезно для устройств с ограниченным объемом памяти или вычислительных ресурсов. Дополнительные сведения см. в официальной спецификации расширения TLS.
Официальная поддержка пакета SDK для этой общедоступной предварительной версии пока недоступна. Начало работы
- Создайте Центр Интернета вещей.
- При использовании OpenSSL вызовите SSL_CTX_set_tlsext_max_fragment_length, чтобы указать размер фрагмента.
- Подключите клиент к Центр Интернета вещей.
Привязка к сертификату
Закрепление сертификатов и фильтрация сертификатов сервера TLS и промежуточных сертификатов, связанных с конечными точками Центр Интернета вещей, настоятельно не рекомендуется, так как корпорация Майкрософт часто развертывает эти сертификаты без уведомления. Если необходимо, привяжите только корневые сертификаты, как описано в этой записи блога Azure IoT.
Следующие шаги
- Дополнительные сведения о безопасности Центра Интернета вещей и управлении доступом см. в статье Управление доступом к центру Интернета вещей.
- Дополнительные сведения об использовании сертификата X.509 для проверки подлинности устройства см. в статье Проверка подлинности устройства с помощью сертификатов ЦС X.509.