Anti-Klepto / Anti-Exfil
Anti-Klepto (BitBox) protège contre une attaque où un firmware malicieux ferait fuiter la clé via un nonce non-aléatoire. La signature est co-générée avec l'host. Présent dans BitBox, Coldcard.
L'attaque kleptographique en deux mots
Une kleptographic attack est une porte dérobée invisible : un signataire ECDSA ou Schnorr a besoin, à chaque signature, d'un nonce aléatoire k. Si ce nonce est biaisé d'une manière connue uniquement de l'attaquant, ce dernier peut extraire la clé privée après seulement quelques signatures, sans que rien ne paraisse anormal. Le danger est réel pour les hardware wallets propriétaires dont l'utilisateur ne peut auditer le firmware.
Le principe d'Anti-Klepto
Le protocole Anti-Klepto (aussi appelé Anti-Exfil signing, formalisé par Stepan Snigirev et Pieter Wuille) impose au matériel de commiter à son nonce avant de connaître la part de hasard apportée par l'hôte. Le flux est :
- L'hôte génère un nonce auxiliaire
n_h. - L'hôte envoie
hash(n_h)au signataire. - Le hardware wallet calcule son propre nonce
k_w, le commit, et envoieR_w = k_w·G. - L'hôte révèle
n_h. - Le hardware wallet utilise
k = k_w + n_hpour signer.
Si le firmware essaye de glisser un nonce biaisé, il doit le faire avant de voir n_h, ce qui rend l'exfiltration mathématiquement impossible.
Implémentations
- BitBox02 : Anti-Klepto activé par défaut sur ECDSA et Schnorr.
- Coldcard : version maison appelée deterministic signatures + audit.
- Specter DIY / Krux : compatibles via PSBT custom.
- Electrum et BitBoxApp côté hôte.
Limites
Anti-Klepto protège uniquement contre l'exfiltration via le nonce. Une compromission complète du firmware (qui modifierait l'adresse de destination, par exemple) ne serait pas couverte ; c'est le rôle du secure display et de la signature humaine d'adresse de protéger contre cela.
À retenir
Anti-Klepto est un excellent exemple d'ingénierie défensive : on ne demande pas confiance au firmware, on la rend mathématiquement vérifiable. Toute personne stockant un montant sérieux devrait privilégier un wallet implémentant ce protocole.
Termes lies
- BitBoxBitBox (Shift Crypto, Suisse) est un hardware wallet open-source. Versions BitBox02 Bitcoin-only et multi. Minimaliste, élégant. Soutient Silent Payments et Anti-Klepto.
- Secure ElementUn Secure Element est une puce dédiée résistante aux attaques physiques (CC EAL5+). Stocke la seed et signe sans la révéler. Présent dans Ledger, BitBox, Passport. Compromis entre sécurité et code fermé.
- Schnorr (signature)Schnorr est un schéma de signature numérique introduit dans Bitcoin par le soft fork Taproot (2021). Il offre la linéarité, qui permet l'agrégation des signatures (MuSig). Plus simple, plus rapide et plus sûr que ECDSA. Il ouvre la voie à de nouveaux usages comme MuSig2, FROST et Tapscript.
Glossaire inspire du dictionnaire de Loic Morel sur Pandul.fr.