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.

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.