Desarrollé hardware integrado comercialmente, utilizando Microchip dsPIC o procesadores similares.
El firmware que tengo es a veces muy complejo y costoso, y necesita ser pirata y manipular el hardware. Todas las protecciones básicas de software están ahí, pero por $ 500 - $ 1,000, el código hexadecimal se puede recuperar a través de varios servicios de sitios web extranjeros, incluso si hay fusibles de seguridad (que evitan la manipulación indebida). Después de eso, solo quedan unos pocos meses y el código puede modificarse mediante ingeniería inversa mediante un desensamblador, como IDA Pro.
¿Cómo puedo proteger un poco mejor el diseño del hardware (sin necesidad de protección militar)?
¿Puede recomendar otros procesadores no legibles, o tal vez una adición a mi diseño existente?
Todo lo que necesito es ocultar algunas funciones, no necesito todo el producto. Además, no es suficiente simplemente para ocultar los datos en la memoria externa segura, necesito ocultar una parte del programa.
Actualización (basado en muchos comentarios): Tengo dsPIC y 4 años de desarrollo a tiempo completo en firmware (me costaría bastante hacerlo desde cero):
1) Este producto ya se vende y los piratas informáticos tienen acceso si quieren
2) El NUEVO FIRMWARE no se ha lanzado todavía. Contiene código de 5kB que nadie de toda competencia tiene todavía. Necesito evitar que alguien lo obtenga fácilmente durante aproximadamente 12 meses después del lanzamiento
3) No hay presupuesto para ir muy exótico o complicado, tal vez $ 10 adicionales por producto, más o menos
4) ¿Una solución como la tarjeta SIM agregada podría hacer el truco?
5) La función para ocultar hace un cálculo muy complicado, no estándar, para descifrar / cifrar 16 bytes. Los procesos conocidos no pueden piratearlo en 1 año, la función es necesaria, por lo que quiero ocultarlo.
6) No me importa si es visible públicamente, cuando la solicitud se envía a un hardware 'oculto' o si la respuesta es públicamente visible. Solo necesita ocultar el proceso de cálculo y no puede estar dentro del procesador dsPIC.