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.
Aanbevolen coderingen
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.