TPM - Módulo de plataforma confiable
Lectura de 2 min aprox.
Un TPM (Trusted Platform Module o Módulo de Plataforma Segura) es un chip de seguridad basado en hardware que genera y almacena claves criptográficas, verifica la integridad del dispositivo y da soporte al arranque seguro. Frente a ataques que el software por sí solo no puede prevenir por completo (como los bootkits y la manipulación del firmware), proporciona una raíz de confianza (Root of Trust) a nivel de hardware. La filosofía de diseño subyacente consiste en almacenar las claves de cifrado en un chip dedicado, aislado del sistema operativo y las aplicaciones, lo que dificulta físicamente que el malware robe las claves.
Diferencias entre TPM 1.2 y TPM 2.0
La especificación TPM la desarrolla el TCG (Trusted Computing Group), y actualmente TPM 2.0 es el estándar predominante. La transición de TPM 1.2 a 2.0 no fue una simple actualización de versión, sino una renovación fundamental de la arquitectura.
| Elemento | TPM 1.2 | TPM 2.0 |
|---|---|---|
| Algoritmos criptográficos | Fijo: RSA + SHA-1 | RSA, ECC, AES, SHA-256, etc. (extensible) |
| Jerarquía de claves | Una única SRK (Storage Root Key) | Múltiples jerarquías (Platform, Storage, Endorsement) |
| Bancos PCR | Solo SHA-1 | Varios algoritmos hash funcionando en paralelo |
| Método de autorización | Solo HMAC | HMAC + autorización basada en políticas |
El hecho de que TPM 1.2 estuviera fijado a SHA-1 es una limitación crítica ahora que se han demostrado las vulnerabilidades de SHA-1. TPM 2.0 está diseñado para permitir el reemplazo de algoritmos, por lo que puede adaptarse a la futura obsolescencia de los algoritmos criptográficos.
Windows 11 y el requisito obligatorio de TPM 2.0
La decisión de Microsoft de convertir TPM 2.0 en un requisito obligatorio del sistema para Windows 11 generó un debate considerable. Detrás de esta decisión está el aumento de los ataques a nivel de firmware. Dado que los bootkits y rootkits operan antes de que arranque el sistema operativo, el software de seguridad a nivel del sistema operativo no puede detectarlos. El arranque seguro basado en TPM 2.0 verifica la integridad del código en cada etapa del proceso de arranque e impide la ejecución de componentes manipulados.
El flujo de verificación del arranque seguro
Verificación del firmware
Registra mediciones en el PCR
Verificación de la firma
Comprobación de integridad
Liberación (unseal) de la clave
Integración con BitLocker
El cifrado de unidades BitLocker de Windows funciona en estrecha coordinación con el TPM. La clave de cifrado se «sella» dentro del TPM y solo se libera cuando las mediciones del proceso de arranque (PCR: Platform Configuration Register) son normales. Es decir, aunque conectes el disco duro a otro PC, no podrá descifrarse porque no se cumplen las condiciones de sellado del TPM. Mientras que un HSM se encarga de la gestión de claves del lado del servidor, el TPM se encarga de la gestión de claves en los dispositivos cliente, formando una relación complementaria.
fTPM y dTPM
Existen dos tipos de implementación de TPM: el TPM por firmware (fTPM) y el TPM discreto (dTPM).
- Se ejecuta en un entorno de ejecución confiable dentro de la CPU
- No requiere un chip adicional, por lo que es de bajo costo
- AMD PSP e Intel PTT son ejemplos representativos
- Puede verse afectado por vulnerabilidades de la CPU
- Un chip dedicado e independiente
- Aislado físicamente y con alta resistencia a la manipulación
- Adecuado para servidores y dispositivos de alta seguridad
- Cuesta más y ocupa espacio en la placa
Para el uso empresarial general, un fTPM es suficiente, pero en entornos que exigen una seguridad avanzada, como el militar, el financiero y el sanitario, se recomienda un dTPM. Los TPM también se utilizan como autenticadores de FIDO/WebAuthn, sirviendo como tecnología base para la autenticación sin contraseña combinada con la autenticación biométrica. Consulta también los riesgos de la autenticación biométrica y los desafíos de la migración a las claves de acceso (passkeys).libros sobre seguridad de hardware (Amazon) también son útiles para aprender los detalles de la implementación.
¿Te resultó útil este artículo?