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.
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.
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…
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.
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.
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.
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é.
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.
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.