El problema fundamental de la computación que aborda este trabajo es la integridad de los mecanismos de seguridad basados en hardware frente a ataques físicos sofisticados. En sistemas embebidos y microcontroladores, la seguridad se basa en una cadena de confianza que se extiende desde el arranque seguro (Secure Boot) hasta la segregación de estados de ejecución (TrustZone) y la inhabilitación permanente de depuración. Sin embargo, la fortaleza de esta cadena es tan robusta como su eslabón más débil, especialmente cuando se consideran las interacciones entre componentes de hardware y software.
Este artículo demuestra cómo una vulnerabilidad en la implementación de un registro de control de depuración (DEBUGEN), que carece de las redundancias de seguridad presentes en otras configuraciones críticas, puede ser explotada. La relevancia actual radica en la creciente adopción de microcontroladores con capacidades de seguridad en IoT, automoción y dispositivos médicos, donde la exposición de secretos o la alteración del comportamiento del sistema puede tener consecuencias críticas. La historia de la seguridad de hardware está plagada de ejemplos donde la falta de una visión holística de la cadena de ejecución y control ha llevado a bypasses inesperados, desde ataques de canal lateral hasta inyección de fallas.
Arquitectura del Sistema
El RP2350 es un microcontrolador dual-core con opciones Arm Cortex-M33 o RISC-V Hazard3. Sus características de seguridad incluyen Secure Boot (autenticación de firmware mediante OTP), Armv8-M TrustZone para segregación de estados Secure/Non-secure, y configuraciones de deshabilitación permanente de depuración. La memoria OTP (One-Time Programmable) almacena configuraciones de seguridad y claves públicas, utilizando codificaciones redundantes (ej. 'three-of-eight vote' o 'triple-redundant with a majority vote') para campos críticos como los bits de bloqueo de OTP (PAGEn_LOCK0, PAGEn_LOCK1).
El acceso de depuración externo se realiza a través de la interfaz Serial Wire Debug (SWD), que se conecta al Serial Wire Debug Port (SW-DP) y luego a los Access Ports (Mem-AP para cada core, RP-AP para controles de reset/recuperación). La flag CRIT1.DEBUG_DISABLE, cuando se establece, inhabilita los Mem-AP. Sin embargo, el registro DEBUGEN, mapeado en memoria, permite al software Secure re-habilitar los Mem-AP y los accesos Secure a través de ellos. Este registro no tiene las protecciones de redundancia de OTP. El ataque explota esta debilidad, utilizando microscopía de emisión de fotones (PEM) para localizar la actividad de los bits de DEBUGEN y luego inyección de fallas láser (LFI) para modificar sus valores. El flujo de ataque también utiliza el RP-AP para un 'rescue reset', que detiene el chip en el boot ROM antes de que el firmware pueda aplicar bloqueos de tiempo de ejecución (soft locks) a las páginas de OTP, permitiendo la lectura de secretos con los permisos persistentes (hard locks) de OTP.
Flujo de Ataque para Extracción de Secreto
- 1 Decapsulación Trasera Preparación destructiva del chip para acceso óptico al sustrato de silicio.
- 2 Microscopía de Emisión de Fotones (PEM) Localización de la actividad de los bits del registro DEBUGEN mediante anális...
- 3 Inyección de Fallas Láser (LFI) Aplicación de pulsos láser calibrados en las posiciones identificadas para se...
- 4 Rescue Reset (RP-AP) Activación de un reset de rescate a través del RP-AP para detener el chip en ...
- 5 Habilitar Debug Seguro Confirmación de que DEBUGEN=0xc, permitiendo acceso Secure-attributed al Mem-AP.
- 6 Halt Core 1 Detención del Core 1 a través del DHCSR vía Mem-AP seguro.
- 7 Lectura de Secreto OTP Extracción del secreto de las filas de OTP 0xc08–0xc0f a través de la interfa...
| Capa | Tecnología | Justificación |
|---|---|---|
| security | Armv8-M TrustZone | Separación de estados de ejecución Secure y Non-secure para proteger recursos críticos. |
| security | One-Time Programmable (OTP) Memory | Almacenamiento inmutable de configuraciones de seguridad permanentes y claves públicas para Secure Boot. Codificación redundante para campos críticos (ej. 'three-of-eight vote', 'triple-redundant majority vote'). |
| security | DEBUGEN Register | Registro de control mapeado en memoria que permite habilitar/deshabilitar los Memory Access Ports (Mem-AP) y sus accesos Secure. Sin redundancia de bits documentada, a diferencia de otros campos de seguridad. |
| observability | Photon-Emission Microscopy (PEM) | Técnica de localización de actividad de transistores mediante la detección de fotones emitidos durante la conmutación, utilizada para identificar la ubicación física de los bits de DEBUGEN. Análisis diferencial de emisión para suprimir ruido y aislar actividad específica. |
| security | Laser Fault Injection (LFI) | Método de ataque físico que utiliza pulsos láser para inducir fallas transitorias o permanentes en el hardware, en este caso, para modificar el estado de los bits del registro DEBUGEN. Láser pulsado de 980 nm, 1.2 W, 100 ns de ancho de pulso. |
| networking | Serial Wire Debug (SWD) | Interfaz de depuración estándar de Arm para comunicación externa con el microcontrolador, utilizada para sondear el estado de los puertos de acceso después de la inyección de fallas. |
Fundamentos Teóricos
Este trabajo se conecta directamente con los principios de seguridad de hardware y la criptografía aplicada, en particular con el estudio de ataques de canal lateral y de inyección de fallas. Conceptos como la 'seguridad por oscuridad' (security by obscurity) son refutados, ya que la ausencia de documentación detallada sobre la redundancia de DEBUGEN fue una vulnerabilidad clave. La idea de que la seguridad de un sistema es tan fuerte como su eslabón más débil es un axioma en criptografía y seguridad de sistemas, a menudo ilustrado por la cadena de confianza. Los ataques de inyección de fallas, como los descritos por Anderson y Kuhn en sus trabajos sobre 'Fault Injection Attacks' (2003), demuestran cómo la manipulación física del entorno de ejecución puede alterar el comportamiento del hardware para eludir controles de seguridad. La microscopía de emisión de fotones se basa en principios de física de semiconductores, donde la recombinación de portadores de carga durante la conmutación de transistores emite fotones, una técnica utilizada en análisis de fallas y ingeniería inversa de circuitos integrados desde los años 80.