Garantice fácilmente la seguridad de IoT con claves de PUF SRAM y el aislamiento de la TrustZone
Colaboración de Editores de DigiKey de América del Norte
2019-09-05
Los diseños construidos alrededor de internet de las cosas (IoT) son cada vez más complejos y requieren soluciones mejoradas para garantizar la seguridad del sistema y para controlar la embestida implacable de los ataques locales y remotos. Sin embargo, la adopción de seguridad en dispositivos IoT con recursos escasos ha sido lenta y limitada a parches de software construidos libremente o chips altamente sofisticados y costosos construidos alrededor de algoritmos criptográficos complejos. Los desarrolladores necesitan una solución más completa pero más fácil de usar si quieren adoptar e implementar la seguridad con mayor rapidez.
Las tecnologías como las funciones físicas no clonables (PUF) basadas en la memoria estática de acceso aleatorio (SRAM) y TrustZone de Arm han surgido y evolucionado para satisfacer las necesidades de seguridad de los desarrolladores integrados y de IoT. Este artículo presenta la PUF y la TrustZone y cómo se pueden aplicar utilizando soluciones de NXP Semiconductors, Microchip Technology y Maxim Integrated.
Tecnología PUF SRAM
PUF SRAM, una alternativa de autenticación ligera a la criptografía tradicional, se está integrando en chips centrados en la seguridad, como la familia LPC55S6x de NXP, donde agrega raíz de confianza y aprovisionamiento (Figura 1).
Figura 1: El diagrama de bloques de la familia de MCU LPC55S6x muestra la integración de bloques de construcción de seguridad como la tecnología PUF basada en SRAM. (Fuente de la imagen: NXP)
La tecnología PUF es diferente al almacenamiento de claves tradicional en memoria no volátil, donde los OEM inyectan claves de seguridad a través de una metodología tradicional basada en fusibles o mediante técnicas de memoria programable una sola vez (OTP). En cambio, la tecnología PUF toma variaciones eléctricas aleatorias naturales intrínsecas a las celdas de bits SRAM y convierte esa “huella digital” única en una clave criptográfica secreta que sirve como la base de un subsistema de seguridad. Esta clave segura y de alta calidad se puede reconstruir como la misma clave criptográfica cada vez y bajo cualquier circunstancia. Existen varias ventajas de este enfoque:
- Elimina la necesidad de manejo de claves de terceros en entornos potencialmente inseguros
- El sistema de almacenamiento y provisión de claves no tiene que cargarse en el momento de la producción del chip
- Se puede instalar en una etapa posterior de la cadena de suministro o incluso se puede adaptar en dispositivos implementados
- Sin acceso físico a un chip SRAM individual, descifrar estas claves de seguridad se convierte en una tarea casi imposible
- Las claves se generan solo cuando son necesarias y no permanecen almacenadas en el sistema
- El hecho de que la clave no esté almacenada permanentemente y no esté presente cuando el dispositivo no está activo dificulta que un atacante intente comprometer físicamente el contenido de la memoria
Arm TrustZone
Optimizada para aplicaciones integradas de muy bajo consumo, la tecnología TrustZone, disponible en las plataformas de procesamiento Arm Cortex®-M23 y Cortex-M33, coloca rutinas críticas de seguridad como código de arranque, configuración segura, claves de seguridad, bibliotecas de cifrado y actualizaciones de firmware en un entorno protegido (Figura 2). En un microcontrolador compatible con TrustZone, por ejemplo, el código de misión crítica se prueba completamente después de separarse de las grandes pilas de códigos para evitar que se vea afectado por un error generado por los desarrolladores.
Figura 2: TrustZone permite múltiples dominios de seguridad de software que restringen el acceso a memoria segura y E/S solo a entornos de software confiables. (Fuente de la imagen: NXP)
Con respecto a los datos y códigos confidenciales, TrustZone garantiza su seguridad al aislar las partes críticas del diseño del software y ejecutar ese software en un supervisor de hardware en un entorno protegido contra lectura y escritura del software de nivel de usuario.
TrustZone permite a los desarrolladores dividir la memoria en regiones seguras y no seguras, de modo que incluso un intento de depuración se puede bloquear del código y los datos seguros cuando no se autentica. Asimismo, una unidad central de procesamiento (CPU) en un estado no seguro solo puede acceder a los datos de la memoria no segura y, por lo tanto, únicamente se puede ejecutar desde la memoria del programa no seguro.
Es importante destacar que TrustZone proporciona estas características de seguridad y aún conserva bajas latencias de interrupción para dominios seguros y no seguros. Además, no impone sobrecarga de código, sobrecarga de ciclo ni la complejidad de una solución basada en virtualización.
Implementación física de la PUF y TrustZone
NXP ha integrado hard IP y bibliotecas de software compatibles del inventor de PUF Intrinsic ID para implementar las PUF en sus microcontroladores LPC55Sxx (Figura 3). QuiddiKey, la IP de hardware integrada de Intrinsic ID, maneja la generación de claves, el almacenamiento de claves, la autenticación de dispositivos, el aprovisionamiento de claves y la gestión de activos de chips.
Figura 3: NXP ha integrado hard IP y bibliotecas de software compatibles de Intrinsic ID para implementar las PUF en sus microcontroladores LPC55Sxx. La propiedad intelectual (IP) maneja la generación y gestión de claves. (Fuente de la imagen: Intrinsic ID)
NXP también adoptó TrustZone para sus microcontroladores LPC55Sxx. El enfoque centrado en la CPU de TrustZone para la seguridad de IoT crea aislamiento entre las partes seguras y no seguras del diseño integrado.
Por ejemplo, tal como se implementa en los microcontroladores SAM L10/11 de Microchip Technology, TrustZone proporciona una disposición de protección de todo el sistema en la que los diseños de IoT se pueden dividir en estados seguros y no seguros. Sin embargo, tanto el código seguro como el no seguro se ejecutan en una sola CPU para una implementación integrada eficiente.
Este enfoque centrado en la CPU es importante, ya que la cantidad de software está creciendo rápidamente en los microcontroladores modernos, con pilas de protocolos que sirven tecnologías de conectividad como Wi-Fi, Bluetooth y seguridad de la capa de transporte (TLS). Esta creciente base de código aumenta significativamente la exposición de un dispositivo IoT a ataques maliciosos. Por ejemplo, en casas y edificios inteligentes, una pila de protocolos dañada puede hacer que las cerraduras de las puertas conectadas, los abridores de puertas de garaje y las cámaras de seguridad sean muy vulnerables.
Sin embargo, si los desarrolladores de IoT mueven el código de misión crítica a un entorno protegido TrustZone, incluso un error en una pila de protocolos de terceros no afectará de manera importante la funcionalidad del dispositivo.
Seguridad a nivel de placa
Otro patrón claro en el paradigma de seguridad de IoT se relaciona con la disponibilidad de diseños de referencia que simplifican las comunicaciones de borde a borde y de nube a borde al superar las complejidades asociadas con los protocolos de seguridad y comunicación. El diseño de referencia DeepCover® MAXREFDES155# de Maxim Integrated y la placa de desarrollo PIC®-IoT WG AC164164 de Microchip son un buen ejemplo.
En el diseño de seguridad MAXREFDES155#, un escudo Arm mbed™ se conecta a un punto final del sensor utilizando un cable de 300 milímetros (mm). El punto final del sensor comprende un autenticador seguro DeepCover DS28C36, un sensor térmico infrarrojo (IR) y un láser de puntería para el sensor IR (Figura 4).
Figura 4: El diseño de referencia de seguridad integrada de IoT DeepCover MAXREFDES155# de Maxim Integrated comprende un escudo Arm mbed, un punto final del sensor conectado a través de I2C y conectividad a la nube a través de Wi-Fi. (Fuente de la imagen: Maxim Integrated)
El chip de seguridad DS28C36 proporciona dos pines autenticados de entrada/salida de propósito general (GPIO) con control de estado seguro opcional y detección de nivel. Esto permite a los desarrolladores de IoT monitorear y limitar el uso de periféricos con configuraciones autenticadas de memoria programable y borrable de solo lectura (EEPROM) y un contador de solo decremento de 17 bits. Las aplicaciones que facilita el DS28C36 son autenticación bidireccional, almacenamiento seguro de datos del sistema (como claves criptográficas), verificación de datos de misión crítica, arranque seguro y control de uso del producto final.
El escudo de mbed en el diseño de referencia MAXREFDES155# incluye un coprocesador de seguridad DeepCover, comunicación Wi-Fi, pantalla de cristal líquido (LCD), controles de botón y diodos emisores de luz (LED) de estado. El diseño de referencia utiliza la placa de desarrollo mbed MAX32600MBED# para pruebas inmediatas y los circuitos de Wi-Fi del escudo facilitan la comunicación con el servidor web.
En el diseño MAXREFDES155#, un coprocesador de seguridad en el escudo mbed sirve como compañero del chip de autenticación DS28C36. Facilita los requisitos relacionados con el código de autenticación de mensajes basado en funciones hash (HMAC) y los cálculos del algoritmo de firma digital de curva elíptica (ECDSA) que forman parte de las operaciones de seguridad del DS28C36.
El coprocesador proporciona un conjunto básico de herramientas criptográficas para ayudar a los diseñadores de IoT a implementar motores criptográficos e integrar un generador de números aleatorios (RNG) reales de las Normas de Procesamiento de Información Federales/Instituto Nacional de Estándares y Tecnología (FIPS/NIST). Las claves de seguridad públicas y privadas funcionan de acuerdo con los estándares definidos por el NIST, que incluye la FIPS 186, el mecanismo de generación y verificación de firmas ECDSA que admite un modelo de autenticación de clave asimétrica bidireccional.
Simplificación de la seguridad del enlace en la nube
La placa de desarrollo PIC-IoT WG AC164164 de Microchip tiene elementos similares, pero se centra en simplificar el enlace del nodo IoT a plataformas en la nube como Google Cloud. Construida alrededor de los microcontroladores PIC de la empresa, la plataforma de desarrollo utiliza el coprocesador ATECC608A para abordar las vulnerabilidades de seguridad que vienen con grandes marcos de software y plataformas de sistema operativo en tiempo real (RTOS).
La AC164164 es una plataforma de diseño de IoT en la que la seguridad del enlace de borde a la nube se ha garantizado con un elemento seguro que viene prerregistrado para el servicio Google Cloud IoT Core y está listo para usar con aprovisionamiento de cero toque. Junto con el coprocesador de seguridad ATECC608A, la placa de desarrollo presenta el microcontrolador PIC24FJ128GA705, que maneja aplicaciones complejas con menos código y con menor consumo de energía.
Un controlador de Wi-Fi IoT IEEE 802.11 b/g/n totalmente certificado conecta el nodo IoT con Google Cloud. Como resultado, los desarrolladores de IoT no necesitan experiencia en protocolos de redes inalámbricas, seguridad ni compatibilidad de hardware para realizar un diseño de producto IoT seguro.
Conclusión
La disponibilidad de chips de seguridad especializados, que actúan como un chip complementario del procesador principal o microcontrolador en los diseños de IoT, permite a los desarrolladores asegurar nodos y enlaces IoT a puntos finales, así como a plataformas en la nube sin ser expertos en seguridad. La integración de tecnologías complementarias como PUF y TrustZone aumenta aún más las credenciales de seguridad de estos microcontroladores de bajo consumo y bajo costo a medida que aumentan los requisitos de seguridad de IoT.
Además de eso, los diseños de referencia y las placas de desarrollo simplifican más todavía la ecuación de seguridad al emplear múltiples niveles de protección integrada en una amplia variedad de aplicaciones de IoT.
Descargo de responsabilidad: Las opiniones, creencias y puntos de vista expresados por los autores o participantes del foro de este sitio web no reflejan necesariamente las opiniones, las creencias y los puntos de vista de DigiKey o de las políticas oficiales de DigiKey.




