Comprendre lauthentification avec ATSHA204A

Étant donné que de nombreuses entreprises chinoises peuvent facilement rétroconcevoir la conception du PCB et extraire le fichier .hex des microcontrôleurs (même à partir de le flash sécurisé), les développeurs embarqués doivent ajouter une protection supplémentaire à leurs produits. Dans mon cas, jutilise un STM32F103 et je souhaite ajouter le crypto IC ATSHA204A sur mon PCB pour protéger mon IP. En faisant cela, jespère même sils peuvent extraire le .hex du MCU et cloner la carte, le fichier hex refusera de fonctionner sil ne peut pas reconnaître la puce cryptographique sur le PCB.

Ce crypto IC a un numéro de série unique qui a été écrit lors de sa fabrication et peut toujours être lu. Il dispose également de certaines fonctionnalités telles quune zone sécurisée pour garder certaines données secrètes, la possibilité de générer des nombres aléatoires et de les envoyer à lhôte via I2C ou un fil, la capacité de calculer le hachage SHA-256 dune chaîne donnée, etc.

Maintenant, jessaie de comprendre comment je dois travailler avec car je suis une sorte de noob sur le sujet de lauthentification. Daprès ce que jai compris à la lecture de la fiche technique, le flux de travail sera comme ceci:

Personnalisation du crypto IC:

  1. La zone sécurisée dans le crypto la puce sera remplie par lhôte (STM32F103 dans mon cas) avec une clé secrète aléatoire pour chaque produit, une seule fois.

  2. La clé secrète sera également présente dans le flash de lhôte mémoire.

Authentification de la carte (Ma compréhension, ce qui est probablement faux):

  1. Lhôte demande un nombre aléatoire du crypto-IC. Ensuite, lhôte génère une chaîne concaténée avec la clé secrète et le nombre aléatoire (nonce?), Et calcule le hachage SHA-256 de celui-ci.

  2. Lhôte doit maintenant envoyer le la clé aléatoire retour au crypto-IC et attendez delle quelle génère la même chaîne avec la clé secrète à lintérieur du crypto-IC et calcule le hachage SHA-256 de celui-ci.

  3. Crypto-IC renvoie le hachage calculé à lhôte et lhôte compare les hachages.

  4. Si les hachages correspondent, validez. Sils ne le font pas, lhôte refuse de travailler.

Le flux de travail est probablement erroné, mais lidée principale devrait en être proche. Quelquun peut-il lexpliquer?

Réponse

Le flux de travail est probablement faux, mais lidée principale devrait être quelque chose qui sen rapproche.

Non, cest fondamentalement inutile. Ce serait bien si vous utilisiez votre crypto IC par exemple pour valider lauthenticité de un périphérique complémentaire (par exemple, une imprimante vérifiant que la cartouche a été fabriquée par la même société).

Cela ne vous aide pas vous , car " refuse de travailler " ne « volera pas si quelquun a le code machine de votre firmware »: trouver la vérification dans le code machine démonté nest généralement pas que difficile. Ensuite, cela revient à remplacer un " sauter à « arrêter et ne rien faire » " par un " sauter à « démarrer des fonctionnalités utiles « "; généralement, cela implique de changer un octet.

Vous devez crypter la partie intéressante de votre firmware dans le stockage permanent (généralement, la mémoire flash intégrée du MCU). Seul un chargeur de démarrage qui utilise la puce cryptographique décrypter le micrologiciel principal resterait non chiffré. Au démarrage, le chargeur de démarrage déchiffre le micrologiciel en RAM.

Petit problème: il faudrait être assez intelligent, au niveau matériel, pour quon ne puisse pas « t il suffit de connecter un analyseur logique entre votre MCU et le crypto IC et de renifler les octets décryptés.

Il existe des solutions de contournement qui obscurcissent les choses en sautant sauvagement en mémoire tout en décryptant des trucs, etc. Le problème est quil ny a rien secret à ce sujet, cest juste un peu plus de travail pour comprendre comment le saut se fait à partir du code machine. (Et si vous parvenez à insérer un seul morceau de code machine sur ce bus qui fait que le MCU diffuse toute sa RAM via une broche, alors le jeu est terminé aussi; cela na pas vraiment dimportance pour vous de savoir où ce morceau de code finit dans la RAM, vous le trouverez plus tard dans le dump, il est seulement important quil soit exécuté à un moment donné.)

En dautres termes, si vous pensez vraiment à votre firmware est cela commercialement intéressant (les gens surestiment énormément ça! Pour les choses qui ne sont pas principalement des micrologiciels, comme pour tout appareil grand public et tout contrôle industriel, il est généralement difficile de trouver toutes les pièces et de construire le appareil identique / similaire moins cher que loriginal, et réécrire complètement le firmware est souvent facile par rapport à cela), alors votre seule chance est dintégrer la conservation du secret, le stockage crypté et lexécution sécurisée (de sorte que le vidage de RAM est impossible).

Il y a des microcontrôleurs qui font ça. Ils sont généralement un peu plus chers.Mais, comme vous pouvez le deviner, si vous êtes, par exemple, dans un environnement de défense où vous devez certifier que le micrologiciel ne peut pas être falsifié, eh bien, cest la voie à suivre.

Nintendo fabrique des appareils où lincitation financière à ne laisser personne lire son firmware ou même le modifier est forte:
Lincapacité des utilisateurs à exécuter un logiciel qui na pas été licencié par Nintendo sur leurs consoles est essentielle à leur modèle commercial. Par conséquent, il est primordial de ne pas pouvoir contourner la vérification des signatures du jeu, et cest pourquoi une Nintendo Switch fait tout son possible avec plusieurs couches de protection. Comme vous pouvez le deviner, ce nest pas une garantie – il y avait simplement des amateurs (pas même des personnes ayant un intérêt criminel / commercial!) Qui ont trouvé un moyen de contourner ce problème.

Mais vous remarquerez une chose: ce nest pas parce quil est difficile de faire la perfection que cela ne vaut pas la peine, ce qui rend plus difficile le clonage de votre appareil. Daprès mon humble expérience, les cloneurs capitulent généralement dès que vous aurez besoin de comprendre comment fonctionne un appareil pour le copier – sinon, ils seraient en mesure davoir des ingénieurs qui pourraient faire votre travail, plus ou moins, et ces ingénieurs travaillent généralement dans votre secteur, pas dans un laboratoire de contrefaçon. Un bon moyen de dissuasion, par conséquent, est de mettre le micrologiciel chiffré dans la mémoire flash. Ce n’est pas parfait, mais au moment où ils devront sortir l’analyseur logique et passer des semaines à faire de la rétro-ingénierie de votre le protocole de décryptage dans la RAM, juste pour obtenir quelque chose quils pourraient être capables de copier, pourrait être suffisant pour quils considèrent le risque financier trop élevé et opter pour autre chose.

Commentaires

  • " les gens surestiment largement que ", mais les gens surestiment tout aussi sauvagement le coût de la rétro-ingénierie.
  • Merci pour la bonne réponse, je ne peux pas voter pour ne pas avoir assez de réputation. Oui, il est ' quasiment impossible de le sécuriser à 100%, mais l’ajout d’une mesure de sécurité très simple avec une puce cryptographique de 0,3 USD pourrait augmenter le coût de la rétro-ingénierie de quelque 3 chiffres à peut-être 5 chiffres, tout en augmentant le temps requis de quelques jours à quelques mois si la sécurité est conçue de manière suffisamment intelligente. Et cela pourrait repousser les hackers (selon le potentiel financier du produit) Je pense que je vais passer à autre chose en chiffrant la " partie intéressante " du micrologiciel principal.
  • Je ' vais réduire votre estimation à " en augmentant le temps dune heure à peut-être quelques jours ", et le coût n’est fondamentalement pas pertinent dans les deux cas. Le coût serait " essentiellement gratuit " pour quiconque ' se fait mentir les outils électroniques autour de toute façon, et même si ce nest pas le cas, 200 € plus un ordinateur portable vous donne un bon départ.
  • Puis-je abandonner et nutiliser aucune protection? 🙂
  • @NotReallyaMaster que ' dépend de vous; Jai ' consacré tout le dernier paragraphe de ma réponse à cette question.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *