Passer au contenu principal

Les bases de la sécurité mnémonique

Mis à jour aujourd’hui

Lorsque vous utilisez la mnémonique pour restaurer votre portefeuille, il existe une très faible probabilité que vous saisissiez un mot par erreur (pas dans la sauvegarde, mais dans la base de données mnémonique) et que vous puissiez quand même le restaurer à l'aide du portefeuille blockchain.

Voici quelques exemples et explications de ce scénario extrêmement improbable.

Pour commencer, nous devons d'abord comprendre le processus de construction d'une mnémonique afin de comprendre pourquoi une mnémonique peut être utilisée même si elle est saisie incorrectement.

Créer une mnémonique :

En utilisant la procédure de normalisation décrite dans la BIP-39, le portefeuille génère automatiquement la mnémonique. Le portefeuille commence par une source d'entropie, puis ajoute une somme de contrôle avant de mapper des nombres aléatoires à une liste de mots :
1. Créez un nombre aléatoire de 128 à 256 bits.
2. Utilisez la somme de contrôle de ce nombre aléatoire comme premiers bits du hachage SHA256 (les quatre premiers bits sont pris à partir des bits d'assistance de 12 bits).
3. À la fin de la séquence aléatoire, ajoutez la somme de contrôle.
4. Séparez la séquence en moitiés de 11 bits.
5. Chaque nombre portant le composant de 11 bits correspond à un dictionnaire qui contient déjà 2048 mots.
6. La mnémonique est la séquence résultante de syllabes.

Et lorsque le mauvais mot est saisi, comme dans l'exemple suivant (seule la première position est saisie incorrectement).

Le portefeuille génère la mnémonique comme suit :ribbon voice frame black oppose galaxy divide either tube maximum tired obvious

Hachage SHA256 : 00101011 11111111

mceclip3.png

La mnémonique saisie incorrectement de manière artificielle est :rib voice frame black oppose galaxy divide either tube maximum tired obvious

Hachage SHA256 :00101011 11101010

mceclip4.png

Les quatre premiers bits de chaque paire SHA256 sont identiques, ce qui indique que la somme de contrôle est également identique.

Comme les deux paires de mnémoniques sont conformes à la BIP39, elles peuvent toutes deux être récupérées à l'aide de portefeuilles blockchain.

Si nous faisons une explication simple en termes de probabilité : d'abord choisir un mot aléatoire comme dernier mot mnémonique, puis choisir aléatoirement les 11 autres mots mnémoniques lorsque le mot mnémonique est de 12 bits, nous pouvons trouver un ensemble de mots corrects 16 fois, tandis que le mot d'assistance de 24 bits est de 256 fois.

Il est donc courant de « saisir le mot erroné et d'obtenir une mnémonique fonctionnelle », mais cela ne signifie pas que la sécurité mnémonique est inexacte.

Les mnémoniques sont parfois confondues avec les « brain wallets », bien qu'elles ne soient pas la même chose.

La principale distinction est que les brain wallets sont composés de mots choisis par l'utilisateur, tandis que les mnémoniques sont générées aléatoirement et présentées à l'utilisateur.

La distinction la plus importante entre les deux est l'aspect qui rend la mnémonique plus sécurisée ; après tout, les humains ont une capacité limitée à générer des nombres aléatoires.

Cela signifie que le simple fait qu'une mnémonique conforme à la BIP39 ait été testée artificiellement ne signifie pas que l'utilisation d'une mnémonique générée par le portefeuille est peu sûre ; les deux types de mnémoniques diffèrent en termes de sécurité ; une mnémonique générée par le portefeuille est plus aléatoire (c'est-à-dire plus sécurisée), tandis qu'un brain wallet (avec la mnémonique erronée) a moins de chances d'être généré et utilisé de manière aléatoire.

Le portefeuille génère des nombres véritablement aléatoires à l'aide de méthodes cryptographiquement sûres (par exemple, TRNG matérielle), de sorte que la qualité de l'aléatoire ne peut être garantie par le choix habituel de mnémonique de l'utilisateur.

Avez-vous trouvé la réponse à votre question ?