Por lo que deduzco, la clave AES se carga en el chip. Y también puede haber una verificación CR232 en el firmware o un conjunto de fusibles OTP
Esto no significa que no pueda ser pirateado, si le dedicas tiempo. Verificaría si los pines JTAG se han deshabilitado y comenzaré desde allí.
7.1 Caso de uso de la línea de producción En la línea de producción de NXP, el OTP se probará y programará utilizando JTAG. En el modo de prueba, se accederá directamente al bloque de fusibles. Durante la programación, el VPP necesitará un voltaje más alto que en el caso de uso de la aplicación. Los datos escritos se verifican luego leyendo los fusibles (usando un voltaje bajo en VPP). El cliente también programará la OTP solo en la línea de producción, aquí se utilizará la programación DFU. Se puede cargar una imagen para programar bits seleccionados por el cliente en el dispositivo a través de USB.
7.2 El caso de uso de la aplicación es esencial para asegurarse de que el registro data_15 se actualice temprano durante la inicialización (por código de arranque), esto establecerá el nivel de seguridad. Se implementan cuatro niveles de seguridad en el diseño:
• Nivel 0: nada está protegido.
• Nivel 1: protegido con contraseña. En este nivel, el software puede habilitar JTAG después de la secuencia de contraseña (depende de la aplicación del cliente) configurando el bit 'JTAG_EN' en el registro OTP_con.
• Nivel 2: en este nivel, el acceso JTAG se puede habilitar utilizando un equipo de prueba especial. Usado por NXP solo para análisis de materiales devueltos.
• Nivel 3: JTAG está completamente deshabilitado y, por lo tanto, el chip está prácticamente bloqueado.
El cliente puede programar el nivel de seguridad del chip. Para el nivel 1, se debe establecer el bit de fusible 509. Para el nivel 2, se establecen los bits de fusible 509 y 510. Para el nivel 3, los bits fusibles 509, 510 y 511 están programados. Un caso especial será que el cliente desactive la escritura en los fusibles, pero dado que en la aplicación se conectará un bajo voltaje (para lectura) al VPP, la escritura no será posible de todos modos. Durante la aplicación normal, los fusibles ya se habrán programado en la línea de producción. Por lo tanto, quedan tres opciones: copiar los datos del fusible en los registros de datos, leer estos datos y configurar la protección contra lectura. El código de arranque copiará los datos del fusible en los registros de datos porque esto es necesario para la seguridad y DRM. Después de esto, los datos se pueden leer desde los registros de datos a través del bus APB0 (de acuerdo con la configuración de protección de lectura).
Editar: si la clave está realmente cargada, solo podrá cargar firmware personalizado si tiene la clave.