Il y a un dicton qui dit que les personnes intelligentes ne finissent pas toujours premières dans la course. À l'université, je me souviens que certains de mes camarades copiaient mes devoirs, pour finir par obtenir de meilleures notes que moi. Être intelligent ne me garantissait pas nécessairement les meilleures notes à l'université et voir les autres réussir sur la base de mes idées devenait démoralisant.
Le monde des affaires est similaire ; il n'est pas rare que les entreprises copient des concepts qui fonctionnent bien pour leurs concurrents et les utilisent pour dominer le marché. Bien que cela soit éthiquement discutable, les conceptions contrefaites sont en réalité assez courantes. En tant qu'ingénieur concepteur, mon travail consiste à rendre la contrefaçon de mon design aussi difficile que possible.
À défaut de recouvrir entièrement le PCB d'époxy, j'ai essayé toutes les astuces possibles. Cela inclut l'utilisation d'un EEPROM ID unique (mémoire morte programmable effaçable électriquement) pour rendre impossible la duplication exacte de mon matériel et le rendre opérationnel. En incluant un EEPROM ID unique dans votre système embarqué, vous pouvez également vous préparer au pire scénario et empêcher la contrefaçon de conception.
Un EEPROM est un type de mémoire non volatile utile pour stocker de petites quantités de données. Il est généralement connecté à un microcontrôleur via Inter-Integrated Circuit (I2C) ou Serial Peripheral Interface (SPI). L'EEPROM existe dans le domaine de l'électronique depuis des décennies et est utilisé pour stocker des paramètres comme les valeurs de configuration.
Un EEPROM à ID Unique est un EEPROM qui porte un ID non effaçable. La longueur de l'ID Unique varie de 32 bits à 128 bits, selon le fabricant. Théoriquement, il n'y a pas de possibilité réaliste que deux EEPROM partagent le même ID. Cela est similaire au concept d'une adresse Media Access Control (MAC) unique pour vos appareils capables de se connecter à Internet.
Dans un système embarqué totalement non protégé, il est facile de créer des modèles contrefaits en rétro-ingénierie du PCB et en extrayant le firmware du microcontrôleur. Bien sûr, même avec les fonctionnalités de protection du code activées, dupliquer le firmware peut encore être possible, bien que plus difficile.
Inclure un EEPROM à ID Unique dans votre conception et mettre en œuvre des procédures de vérification dans le firmware aide à prévenir la contrefaçon en masse. Voici comment je l'implémente dans mes systèmes embarqués :
Créez un firmware simple qui lit l'ID unique depuis l'EEPROM et l'enregistre dans un fichier sur une carte SD. Ce firmware est uniquement programmé pour récupérer l'ID unique et sera remplacé plus tard par le firmware d'application réel.
Vérifiez par rapport à l'ID unique pour empêcher le chargement de programmes contrefaits.
Ensuite, créez une fonction spéciale dans le firmware d'application pour extraire l'ID unique du fichier et écrire la valeur dans la mémoire Flash interne du microcontrôleur. Le microcontrôleur doit ensuite supprimer le fichier enregistré sur la carte SD, après l'avoir stocké de manière sécurisée.
Dans le firmware d'application réel, créez une fonction qui vérifie l'ID unique de l'EEPROM sur le PCB avec un ID EEPROM encodé en dur dans la mémoire Flash du microcontrôleur. Cela permet uniquement au firmware compilé avec le bon ID unique encodé en dur de fonctionner sur un PCB particulier.
Comme pour tout design, sécurité et commodité se trouvent toujours aux extrémités opposées d'un spectre. La viabilité de votre méthode de protection contre la contrefaçon dépend de la nature de vos applications et de l'impact projeté de la contrefaçon sur votre entreprise.
L'avantage évident de la vérification d'ID unique est que votre système embarqué ne peut pas être contrefait en masse. Même si le firmware est extrait, l'injecter dans plusieurs PCBs ne rendra aucun des dispositifs opérationnels. À moins de faire s'autodétruire le microcontrôleur, c'est la mesure de protection la plus sécurisée que j'ai jamais mise en œuvre.
L'inconvénient de cette méthode est que la production sera un processus bien plus lent, car cela implique de télécharger un firmware d'extraction d'ID unique et d'utiliser une carte SD. Après que l'ID unique est sauvegardé, le technicien de production devra injecter le firmware d'application. De plus, les EEPROMs d'ID uniques sont généralement plus chers que leurs homologues réguliers.
Attendez-vous à un processus long mais sécurisé d'injection de firmware.
Si les conséquences de la contrefaçon sont une préoccupation majeure pour votre entreprise, placer une EEPROM avec un identifiant unique est le meilleur moyen de protéger votre conception. Cela est simple à mettre en place en utilisant un logiciel de conception de PCB polyvalent comme Altium Designer®. Si une EEPROM avec un identifiant unique n'est pas facilement disponible dans l'intégré, vous pouvez facilement en créer une en utilisant un empreinte standard.
Besoin de plus de conseils pour protéger votre conception de systèmes embarqués contre la contrefaçon ?