TLS-stöd i Azure IoT Hub Device Provisioning Service (DPS)

DPS använder TLS (Transport Layer Security) för att skydda anslutningar från IoT-enheter.

Aktuella TLS-protokollversioner som stöds av DPS är:

  • TLS 1.2

Begränsa anslutningar till en lägsta TLS-version

Du kan konfigurera dina DPS-instanser så att endast enhetsklientanslutningar som använder en lägsta TLS-version eller senare tillåts.

Viktigt

För närvarande stöder DPS endast TLS 1.2, så du behöver inte ange den lägsta TLS-versionen när du skapar en DPS-instans. Den här funktionen tillhandahålls för framtida expansion.

Det gör du genom att etablera en ny DPS-resurs som anger minTlsVersion egenskapen till 1.2 i din Azure Resource Manager-mallens DPS-resursspecifikation. Följande exempelmall JSON anger minTlsVersion egenskapen för en ny DPS-instans.

{
    "$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
            },
        }     
    ]
}

Du kan distribuera mallen med följande Azure CLI-kommando.

az deployment group create -g <your resource group name> --template-file template.json

Mer information om hur du skapar DPS-resurser med Resource Manager mallar finns i Konfigurera DPS med en Azure Resource Manager-mall.

DPS-resursen som skapas med den här konfigurationen nekar enheter som försöker ansluta med TLS-versionerna 1.0 och 1.1.

Anteckning

Egenskapen minTlsVersion är skrivskyddad och kan inte ändras när DPS-resursen har skapats. Därför är det viktigt att du testar och verifierar att alla dina IoT-enheter är kompatibla med TLS 1.2 och de rekommenderade chiffreringarna i förväg.

Anteckning

Vid redundansväxlingar minTlsVersion förblir dps-egenskapen effektiv i den geo-kopplade regionen efter redundansväxlingen.

DPS-instanser framtvingar användningen av följande rekommenderade och äldre chiffersviter:

Rekommenderade TLS 1.2-chiffersviter
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

Äldre chiffersviter

Dessa chiffersviter stöds för närvarande fortfarande av DPS men kommer att avskrivs. Använd de rekommenderade chiffersviterna ovan om det är möjligt.

Alternativ 1 (bättre säkerhet)
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)
Alternativ 2 (bättre prestanda)
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)

Ömsesidigt TLS-stöd

När DPS-registreringar har konfigurerats för X.509-autentisering stöds ömsesidig TLS (mTLS) av DPS.

Certifikatstiftning

Certifikat som fäster och filtrerar TLS-servercertifikat (även kallade lövcertifikat) och mellanliggande certifikat som är associerade med DPS-slutpunkter rekommenderas inte eftersom Microsoft ofta rullar dessa certifikat med liten eller ingen notis. Om du måste kan du bara fästa rotcertifikaten enligt beskrivningen i det här blogginlägget om Azure IoT.

Använda TLS 1.2 i IoT SDK:er

Använd länkarna nedan för att konfigurera TLS 1.2 och tillåtna chiffer i Azure IoT-klient-SDK:er.

Språk Versioner som stöder TLS 1.2 Dokumentation
C Tagg 2019-12-11 eller senare Länk
Python Version 2.0.0 eller senare Länk
C# Version 1.21.4 eller senare Länk
Java Version 1.19.0 eller senare Länk
NodeJS Version 1.12.2 eller senare Länk

Använda TLS 1.2 med IoT Hub

IoT Hub kan konfigureras att använda TLS 1.2 vid kommunikation med enheter. Mer information finns i Ta bort TLS 1.0 och 1.1 för IoT Hub.

Använda TLS 1.2 med IoT Edge

IoT Edge enheter kan konfigureras att använda TLS 1.2 vid kommunikation med IoT Hub och DPS. Mer information finns på dokumentationssidan för IoT Edge.