Un dé standard à six faces génère environ 2,6 bits d'information imprévisible à chaque lancer. Cela peut ne pas sembler beaucoup, mais répété suffisamment de fois, ces lancers peuvent créer la randomité brute nécessaire pour sécuriser un wallet bitcoin sans recourir à un logiciel ou un composant électronique.
Points clés
- Un lancer de dé à six faces fournit environ 2,585 bits d'entropie, selon la formule de Claude Shannon.
- La documentation de Coinkite indiquait que 50 lancers de dés répondent à la norme 128 bits pour une graine de wallet bitcoin.
- L'analyse de Kevin Loaec sur Wizard Sardine a signalé un risque dans les outils Coldcard au-delà de la graine principale.
Pourquoi un lancer de dé est si difficile à prédire
Claude Shannon, le mathématicien qui a établi la théorie de l'information, a utilisé l'entropie pour mesurer l'incertitude d'un résultat. Avec un dé équilibré à six faces, chaque face a une chance égale d'une sur six d'apparaître. Cela donne environ 2,585 bits d'entropie à chaque lancer. Un lancer de pièce produit 1 bit, tandis qu'un dé à huit faces produit 3 bits.

Le récent incident Coldcard a propulsé la génération de seed basée sur des dés sur les réseaux sociaux. Certains utilisateurs la considèrent désormais comme essentielle, d'autres affirment qu'elle a protégé leurs fonds, tandis que les opérateurs expérimentés soulignent que la plupart des nouveaux venus n'accepteront pas un processus de configuration lent et sujette aux erreurs.
La partie importante n'est pas qu'un dé roulant se comporte de manière aléatoire au niveau atomique. Il ne le fait pas. Le résultat est régi par la physique, mais trop de petites variables changent en même temps pour que quelqu'un puisse calculer fiablement le résultat. Le dé quitte la main avec une certaine vitesse, angle, hauteur et rotation, puis frappe la table et change de direction à chaque rebond.
En pratique, même une minuscule modification dans le lancer peut produire un résultat complètement différent. Une position légèrement différente du doigt ou un lancer légèrement plus fort modifie suffisamment la trajectoire pour que le nombre final ne puisse pas être prédit en observant le mouvement. Le résultat peut être déterministe en théorie, mais pour la génération de wallet, ce qui compte, c’est qu’un attaquant ne puisse pas le reproduire ou le calculer.
Transformer les lancers de dés en données exploitables
Un ordinateur ne peut pas utiliser directement une liste de résultats de dés. Les lancers doivent d'abord être convertis en données binaires, et la méthode de conversion compte.
Une méthode de base impair-ou-pair est facile à comprendre, mais elle gaspille une grande partie de l'entropie disponible. Chaque lancer est réduit à un seul bit, bien que le dé produise environ 2,6 bits d'information. Des méthodes plus efficaces collectent une longue séquence de lancers et traitent l'ensemble de la chaîne, généralement via une fonction de hachage cryptographique. Cela préserve bien plus de la randomité.
Le même principe apparaît dans Diceware, une méthode éprouvée pour créer des phrases de passe sécurisées, ainsi que dans la génération manuelle de wallets bitcoin. Une phrase de récupération de wallet typique de 12 mots est construite à partir de 128 bits d'entropie. À environ 2,6 bits par lancer, environ 50 lancers équitables fournissent suffisamment d'informations brutes pour dépasser ce seuil.
Coinkite, le fabricant du portefeuille matériel Coldcard, recommande 99 rouleaux ou plus pour les utilisateurs recherchant près de 256 bits d'entropie. Cela ne rend pas le portefeuille deux fois plus difficile à utiliser, mais confère au secret généré une marge de sécurité mathématique bien plus importante.
Un test du monde réel des seeds générées par dés
Cette distinction est devenue importante après que Coinkite a révélé un problème de firmware remontant à 2021. Sur certains appareils Coldcard, le logiciel pouvait ignorer le générateur de nombres aléatoires matériels internes et utiliser à la place un processus plus faible lié à des informations non secrètes de l'appareil.
Étant donné que certaines parties de ce processus pouvaient être reconstituées, les attaquants ont pu réduire les clés de wallet possibles au lieu de rechercher dans tout l'espace des clés. Ce défaut a été lié au vol d'environ 1 128,6633 BTC à partir d'environ 1 100 adresses, au 13 h heure de l'Est.

Les semences de wallet créées entièrement à partir d'un nombre suffisant de lancers de dés indépendants n'ont pas été exposées via le même chemin. Ces utilisateurs avaient fourni leur propre entropie, donc le générateur matériel défectueux n'était pas responsable de la création du secret principal du wallet.
Cette protection, cependant, ne s'appliquait qu'à la seed générée à partir des dés. Elle ne protégeait pas automatiquement chaque autre secret généré par l'appareil.
Wizard Sardine examine les petits caractères
Le chercheur en sécurité Kevin Loaec a publié une évaluation de l'exploit Coldcard sur le site Web de Wizard Sardine le 1er août. Son observation la plus importante portait sur les fonctionnalités Coldcard qui génèrent leurs propres secrets séparément de la graine principale du wallet.
« Je crois qu’il est extrêmement important de souligner que même les utilisateurs ayant importé ou généré une phrase de récupération avec des dés sont vulnérables s’ils utilisent les fonctionnalités suivantes », Loaec a écrit sur X, avant de présenter un diagramme du système affecté.
Le diagramme montre le générateur de nombres aléatoires défectueux alimentant plusieurs fonctions secondaires de Coldcard. Celles-ci incluent la création de portefeuilles papier, le clonage de l'appareil, le chiffrement des sessions USB, la fonction de transfert Secret Teleport, la création de clés de co-signature, le générateur de mots de passe intégré et les codes d'authentification du module de sécurité matériel.

Un portefeuille principal créé avec 99 lancers de dés est resté dans une partie séparée du système. Le problème était que les autres outils pouvaient toujours demander une nouvelle aléatoire au générateur défectueux. En conséquence, une graine sécurisée ne garantissait pas que chaque mot de passe, sauvegarde, code d'authentification ou clé secondaire créée sur le même appareil était tout aussi sécurisée.
Pourquoi la plupart des nouveaux utilisateurs ne lanceront pas les dés
L'entropie générée par un dé est techniquement solide lorsqu'elle est effectuée correctement, mais elle n'est pas réaliste comme option par défaut pour la plupart des nouveaux utilisateurs. Lancer un dé 50 ou 99 fois, entrer chaque résultat avec précision et confirmer qu'aucun lancer n'a été omis ou dupliqué exige de la patience et une grande concentration. Une seule erreur de frappe peut modifier complètement le wallet final, et la plupart des appareils ne peuvent pas déterminer si l'erreur provient d'un mauvais lancer, d'une erreur de saisie ou d'une mauvaise compréhension des instructions.

Le processus introduit également des risques qui n'existent pas avec un générateur matériel correctement fonctionnel. Les utilisateurs peuvent écrire les lancers sur papier, les photographier, les saisir dans un outil en ligne ou laisser la liste quelque part où une autre personne peut la trouver. Certaines personnes lancent le dé de manière répétitive ou contrôlée, utilisent un dé pipé ou endommagé, ou s'arrêtent prématurément car le processus leur semble excessif. Les mathématiques peuvent être solides, mais le résultat n'est aussi sécurisé que la procédure de l'utilisateur.

C’est pourquoi le lancer de dés n’est pas toujours considéré comme la meilleure méthode par beaucoup de personnes, même parmi les utilisateurs expérimentés de bitcoin. Il remplace la confiance en un appareil par la confiance dans un processus manuel. Pour un utilisateur techniquement soigneux qui comprend l’entropie, vérifie la méthode et garde la séquence de lancers privée, cet échange peut avoir du sens. Pour un acheteur moyen qui configure un wallet pour la première fois, cela crée plusieurs possibilités d’erreur permanente, tout en étant un processus ennuyeux en même temps.

Il est également difficile d’imaginer une adoption massive du bitcoin dépendant de personnes assises à une table et enregistrant 99 résultats de dés avant de pouvoir recevoir des fonds en toute sécurité. Les pratiques de sécurité doivent s’adapter aux foyers réels, aux emplois du temps chargés, aux distractions et aux utilisateurs qui ne souhaitent pas étudier la cryptographie. L’entropie manuelle doit rester disponible comme option avancée, mais l’objectif à long terme est de disposer d’un matériel et d’un logiciel capables de générer correctement une aléatoire forte, d’expliquer clairement ce qui se passe et de nécessiter le moins de connaissances spécialisées possible.
Ce que les propriétaires de Coldcard doivent vérifier
Les propriétaires des appareils Coldcard concernés doivent d'abord vérifier la version du firmware installée sur l'appareil. Ils doivent ensuite examiner les fonctionnalités qu'ils ont utilisées lors de l'exécution d'une version antérieure du firmware, plutôt que de se concentrer uniquement sur la manière dont la graine principale du wallet a été générée.
Toute personne ayant utilisé l'appareil affecté pour générer un wallet papier, un secret de clonage, un mot de passe, une clé de co-signature ou un code d'authentification devra remplacer immédiatement ces éléments. L'installation de la mise à jour empêche ce problème d'affecter de nouveaux secrets, mais ne répare rien créé précédemment.
L'incident donne également une meilleure justification pratique aux configurations de wallet multi-fournisseurs. Dans un arrangement multi-signatures, des appareils matériels distincts provenant de différents fabricants peuvent être requis pour approuver une transaction. Cette structure ne rend pas les bogues de micrologiciel impossibles, mais elle peut empêcher un seul générateur de nombres aléatoires défectueux d'exposer l'ensemble du wallet de manière autonome.
