Pelo que eu recolho, a chave AES é carregada no chip. E também pode haver uma verificação CR232 no firmware ou nos fusíveis OTP configurados
Isso não significa que não pode ser hackeado, se você dedicar algum tempo. Gostaria de verificar se os pinos JTAG foram desativados e começar a partir daí.
7.1 Caso de uso da linha de produção Na linha de produção NXP, o OTP será testado e programado usando JTAG. No modo de teste, o próprio bloco de fusíveis será acessado diretamente. Durante a programação, o VPP precisará de uma tensão mais alta do que no caso de uso do aplicativo. Os dados gravados são verificados posteriormente, lendo os fusíveis (usando uma baixa tensão no VPP). O cliente também programará o OTP somente na linha de produção, aqui a programação DFU será usada. Uma imagem para programar bits selecionados pelo cliente pode ser carregada no dispositivo via USB.
7.2 Caso de uso do aplicativo nitialmente, é importante garantir que o registro data_15 seja atualizado cedo durante a inicialização (por código de inicialização), isso definirá o nível de segurança. Quatro níveis de segurança são implementados no design:
• Nível 0: nada está protegido.
• Nível 1: protegido por senha. Nesse nível, o JTAG pode ser ativado pelo software após a sequência de senha (depende da aplicação do cliente), configurando o bit adesivo 'JTAG_EN' no registro OTP_con.
• Nível 2: neste nível, o acesso JTAG pode ser ativado usando equipamento de teste especial. Usado pelo NXP apenas para análise de material devolvido.
• Nível 3: o JTAG está completamente desativado e, portanto, o chip está praticamente bloqueado.
O cliente pode programar o nível de segurança do chip. Para o nível 1, o bit de fusível 509 deve ser definido. Para o nível 2, os bits de fusível 509 e 510 estão definidos. Para o nível 3, os bits de fusível 509, 510 e 511 são programados. Um caso especial será para o cliente desativar a gravação nos fusíveis, mas como na aplicação uma baixa tensão (para leitura) será conectada ao VPP, a gravação não será possível de qualquer maneira. Durante a aplicação normal, os fusíveis já foram programados na linha de produção. Portanto, restam três opções: copiar os dados do fusível nos registradores de dados, ler esses dados e definir a proteção de leitura. O código de inicialização copiará os dados do fusível nos registradores de dados, porque isso é necessário para segurança e DRM. Depois disso, os dados podem ser lidos nos registros de dados através do barramento APB0 (de acordo com as configurações de proteção de leitura).
Editar: se a chave estiver realmente carregada, você só poderá carregar o firmware personalizado se tiver a chave.