Desarrollo hardware incorporado comercialmente, utilizando Microchip dsPIC o procesadores similares.
El firmware que tengo a veces es muy complejo y costoso, y debe ser a prueba de hackers y manipulaciones en el hardware. Todas las protecciones de software básicas 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 (evitando solo alteraciones no determinadas). Después de eso, son solo unos pocos meses y el código se puede realizar mediante ingeniería inversa con el desensamblador, como IDA Pro.
¿Cómo puedo proteger el diseño del hardware un poco mejor (sin necesidad de protección militar)?
¿Me 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 ocultar datos en una memoria externa segura, necesito ocultar un programa.
Actualización (basada en muchos comentarios): tengo dsPIC y 4 años de desarrollo a tiempo completo en el firmware (tomaría un gran esfuerzo hacerlo desde cero de otra manera):
1) Este producto ya se vende y los hackers tienen acceso si quieren
2) El NUEVO FIRMWARE aún no se ha lanzado. Contiene un código de 5kB que nadie de toda la competencia tiene todavía. Necesito evitar que alguien lo tenga fácilmente durante unos 12 meses después del lanzamiento
3) No hay presupuesto para ir muy exótico o complicado, quizás $ 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 hackearlo en 1 año, se necesita la función, por eso quiero ocultarlo.
6) No me importa si es públicamente visible, cuando la solicitud se envía al hardware 'oculto', o si la respuesta es públicamente visible. Solo necesita ocultar el proceso que lo calcula, y no puede estar dentro del procesador dsPIC.