Los diseñadores de toda una serie de aplicaciones de Internet de las Cosas (IoT) de consumo e industriales, desde interruptores de luz, lectores de contadores y cerraduras inteligentes hasta inversores solares y paneles de seguridad, necesitan encontrar un equilibrio adecuado entre alto rendimiento y bajo consumo -especialmente para los diseños alimentados por baterías- y garantizar al mismo tiempo que sus implementaciones sean seguras. En muchos casos, la base de estos diseños es un microcontrolador (MCU), por lo que el diseñador debe considerar cuidadosamente cuál utilizar.
Además de un sólido soporte para la seguridad, los factores a tener en cuenta son el rendimiento del núcleo del procesador, la eficiencia, el soporte de periféricos y E/S, el factor de forma general y el soporte del ecosistema. Aunque un MCU puede cumplir los requisitos de diseño en términos de rendimiento y potencia, la implementación de un diseño seguro tiene una curva de aprendizaje que puede causar retrasos o hacer que la seguridad no se implemente adecuadamente.
Este artículo analiza brevemente las consideraciones de seguridad para los dispositivos IoT de borde. A continuación, presenta el MCU EFM32PG23 de Silicon Labs y muestra cómo aplicarlo a los diseños de IoT de borde seguro, haciendo hincapié en el bajo consumo.
Problemas de seguridad de los dispositivos IoT
El número de ataques remotos a dispositivos conectados a Internet sigue aumentando. Los desarrolladores integrados pueden tener la tentación de pensar que su dispositivo de borde del IoT no necesita seguridad porque no contiene «nada valioso». La verdad es que casi todos los dispositivos tienen algo que un hacker podría encontrar valioso, ya sean los datos de los sensores, los datos de los clientes, el propio firmware que hay en el dispositivo o el acceso que el dispositivo proporciona como puerta trasera a las redes conectadas. La seguridad es una característica crítica que debe diseñarse en cada dispositivo de borde del IoT desde el principio: no debe atornillarse al sistema al final del ciclo de diseño. De lo contrario, el dispositivo será muy vulnerable a los ataques.
Cada dispositivo de borde del IoT tiene varias áreas de seguridad que deben ser consideradas, como la identificación del dispositivo, la configuración del dispositivo y las actualizaciones de software/firmware. La figura 1 muestra una lista de preocupaciones comunes y cómo estas preocupaciones se traducen en un requisito de seguridad del dispositivo. Cada requisito de seguridad tiene una tecnología asociada que suele utilizarse para cumplir ese requisito y frustrar a los posibles atacantes.
|
Figura 1: Son muchos los problemas de seguridad, los requisitos y la tecnología asociada que deben tener en cuenta los diseñadores de aplicaciones de IoT de borde. (Fuente de la imagen: Silicon Labs)
Un gran problema de muchos de los equipos integrados que desarrollan aplicaciones de borde de IoT es que no tienen experiencia interna en seguridad. El resultado es que deben hacer todo lo posible internamente para aprender y aplicar la seguridad o recurrir a una fuente externa. En cualquier caso, el costo y el tiempo pueden ser extraordinarios.
Existe una alternativa: el equipo de desarrollo puede seleccionar un MCU diseñada con la seguridad en mente y que ofrece soluciones de seguridad listas para usar que requieren pequeños ajustes de configuración para la aplicación en cuestión.
Introducción a los dispositivos MCU de la serie PG23 de Silicon Labs
La serie de microcontroladores EFM32PG23 de Silicon Labs es una opción interesante para las aplicaciones de dispositivos de borde IoT por varias razones. En primer lugar, el MCU PG23 puede ejecutar la solución de seguridad Secure Vault IoT de Silicon Labs. Secure Vault es una plataforma para proteger y preparar el futuro de los dispositivos IoT que recientemente se ha convertido en la primera solución de seguridad IoT en alcanzar el nivel 3 de certificación PSA. Algunas de las funciones que Secure Vault aporta a las MCU PG23 son la identidad segura del dispositivo, la gestión y el almacenamiento seguros de claves y la detección avanzada de manipulaciones.
Secure Vault se aprovecha de una huella digital única generada por una función físicamente no clonable (PUF). Un PUF puede utilizarse para crear una clave simétrica AES que desaparece físicamente cuando el sistema se apaga. La clave simétrica AES ni siquiera existe cuando el chip está apagado, por lo que es imposible eliminarla del dispositivo. Un PUF es una solución eficaz para el reto de la gestión de claves al que se enfrentan muchas aplicaciones de borde del IoT. De hecho, el PUF puede escalar para soportar tantas claves como sean necesarias para soportar una aplicación. Secure Vault también incluye un sistema de detección de manipulaciones que hace que la clave no pueda ser reconstruida una vez que el dispositivo se apaga después de un evento de manipulación. Las principales características de seguridad se pueden resumir en:
- Certificación segura
- Manejo de clave seguro
- Almacenamiento clave seguro
- Anti-sabotaje
Otra razón por la que los MCU PG23 son muy adecuadas para las aplicaciones de borde del IoT es que están diseñadas para aplicaciones de bajo consumo. El consumo de corriente activa del PG23 es de 21 microamperios por megahercio (µA/MHz). El consumo de corriente es de 1,03 µA con 16 kilobytes (Kbytes) de RAM activos en modo EM2, o de 0.7 µA con el reloj en tiempo real (RTC) activado en modo EM4. Los niveles de consumo de corriente tan bajos ayudan a los desarrolladores a la hora de diseñar un dispositivo eficiente desde el punto de vista energético, tanto si está enchufado a la pared como si funciona con batería.
La última característica de la PG23 que se examinará aquí es la capacidad de la MCU. El PG23 tiene un procesador Arm® Cortex®-M33 con una frecuencia de hasta 80 MHz. El procesador puede funcionar en el rango de 1.71 a 3.8 voltios utilizando una sola fuente de alimentación. Para los desarrolladores que trabajan en aplicaciones de sensores, existe una interfaz de sensores de bajo consumo (LESENSE). La MCU se presenta en un paquete QFN de 40 pines que mide 5×5 milímetros (mm) o en un paquete QFN de 48 pines que mide 6×6 mm. En la figura 2 se muestra un diagrama de bloques de la PG23. La MCU también tiene cinco estados de energía: EM0 para el modo de ejecución, EM1 para el sueño, EM2 para el sueño profundo, EM3 para la parada y, finalmente, EM4 para el apagado.
Figura 2: La MCU PG23 dispone de una amplia gama de periféricos, memoria y modos de ahorro de energía. (Fuente de la imagen: Silicon Labs)
Introducción a la placa de desarrollo PG23-PK2504A
La mejor manera de empezar a utilizar la PG23 es usar la placa de desarrollo PG23-PK2504A. La placa tiene un procesador EFM32PG23B310F512 que se apoya en sus propios 512 Kbytes de flash y 64 Kbytes de RAM. La placa de desarrollo incluye una amplia gama de sensores a bordo, interfaces y una pantalla LCD de 4×10 segmentos (Figura 3).
Figura 3: La placa de desarrollo PG23-2504A incluye un MCU EFM32PG23, así como una pantalla LCD de 4×10 segmentos, sensores de temperatura y humedad, una referencia de tensión e interfaces de expansión. (Fuente de la imagen: Silicon Labs)
Con la placa en la mano, los desarrolladores pueden descargar e instalar Simplicity Studio (en la pestaña «Getting Started»). Simplicity Studio es una plataforma de lanzamiento para todo lo necesario para evaluar, configurar y desarrollar con los microcontroladores EFM32. El software incluye materiales de iniciación, documentación, herramientas compatibles y recursos.
Cuando un desarrollador abre Simplicity Studio y conecta una placa de desarrollo, el software identifica la placa y ofrece recomendaciones para proyectos de ejemplo, documentación y demostraciones (Figura 4). El desarrollador puede entonces elegir el mejor camino para empezar y comenzar a experimentar con la PG23.
Figura 4: Silicon Labs Simplicity Studio detecta la placa y ofrece recomendaciones personalizadas para empezar, documentación, proyectos de ejemplo, etc. (Fuente de la imagen: Silicon Labs)
Una característica que merece la pena destacar en la placa de desarrollo PG23-PK2504A es el interruptor que decide cómo se alimenta la placa de desarrollo. Hay dos opciones: AEM o BAT (Figura 5). En el modo AEM, hay una resistencia de detección de corriente en serie con la fuente de alimentación LDO y la PG23. La ventaja de este modo es que los desarrolladores pueden medir el consumo de corriente del procesador para ayudar a optimizar la energía. Una vez optimizada la aplicación, los desarrolladores pueden cambiar al modo BAT para que la placa de desarrollo funcione con una pila de botón.
Figura 5: La PG23-PK2504A ofrece la opción de alimentar la placa a través de USB-C en su modo AEM, lo que permite medir la corriente del procesador. Como alternativa, el procesador puede alimentarse mediante una pila de botón CR2032. (Fuente de la imagen: Silicon Labs)
Consejos y trucos para minimizar el uso de energía en una aplicación de IoT
Minimizar el consumo de energía es fundamental para todos los diseños de bordes del IoT, tanto si funcionan con baterías como si no. Optimizar un diseño para el uso de la energía puede llevar mucho tiempo si los desarrolladores no tienen cuidado. A continuación, se presentan varios «consejos y trucos» que los desarrolladores deben tener en cuenta y que pueden ayudar a optimizar rápidamente una aplicación IoT para que consuma poca energía:
- Utilizar una arquitectura de software basada en eventos. Cuando el sistema no esté procesando un evento, ponlo en estado de bajo consumo.
- Perfila el consumo de la batería del sistema durante varios ciclos de carga/descarga. Registra el consumo de corriente y la tensión de funcionamiento y represéntalos en el tiempo.
- Aproveche los modos de bajo consumo para desactivar automáticamente los relojes, los periféricos y la CPU.
- En aplicaciones sencillas, explore el uso de la función «sleep on exit» de Arm Cortex-M para minimizar la sobrecarga de interrupciones al despertar el sistema.
- Si utilizas un RTOS, aprovecha su modo «tickless» para evitar que el RTOS despierte inadvertidamente el sistema.
- Si se optimiza en iteraciones, hay que hacer un seguimiento del ahorro energético de cada cambio. En un momento determinado, los desarrolladores descubren una «rodilla» en la que el tiempo dedicado a la optimización tiene un bajo retorno de la inversión en términos de ahorro de energía. Es hora de dejar de optimizar y pasar a la siguiente etapa.
Los desarrolladores que sigan estos «consejos y trucos» se ahorrarán bastante tiempo y disgustos a la hora de iniciar su próximo diseño de IoT seguro y de bajo consumo.
Conclusión:
La necesidad de MCU seguras y de bajo consumo está aumentando para las aplicaciones de borde del IoT. Junto con un sólido soporte de seguridad, los factores que los diseñadores deben tener en cuenta para satisfacer las necesidades de los diseños basados en el borde incluyen el rendimiento del núcleo del procesador, la eficiencia, el soporte de periféricos y E/S, el factor de forma general y el soporte del ecosistema.
Como se ha demostrado, el MCU EFM32PG23 de Silicon Labs puede ayudar a los desarrolladores a resolver varios problemas relacionados con el diseño de bajo consumo y la seguridad de los dispositivos. Su placa de desarrollo asociada proporciona todas las herramientas necesarias para empezar, y siguiendo algunos «consejos y trucos» importantes, se puede implementar rápidamente un diseño de bajo consumo.