TLS-Unterstützung in Azure IoT Hub Device Provisioning Service (DPS)
DPS verwendet Transport Layer Security (TLS) zum Sichern von Verbindungen mit IoT-Geräten.
Diese aktuellen TLS-Protokollversionen werden von DPS unterstützt:
- TLS 1.2
Einschränken von Verbindungen auf eine TLS-Mindestversion
Sie können Ihre DPS-Instanzen so konfigurieren, dass nur Geräteclientverbindungen zugelassen werden, die mindestens eine bestimmte TLS-Version (oder eine höhere Version) verwenden.
Wichtig
Derzeit unterstützt DPS nur TLS 1.2. Daher müssen Sie beim Erstellen einer DPS-Instanz keine TLS-Mindestversion angeben. Dieses Feature wird für zukünftige Erweiterungen bereitgestellt.
Legen Sie dazu eine neue DPS-Ressourceneinstellung der minTlsVersion
-Eigenschaft für 1.2
in der DPS-Ressourcenspezifikation Ihrer Azure Resource Manager-Vorlage fest. Im folgenden Beispiel einer JSON-Vorlage wird die Eigenschaft minTlsVersion
für eine neue DPS-Instanz angegeben.
{
"$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"resources": [
{
"type": "Microsoft.Devices/ProvisioningServices",
"apiVersion": "2020-01-01",
"name": "<provide-a-valid-DPS-resource-name>",
"location": "<any-region>",
"properties": {
"minTlsVersion": "1.2"
},
"sku": {
"name": "S1",
"capacity": 1
},
}
]
}
Sie können die Vorlage mit dem folgenden Azure CLI-Befehl bereitstellen.
az deployment group create -g <your resource group name> --template-file template.json
Weitere Informationen zum Erstellen von DPS-Ressourcen mit Resource Manager-Vorlagen finden Sie unter Einrichten von DPS mit einer Azure Resource Manager-Vorlage.
Die mit dieser Konfiguration erstellte DPS-Ressource lehnt Geräte ab, die versuchen, mithilfe der TLS-Versionen 1.0 und 1.1 eine Verbindung herzustellen.
Hinweis
Die Eigenschaft minTlsVersion
ist schreibgeschützt und kann nach Erstellung Ihrer DPS-Ressource nicht mehr geändert werden. Daher ist es von entscheidender Bedeutung, dass Sie im Voraus ordnungsgemäß testen und überprüfen, ob alle Ihre IoT-Geräte mit TLS 1.2 und den empfohlenen Verschlüsselungen kompatibel sind.
Hinweis
Nach einem Failover bleibt die Eigenschaft minTlsVersion
Ihres DPS in der geografisch gekoppelten Region wirksam.
Empfohlene Verschlüsselungen
DPS-Instanzen erzwingen die Nutzung der folgenden empfohlenen und älteren Verschlüsselungssammlungen:
Empfohlene TLS 1.2-Verschlüsselungssammlungen |
---|
TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 |
Legacy-Verschlüsselungssammlungen
Diese Verschlüsselungssammlungen werden derzeit weiterhin von DPS unterstützt, werden jedoch als veraltet markiert. Verwenden Sie nach Möglichkeit die oben genannten empfohlenen Verschlüsselungssammlungen.
Option 1 (höhere Sicherheit) |
---|
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA_P384 (uses SHA-1) TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA_P256 (uses SHA-1) TLS_RSA_WITH_AES_256_GCM_SHA384 (lack of Perfect Forward Secrecy) TLS_RSA_WITH_AES_128_GCM_SHA256 (lack of Perfect Forward Secrecy) TLS_RSA_WITH_AES_256_CBC_SHA256 (lack of Perfect Forward Secrecy) TLS_RSA_WITH_AES_128_CBC_SHA256 (lack of Perfect Forward Secrecy) TLS_RSA_WITH_AES_256_CBC_SHA (uses SHA-1, lack of Perfect Forward Secrecy) TLS_RSA_WITH_AES_128_CBC_SHA (uses SHA-1, lack of Perfect Forward Secrecy) |
Option 2 (höhere Leistung) |
---|
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA_P256 (uses SHA-1) TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA_P384 (uses SHA-1) TLS_RSA_WITH_AES_128_GCM_SHA256 (lack of Perfect Forward Secrecy) TLS_RSA_WITH_AES_256_GCM_SHA384 (lack of Perfect Forward Secrecy) TLS_RSA_WITH_AES_128_CBC_SHA256 (lack of Perfect Forward Secrecy) TLS_RSA_WITH_AES_256_CBC_SHA256 (lack of Perfect Forward Secrecy) TLS_RSA_WITH_AES_128_CBC_SHA (uses SHA-1, lack of Perfect Forward Secrecy) TLS_RSA_WITH_AES_256_CBC_SHA (uses SHA-1, lack of Perfect Forward Secrecy) |
Gegenseitige TLS-Unterstützung
Wenn DPS-Registrierungen für die X.509-Authentifizierung konfiguriert sind, wird gegenseitiges TLS (mTLS) von DPS unterstützt.
Anheften von Zertifikaten
Vom Anheften von Zertifikaten sowie vom Filtern der TLS-Serverzertifikate (Blattzertifikate) und Zwischenzertifikate, die mit DSP-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.
Verwenden von TLS 1.2 in den IoT-SDKs
Verwenden Sie die nachstehenden Links zum Konfigurieren von TLS 1.2 und zulässigen Verschlüsselungen in den Azure IoT-Client-SDKs.
Sprache | Versionen mit Unterstützung von TLS 1.2 | Dokumentation |
---|---|---|
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 |
NodeJS | Version 1.12.2 oder höher | Link |
Verwenden von TLS 1.2 mit IoT Hub
IoT Hub kann für die Verwendung von TLS 1.2 bei der Kommunikation mit Geräten konfiguriert werden. Weitere Informationen finden Sie unter Deprecating TLS 1.0 and 1.1 for IoT Hub (Einstellung von TLS 1.0 and 1.1 für IoT Hub).
Verwenden von TLS 1.2 bei IoT Edge
IoT Edge-Geräte können für die Verwendung von TLS 1.2 bei der Kommunikation mit IoT Hub und DPS konfiguriert werden. Weitere Informationen finden Sie auf der Dokumentationsseite zu IoT Edge.