Sdílet prostřednictvím


Podpora protokolu TLS (Transport Layer Security) ve službě IoT Hub

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

Note

Azure IoT Hub ukončí podporu protokolu TLS 1.0 a 1.1 v souladu s oznámením o celé službě Azure pro vyřazeníprotokolu TLS 1.0 a 1.1 31. srpna 2025. IoT Hub navíc nebude podporovat slabé šifrovací sady od 31. srpna 2025. Pro stávající i nové ioT Huby se budou podporovat pouze doporučené silné šifrovací sady.

Proto je nezbytné správně otestovat a ověřit, že všechna vaše zařízení a služby IoT jsou kompatibilní s protokolem TLS 1.2 a doporučenými šifrováními předem. Důrazně doporučujeme použít minimální funkci vynucení protokolu TLS jako mechanismus pro testování a dodržování předpisů.

Important

Je důležité rozlišovat mezi podporou protokolu TLS 1.2 a vynucením protokolu TLS 1.2. Protokol TLS 1.2 je podporován ve všech ioT Hubech, což znamená, že IoT Hubs dokáže zpracovávat připojení pomocí protokolu TLS 1.2. Na druhou stranu vynucení protokolu TLS 1.2 zajišťuje, že IoT Hub přijímá pouze připojení pomocí protokolu TLS 1.2 nebo vyšší. Pokud je povolené vynucování protokolu TLS 1.2, služba také vynucuje použití silných šifrovacích sad.

V současné době se vynucení protokolu TLS 1.2 podporuje jenom v oblastech veřejného cloudu.

Informace o verzi protokolu TLS, na kterých běží vaše zařízení IoT Hubu, najdete v průvodci ukončením podpory tls 1.0 a 1.1.

Vzájemná podpora protokolu TLS

Vzájemné ověřování TLS zajišťuje, že klient ověřuje certifikát serveru (IoT Hub) a server (IoT Hub) ověřuje klienta pomocí klientského certifikátu X.509 nebo kryptografického otisku X.509. IoT Hub provádí autorizaci po dokončení ověřování .

V případě protokolů AMQP (Advanced Message Queuing Protocol) a MQTT (Message Queuing Telemetry Transport) služba IoT Hub vyžádá klientský certifikát v počátečním protokolu TLS handshake. Pokud je k dispozici, Služba IoT Hub ověří klientský certifikát a klient ověří certifikát služby IoT Hub. Tento proces se nazývá vzájemné ověřování TLS. Když IoT Hub obdrží paket připojení MQTT nebo se otevře propojení AMQP, Služba IoT Hub provede autorizaci pro žádajícího klienta a určí, jestli klient vyžaduje ověření X.509. Pokud bylo dokončeno vzájemné ověřování TLS a klient má oprávnění připojit se jako zařízení, je povoleno. Pokud ale klient vyžaduje ověřování X.509 a během metody handshake protokolu TLS se ověření klienta nedokončilo, Služba IoT Hub připojení odmítne.

Když klient provede první požadavek protokolu HTTP, Služba IoT Hub zkontroluje, jestli klient vyžaduje ověřování X.509, a pokud bylo ověření klienta dokončeno, služba IoT Hub provede autorizaci. Pokud se ověření klienta nedokončí, IoT Hub připojení odmítne.

Po úspěšném handshake protokolu TLS může IoT Hub ověřit zařízení pomocí symetrického klíče nebo certifikátu X.509. Pro ověřování na základě certifikátu služba IoT Hub ověří certifikát proti kryptografickému otisku nebo certifikační autoritě, kterou zadáte. Další informace najdete v tématu Ověřování identit pomocí certifikátů X.509.

Certifikát TLS serveru služby IoT Hub

Během TLS handshaku IoT Hub prezentuje serverové certifikáty s RSA klíči připojeným klientům. Všechna centra IoT v globálním cloudu Azure používají certifikát TLS vydaný globálním kořenovým adresářem DigiCert G2.

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

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

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

Migrace kořenové certifikační autority jsou vzácné. IoT řešení byste měli vždy připravit na nepravděpodobnou událost, že dojde ke kompromitaci kořenové certifikační autority a je nutná migrace kořenové certifikační autority v případě nouze.

Šifrovací sady

Od 31. srpna 2025 služba IoT Hub vynucuje použití doporučených sad silné šifry pro všechny stávající a nové ioT Huby. Nedoporučují se (slabé) šifrovací sady po tomto datu.

Aby služba IoT Hub dodržovala zásady zabezpečení Azure pro zabezpečené připojení, podporuje pouze následující šifrovací sady RSA a ECDSA:

  • 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

Note

Šifrovací sady ECDSA jsou dostupné jenom v oblastech veřejného cloudu.

Následující nedoporučující šifrovací sady jsou povoleny v centrech bez minTlsVersion:1.2 až do 31. srpna 2025:

  • TLS_DHE_RSA_WITH_AES_256_GCM_SHA384
  • TLS_DHE_RSA_WITH_AES_128_GCM_SHA256
  • TLS_RSA_WITH_AES_256_GCM_SHA384
  • TLS_RSA_WITH_AES_128_GCM_SHA256
  • TLS_RSA_WITH_AES_256_CBC_SHA256
  • TLS_RSA_WITH_AES_128_CBC_SHA256
  • TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA
  • TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA
  • TLS_RSA_WITH_AES_128_CBC_SHA
  • TLS_RSA_WITH_AES_256_CBC_SHA

Klient může navrhnout seznam vyšších šifrovacích sad, které se mají použít během ClientHello. IoT Hub ale nemusí některé z nich podporovat, ECDHE-ECDSA-AES256-GCM-SHA384například . V tomto případě se IoT Hub pokusí sledovat preferenci klienta, ale nakonec vyjedná šifrovací sadu s ServerHello.

Note

Při použití šifry ECDSA nebo ECDHE musí klient poskytnout rozšíření supported_groups v ClientHello s platnou skupinou. Při připojování pomocí klientského certifikátu musí klient zahrnout křivku použitou v daném klientském certifikátu v jeho supported_groups rozšíření.

Aktualizace podpory ioT Hubu na TLS 1.2

Po vytvoření IoT Hubu lze vlastnost minTlsVersion aktualizovat pomocí Azure Portalu, příkazového řádku nebo sad SDK. Pokud potřebujete vynutit, aby služba IoT Hub používala protokol TLS 1.2 a silné šifrovací sady (povolené pouze ve vybraných oblastech) nebo nastavili podporu protokolu TLS 1.2 (podporovanou ve všech oblastech), můžete to provést podle těchto kroků.

Aktualizace IoT Hubu pro podporu protokolu TLS 1.2 nebo vynucení silných šifrovacích sad na webu Azure Portal:

  1. Na webu Azure Portal přejděte ke stávající službě IoT Hub.

  2. Na kartě Přehled v nabídce vlevo klikněte na odkaz Minimální verze protokolu TLS v části Základy.

    Snímek obrazovky znázorňující, jak zvolit minimální verzi podpory protokolu TLS

  3. V okně minimální verze protokolu TLS vyberte 1.2 , abyste měli jistotu, že se můžou připojit jenom zařízení podporující protokol TLS 1.2 nebo vyšší.

  4. Klikněte na Update.

    Snímek obrazovky znázorňující, jak zapnout podporu protokolu TLS 1.2

Note

IoT Hub můžete aktualizovat na TLS 1.2 ve všech oblastech veřejného cloudu.

Vynucení používání TLS 1.2 a silných šifrovacích sad v IoT Hubu

Pokud chcete zajistit, aby vaše zařízení IoT používala protokol TLS 1.2 a dodržování předpisů se silnými šifrovacími sadami , můžete dodržování předpisů vynutit pomocí minimální funkce vynucení protokolu TLS ve službě Azure IoT Hub.

Note

V současné době je tato funkce dostupná jenom v oblastech veřejného cloudu.

Pro povolení prosazení TLS 1.2 a silných šifrovacích sad v Azure portálu:

  1. Na webu Azure Portal přejděte do průvodce vytvořením služby IoT Hub.

  2. Ze seznamu podporovaných oblastí vyberte oblast .

  3. V části Správa –> Advanced –> Tls (Transport Layer Security) –> Minimální verze protokolu TLS vyberte 1.2. Toto nastavení se zobrazí jenom pro centrum IoT vytvořené v podporované oblasti.

    Snímek obrazovky znázorňující, jak zapnout vynucení protokolu TLS 1.2 během vytváření centra IoT

  4. Vyberte Vytvořit

  5. Připojte zařízení IoT k tomuto IoT Hubu.

Pokud chcete k vytvoření použít šablonu ARM, zřiďte novou službu IoT Hub v libovolné z podporovaných oblastí a nastavte minTlsVersion vlastnost na 1.2 specifikaci prostředku:

{
    "$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
            }
        }
    ]
}

Vytvořený prostředek ioT Hubu pomocí této konfigurace odmítne klienty zařízení a služeb, kteří se pokusí připojit pomocí protokolu TLS verze 1.0 a 1.1. Podobně se metoda handshake protokolu TLS odmítne, pokud ClientHello zpráva nevypíše žádné doporučené šifry.

Note

Po převzetí služeb při selhání zůstává vlastnost IoT Hubu platná v geograficky spárované oblasti.

Kontrola verzí protokolu TLS a šifrovacích sad pro zařízení IoT Hubu

Azure IoT Hub poskytuje možnost zkontrolovat verzi protokolu TLS, šifrovací sady a další metriky připojení zařízení, které pomáhají monitorovat zabezpečení zařízení IoT. Metriky služby IoT Hub nebo diagnostické protokoly můžete použít ke sledování využití verzí protokolu TLS a dalších souvisejících vlastností, jako je Cipher Suites.

Note

V současné době je tato funkce dostupná jenom v oblastech veřejného cloudu.

Kontrola verzí protokolu TLS a šifrovacích sad s využitím metrik IoT Hubu

Pokud chcete ověřit, že provoz zařízení do služby IoT Hub využívá TLSv1.2 a silné šifrovací sady, můžete zkontrolovat metriky služby IoT Hub. To umožňuje filtrovat podle verze protokolu TLS nebo sady šifer a zkontrolovat počet úspěšných připojení.

  1. Na webu Azure Portal přejděte do centra IoT.

  2. V nabídce vlevo v části Monitorování vyberte Metriky.

  3. Přidejte metriku Úspěšná připojení.

    Snímek obrazovky znázorňující, jak přidat metriku Úspěšné připojení

  4. Filtrovat podle verze protokolu TLS nebo sady šifer vyberte tlačítko Přidat filtr a zvolte odpovídající vlastnost, verzi protokolu TLS nebo šifrovací sadu, operátor, například "=" a hodnotu, například TLSv1.2.

    Snímek obrazovky znázorňující, jak filtrovat podle verze protokolu TLS nebo sady šifer

  5. Po použití filtru se zobrazí součet zařízení s úspěšnými připojeními ioT Hubu na základě filtrované vlastnosti a hodnot.

Kontrola verzí protokolu TLS a šifrovacích sad pomocí diagnostických protokolů služby IoT Hub

Azure IoT Hub může poskytovat diagnostické protokoly pro několik kategorií, které je možné analyzovat pomocí protokolů služby Azure Monitor. V protokolu připojení najdete verzi protokolu TLS a sadu šifer pro vaše zařízení IoT Hubu.

Pokud chcete zobrazit tyto protokoly, postupujte takto:

  1. Na webu Azure Portal přejděte do centra IoT.

  2. V nabídce na levé straně v části Monitorování vyberte Nastavení diagnostiky. Ujistěte se, že v nastavení diagnostiky je zaškrtnutá položka „Připojení“.

  3. V nabídce na levé straně v části Monitorování vyberte Protokoly.

  4. Zadejte následující dotaz:

    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
    
  5. Příklad výsledků dotazu vypadá takto:

    Diagram znázorňující dotaz na verzi protokolu TLS zařízení

Note

Dotaz na verzi protokolu TLS není k dispozici pro zařízení používající připojení HTTPS.

Konfigurace TLS pro SDK a IoT Edge

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

Jazyk Verze podporující protokol TLS 1.2 Documentation
C Značka 2019-12-11 nebo novější Link
Python Verze 2.0.0 nebo novější Link
jazyk C# Verze 1.21.4 nebo novější Link
Java Verze 1.19.0 nebo novější Link
Node.js Verze 1.12.2 nebo novější Link

Zařízení IoT Edge je možné nakonfigurovat tak, aby při komunikaci se službou IoT Hub používala protokol TLS 1.2. K tomuto účelu použijte stránku dokumentace k IoT Edge.

Certifikát TLS serveru ECC (Elliptic Curve Cryptography)

I když nabízí podobné zabezpečení jako certifikáty RSA, ověřování certifikátů ECC (s šifrovacími sadami pouze ECC) využívá až 40 % méně výpočetních prostředků, paměti a šířky pásma. Tyto úspory jsou pro zařízení IoT důležité kvůli menším profilům a paměti a k podpoře případů použití v prostředích s omezenou šířkou pásma sítě.

Použití certifikátu serveru ECC služby IoT Hub:

  1. Ujistěte se, že všechna zařízení důvěřují následujícím kořenovým certifikačním autoritám:
    • Kořenová certifikační autorita DigiCert Global G2
    • Kořenová certifikační autorita Microsoft RSA 2017
  2. Nakonfigurujte klienta tak, aby zahrnoval pouze šifrovací sady ECDSA a vyloučil všechny sady RSA. Toto jsou podporované šifrovací sady pro certifikát 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
  3. Připojte klienta k centru IoT.

Note

V současné době je tato funkce dostupná jenom v oblastech veřejného cloudu.

Vyjednávání maximální délky fragmentu protokolu TLS

IoT Hub také podporuje vyjednávání maximální délky fragmentů protokolu TLS, které se někdy označuje jako vyjednávání velikosti rámce TLS. Tato funkce je ve verzi Public Preview.

Tato funkce slouží k určení maximální délky fragmentu prostého textu na hodnotu menší než výchozích 2^14 bajtů. Jakmile vyjednáte, IoT Hub a klient začnou fragmentovat zprávy, aby se zajistilo, že všechny fragmenty jsou menší než vyjednaná délka. Toto chování je užitečné pro výpočetní nebo paměť omezená zařízení. Další informace najdete v oficiální specifikaci rozšíření TLS.

Oficiální podpora sady SDK pro tuto funkci Public Preview ještě není dostupná. Začínáme

  1. Vytvořit IoT Hub.
  2. Při použití OpenSSL zavolejte SSL_CTX_set_tlsext_max_fragment_length určit velikost fragmentu.
  3. Připojte klienta ke službě IoT Hub.

Note

V současné době je tato funkce dostupná jenom v oblastech veřejného cloudu.

Připnutí certifikátu

Připnutí a filtrování certifikátů serveru TLS a zprostředkujících certifikátů přidružených ke koncovým bodům služby IoT Hub se důrazně nedoporučuje, protože Microsoft tyto certifikáty často zahrnuje s minimálním nebo žádným upozorněním. Kořenové certifikáty připínejte, jak je popsáno v tomto článku Azure IoT, pokud je to nutné.

Další kroky