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

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

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

  • TLS 1.2

Omezení připojení k 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 nemusíte 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ý nastaví minTlsVersion vlastnost do 1.2 specifikace prostředku DPS šablony Azure Resource Manager. Následující příklad šablony 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 Manager najdete v tématu Nastavení DPS pomocí šablony Azure Resource Manager.

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ě testovat 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

Při převzetí služeb při selhání minTlsVersion zůstane vlastnost služby DPS platná v geograficky 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

DpS v současné době tyto šifrovací sady stále podporují, 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

Pokud 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 shrnuje s minimálním nebo žádným oznámením. Pokud potřebujete, připněte si 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 s IoT Hub

IoT Hub lze 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 s IoT Edge

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