TLS-stöd i Azure IoT Hub Device Provisioning Service (DPS)
DPS använder TLS (Transport Layer Security) för att skydda anslutningar från IoT-enheter.
Aktuella TLS-protokollversioner som stöds av DPS är:
- TLS 1.2
Begränsa anslutningar till en lägsta TLS-version
Du kan konfigurera DPS-instanserna så att de endast tillåter enhetsklientanslutningar som använder en lägsta TLS-version eller högre.
Viktigt!
För närvarande stöder DPS endast TLS 1.2, så du behöver inte ange den lägsta TLS-versionen när du skapar en DPS-instans. Den här funktionen tillhandahålls för framtida expansion.
Det gör du genom att etablera en ny DPS-resurs som anger minTlsVersion
egenskapen till 1.2
i din Azure Resource Manager-malls DPS-resursspecifikation. Följande exempelmall JSON anger minTlsVersion
egenskapen för en ny DPS-instans.
{
"$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
},
}
]
}
Du kan distribuera mallen med följande Azure CLI-kommando.
az deployment group create -g <your resource group name> --template-file template.json
Mer information om hur du skapar DPS-resurser med Resource Manager-mallar finns i Konfigurera DPS med en Azure Resource Manager-mall.
DPS-resursen som skapas med den här konfigurationen nekar enheter som försöker ansluta med TLS-versionerna 1.0 och 1.1.
Kommentar
Egenskapen minTlsVersion
är skrivskyddad och kan inte ändras när DPS-resursen har skapats. Därför är det viktigt att du testar och verifierar att alla dina IoT-enheter är kompatibla med TLS 1.2 och de rekommenderade chifferna i förväg.
Kommentar
Vid redundansväxlingar minTlsVersion
förblir dps-egenskapen effektiv i den geo-kopplade regionen efter redundansväxlingen.
Rekommenderade chiffer
DPS-instanser tillämpar användningen av följande rekommenderade och äldre chiffersviter:
Rekommenderade TLS 1.2 chiffersviter |
---|
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 |
Äldre chiffersviter
Dessa chiffersviter stöds för närvarande fortfarande av DPS men kommer att avskrivas. Använd de rekommenderade chiffersviterna ovan om möjligt.
Alternativ 1 (bättre säkerhet) |
---|
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) |
Alternativ 2 (bättre prestanda) |
---|
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) |
Ömsesidigt TLS-stöd
När DPS-registreringar konfigureras för X.509-autentisering stöds ömsesidig TLS (mTLS) av DPS.
Fäst certifikat
Det rekommenderas starkt att fästa och filtrera TLS-servercertifikat (även kallade lövcertifikat) och mellanliggande certifikat som är associerade med DPS-slutpunkter eftersom Microsoft ofta rullar dessa certifikat med liten eller ingen varsel. Om du måste kan du bara fästa rotcertifikaten enligt beskrivningen i det här Azure IoT-blogginlägget.
Använda TLS 1.2 i IoT SDK:er
Använd länkarna nedan för att konfigurera TLS 1.2 och tillåtna chiffer i Azure IoT-klient-SDK:er.
Språk | Versioner som stöder TLS 1.2 | Dokumentation |
---|---|---|
C | Tagga 2019-12-11 eller senare | Länk |
Python | Version 2.0.0 eller senare | Länk |
C# | Version 1.21.4 eller senare | Länk |
Java | Version 1.19.0 eller senare | Länk |
NodeJS | Version 1.12.2 eller senare | Länk |
Använda TLS 1.2 med IoT Hub
IoT Hub kan konfigureras för att använda TLS 1.2 vid kommunikation med enheter. Mer information finns i Inaktuell TLS 1.0 och 1.1 för IoT Hub.
Använda TLS 1.2 med IoT Edge
IoT Edge-enheter kan konfigureras att använda TLS 1.2 vid kommunikation med IoT Hub och DPS. Mer information finns på sidan med IoT Edge-dokumentation.