Tres características que todo microcontrolador seguro necesita
Durante años, los desarrolladores integrados se han dado el lujo de ignorar la seguridad. Los sistemas integrados eran sistemas independientes desconectados en los que solo tenían que preocuparse por la manipulación física. El Internet de las cosas (IoT) ha eliminado este lujo para siempre. La seguridad es ahora una de las principales preocupaciones de casi todos los dispositivos conectados. Para asegurar sus dispositivos correctamente, los desarrolladores deben buscar tres características clave de la unidad de microcontrolador (MCU): aislamiento basado en hardware, unidades de protección de memoria (MPU) y aceleradores criptográficos. Exploremos estas tres características fundamentales.
Característica n.° 1 de la MCU segura: Un entorno de procesamiento seguro
Un concepto clave para asegurar un sistema integrado es diseñarlo utilizando aislamiento. El aislamiento proporciona un límite o una valla alrededor de la memoria, los componentes y las funciones que operan juntos para lograr un objetivo común. Si un adversario puede explotar una región del sistema, la barrera de aislamiento protege la segunda región para que el adversario no pueda acceder a ella inmediatamente.
Un sistema integrado a menudo se aísla en dos regiones principales: un entorno de procesamiento no seguro (NSPE) y un entorno de procesamiento seguro (SPE). La mejor manera de lograr estos dos entornos de ejecución es utilizar el aislamiento basado en hardware. Hay dos métodos para hacer esto: usar una MCU multinúcleo o una MCU de un solo núcleo con TrustZone de Arm.
En la solución multinúcleo, un procesador está dedicado al SPE, mientras que el otro está dedicado como un procesador rico en características en el NSPE. Los dos núcleos están físicamente aislados entre sí y solo se comunican a través de una memoria RAM compartida y una comunicación entre procesos (IPC). Si se hackea el NSPE, los datos, la memoria y las funciones aislados en el núcleo de seguridad seguirán estando aislados y protegidos. El adversario tendría que encontrar una forma de hackear el núcleo de seguridad. Un ejemplo de MCU que utiliza el enfoque multinúcleo es PSoC 64 de Infineon Technologies.
El PSoC 64 tiene un procesador Arm Cortex-M4 para el NSPE rico en aplicaciones y un núcleo de seguridad Arm Cortex-M0+ para el SPE. Los dos núcleos pueden comunicarse a través de un IPC. Una placa de desarrollo interesante para comenzar a experimentar con la solución de seguridad multinúcleo es el kit Pioneer PSoC 64 CY8CKIT-064S0S2-4343W habilitado para Wi-Fi y Bluetooth (Figura 1).
Figura 1: El kit Pioneer CY8CKIT-064S0S2-4343W proporciona una plataforma de desarrollo segura para que los desarrolladores trabajen con soluciones de seguridad multinúcleo. (Fuente de la imagen: Infineon Technologies)
La solución TrustZone es diferente del modelo de aislamiento multinúcleo en que utiliza un solo núcleo de procesamiento, pero el procesamiento aún se divide en un NSPE y un SPE. Cuando es necesario ejecutar una función segura, el procesador cambia del NSPE al SPE de una manera determinista que suele ser de tres ciclos de reloj o menos. Un ejemplo de MCU compatible con TrustZone es el STM32L562CET6 de STMicroelectronics.
El aislamiento basado en hardware es la primera característica que los desarrolladores deben buscar en sus MCU seguras. La siguiente característica son las MPU.
Característica n.° 2 de la MCU segura: MPU
Una MPU es un periférico de hardware diseñado para proteger la memoria. Los desarrolladores integrados necesitan una MPU porque les permite crear más regiones de aislamiento basado en hardware dentro de su código de aplicación. Por ejemplo, mientras que un desarrollador puede aprovechar una SPE, esa SPE se puede dividir aún más en regiones aisladas utilizando una MPU. Si un adversario encuentra su camino hacia el SPE, todavía necesita encontrar un camino hacia cada una de las regiones de memoria aisladas protegidas por la MPU.
La MPU se puede considerar como una unidad de administración de memoria (MMU) reducida que proporciona a los desarrolladores un método para dividir su software en procesos aislados. La MPU se puede utilizar en cualquier ubicación de memoria, que incluyen la memoria flash, la RAM y los periféricos. La MPU se utiliza para establecer permisos de ejecución y acceso. Nuevamente, si un adversario puede acceder a un proceso, estará limitado a lo que puede acceder según la configuración de la MPU. Si intenta acceder a una región de memoria fuera de la configuración de la MPU, la MPU producirá una falla. Luego, el sistema puede intentar recuperarse o reiniciarse. Esto la convierte en una característica fundamental que los desarrolladores necesitan para proteger sus sistemas.
Característica n.° 3 de la MCU segura: Aceleradores criptográficos
La tercera característica que los desarrolladores deben buscar en una MCU segura es un acelerador criptográfico. Se utiliza un acelerador criptográfico para acelerar cálculos complejos que, de otro modo, llevarían a la CPU un tiempo relativamente largo para procesar. La CPU puede liberar de trabajo al acelerador, lo que le permite trabajar en otro problema en paralelo. El resultado es que las operaciones criptográficas toman menos tiempo, ahorran ciclos de CPU e incluso potencialmente el uso de energía en dispositivos que funcionan con baterías.
Hay varias operaciones para las que los desarrolladores pueden utilizar el acelerador criptográfico. Primero, pueden usarlo para cifrar comunicaciones o datos. Un esquema de cifrado común para usar es AES-256, pero otros pueden ser compatibles según la MCU. Otra aplicación es calcular el hash de un conjunto de datos. Esto puede resultar útil al verificar la integridad del código de la aplicación o de un dato.
Los aceleradores criptográficos son fáciles de pasar por alto, pero cualquier MCU segura y buena tendrá uno. El truco para los desarrolladores es revisar qué es compatible y asegurarse de que tenga las capacidades necesarias para el ciclo de vida esperado de la aplicación.
Conclusión
La seguridad no es algo que los desarrolladores puedan simplemente agregar a su sistema al final del ciclo de desarrollo. Se debe tener cuidado desde el principio para comprender las amenazas al sistema y seleccionar una MCU que contenga todas las capacidades de hardware necesarias para protegerlo.
Have questions or comments? Continue the conversation on TechForum, Digi-Key's online community and technical resource.
Visit TechForum




