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

DPS använder Transport Layer Security (TLS) för att skydda anslutningar från IoT-enheter.DPS uses Transport Layer Security (TLS) to secure connections from IoT devices.

De aktuella TLS-protokolls versioner som stöds av DPS är:Current TLS protocol versions supported by DPS are:

  • TLS 1.2TLS 1.2

TLS 1,0 och 1,1 betraktas som äldre och planeras för utfasning.TLS 1.0 and 1.1 are considered legacy and are planned for deprecation. Mer information finns i inaktuella TLS 1,0 och 1,1 för IoT Hub.For more information, see Deprecating TLS 1.0 and 1.1 for IoT Hub.

Begränsa anslutningar till TLS 1,2Restrict connections to TLS 1.2

För ökad säkerhet rekommenderar vi att du konfigurerar dina DPS-instanser så att de bara tillåter klient anslutningar för klienter som använder TLS version 1,2 och för att framtvinga användning av rekommenderade chiffer.For added security, it is advised to configure your DPS instances to only allow device client connections that use TLS version 1.2 and to enforce the use of recommended ciphers.

Det gör du genom att etablera en ny DPS-resurs som anger minTlsVersion egenskapen till 1.2 i din Azure Resource Manager MALLs DPS-resurs specifikation.To do this, provision a new DPS resource setting the minTlsVersion property to 1.2 in your Azure Resource Manager template's DPS resource specification. Följande exempel-mall-JSON anger minTlsVersion egenskapen för en ny DPS-instans.The following example template JSON specifies the minTlsVersion property for a new DPS instance.

{
    "$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.You can deploy the template with the following Azure CLI command.

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.For more information on creating DPS resources with Resource Manager templates, see, Set up DPS with an Azure Resource Manager template.

DPS-resursen som skapas med den här konfigurationen kommer att neka enheter som försöker ansluta med TLS-versionerna 1,0 och 1,1.The DPS resource created using this configuration will refuse devices that attempt to connect using TLS versions 1.0 and 1.1. På samma sätt kommer TLS-handskakningen att nekas om enhets klientens HELLO-meddelande inte listar några av de rekommenderade chiffer.Similarly, the TLS handshake will be refused if the device client's HELLO message does not list any of the recommended ciphers.

Anteckning

minTlsVersionEgenskapen är skrivskyddad och kan inte ändras när din DPS-resurs har skapats.The minTlsVersion property is read-only and cannot be changed once your DPS resource is created. Det är därför viktigt att du testar och kontrollerar att alla IoT-enheter är kompatibla med TLS 1,2 och de rekommenderade chifferna i förväg.It is therefore essential that you properly test and validate that all your IoT devices are compatible with TLS 1.2 and the recommended ciphers in advance.

Anteckning

Vid redundans fortsätter minTlsVersion egenskapen för DPS att vara effektiv i den geo-kopplade regionen efter redundansväxlingen.Upon failovers, the minTlsVersion property of your DPS will remain effective in the geo-paired region post-failover.

DPS-instanser som har kon figurer ATS för att endast acceptera TLS 1,2 kommer också att framtvinga användning av följande chiffersviter:DPS instances that are configured to accept only TLS 1.2 will also enforce the use of the following cipher suites:

Rekommenderade TLS 1,2 cipher-paketRecommended TLS 1.2 cipher suites
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

Bakåtkompatibla chiffersviterLegacy cipher suites

Dessa chiffersviter stöds för närvarande inte av DPS men kommer att skrivas av.These cipher suites are currently still supported by DPS but will be depreciated. Använd de rekommenderade chiffersviter ovan om möjligt.Use the recommended cipher suites above if possible.

Alternativ #1 (bättre säkerhet)Option #1 (better security)
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)Option #2 (better performance)
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)

Använd TLS 1,2 i IoT SDK: erUse TLS 1.2 in the IoT SDKs

Använd länkarna nedan för att konfigurera TLS 1,2 och tillåtna chiffer i Azure IoT-klientens SDK: er.Use the links below to configure TLS 1.2 and allowed ciphers in the Azure IoT client SDKs.

SpråkLanguage Versioner som stöder TLS 1,2Versions supporting TLS 1.2 DokumentationDocumentation
CC Tag 2019-12-11 eller senareTag 2019-12-11 or newer LänkLink
PythonPython Version 2.0.0 eller senareVersion 2.0.0 or newer LänkLink
C#C# Version 1.21.4 eller senareVersion 1.21.4 or newer LänkLink
JavaJava Version 1.19.0 eller senareVersion 1.19.0 or newer LänkLink
NodeJSNodeJS Version 1.12.2 eller senareVersion 1.12.2 or newer LänkLink

Använd TLS 1,2 med IoT HubUse TLS 1.2 with IoT Hub

IoT Hub kan konfigureras att använda TLS 1,2 vid kommunikation med enheter.IoT Hub can be configured to use TLS 1.2 when communicating with devices. Mer information finns i inaktuella TLS 1,0 och 1,1 för IoT Hub.For more information, see Deprecating TLS 1.0 and 1.1 for IoT Hub.

Använd TLS 1,2 med IoT EdgeUse TLS 1.2 with IoT Edge

IoT Edge enheter kan konfigureras för att använda TLS 1,2 när de kommunicerar med IoT Hub och DPS.IoT Edge devices can be configured to use TLS 1.2 when communicating with IoT Hub and DPS. Mer information finns på sidan IoT Edge dokumentation.For more information, see the IoT Edge documentation page.