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

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

De huidige TLS-protocolversies 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 worden toegestaan die een minimale TLS-versie of hoger gebruiken.

Belangrijk

Momenteel ondersteunt DPS alleen TLS 1.2, dus het is niet nodig om 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 die de eigenschap 1.2 instelt op 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 van tevoren goed test en valideert dat al uw IoT-apparaten compatibel zijn met TLS 1.2 en de aanbevolen coderingen .

Notitie

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

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

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 afgeschreven. Gebruik indien mogelijk de aanbevolen coderingssuites hierboven.

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 tls-servercertificaten (ook wel bladcertificaten genoemd) en tussenliggende certificaten die zijn gekoppeld aan DPS-eindpunten, wordt sterk afgeraden omdat Microsoft deze certificaten vaak met weinig of geen kennisgeving implementeert. Als dat nodig is, kunt 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 Azure IoT-client-SDK's.

Taal Versies die TLS 1.2 ondersteunen Documentatie
C Tag 2019-12-11 of nieuwer 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
Node.js 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 de communicatie met apparaten. Zie TLS 1.0 en 1.1 afgeschaft voor IoT Hub 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 pagina IoT Edge documentatie voor meer informatie.