Los módulos de plataforma confiable

En este artículo, en el que se introducía el concepto de seguridad a través del hardware, mencionábamos dos de las principales líneas de investigación que se siguen para certificar el soporte físico sobre el que se ejecuta una aplicación, hablando concretamente de las investigaciones y la teoría detrás de las funciones físicas inclonables, o PUF.
Dejando a un lado la línea de investigación centrada en PUF, la industria ha desarrollado e incorporado a los sistemas unos microprocesadores dedicados a la seguridad. Estos siguen las especificaciones del estándar Trusted Platform Module (TPM por sus siglas en inglés). La creación de este estándar empezó en 1999 y sus hitos más importantes y evolución temporal se pueden ver en la siguiente figura, siendo el más reciente la publicación en 2013 de la segunda versión de la librería TPM (TPM 2.0).
- Hitos de TPM. (Fuente KU LEUVEN) -
El estándar TPM ofrece, entre otras funcionalidades, la generación de claves criptográficas y de números aleatorios. Un chip TPM se compone, por tanto, de los módulos que se indican a continuación:
- Componentes TMP (fuente Wikipedia) -
Los componentes básicos de TPM son los siguientes
- Entrada / Salida segura: Este componente gestiona el flujo de información a lo largo del bus de comunicaciones. Cifra y descifra la información transmitida entre los buses internos y externos y la encamina al componente TPM adecuado.
- Generación de claves: Función que gestiona la generación de claves y nonces.
- Motor criptográfico: Componente que se encarga del generador de SHA-1 y también incorpora el motor HMAC y el de RSA.
- Generador de números aleatorios: Que es la fuente de entropía del TPM. Se utiliza para la generación de nonces, claves y para incorporar aleatoriedad en las firmas digitales. Consiste en una máquina de estados que recoge y mezcla datos aleatorios junto con un postprocesador que implementa una función unidireccional, como puede ser SHA-1.
- Contador creciente: Un contador hardware cuyo valor, una vez incrementado, no se puede decrementar. El TPM debe ser capaz de soportar 4 contadores concurrentes, a pesar de que sólo haya uno activo en cada ciclo de arranque.
- Memoria no volátil: donde se almacenan las claves de la plataforma.
- Motor de ejecución: que es el componente que ejecuta el código de programa del TPM. También se asegura que las localizaciones protegidas lo están y las operaciones están adecuadamente segregadas.
Dentro de la memoria no volátil del TPM se almacena una clave importante, la Endorsement Key (EK por sus siglas en ingles). La EK es una pareja de claves pública y privada RSA de 2048 bits que se incorporan al chip durante el proceso de manufacturación por el fabricante o por el vendedor. Esta clave es generada por el propio chip TPM y no es posible ni generarla una segunda vez ni insertar otra pareja de claves en el chip TPM. Aquel que las haya generado (fabricante del chip o del equipo) debe acreditar que la clave creada es válida y que el proceso se realizó de una forma específica. La parte privada de esta clave nunca puede abandonar el chip de TPM y la parte pública es la que ayuda a reconocer un TPM auténtico. Es una clave no exportable y sólo se puede utilizar en mecanismos controlados del propio TPM como la creación de claves de identidad (AIK).
Las AIK son alias para la EK, que se utilizan únicamente para la realización de firmas digitales y no para cifrar información. Esto se hace así ya que, por motivos de seguridad y de privacidad, no se permite la utilización de la EK para la firma de información. La creación de las AIK se puede realizar en cualquier momento y no hay límite a su número.
Además de la EK, en un TPM también podemos encontrar la Storage Root Key (SRK) que es una clave privada/pública no exportable cuya parte privada tampoco abandona nunca el TPM. Esta clave es la llave al almacenamiento seguro del TPM. El TPM dispone de una limitada capacidad de almacenamiento, lo que le permite almacenar algunas claves y otra información que necesita ser protegida. Este almacenamiento seguro se puede extender mediante cifrado fuera del TPM de forma que sólo pueda ser descifrado nuevamente dentro del TPM. Cada clave creada en el TPM se cifra utilizando la SRK u otra clave no exportable y se almacena en el equipo fuera del TPM, siendo únicamente posible el descifrado dentro del TPM.
Actualmente la mayor parte de los equipos que se venden incorporan un TPM que puede ser activado o desactivado desde el sistema operativo (a partir de Windows 7 o Windows Server 2008 R2) y/o desde la BIOS. Fabricantes como HP y Lenovo los incluyen en la mayor parte de sus equipos.
A nivel de sistema operativo, Bitlocker, el cifrado del disco duro nativo de Windows, utiliza TPM (si lo hay, si no, se puede cifrar almacenando un número de identificación personal en una memoria USB externa). Microsoft pone a disposición de los usuarios la información necesaria para estas operaciones a través de su página web.
Los chips TPM y su operativa no están libres de riesgos de seguridad. Físicamente, al ser incluidos a nivel masivo en la arquitectura de los ordenadores, los hace accesibles y susceptibles de ser atacados por medios físicos. En sus primeras versiones, en las que eran unos chips montados de forma separada del resto de la placa y conectados mediante un cable plano, podían ser vulnerados mediante ataques de reinicio al TPM (que funcionó con la versión 1.1b de TPM), anulando la protección ofrecida por el TPM.
Actualmente para evitar esto, los chips TPM actuales se montan en la superficie de la placa base, lo que dificulta las tareas de desoldado y reemplazo por manos no profesionales. También existen varios artículos en los que plantea la utilización del TPM para ocultar malware aprovechándose de la estructura de claves e impidiéndose de esa forma el análisis del malware.