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

DPS maakt gebruik van Transport Layer Security (TLS) om verbindingen van IoT-apparaten te beveiligen.

De huidige versies van het TLS-protocol die door DPS worden ondersteund, zijn:

  • TLS 1.2

Verbindingen beperken tot een minimale TLS-versie

U kunt uw DPS-exemplaren zo configureren dat alleen clientverbindingen van apparaten met een minimale TLS-versie of hoger zijn toegestaan.

Belangrijk

Op dit moment biedt DPS alleen ondersteuning voor TLS 1.2. U hoeft dus niet de minimale TLS-versie op te geven wanneer u een DPS-exemplaar maakt. Deze functie is beschikbaar voor toekomstige uitbreiding.

Hiervoor richt u een nieuwe DPS-resource in waarmee de eigenschap 1.2 wordt ingesteld in de minTlsVersion DPS-resourcespecificatie van uw Azure Resource Manager-sjabloon. In de volgende voorbeeldsjabloon JSON wordt de minTlsVersion eigenschap voor een nieuw DPS-exemplaar opgegeven.

{
    "$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.

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

Zie DPS instellen met een Azure Resource Manager-sjabloon voor meer informatie over het maken van DPS-resources met Resource Manager-sjablonen.

De DPS-resource die met deze configuratie is gemaakt, weigert apparaten die verbinding proberen te maken met TLS-versies 1.0 en 1.1.

Notitie

De minTlsVersion eigenschap heeft het kenmerk Alleen-lezen en kan niet worden gewijzigd nadat uw DPS-resource is gemaakt. Het is daarom essentieel dat u uw IoT-apparaten goed test en valideert dat al uw IoT-apparaten compatibel zijn met TLS 1.2 en de aanbevolen coderingen van tevoren.

Notitie

Na failovers blijft de minTlsVersion eigenschap van uw DPS effectief in de geografisch gekoppelde regio na een failover.

DPS-exemplaren dwingen het gebruik van de volgende aanbevolen en verouderde coderingssuites af:

Aanbevolen TLS 1.2-coderingssuites
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 coderingssuites

Deze coderingssuites worden momenteel nog steeds ondersteund door DPS, maar worden afgeschaft. Gebruik indien mogelijk de aanbevolen coderingssuites.

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

Wederzijdse TLS-ondersteuning

Wanneer DPS-inschrijvingen zijn geconfigureerd voor X.509-verificatie, wordt wederzijdse TLS (mTLS) ondersteund door DPS.

Certificaat vastmaken

Het vastmaken en filteren van certificaten van DE TLS-server (ook wel leaf-certificaten genoemd) en tussenliggende certificaten die zijn gekoppeld aan DPS-eindpunten, wordt sterk afgeraden omdat Microsoft deze certificaten regelmatig met weinig of geen kennisgeving implementeert. Als u dat wilt, moet u alleen de basiscertificaten vastmaken zoals beschreven in dit Azure IoT-blogbericht.

TLS 1.2 gebruiken in de IoT SDK's

Gebruik de onderstaande koppelingen om TLS 1.2 en toegestane coderingen te configureren in de SDK's van de Azure IoT-client.

Taal Versies die TLS 1.2 ondersteunen Documentatie
C Tag 2019-12-11 of hoger Koppeling
Python Versie 2.0.0 of hoger Koppeling
C# Versie 1.21.4 of hoger Koppeling
Java Versie 1.19.0 of hoger Koppeling
NodeJS Versie 1.12.2 of hoger Koppeling

TLS 1.2 gebruiken met IoT Hub

IoT Hub kan worden geconfigureerd voor het gebruik van TLS 1.2 bij het communiceren met apparaten. Zie TLS 1.0 en 1.1 voor IoT Hub afgeschaft voor meer informatie.

TLS 1.2 gebruiken met IoT Edge

IoT Edge-apparaten kunnen worden geconfigureerd voor het gebruik van TLS 1.2 bij de communicatie met IoT Hub en DPS. Zie de documentatiepagina van IoT Edge voor meer informatie.