Seguridad criptográfica en IoT (I)

lunes, 18 de abril de 2016

La proliferación de dispositivos y plataformas de servicios IoT está siendo mucho más rápida que la adopción de medidas de seguridad en su ámbito. Ante la apremiante necesidad de mecanismos que garanticen la autenticación, integridad y confidencialidad, tanto de las comunicaciones como de los propios dispositivos, se tiende a trasladar las soluciones criptográficas contrastadas en la IT tradicional, como son los certificados digitales de clave pública sobre protocolos SSL/TLS. 

Pero el principal problema que presenta este acercamiento radica en el almacenamiento de los certificados en el dispositivo. En la IT tradicional es generalmente el sistema operativo el encargado de esta misión. Tanto Microsoft Windows, como Mac OS X o Linux/UNIX y sus variantes móviles (Windows Phone, iOS y Android) cuentan con una herramienta software para este fin (KeyStore), que generalmente viene precargada con numerosos certificados de confianza, al menos, para el fabricante del sistema operativo.

Componente de configuración de certificados en Windows

Criptografía en la IT 

Pero estos almacenes software presentan varias debilidades por su propia naturaleza, así que en entornos de IT donde la seguridad es una prioridad, la tendencia actual es utilizar un elemento criptográfico hardware llamado TPM (Trusted Platform Module).

Las especificaciones técnicas del módulo TPM están recogidas en un estándar abierto definido por el Trusted Computing Group (TCG); una organización sin ánimo de lucro integrada por los principales fabricantes de software y hardware, cuyo objeto es definir, desarrollar y promover especificaciones y estándares abiertos de "computación segura o confiable".

El TCG comenzó su labor en 2003 sucediendo a la Trusted Computing Platform Alliance creada en 1999. Desde sus inicios estuvieron rodeados de una gran controversia. La comunidad de software libre, con Richard Stallman a la cabeza, resultó especialmente crítica, ya que su motivación original era la protección de la propiedad intelectual mediante la gestión de derechos digitales o DRM.

El módulo TPM está basado en un cripto-procesador (chip discreto) que proporciona capacidades de seguridad avanzadas. Permite generar y almacenar claves criptográficas y realizar operaciones sobre ellas, de forma que las claves nunca abandona el chip, que se encuentra específicamente protegido contra ataques físicos (tampering).

Producidos por diferentes fabricantes (Infineon, Atmel, STMicro, Broadcom, etc.), junto a las protecciones contra ataques físicos, incorporan mecanismos de seguridad para soportar ataques lógicos. El NIST los acredita con el nivel 4 de la certificación FIPS 140-2. La utilización de módulos TPM presenta restricciones en varios países como China, Rusia, Bielorusia y Kazakhstan.

Muchos equipos de sobremesa, portátiles de gama empresarial y servidores, integran un módulo TPM de fábrica (es estiman en más de 300 millones), aunque también es posible incorporarlo de forma separada a través del conector que expone el bus LPC en una amplia variedad de equipos domésticos posteriores a 2004.

Los módulos TPM pueden almacenar de forma segura una gran variedad de objetos: certificados digitales, claves asimétricas, claves simétricas, credenciales, cookies, firmas, registros de auditoría, etc.

Se integran a nivel de la BIOS/UEFI del equipo, y permiten añadir ciertos criterios de seguridad en el pre-inicio del sistema, como la verificación de integridad ante cambios de configuración. Este mecanismo se conoce como "Registro de Configuración de Plataforma" o PCR. Una funcionalidad muy interesante y de gran utilidad es que ofrece la posibilidad de autenticar al dispositivo en lugar de a su usuario. Así, es posible establecer políticas de acceso a red en AP wireless, firewalls, routers, switches, etc. compatibles con la norma 802.1x.

Configuración de TPM en una BIOS de American Megatrends

La integración del TPM con el Sistema Operativo proporciona una completa API de servicios criptográficos que pueden ser ampliamente explotados con Microsoft Windows desde la versión Vista y Server 2008. Destaca especialmente la facilidad de uso con BitLocker para el cifrado de unidades de disco, con Outlook para el cifrado y/o firmado de correos electrónicos, en el almacenamiento de certificados digitales y credenciales de VPNs, y con diferentes políticas de grupo del Directorio Activo en Windows Server. Por su parte, Apple incluyó de forma fugaz módulos TPM en los primeros MacBook con procesador Intel durante el año 2006, aunque el soporte oficial es prácticamente inexistente en la actualidad.

Del lado de GNU/Linux, se han desarrollado diferentes drivers y herramientas para el uso de los módulos TPM. Su soporte está incluido en el kernel de Linux desde la versión 2.6, junto con la posibilidad de albergar claves de SSH y establecer políticas de seguridad el arranque del sistema a través de Trusted GRUB y Uboot. 

Google distribuye sus Chromebook con un módulo TPM preactivado de fábrica, según indican, por cuestiones de seguridad que ya han sido analizadas por unos investigadores del MIT. 

Las especificaciones del TPM se recogen desde 2009 en en norma ISO/IEC 11889. La versión (TPM v2.0) más reciente es de 2014 e incorpora numerosos avances, como la posibilidad de utilizar múltiples Root Keys, resúmenes SHA-256 y algoritmos de cifrado de curva elíptica "ECC". Pero el avance más significativo lo constituye la posibilidad de implementar el módulo TPM en modo firmware (fTPM), ejecutado dentro de un Trusted Execution Environment (TEE). Se proporciona a nivel hardware en los procesadores más recientes de Intel, AMD y Qualcomm, y omnipresente en la arquitectura ARM denominándose TrustZone.

Componente para la configuración de TPM en Windows

Así, las características de seguridad hardware que proporciona el TEE constituyen la base de la seguridad criptográfica que están implementando la mayoría de smartphones de última generación, tanto en el proceso de autenticación biométrica, como en su uso como medio de pago. Aunque Apple emplea un desarrollo propio de características similares conocido como "Secure Enclave", integrado en sus nuevos procesadores A7.

Criptografía antes del IoT 

Cuando buceamos en el Internet de las Cosas nos encontramos con diminutos sistemas embebidos que, con suerte, llegan a ejecutar versiones reducidas de Linux como sistema operativo porque en muchos casos, tan solo cuentan con un microcontrolador a modo de SoC (System On a Chip).

Aunque las nuevas generaciones de SoC son cada vez más potentes, e incorporan capacidades de conectividad inalámbrica, siguen estando muy alejados de las características necesarias para trasladarles soluciones criptográficas de la IT tradicional, como los keystore software o los TPM hardware convencionales. Los pequeños dispositivos del IoT requieren soluciones criptográficas adaptadas a sus dimensiones, tanto de capacidad, como de complejidad, consumo, coste, etc. Aunque esto podría parecer novedoso, realmente no lo es tanto. La necesidad existe desde hace mucho tiempo, al igual que sus soluciones. Valga como ejemplo la naturalidad con la que aceptamos, desde hace más de 25 años, la seguridad criptográfica en nuestros teléfonos móviles. Asumiendo que, por el mero hecho de estar en posesión de un SIM, la operadora nos podrá autenticar de forma unívoca sin riesgo de error, intromisión o suplantación, y que nuestras comunicaciones de voz y datos viajaran por el aire meticulosamente cifradas sin posibilidad alguna de intercepción por un tercero.

Esto, que es una realidad de nuestro día a día, se logra al haber establecido un secreto compartido entre la operadora y nosotros, tan simple como una clave simétrica de 128 bits conocida como "Ki", celosamente custodiada en la infraestructura de la operadora, y robustamente almacenada dentro de nuestro SIM, de donde nunca saldrá.

En este caso el SIM actúa como dispositivo criptográfico, almacenando la clave simétrica, realizando las operaciones criptográficas necesarias sobre ella sin que llegue a abandonar el SIM, e implementando medidas de protección adicionales ante ataques, tanto físicos como lógicos.

Otro ejemplo similar, más reciente y avanzado, lo encontramos en España en el DNI electrónico. Tanto en su primera versión con contactos, como en la más reciente 3.0 inalámbrica, el DNIe almacena diferentes certificados digitales, pudiendo realizar sobre ellos diversas operaciones criptográficas de clave asimétrica.

Aparecen entonces los retos derivados de la gestión de claves, simétricas o asimétricas, en dispositivos que, generalmente, serán remotos, autónomos o desatendidos. Cobra especial importancia la fase de "personalización" en la producción o post-producción de dispositivos, junto a las técnicas o mecanismos de despliegue o enrollment en sus respectivas plataformas de servicios.

En las próximas entregas seguiremos hablando de la criptografía y su adaptación al mundo del internet de las cosas.

* Seguridad criptográfica en IoT (I)
* Seguridad criptográfica en IoT (II)
* Seguridad criptográfica en IoT (III)
* Seguridad criptográfica en IoT (IV)
* Seguridad criptográfica en IoT (V)
* Seguridad criptográfica en IoT (y VI)


Jorge Rivera
jorge.rivera@11paths.com

No hay comentarios:

Publicar un comentario en la entrada