TLS-ondersteuning in azure IoT Hub Device Provisioning Service (DPS)TLS support in Azure IoT Hub Device Provisioning Service (DPS)

DPS gebruikt Transport Layer Security (TLS) voor het beveiligen van verbindingen van IOT-apparaten.DPS uses Transport Layer Security (TLS) to secure connections from IoT devices.

De huidige TLS-protocol versies die worden ondersteund door DPS zijn:Current TLS protocol versions supported by DPS are:

  • TLS 1.2TLS 1.2

TLS 1,0 en 1,1 worden beschouwd als verouderd en zijn gepland voor afschaffing.TLS 1.0 and 1.1 are considered legacy and are planned for deprecation. Zie TLS 1,0 en 1,1 voor IOT hubafzien voor meer informatie.For more information, see Deprecating TLS 1.0 and 1.1 for IoT Hub.

Verbindingen beperken tot TLS 1,2Restrict connections to TLS 1.2

Voor extra beveiliging wordt u aangeraden uw DPS-exemplaren zo te configureren dat alleen client verbindingen van het apparaat met TLS-versie 1,2 worden toegestaan en het gebruik van Aanbevolen coderingen wordt afgedwongen.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.

U doet dit door een nieuwe DPS-resource in te richten, waarbij minTlsVersion u de eigenschap instelt op 1.2 in de DPS-resource specificatie van uw Azure Resource Manager-sjabloon.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. Met de volgende voorbeeld sjabloon JSON geeft u de minTlsVersion eigenschap op voor een nieuw DPS-exemplaar.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
            },
        }     
    ]
}

U kunt de sjabloon implementeren met de volgende Azure CLI-opdracht.You can deploy the template with the following Azure CLI command.

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

Zie DPS met een Azure Resource Manager-sjabloon instellenvoor meer informatie over het maken van DPS-resources met Resource Manager-sjablonen.For more information on creating DPS resources with Resource Manager templates, see, Set up DPS with an Azure Resource Manager template.

De DPS-resource die is gemaakt met deze configuratie, weigert apparaten die verbinding proberen te maken met behulp van TLS-versie 1,0 en 1,1.The DPS resource created using this configuration will refuse devices that attempt to connect using TLS versions 1.0 and 1.1. Op dezelfde manier wordt de TLS-Handshake geweigerd als het HELLO-bericht van de apparaatclient geen van de Aanbevolen coderingen vermeldt.Similarly, the TLS handshake will be refused if the device client's HELLO message does not list any of the recommended ciphers.

Notitie

De minTlsVersion eigenschap is alleen-lezen en kan niet worden gewijzigd nadat uw DPS-resource is gemaakt.The minTlsVersion property is read-only and cannot be changed once your DPS resource is created. Daarom is het essentieel dat u op de juiste wijze test en controleert of al uw IOT-apparaten compatibel zijn met TLS 1,2 en de Aanbevolen coderingen vooraf.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.

Notitie

Bij failovers blijft het minTlsVersion eigendom van uw DPS geldig in de geo-paard Region na failover.Upon failovers, the minTlsVersion property of your DPS will remain effective in the geo-paired region post-failover.

In DPS-instanties die zijn geconfigureerd om alleen TLS 1,2 te accepteren, wordt ook het gebruik van de volgende coderings suites afgedwongen:DPS instances that are configured to accept only TLS 1.2 will also enforce the use of the following cipher suites:

Aanbevolen TLS 1,2-coderings suitesRecommended 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

Verouderde coderings suitesLegacy cipher suites

Deze coderings suites worden momenteel nog steeds ondersteund door DPS, maar worden afgeschreven.These cipher suites are currently still supported by DPS but will be depreciated. Gebruik indien mogelijk de aanbevolen coderings suites.Use the recommended cipher suites above if possible.

Optie #1 (betere beveiliging)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)
Optie #2 (betere prestaties)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)

TLS 1,2 gebruiken in de IoT Sdk'sUse TLS 1.2 in the IoT SDKs

Gebruik de onderstaande koppelingen om TLS 1,2 en toegestane code ringen te configureren in de Azure IoT client-Sdk's.Use the links below to configure TLS 1.2 and allowed ciphers in the Azure IoT client SDKs.

TaalLanguage Versies die TLS 1,2 ondersteunenVersions supporting TLS 1.2 DocumentatieDocumentation
CC Tag 2019-12-11 of hogerTag 2019-12-11 or newer KoppelingLink
PythonPython Versie 2.0.0 of nieuwerVersion 2.0.0 or newer KoppelingLink
C#C# Versie 1.21.4 of nieuwerVersion 1.21.4 or newer KoppelingLink
JavaJava Versie 1.19.0 of nieuwerVersion 1.19.0 or newer KoppelingLink
Node.jsNodeJS Versie 1.12.2 of nieuwerVersion 1.12.2 or newer KoppelingLink

TLS 1,2 gebruiken met IoT HubUse TLS 1.2 with IoT Hub

IoT Hub kunnen worden geconfigureerd voor het gebruik van TLS 1,2 bij het communiceren met apparaten.IoT Hub can be configured to use TLS 1.2 when communicating with devices. Zie TLS 1,0 en 1,1 voor IOT hubafzien voor meer informatie.For more information, see Deprecating TLS 1.0 and 1.1 for IoT Hub.

TLS 1,2 gebruiken met IoT EdgeUse TLS 1.2 with IoT Edge

IoT Edge-apparaten kunnen worden geconfigureerd voor het gebruik van TLS 1,2 bij de communicatie met IoT Hub en DPS.IoT Edge devices can be configured to use TLS 1.2 when communicating with IoT Hub and DPS. Zie de IOT Edge-documentatie paginavoor meer informatie.For more information, see the IoT Edge documentation page.