Introducción a la TrustZone en ARM Cortex-M
La TrustZone es una tecnología de ARM orientada a mejorar la seguridad de los sistemas embebidos. Aunque la TrustZone ya estaba soportada por los procesadores Cortex-A, en la Arquitectura ARMv8-M se ha dado soporte también a los microcontroladores Cortex-M.
Los microcontroladores con TrustZone permiten aislar de manera segura el software en dos zonas: la segura e insegura. Así permiten implementar aplicaciones que mezclan servicios seguros e inseguros en un sólo microcontrolador.
Proveen un punto de partida para establecer una root of trust de acuerdo con las directrices de la platform security architecture (PSA). La PSA es un sistema para securizar dispositivos[1]. La root of trust es la base donde se asume confianza en un sistema. Es uno de los elementos necesarios en los dispositivos para poder realizar operaciones seguras.
La inclusión de la TrustZone en los Cortex-M viene empujada especialmente por el auge del mercado de dispositivos IOT donde cada vez más es necesario ofrecer actualizaciones seguras y proteger datos sensibles.
Algunas aplicaciones que podemos realizar con la TrustZone son: securizar las actualizaciones de firmware, proteger información sensible, aislar periféricos, cifrar comunicaciones, etc.
Características
Flexibilidad. Permite configurar qué parte del sistema quieres securizar: interrupciones, periféricos de debug, memoria… También permite aislar el software granularmente en 2 ejes: de confianza y privilegiado.
Simplicidad. Escoge un microcontrolador con Trustzone y listo, no tienes que preocuparte del hardware.
Accesibilidad. Puedes implementar dispositivos con TrustZone sin apenas cambios en el modelo de programación. Además, está soportado por muchos RTOS, compiladores y herramientas de debug.
Microcontroladores disponibles
Actualmente ARM ofrece los siguientes núcleos que usan la arquitectura ARMv8-M con TrustZone:
- Cortex-M23. Similar al Cortex-M0+. Disponible en la gama SAM L10 y L11 de Microchip.
- Cortex-M33. Similar al Cortex-M4. Disponible en las gamas STM32L5 de ST y LP5500 Series de NXP.
- Cortex-M35P. Muy similar al M33 con caché de instrucciones.
- Cortex-M55. Un punto intermedio entre el M35P y el M7.
De los M35P y M55 no hay microcontroladores anunciados aun. Puedes consultar la tabla comparativa de los ARM Cortex-M con más detalle (en inglés).
Conclusiones
La TrustZone es una tecnología de ARM que permite establecer una root of trust en dispositivos seguros conforme a la PSA. Lo hace diviendo el software en una parte segura y otra insegura sin necesidad de núcleos ni de microcontroladores adicionales. Actualmente hay disponibles microcontroladores Cortex-M23 y Cortex-M33. Algunas de sus aplicaciones son el cifrado de datos y securización de actualizaciones de firmware.
↑ [1]: Arm Platform Security Architecture Overview.