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


Поддержка TLS для службы подготовки устройств к добавлению в Центр Интернета вещей (DPS)

Служба DPS использует протокол TLS для защиты подключений устройств Интернета вещей.

Версии протокола TLS, которые на данный момент поддерживает служба DPS:

  • TLS 1.2

Ограничение подключений к минимальной версии TLS

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

Внимание

В настоящее время DPS поддерживает только TLS 1.2, поэтому при создании экземпляра DPS не требуется указывать минимальную версию TLS. Эта функция предоставляется для дальнейшего расширения.

Для этого необходимо подготовить новый ресурс DPS. Задайте для свойства minTlsVersion значение 1.2 в спецификации ресурса DPS в шаблоне Azure Resource Manager. В следующем примере шаблона JSON задано свойство minTlsVersion для нового экземпляра DPS.

{
    "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
    "contentVersion": "1.0.0.0",
    "resources": [
        {
            "type": "Microsoft.Devices/ProvisioningServices",
            "apiVersion": "2020-01-01",
            "name": "<provide-a-valid-DPS-resource-name>",
            "location": "<any-region>",
            "properties": {
                "minTlsVersion": "1.2"
            },
            "sku": {
                "name": "S1",
                "capacity": 1
            },
        }     
    ]
}

Чтобы развернуть этот шаблон, выполните следующую команду Azure CLI.

az deployment group create -g <your resource group name> --template-file template.json

Дополнительные сведения о создании ресурсов DPS с помощью шаблонов Resource Manager см. в разделе Настройка DPS с помощью шаблона Azure Resource Manager.

Ресурс DPS, созданный с помощью этой конфигурации, отказывается от устройств, пытающихся подключиться с помощью TLS версии 1.0 и 1.1.

Примечание.

Свойство minTlsVersion доступно только для чтения, и его невозможно изменить после создания ресурса DPS. Важно заранее убедиться, что все устройства Интернета вещей совместимы с TLS 1.2 и рекомендуемыми шифрами.

Примечание.

После отработки отказа свойство minTlsVersion DPS остается в силе в регионе, географически связанном с исходным.

Экземпляры DPS применяют следующие рекомендуемые и устаревшие наборы шифров:

Рекомендуемые наборы шифров TLS 1.2
TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256

Устаревшие наборы шифров

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

Параметр 1 (улучшенная безопасность)
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA_P384 (uses SHA-1)
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA_P256 (uses SHA-1)
TLS_RSA_WITH_AES_256_GCM_SHA384 (lack of Perfect Forward Secrecy)
TLS_RSA_WITH_AES_128_GCM_SHA256 (lack of Perfect Forward Secrecy)
TLS_RSA_WITH_AES_256_CBC_SHA256 (lack of Perfect Forward Secrecy)
TLS_RSA_WITH_AES_128_CBC_SHA256 (lack of Perfect Forward Secrecy)
TLS_RSA_WITH_AES_256_CBC_SHA (uses SHA-1, lack of Perfect Forward Secrecy)
TLS_RSA_WITH_AES_128_CBC_SHA (uses SHA-1, lack of Perfect Forward Secrecy)
Параметр 2 (улучшенная производительность)
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA_P256 (uses SHA-1)
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA_P384 (uses SHA-1)
TLS_RSA_WITH_AES_128_GCM_SHA256 (lack of Perfect Forward Secrecy)
TLS_RSA_WITH_AES_256_GCM_SHA384 (lack of Perfect Forward Secrecy)
TLS_RSA_WITH_AES_128_CBC_SHA256 (lack of Perfect Forward Secrecy)
TLS_RSA_WITH_AES_256_CBC_SHA256 (lack of Perfect Forward Secrecy)
TLS_RSA_WITH_AES_128_CBC_SHA (uses SHA-1, lack of Perfect Forward Secrecy)
TLS_RSA_WITH_AES_256_CBC_SHA (uses SHA-1, lack of Perfect Forward Secrecy)

Взаимная поддержка TLS

При настройке регистраций DPS для проверки подлинности X.509 взаимное tls (mTLS) поддерживается DPS.

Сертификат TLS сервера

Во время подтверждения TLS DPS предоставляет сертификаты сервера с ключом RSA для подключения клиентов. Все экземпляры DPS в глобальном облаке Azure используют сертификат TLS, выданный сертификатом DigiCert Global Root G2.

Мы также рекомендуем добавить сертификаты Корневого центра сертификации Microsoft RSA 2017 на устройства, чтобы предотвратить нарушения в случае неожиданного выхода на пенсию Глобального корневого центра сертификации DigiCert G2. Хотя миграции корневого ЦС являются редкими, для обеспечения устойчивости в современном ландшафте безопасности следует подготовить сценарий Интернета вещей к маловероятному событию, что корневой ЦС скомпрометирован или требуется миграция корневого ЦС для аварийного реагирования.

Настоятельно рекомендуется доверять всем устройствам следующие корневые ЦС:

  • Корневой ЦС DigiCert Global G2
  • Корневой ЦС Microsoft RSA 2017

Ссылки на скачивание этих сертификатов см. в разделе "Центр сертификации Azure".

Доверие к сертификатам в пакетах SDK

Пакеты SDK для устройств Интернета вещей Azure подключаются и проверяют подлинность устройств к службам Интернета вещей Azure. Разные пакеты SDK управляют сертификатами различными способами в зависимости от языка и версии, но большинство из них полагаются на доверенное хранилище сертификатов устройства, а не на закрепление сертификатов непосредственно в базе кода. Этот подход обеспечивает гибкость и устойчивость для обработки будущих изменений в корневых сертификатах.

В следующей таблице приведены сведения о том, какие версии пакета SDK поддерживают хранилище доверенных сертификатов:

Пакет SDK для устройств Azure IoT Поддерживаемые версии
C Все поддерживаемые в настоящее время версии
C# Все поддерживаемые в настоящее время версии
Java Версия 2.x.x и выше
Node.js Все поддерживаемые в настоящее время версии
Python Все поддерживаемые в настоящее время версии

Привязка к сертификату

Закрепление сертификатов и фильтрация сертификатов сервера TLS (также известных как конечные сертификаты) и промежуточных сертификатов, связанных с конечными точками DPS, не рекомендуется, так как корпорация Майкрософт часто развертывает эти сертификаты без уведомления. Если необходимо, закрепите только корневые сертификаты.

Использование TLS 1.2 в пакетах SDK для Интернета вещей

Используйте приведенные ниже ссылки, чтобы настроить TLS 1.2 и разрешенные шифры в пакетах SDK для клиентов Интернета вещей Azure.

Язык Версии, поддерживающие TLS 1.2 Документация
C Тег 2019-12-11 или более новый Ссылка
Python Версия 2.0.0 или более новая Ссылка
C# Версия 1.21.4 или более новая Ссылка
Java Версия 1.19.0 или более новая Ссылка
NodeJS Версия 1.12.2 или более новая Ссылка

Использование TLS 1.2 с Центром Интернета вещей

Центр Интернета вещей можно настроить для связи с устройствами по протоколу TLS 1.2. Дополнительные сведения см. в Центр Интернета вещей принудительном применении TLS.

Использование TLS 1.2 с IoT Edge

Устройства IoT Edge можно настроить для связи с Центром Интернета вещей и DPS по протоколу TLS 1.2. Дополнительные сведения см. на странице документации по IoT Edge.