Prevenir el robo de firmware

2

Me gustaría saber si hay una opción 100% segura hoy para evitar la copia de firmware de las MCU. La mayoría de las MCU pueden tener un conjunto de opciones en la programación que bloqueará cualquier extracción de código, pero esto generalmente es fácil de piratear, especialmente si utiliza ácidos para acceder al dado y sondearlo.

Una vez vi que algunos MCU utilizan soluciones criptográficas, pero no estoy seguro de cómo funcionan, asumo que prueban algún hardware externo para claves específicas, pero esto es fácil de cambiar en el código una vez que se extrae.

    
pregunta mFeinstein

3 respuestas

4

Si crees que el acceso al troquel ácido es fácil, hay algunas soluciones difíciles :-).

Un "cuadro" externo que procesa los datos suministrados con un algoritmo o proceso útil y desconocido y al que se accede mediante medios criptográficos seguros (p. ej., 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 pueden hacerse "muy duros". [p. ej., un dispositivo con alimentación interna con detección de energía o intrusión a través de una red aleatoria aleatoria 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.]

Este es un sistema de este tipo desde hace mucho tiempo {1987!} -
describiendo un sistema titulado "Ninox" *. Este documento estaba destinado a tener mi nombre adjunto, pero no logré que el adjunto sea criptográficamente seguro :-). El mérito percibido actualmente de esta "sugerencia" puede ser indicado por el hecho de que el papel ya está disponible para su compra por $ 1.98.

Resumen:

Este documento describe un sistema de protección de software que probablemente se usará ampliamente en los próximos años en un esfuerzo por controlar los problemas de piratería de software que experimentan los desarrolladores de software de microcomputadoras.

El sistema descrito fue desarrollado por el autor y un asociado. Varios otros investigadores han ideado técnicas similares de manera independiente, pero creemos que el trabajo descrito en este documento incluye algunos desarrollos nuevos útiles. Hemos llamado al sistema Ninox.

El sistema utiliza un dispositivo serializado en cada sistema informático y proporciona instalaciones para que el software suministrado al usuario solo pueda ejecutarse en la máquina del usuario y, de hecho, es imposible que el software que se modifique se ejecute en otra máquina.

La criptografía de clave pública se usa 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 resistir estos ataques. En general, se sostiene (y está respaldado por un análisis formal de la teoría de la información) que es imposible crear un sistema totalmente seguro.

  • Ninox novaeseelandiae es el Búho de Nueva Zelanda, comúnmente denominado Morepork (de su llamada) o Ruru en maorí (también de su llamada) . Elegí el nombre porque 'Ninox' puede (más que la mayoría) ver en la oscuridad. Más

    
respondido por el Russell McMahon
3

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 alimentación de la RAM / borrándola para que el firmware se pierda si el usuario hace algo como eliminar una cubrir. Esto se hace para algunas aplicaciones bancarias (aunque generalmente solo borran las claves criptográficas). No está 100% garantizado, pero es probable que te acerque lo suficiente para que sea prácticamente imposible para casi todos los atacantes.

Puede encontrar más ideas en este video 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 hacerlo y un competidor oportunista podría hacer una ingeniería inversa de la funcionalidad y vender un producto más barato que tú.

    
respondido por el helloworld922
2

Recientemente hice un tablero ARM personalizado para mi robot de combate, y el Atmel SAM3S4 que usé tiene un pin de borrado, que cuando se ejerce literalmente deja en blanco el microcontrolador.

Esto está pensado como una característica de seguridad para el espionaje industrial, donde puede armar un sensor / interruptor / dispositivo complicado que lo activa cuando se detecta la 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 no es necesario.

    
respondido por el KyranF

Lea otras preguntas en las etiquetas