Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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:
Navigieren Sie im Azure-Portal zu Ihrem vorhandenen IoT Hub.
Klicken Sie im linken Menü auf der Registerkarte "Übersicht " im Abschnitt "Essentials" auf den Link "Minimale TLS-Version ".
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.
Klicken Sie auf Aktualisieren.
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:
Starten mit dem IoT Hub-Erstellungsassistenten im Azure-Portal
Wählen Sie eine Region in der in der obigen Liste aus.
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.
Klicken Sie auf Erstellen
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:
- Navigieren Sie im Azure-Portal zu Ihrem IoT Hub.
- 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.
- Wählen Sie im Ressourcenmenü unter Überwachung die Option Protokolle aus.
- 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
- Ein Beispiel für die Abfrageergebnisse sieht wie folgt aus:
- 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:
- Stellen Sie sicher, dass alle Geräte den folgenden Stamm-CAs vertrauen:
- DigiCert Global G2
- Microsoft RSA 2017
-
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
- 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
- Erstellen Sie einen IoT Hub.
- Wenn Sie OpenSSL verwenden, rufen Sie SSL_CTX_set_tlsext_max_fragment_length auf, um die Fragmentgröße anzugeben.
- 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
- Weitere Informationen zur IoT Hub-Sicherheit und -Zugriffssteuerung finden Sie unter Steuern des Zugriffs auf IoT Hub.
- Weitere Informationen zum Verwenden des X.509-Zertifikats für die Geräteauthentifizierung finden Sie unter Geräteauthentifizierung mit X.509-ZS-Zertifikaten.