Le mot de contrôle de votre phrase de récupération : comment BIP-39 détecte les erreurs

·5 min de lecture·Par SSP Editorial Team
Couverture SSP Academy : le mot de contrôle de votre phrase de récupération

Le mot de contrôle de votre phrase de récupération : comment BIP-39 détecte les erreurs

Une phrase de récupération ressemble à une liste de mots courants pris au hasard. C'est en réalité un nombre encodé, et le dernier mot a une tâche supplémentaire : il porte une somme de contrôle (checksum) qui permet au logiciel du portefeuille de remarquer qu'une phrase a été mal recopiée.

Comprendre ce mécanisme explique pourquoi une faute de frappe est généralement rejetée, pourquoi il ne faut jamais inventer sa propre phrase, et pourquoi les sites de « générateurs de seed » sont une mauvaise idée.

Une phrase est un nombre déguisé

La plupart des portefeuilles, SSP compris, suivent une norme appelée BIP-39. Tout part de l'entropie : un nombre aléatoire généré par votre appareil. Une phrase de 12 mots encode 128 bits d'entropie ; une phrase de 24 mots en encode 256.

La liste compte exactement 2 048 mots, et 2 048 vaut 2¹¹ : chaque mot représente donc 11 bits. Mais le calcul ne tombe pas tout à fait juste : 12 mots × 11 bits = 132 bits, et non 128 ; 24 mots × 11 bits = 264 bits, et non 256.

Les 4 ou 8 bits en trop constituent la somme de contrôle.

D'où vient la somme de contrôle

Le portefeuille fait passer l'entropie dans SHA-256 et prend les premiers bits du résultat : un bit de contrôle pour 32 bits d'entropie. Cela donne 4 bits pour 12 mots et 8 bits pour 24. (Les fonctions de hachage expliquées présente SHA-256 si vous ne le connaissez pas.)

Ces bits sont ajoutés à la fin de l'entropie, puis l'ensemble est découpé en morceaux de 11 bits, chacun associé à un mot. Le dernier mot est donc un mélange :

  • 12 mots : 7 bits d'entropie plus 4 bits de contrôle.
  • 24 mots : 3 bits d'entropie plus 8 bits de contrôle.

C'est pourquoi seuls certains mots peuvent terminer une phrase donnée. Pour 11 premiers mots quelconques, seuls 128 des 2 048 mots forment un 12ᵉ mot valide. Pour 23 premiers mots quelconques, seuls 8 conviennent.

Ce que la somme de contrôle détecte, et ce qu'elle ne détecte pas

Lors d'une restauration, le logiciel recalcule la somme de contrôle à partir des mots saisis et la compare. Si un mot est remplacé par un autre mot au hasard, la phrase erronée passe malgré tout le contrôle avec une probabilité d'environ :

  • 1 sur 16 (2⁴) pour 12 mots
  • 1 sur 256 (2⁸) pour 24 mots

La plupart des erreurs portant sur un seul mot sont donc détectées. En testant des substitutions aléatoires avec la bibliothèque qu'utilise SSP, nous avons obtenu des taux de passage d'environ 6,4 % et 0,4 %, conformes à la théorie.

Deux limites demeurent. La somme de contrôle vous dit qu'une phrase est mal formée, pas quel mot est faux. Et une phrase qui passe le contrôle n'est pas forcément la vôtre. Une faute chanceuse restaure un autre portefeuille, valide et vide. Si une restauration affiche un solde nul, revérifiez vos mots avant toute chose.

La règle des quatre lettres

La liste de mots anglaise a été choisie pour que les quatre premières lettres de chaque mot soient uniques, et les mots courts comme « act » et « add » sont uniques à eux seuls. Vous pouvez donc graver uniquement les quatre premières lettres de chaque mot sur une plaque métallique sans rien perdre. Les bonnes pratiques pour la phrase de récupération expliquent comment conserver cette copie.

N'inventez jamais votre propre phrase

Choisir vos propres mots est dangereux pour deux raisons.

Ce n'est pas aléatoire. La sécurité repose entièrement sur l'entropie. Les mots choisis par un humain, comme des choses qu'il aime ou des paroles de chanson, suivent des schémas que les attaquants peuvent explorer, et des robots passent en permanence au crible ce genre de phrases de « brain wallet ».

Ce n'est probablement même pas valide. Une liste de 12 mots choisis à la main ne passe le contrôle qu'environ une fois sur 16. D'où la tentation de « corriger » le dernier mot, ou de tirer les premiers mots aux dés puis de chercher un dernier mot valide.

Choisir soi-même le dernier mot présente peu de risque en soi, puisqu'il ne contient que 7 ou 3 bits d'entropie. Le danger vient de la façon dont on trouve les options valides. Calculer SHA-256 à la main n'est pas réaliste, alors les gens collent leurs mots dans un site de « calculateur de checksum ». À cet instant, la phrase vous échappe. La page peut l'enregistrer, le site peut être un clone, ou une extension de navigateur peut la lire.

La seule méthode sûre consiste à laisser un logiciel de portefeuille éprouvé générer la phrase sur votre propre appareil.

Comment SSP gère cela

SSP Wallet et SSP Key utilisent tous deux la bibliothèque open source @scure/bip39 avec la liste de mots anglaise. Les deux applications génèrent des phrases de 24 mots (256 bits) pour les nouveaux portefeuilles, si bien que chaque phrase porte la somme de contrôle complète de 8 bits.

Lors d'une restauration, les deux applications vérifient la phrase avant d'aller plus loin. Si elle échoue à cette vérification mais a une longueur standard (12, 15, 18, 21 ou 24 mots), vous obtenez, au lieu d'une simple erreur, un avertissement indiquant que la phrase n'est pas standard. Il nomme les mots absents de la liste de mots anglaise, ou signale que la phrase ne passe pas la somme de contrôle BIP-39, et rappelle que SSP ne crée jamais de telles phrases. Vous pouvez tout de même poursuivre la restauration après une confirmation explicite. Cette option existe pour les phrases venues d'autres portefeuilles, par exemple celles issues de la liste de mots d'une autre langue. Si l'avertissement apparaît pour une phrase fournie par SSP, arrêtez-vous et vérifiez-la à nouveau : elle contient presque certainement un mot erroné ou deux mots intervertis, et la restaurer malgré tout ouvre un autre portefeuille, vide.

SSP fonctionne en 2-sur-2 : SSP Wallet et SSP Key ont chacun leur propre phrase. Phrase de récupération, clé privée et xpub explique ce que chaque élément permet de faire.

SSP Key propose aussi Vérifier la sauvegarde de la phrase dans Réglages → Sécurité, et une carte « Contrôle de sauvegarde » vous le suggère tous les 30 jours. Après un déverrouillage par biométrie ou mot de passe, vous identifiez trois de vos mots, à des positions aléatoires, parmi des leurres tirés de la même liste. SSP Wallet propose un contrôle similaire sur un seul mot. Aucun des deux n'affiche la phrase à l'écran. Un test de restauration complet reste la vérification la plus solide, et tester votre sauvegarde vous guide pas à pas.

Le résumé honnête

Votre phrase de récupération est un nombre aléatoire écrit sous forme de mots de 11 bits. Le dernier mot contient une somme de contrôle SHA-256, de 4 bits pour 12 mots et de 8 pour 24. Elle détecte la plupart des erreurs de copie, mais pas toutes, et ne vous dit jamais quel mot est faux.

Laissez votre portefeuille générer la phrase, notez-la avec soin (quatre lettres par mot suffisent) et ne la saisissez jamais sur un site pour la « compléter » ou la « vérifier ». SSP génère des phrases de 24 mots, vous avertit avant de restaurer une phrase non standard et vous permet de confirmer vos sauvegardes sans les afficher à l'écran.

Partager cet article

Articles connexes