Inicio Artículos Cómo potenciar la resiliencia del firmware con la raíz de la plataforma...

Cómo potenciar la resiliencia del firmware con la raíz de la plataforma de controladores de raíz de confianza de Microchip

microchip logo

Autor: Brandon Weekly, Ingeniero de Marketing, Microchip Technology Inc.

El firmware está presente en muchos dispositivos del día a día y es vital para que una plataforma pueda funcionar correctamente. Es lo que permite el arranque de un sistema, ejecuta las actualizaciones del sistema operativo y es incluso el responsable de componentes de hardware como la fuente de alimentación.

Se utiliza en todo tipo de aplicaciones, desde servidores de datos hasta coches autónomos, PC y teléfonos móviles, por lo que se ha convertido en objeto de los ataques de los hackers. Los desarrolladores han reaccionado con soluciones de seguridad para que el firmware sea más resiliente.

En este artículo explicaremos cómo nuestros controladores de raíz de confianza pueden proteger su plataforma frente a los ataques.

Los axiomas de los controladores de arranque seguro

Hay ciertos axiomas o puntos que definen los objetivos de nuestros controladores de arranque seguro: nuestros controladores de raíz de confianza. Aunque nos centraremos en el CEC1712, la mayor parte de este contenido también es válido para nuestro modelo anterior CEC1702.

Nuestro primer axioma es la raíz de confianza inmutable de hardware, lo cual significa que se autentifica cada imagen de firmware, tanto en un arranque como en un reinicio del sistema. Esto se lleva a cabo mediante hardware, no software, por lo que se puede realizar antes de que arranque ninguna otra parte del sistema e incluso antes de que se ponga en funcionamiento algún tipo de sistema operativo o firmware de arranque. El microcontrolador es el primero que arranca en el sistema y cuenta con procesos que verifican el firmware y mantienen el procesador principal reinicializado, asegurando así que no pueda hacer nada hasta que se haya verificado todo el proceso de arranque.

El segundo axioma es la autenticación del código basada en hardware, que utiliza pares de claves privadas-públicas para firmar y autentificar imágenes del código.

En tercer lugar hemos protegido las actualizaciones de firmware, permitiendo así que las futuras versiones del firmware se instalen de forma segura y disfruten de la misma protección.

Las soluciones de raíz de confianza de Microchip son conformes a NIST 800-193 (NIST: National Institute of Standards and Technology). Este estándar indica la capacidad que tiene una plataforma de proteger, detectar y recuperar. Nuestras soluciones protegen frente a ataques de malware y detectan todo ataque que pueda estar en marcha. Por ejemplo, si la imagen de un dato se ve amenazada o es dañada se puede recuperar en una imagen previa y el arranque aún puede realizarse con éxito.

También se puede escoger entre una abundante oferta de algoritmos de cifrado certificados por el programa de validación de algoritmos criptográficos.

Finamente, el proceso es muy rápido, completo y casi imperceptible. En general, una verificación de la imagen del código solo añadirá unos pocos cientos de milisegundos al tiempo de arranque.

El proceso de arranque seguro

Este diagrama cómo un procesador de aplicación utiliza el CEC1712 para verificar su código de arranque.

resilencia firmware

El código que deseamos ejecutar está almacenado en una flash SPI fuera del procesador de la aplicación. Se pueden utilizar dos imágenes del código idénticas que denominaremos “imagen 0” e “imagen 1” para la autenticación. En el caso de que la imagen primaria (imagen 0) esté dañada, podemos recurrir a la imagen 1. En el momento del arranque, el procesador host se mantiene reiniciado y no puede funcionar. El CEC1712 es el primer dispositivo en arrancar dentro del sistema. Carga la imagen 0 del CEC en la SRAM interna del CEC1712 y comprueba una firma digital usando los pares de claves privadas-públicas almacenados en el bloque OTP.

Tras verificar la firma, libera al procesador host y permite que vuelva a funcionar. El código de arranque se cargará por partes desde la flash SPI en el procesador host. Si falla la autenticación, la imagen 1 totalmente redundante del CEC, o “imagen dorada”, se cargará en la SRAM del CEC1712. Si la autenticación es correcta liberará al procesador host e introducirá el código de la flash SPI directamente en el procesador host, permitiéndole que entre en funcionamiento.

Las soluciones de raíz de confianza de Microchip están indicadas para servidores y clientes informáticos, así como en el mercado de telecomunicaciones y en aplicaciones de vehículos autónomos (ADAS). Lo único que se necesita para que sean compatibles con nuestras soluciones es que el procesador host arranque desde una flash SPI externa. Este formato se suele denominar raíz de confianza externa o E-ROT.

Actualizaciones seguras

El siguiente diagrama muestra cómo la ROM de arranque del CEC1712 efectúa actualizaciones seguras.

resilencia

Utiliza el mismo mecanismo que el arranque seguro con alguna pequeña diferencia. En la flash SPI hay una imagen dorada del CEC y una imagen de la actualización del CEC en lugar de dos imágenes idénticas. Al conectar la alimentación, la imagen de la actualización se carga en la SRAM del CEC1712; si es autentificada se ejecutará en el procesador host. Un reinicio del sistema activará y sobrescribirá a continuación sobre imagen dorada previa. Esto nos devuelve a nuestro estado de disponer de dos imágenes totalmente redundantes para la próxima vez que arranquemos o reiniciemos. Si falla la actualización, sencillamente recurrirá a esa imagen dorada y seguirá pudiendo arrancar.

Otras funciones

Se han añadido al CEC1712 algunas funciones de seguridad procedentes del CEC1702 de la generación anterior. La primera es la cancelación de clave, que permite cambiar los bloqueos que protegen los secretos dentro del dispositivo. Como se ha señalado antes, el CEC1712 dispone de potentes algoritmos criptográficos por medio de pares de claves privada-públicas. El uso de la clave privada para autentificar una imagen de código garantiza que no se pueda falsificar una firma digital. Si en algún punto a lo largo de la vida útil de la plataforma se ve amenazada una clave privada, los pares de claves privadas-públicas de respaldo anteriormente suministradas permiten eliminar o cancelar un par de claves y sustituirla por una nueva.

La segunda función nueva es la protección de desmantelamiento del código. A diferencia de la cancelación de claves, que uno espera no tener que utilizar, se recomienda desmantelar el código siempre que se actualice el firmware de la plataforma. Si las versiones anteriores del firmware tienen una vulnerabilidad de la seguridad solo hay que cambiar un bit y esa versión del código ya no se considerará auténtica. De este modo los atacantes no pueden aprovechar las brechas en la seguridad que puedan existir en las imágenes más antiguas.

La última función nueva que vale la pena mencionar es la autenticación de varias imágenes, que permite autentificar hasta 16 imágenes en paralelo, reduciendo así aún más el tiempo de arranque.

Algoritmos de cifrado

Los controladores de raíz de confianza de Microchip ofrecen varios algoritmos de cifrado validados por el Programa de Validación de Algoritmos Criptográficos.

Los diferentes algoritmos permiten personalizar la configuración de firmas digitales por parte de pares de claves privadas-públicas. Incluso son compatibles con técnicas de cifrado simétrico ya existentes.

Con el fin de ayudarle a empezar a trabajar con nuestros controladores ofrecemos la tarjeta de desarrollo DM990013, que se puede utilizar para demostraciones y suministros del CEC1712. Los módulos enchufables permiten hacer pruebas con el bloque OTP (One Time Programmable). Si se “quema” el OTP de un dispositivo solo hay que intercambiarlo por otro en el módulo y volver a empezar. También proporcionamos herramientas de software para facilitar la experiencia de suministro.

Trabajar con Microchip

Además de las ventajas ofrecidas por nuestros controladores de la raíz de confianza, ¿por qué debería trabajar con Microchip? Tenemos más de 20 años de experiencia en el ámbito de la seguridad y contamos conocemos a la perfección las necesidades de seguridad de muchos mercados.

Contamos con el apoyo de la certificación NIST, que demuestra que podemos proteger su firmware, detectar cualquier amenaza y recuperarnos frente a cualquier tipo de ataque. También ofrecemos una amplia formación sobre la implementación de nuestras soluciones en sus diseños a través de nuevos seminarios en línea, vídeos, posts en redes sociales y contenidos de otro tipo difundidos periódicamente.

Microchip también ofrece servicios de suministro y revisiones de diseños. También ponemos en práctica una política de obsolescencia marcada por el cliente. Si hay un dispositivo más antiguo (el CEC1702, por ejemplo) que el cliente desee utilizar por cualquier motivo, seguiremos dándole soporte sea cual sea la generación.

En resumen, Microchip está aquí para apoyarle a lo largo de su proyecto de principio a fin.

Para más información sobre el CEC1712: https://www.microchip.com/en-us/product/CEC1712