¿Cómo funciona la protección contra escritura del firmware?

0

Hace poco tuve que analizar la lectura de firmware y la protección contra escritura para el STM32. Y noté que el proceso de deshabilitar la protección contra escritura después de que se haya habilitado, no es específico del dispositivo; no hay nada exclusivo (como el ID de dispositivo de 96 bits) involucrado en el proceso de bloqueo / desbloqueo, que impide que otra persona que no sea el propietario desbloquee el dispositivo, excepto que el proceso de desbloqueo activa un borrado masivo de la memoria flash. Las teclas de desbloqueo están en el manual de programación en flash para que cualquiera pueda verlas.

Entonces, ¿me perdí algo en la documentación? ¿O es así como sucede con algunas MCU, donde desactivar la protección de escritura y lectura básicamente resulta en un borrado en masa, asegurando que el código del propietario sea seguro (generalmente el objetivo final, supongo)? ¿Hay MCU que realmente usan contraseñas de SRAM, ID de dispositivo únicas o niveles de lógica de pin, para proteger el flash y es generalmente una función integrada o debe ser implementada por el programador?

    
pregunta TisteAndii

2 respuestas

3

En términos generales, la protección de lectura es para proteger la IP, la protección contra escritura es para evitar que un fallo técnico impacte el producto.

Así que quieres que protección de lectura sea irrompible sin borrar el programa (aunque el método no tiene que ser secreto si borra el programa de manera confiable) mientras que protección contra escritura simplemente tiene que configurarse para que sea extremadamente improbable que ocurra accidentalmente, incluso si hay fallas, etc.

    
respondido por el Spehro Pefhany
0

Cuando volteas los bits de protección de lectura / escritura, lo que realmente estás haciendo es establecer un bit de compuerta flotante. Nunca he visto una implementación comercial donde se pueda borrar un solo bit, ya que generalmente borramos bancos. Si tiene un dispositivo reprogramable con los bits de protección establecidos, cuando lo ponga en modo de reinicio, pondrá en marcha las bombas de carga y configurará todos los bits como altos (ese es el estado de activación habitual). Cada MCU es diferente, pero esto está en todas las MCU que he visto o creado.

Con respecto a las identificaciones del procesador, usamos fusibles electrónicos que se escribían una sola vez.

    
respondido por el b degnan

Lea otras preguntas en las etiquetas