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.
Note
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. Darüber hinaus wird IoT Hub ab dem 31. August 2025 keine schwachen Verschlüsselungssammlungen mehr unterstützen. Nur empfohlene starke Verschlüsselungssammlungen werden sowohl für vorhandene als auch für neue IoT Hubs unterstützt.
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.
Important
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.
Derzeit wird die TLS 1.2-Erzwingung nur in öffentlichen Cloudregionen unterstützt.
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üsselungsfamilien
Ab dem 31. August 2025 erzwingt IoT Hub die Verwendung empfohlener starker Verschlüsselungssammlungen für alle vorhandenen und neuen IoT Hubs. Nicht empfohlene (schwache) Chiffre-Suiten werden nach diesem Datum nicht unterstützt.
Um die Azure-Sicherheitsrichtlinie für eine sichere Verbindung einzuhalten, unterstützt IoT Hub nur die folgenden RSA- und ECDSA-Verschlüsselungssammlungen:
- 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
ECDSA-Verschlüsselungssammlungen sind nur in öffentlichen Cloudregionen verfügbar.
Die folgenden nicht empfohlenen Verschlüsselungssammlungen sind auf Hubs ohne minTlsVersion:1.2 bis zum 31. August 2025 zulässig:
- 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.
Note
Bei Verwendung eines ECDSA- oder ECDHE-Verschlüsselungsverfahrens muss der Client die supported_groups-Erweiterung mit einer gültigen Gruppe in ClientHello übergeben. Beim Herstellen einer Verbindung mit einem Clientzertifikat muss der Client in seiner supported_groups-Extension die Kurve angeben, die in diesem Clientzertifikat verwendet wird.
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.
Note
Sie können Ihren IoT Hub in allen öffentlichen Cloudregionen auf TLS 1.2 aktualisieren.
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.
Note
Derzeit ist dieses Feature nur in öffentlichen Cloudregionen verfügbar.
So aktivieren Sie die Durchsetzung von TLS 1.2 und starken Verschlüsselungssammlungen im Azure-Portal:
Gehen Sie zum IoT Hub-Erstellungs-Assistenten im Azure-Portal.
Wählen Sie eine Region aus der Liste der unterstützten Regionen 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 Sie Ihre 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-Hubressource mit dieser Konfiguration lehnt Geräte- und Dienstclients ab, die versuchen, eine Verbindung mit 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.
Note
Bei einem Failover bleibt die minTlsVersion Eigenschaft Ihres IoT Hubs in der geo-gekoppelten Region nach dem Failover wirksam.
Überprüfen von TLS-Versionen und Verschlüsselungssammlungen für IoT Hub-Geräte
Azure IoT Hub bietet die Möglichkeit, die TLS-Version, die Verschlüsselungssammlungen und andere Geräteverbindungsmetriken zu überprüfen, um die Sicherheit von IoT-Geräten zu überwachen. Sie können entweder IoT Hub-Metriken oder Diagnoseprotokolle verwenden, um die VERWENDUNG von TLS-Versionen und andere verwandte Eigenschaften wie Cipher Suites nachzuverfolgen.
Note
Derzeit ist dieses Feature nur in öffentlichen Cloudregionen verfügbar.
Überprüfen von TLS-Versionen und Verschlüsselungssammlungen mithilfe von IoT Hub-Metriken
Wenn Sie überprüfen möchten, ob der Gerätedatenverkehr zu IoT Hub TLSv1.2 und starke Verschlüsselungssammlungen nutzt, können Sie die Metriken von IoT Hub überprüfen. Auf diese Weise können Sie nach TLS-Version oder Verschlüsselungssammlung filtern und die Anzahl erfolgreicher Verbindungen überprüfen.
Navigieren Sie im Azure-Portal zu Ihrem IoT Hub.
Wählen Sie im linken Menü unter "Überwachung" die Option "Metriken" aus.
Fügen Sie die Metrik "Erfolgreiche Verbindungen" hinzu.
Filtern Sie nach TLS-Version oder Verschlüsselungssammlung, indem Sie die Schaltfläche Filter hinzufügen und dann die entsprechende Eigenschaft, TLS-Version oder Verschlüsselungssammlung, einen Operator, z. B. „=“, und einen Wert, z. B. TLSv1.2, auswählen.
Nach dem Anwenden des Filters wird die Summe der Geräte mit erfolgreichen IoT Hub-Verbindungen basierend auf der gefilterten Eigenschaft und den Werten angezeigt.
Überprüfen von TLS-Versionen und Verschlüsselungssammlungen mithilfe von IoT Hub-Diagnoseprotokollen
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 und die Verschlüsselungssammlung für Ihre IoT Hub-Geräte.
Führen Sie folgende Schritte aus, um diese Protokolle anzuzeigen:
Navigieren Sie im Azure-Portal zu Ihrem IoT Hub.
Wählen Sie im linken Menü unter "Überwachung" die Diagnoseeinstellungen aus. Stellen Sie sicher, dass in den Diagnoseeinstellungen die Option "Verbindungen" aktiviert ist.
Wählen Sie im linken Menü 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.tlsVersionEin Beispiel für die Abfrageergebnisse sieht wie folgt aus:
Note
DIE 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.
| Language | Versionen mit Unterstützung von TLS 1.2 | Documentation |
|---|---|---|
| C | Tag 2019-12-11 oder höher | Link |
| Python | Version 2.0.0 oder höher | Link |
| C# | Version 1.21.4 oder höher | Link |
| Java | Version 1.19.0 oder höher | Link |
| Node.js | Version 1.12.2 oder höher | Link |
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_SHA256TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384
- Verbinden Sie Ihren Client mit dem IoT Hub.
Note
Derzeit ist dieses Feature nur in öffentlichen Cloudregionen verfügbar.
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. Erste Schritte
- 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.
Note
Derzeit ist dieses Feature nur in öffentlichen Cloudregionen verfügbar.
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.