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 stellt die Unterstützung für TLS 1.0 und 1.1 im Einklang mit der dienstweiten Azure-Ankündigung zur Einstellung von TLS 1.0 und 1.1 am 31. August 2025 ein. Darüber hinaus unterstützt IoT Hub ab dem 31. August 2025 keine schwachen Verschlüsselungssammlungen mehr. Nur empfohlene starke Verschlüsselungssammlungen werden sowohl für vorhandene als auch für neue IoT Hubs unterstützt.
Es ist wichtig, dass Sie alle Ihre IoT-Geräte und -Dienste ordnungsgemäß testen und überprüfen, ob alle Ihre IoT-Geräte und -Dienste mit TLS 1.2 und den empfohlenen Chiffre im Voraus kompatibel sind. Wir empfehlen, das Feature zur Erzwingung der TLS-Mindestversion als Mechanismus für Tests und zur Einhaltung von Compliance-Anforderungen zu verwenden.
Important
Es ist wichtig, zwischen TLS 1.2-Unterstützung und TLS 1.2-Erzwingung zu unterscheiden. Alle IoT Hubs unterstützen TLS 1.2, 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 berechtigt ist, eine Verbindung als Gerät herzustellen, 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 vollständig ist, lehnt der 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.
Vertrauen Sie den folgenden beiden Stamm-CAs für alle Geräte:
- DigiCert Global G2
- Microsoft RSA 2017
Links zum Herunterladen dieser Zertifikate finden Sie unter Details zur Azure-Zertifizierungsstelle.
Stammzertifizierungsstellenmigrationen sind selten. Bereiten Sie Ihre IoT-Lösung immer für das unwahrscheinliche Ereignis vor, dass eine Stammzertifizierungsstelle kompromittiert wird und eine Migration der Notfallstammzertifizierungsstelle 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) Verschlüsselungssammlungen 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 Verschlüsselungssammlung 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
Aktualisieren Sie nach dem Erstellen eines IoT Hub die eigenschaft minTlsVersion mithilfe des Azure Portals, der CLI oder der SDKs. Führen Sie die folgenden Schritte aus, um den IoT Hub so zu aktualisieren, dass TLS 1.2 und starke Chiffriersammlungen erzwungen werden (nur in ausgewählten Regionen zulässig) oder dass die TLS 1.2-Unterstützung festgelegt wird (in allen Regionen unterstützt).
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.
Wählen Sie auf der Registerkarte " Übersicht " im linken Menü den Link " Minimale TLS-Version " im Abschnitt "Essentials" aus.
Wählen Sie im Seitenfenster Mindest-TLS-Version1.2 aus, 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 sicherzustellen, dass Ihre IoT-Geräte TLS 1.2 und starke Chiffriersammlungen einhalten, erzwingen Sie die Konformität mithilfe des Features zur Erzwingung der Mindestversion von TLS in Azure IoT Hub.
Note
Derzeit ist dieses Feature nur in öffentlichen Cloudregionen verfügbar.
So aktivieren Sie die Erzwingung von TLS 1.2 und starken Verschlüsselungssuiten 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 für IoT-Hubs angezeigt, die in unterstützten Regionen erstellt wurden.
Wählen Sie "Erstellen" aus.
Verbinden Sie Ihre IoT-Geräte mit diesem IoT Hub.
Um eine ARM-Vorlage zum Erstellen zu verwenden, stellen Sie eine neue IoT Hub in einem der unterstützten Bereiche bereit, und legen Sie die Eigenschaft minTlsVersion auf 1.2 in der Ressourcenspezifikation 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 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
Nach einem Failover bleibt die Eigenschaft minTlsVersion Ihres IoT Hubs in der geografisch gekoppelten Region wirksam.
TLS-Versionen und Verschlüsselungssuiten für IoT Hub-Geräte überprüfen
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 der TLS-Version und andere zugehörige 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
Um zu überprüfen, ob der Gerätedatenverkehr zu IoT Hub TLSv1.2 und starke Verschlüsselungssuiten verwendet, überprüfen Sie die IoT Hub-Metriken. Sie können nach TLS-Version oder Verschlüsselungssuite filtern und die Anzahl der erfolgreichen 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üsselungssuite, indem Sie die Schaltfläche " Filter hinzufügen " auswählen und die entsprechende Eigenschaft, TLS-Version oder Chiffresuite, Operator wie "=" und Wert wie TLSv1.2 auswählen.
Nachdem Sie den Filter angewendet haben, wird die Summe der Geräte mit erfolgreichen IoT Hub Verbindungen basierend auf der gefilterten Eigenschaft und den gefilterten Werten angezeigt.
Überprüfen von TLS-Versionen und Verschlüsselungssammlungen mithilfe von IoT Hub Diagnoseprotokollen
Azure IoT Hub können Diagnoseprotokolle für mehrere Kategorien bereitstellen, die Sie mithilfe von Azure Monitor Protokollen analysieren können. Im Verbindungsprotokoll finden Sie die TLS-Version und die Verschlüsselungssuite 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 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 nur ECDSA-Verschlüsselungssammlungen enthalten sind, und schließen Sie alle RSA-Suites aus. 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.
TLS 1.3 Unterstützung (Vorschau)
Azure IoT Hub unterstützt TLS 1.3 über neue Geräte- und Service-Endpunkte, die zusammen mit dem bestehenden klassischen Endpunkt verfügbar sind. Diese Endpunkte werden automatisch auf allen IoT-Hubs bereitgestellt und können in Ihrem eigenen Tempo übernommen werden.
Endpoints
| Endpunkt | Hostname | TLS-Unterstützung |
|---|---|---|
| Klassisch | <hub>.azure-devices.net |
TLS 1.2 |
| Gerät (Vorschau) | <hub>.device.azure-devices.net |
TLS 1.2 (eingeschränkte Chiffren) + TLS 1.3 |
| Service (Vorschau) | <hub>.service.azure-devices.net |
TLS 1.2 (eingeschränkte Chiffren) + TLS 1.3 |
Der klassische Endpunkt wird weiterhin vollständig unterstützt und bleibt der Standard für bestehende Workloads.
Anforderungen
Die neuen Endpunkte haben strengere Anforderungen als der klassische Endpunkt:
- SNI ist erforderlich. Clients müssen die Server Name Indication (SNI)-Erweiterung im TLS-Handshake senden.
- Eingeschränkte Chiffresuiten. Es werden nur sicherheitskonforme Chiffre-Suiten unterstützt. Geräte, die auf Chiffre-Suiten angewiesen sind, die nicht zu diesem Set gehören, können keine Verbindung herstellen. Für die Liste der unterstützten Chiffresuiten siehe Chiffresuiten.
- Geräte, die TLS 1.2 verwenden, können sich mit den neuen Endpunkten verbinden, sofern sie die erforderlichen Chiffre-Suiten unterstützen.
Nutze die neuen Endpunkte
Um Verbindungsstrings für die neuen Endpunkte abzurufen, verwenden Sie den Parameter --hostname-type :
# Device connection string using the TLS 1.3-capable device endpoint
az iot hub device-identity connection-string show \
--hub-name <hub-name> \
--resource-group <resource-group> \
--device-id <device-id> \
--hostname-type device
# Hub connection string using the service endpoint
az iot hub connection-string show \
--hub-name <hub-name> \
--resource-group <resource-group> \
--hostname-type service
Um die auf Ihrem Hub verfügbaren Endpunkte zu überprüfen:
az iot hub show --name <hub-name> --resource-group <resource-group> \
--query "{classic:properties.hostName, device:properties.deviceHostName}" \
--output json
Note
Der Hostname-Typ service ist für Geräte- oder Modul-Verbindungsstrings nicht gültig. Verwenden Sie device oder classic für Verbindungen auf der Geräteseite.
Migration zu den TLS 1.3-Endpunkten
Die Einführung der neuen Endpunkte ist optional und vom Kunden gesteuert. So migrieren Sie:
- Überprüfen Sie, ob Ihre Geräte und Clients SNI und die erforderlichen Chiffre-Suiten unterstützen.
- Teste die Konnektivität mit dem Endpunkt des Geräts in einer Staging-Umgebung.
- Aktualisieren Sie die Verbindungszeichenfolgen Ihres Geräts, sodass
<hub>.device.azure-devices.netverwendet wird. - Für Backend-Dienste aktualisieren Sie die Verbindungszeichenfolgen so, dass sie
<hub>.service.azure-devices.netverwenden.
Um zurückzurollen, aktualisieren Sie die Verbindungszeichen, sodass sie den ursprünglichen <hub>.azure-devices.net Hostnamen verwenden.
Wenn Ihr IoT-Hub über einen privaten Endpunkt (Azure Private Link) erreicht wird, müssen die neuen Geräte- und Service-Hostnamen ebenfalls auf eine private IP-Adresse in Ihrem virtuellen Netzwerk aufgelöst werden. In den meisten Fällen geschieht dies automatisch, aber eine statische IP-Zuweisung oder ein vollständiges Subnetz kann manuelles Handeln erfordern. Siehe Private Endpunkte aktualisieren, um TLS 1.3 zu aktivieren.
Important
Nutze den Service-Endpunkt (<hub>.service.azure-devices.net) nicht für Geräteverbindungen. Es ist ausschließlich für Backend-Dienste gedacht.
Informationen zur Nutzung der neuen Endpunkte mit dem Device Provisioning Service (DPS) finden Sie unter Verwalten der verbundenen IoT-Hubs in DPS.
Nächste Schritte
- Weitere Informationen zur IoT Hub-Sicherheit und -Zugriffssteuerung finden Sie unter Steuern des Zugriffs auf IoT Hub.
- Weitere Informationen zur Verwendung des X509-Zertifikats für die Geräteauthentifizierung finden Sie unter "Geräteauthentifizierung mit X.509 CA-Zertifikaten".