Je développe du matériel embarqué commercialement, en utilisant Microchip dsPIC ou des processeurs similaires.
Le micrologiciel que j'ai est parfois très complexe et coûteux, et doit être protégé contre le piratage et la falsification du matériel. Toutes les protections logicielles de base sont là, mais pour 500 $ - 1000 $, le code hexadécimal peut être récupéré via plusieurs services de sites Web étrangers, même s'il y a des fusibles de sécurité (empêchant uniquement les falsifications non déterminées). Après cela, il ne reste que quelques mois et le code peut être reconstitué à l'aide d'un désassembleur, comme IDA Pro.
Comment puis-je protéger un peu mieux la conception matérielle (pas besoin de protection militaire)?
Pouvez-vous recommander un autre processeur non lisible, ou peut-être un ajout à ma conception existante?
Tout ce dont j'ai besoin c'est de cacher quelques fonctions, je n'ai pas besoin de tout le produit. De plus, il ne suffit pas de cacher des données dans une mémoire externe sécurisée, j'ai besoin de cacher un morceau de programme.
Mise à jour (basée sur de nombreux commentaires): J'ai dsPIC et 4 années de développement à temps plein sur le firmware (cela prendrait beaucoup d'efforts pour le faire à partir de zéro d'une autre manière):
1) Ce produit se vend déjà et les pirates y ont accès s'ils le souhaitent
2) Le NOUVEAU FIRMWARE n'est pas encore sorti. Contient un code de 5 Ko que personne de tous les concurrents n'a encore. Je dois empêcher quiconque de l'obtenir facilement pendant environ 12 mois après la sortie
3) Il n'y a pas de budget pour devenir très exotique ou compliqué, peut-être 10 $ supplémentaires par produit, plus ou moins
4) Une solution comme une carte SIM ajoutée pourrait faire l'affaire?
5) La fonction de masquage fait un calcul très délicat, non standard, pour décrypter / crypter 16 octets. Les processus connus ne peuvent pas le pirater en 1 an, la fonction est nécessaire, c'est pourquoi je veux le cacher.
6) Cela ne me dérange pas si elle est visible publiquement, lorsque la demande est envoyée à du matériel «caché» ou si la réponse est visible publiquement. Il suffit de masquer le processus qui le calcule et ne peut pas être à l'intérieur du processeur dsPIC.