Compatibilidad de TLS en Azure IoT Hub Device Provisioning Service (DPS)
DPS utiliza Seguridad de la capa de transporte (TLS) para proteger las conexiones de los dispositivos IoT.
Las versiones actuales del protocolo TLS admitidas por DPS son:
- TLS 1.2
Restricción de conexiones a una versión mínima de TLS
Puede configurar instancias de DPS para permitir solo aquellas conexiones de cliente de dispositivo que usen una versión mínima de TLS o superior.
Importante
Actualmente, DPS solo admite TLS 1.2, por lo que no es necesario especificar la versión mínima de TLS al crear una instancia de DPS. Esta característica se proporciona para una expansión futura.
Para ello, aprovisione un nuevo recurso de DPS estableciendo la propiedad minTlsVersion
en 1.2
en la especificación de recursos de DPS de la plantilla de Azure Resource Manager. En la plantilla de ejemplo siguiente, JSON especifica la propiedad minTlsVersion
de una nueva instancia de DPS.
{
"$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
},
}
]
}
Puede implementar la plantilla con el siguiente comandos de la CLI de Azure.
az deployment group create -g <your resource group name> --template-file template.json
Para más información sobre cómo crear recursos de DPS con plantillas de Resource Manager, consulte Configuración de DPS con una plantilla de Azure Resource Manager.
El recurso de DPS creado con esta configuración rechazará los dispositivos que intenten conectarse mediante las versiones 1.0 y 1.1 de TLS.
Nota:
La propiedad minTlsVersion
es de solo lectura y no se puede cambiar una vez creado el recurso de DPS. Por lo tanto, es esencial que compruebe y valide de antemano que todos los dispositivos de IoT son compatibles con TLS 1.2 y con los cifrados recomendados.
Nota:
En caso de conmutaciones por error, la propiedad minTlsVersion
de su DPS seguirá siendo efectiva en la región con emparejamiento geográfico después de la conmutación por error.
Cifrados recomendados
Las instancias de DPS exigen el uso de los siguientes conjuntos de cifrado recomendados y heredados:
Conjuntos de cifrado de TLS 1.2 recomendados |
---|
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 |
Conjuntos de cifrados heredados
Los conjuntos de cifrado siguen siendo compatibles actualmente con DPS, pero quedarán en desuso. Si es posible, use los conjuntos de cifrado recomendados.
Opción 1 (mayor seguridad) |
---|
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) |
Opción 2 (mayor rendimiento) |
---|
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) |
Compatibilidad mutua con TLS
Cuando las inscripciones de DPS están configuradas para la autenticación X.509, DPS admite TLS mutua (mTLS).
Asignación de certificados
La asignación de certificados y el filtrado de los certificados de servidor TLS (también conocidos como certificados hoja) y los certificados intermedios asociados a puntos de conexión de DPS se desaconseja encarecidamente, ya que Microsoft suele implementar estos certificados con poca o ninguna notificación. Si es necesario, asigne solo los certificados raíz como se describe en esta entrada de blog de Azure IoT.
Uso de TLS 1.2 en los SDK de IoT
Use los vínculos siguientes para configurar TLS 1.2 y los cifrados permitidos en los SDK de cliente de Azure IoT.
Idioma | Versiones compatibles con TLS 1.2 | Documentación |
---|---|---|
C | Etiqueta 2019-12-11 o más reciente | Vínculo |
Python | Versión 2.0.0 o más reciente | Vínculo |
C# | Versión 1.21.4 o más reciente | Vínculo |
Java | Versión 1.19.0 o más reciente | Vínculo |
NodeJS | Versión 1.12.2 o más reciente | Vínculo |
Uso de TLS 1.2 con IoT Hub
IoT Hub se puede configurar para usar TLS 1.2 al comunicarse con dispositivos. Para obtener más información, vea Desuso de TLS 1.0 y 1.1 en IoT Hub.
Uso de TLS 1.2 con IoT Edge
Los dispositivos de IoT Edge se pueden configurar para que usen TLS 1.2 al comunicarse con IoT Hub y DPS. Para obtener más información, consulte la página de documentación de IoT Edge.