Podpora protokolu TLS ve službě Azure IoT Hub Device Provisioning (DPS)

DPS k zabezpečení připojení ze zařízení IoT používá protokol TLS (Transport Layer Security).

Aktuální verze protokolu TLS podporované službou DPS jsou:

  • TLS 1.2

Omezení připojení na minimální verzi protokolu TLS

Instance DPS můžete nakonfigurovat tak, aby umožňovaly pouze připojení klientů zařízení, která používají minimální verzi protokolu TLS nebo vyšší.

Důležité

Služba DPS v současné době podporuje pouze protokol TLS 1.2, takže při vytváření instance DPS není nutné zadávat minimální verzi protokolu TLS. Tato funkce je k dispozici pro budoucí rozšíření.

Uděláte to tak, že zřídíte nový prostředek DPS, který vlastnost nastaví minTlsVersion ve 1.2 specifikaci prostředku DPS šablony Azure Resource Manageru. Následující příklad šablona JSON určuje minTlsVersion vlastnost pro novou instanci 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
            },
        }     
    ]
}

Šablonu můžete nasadit pomocí následujícího příkazu Azure CLI.

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

Další informace o vytváření prostředků DPS pomocí šablon Resource Manageru najdete v tématu Nastavení DPS pomocí šablony Azure Resource Manageru.

Prostředek DPS vytvořený pomocí této konfigurace odmítne zařízení, která se pokusí připojit pomocí protokolu TLS verze 1.0 a 1.1.

Poznámka:

Vlastnost minTlsVersion je jen pro čtení a po vytvoření prostředku DPS ji nelze změnit. Proto je nezbytné správně otestovat a ověřit, že všechna vaše zařízení IoT jsou kompatibilní s protokolem TLS 1.2 a doporučenými šiframi předem.

Poznámka:

Po převzetí služeb při selhání minTlsVersion zůstane vlastnost služby DPS platná v geografické spárované oblasti po převzetí služeb při selhání.

Instance DPS vynucují použití následujících doporučených a starších šifrovacích sad:

Doporučené šifrovací sady 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

Starší šifrovací sady

Tyto šifrovací sady jsou v současné době nadále podporovány službou DPS, ale budou vyřazeny. Pokud je to možné, použijte výše uvedené doporučené šifrovací sady.

Možnost č. 1 (lepší zabezpečení)
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)
Možnost č. 2 (lepší výkon)
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)

Vzájemná podpora protokolu TLS

Když jsou registrace DPS nakonfigurované pro ověřování X.509, služba DPS podporuje vzájemné tls (mTLS).

Připnutí certifikátu

Připnutí a filtrování certifikátů serveru TLS (neboli listových certifikátů) a zprostředkujících certifikátů přidružených ke koncovým bodům DPS se důrazně nedoporučuje, protože Microsoft tyto certifikáty často vyřaduje s malými nebo žádným upozorněním. Pokud potřebujete, připněte kořenové certifikáty, jak je popsáno v tomto blogovém příspěvku Azure IoT.

Použití protokolu TLS 1.2 v sadách IoT SDK

Pomocí následujících odkazů nakonfigurujte protokol TLS 1.2 a povolené šifry v klientských sadách SDK Azure IoT.

Jazyk Verze podporující protokol TLS 1.2 Dokumentace
C Značka 2019-12-11 nebo novější Odkaz
Python Verze 2.0.0 nebo novější Odkaz
C# Verze 1.21.4 nebo novější Odkaz
Java Verze 1.19.0 nebo novější Odkaz
NodeJS Verze 1.12.2 nebo novější Odkaz

Použití protokolu TLS 1.2 se službou IoT Hub

IoT Hub je možné nakonfigurovat tak, aby při komunikaci se zařízeními používal protokol TLS 1.2. Další informace najdete v tématu Vyřazení protokolu TLS 1.0 a 1.1 pro IoT Hub.

Použití protokolu TLS 1.2 se službou IoT Edge

Zařízení IoT Edge je možné nakonfigurovat tak, aby při komunikaci se službou IoT Hub a DPS používala protokol TLS 1.2. Další informace najdete na stránce dokumentace k IoT Edge.