BIP39

Force brute contre une phrase de récupération BIP39

17 min de lecture
MH
Écrit par Mohamed Habbat

Je travaille dans l'espace de l'auto-conservation crypto, et en 2026 encore, chaque mois, quelqu'un me demande s'il doit craindre une attaque par force brute sur sa phrase de récupération (spécification BIP-39). Les maths disent non. Les comportements disent oui, pour des raisons auxquelles on ne s'attend pas.

Traite ces 12 ou 24 mots comme si c'étaient les bitcoins eux-mêmes. Celui qui détient la phrase possède chaque satoshi du wallet. Personne ne peut la réinitialiser pour toi.

Tu vas voir comment fonctionne BIP39, où il cède, ce qui départage 12 et 24 mots, et pourquoi la passphrase BIP39 est à mon avis la fonction de sécurité la plus sous-utilisée de Bitcoin.

TL;DR

Une phrase de récupération BIP39 est la clé maîtresse de tes bitcoins : 12 à 24 mots anglais qui encodent 128 à 256 bits d'entropie (spécification BIP-39). La liste compte 2 048 mots, l'ordre des mots compte, et PBKDF2 étire la phrase en une seed de 512 bits dont dérive chaque clé du wallet. Face à une entropie réelle, la force brute est hors de portée. Le risque est ailleurs : générateurs de nombres aléatoires faibles, photos de la phrase, copies dans le cloud, fautes de frappe et malwares. Écris-la sur du métal ou du papier. Jamais en numérique.

Qu'est-ce que BIP39 ?

Les auteurs de BIP39 écrivent qu'une suite de mots est plus commode pour un humain que la représentation brute, binaire ou hexadécimale, d'une seed de wallet (spécification BIP-39). BIP39 a normalisé cette suite de mots.

Comment ça marche :

  1. Le wallet génère de l'entropie. Une valeur aléatoire de 128 à 256 bits, par paliers de 32 bits.
  2. Le wallet ajoute une somme de contrôle. Les premiers bits d'un hachage SHA-256 de l'entropie viennent à la fin.
  3. La valeur obtenue est découpée en segments de 11 bits. Chaque segment correspond à un mot de la liste BIP39.
  4. Selon l'entropie de départ, tu obtiens 12, 15, 18, 21 ou 24 mots.

La liste BIP39 contient exactement 2 048 mots (2^11, à dessein). Selon la spécification, la liste anglaise permet de reconnaître chaque mot à ses quatre premières lettres, ce qui réduit les erreurs de saisie (spécification BIP-39). BIP-39 propose 10 listes officielles en anglais, japonais, coréen, espagnol, chinois (simplifié), chinois (traditionnel), français, italien, tchèque et portugais (registre des listes BIP-39). La spécification elle-même déconseille fortement les listes non anglaises, car la plupart des wallets ne prennent en charge que l'anglais. Marek Palatinus, Pavol Rusnak, Aaron Voisine et Sean Bowe ont rédigé le standard, attribué le 10 septembre 2013 (spécification BIP-39).

Ensuite, la fonction d'étirement de clé PBKDF2 fait passer la phrase mnémonique par 2 048 tours de HMAC-SHA512 pour produire une seed binaire de 512 bits (spécification BIP-39). Cette seed alimente l'algorithme de dérivation des wallets HD (hiérarchiques déterministes) de BIP32, qui génère tout l'arbre de clés privées et publiques du wallet.

Une seule phrase couvre tout un arbre de clés : chaque clé de l'arbre peut avoir 2^31 enfants normaux et 2^31 enfants renforcés (spécification BIP-32). Chaque adresse générée par le wallet se récupère à partir de ces mots, plus la passphrase si tu en as défini une.

12 mots ou 24 mots

BIP39 associe 128 bits d'entropie à 12 mots et 256 bits à 24 mots (spécification BIP-39). En chiffres, ça donne :

Longueur de la phraseEntropieCombinaisons possibles
12 mots128 bits~3,4 × 10^38 (2^128)
24 mots256 bits~1,16 × 10^77 (2^256)

Un exemple chiffré. Chaque essai coûte 2 048 tours de HMAC-SHA512. Une RTX 4090 calcule PBKDF2-HMAC-SHA512 à 3 120,9 milliers de hachages par seconde à 999 itérations (benchmark hashcat), soit environ 1,5 million de vérifications de seed par seconde à 2 048. À ce rythme, une carte met environ 7 × 10^24 ans à essayer toutes les seeds de 12 mots, et un million de cartes environ 7 × 10^18 ans. Il reste au Soleil environ 5 milliards d'années (NASA). Pour choisir et utiliser un wallet pas à pas, lis le guide de l'auto-conservation.

24 mots donnent 256 bits à la seed. Mais les clés qui en dérivent restent sur la courbe secp256k1, que SEC 2 évalue à 128 bits de sécurité (SEC 2, tableau 1). Les 12 mots de plus protègent donc la seed, pas les clés de signature.

Les deux options sont sûres aujourd'hui. Ma règle : 24 mots pour l'épargne à long terme, parce que cette marge ne coûte que quelques minutes d'écriture.

Comment ton wallet dérive les clés

Le chemin de dérivation explique pourquoi une seule phrase a autant de pouvoir, et pourquoi il est si dangereux de l'exposer.

Ta phrase, via PBKDF2, produit la seed maîtresse. La seed maîtresse, via BIP32, produit la clé privée maîtresse et le code de chaîne maître.

À partir de la clé privée maîtresse, le wallet dérive des clés enfants le long d'un chemin de dérivation. BIP44 définit la structure de ce chemin (spécification BIP-44), et BIP84 la reprend avec l'objectif 84' pour les adresses SegWit natives (spécification BIP-84). Un chemin BIP44 ressemble à ceci :

m / 44' / 0' / 0' / 0 / 0

Où :

  • m = clé maîtresse
  • 44' = objectif BIP44
  • 0' = Bitcoin (type de coin 0)
  • 0' = premier compte
  • 0 = chaîne externe (adresses de réception)
  • 0 = premier index d'adresse

Chaque adresse Bitcoin sur laquelle tu as reçu des fonds dérive de façon déterministe de cette seed maîtresse. Restaure la phrase sur un wallet compatible, avec la même passphrase et le même chemin de dérivation, et tout revient : adresses, soldes, historique des transactions.

Perds la phrase, et il n'y a plus rien à restaurer. Pas de serveur central, pas de procédure de récupération.

Générer des wallets BIP39 en Node.js

Le moyen le plus rapide de comprendre l'entropie BIP39, c'est de la générer toi-même. Le setup Node.js ci-dessous crée des wallets et vérifie si les adresses générées ont déjà détenu des fonds. Code fonctionnel tiré de Bi-Catalyst/bruteforcebitcoin. Usage pédagogique uniquement. Générer des wallets au hasard et vérifier leur activité on-chain est un exercice de force brute qui confirme les maths. Ce n'est pas un moyen d'accéder aux coins de quelqu'un d'autre.

Stack technique

  • axios pour les requêtes HTTP vers les API blockchain
  • bip39 pour générer la phrase mnémonique et dériver la seed
  • bitcoinjs-lib pour dériver les adresses et manipuler les transactions

package.json :

{
  "name": "bruteforcebitcoin",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "run": "node generate_wallet.js"
  },
  "license": "MIT",
  "dependencies": {
    "axios": "^1.4.0",
    "bip39": "^3.1.0",
    "bitcoinjs-lib": "^5.2.0"
  }
}

Imports et constantes

const axios = require("axios");
const bip39 = require("bip39");
const bitcoin = require("bitcoinjs-lib");
const fs = require("fs");

const parallelLimit = 10;
const iterations = 100;
const batchSize = 10;
const delayBetweenBatches = 5000; // 5 seconds
const apiDelay = 3000; // 3 seconds
let useBlockchainInfoAPI = true;

Générer un wallet

async function generateWallet() {
  // Generate a new 12-word mnemonic seed phrase
  const mnemonic = bip39.generateMnemonic(128);
  console.log("Mnemonic:", mnemonic);

  // Convert the mnemonic to a seed
  const seed = await bip39.mnemonicToSeed(mnemonic);

  // Derive the wallet from the seed using BIP32
  const network = bitcoin.networks.bitcoin;
  const hdMaster = bitcoin.bip32.fromSeed(seed, network);
  const account = hdMaster.derivePath("m/44'/0'/0'/0");

  // Generate a new Bitcoin address
  const { address } = bitcoin.payments.p2pkh({
    pubkey: account.derive(0).publicKey,
    network,
  });

  console.log("Bitcoin Address:", address);
  const hasTransactions = await checkAddressActivity(address);
  await new Promise((resolve) => setTimeout(resolve, apiDelay));
  return { address, hasTransactions };
}

Vérifier l'activité d'une adresse

Deux explorateurs de blocs publics en alternance, pour respecter les limites de requêtes. L'API de Blockchain.com et l'API de BlockCypher :

async function checkAddressActivity(address) {
  try {
    let response;
    if (useBlockchainInfoAPI) {
      response = await axios.get(`https://blockchain.info/rawaddr/${address}`);
    } else {
      response = await axios.get(`https://api.blockcypher.com/v1/btc/main/addrs/${address}`);
    }

    useBlockchainInfoAPI = !useBlockchainInfoAPI;

    let hasTransactions = false;

    if (response.data.txs) {
      hasTransactions = response.data.txs.length > 0;
    } else if (response.data.txrefs) {
      hasTransactions = response.data.txrefs.length > 0;
    }

    if (hasTransactions) {
      console.log("This address has transactions associated with it.");
      return true;
    } else {
      console.log("This address has no transactions associated with it.");
      return false;
    }
  } catch (error) {
    console.error("Error fetching address data:", error.message);
    return false;
  }
}

Enregistrer les résultats

function appendToFile(filename, data) {
  fs.appendFile(filename, data, (err) => {
    if (err) {
      console.error(`Error saving data to ${filename}:`, err.message);
    } else {
      console.log(`Data saved to ${filename}`);
    }
  });
}

Piloter l'exécution

async function main() {
  const walletPromises = [];

  for (let i = 0; i < iterations; i++) {
    walletPromises.push(generateWallet());

    if (walletPromises.length === parallelLimit) {
      await processBatch(walletPromises);
      walletPromises.length = 0;
    }
  }

  if (walletPromises.length > 0) {
    await processBatch(walletPromises);
  }
}

Laisse tourner le script toute la nuit : tu ne tomberas sur aucun wallet approvisionné. Il traite 10 wallets à la fois, attend 3 secondes après chaque appel d'API et 5 secondes entre deux lots (generate_wallet.js), ce qui fait environ un wallet par seconde face à un espace de 2^128 seeds. Il prouve les maths en échouant à les battre.

Le dépôt complet est sur github.com/Bi-Catalyst/bruteforcebitcoin.

Le 25e mot que la plupart ne définissent jamais

BIP39 prévoit une passphrase optionnelle, le « 25e mot ». D'après mon expérience, la plupart des détenteurs n'en définissent jamais. C'est une erreur.

Quand la phrase mnémonique est convertie en seed binaire, PBKDF2 prend deux entrées : ta phrase et une passphrase optionnelle. Par défaut, la passphrase est une chaîne vide (spécification BIP-39). Tu peux saisir n'importe quoi. Un mot, une phrase, des symboles, des chiffres.

Une autre passphrase donne un autre wallet : les mêmes 24 mots, une nouvelle seed maîtresse, de nouvelles adresses, de nouveaux soldes. Deux conséquences pour la sécurité en découlent.

Un cambriolage ne te ruine plus

Quelqu'un entre chez toi et trouve ta phrase sur papier. Sans la passphrase, il n'accède qu'au wallet à passphrase vide, un leurre qui contient une petite somme. La spécification BIP39 nomme cette propriété : chaque passphrase génère un wallet valide, ce qui « offre un déni plausible » (spécification BIP-39).

Garde une petite somme dans le wallet de base. Mets l'essentiel derrière la passphrase. Choisis une passphrase longue et aléatoire : un voleur qui a tes mots peut tester des passphrases hors ligne avec BTCRecover, donc un mot court ne te protège guère.

La surface d'attaque se réduit

La plupart des vecteurs d'attaque (vol, regard par-dessus l'épaule, photo qui fuite) n'ont besoin que des mots de la seed. La passphrase ajoute un second facteur. Ne l'écris jamais sur le même papier, ne la range jamais au même endroit, ne l'envoie jamais par voie numérique.

Coldcard, Jade, Trezor et Ledger la prennent tous en charge. Coldcard vend le Q avec un clavier QWERTY, « idéal pour les longues passphrases BIP-39 » selon le fabricant (COLDCARD Q). Jade a un réglage pour la passphrase BIP39 (changelog de Jade). Trezor mentionne la protection par passphrase sur le Safe 3 (Trezor Safe 3). Ledger la place sous Réglages, puis Sécurité, sur le Nano S Plus, et sous Réglages, puis Avancé, sur le Flex (support Ledger).

Un avertissement. La passphrase ne se récupère pas. Oublie-la, et ces bitcoins sont perdus. Note-la à part, range-la en lieu sûr et teste ta restauration avant de déposer une somme importante.

Les attaques qui vident les wallets Bitcoin

Les pertes réelles de phrases de récupération ne passent presque jamais par la force brute contre une bonne entropie. Je les classe en trois catégories : numériques, physiques, mathématiques.

Les attaques numériques viennent en premier. D'après mon expérience, le phishing cause le plus de pertes : fausses applications de wallet, faux sites de « récupération de wallet », faux agents de support. Ledger écrit qu'il ne te demandera jamais les 24 mots de ta phrase de récupération (Ledger), et BitBox dit la même chose de ses mots de récupération (BitBox02). Considère toute personne qui les demande comme un voleur. Viennent ensuite les photos. En février 2025, Kaspersky a trouvé dans Google Play et l'App Store d'Apple des applications qui analysaient les galeries photo par reconnaissance de texte pour voler des phrases de récupération, et les applications infectées de Google Play totalisaient plus de 242 000 téléchargements (Securelist). Les malwares (keyloggers, pirates du presse-papiers) sur des machines connectées à Internet peuvent capturer une phrase au moment de la saisie. C'est pour ça que les hardware wallets dédiés existent.

Les attaques physiques sont plus lentes, mais elles arrivent quand même. Quelqu'un trouve ta phrase écrite dans un tiroir, derrière un cadre, sous un magnet de frigo. Le lieu de stockage et la passphrase BIP39 sont tes défenses ici. Le regard par-dessus l'épaule en est la version légère. Quelqu'un te regarde générer ou saisir ta phrase. Configure tes hardware wallets à l'abri des regards et cherche les caméras avant de confirmer quoi que ce soit de sensible.

Les attaques mathématiques (la force brute sur l'entropie elle-même) sont le sujet du titre de cet article. Elles n'ont vidé des wallets que lorsque l'entropie était faible. La commande bx seed de Libbitcoin Explorer produisait des seeds avec 32 bits d'entropie réelle, et les chercheurs de Milk Sad estiment que plus de 900 000 dollars ont été volés (divulgation Milk Sad). L'avis de Coinkite du 30 juillet 2026, mis à jour le 1er août, indique qu'un bug du firmware Coldcard a affaibli la génération des seeds, que les seeds des Mk4, Q et Mk5 portaient environ 72 bits au lieu de 128, et que des attaquants ont régénéré ces seeds faibles hors ligne et volé des fonds (avis de Coinkite). L'histoire complète se trouve dans l'article sur l'entropie faible de Coldcard (en anglais). Les maths tiennent. Les pertes viennent des comportements et des sources d'entropie défaillantes.

Ce qu'il ne faut PAS faire avec ta phrase

Mes règles strictes :

  • Pas de photo numérique. Jamais.
  • Pas de stockage dans le cloud. Dropbox, Google Drive, iCloud, OneDrive.
  • Pas de gestionnaire de mots de passe, sauf si tu as réfléchi au modèle de menace.

Au-delà de ça, évite aussi l'e-mail (ni à toi, ni à personne), les messageries (WhatsApp, Signal, iMessage), les captures d'écran et tout site qui se présente comme un « validateur de phrase de récupération » ou un « outil de récupération de wallet ». Ce sont des arnaques.

Garde la phrase sur papier ou sur métal, dans des endroits que tu contrôles.

Comment conserver ta phrase de récupération

Génère-la sur un appareil dédié (Coldcard, Jade, Trezor), pas dans une extension de navigateur, une application mobile ou un wallet de bureau connecté à Internet. Un ordinateur connecté présente trop de surfaces d'attaque. Un appareil peut lui aussi être livré avec un mauvais générateur de nombres aléatoires, alors ajoute ta propre entropie quand l'appareil le permet. L'avis de Coinkite indique que les seeds créées avec au moins 50 lancers de dés privés ont gardé au moins 128 bits d'entropie malgré le bug (avis de Coinkite).

Du métal, pas du papier

Le papier brûle, prend l'eau, se dégrade. Les sauvegardes en métal fixent tes mots dans l'acier. Cryptosteel qualifie son Seed24 de résistant au feu (Cryptosteel), et SEEDOR indique que son coffret en acier inoxydable 316L résiste à 1 450 °C (SEEDOR). Une seule copie à un seul endroit, c'est un point de défaillance unique. Garde deux ou trois sauvegardes en métal dans des lieux physiques distincts. Si tu utilises une passphrase BIP39, range-la à l'écart des mots de la seed.

Les hardware wallets à retenir en 2026

À lire aussi dans le chapitre Wallets Staying Secure (en anglais).

  • Coldcard Q. Uniquement Bitcoin, air-gapped, USD 319 (COLDCARD Q). À mon avis, le plus axé sur la sécurité des quatre.
  • Jade Plus. Entièrement open source, USD 169,99 (Blockstream Jade).
  • Trezor Safe 5. Firmware sous licence GPL-3.0 (dépôt du firmware Trezor) et ce que Trezor appelle un « NDA-free EAL 6+ Secure Element » (Trezor Safe 5). Le Safe 5, et le Safe 3 depuis juin 2024, créent par défaut une sauvegarde SLIP-39 de 20 mots, avec 12 ou 24 mots BIP-39 au choix (guide des sauvegardes Trezor).
  • Ledger Nano S Plus et BitBox02. Ledger utilise une phrase de récupération de 24 mots (support Ledger). Le BitBox02 sauvegarde sur une carte microSD, avec des mots de récupération en option (BitBox02). Ledger a publié lui-même deux incidents : une fuite des coordonnées de clients en 2020 (Ledger) et la compromission du Connect Kit en décembre 2023 (rapport d'incident Ledger).

Teste avant de déposer. Réinitialise l'appareil. Restaure-le à partir de ta phrase. Vérifie que toutes les adresses correspondent. Confirme que la passphrase fonctionne. Seulement ensuite, envoie de vrais bitcoins sur le wallet.

Informatique quantique et BIP39

L'algorithme de Shor résout les logarithmes discrets (Shor 1995), le problème derrière les signatures à courbes elliptiques que Bitcoin utilise pour les transactions. Il ne s'applique pas à l'entropie BIP39. Un ordinateur quantique assez puissant pourrait retrouver une clé privée à partir d'une clé publique déjà visible sur la chaîne. Contre la seed, la meilleure attaque connue est la recherche de Grover, qui demande environ la racine carrée du nombre classique d'essais (Grover 1996). 2^128 devient alors environ 2^64 étapes quantiques pour une seed de 12 mots, et 2^256 environ 2^128 pour une seed de 24 mots, chaque étape exécutant toujours 2 048 tours de HMAC-SHA512.

Le NIST a publié ses trois premiers standards post-quantiques finalisés, FIPS 203, 204 et 205, le 13 août 2024 (NIST). Bitcoin ne les utilise pas encore. Les signatures Schnorr de Taproot (BIP-340) reposent sur la même courbe secp256k1 qu'ECDSA et courent donc le même risque face à Shor. À mon avis, toute migration passera par un changement de protocole coordonné. L'analyse complète se trouve dans l'analyse de la menace quantique.

BIP39 tient bon. Le facteur humain, souvent pas.

La cryptographie est solide. De vrais 128 ou 256 bits d'entropie produisent un espace de clés qu'aucun adversaire ne peut parcourir par force brute (spécification BIP-39).

Les failles sont humaines, avec de temps en temps un générateur de nombres aléatoires défaillant. Les phrases sont photographiées, synchronisées dans le cloud, tapées sur des sites de phishing, rangées à un seul endroit sans copie de secours. Une passphrase BIP39 solide, prise en charge par chaque hardware wallet cité plus haut, désamorce la plupart de ces scénarios en une étape de plus.

Fais trois choses. Active la passphrase BIP39 et range-la à l'écart de tes mots. Passe à une sauvegarde en métal, car le papier ne dure pas. Teste ta restauration avant d'en avoir besoin : réinitialise l'appareil, restaure-le depuis la seed et la passphrase, et vérifie que tout fonctionne.

BIP39 fait sa part. Que tes coins restent à toi dépend de la passphrase, de la sauvegarde et du test de restauration que tu ajoutes par-dessus.


Cet article s'appuie sur la documentation publique de BIP-39 et sur les informations des fabricants de hardware wallets disponibles en octobre 2026. Ce n'est pas un conseil en sécurité. Les firmwares et les fonctions des hardware wallets évoluent. Teste chaque procédure de restauration sur un appareil dédié avant de déposer une somme importante en bitcoins, vérifie le statut open source de chaque firmware dans le dépôt public actuel du fabricant, et considère toute offre de service de « force brute BIP-39 » comme une arnaque. Les conseils de sécurité vieillissent vite. En cas de doute, demande l'avis d'un professionnel indépendant de la sécurité ou d'un dépositaire surveillé par la FINMA avant de placer un capital important dans une configuration que tu ne peux pas vérifier toi-même.


Sources :


Tu débutes avec le Bitcoin ? Commence par le chapitre 1 (en anglais).

Tu veux la vue d'ensemble ? Lis les 19 chapitres gratuitement (en anglais) ou commande le livre imprimé.

Questions fréquentes

Qu'est-ce que BIP39 ?
BIP39 (Bitcoin Improvement Proposal 39) est le standard qui transforme de l'entropie aléatoire en une phrase de récupération mnémonique lisible. Chaque mot provient d'une liste fixe de 2 048 mots, et le dépôt des BIP contient 10 listes officielles : anglais, japonais, coréen, espagnol, chinois simplifié, chinois traditionnel, français, italien, tchèque et portugais (listes de mots BIP-39). La phrase devient une seed via PBKDF2 avec HMAC-SHA512 et 2 048 itérations. Marek Palatinus, Pavol Rusnak, Aaron Voisine et Sean Bowe l'ont rédigé, et il a été attribué le 10 septembre 2013 (spécification BIP-39).
12 ou 24 mots. Est-ce que ça change la sécurité ?
12 mots encodent 128 bits d'entropie et 24 mots en encodent 256 (spécification BIP-39). Les deux sont hors de portée de la force brute. Une RTX 4090 vérifie environ 1,5 million de seeds BIP39 par seconde (benchmark hashcat, ramené de 999 à 2 048 itérations), si bien qu'un million de ces cartes mettrait environ 7 milliards de milliards d'années à essayer toutes les seeds de 12 mots. Il reste au Soleil environ 5 milliards d'années (NASA). Les clés dérivées d'une seed reposent sur la courbe secp256k1, évaluée à 128 bits de sécurité (SEC 2, tableau 1) : 24 mots protègent donc la seed elle-même, pas les clés de signature. Les Trezor Safe 5 et Safe 3 (appareils depuis juin 2024) créent par défaut une sauvegarde SLIP-39 de 20 mots et proposent 12 ou 24 mots BIP39 (guide des sauvegardes Trezor). Les appareils Ledger utilisent 24 mots (support Ledger). Le BitBox02 sauvegarde sur une carte microSD, avec des mots de récupération en option (BitBox02).
Qu'est-ce que la passphrase BIP39 (le 25e mot) et faut-il en utiliser une ?
La passphrase est une chaîne supplémentaire qui se combine avec la phrase de récupération pour dériver un autre wallet (spécification BIP-39). Un voleur qui n'a que la phrase voit le wallet à passphrase vide, qui peut être vide ou servir de leurre. Elle ne te protège que si elle est longue et difficile à deviner, car un voleur qui détient les mots peut tester des passphrases hors ligne avec des outils comme BTCRecover. Ma règle : utilise-en une dès que tu détiens plus que de l'argent de poche. Si tu perds la passphrase, les fonds sont perdus. Aucune récupération n'est possible.
Une phrase de récupération BIP39 peut-elle être cassée par force brute ?
Pas si l'entropie est réelle. Une phrase de 12 mots offre 2^128 seeds possibles (spécification BIP-39), et chaque essai coûte 2 048 tours de HMAC-SHA512. Ce coût limite une RTX 4090 à environ 1,5 million d'essais par seconde (benchmark hashcat, ramené de 999 à 2 048 itérations), pas à des milliards. La force brute ne fonctionne que si un wallet a généré une entropie faible. Les chercheurs de Milk Sad ont montré que les seeds de Libbitcoin Explorer n'avaient que 32 bits d'entropie, et ils estiment que plus de 900 000 dollars ont été volés (divulgation Milk Sad). Les hackers éthiques testent les vraies surfaces d'attaque : générateurs de nombres aléatoires faibles, chaîne d'approvisionnement compromise, malwares de capture d'écran et keyloggers, et regards indiscrets pendant la configuration.
Comment conserver une phrase de récupération BIP39 en sécurité ?
Écris deux copies à la main sur les cartes fournies avec le wallet. Jamais sur un téléphone, jamais en capture d'écran, jamais dans le cloud. Range les copies à des endroits distincts, par exemple un coffre à la maison et un coffre-fort à la banque. Pour une détention longue, passe à une sauvegarde en acier. Cryptosteel qualifie son Seed24 de résistant au feu (Cryptosteel), et SEEDOR indique que son coffret en acier inoxydable 316L résiste à 1 450 °C (SEEDOR). Le papier et l'encre brûlent.
L'informatique quantique menace-t-elle ma phrase BIP39 ?
Pas directement. L'algorithme de Shor résout les logarithmes discrets (Shor 1995), le problème qui sous-tend les signatures ECDSA et Schnorr de Bitcoin, et il ne s'applique pas à l'entropie BIP39. Contre la seed, la meilleure attaque quantique connue est la recherche de Grover, qui demande environ la racine carrée du nombre d'essais (Grover 1996) : 2^128 devient environ 2^64 étapes quantiques et 2^256 environ 2^128. Les coins exposés sont les sorties non dépensées dont la clé publique figure déjà sur la chaîne, comme l'explique l'analyse de la menace quantique.
Que faire si je perds une partie de ma phrase ?
BIP39 inclut une somme de contrôle : 4 bits dans le dernier mot d'une phrase de 12 mots et 8 bits dans le dernier mot d'une phrase de 24 mots (spécification BIP-39). Si tu as 23 mots sur 24 et que tu sais où va le mot manquant, il reste 2 048 candidats, et la somme de contrôle en élimine la plupart. BTCRecover automatise cette recherche. Si tu ne connais pas la position, il y a 24 emplacements à tester, soit 24 fois 2 048, ou 49 152 candidats. Ça reste une petite recherche.