Uso de módulos de plataforma de confianza (TPM) en NI Linux en tiempo real

Información general

La última actualización en tiempo real de NI Linux incluye compatibilidad con módulos de plataforma de confianza (TPM). Este artículo define un TPM, explica los casos de uso de un TPM y proporciona información sobre cómo usar el TPM.

Contenido

¿Qué es un TPM?

Un módulo de plataforma de confianza (TPM) es un componente de hardware utilizado como raíz de confianza, diseñado para generar, almacenar y usar claves criptográficas de forma segura. Los TPM son un lugar seguro para almacenar secretos, información que no desea que otros obtengan. Los TPM ofrecen varias ventajas para almacenar información sensible, como claves criptográficas.

  • La información privada en los TPM nunca deja el TPM en texto plano, solo en texto cifrado, por lo que debe descifrarse antes de que los humanos o el software puedan leerla.
  • Las teclas TPM se pueden vincular a un estado del sistema. Vincular una clave a un estado significa que el TPM asocia una clave a System Configuration específica, de tal manera que solo se libera cuando el sistema vuelve a ese estado. Como resultado, si se modifica el Firmware de una computadora, el TPM se negará a liberar la clave para desbloquear los datos del disco duro.
  • Las claves privadas protegidas por TPM no son directamente accesibles para el sistema operativo o las aplicaciones en texto plano. Las operaciones criptográficas que utilizan esas claves se realizan dentro del TPM, y cualquier material de clave almacenado o transferido fuera del TPM permanece protegido criptográficamente.

Estas características hacen que un TPM sea una adición valiosa a un sistema de prueba que funciona con datos sensibles o en un entorno sensible donde los datos deben protegerse.

¿Para qué se utilizan los TPM?

Los TPM se utilizan comúnmente para el cifrado de disco, la identidad y autenticación del dispositivo, la verificación de la autenticidad de los componentes del Firmware (arranque seguro) y la protección de los secretos de la aplicación. Para una aplicación de ensayo y medición, esto significa que los sistemas pueden utilizar un TPM para uno de los siguientes ejemplos:

  • Para asegurarse de que un sistema no se ha modificado entre las operaciones de arranque, incluida la eliminación o adición de memoria, el cambio de Firmware para alterar el comportamiento del sistema o el cambio del software que se está ejecutando.
  • Para proteger las claves utilizadas para cifrar o descifrar la información que se envía desde el sistema de prueba a una estación central. Cuando estas claves se almacenan en archivos o scripts, son vulnerables a la copia o reutilización. En un TPM, estas claves están encriptadas y unidas al hardware. No se pueden extraer y reutilizar en otro sistema y solo son accesibles por software autorizado.
  • Para proteger VPN o materiales de certificados para acceso remoto.
  • Escribir datos en unidades extraíbles cifradas y proteger esos datos hasta que sean descifrados correctamente por alguien con las claves correctas. 

¿Qué versiones de TPM están disponibles?

TPM 1.2 fue lanzado en 2003 y soporta criptografía RSA y SHA-1. TPM 2.0 es un rediseño importante de 2014 del estándar TPM e incluye algoritmos modernos, incluidos ECC, SHA-256 y más. TPM 2.0 es el estándar moderno y es requerido por Windows 11 y es utilizado por algunos hardware NI.

Uso de un TPM en NI Linux en tiempo real

El acceso y uso de un TPM en NI Linux Real-Time se realiza a través de una sesión SSH al dispositivo y requiere conocimiento de Linux, NI Linux Real-Time y conceptos de seguridad. Aquí se proporciona información como punto de partida para los desarrolladores que evalúan NI Linux Real-Time para aplicaciones seguras. Para obtener información detallada, consulte la última documentación en tiempo real de NI Linux y la documentación pública de cada una de las bibliotecas mencionadas aquí.

Estas instrucciones se aplican solo a los dispositivos NI Linux en tiempo real con un TPM. Los TPM están disponibles en algunos controladores PXI y ciertos controladores CompactRIO. Para obtener una lista de los controladores PXI que incluyen un chip TPM, consulte Soporte para Trusted Platform Module (TPM) en controladores NI. Tenga en cuenta que los TPM no están incluidos en la mayoría de los sistemas CompactRIO, pero se pueden pedir con el NI cRIO-9048. Para este documento, utilizamos un NI cRIO-9048 con la opción TPM. 

 

Paso 0: Actualice su Firmware e Imagen del Sistema en Tiempo Real de NI Linux a la versión más reciente.

La versión 11.5 (2026Q2) de NILRT introdujo un mayor soporte para las interacciones TPM por parte de los usuarios y las aplicaciones. Este documento supone que su sistema se ha actualizado a al menos esta versión. La actualización a la última versión disponible es la mejor práctica para sistemas seguros.

Conéctese a su destino mediante el Administrador de hardware de NI y utilice los diálogos de la barra lateral Actualizar Firmware y Administrar software para actualizar los componentes del sistema operativo.

 

Paso 1: SSH en el dispositivo NI Linux en tiempo real.

Utilice un cliente SSH para abrir una conexión shell al dispositivo de destino. En la ventana de comandos, abra una sesión SSH:

Introduzca el nombre de usuario y la contraseña, tal como se configuran en NI MAX o NI Hardware Manager. El nombre de usuario predeterminado es admin, y la contraseña predeterminada está en blanco.

 

Paso 2: Verifique la presencia de TPM en el dispositivo.

Si el dispositivo tiene un TPM, creará uno o dos archivos en el arranque: tpm0 y tpmrm0. Si tiene un dispositivo, el siguiente comando:

volverá a sintonizar la siguiente información:


Si el dispositivo no tiene TPM, la respuesta será

 

Paso 3: Instale las bibliotecas compatibles con TPM.

A partir de la versión 2026 Q1 de NI Linux Real-Time, se incluye un instalador de metapaquetes para instalar todas las bibliotecas para admitir TPM.

Este comando instalará una serie de paquetes TPM. Las herramientas que puede utilizar incluyen:

  • cryptsetup: herramienta de espacio de usuario utilizada para configurar y administrar almacenamiento cifrado. Esto puede crear volúmenes cifrados, bloquear y desbloquear volúmenes cifrados y administrar claves de cifrado y frases de contraseña.
  • TPM2-tools: conjunto de herramientas de espacio de usuario para TPM 2.0 que proporciona interacción con el TPM. Estas herramientas permiten a los usuarios crear y administrar claves protegidas por TPM, cifrar, descifrar o firmar datos utilizando claves almacenadas dentro del TPM, vincular secretos a un estado de plataforma, leer información de estado de TPM y proporcionar o borrar información de estado de TPM.
  • clevis: Utilidad para desbloquear almacenamiento cifrado, generalmente con claves de descifrado Linux Unified Key Setup (LUKS, el formato estándar de Linux para cifrado de disco).
  • Libtss2-tcti-device0: permite a las aplicaciones enviar comandos TPM 2.0 directamente al hardware TPM a través de la interfaz del dispositivo Linux. Esto hace que el dispositivo TPM sea accesible para los usuarios. 

 

Paso 4: Lea los registros TPM.

tpm2-tools incluye más de cien funciones para interactuar con el TPM. Un comando útil es “tpm2_pcrread”:

Esto devolverá el contenido de los registros TPM en una lista.

Estos registros se denominan Registros de Configuración de Plataformas (PCR). Las primeras ocho PCR (0–7) son escritas por la BIOS. Estos valores hash no se pueden escribir directamente; los valores se actualizan solo cuando cambian las mediciones del sistema.

PCR 7 contiene el estado de arranque seguro, incluyendo si el arranque seguro está habilitado, qué claves de proveedor se están utilizando y más. Este registro se utiliza generalmente para tomar decisiones de desbloqueo: si el valor almacenado coincide con la medición actual del sistema, el sistema es el mismo y se puede confiar en él.

Las PCR 8 y 9 son controladas por el gestor de arranque del sistema operativo (GRUB). PCR 8 contiene mediciones realizadas por el cargador de arranque de la configuración de arranque. Esto puede contener componentes del cargador de arranque del sistema operativo, imágenes del núcleo y mediciones específicas del sistema operativo que se producen después del cargador de arranque pero antes del tiempo de ejecución completo del sistema operativo.

PCR 9 contiene datos de configuración del sistema operativo, como parámetros de la línea de comandos del núcleo, valores de configuración del sistema operativo que afectan al comportamiento en tiempo de ejecución y ajustes relevantes para la política del sistema operativo medidos durante el arranque. Juntos, PCR 8 y 9 miden qué sistema operativo se cargó y cómo se configuró ese sistema operativo.

Los registros restantes, PCR 10-23, son PCR controladas por SO y aplicaciones que se utilizan para medir el software, el estado en tiempo de ejecución y los eventos dinámicos que ocurren después del arranque. Los TPM permiten a las aplicaciones de software decidir cómo usar estas PCR. El uso típico incluye claves selladas con TPM para cifrar el almacenamiento o transmisión de datos, almacenamiento remoto de claves de autenticación, detección de manipulaciones en tiempo de ejecución y otras transacciones seguras.

Para ver el registro donde se realizan todas las mediciones durante un arranque, utilice tpm2_eventlog para leer el contenido del archivo binary_bios_measurements del dispositivo tpm0 en el sistema de archivos securityfs. 

Este comando analiza el archivo de registro para mostrar las mediciones de PCR que el TPM recibió instrucciones de tomar durante el arranque. Puede usar este registro para obtener una comprensión completa de los eventos que podrían alterar el estado del sistema. 

 

Paso 5: Utilice la funcionalidad TPM.

Una vez que pueda acceder a las PCR de TPM, puede leer y escribir en el TPM y usar la funcionalidad de TPM. Si bien el uso detallado de las funciones de TPM está más allá del alcance de este documento, aquí hay algunos ejemplos de acciones que puede tomar.

Cryptsetup

Cryptsetup proporciona cifrado de disco para los datos en reposo. Con cryptsetup, puede crear volúmenes cifrados, desbloquear volúmenes cifrados para que puedan montarse, bloquear volúmenes cifrados, administrar ranuras de clave LUKS e integrar claves selladas TPM. Cryptsetup define cómo se encriptan los discos, mientras que clevis define cómo se proporcionan y acceden a las claves.

Como ejemplo sencillo, use cryptsetup para cifrar una partición de disco dentro de un archivo en disco siguiendo estos pasos.

 

            1.Cree un archivo binario para mantener la imagen de disco.

                              

            2.Cree una partición cifrada LUKS dentro del archivo de imagen de disco.

              

            3.Abra la partición encriptada utilizando la frase de contraseña que proporcionó y cree un dispositivo de bloque virtual bajo /dev/mapper que represente la vista desencriptada de la partición.

             

            4.Cree un sistema de archivos en el dispositivo de bloque asignado.

               

            5.Monte la partición encriptada.

               

 

Después de montar la partición encriptada, puede usarla como cualquier otro sistema de archivos.

Un enfoque similar se puede utilizar para cifrar una unidad de almacenamiento extraíble de su elección. Puede hacerlo dirigiendo el comando luksFormat en el paso 2 hacia la ruta del dispositivo de su unidad en el sistema operativo.

Para obtener opciones de cifrado o configuraciones adicionales utilizando cryptsetup, consulte la Documentación de cryptsetup . Tenga en cuenta que el cifrado de las particiones del sistema operativo LinuxRT no es compatible en este momento.

 

Clevis

Clevis le permite vincular una ranura de clave de descifrado por volumen de Linux Unified Key Setup (LUKS) al estado de PCR TPM. El siguiente comando crea una nueva ranura de clave para la partición LUKS en /dev/sdx, vinculada a las mediciones actuales del TPM para los PCR 7, 8 y 9.

En este caso, la clave de descifrado LUKS se puede leer en un arranque posterior, solo si el Firmware Secure Boot y OS no cambian.

La cadena de directivas que se pasa a clevis determinará qué condiciones son necesarias para liberar la clave de descifrado.

Se desbloquearía si el kernel cambia, pero el Firmware debe ser el mismo. Esto permite actualizaciones del sistema operativo. 

 

Se desbloquearía solo si el sistema operativo no cambia, y un valor de medición controlado por la aplicación almacenado en PCR 11 tampoco cambia.

Puede crear varias ranuras de teclas para un volumen LUKS de modo que pueda proporcionar múltiples métodos de desbloqueo. Una ranura puede permitir el desbloqueo automático si las PCR de TPM coinciden. Otra ranura puede permitir que una frase de contraseña desbloquee el volumen si coincide con el valor almacenado en una PCR TPM. Otra puede permitir que se introduzca una clave de recuperación almacenada sin conexión.

Nota de buenas prácticas: Incluso si usa el estado TPM para desbloquear un dispositivo cifrado, se recomienda que conserve la fase de paso de descifrado LUKS original que configuró con cryptsetup como método de copia de seguridad para desbloquear sus datos.

Para ver las claves del dispositivo que desbloquean un dispositivo LUKS, use la lista clevis luks:

Para obtener una lista completa de comandos de horquilla, llame a la función de ayuda (-h) 

 

Paso 6: Depuración

El registro de eventos es útil para depurar problemas al comprender lo que sucede durante una secuencia de arranque. Acceda a este registro en la carpeta /sys/kernel/security. Si existe un TPM, este comando:

mostrará que se crea una carpeta tpm0/:

Dentro del directorio “tpm0/”, la BIOS registra información de la secuencia de arranque en un archivo llamado “binary_bios_measurements”. Lea este archivo para investigar problemas de arranque. 

Resumen

Con un dispositivo habilitado para TPM que ejecuta NI Linux Real-Time, puede implementar bibliotecas Linux estándar que utilizan las características de un TPM para almacenar claves. Estas claves se pueden utilizar para funciones de seguridad, como cifrado de disco, arranque seguro, cifrado de datos, autenticación de dispositivos y otras funciones que programe en su aplicación. Las claves creadas y almacenadas en un dispositivo TPM están protegidas, nunca siendo accedidas por el procesador o la memoria del dispositivo. Los TPM son el estándar de la industria para proporcionar este nivel de protección y se requieren en Windows 11, y ahora están disponibles en dispositivos NI Linux en tiempo real. 

La marca comercial registrada Linux® se utiliza conforme a una sublicencia otorgada por LMI, el licenciatario exclusivo de Linus Torvalds, propietario de la marca en todo el mundo.

Microsoft y Windows son marcas registradas del grupo de empresas Microsoft.

 

Was this information helpful?

Yes

No