Desenvolvo hardware embarcado comercialmente, usando Microchip dsPIC ou processadores similares.
Às vezes, o firmware que tenho é muito complexo e caro, e precisa ser à prova de hackers e adulterações em hardware. Todas as proteções básicas de software estão lá, mas por US $ 500 - US $ 1.000, o código hexadecimal pode ser recuperado através de vários serviços de sites estrangeiros, mesmo se houver fusíveis de segurança (impedindo apenas violações não determinadas). Depois disso, são apenas alguns meses e o código pode sofrer engenharia reversa usando o desmontador, como o IDA Pro.
Como posso proteger um pouco melhor o design do hardware (sem necessidade de proteção militar)?
Você pode recomendar outros processadores não legíveis, ou talvez uma adição ao meu design existente?
Tudo o que preciso é ocultar algumas funções, não preciso de todo o produto. Além disso, não basta apenas ocultar dados na memória externa segura, preciso ocultar um pedaço de programa.
Atualização (com base em muitos comentários): Eu tenho dsPIC e 4 anos de desenvolvimento em tempo integral no firmware (seria necessário um grande esforço para fazê-lo do zero de outra maneira):
1) Este produto já vende e hackers têm acesso, se quiserem
2) O NOVO FIRMWARE ainda não foi lançado. Contém código de 5kB que ninguém de toda a concorrência ainda possui. Preciso impedir que alguém o obtenha facilmente por cerca de 12 meses após o lançamento
3) Não há orçamento para ser muito exótico ou complicado, talvez US $ 10 por produto, mais ou menos
4) Uma solução como o cartão SIM adicionado pode ajudar?
5) A função ocultar faz cálculos muito complicados, fora do padrão, para descriptografar / criptografar 16 bytes. Processos conhecidos não podem invadir em 1 ano; a função é necessária, e é por isso que eu quero ocultá-la.
6) Não me importo se é visível publicamente, quando a solicitação é enviada para o hardware 'oculto' ou se a resposta é visível publicamente. Só é necessário ocultar o processo de cálculo e não pode estar dentro do processador dsPIC.
fonte
Respostas:
Existem empresas especializadas nisso. Atmel era um deles, também por dentro seguro. Eles possuem hardware especial que pode atender às suas necessidades. Mas se você quiser que realmente funcione, esteja preparado para proteger toda a cadeia do depósito ASIC até sua instalação de produção com cofres e proteções para os códigos de segurança. Caso contrário, você ganhará apenas US $ 1 mil por tentativa de US $ 10 mil, enquanto realmente precisará de US $ 1 milhão.
fonte
Pesquisadores do MIT desenvolveram uma maneira de embaralhar o código matematicamente, mas mantêm a saída igual. A única maneira de executar a função é se você der a chave correta, que poderá ser baixada periodicamente.
Isso pode ser útil para você: http://spectrum.ieee.org/computing/software/scrambled-code-keeps-software-safe
fonte