Sdílet prostřednictvím


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 stále podporovány službou DPS, ale budou vyřazeny. Pokud je to možné, použijte 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).

Serverový certifikát TLS

Během metody handshake protokolu TLS služba DPS prezentuje certifikáty serveru s klíči RSA pro připojení klientů. Všechny instance DPS v globálním cloudu Azure používají certifikát TLS vydaný certifikátem DigiCert Global Root G2.

Doporučujeme také do zařízení přidat certifikáty kořenové certifikační autority Microsoft RSA 2017, aby se zabránilo přerušení v případě neočekávaného vyřazení globálního kořenového adresáře DigiCert G2. I když jsou migrace kořenové certifikační autority vzácné, pro odolnost v moderním prostředí zabezpečení byste měli připravit scénář IoT na nepravděpodobné události, že dojde k ohrožení kořenové certifikační autority nebo je nutná migrace kořenové certifikační autority.

Důrazně doporučujeme, aby všechna zařízení důvěřovala následujícím kořenovým certifikačním autoritám:

  • Globální certifikační autorita DigiCert G2
  • Kořenová certifikační autorita Microsoft RSA 2017

Odkazy na stažení těchto certifikátů najdete v podrobnostech certifikační autority Azure.

Důvěryhodnost certifikátu v sadách SDK

Sady SDK zařízení Azure IoT se připojují a ověřují zařízení ke službám Azure IoT. Různé sady SDK spravují certifikáty různými způsoby v závislosti na jazyce a verzi, ale většina z nich spoléhá na důvěryhodné úložiště certifikátů zařízení, nikoli na připnutí certifikátů přímo do základu kódu. Tento přístup poskytuje flexibilitu a odolnost pro zpracování budoucích změn v kořenových certifikátech.

Následující tabulka shrnuje, které verze sady SDK podporují úložiště důvěryhodných certifikátů:

Sada SDK pro zařízení Azure IoT Podporované verze
C Všechny aktuálně podporované verze
C# Všechny aktuálně podporované verze
Java Verze 2.x.x a vyšší
Node.js Všechny aktuálně podporované verze
Python Všechny aktuálně podporované verze

Připnutí certifikátu

Od připnutí a filtrování certifikátů serveru TLS (označovaných také jako listové certifikáty) a zprostředkujících certifikátů přidružených ke koncovým bodům DPS se nedoporučuje, protože Microsoft tyto certifikáty často zahrnuje s minimálním nebo žádným upozorněním. Pokud potřebujete, připněte pouze kořenové certifikáty.

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 Vynucení protokolu TLS služby 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.