Há um ditado que diz que pessoas inteligentes nem sempre terminam a corrida em primeiro lugar. Na faculdade, lembro-me de alguns colegas copiando meus trabalhos, apenas para acabarem obtendo notas melhores do que as minhas. Ser inteligente não necessariamente me garantia as melhores notas na faculdade e assistir outros alcançarem sucesso com base nas minhas ideias se tornou desmotivador.
O mundo dos negócios é similar; não é incomum que empresas copiem conceitos que funcionam bem para seus concorrentes e os usem para dominar o mercado. Embora eticamente questionável, designs falsificados são na verdade bastante comuns. Como engenheiro de design, é meu trabalho tornar a falsificação do meu design o mais difícil possível.
À parte de cobrir toda a PCB em epóxi, tentei todos os truques possíveis. Isso inclui usar EEPROM de ID único (memória somente de leitura programável e apagável eletricamente) para tornar impossível duplicar uma cópia exata do meu hardware e fazê-lo operacional. Ao incluir EEPROM de ID único no seu sistema embutido, você também pode se preparar para o pior cenário e prevenir a falsificação de design.
Uma EEPROM é um tipo de memória não volátil útil para armazenar pequenos tamanhos de dados. Geralmente, ela é conectada a um microcontrolador via Circuito Integrado Inter-Integrado (I2C) ou Interface Periférica Serial (SPI). A EEPROM está presente no cenário eletrônico há décadas e é usada para armazenar parâmetros como valores de configuração.
Uma EEPROM de ID Único é uma EEPROM que carrega um ID não apagável. O comprimento do ID Único varia de 32 bits a 128 bits, dependendo do fabricante. Teoricamente, não há possibilidade realista de duas EEPROM compartilharem o mesmo ID. Isso é semelhante ao conceito de um endereço único de Controle de Acesso ao Meio (MAC) para seus dispositivos capazes de acessar a internet.
Em um sistema embutido totalmente desprotegido, modelos falsificados podem ser facilmente criados por engenharia reversa da PCB e extração do firmware do microcontrolador. Claro, mesmo com recursos de proteção de código ativados, duplicar o firmware ainda pode ser possível, embora mais desafiador.
Incluir uma EEPROM de ID Único no seu projeto e implementar procedimentos de verificação no firmware ajuda a prevenir a contrafação em massa. É assim que eu implemento isso nos meus sistemas embutidos:
Crie um firmware simples que leia o ID único da EEPROM e o salve em um arquivo dentro de um Cartão SD. Este firmware é programado apenas para recuperar o ID único e será substituído pelo firmware da aplicação real mais tarde.
Verifique contra o ID Único para evitar que programas falsificados sejam carregados.
Em seguida, crie uma função especial no firmware da aplicação para extrair o ID único do arquivo e escrever o valor na memória Flash interna do microcontrolador. O microcontrolador então precisa deletar o arquivo salvo no cartão SD, após armazená-lo de forma segura.
No firmware da aplicação real, crie uma função que verifica o ID único da EEPROM na PCB com um ID da EEPROM codificado na memória Flash do microcontrolador. Isso permite que apenas o firmware compilado com o ID único codificado correto funcione em uma PCB específica.
Assim como em qualquer design, segurança e conveniência estão sempre em extremos opostos do espectro. A viabilidade do seu método de proteção contra falsificação depende da natureza das suas aplicações e do impacto projetado da falsificação no seu negócio.
A vantagem óbvia da verificação de ID único é que seu sistema embutido não pode ser falsificado em massa. Mesmo que o firmware seja extraído, injetá-lo em múltiplas PCBs não resultará em nenhum dos dispositivos se tornando operacional. A não ser que se consiga fazer o microcontrolador se autodestruir, esta é a medida de proteção mais segura que já implementei.
O lado negativo deste método é que a produção será um processo muito mais lento, pois isso envolve baixar firmware de extração de ID único e usar um cartão SD. Após o ID único ser salvo, o técnico de produção precisaria injetar o firmware da aplicação. Além disso, EEPROMs de ID Único geralmente são mais caros do que seus equivalentes regulares.
Espera-se um processo longo, mas seguro, de injeção de firmware.
Se as consequências da falsificação são uma grande preocupação para o seu negócio, colocar um EEPROM com ID único é a melhor maneira de proteger o seu design. Isso é simples de configurar usando um software de design de PCB versátil como o Altium Designer®. Se um EEPROM com ID único não estiver prontamente disponível no integrado, você pode facilmente criar um usando um footprint padrão.
Precisa de mais dicas sobre como proteger o design dos seus sistemas embutidos contra falsificação?