Me gustaría saber si hoy existe una opción 100% segura para evitar la copia de firmware de MCU. La mayoría de los MCU pueden tener una opción configurada en la programación que bloqueará cualquier extracción de código, pero esto suele ser fácil de piratear, especialmente si usa ácidos para acceder al dado y sondearlo.
Una vez vi que algunas MCU usan soluciones criptográficas, pero no estoy seguro de cómo funcionan, supongo que prueban algún hardware externo en busca de claves específicas, pero esto es fácil de cambiar en el código una vez que se extrae.
Si sabe que su MCU siempre tendrá energía, en teoría podría mantener su firmware en la RAM y aplicar medidas externas que cortarán la energía de la RAM/la borrarán para que el firmware se pierda si el usuario hace algo como quitar una cubierta. Esto se hace para algunas aplicaciones bancarias (aunque generalmente solo borran claves criptográficas). No está 100% garantizado, pero probablemente lo acercará lo suficiente como para que sea inviable para casi todos los atacantes.
Puede encontrar más ideas en este video de desmontaje de una máquina de tarjetas de crédito .
En realidad, no veo la necesidad de este nivel de protección de hardware para el firmware. No será barato de hacer y un competidor oportunista podría fácilmente aplicar ingeniería inversa a la funcionalidad y vender un producto más barato que usted.
Si cree que el acceso al troquel ácido es fácil, hay pocas soluciones difíciles :-).
Una "caja" externa que procesa los datos suministrados con un algoritmo o proceso útil y desconocido y al que se accede por medios criptográficamente seguros (por ejemplo, criptografía de clave pública) y devuelve un resultado útil hace que el sistema sea tan seguro como el dispositivo externo o como la dificultad. de replicar el algoritmo o proceso. Ambos se pueden hacer "muy duros". [por ejemplo, un dispositivo alimentado internamente con energía o detección de intrusos a través de una red codificada semialeatoriamente de alambre de cobre fino que se envuelve alrededor del dispositivo con todo el conjunto en una matriz cerámica resistiría la mayoría de los métodos de ataque sensibles.]
Aquí hay uno de esos sistemas de hace mucho tiempo {1987!} -
que describe un sistema titulado "Ninox"*. Este documento también estaba destinado a tener mi nombre adjunto, pero no pude hacer que el archivo adjunto fuera criptográficamente seguro :-). El mérito actualmente percibido de esta 'sugerencia' puede indicarse por el hecho de que el documento ahora está disponible para su compra por $1.98.
Abstracto:
Este documento describe un sistema de protección de software que probablemente será ampliamente utilizado en los próximos años en un esfuerzo por controlar los problemas de piratería de software experimentados por los desarrolladores de software para microcomputadoras.
El sistema descrito fue desarrollado por el autor y un asociado. Varios otros investigadores han ideado técnicas similares de forma independiente, pero creemos que el trabajo descrito en este documento incluye algunos nuevos desarrollos útiles. Hemos llamado al sistema Ninox.
El sistema utiliza un dispositivo serializado en cada sistema informático y proporciona facilidades para que el software suministrado al usuario pueda ejecutarse solo en la máquina del usuario y es imposible modificar el software para ejecutarlo en otra máquina.
La criptografía de clave pública se utiliza para cifrar programas y se describe un método de distribución de programas. El documento también examina algunas de las dificultades con el sistema y sugiere algunos de los métodos por los cuales el sistema podría ser atacado y cómo resiste estos ataques. En general, se sostiene (y se apoya en el análisis formal de la teoría de la información) que es imposible crear un sistema totalmente seguro.
Recientemente hice una placa ARM personalizada para mi robot de combate, y el Atmel SAM3S4 que usé en él tiene un pin de borrado que, cuando se ejerce, literalmente deja en blanco su microcontrolador.
Esto está pensado como una característica de seguridad para el espionaje industrial, donde puede instalar un sensor/interruptor/dispositivo engañoso que activa esto al detectar una intrusión. Todo lo que queda es el cargador de arranque SAMBA que estos dispositivos Atmel restauran al borrar todo lo demás.
Esa función también se usa para los programas USB Flash en el dispositivo, a menos que, por supuesto, tenga una conexión JTAG, ese proceso es innecesario.
Transeúnte
Spehro Pefhany
usuario39962
pedro bennett
Nick Alexeev
usuario_1818839
rjp