séquences secrètes par le bruit du microphone

Génération de séquences secrètes par le bruit du microphone

Nous avons déjà vu que le moyen le plus sûr de conserver les bitcoin à long terme est d’utiliser un porte-monnaie électronique (hardware). Avec bitcoin, en fait, notre sécurité et notre privacy dépendent de nous, car nous n’avons plus besoin d’intermédiaire pour gérer nos biens et effectuer des transactions et nous avons donc les compétences nécessaires pour utiliser les bons outils pour gérer notre patrimoine.

Le porte-monnaie hardware est un dispositif électronique qui nous permet de gérer nos clés privées sans les exposer à l’extérieur. La majorité des dispositifs de ce type, de nos jours, sont de type déterministe hiérarchique (HD). Cela signifie que la clé privée principale est créée à partir d’une séquence ordonnée de 24 mots (mnémonique) qui constitue fondamentalement de manière déterministe ce qui nous permet à tout moment de reconstituer notre portefeuille et d’accéder à nos fonds (standard bip39).

Si nous perdons cette séquence ou si quelqu’un peut y accéder, alors nous perdons nos bitcoin. L’importance de cet élément est donc primordiale. Le hardware wallet nous permet de gérer ce secret cryptographique et de l’utiliser chaque fois que nous voulons effectuer une transaction ou consulter nos soldes.

Mais qui génère cette séquence secrète ?

En général, c’est notre propre dispositif matériel qui le génère pendant la phase d’initialisation (wallet initialization), la première fois que nous décidons de l’utiliser. Le dispositif va en effet générer cette séquence à partir du générateur d’aléas interne et il nous sera demandé d’en faire une copie de sauvegarde en l’écrivant sur un morceau de papier (la sequence des mots).

À ce moment-là, la séquence des 24 mots sera physiquement stockée dans un endroit sûr où personne ne pourra y accéder et dans le plus grand secret. Notre portefeuille gardera alors le secret cryptographique et l’utilisera pour signer les transactions sortantes.

Certains bitcoiners, parmi les plus compacts, sont convaincus qu’il est erroné d’attribuer toute la confiance au caractère aléatoire du dispositif matériel que nous utilisons. Ils disent que l’on ne peut pas faire confiance à la graine créée par l’appareil. En fait, l’esprit de bitcoin est toujours de “vérifier la confiance” (don’t trust, verify). Je suis d’accord avec ce principe.

Ainsi, on peut parfois décider de produire de manière autonome la séquence bip39 des 24 mots par le biais d’une source entropique souhaitée. Par exemple, certains le créent à partir de données, d’autres à l’aide de cartes, etc. Aujourd’hui, je veux vous montrer qu’elle peut également être obtenue à partir de l’entropie générée par le son d’un microphone. L’entropie générée par le bruit du microphone est de haute qualité et est bien meilleure que toute entropie informatique créée électroniquement.

Script de génération

J’ai réalisé un script qui, installé de préférence sur une distribution Linux offline, est capable d’enregistrer le bruissement du microphone de l’ordinateur (qui est totalement aléatoire), d’obtenir les données binaires de la numérisation de ce bruit, puis à partir de cela par la fonction de l’hash sha256 pour obtenir la représentation finale à 256bit de cette entropie.
Mon scénario, à la fin, utilise les 256 bits de cette entropie pour créer les 24 mots de la mnémonique selon la norme bip39. Ces 24 mots peuvent ensuite être utilisés pour initialiser notre appareil (quelle que soit la marque ou le modèle) et obtenir une graine (secret cryptographique) dont nous sommes sûrs du caractère aléatoire et dont nous sommes sûrs qu’aucune autre personne ne pourra jamais entrer en contact car elle est créée à partir d’un caractère aléatoire unique, généré par nous à cet instant. Il est évidemment très important que la séquence soit secrète depuis le moment où elle est générée jusqu’au moment où elle est insérée dans le dispositif matériel.

Le script a été créé en open-source et est disponible sur le dépôt public github: https://github.com/massmux/bip39gen

Le script a été créé pour ne pas utiliser de bibliothèque supplémentaire non standard, afin de pouvoir être utilisé sur la distribution “Tails”, par example. La distribution Tails est en fait idéale pour exécuter ce script, car elle contourne tout système d’exploitation sur l’ordinateur et fonctionne directement à partir du usbstick. Avant de lancer le script, il est cependant très important de désactiver le réseau pour éviter tout contact avec l’internet pendant la génération de la mnémonique.

J’espère que les informations que je vous ai données ici, et le script que j’ai créé, pourront vous aider à améliorer la connaissance du sujet et la sécurité de vos bitcoins lorsque vous irez les utiliser. Je reste à votre disposition et répondrai volontiers à vos demandes et commentaires.

Partager

Massimo Musumeci

Massimo Musumeci est physicien depuis 1997. Chercheur Bitcoin dans le domaine de la sécurité et confidentialité chez Denali Sàrl La Chaux-de-Fonds, Suisse.

Laisser un commentaire

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