- Qual é a melhor maneira de proteger o código em qualquer dispositivo baseado em AVR contra engenharia reversa?
- Qual é uma maneira fácil de fornecer atualizações para os usuários finais piscarem por conta própria sem divulgar o código? (É com um carregador de inicialização que descriptografa uma imagem criptografada?)
Não me chame por promover o DRM, sou a favor de plataformas abertas - só estou curioso para saber como isso funcionaria.
arduino
avr
encryption
reverse-engineering
stbtra
fonte
fonte
Respostas:
Primeiro:
Existem fusíveis no chip que podem ser configurados para impedir que ferramentas externas leiam o código do chip. Procure os fusíveis de proteção na folha de dados e / ou na documentação do programador.
Não é perfeito, mas protege você contra ataques simples.
Segundo:
Você não pode baixar o firmware com segurança. O AVR não pode auto-programar áreas protegidas:
http://www.atmel.com/dyn/resources/prod_documents/doc1644.pdf
O melhor que você pode fazer é usar uma linguagem de token criptografada (como básica ou mais) e proteger o intérprete no chip com um gerenciador de inicialização que pode programar os tokens criptografados em uma área aberta. Durante a execução, o chip descriptografaria e executaria as instruções rapidamente.
fonte
Se isso é importante e você está particularmente preocupado com os concorrentes que roubam seu código, adquira proteção IP em seus segmentos de código. Você deve analisar isso se quiser tentar ganhar dinheiro com um projeto de qualquer maneira.
Certos elementos do código podem ser patenteados (para métodos de processamento específicos e novos algoritmos) ou registrados como desenhos industriais (a aparência, o layout e a aplicação do seu código em um dispositivo). Você pode consultar um advogado de PI sobre isso.
fonte
Se você escreveu seu próprio carregador de inicialização que aceitou dados criptografados pela porta serial, descriptografou-os e os armazenou na área de armazenamento de código, você pode ter uma atualização segura do firmware do código. Cada dispositivo pode até ter sua própria chave de descriptografia exclusiva no seu carregador de inicialização personalizado.
fonte