Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
En este artículo se describen los conceptos implicados al aprovisionar dispositivos mediante la atestación del módulo de plataforma segura (TPM) en Device Provisioning Service (DPS). Este artículo es relevante para todos los roles implicados en la preparación de un dispositivo para la implementación.
Un módulo de plataforma segura (TPM) es un tipo de módulo de seguridad de hardware (HSM). En este artículo se asume que está utilizando un TPM discreto, de firmware o integrado. Los TPM emulados de software son adecuados para la creación de prototipos o pruebas, pero no proporcionan el mismo nivel de seguridad que los TPM discretos, de firmware o integrados. No se recomienda usar TPM de software en producción.
Este artículo solo es relevante para los dispositivos que usan TPM 2.0 con compatibilidad con claves de código de autenticación de mensajes basado en hash (HMAC) y sus claves de aprobación. TPM es un estándar ISO de todo el sector del grupo de computación de confianza y puede obtener más información sobre TPM en la especificación completa de TPM 2.0 o la especificación ISO/IEC 11889. En este artículo también se da por supuesto que está familiarizado con los pares de claves públicas y privadas y cómo se usan para el cifrado.
Los SDKs de Device Provisioning Service para dispositivos manejan todo lo que se describe en este artículo. No es necesario implementar compatibilidad con TPM si usa los SDK en los dispositivos. Este artículo le ayudará a comprender conceptualmente lo que ocurre con el chip de seguridad de TPM cuando su dispositivo se aprovisiona y por qué es tan seguro.
Información general
Los TPM usan algo denominado clave de aprobación (EK) como la raíz segura de confianza. El EK es único para el TPM y al cambiarlo, esencialmente, convierte el dispositivo en uno nuevo.
Los TPM tienen otro tipo de clave denominada clave raíz de almacenamiento (SRK). El propietario del TPM puede generar un SRK después de tomar posesión del TPM. Tomar posesión del TPM es la manera específica del TPM de decir "alguien establece una contraseña en el HSM". Si se vende un dispositivo TPM a un nuevo propietario, el nuevo propietario puede tomar posesión del TPM para generar un nuevo SRK. La nueva generación de SRK garantiza que el propietario anterior no puede usar el TPM. Dado que el SRK es único para el propietario del TPM, el SRK se puede usar para sellar los datos en el propio TPM para ese propietario. SRK proporciona un entorno seguro para que el propietario almacene sus claves y permita la revocación del acceso si se vende el dispositivo o el TPM. Es como mudarse a una nueva casa: tomar posesión está cambiando las cerraduras en las puertas y destruyendo todos los muebles dejados por los propietarios anteriores (SRK), pero no se puede cambiar la dirección de la casa (EK).
Una vez configurado un dispositivo, tiene un EK y un SRK disponibles para su uso.
Los pasos específicos implicados en la toma de posesión de un TPM varían según el fabricante, el conjunto de herramientas de TPM que se usa y el sistema operativo del dispositivo.
Device Provisioning Service usa la parte pública del EK (EK_pub) para identificar e inscribir dispositivos. El proveedor del dispositivo puede leer el EK_pub durante la fabricación o las pruebas finales y cargar el EK_pub en el servicio de aprovisionamiento para que el dispositivo se reconozca cuando se conecte al aprovisionamiento. El Servicio de Aprovisionamiento de Dispositivos no comprueba el SRK ni al propietario, por lo que "limpiar" el TPM borra los datos del cliente, pero se conserva el EK (y otros datos del proveedor), y el Servicio de Aprovisionamiento de Dispositivos todavía reconoce el dispositivo cuando se conecta para el aprovisionamiento.
Proceso de atestación
Cuando un dispositivo con un TPM se conecta al Servicio de Aprovisionamiento de Dispositivos, el servicio comprueba primero el EK_pub proporcionado contra la EK_pub almacenada en la lista de inscripción. Si el EK_pubs no coincide, el dispositivo no puede aprovisionar. Si los EK_pubs coinciden, el servicio requiere que el dispositivo demuestre la propiedad de la porción privada del EK a través de un reto nonce, un reto seguro usado para verificar la identidad. Device Provisioning Service genera un nonce y lo cifra primero con el SRK y luego con el EK_pub, ambos proporcionados por el dispositivo durante la llamada de registro inicial. El TPM siempre mantiene segura la parte privada del EK. Esta seguridad evita la falsificación y garantiza que los tokens de SAS se aprovisionan de forma segura en dispositivos autorizados.
Veamos detalladamente el proceso de atestación.
El dispositivo solicita una asignación de IoT Hub
En primer lugar, el dispositivo se conecta al Servicio de Aprovisionamiento de Dispositivos y solicita aprovisionarse. Al hacerlo, el dispositivo proporciona al servicio un identificador de registro, un ámbito de identificador y la parte pública de la clave de aprobación y la clave raíz de almacenamiento del TPM. El servicio vuelve a pasar el nonce cifrado al dispositivo y pide al dispositivo que descifre el nonce y lo use para firmar un token de SAS para conectarse de nuevo y finalizar el aprovisionamiento.
Desafío de Nonce
El dispositivo toma el nonce y usa las porciones privadas de la clave privada y la clave raíz de almacenamiento para descifrar el nonce en el TPM; la solicitud de cifrado del nonce delega la confianza desde la clave de aprobación, que es inmutable, a la clave raíz de almacenamiento, que puede cambiar si un nuevo propietario toma posesión del TPM.
Validación del nonce y recepción de credenciales
Después, el dispositivo puede firmar un token de SAS mediante el nonce descifrado y restablecer una conexión al servicio Device Provisioning mediante el token de SAS firmado. Con el desafío de nonce completado, el servicio permite que el dispositivo se aprovisione.