microprocesseur intégré inviolable

8

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.

EmbeddedGuy
la source
1
user1831847: cela ne fonctionne pas vraiment, voir la question et 1000 $ (j'en ai moi-même été témoin avec mon propre code sécurisé)
EmbeddedGuy
2
Ensuite, comme vous le savez, ce n'est pas si simple - même sur des microprocesseurs qui sont «sécurisés». Si vous y jetez suffisamment de ressources, à peu près tout est fissurable. Au moins, si vous engagez un tiers, vous pouvez toujours le poursuivre en cas de problème;)
JIm Dearden
2
@Jim Dearden 2e règle, la sécurité par l'obscurité n'est pas une sécurité. L'embauche d'un spécialiste serait cependant une bonne idée. Gars. La sécurité n'est jamais absolue, elle est toujours un facteur de temps et d'argent. Pouvez-vous nous donner un indice sur le niveau de protection que vous recherchez en ces termes.
RoyC
2
Si vous n'avez pas quelque chose comme l'authentification en ligne, je pense que vous êtes à peu près SOL. Comme vous le dites, c'est assez bon marché pour briser les protections simples (ils peuvent supprimer l'encapsulation et utiliser diverses techniques pour désactiver, contourner ou recâbler les protections si rien de plus simple ne fonctionne). Vous pouvez essayer la sécurité SE. Si votre produit est bon, il sera copié, et même si vous pouviez sécuriser le firmware, à quel point serait-il vraiment difficile de le réécrire? Une grande partie du coût consiste à déterminer les spécifications et ainsi de suite que le copieur n'a pas besoin de faire.
Spehro Pefhany
1
Qu'en est-il des différents systèmes de cartes à puce?
pjc50

Réponses:

1

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 $.

Gregory Kornblum
la source
J'entends ce que tu veux dire. 1 M $ est acceptable si le produit se vend 10 M $ / an, ce qui n'est pas mon cas. Mais le matériel sécurisé sans chambres fortes et gardes pourrait suffire. Je n'ai besoin que d'un petit type de CPU pour cette sécurité de calcul supplémentaire.
EmbeddedGuy
Ensuite,
Gregory Kornblum
Basé sur votre mise à jour - appelez à l'intérieur sécurisé.
Gregory Kornblum
Gregory: Désolé, je ne comprends pas ce que vous entendez par "à l'intérieur sécurisé"
EmbeddedGuy
1
insidesecure.com
Christian
1

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

Pic de tension
la source
Bien que ce ne soit pas encore une solution pratique, merci pour une lecture éducative intéressante.
EmbeddedGuy