Nuestro cliente solicita que se añada un mecanismo externo de protección de lectura para la zona de código (code flash).
En el manual TRM solo veo protección de escritura de flash.
¿Cómo se debe implementar la protección de lectura?
Nuestro cliente solicita que se añada un mecanismo externo de protección de lectura para la zona de código (code flash).
En el manual TRM solo veo protección de escritura de flash.
¿Cómo se debe implementar la protección de lectura?
La protección de lectura del área de código puede lograrse combinando mecanismos de nivel de hardware con tecnologías de cifrado. Tomando la serie STM32 como ejemplo, se puede establecer mediante la configuración del nivel de protección de lectura (RDP) en los bytes de opción. Por ejemplo:
Nivel 1 de RDP: deshabilita la interfaz de depuración (JTAG/SWD), prohíbe el acceso a Flash cuando se arranca desde SRAM o memoria del sistema, y solo permite la lectura por el propio programa del chip.
Nivel 2 de RDP: quema además la interfaz de depuración, impide completamente cualquier acceso externo y es irreversible.
Al mismo tiempo, se pueden deshabilitar las interfaces de programación mediante bits de fusible (como el bit SPIEN en AVR) para evitar la lectura de Flash vía ISP. Si se requiere una seguridad mayor, puede integrarse un módulo de cifrado hardware (por ejemplo, HSM) que proteja el contenido de Flash con algoritmos AES/SM4, almacenando la clave en un chip de seguridad externo.
Para requisitos de protección de lectura externa, se puede adoptar el siguiente esquema:
Los métodos anteriores deben combinarse según el modelo concreto de MCU y los requisitos de seguridad; se recomienda consultar el capítulo de seguridad del TRM del fabricante (por ejemplo, el proceso de configuración de Option Bytes en STM32).