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.
la source
Réponses:
Il existe des entreprises spécialisées dans ce domaine. Atmel était l'un d'entre eux, également sécurisé à l'intérieur. Ils ont du matériel spécial qui peut répondre à vos besoins. Mais si vous voulez que cela fonctionne vraiment, soyez prêt à sécuriser toute la chaîne de leur entrepôt asic à votre installation de production avec des coffres et des gardes pour les codes de sécurité. Sinon, vous ne gagnerez que 1 000 $ pour une tentative de 10 000 $, alors que vous avez réellement besoin d'au moins 1 M $.
la source
Les chercheurs du MIT ont développé un moyen de brouiller le code mathématiquement, mais de garder le résultat identique. La seule façon dont la fonction s'exécute est de lui donner la bonne clé, qui peut être téléchargée de temps en temps.
Cela pourrait vous être utile: http://spectrum.ieee.org/computing/software/scrambled-code-keeps-software-safe
la source