Inicio Artículos Protección de claves avanzada con Renesas Secure Crypto Engine

Protección de claves avanzada con Renesas Secure Crypto Engine

secure crypto engine
Figura 1. Secure Crypto Engine

Autor: Giancarlo Parodi, Ingeniero principal, Renesas Electronics

El crecimiento de los dispositivos con capacidad de conectividad implica una mayor necesidad de asegurar tanto los canales de comunicación como cualquier almacenamiento local que el dispositivo pueda usar, para proteger la confidencialidad e integridad de los datos del usuario. Por lo tanto, un desarrollador de dispositivos integrados debe considerar cómo implementar la funcionalidad requerida para las necesidades de los usuarios actuales y cómo hacer que la implementación esté preparada para el futuro para satisfacer los requisitos futuros de una manera rentable. Una hoja de ruta de seguridad debe lograr el equilibrio adecuado entre abordar el enfoque actual (y heredado), hacer que la implementación sea compatible con el ciclo de vida del equipo final y estar abierto a mejoras que puedan surgir en el futuro.

Uno de los aspectos más desafiantes es el manejo de las claves criptográficas de los usuarios, desde la fase de producción y luego en el campo, ya que son los activos más sensibles para proteger, desde la perspectiva del usuario final. Este artículo describe cómo Renesas puede ayudar a sus clientes a enfrentar tales desafíos de una manera fácil y rentable.

Las claves deben protegerse en varios escenarios de amenazas: durante la instalación en el sistema, durante el uso, cuando se almacenan en el dispositivo y después de desechar el equipo. Para facilitar todos esos requisitos, es una gran ventaja si el microcontrolador incluye un subsistema dedicado que está diseñado para cuidar de forma autónoma todos esos aspectos. Afortunadamente, este es el caso de la familia de microcontroladores RA, que incluye Secure Crypto Engine (SCE).

El subsistema seguro definido por SCE (representado en la Figura 1) proporciona una funcionalidad de elemento seguro comparable con un rendimiento mucho mayor como solución integrada, lo que reduce el costo de la lista de materiales y simplifica la integración tanto en la etapa de desarrollo como en la producción. Admite algoritmos AES, RSA, ECC, Hashing y una verdadera generación de números aleatorios dentro de un entorno aislado en el chip. Además de esto, el SCE permite el almacenamiento seguro de claves ilimitadas utilizando una clave única de hardware (HUK) de 256 bits programada de fábrica para derivar «claves de cifrado de claves», que a su vez se pueden usar para envolver (cifrar) cualquier tipo de clave de cliente compatible. El subsistema criptográfico Secure Crypto Engine (SCE9) está completamente contenido y aislado dentro de la MCU, y protegido por un circuito de administración de acceso que apaga la operación del motor criptográfico al detectar intentos de acceso ilegal. El SCE realiza todas las operaciones criptográficas de texto sin formato utilizando su propia área de almacenamiento interno dedicada, a la que no se puede acceder por medio de ningún bus accesible por CPU o DMA. Las capacidades avanzadas de almacenamiento de claves y manejo de claves del SCE9 pueden garantizar que nunca se expongan o almacenen claves de texto sin formato en la RAM accesible a la CPU o en la memoria externa no volátil.

La familia de microcontroladores RA incluye el SCE en todos los grupos con capacidad de conectividad, como los derivados RA6 y RA4. El RA6M4 es el primer MCU de la familia RA en la nueva generación de MCU centrados en la seguridad de Renesas. Las funciones de seguridad de vanguardia combinadas con la mejor periférica IP de su clase y la compatibilidad de funciones y pines entre la serie MCU hacen que las MCU de la familia RA sean la opción óptima para casi cualquier producto integrado conectado.

Todos los MCU de Renesas admiten la programación de fábrica a través de interfaces serie y USB como un mecanismo de producción en masa fiable y de bajo costo. Además de esto, la funcionalidad integrada del RA6M4 y las series posteriores de microcontroladores permiten a los usuarios implementar el aprovisionamiento seguro de claves a través de la misma interfaz de programación. El firmware de arranque de MCU admite un protocolo de comando dedicado para pasar una clave de instalación elegida y una carga útil cifrada (la clave de la aplicación se inyecta) al límite de SCE; la clave de la aplicación se genera en un formato envuelto exclusivo de MCU que se puede almacenar de forma segura en la memoria no volátil.

Dado que tanto la clave de instalación de la clave como la clave de la aplicación del usuario están encriptadas, no es necesario utilizar un módulo de seguridad de hardware (HSM) o un servicio de programación seguro para la inyección de la clave del usuario en producción. Renesas proporciona un servicio «Off line» gratuito a todos sus clientes para generar la carga útil de datos clave de instalación de fábrica necesaria, a través de una infraestructura dedicada llamada servidor de gestión del ciclo de vida del dispositivo (DLM). La comunicación completa entre el usuario y el servidor es segura y encriptada vía PGP; notablemente, la clave de la aplicación no está expuesta al propio servidor DLM en ningún momento.

dlm server
Figura 2. DLM server and key installation

La aplicación de usuario puede aprovechar la capacidad de SCE por medio de controladores criptográficos dedicados, incluidos en el paquete de software flexible (FSP) de Renesas. El FSP es un paquete de software mejorado diseñado para proporcionar software de alta calidad, escalable y fácil de usar para diseños de sistemas integrados que utilizan los microcontroladores RA. Es compatible con Arm® TrustZone®, funciones de seguridad avanzadas, proporciona controladores de alto rendimiento y bajo consumo de memoria listos para la producción, integra pilas de middleware como Azure® RTOS, FreeRTOS™, lo que facilita la implementación de módulos complejos para la comunicación y la seguridad.

En cuanto a los controladores SCE en particular, estos implementan dos modos de operación, llamados «modo de compatibilidad» y «modo protegido».

Modo de compatibilidad

Una de las principales razones de su existencia es que muchos sistemas heredados requieren manejar claves de texto sin formato, o las implementaciones reales deben integrarse con diferentes pilas y bibliotecas que no manejan de forma nativa claves envueltas (a veces denominadas «blobs de teclas»). El SCE es flexible y puede admitir la operación de teclas de texto sin formato al permitir que el software de la aplicación importe una clave de texto sin formato en el límite del SCE. Después de este paso, la aplicación podría almacenar de forma segura la versión de la clave empaquetada en la memoria, lo que reduce la exposición de la clave. En este sentido, las funciones de envoltura de claves y almacenamiento seguro de SCE se vuelven transparentes para la aplicación del usuario final y permiten una integración perfecta con sistemas heredados o cualquier software y soluciones de terceros, al mismo tiempo que ofrecen su rendimiento y beneficios ilimitados de almacenamiento seguro de claves. El software de la aplicación puede usar las claves de texto sin formato o encapsuladas por medio de las API de PSA Crypto y MbedCrypto.

El almacenamiento seguro de claves es prácticamente ilimitado, ya que cualquier programa o ubicación flash de datos disponible en las MCU se puede elegir como ubicación de almacenamiento. Al mismo tiempo, la clave única de hardware involucrada en el proceso de envoltura evita la clonación y copia ilícita de claves.

En este modo de operación, el usuario también tiene la opción de generar claves encapsuladas (aleatorias) en la propia MCU. Esto podría ser interesante para cifrar datos locales de MCU (por ejemplo). Además, la compatibilidad con claves de texto sin formato podría facilitar la integración con los sistemas de programación existentes.

Por otro lado, el desarrollador debe evaluar la amenaza de manipular claves de texto sin formato en el sistema, especialmente durante el funcionamiento, ya que el contenido de la clave quedará expuesto fuera de los límites de SCE. Este riesgo afecta tanto al funcionamiento del software como a cualquier actualización de clave posterior, cuando un código malicioso podría explotar las debilidades del software existente para obtener los datos clave.

Modo protegido

Esto proporciona una mejora significativa tanto en la seguridad a nivel del sistema como en el manejo seguro de claves, mediante la implementación de un enfoque de mejores prácticas. En este modo, solo se permiten claves envueltas de forma nativa y el sistema no admite la operación de claves de texto sin formato. Esto elimina completamente la exposición de claves de la CPU, DMA u otras interfaces de bus del sistema y reduce drásticamente la superficie de ataque.

Al igual que en el modo de compatibilidad, el SCE puede generar claves envueltas (locales).

Las claves de usuario conocidas pueden ser instaladas de forma segura por un programador de dispositivos que interactúe con el firmware de arranque incluido en el chip, lo que permite el aprovisionamiento seguro de claves en producción. Dichas claves se almacenan de forma segura en formato envuelto y se pueden usar directamente en la aplicación. La misma interfaz se puede usar para instalar key-update-keys en fábrica, es decir, claves que el software de la aplicación puede usar para actualizar y actualizar de forma segura las claves de la aplicación en el campo. Esto a su vez significa que no hay dependencia en el servicio del servidor DLM después de que se haya completado la programación inicial de fábrica.

Además de esto, el modo protegido permite varias contramedidas para proteger el sistema contra ataques de análisis de potencia simples y diferenciales (los llamados SPA y DPA). Dichos ataques implican que el operador tiene acceso físico al sistema (dicha amenaza puede ser mitigada por otras políticas de seguridad, según el entorno operativo), sin embargo, se vuelven cada vez más baratos y rápidos de implementar y, por lo tanto, es importante protegerse contra ellos.

De manera similar, se implementan contramedidas contra los ataques de tiempo para las operaciones criptográficas ECC y RSA, que se manejan en tiempo constante cuando se trata de material clave sensible (para evitar la fuga del canal lateral de tiempo).

Se puede acceder al modo protegido SCE utilizando el módulo «FSP Crypto» en un formato independiente, como parte del paquete FSP. Aunque la integración con los sistemas y el software heredados puede requerir un rediseño de la arquitectura, vale la pena considerar las ventajas proporcionadas por el modo de operación protegido.

Para las aplicaciones que desean utilizar la implementación Trusted Firmware-M (TF-M) de un entorno de procesamiento seguro para las arquitecturas Arm® Cortex®-M33, el modo de compatibilidad SCE se puede utilizar en combinación con la criptografía PSA y se integra a la perfección con el ARM existente Software de exosistema PSA. Esta integración se proporciona como parte del paquete FSP.

Además, el FSP puede usar el modo de compatibilidad para integrarse con Amazon FreeRTOS, incluida la compatibilidad con MbedTLS, o la compatibilidad con Azure RTOS y NetX Duo.

Otras soluciones de conectividad, como la pila de biblioteca integrada SSL/TLS de WolfSSL con soporte comercial, pueden aprovechar el funcionamiento en modo protegido y se encuentran actualmente en desarrollo.

En resumen, las soluciones de Renesas pueden respaldar cualquier hoja de ruta de seguridad de aplicaciones, desde admitir sistemas existentes y heredados, hasta proporcionar las bases para una ruta mejorada de seguridad hacia la protección óptima de los activos y las aplicaciones de los usuarios.

El software y la funcionalidad descritos están disponibles en la familia de MCU RA, comenzando con el MCU RA6M4 y los próximos microcontroladores basados ​​en Cortex-M33 de las series RA6 y RA4.