Autenticación de identidades con certificados X.509
IoT Hub usa certificados X.509 para autenticar dispositivos. La autenticación de X.509 permite la autenticación de un dispositivo IoT como parte del establecimiento de la conexión estándar mediante Seguridad de la capa de transporte (TLS).
Los certificados de CA X.509 son certificados digitales que pueden usarse para firmar otros certificados. Los certificados digitales se consideran certificados X.509 si se ajustan al estándar de formato de certificados que se prescribe mediante el estándar RFC 5280 de IETF. "CA" (entidades de certificación) significa que su titular puede firmar otros certificados.
En este artículo se describe cómo usar los certificados de las entidades de certificación (CA) X.509 para autenticar los dispositivos que se conecten a IoT Hub, lo que incluye los siguientes pasos:
- Cómo obtener un certificado de entidad de certificación X.509
- Cómo registrar el certificado de entidad de certificación X.509 en IoT Hub
- Cómo firmar dispositivos con certificado de entidad de certificación X.509
- Cómo autenticar los dispositivos firmados con entidades de certificación X.509
Importante
La funcionalidad siguiente para los dispositivos que usan la autenticación de la entidad de certificación X.509 no está disponible con carácter general, y se debe habilitar el modo de vista previa:
- los protocolos HTTPS, MQTT a través de WebSockets y AMQP a través de WebSockets.
- Cargas de archivos (todos los protocolos).
Estas características están disponibles con carácter general para los dispositivos que usan la autenticación de huella digital X.509. Para obtener más información acerca de la autenticación X.509 con IoT Hub, consulte Certificados X.509 compatibles.
Gracias a la característica CA X.509, es posible autenticar dispositivos en IoT Hub mediante una entidad de certificación (CA). Simplifica el proceso de inscripción inicial del dispositivo y la logística de la cadena de suministro durante la fabricación del dispositivo.
Autenticación y autorización
La autenticación es el proceso de demostrar que es quien dice ser. La autenticación comprueba la identidad de un usuario o dispositivo en IoT Hub. A veces se acorta a AuthN. La autorización es el proceso de confirmar permisos para un usuario o dispositivo autenticado en IoT Hub. Especifica los recursos y comandos a los que puede acceder y lo que puede hacer con esos recursos y comandos. A veces, la autorización se acorta a AuthZ.
En este artículo se describe la autenticación mediante certificados X.509. Puede usar cualquier certificado X.509 para autenticar un dispositivo en IoT Hub, cargando ya sea una huella digital del certificado o una entidad de certificación (CA) a Azure IoT Azure.
Los certificados X.509 se usan para la autenticación en IoT Hub, no para la autorización. A diferencia de lo que ocurre con Microsoft Entra ID y las firmas de acceso compartido, no puede personalizar los permisos con los certificados X.509.
Aplicación de la autenticación X.509
Para obtener mayor seguridad, se puede configurar un centro de IoT a fin de no permitir la autenticación SAS para dispositivos y módulos, y dejar X.509 como la única opción de autenticación aceptada. Actualmente esta característica no está disponible en Azure Portal. Para configurarla, establezca disableDeviceSAS
y disableModuleSAS
en true
en las propiedades del recurso de IoT Hub:
az resource update -n <iothubName> -g <resourceGroupName> --resource-type Microsoft.Devices/IotHubs --set properties.disableDeviceSAS=true properties.disableModuleSAS=true
Ventajas del proceso de autenticación con certificados de CA X.509
La autenticación con CA (entidades de certificación) X.509 es un enfoque de autenticación de dispositivos en IoT Hub mediante un método cuyo uso simplifica considerablemente la creación de identidades de dispositivo y la administración del ciclo de vida en la cadena de suministro.
Un atributo distintivo de la autenticación mediante CA X.509 consiste en la relación "de uno a muchos" que presenta cada certificado de CA respecto con los dispositivos de nivel inferior. Gracias a esta relación, es posible registrar cualquier número de dispositivos en IoT Hub por cada certificado de CA X.509 que se registra. Si no fuera así, sería necesario registrar certificados únicos previamente para cada dispositivo antes de que uno de ellos pueda conectarse. Gracias a esta relación de uno a muchos, también es posible simplificar las operaciones de administración del ciclo de vida de los certificados de los dispositivos.
Otro atributo importante del proceso de autenticación mediante CA X.509 es la simplificación de la logística de la cadena de suministro. Para realizar un proceso de autenticación seguro de los dispositivos, es necesario que cada dispositivo tenga un secreto exclusivo, como una clave, sobre la que se fundamente la confianza. En los procesos de autenticación basada en certificados, este secreto es una clave privada. Un flujo de fabricación de dispositivos típico implica varios pasos y administradores. La administración segura de claves privadas de dispositivos entre varios administradores y mantener la confianza resulta difícil y caro. El uso de las entidades de certificación soluciona este problema con el registro de cada administrador en una cadena de confianza criptográfica, en lugar de protegerlas con claves privadas de dispositivo. Cada administrador firma los dispositivos durante el paso que les corresponde en el flujo de fabricación. El resultado general es una cadena de suministro óptima con responsabilidad integrada a través del uso de la cadena de confianza criptográfica.
Para garantizar la máxima seguridad, los dispositivos deben proteger sus claves privadas exclusivas. Para ello, una buena práctica consiste en usar módulos de seguridad de hardware (HSM) capaces de generar claves privadas internamente.
El servicio Azure IoT Hub Device Provisioning Service (DPS) puede usarse para aprovisionar grupos de dispositivos en centros de conectividad de manera sencilla. Para obtener más información, consulte: Tutorial: Aprovisionamiento de varios dispositivos X.509 mediante grupos de inscripción.
Obtención de un certificado de CA X.509
El certificado de entidad de certificación X.509 está en la parte superior de la cadena de certificados de cada dispositivo. Puede comprar o crear uno en función de cómo pretenda usarlo.
Para entornos de producción, le recomendamos que compre un certificado X.509 CA de un proveedor de servicios de certificación profesional. Adquirir un certificado de entidad de certificación tiene la ventaja de que la entidad de certificación raíz actúa como un tercero de confianza para garantizar la legitimidad de los dispositivos. Tenga esta opción en cuenta si los dispositivos forman parte de una red de IoT abierta donde interactuar con productos o servicios de terceros.
También puede crear un certificado de entidad de certificación X.509 CA autofirmado con fines de prueba. Para obtener más información sobre cómo crear certificados para pruebas, consulte Creación y carga de certificados para pruebas.
Nota
No se recomienda el uso de certificados autofirmados para entornos de producción.
Independientemente de cómo obtenga el certificado de entidad de certificación X.509, asegúrese de que la clave privada correspondiente es secreta y está protegida en todo momento. Esta precaución es necesaria para fomentar la confianza que se deposita en la autenticación mediante CA X.509.
Registro de dispositivos en la cadena de certificados de confianza
El propietario de un certificado de CA X.509 puede firmar criptográficamente una entidad de certificación intermedia que, a su vez, puede firmar otra entidad de certificación intermedia, y así sucesivamente hasta que la última entidad de certificación intermedia finalice este proceso mediante la firma de un certificado de dispositivo. El resultado es una cadena de certificados en cascada, que también se conoce como cadena de certificados de confianza. Esta delegación de confianza es importante porque establece una cadena de custodia criptográficamente variable y evita el uso compartido de las claves de firma.
El certificado del dispositivo (también llamado certificado de hoja) debe tener su nombre común (CN) establecido en el id. del dispositivo (CN=deviceId
) que se usó al registrar el dispositivo IoT en Azure IoT Hub. Esta opción de configuración es necesaria para la autenticación.
Para los módulos que usan la autenticación X.509, el certificado del módulo debe tener su nombre común (CN) con un formato como CN=deviceId/moduleId
.
Obtenga información sobre cómo crear una cadena de certificados, tal y como se hace cuando se firman los dispositivos.
Registro del certificado de CA X.509 en IoT Hub
Registre el certificado de entidad de certificación X.509 en IoT Hub, donde se utilizará para autenticar los dispositivos durante el registro y la conexión. El proceso de registro del certificado de CA X.509 consiste en dos pasos: la carga del archivo de certificado y el establecimiento de la prueba de posesión de este.
El proceso de carga implica cargar un archivo que contiene el certificado. Este archivo no debe contener nunca las claves privadas.
El paso de la prueba de posesión implica un desafío criptográfico y un proceso de respuesta entre el usuario y IoT Hub. Como el contenido de los certificados digitales es público, también es susceptible a interceptaciones. Por tanto, es conveniente que se confirme, desde IoT Hub, que usted es el propietario real del certificado de CA. Puede optar por comprobar automáticamente o manualmente la propiedad. Para la verificación manual, Azure IoT Hub genera un desafío aleatorio que firma con la clave privada correspondiente del certificado de entidad de certificación. Si mantuvo la clave privada en secreto y protegida, tal y como se recomienda, será la única persona que posea la información que se requiere para completar este paso. La confidencialidad de las claves privadas es el origen de confianza en este método. Una vez que se firme el desafío, este paso se completará y usted cargará manualmente el certificado al cargar un archivo donde se incluyan los resultados.
Obtenga información sobre cómo registrar su certificado de CA.
Autenticación de dispositivos firmados con certificados de CA X.509
Cada centro de IoT tiene un registro de identidades que almacena información acerca de los dispositivos y módulos que pueden conectarse a él. Para que un dispositivo o un módulo se pueda conectar, debe haber una entrada para ese dispositivo o módulo en el registro de identidades del centro de IoT. Un dispositivo o un módulo se puede autenticar en el centro de IoT en función de las credenciales almacenadas en el registro de identidades.
Una vez que haya registrado el certificado de CA X.509 y haya conectado los dispositivos a una cadena de certificados de confianza, el último paso consistirá en autenticar los dispositivos cuando estos se conecten. Cuando se conecta un dispositivo firmado mediante CA X.509, su cadena de certificados se carga para su validación. La cadena incluye los certificados del dispositivo y la entidad de certificación intermedia. Con esta información, IoT Hub autentica el dispositivo en un proceso de dos pasos. IoT Hub valida criptográficamente la cadena de certificados para comprobar la coherencia interna y, a continuación, emite un desafío de prueba de posesión en el dispositivo. IoT Hub declara que el dispositivo es auténtico en una respuesta de prueba de posesión satisfactoria del dispositivo. Esta declaración asume que la clave privada del dispositivo está protegida y que solo el dispositivo puede responder correctamente a este desafío. Una buena práctica para proteger las claves privadas consiste en utilizar chips seguros en los dispositivos, como los módulos de seguridad de hardware (HSM).
Una conexión de dispositivo correcta a IoT Hub completa el proceso de autenticación y también es indicativa de una configuración apropiada. Cada vez que se conecta un dispositivo, IoT Hub renegocia la sesión TLS y comprueba el certificado X.509 del dispositivo.
Revocar un certificado de dispositivo
IoT Hub no comprueba las listas de revocación de certificados de la entidad de certificación al autenticar dispositivos con autenticación basada en certificados. Si tiene un dispositivo que debe bloquearse para conectarse a IoT Hub debido a un certificado potencialmente comprometido, debe deshabilitar el dispositivo en el registro de identidades. Para más información, consulte Deshabilitar o eliminar un dispositivo.
Escenario de ejemplo
Company-X es una empresa que comercializa los dispositivos Smart-X-Widget, que están diseñados para que el proceso de instalación lo realicen profesionales. Company-X externaliza la instalación y fabricación. Factory-Y fabrica los dispositivos Smart-X-Widget y el profesional Technician-Z los instala. Company-X quiere que un dispositivo Smart-X-Widget se envíe directamente desde Factory-Y a Technician-Z para su instalación y que, a continuación, el dispositivo se conecte directamente a la instancia de IoT Hub de Company-X. Para ello, Company-X debe completar una serie de operaciones de instalación una única vez para preparar Smart-X-Widget para la conexión automática. Este escenario de un extremo a otro incluye los siguientes pasos:
Adquisición del certificado de entidad de certificación X.509
Registro del certificado de CA X.509 en IoT Hub
Registro de dispositivos en la cadena de certificados de confianza
Conexión de los dispositivos
Estos pasos se muestran en Tutorial: Creación y carga de certificados para pruebas.
Adquisición del certificado
Company-X puede adquirir un certificado de CA X.509 de una entidad de certificación raíz pública, o bien crear uno mediante un proceso de autofirmado. Ambas opciones entrañan dos pasos fundamentales: la generación de un par de claves pública/privada y el registro de la clave pública en un certificado.
Los detalles sobre cómo llevar a cabo estos pasos difieren entre los distintos proveedores de servicios.
Compra de un certificado
Adquirir un certificado de entidad de certificación tiene la ventaja de que una entidad de certificación raíz bien conocida actúa como un tercero de confianza para garantizar la legitimidad de los dispositivos IoT cuando estos se conectan. Elija esta opción si los dispositivos van a interactuar con productos o servicios de terceros.
Para adquirir un certificado de CA X.509, elija un proveedor de servicios de certificado raíz. La el proveedor de CA raíz le guiará durante el proceso de creación del par de claves pública/privada, así como en la generación de una solicitud de firma de certificado (CSR) para sus servicios. Una CSR es el proceso formal de aplicación de un certificado de una entidad de certificación. El resultado de esta compra es un certificado que se puede usar como un certificado de entidad. Dada la ubicuidad de los certificados X.509, es probable que se haya dado el formato adecuado al certificado con el estándar RFC 5280 de IETF.
Crear un certificado autofirmado
El proceso de creación de un certificado de CA X.509 autofirmado es similar al de su compra, con la excepción de que este no implica a un firmante de terceros, como a una entidad de certificación raíz. En el ejemplo, la empresa Company-X firmaría su propio certificado de entidad en lugar de que lo firmara una entidad de certificación raíz.
Puede elegir esta opción si desea realizar pruebas hasta que todo esté listo para adquirir un certificado de entidad. También puede usar un certificado de entidad de certificación X.509 autofirmado durante el proceso de producción de los dispositivos, siempre que estos no vayan a conectarse a servicios de terceros que existan fuera de IoT Hub.
Registro del certificado en IoT Hub
Company-X debe registrar la entidad de certificación X.509 en IoT Hub donde servirá para autenticar Smart-X-Widgets a medida que se conectan. Se trata de un proceso único, mediante el que puede autenticarse y administrarse cualquier número de dispositivos Smart-X-Widget. La relación de uno a varios entre el certificado de entidad de certificación y los certificados de dispositivo es una de las principales ventajas de usar el método de autenticación de entidad de certificación X.509. La alternativa a este método consistiría en cargar huellas digitales de certificado individuales para cada dispositivo Smart-X-Widget, lo que provocaría un aumento en los costos del negocio.
El proceso de registro de los certificados de CA X.509 consta de dos pasos: la carga del certificado y la prueba de posesión de este.
Carga del certificado
El proceso de carga del certificado de CA X.509 consiste justamente en eso: en cargar el certificado en IoT Hub. IoT Hub espera el certificado en un archivo.
En el archivo de certificado no debe incluirse ninguna clave privada bajo ningún concepto. Si se siguen los procedimientos recomendados de los estándares que rigen en la infraestructura de clave pública (PKI), la clave privada de Company-X solo deberá conocerse dentro de la empresa.
Demostrar la posesión
El certificado de entidad de certificación X.509, al igual que cualquier certificado digital, es información pública que es susceptible de interceptación. Por lo tanto, un intruso puede interceptar un certificado e intentar cargarlo como si fuera suyo. En el ejemplo, sería necesario que, desde IoT Hub, se comprobara que el certificado de CA que se está cargando desde Company-X realmente pertenece a esa empresa. Para ello, se instaría a que Company-X demuestre que posee el certificado mediante un flujo de prueba de posesión (PoP).
En el flujo de la prueba de posesión de IoT Hub, se genera un número aleatorio que Company-X debe firmar con su clave privada. Si Company-X ha seguido los procedimientos recomendados de PKI y ha protegido su clave privada correctamente, entonces solo esta empresa podrá responder correctamente al desafío de prueba de posesión. IoT Hub procede con el registro del certificado de entidad de certificación X.509 tras superar satisfactoriamente el desafío de la prueba de posesión.
El registro de la entidad de certificación X.509 se completa tras obtener la respuesta correcta de IoT Hub al desafío de la prueba de posesión.
Registro de dispositivos en la cadena de certificados de confianza
En IoT, se requiere una identidad única para cada dispositivo que se conecte. Para la autenticación basada en certificados, estas identidades se proporcionan en forma de certificados. En nuestro ejemplo, la autenticación basada en certificados significa que cada dispositivo Smart-X-Widget debe poseer un certificado de dispositivo único.
Una forma válida pero ineficaz de proporcionar certificados únicos a cada dispositivo consiste en generar los certificados para los Smart-X-Widget previamente y en confiar las claves privadas correspondientes a los asociados de la cadena de suministro. En el caso de la empresa Company-X, esto significaría confiarlas a la fábrica Factory-Y y en el profesional Technician-Z. Este método incluye desafíos que deben superarse para garantizar la confianza, como se indica a continuación:
La necesidad de compartir las claves privadas de los dispositivos con los asociados de la cadena de suministro, además de ignorar los procedimientos recomendados de la infraestructura de clave pública de no compartir nunca las claves privadas, encarece la generación de confianza en la cadena de suministro. Esto requiere la implantación de ciertos sistemas, como salas seguras donde almacenar las claves privadas de los dispositivos y llevar a cabo procesos como las auditorías periódicas de seguridad. Ambas medidas generan costos en la cadena de suministro.
Tener en cuenta la seguridad de los dispositivos a lo largo de la cadena de suministro, así como administrarlos posteriormente durante la fase de implementación, se convierten en una tarea individual para cada par de clave/dispositivo desde el momento en que se genera el certificado único del dispositivo (y su clave privada) hasta que este se retira. Esto excluye la administración en grupo de los dispositivos, a menos que el concepto de grupos esté integrado de forma explícita en el proceso de algún modo. La contabilidad segura y la administración del ciclo de vida del dispositivo, por tanto, se convierten en operaciones con mucho peso.
El proceso de autenticación mediante certificados de CA X.509 puede usarse para ofrecer soluciones elegantes a estos desafíos, gracias al uso de cadenas de certificados. Las cadenas de certificados se forman cuando un certificado de CA se usa para firmar un certificado de CA intermedia que, a su vez, se usa para firmar otro certificado de CA intermedia, y así sucesivamente hasta que se usa un certificado de CA intermedia para darle la firma final a un dispositivo. En el ejemplo, Company-X firma a Factory-Y, que, a su vez, firma a Technician-Z, que finalmente firma Smart-X-Widget.
La cascada de certificados de la cadena sirve para representar el traspaso lógico de autoridad. En muchas cadenas de suministro, se sigue este proceso de traspaso lógico, en el que cada CA intermedia se va registrando en la cadena a medida que se reciben los certificados de CA anteriores, hasta que la última CA firma cada dispositivo e introduce todos los certificados de autoridad de la cadena en este. Esto resulta habitual cuando la empresa fabricante que se contrata tiene una jerarquía de fábricas y le encarga el proceso de fabricación a una de ellas. Aunque la jerarquía puede contar de varios niveles (por ejemplo, según la ubicación geográfica, el tipo de producto o la línea de fabricación), solo la fábrica final interactúa con el dispositivo, pero la cadena se mantiene desde el principio de la jerarquía.
En otros tipos de cadenas, puede que varias CA intermedias interactúen con el dispositivo. En ese caso, la CA que interactúe con el dispositivo introducirá el contenido de la cadena de certificados cuando llegue ese momento. También se aceptan modelos híbridos donde solo algunas de las entidades de certificación interactúen de forma física con el dispositivo.
En el siguiente diagrama se muestra cómo se forma la cadena de certificados de confianza en el ejemplo del dispositivo Smart-X-Widget.
- La empresa Company-X nunca interactúa físicamente con los dispositivos Smart-X-Widget. Esta inicia la cadena de certificados de confianza mediante la firma del certificado de CA intermedia de la fábrica Factory-Y.
- Ahora, Factory-Y tiene su propio certificado de CA intermedia y una firma que le ha proporcionado Company-X. A continuación, esta entidad pasa copias de estos elementos al dispositivo en cuestión. Asimismo, usa su certificado de CA intermedia para firmar el certificado de CA intermedia del profesional Technician-Z, así como el certificado del dispositivo Smart-X-Widget.
- Ahora, Technician-Z tiene su propio certificado de CA intermedia y una firma que le ha proporcionado Factory-Y. A continuación, esta entidad pasa copias de estos elementos al dispositivo en cuestión. Asimismo, usa su certificado de CA intermedia para firmar el certificado del dispositivo Smart-X-Widget.
- Como resultado, cada dispositivo Smart-X-Widget tiene su propio certificado de dispositivo único, así como copias de las claves y firmas públicas de cada certificado de CA con el que interactuó a lo largo de la cadena de suministro. Estos certificados y firmas se pueden rastrear hasta el origen raíz, que es la empresa Company-X.
Gracias al método de autenticación mediante certificados de CA, se puede incorporar un sistema de responsabilidad segura en la cadena de suministro del proceso de fabricación de los dispositivos. Gracias al proceso de la cadena de certificados, las acciones de cada miembro de la cadena se registran de forma criptográfica y se pueden verificar.
Este proceso se basa en la suposición de que el par de claves pública/privada exclusiva del dispositivo se crea de forma independiente y que la clave privada siempre está protegida en el interior del dispositivo. Afortunadamente, existen chips de silicio que se denominan módulos de seguridad de hardware (HSM) y que pueden usarse para generar claves internamente, así como para proteger las claves privadas. Para beneficiarse de esas características, la empresa Company-X solo necesita agregar uno de esos chips seguros a la lista de materiales de los componentes del dispositivo Smart-X-Widget.
Autenticación de dispositivos
Una vez que se registra el certificado de CA de nivel superior en IoT Hub y que los dispositivos tienen sus certificados únicos, ¿cómo se conectan? Al registrar un certificado de CA X.509 en IoT Hub una vez, ¿cómo pueden millones de dispositivos conectarse y autenticarse por primera vez? Con el mismo proceso de carga del certificado y el flujo de la prueba de posesión, anteriormente se registró el certificado de entidad de certificación X.509.
Los dispositivos que se fabrican con el uso del proceso de autenticación mediante certificados CA X.509 en mente se equipan con certificados exclusivos para cada dispositivo, así como con una cadena de certificados que procede de la cadena de suministro de fabricación que corresponde. La conexión del dispositivo, incluso cuando se establece por primera vez, consiste en un proceso de dos pasos: la carga de la cadena de certificados y la prueba de posesión.
Durante el proceso de carga de la cadena de certificados, el dispositivo carga su certificado exclusivo en IoT Hub, junto con la cadena de certificados que se instaló en él. Gracias al uso de certificados de CA X.509 previamente registrados en IoT Hub, es posible validar que la cadena de certificados que se carga sea coherente internamente, así como que la haya originado el propietario válido del certificado de CA X.509. Al igual que ocurre durante el proceso de registro de CA X.509, en IoT Hub se usa un proceso de desafío y respuesta de prueba de posesión para garantizar que la cadena y, por consiguiente, el certificado del dispositivo pertenecen al dispositivo desde donde este se carga. Una respuesta satisfactoria insta a IoT Hub a que acepte el dispositivo como auténtico y permite su conexión.
En el ejemplo, cada dispositivo Smart-X-Widget cargaría su certificado exclusivo del dispositivo junto con los certificados de entidad de certificación X.509 de Factory-Y y Technician-Z y, después, respondería al desafío de la prueba de posesión desde IoT Hub.
La confianza se fundamenta en función de la protección de las claves privadas, incluidas las claves privadas del dispositivo. Por tanto, los chips de silicio seguros, que se denominan módulos de seguridad de hardware (HSM), son de suma importancia a la hora de proteger las claves privadas de los dispositivos. Además, el procedimiento recomendado general de no compartir nunca las claves privadas, como puede ocurrir si una fábrica confíe a otra su clave privada, también desempeña un papel clave.
Pasos siguientes
Use el servicio Device Provisioning Service para aprovisionar varios dispositivos X.509 mediante grupos de inscripción.
Para obtener más información sobre los campos que componen un certificado X.509, consulte los certificados X.509.
Si tiene un certificado de CA raíz o un certificado de CA subordinada que quiere cargar en IoT Hub, debe comprobar que el certificado es de su propiedad. Para más información, consulte Tutorial: Creación y carga de certificados para pruebas.