microprocessador incorporado à prova de violações

8

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.

EmbeddedGuy
fonte
1
user1831847: que realmente não funciona, consulte a pergunta e US $ 1.000 (Eu testemunhei isso sozinho com meu próprio código de segurança)
EmbeddedGuy
2
Então, como você sabe, não é tão fácil - mesmo em microprocessadores que são 'seguros'. Se você usar recursos suficientes, praticamente qualquer coisa pode ser quebrada. Pelo menos se você contratar um terceiro, você sempre pode processá-los se der errado;)
JIm Dearden
2
@ Jim Dearden 2ª regra, segurança pela obscuridade não é segurança. Contratar um especialista seria uma boa idéia. Cara. A segurança nunca é absoluta; sempre é um fator de tempo e dinheiro. Você pode nos dar uma pista do nível de proteção que procura nesses termos.
RoyC 12/02
2
Se você não tem algo como autenticação on-line, acho que você é basicamente SOL. Como você diz, é barato o suficiente para quebrar proteções simples (elas podem remover o encapsulamento e usar várias técnicas para desativar, ignorar ou religar as proteções, se nada mais fácil funcionar). Você pode tentar o SE de segurança. Se o seu produto for bom, ele será copiado e, mesmo que você possa proteger o firmware, quão difícil seria realmente reescrevê-lo? Muito do custo está na determinação de especificações e assim por diante, que a copiadora não precisa fazer.
Spehro Pefhany
1
E os vários sistemas de cartões inteligentes?
Pjc50

Respostas:

1

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.

Gregory Kornblum
fonte
Eu ouço o que você quer dizer. US $ 1 milhão é aceitável se o produto for vendido por US $ 10 milhões / ano, o que não é o meu caso. Mas o hardware seguro, sem cofres e guardas, pode ser suficiente. Eu só preciso de um pequeno tipo de CPU para essa segurança extra de cálculo.
EmbeddedGuy
Em seguida, disparar os guardas :)
Gregory Kornblum
Com base na sua atualização, ligue para o seguro.
Gregory Kornblum
Gregory: Desculpe, eu não entendo o que você quer dizer com "dentro seguro"
EmbeddedGuy
1
insidesecure.com
Christian
1

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

Voltage Spike
fonte
Embora ainda não seja uma solução prática, obrigado por uma interessante leitura educacional.
EmbeddedGuy