Compartir a través de


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).

Una entidad de certificación (CA) del certificado X.509 es un certificado digital que puede 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.

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.

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.

Tipos de autenticación de certificados

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 a IoT Hub.

  • CA X.509 firmada - Esta opción se recomienda para escenarios de producción y es el foco de este artículo.

    Si el dispositivo tiene un certificado X.509 firmado por una CA, cargue un certificado de CA raíz o intermedia en la cadena de firma en IoT Hub antes de registrar el dispositivo. El dispositivo tiene un certificado X.509 con la CA X.509 verificada en su cadena de confianza de certificados. Cuando el dispositivo se conecta, presenta su cadena de certificados completa y el centro de IoT puede validarlo porque conoce la CA X.509. Varios dispositivos se pueden autenticar en la misma CA X.509 verificada.

  • X.509 autofirmado

    Si el dispositivo tiene un certificado X.509 autofirmado, debe proporcionar a IoT Hub una versión del certificado para la autenticación. Al registrar un dispositivo, se carga una huella digital del certificado, que es un hash del certificado X.509 del dispositivo. Cuando el dispositivo se conecta, presenta su certificado y el centro de IoT puede validarlo con el hash que conoce.

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.

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

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.

Una manera válida pero ineficaz de proporcionar un certificado único en cada dispositivo es generar previamente certificados y proporcionar a todos los asociados de la cadena de suministro las claves privadas correspondientes. 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.

  • Contabilizar de forma segura las cuentas de los dispositivos de la cadena de suministro y, posteriormente, administrarlos en la implementación a través de la retirada de dispositivos se convierte en una tarea uno a uno para cada par de clave a dispositivo. Esto excluye a 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. Las cadenas de certificados crean una relación uno a varios entre un certificado de entidad de certificación y sus dispositivos de bajada. Gracias a esta relación puede registrar cualquier número de dispositivos en IoT Hub mediante el registro de un certificado de entidad de certificación X.509 una vez.

La autenticación del CA X.509 también simplifica la logística de la cadena de suministro. Un flujo de fabricación de dispositivos típico implica varios pasos y administradores. Mediante el uso de entidades de certificación, puede conectar a cada custodio en una cadena de confianza criptográfica en lugar de confiarle las claves privadas del 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.

Flujo del certificado X.509

En esta sección se describe cómo usar los certificados de entidad de certificación X.509 para autenticar los dispositivos que se conecten a IoT Hub, lo que incluye los siguientes pasos:

  • Obtenga un certificado de entidad de certificación X.509.
  • Firme dispositivos con certificados de entidad de certificación X.509.
  • Registre el certificado de entidad de certificación X.509 en IoT Hub.
  • Autentique dispositivos firmados con certificados de entidad de certificación X.509.
  • Revoque un certificado de dispositivo si está en peligro.

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.

También puede crear un certificado de entidad de certificación X.509 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. No se recomienda usar certificados autofirmados en 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.

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. Tenga esta opción en cuenta si los dispositivos forman parte de una red de IoT abierta donde interactúan con productos o servicios de terceros.

Para adquirir un certificado de CA X.509, elija un proveedor de servicios de certificado raíz. El proveedor de la 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.

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 de dispositivos en la cadena de certificados de confianza

El propietario de un certificado de entidad de certificación X.509 puede firmar criptográficamente una CA intermedia que, a su vez, puede firmar otra CA intermedia y así sucesivamente, hasta que la última CA 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 y evita el uso compartido de las claves de firma.

La cascada de certificados de la cadena sirve para representar el traspaso lógico de autoridad. Muchas cadenas de suministro siguen esta entrega lógica por la que cada CA intermedia inicia sesión en la cadena mientras recibe todos los certificados de CA ascendentes. La última CA intermedia firma cada dispositivo e inserta todos los certificados de autoridad de la cadena en el dispositivo.

Diagrama que muestra los certificados en una cadena de confianza.

El certificado del dispositivo (también llamado certificado de hoja) debe tener su nombre común (CN) establecido en el id. de dispositivo (CN=deviceId) que se usa 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, que lo usa para autenticar los dispositivos. Un certificado de entidad de certificación X.509 puede autenticar cualquier dispositivo que tenga la CA en su cadena de confianza de certificados. 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 prueba de posesión implica un proceso de desafío criptográfico y respuesta entre usted y IoT Hub para comprobar que realmente posee el certificado de entidad de certificación. Puede optar por comprobar automáticamente o manualmente la propiedad. Para la verificación manual, 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. Después de firmar el desafío, carga un archivo que contiene los resultados para completar la comprobación.

Obtenga información sobre cómo registrar su certificado de CA.

Autenticación de dispositivos firmados con certificados de CA X.509

Con el certificado de entidad de certificación X.509 registrado y los dispositivos firmados con una cadena de confianza de certificados, el último paso es la autenticación del dispositivo. Cuando se conecta un dispositivo firmado mediante CA X.509, su cadena de certificados se carga para su validación. Con esta información, IoT Hub autentica el dispositivo en un proceso de dos pasos.

En primer lugar, IoT Hub valida criptográficamente la cadena de certificados para la coherencia interna. A continuación, IoT Hub emite un desafío de prueba de posesión al 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 deba bloquearse para que no se conecte a IoT Hub debido a un certificado potencialmente en peligro, 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 configuración de una sola vez para preparar Smart-X-Widget para la conexión automática. Este escenario de un extremo a otro incluye los siguientes pasos:

  1. Obtención del certificado de entidad de certificación X.509

  2. Registro del certificado de CA X.509 en IoT Hub

  3. Registro de dispositivos en la cadena de certificados de confianza

  4. Conexión de los dispositivos

Estos pasos se muestran en Tutorial: Creación y carga de certificados para pruebas.

Obtenció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.

Diagrama en el que se muestra el flujo para generar un certificado de CA X.509.

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.

Diagrama en el que se muestra el flujo de proceso para registrar un certificado de CA X.509.

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. Como tal, 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 nuestro ejemplo, la autenticación basada en certificados significa que cada dispositivo Smart-X-Widget debe poseer un certificado de dispositivo único. En lugar de crear pares de claves o certificados individuales para cada dispositivo, Company-X decide usar certificados de entidad de certificación y crear una cadena de confianza de certificados para cada dispositivo.

En el ejemplo, Company-X firma a Factory-Y, que, a su vez, firma a Technician-Z, que finalmente firma Smart-X-Widget.

Diagrama en el que se muestra un ejemplo de una jerarquía de cadenas de certificados.

En el siguiente diagrama se muestra cómo se forma la cadena de certificados de confianza en el ejemplo del dispositivo Smart-X-Widget.

Diagrama en el que se muestra la cadena de certificados de confianza de los certificados de una empresa a los certificados de otra empresa.

  1. 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.
  2. Ahora, Factory-Y tiene su propio certificado de CA intermedia con una firma que le ha proporcionado Company-X. Esta entidad pasa copias de estos elementos a cada dispositivo. Asimismo, usa su certificado de CA intermedia para firmar el certificado de CA intermedia de Technician-Z, así como el certificado del dispositivo Smart-X-Widget.
  3. Ahora, Technician-Z tiene su propio certificado de CA intermedia y una firma que le ha proporcionado Factory-Y. Esta entidad pasa copias de estos elementos a cada dispositivo. Asimismo, usa su certificado de CA intermedia para firmar el certificado del dispositivo Smart-X-Widget.
  4. 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

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.

En el ejemplo, cada Smart-X-Widget carga 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, responde al desafío de la prueba de posesión desde IoT Hub.

Gracias al uso de certificados de entidad de certificación 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 entidad de certificación 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.

Diagrama en el que se muestra el flujo para validar un certificado de dispositivo.

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