Supporto TLS in hub IoT di Azure servizio Device Provisioning
DPS usa Transport Layer Security (TLS) per proteggere le connessioni dai dispositivi IoT.
Le versioni correnti del protocollo TLS supportate dal servizio Device Provisioning sono:
- TLS 1.2
Limitare le connessioni a una versione minima di TLS
È possibile configurare le istanze del servizio Device Provisioning per consentire solo le connessioni client del dispositivo che usano una versione minima di TLS o versione successiva.
Importante
Attualmente dps supporta solo TLS 1.2, quindi non è necessario specificare la versione minima di TLS quando si crea un'istanza del servizio Device Provisioning. Questa funzionalità è disponibile per l'espansione futura.
A tale scopo, effettuare il provisioning di una nuova risorsa dps impostando la minTlsVersion
proprietà su 1.2
nella specifica della risorsa DPS del modello di Azure Resource Manager. Il modello JSON di esempio seguente specifica la minTlsVersion
proprietà per una nuova istanza del servizio Device Provisioning.
{
"$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
},
}
]
}
È possibile distribuire il modello con il comando seguente dell'interfaccia della riga di comando di Azure.
az deployment group create -g <your resource group name> --template-file template.json
Per altre informazioni sulla creazione di risorse dps con i modelli di Resource Manager, vedere Configurare il servizio Device Provisioning con un modello di Azure Resource Manager.
La risorsa DPS creata con questa configurazione rifiuterà i dispositivi che tentano di connettersi con TLS versioni 1.0 e 1.1.
Nota
La minTlsVersion
proprietà è di sola lettura e non può essere modificata dopo la creazione della risorsa dps. È quindi essenziale testare e verificare correttamente che tutti i dispositivi IoT siano compatibili con TLS 1.2 e le crittografie consigliate in anticipo.
Nota
In caso di failover, la minTlsVersion
proprietà del servizio Device Provisioning rimarrà effettiva nell'area geografica associata dopo il failover.
Crittografie consigliate
Le istanze del servizio Device Provisioning applicano l'uso delle suite di crittografia consigliate e legacy seguenti:
Pacchetti di crittografia TLS 1.2 consigliati |
---|
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 |
Suite di crittografia legacy
Questi pacchetti di crittografia sono attualmente supportati dal servizio Device Provisioning, ma saranno deprecati. Usare le suite di crittografia consigliate, se possibile.
Opzione 1 (maggiore sicurezza) |
---|
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) |
Opzione 2 (prestazioni migliori) |
---|
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) |
Supporto tls reciproco
Quando le registrazioni DPS sono configurate per l'autenticazione X.509, tls reciproco (mTLS) è supportato dal servizio Device Provisioning.
Aggiunta di certificati
L'aggiunta e il filtro dei certificati del server TLS (noti anche come certificati foglia) e i certificati intermedi associati agli endpoint DPS sono fortemente sconsigliati perché Microsoft esegue spesso il rollback di questi certificati senza preavviso. Se necessario, aggiungere solo i certificati radice come descritto in questo post di blog di Azure IoT.
Usare TLS 1.2 negli SDK IoT
Usare i collegamenti seguenti per configurare TLS 1.2 e le crittografie consentite negli SDK del client IoT di Azure.
Lingua | Versioni che supportano TLS 1.2 | Documentazione |
---|---|---|
C | Tag 2019-12-11 o versioni successive | Collegamento |
Python | Versione 2.0.0 o successive | Collegamento |
C# | Versione 1.21.4 o successive | Collegamento |
Java | Versione 1.19.0 o successive | Collegamento |
NodeJS | Versione 1.12.2 o successive | Collegamento |
Usare TLS 1.2 con hub IoT
hub IoT può essere configurato per l'uso di TLS 1.2 durante la comunicazione con i dispositivi. Per altre informazioni, vedere Deprecazione di TLS 1.0 e 1.1 nell'hub IoT.
Usare TLS 1.2 con IoT Edge
I dispositivi IoT Edge possono essere configurati per l'uso di TLS 1.2 durante la comunicazione con hub IoT e DPS. Per altre informazioni, vedere la pagina della documentazione di IoT Edge.