Analyse sécurité du Trezor wallet (Attaque du code PIN)

Trezor est un portefeuille matériel open source. Il a été créé par la société SatoshiLabs de république tchèque. Trezor a développé deux produits différents :

  • Le Trezor One (le modèle principal de la société)
  • Le Trezor model T

Fonctionnement d’un portefeuille physique cryptomonnaie

Pour rappel voici un schéma du fonctionnement d’un portefeuille physique cryptomonnaie.

fonctionnement portefeuille cryptomonnaie ledger

Le Mnemonics est la suite de 24 mots qui vous permet de récupérer vos cryptomonnaies lorsque vous perdez votre portefeuille. Lors de l’initiation de celui-ci le Mnemonics va être dérivé pour créer ce que l’on appelle un seed. C’est une valeur cryptographique qui va nous permettre de créer notre couple de clé privée et publique.

Utilité des clés publiques et privées

La clé publique est l’adresse à laquelle vous recevez vos cryptomonnaies. La clé privée vous permet d’accéder à vos cryptomonnaies (prouve que vous êtes le propriétaire).

Le Trezor One vu de l’intérieur

Le Trezor One est basé sur un processeur STM32. La couche cryptographique a été implémentée de façon logiciel et non matériel. Vous pouvez la retrouver sur le github de Trezor.

Trezor One intérieur

Objectif de l’analyse sécurité

L’analyse sécurité présenté dans cet article a été réalisé par l’équipe « Ledger Donjon » qui est l’équipe de sécurité de la société Ledger. Ils ont voulu tester le niveau de sécurité du Trezor One contre des attaques de type Side Channel Attack. Ils se sont focalisés sur l’authentification par PIN et sur la signature ECDSA (signature des transactions cryptomonnaies).

Qu’est-ce que le Side Channel Attack ?

Le Side Channel Attack est une attaque physique qui consiste à observer et exploiter une dépendance entre une grandeur physique que on peut observer. Par exemple :

  • La consommation de courant du circuit
  • L’émanation électromagnétique
  • Le temps de calcul

Et les données sensibles que l’appareil est entrain de manipuler tel que le PIN, la clé privée…

Schémas Side Channel Attack par ledger donjon

Comment ont-ils fait en pratique ?

Dans un premier temps ils ont ouvert le Trezor One et ont branché directement les composants qui traitent l’information sur un oscilloscope. L’oscilloscope est un appareil permettant de mesurer et de visualiser les signaux électriques. Il est relié à un ordinateur pour gérer le traitement des informations.

Oscilloscope Side Channel Attack par ledger donjon

La sécurité du code PIN

La sécurité du code PIN est primordial, grâce à elle il est possible d’accéder aux cryptomonnaies contenues sur le portefeuille physique. Elle peut être analysée dans un premier temps en lisant le code de Trezor.

Sécurité code PIN Trezor One

Chaque chiffre (PIN) soumis par l’utilisateur va être comparé successivement aux valeurs contenues en mémoire. Ce qui a permis à l’équipe Ledger Donjon de pouvoir les attaquer en parallèle (stratégie de « diviser et conquérir »). De plus un commentaire dans le code indique une protection contre l’attaque par temps. Les analystes ont donc regardé la consommation du courant lors de la comparaison.

Première phase : l’apprentissage

La première phase est l’apprentissage, il s’agit de comprendre comment le PIN manipulé par le Trezor One, impact la consommation de courant.

Analyse courant Trezor One code PIN

Ils ont créé alors un grand dictionnaire de correspondance entre les valeurs entrées par l’utilisateur, les valeurs stockées et leur trace de courant.

Ils ont dû aussi savoir à quel moment le PIN est manipulé.

Analyse courant Trezor One code PIN temps

En jaune on peut voir la manipulation du premier PIN, en vert le second, en rouge le troisième et en violet enfin le quatrième et dernier PIN.

Phase de matching

L’équipe à ensuite réalisé l’attaque sur un nouveau Trezor dont ils ne connaissaient pas le code PIN. Une contrainte supplémentaire a été ajoutée, ne pas tester plus de 16 codes PIN différents. En effet pour le Trezor One après 16 codes invalides celui-ci se bloque.

Les résultats sont les suivants. Pour retrouver le code valide pour accéder aux cryptomonnaies, il leur a été nécessaire d’avoir 11 tentatives.

Résumé attaque sur code pin par ledger donjon

Cependant ils se sont aperçus qu’il était possible de faire mieux en modifiant la phase d’apprentissage. En effet ils ont constaté que le pin 5555 leur donnait un maximum d’informations et leur permettait d’obtenir le code PIN à partir de 4,8 tentatives en moyenne.

Réaction de Trezor

La réaction de Trezor suite à la divulgation de cette information a été rapide. En effet ils ont modifié le code du Trezor One en ajoutant des valeurs aléatoires en plus du PIN lors de la manipulation de celui-ci. De plus ils ont ajouté des fonctions cryptographiques non réversible pour empêcher un attaquant de réaliser cette attaque.

Conclusion

Pour conclure nous avons eu la chance de pouvoir échanger avec des membres de l’équipe sécurité du Ledger Donjon. Ce sont des passionnés avec de très bonnes compétences dans les attaques sur de tel produit. Ce qu’il faut savoir c’est qu’ils testent régulièrement la sécurité des Ledger nano S et nano X.

Leur optique est vraiment d’avoir des produits sécurisés disponible pour le grand publique.

Laisser un commentaire

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