Freigeben über


Transport Layer Security (TLS)-Unterstützung in IoT Hub

IoT Hub verwendet Transport Layer Security (TLS) zum Sichern von Verbindungen mit IoT-Geräten und -Diensten.

Hinweis

Azure IoT Hub wird die Unterstützung für TLS 1.0 und 1.1 in Übereinstimmung mit der Azure-weiten Dienstankündigung der Deaktivierung von TLS 1.0 und 1.1 am 31. August 2025 beenden.

Daher ist es von entscheidender Bedeutung, dass Sie im Voraus ordnungsgemäß testen und überprüfen, ob alle Ihre IoT-Geräte und -Dienste mit TLS 1.2 und den empfohlenen Verschlüsselungen kompatibel sind. Es wird dringend empfohlen, das minimale TLS-Erzwingungsfeature als Mechanismus für Tests und Compliance zu verwenden.

Von Bedeutung

Es ist wichtig, zwischen TLS 1.2-Unterstützung und TLS 1.2-Erzwingung zu unterscheiden. TLS 1.2 wird auf allen IoT Hubs unterstützt, was bedeutet, dass IoT Hubs Verbindungen mit dem TLS 1.2-Protokoll verarbeiten können. Andererseits stellt die TLS 1.2-Erzwingung sicher, dass IoT Hub nur Verbindungen mit TLS 1.2 oder höher akzeptiert. Wenn die TLS 1.2-Erzwingung aktiviert ist, erzwingt der Dienst auch die Verwendung starker Verschlüsselungssammlungen wie oben beschrieben. Zukünftige Updates ermöglichen die Erzwingung von TLS 1.2, während nicht empfohlene Verschlüsselungssammlungen zulässig sind.

Derzeit wird die TLS 1.2-Erzwingung nur in ausgewählten Regionen unterstützt:

  • Ost-USA
  • USA Süd Mitte
  • USA, Westen 2
  • US-Regierung Arizona
  • US Gov Virginia (Hinweis: TLS 1.0/1.1-Support ist in dieser Region nicht verfügbar. Die TLS 1.2-Erzwingung muss aktiviert sein, oder die IoT Hub-Erstellung schlägt fehl.

Informationen zur Version von TLS, auf denen Ihre IoT Hub-Geräte ausgeführt werden, finden Sie im Supporthandbuch für TLS 1.0 und 1.1.

Gegenseitige TLS-Unterstützung

Die gegenseitige TLS-Authentifizierung stellt sicher, dass der Client das Server-(IoT Hub-)Zertifikat authentifiziert und der Server (IoT Hub) den Client per X.509-Clientzertifikat oder X.509-Fingerabdruckauthentifiziert. Die Autorisierung wird von IoT Hub nach Abschluss der Authentifizierung durchgeführt.

Für das Advanced Message Queuing Protocol (AMQP) und das Message Queuing Telemetry Transport (MQTT)-Protokoll fordert IoT Hub zu Beginn ein Clientzertifikat im TLS-Handshake an. Wird eins bereitgestellt, authentifiziert IoT Hub das Clientzertifikat, und der Client authentifiziert das IoT Hub-Zertifikat. Dieser Prozess wird als gegenseitige TLS-Authentifizierung bezeichnet. Wenn IoT Hub ein MQTT-Verbindungspaket empfängt oder wenn ein AMQP-Link geöffnet wird, führt IoT Hub die Autorisierung für den anfordernden Client durch und ermittelt, ob der Client die X.509-Authentifizierung erfordert. Wenn die gegenseitige TLS-Authentifizierung abgeschlossen wurde und der Client zum Herstellen einer Verbindung als Gerät autorisiert ist, ist dies zulässig. Wenn der Client jedoch die X.509-Authentifizierung erfordert und die Clientauthentifizierung während des TLS-Handshakes nicht abgeschlossen wurde, lehnt IoT Hub die Verbindung ab.

Beim HTTP-Protokoll überprüft IoT Hub bei der ersten Anforderung des Clients, ob der Client die X.509-Authentifizierung erfordert und ob die Clientauthentifizierung abgeschlossen ist. Anschließend führt IoT Hub die Autorisierung durch. Wenn die Clientauthentifizierung nicht abgeschlossen wurde, lehnt IoT Hub die Verbindung ab.

Nach einem erfolgreichen TLS-Handshake kann IoT Hub ein Gerät mithilfe eines symmetrischen Schlüssels oder eines X.509-Zertifikats authentifizieren. Bei zertifikatbasierter Authentifizierung überprüft IoT Hub das Zertifikat mit dem Fingerabdruck oder der Zertifizierungsstelle (Certificate Authority, CA), den bzw. die Sie bereitstellen. Weitere Informationen finden Sie unter Authentifizieren von Identitäten mit X.509-Zertifikaten.

TLS-Zertifikat des IoT Hub-Servers

Während eines TLS-Handshakes präsentiert IoT Hub RSA-schlüsselgebundene Serverzertifikate zum Verbinden von Clients. Alle IoT-Hubs in der globalen Azure-Cloud verwenden das TLS-Zertifikat, das vom DigiCert Global Root G2 ausgestellt wird.

Es wird dringend empfohlen, dass alle Geräte den folgenden drei Stammzertifizierungsstellen vertrauen:

  • DigiCert Global G2
  • Microsoft RSA 2017

Links zum Herunterladen dieser Zertifikate finden Sie unter Details zur Azure-Zertifizierungsstelle.

Stammzertifizierungsstellenmigrationen sind selten. Sie sollten Ihre IoT-Lösung immer für das unwahrscheinliche Ereignis vorbereiten, dass eine Stammzertifizierungsstelle kompromittiert ist und eine Notfallmigration der Stammzertifizierungsstelle erforderlich ist.

Verschlüsselungssammlungen

Um die Azure-Sicherheitsrichtlinie für eine sichere Verbindung einzuhalten, empfiehlt IoT Hub die folgenden RSA- und ECDSA-Verschlüsselungssammlungen, die mindestens tls 1.2-Erzwingung erfordern:

  • 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

Die folgenden Verschlüsselungssammlungen sind derzeit in IoT Hub zulässig. Diese Verschlüsselungssammlungen werden jedoch nicht mehr von den Azure-Sicherheitsrichtlinien empfohlen. Diese Verschlüsselungssammlungen funktionieren mit TLS-Versionen 1.0, 1.1 und 1.2.

  • 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

Ein Client kann eine Liste von höheren Verschlüsselungssammlungen vorschlagen, die während ClientHello verwendet werden sollen. IoT Hub unterstützt jedoch möglicherweise einige davon nicht, beispielsweise ECDHE-ECDSA-AES256-GCM-SHA384. In diesem Fall versucht IoT Hub, die bevorzugte Einstellung des Clients einzuhalten, aber die Sammlung an Verschlüsselungsverfahren letztendlich mit ServerHello auszuhandeln.

Aktualisieren der IoT Hub-Unterstützung auf TLS 1.2

Nachdem ein IoT Hub erstellt wurde, kann die minTlsVersion Eigenschaft mithilfe des Azure-Portals, der CLI oder der SDKs aktualisiert werden. Wenn Sie festlegen müssen, dass IoT Hub TLS 1.2 und starke Verschlüsselungssuiten (nur in ausgewählten Regionen zulässig) oder die TLS 1.2-Unterstützung (in allen Regionen unterstützt) verwendet, können Sie dies mit den folgenden Schritten tun.

So aktualisieren Sie IoT Hub um Unterstützung von TLS 1.2 und/oder starke Cipher-Suites im Azure-Portal zu erzwingen:

  1. Navigieren Sie im Azure-Portal zu Ihrem vorhandenen IoT Hub.

  2. Klicken Sie im linken Menü auf der Registerkarte "Übersicht " im Abschnitt "Essentials" auf den Link "Minimale TLS-Version ".

    Screenshot, der zeigt, wie Sie die TLS-Mindestversion auswählen.

  3. Wählen Sie im Fenster für die Mindest-TLS-Version 1.2, um sicherzustellen, dass nur Geräte, die TLS 1.2 oder höher unterstützen, eine Verbindung herstellen können.

  4. Klicken Sie auf Aktualisieren.

    Screenshot, der zeigt, wie die TLS 1.2-Unterstützung aktiviert wird.

Hinweis

Sie können Ihren IoT Hub in ALLEN öffentlichen Regionen auf TLS 1.2 aktualisieren. Wenn Sie jedoch einen IoT Hub in einer der ausgewählten Regionen (Ost-USA, Süd-Zentral-USA, West-US 2, US-Gov Arizona und US Gov Virginia) aktualisieren, wird es stärkere Verschlüsselungssammlungen erzwingen.

Erzwingen der Verwendung von TLS 1.2 und starken Verschlüsselungssammlungen von IoT Hub

Um dafür zu sorgen, dass Ihre IoT-Geräte mit TLS 1.2 und starken Verschlüsselungssammlungen konform sind, können Sie die Compliance mithilfe der Mindest-TLS-Durchsetzungsfunktion in Azure IoT Hub erzwingen.

Derzeit ist dieses Feature nur in den folgenden Regionen und während der IoT Hub-Erstellung verfügbar (weitere Azure-Regionen werden im Jahr 2025 unterstützt):

  • Ost-USA
  • USA Süd Mitte
  • USA, Westen 2
  • US-Regierung Arizona
  • US Gov Virginia (Unterstützung für TLS 1.0/1.1 ist in dieser Region nicht verfügbar. TLS 1.2-Erzwingung muss aktiviert werden, sonst führt die Erstellung des IoT-Hubs zu einem Fehler)

So aktivieren Sie die Durchsetzung von TLS 1.2 und starken Verschlüsselungssammlungen im Azure-Portal:

  1. Starten mit dem IoT Hub-Erstellungsassistenten im Azure-Portal

  2. Wählen Sie eine Region in der in der obigen Liste aus.

  3. Wählen Sie unter Verwaltung > Erweitert > Transport Layer Security (TLS) > TLS-Mindestversion die Option 1.2 aus. Diese Einstellung wird nur bei IoT-Hubs angezeigt, die in einer unterstützten Region erstellt wurden.

    Screenshot der Aktivierung der TLS 1.2-Durchsetzung während der IoT-Hub-Erstellung.

  4. Klicken Sie auf Erstellen

  5. Verbinden Ihrer IoT-Geräte mit diesem IoT Hub

Stellen Sie für die Verwendung einer ARM-Vorlage für die Erstellung einen neuen IoT-Hub in einer der unterstützten Regionen bereit, und legen Sie die minTlsVersion-Eigenschaft in der Ressourcenspezifikation auf 1.2 fest:

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

Die erstellte IoT Hub-Ressource, die diese Konfiguration verwendet, lehnt Geräte- und Dienstclients ab, die versuchen, eine Verbindung mit den TLS-Versionen 1.0 und 1.1 herzustellen. Analog dazu wird der TLS-Handshake abgelehnt, wenn die ClientHello-Nachricht keines der empfohlenen Verschlüsselungsverfahren enthält.

Hinweis

Nach einem Failover bleibt die Eigenschaft minTlsVersion Ihres IoT Hubs in der geografisch gekoppelten Region wirksam.

Nachsehen von TLS-Versionen für IoT Hub-Geräte

Azure IoT Hub kann Diagnoseprotokolle für mehrere Kategorien bereitstellen, die mithilfe von Azure Monitor-Protokollen analysiert werden können. Im Verbindungsprotokoll finden Sie die TLS-Version für Ihre IoT Hub-Geräte.

Führen Sie folgende Schritte aus, um diese Ressourcenprotokolle anzuzeigen:

  1. Navigieren Sie im Azure-Portal zu Ihrem IoT Hub.
  2. Wählen Sie im Menü der Ressource unter Überwachung die Option Diagnoseeinstellungen aus. Stellen Sie sicher, dass „Verbindungen“ in den Diagnoseeinstellungen mit einem Häkchen versehen ist.
  3. Wählen Sie im Ressourcenmenü unter Überwachung die Option Protokolle aus.
  4. Geben Sie die folgende Abfrage ein:
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
  1. Ein Beispiel für die Abfrageergebnisse sieht wie folgt aus: Diagramm, das die Abfrage über die TLS-Version des Geräts zeigt.
  2. Hinweis: TLS-Versionsabfrage ist für Geräte mit HTTPS-Verbindungen nicht verfügbar.

TLS-Konfiguration für SDK und IoT Edge

Verwenden Sie die nachstehenden Links zum Konfigurieren von TLS 1.2 und zulässigen Verschlüsselungsverfahren in IoT Hub-Client-SDKs.

Sprache Versionen mit Unterstützung von TLS 1.2 Dokumentation
C Tag 2019-12-11 oder höher Verbinden
Python Version 2.0.0 oder höher Verbinden
C# Version 1.21.4 oder höher Verbinden
Java Version 1.19.0 oder höher Verbinden
Node.js Version 1.12.2 oder höher Verbinden

IoT Edge-Geräte können für die Verwendung von TLS 1.2 bei der Kommunikation mit IoT Hub konfiguriert werden. Verwenden Sie dazu die IoT Edge Dokumentationsseite.

TLS-Zertifikat von ECC-Server (Elliptic Curve Cryptography)

Während die ECC-Zertifikatüberprüfung (mit Nur-ECC-Verschlüsselungssammlungen) eine ähnliche Sicherheit für RSA-Zertifikate bietet, nutzt sie bis zu 40 % weniger Compute, Arbeitsspeicher und Bandbreite. Diese Einsparungen sind wichtig für IoT-Geräte aufgrund ihrer kleineren Profile und des kleineren Arbeitsspeichers und zur Unterstützung von Anwendungsfällen in Umgebungen mit eingeschränkter Netzwerkbandbreite.

So können Sie das ECC-Serverzertifikat von IoT Hub verwenden:

  1. Stellen Sie sicher, dass alle Geräte den folgenden Stamm-CAs vertrauen:
    • DigiCert Global G2
    • Microsoft RSA 2017
  2. Konfigurieren Sie Ihren Client so, dass er nur ECDSA-Verschlüsselungssammlungen enthält und RSA-Verschlüsselungssammlungen ausschließt. Dies sind die unterstützten Verschlüsselungssammlungen für das ECC-Zertifikat:
    • 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. Verbinden Sie Ihren Client mit dem IoT Hub.

Aushandlung der maximalen TLS-Fragmentlänge

IoT Hub unterstützt auch die Aushandlung der maximalen TLS-Fragmentlänge, die manchmal als „Aushandlung der TLS-Framegröße“ bezeichnet wird. Dieses Feature befindet sich in der Phase der öffentlichen Vorschau.

Mithilfe dieses Features können Sie für die maximale Fragmentlänge des Klartexts einen Wert angeben, der kleiner als der Standardwert von „2^14 Bytes“ ist. Nach dem Aushandeln beginnen IoT Hub und der Client mit der Fragmentierung von Nachrichten, um sicherzustellen, dass alle Fragmente kleiner als die ausgehandelte Länge sind. Dieses Verhalten ist hilfreich für die Berechnung oder den Speicher eingeschränkter Geräte. Weitere Informationen finden Sie in der offiziellen TLS-Erweiterungsspezifikation.

Die offizielle SDK-Unterstützung für dieses Feature der öffentlichen Vorschau steht noch nicht zur Verfügung. Einführung

  1. Erstellen Sie einen IoT Hub.
  2. Wenn Sie OpenSSL verwenden, rufen Sie SSL_CTX_set_tlsext_max_fragment_length auf, um die Fragmentgröße anzugeben.
  3. Verbinden Sie Ihren Client mit dem IoT Hub.

Anheften von Zertifikaten

Vom Anheften von Zertifikaten sowie vom Filtern der TLS-Serverzertifikate und Zwischenzertifikate, die mit IoT Hub-Endpunkten verknüpft sind, wird dringend abgeraten, da Microsoft diese Zertifikate ohne oder mit nur geringer Vorankündigung ändert. Falls erforderlich, heften Sie nur die Stammzertifikate wie in diesem Azure IoT-Blogbeitrag beschrieben an.

Nächste Schritte