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 de endast tillåter enhetsklientanslutningar som använder en lägsta TLS-version eller senare.

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-resursinställning minTlsVersion som 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 förblir egenskapen för minTlsVersion din DPS gällande i den geo-parkopplade regionen efter redundansväxlingen.

DPS-instanser tillämpar 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 avskrivas. Använd de rekommenderade chiffersviterna ovan om 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 konfigureras för X.509-autentisering stöds ömsesidig TLS (mTLS) av DPS.

Fäst certifikat

Det rekommenderas starkt att fästa och filtrera TLS-servercertifikaten (även kallade lövcertifikat) och mellanliggande certifikat som är associerade med DPS-slutpunkter eftersom Microsoft ofta rullar dessa certifikat med liten eller ingen varsel. Om du måste kan du bara fästa rotcertifikaten enligt beskrivningen i det här Azure IoT-blogginlägget.

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å sidan IoT Edge dokumentation.