Inicio Artículos Mejoras de seguridad en sistemas IoT

Mejoras de seguridad en sistemas IoT

El rápido crecimiento de Internet de las Cosas (Internet of Things – IoT) conlleva el aumento de la demanda de microcontroladores (MCU) con mejoras tanto en rendimiento como en conectividad. Se necesita procesamiento local en el borde (edge) para poder llevar a cabo un proceso de datos más complejo de un buen número de sensores, a menudo usando técnicas de aprendizaje automático (machine-learning). Muchos sistemas se componen de redes de nodos IoT. Los datos también se envían a la nube (cloud) para tareas de monitorización, almacenamiento y análisis más detallado. Estos sistemas requieren un alto nivel de seguridad para protegerse de ataques y software malicioso (malware). La seguridad resulta esencial al autentificar los nodos IoT, salvaguardar la confidencialidad de los datos y proteger la funcionalidad del sistema. También es importante en sistemas críticos, como los de asistencia avanzada al conductor (ADAS) y vehículos autónomos, para poder garantizar que las funciones de seguridad no se ponen en riesgo.
Requisitos de seguridad en IoT
Con cierta regularidad, aparecen noticias de ciberataques, por parte de delincuentes o de organismos públicos, en sistemas industriales y comerciales. Dichos ataques son cada vez más sofisticados y se dirigen a un mayor número de dispositivos. En 2010, se cree que el gusano Stuxnet causó daños significativos en centrales nucleares de Irán. Esto pudo ser un ataque deliberado de otro país. El virus Heartbleed en el software de seguridad OpenSSL (usado por muchos sitios web) se descubrió en 2014. Se empleaba para robar información de varios sistemas, incluyendo la Agencia Tributaria de Canadá (Canada Revenue Service) y un gran proveedor de servicios de salud de Estados Unidos. En 2016, el malware Mirai convirtió numerosos dispositivos online, como cámaras de vigilancia y routers, en “bots”. Estos botnets han sido utilizados para lanzar ataques de denegación de servicio distribuido (DDoS) muy agresivos en múltiples sistemas.
Los investigadores encuentran con frecuencia nuevas vulnerabilidades, que pueden ser agujeros de seguridad de software, como Heartbleed, o problemas de hardware, como la fisura Meltdown encontrada en varios microprocesadores, incluyendo a algunos núcleos Arm. El acceso malicioso a un nodo IoT es lo suficientemente dañino por sí mismo. Pero el mayor riesgo es que, al suplantar la identidad (spoofing) de las comunicaciones, un número ilimitado de dispositivos se podría ver afectado y, por ende, producir una proliferación rápida de software malicioso. Hay diversas funciones que pueden mejorar la seguridad de un sistema: dotando a cada dispositivo de una identidad exclusiva para su autenticación que no se puede falsificar; implementando autentificación segura y compartiendo credenciales entre un nodo y la red; garantizando la funcionalidad de un dispositivo al validar el software instalado y las actualizaciones; y utilizando criptografía para toda la comunicación de red y protegiendo la información almacenada en la memoria.
Para lograr el nivel de seguridad necesario, el diseño de la MCU debe contar con entradas de múltiples dominios: software, seguridad, análisis de sistema, etc. Esto es algo más que un sencillo problema de diseño de silicio, por lo que los diseñadores tienen que considerar los factores humanos y las interacciones con el mundo exterior. Sin embargo, IoT es un mercado con restricciones de precio y, por consiguiente, la seguridad extra debe llegar sin un incremento significativo de complejidad o coste.
Funciones de seguridad de hardware
Existen varias funciones de hardware que se pueden usar para aumentar la seguridad de un sistema. Estas características se pueden proporcionar a través de un elemento de seguridad externo o, en algunos casos, integrarlas en el MCU. El secure boot es una función esencial para asegurar que el firmware que está siendo ejecutado por el procesador es genuino y no ha sido corrompido. El MCU comienza a ejecutar un bootloader de la ROM que verifica la firma del código en Flash antes de ponerse en marcha. El código se puede proteger aún más con el cifrado Flash. Una función física no clonable (PUF) utiliza las variaciones aleatorias en los dispositivos semiconductores para poder crear una estructura de hardware que actúa como un identificador único, de la misma manera que las variaciones aleatorias en las líneas de la piel dan una huella digital única.
Es posible emplear una PUF y la lógica asociada para lograr una generación y gestión de clave segura. PUF permite una autentificación segura del dispositivo, el aprovisionamiento de clave flexible y la administración de recursos. Protege el root of trust y la seguridad de extremo a extremo para tareas de comunicación. Asegura que los datos encriptados por un determinado dispositivo sólo se pueden descifrar por el mismo dispositivo, por lo que se garantiza la seguridad de los datos, incluso si se copian a otro sistema. El núcleo del procesador Arm implementa un sistema de seguridad de hardware denominado TrustZone, que se puede usar para ejecutar la protección de los recursos, como los datos privados y las contraseñas, al asegurar que sólo se pueden gestionar en un entorno seguro. TrustZone implementa dos “mundos” de hardware: seguro y no seguro. Este último proporciona un entorno de ejecución flexible sin acceso a los registros y los datos críticos. El código no seguro sólo puede acceder a recursos seguros mediante interfaces específicas reveladas por el mundo seguro. Esto reduce la cantidad de código que hay que escribir y auditar minuciosamente para garantizar la seguridad. Se requiere un verdadero generador de número aleatorio (TRNG) a la hora de ofrecer elevada entropía y dotar de procedimientos de negociación que no son vulnerables al ataque de replay. Otras funciones posibles incluyen detección de sabotaje para salvaguardar ante el acceso físico de dispositivo, una unidad de protección de memoria (MPU) para aislamiento de tarea, aceleradores de hardware para diversas criptofunciones y una capa de aislamiento de los componentes sensibles del chip. La elección de las funciones implementadas en cualquier sistema dado será consecuencia del balance entre el nivel de seguridad necesario y el coste extra del hardware.
Un ejemplo real
Como un ejemplo, el MCU LPC55S6x de NXP, recientemente lanzado, integra muchas de las características de seguridad de hardware descritas con anterioridad, convirtiéndose en una solución única en el mercado de MCU. Posee dos núcleos Arm® Cortex®-M33 con una CPU que soporta TrustZone-M y varios coprocesadores. Aunque el chipset proporciona un secure boot con protección anti-rollback, el hardware también soporta ejecución en tiempo real de las imágenes cifradas de la memoria Flash. El contenido Flash sólo se descifra en el camino de ejecución del núcleo. Por lo tanto, los intentos maliciosos al leer la memoria Flash directamente sólo se expondrían a los datos cifrados. La propiedad intelectual del software y los datos asociados quedan protegidos. El MCU LPC55S6x usa una PUF basada en un bloque dedicado de SRAM.
Debido a las variaciones en cada transistor, cuando la SRAM “excita” a cada celda de memoria se presenta como 1 o como 0. Esto es contante cada vez que la SRAM se “enciende”, por lo que los valores de arranque crean un patrón aleatorio y repetible que es único en cada chip. La huella digital de silicio se convierte en una clave secreta que se puede emplear para identificar el dispositivo y ofrece un root of trust de hardware para el resto de funciones de seguridad. Hay varios aceleradores de hardware para cifrado / descifrado de datos en tiempo real y aceleración de diversos algoritmos criptográficos simétricos y asimétricos. También posee detección de sabotaje, secure GPIO & DMA y un sistema de depuración seguro que requiere autenticación con la misión de ponerlo en marcha. El LPC55S6x es el primer MCU en combinar todas estas funciones en un paquete de seguridad completo. Ofrece un elevado nivel de seguridad a muchas aplicaciones IoT y embebidas, con un coste mínimo.
El segundo núcleo Arm y el coprocesador DSP se pueden utilizar para ejecutar software de aplicación complejo. Por ejemplo, el aprendizaje automático y los sistemas de inferencia se pueden implementar usando la librería Arm CMSIS-NN. Esto es una recopilación de kernels de red neuronal con memoria eficiente y rendimiento elevado optimizados para el núcleo de procesador Cortex-M. Se puede emplear con frameworks estándares como Caffe al implementar aplicaciones fundamentadas en clasificación de imagen, reconocimiento de discurso y procesamiento de lenguaje natural para mejorar las interfaces humanas. Esta es la misma tecnología que permite que un coche “reconozca” al conductor y ajuste automáticamente el asiento y los parámetros de conducción.
Los robots que reconocen objetos y personas en sus entornos ahora pueden trabajar con más seguridad en estrecha colaboración con los humanos. Una máquina expendedora podría reconocer a los clientes y preguntarles si desean su elección habitual de bebida caliente. La capacidad de procesamiento de señal se podría emplear, junto al reconocimiento facial, a la hora de implementar beam-forming con múltiples micrófonos para aislar voces en un entorno ruidoso e identificar a la persona que habla.
Conclusión
La creciente necesidad de seguridad en sistemas IoT está siendo contestada con la incorporación de hardware para soportar funciones de seguridad en los microcontroladores modernos. Esto simplifica la seguridad embebida con una root of trust de hardware para autenticación, comunicación y almacenamiento seguros. Esto tiene que hacer frente a las restricciones de coste en los sistemas embebidos. El MCU LPC55S6x demuestra cómo los mayores niveles de integración, consecuencia del uso de un proceso semiconductor de elevada densidad, permiten incluir más funciones de seguridad en un MCU sin sacrificar ni el coste ni las prestaciones. EBV es un distribuidor técnico con un gran conocimiento de los requisitos IoT, fruto de su experiencia en mercados verticales relevantes, como el industrial y la automoción, y en tecnologías, como seguridad, comunicación inalámbrica, etc. Por ello, podemos ofrecer un soporte técnico completo en todas las fases del proceso de diseño.