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