Inicio Artículos Cómo diseñar dispositivos IoT seguros y de bajo consumo utilizando los MCU...

Cómo diseñar dispositivos IoT seguros y de bajo consumo utilizando los MCU PG23 de Silicon Labs

Autor: Jacob Beningo, Colaboración de Editores de Digi-Key de América del Norte

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.

Preocupación Requisito de seguridad Tecnología
Identificación del dispositivo El dispositivo IoT puede ser identificado de forma única, tanto lógica como físicamente. Certificación segura
Configuración del dispositivo La configuración del software y del firmware del dispositivo IoT puede ser modificada, y dichos cambios sólo pueden ser realizados por entidades autorizadas. Actualización segura
Actualización de software y firmware El software y el firmware del dispositivo IoT pueden ser actualizados por entidades autorizadas utilizando únicamente un mecanismo seguro y configurable.
Protección de datos El dispositivo IoT puede proteger los datos que almacena y transmite del acceso y la modificación no autorizados. Manejo de clave seguro
Acceso lógico a las interfaces El dispositivo IoT puede limitar el acceso lógico a sus interfaces locales y de red sólo a las entidades autorizadas. Depuración segura
Actualización de sotware y firmware El software y el firmware del dispositivo IoT pueden ser actualizados por entidades autorizadas utilizando únicamente un mecanismo seguro y configurable. Actualización segura
Registro de eventos de ciberseguridad El dispositivo IoT puede registrar los eventos de ciberseguridad y hacer que los registros sean accesibles sólo para las entidades autorizadas. Anti-sabotaje
Integridad del software Los intentos de violación de la seguridad se registran y los desarrolladores pueden seleccionar las tecnologías de contramedidas del sistema adecuadas para proteger la seguridad. Inicio seguro

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.

El diagrama de la MCU PG23 de Silicon Labs tiene una amplia gama de periféricos (haga clic para ampliar)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).

Diagrama de la placa de desarrollo PG23-2504A de Silicon LabsFigura 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.

Imagen de Silicon Labs Simplicity Studio (haga clic para ampliar)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.

El diagrama de Silicon Labs PG23-PK2504A proporciona una opción para alimentar la placa a través de USB-CFigura 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.