Comment le client Bitcoin chiffre-t-il le fichier wallet.dat  ?


La réponse de Pieter couvre les détails techniques, donc je ne répéterai rien de tout cela. J’ajouterais que les utilisateurs doivent se rappeler que le point le plus faible du portefeuille Bitcoin-core ou de tout système de cryptage cryptographiquement fort est la phrase secrète. Le système convertit une phrase de passe en clé AES-256 et cette clé dérivée du mot de passe est utilisée pour chiffrer une clé de portefeuille principale générée de manière aléatoire. La clé principale du portefeuille ne peut pas être forcée brutalement, à l’exception d’un PRNG compromis ou défectueux, mais les attaquants peuvent tenter de forcer brutalement la phrase secrète elle-même.

Le client ajoute des tentatives de durcissement contre cette attaque en utilisant à la fois un sel (nombre aléatoire) et plusieurs cycles de hachage. Le sel empêche une attaque de précalcul car la même phrase de passe avec différents sels produira des clés différentes. L’utilisation de plusieurs cycles de hachage ralentit les attaques par force brute, car l’attaquant devra également effectuer plusieurs cycles sur chaque phrase secrète tentée.

Le client utilise le renforcement dynamique des clés. Cela signifie que le nombre de tours varie en fonction de la puissance de calcul du client (pour maintenir le temps de chiffrement ou de déchiffrement en dessous de 1 seconde). Plus votre matériel est puissant, plus il effectue de tours et plus il sera difficile de forcer brutalement le mot de passe. Lorsque vous modifiez votre phrase secrète, le client ajustera le nombre de tours dynamiques en fonction de la puissance de calcul de votre matériel actuel. En mettant à jour votre mot de passe périodiquement, vous pouvez vous assurer que la clé dérivée du mot de passe respecte la loi de Moore.

Comment le client Bitcoin chiffre-t-il le fichier wallet.dat  ?

 » ou un autre mot de passe connu et couramment utilisé, il sera toujours trivial de forcer brutalement le portefeuille. Pour illustrer pourquoi, supposons que l’attaquant dispose d’un matériel capable de tenter 100 millions de hachages par seconde et que votre portefeuille utilise 100 000 cycles de hachage. Cela signifie que le matériel des attaquants (hachages 100M) peut tenter 1 000 mots de passe par seconde. Ainsi, le portefeuille ralentit l’attaquant, mais si le mot de passe est faible, il ne peut pas le ralentir suffisamment. Il existe des listes de mots de passe précédemment compromis/volés/piratés accessibles au public avec des dizaines de millions de mots de passe. Sans extension de clé, un attaquant pourrait essayer tous les mots de passe connus possibles en moins d’une seconde. L’étirement des touches ralentit cela à quelques heures. D’un autre côté, disons que votre mot de passe était inconnu et suffisamment fort pour qu’avec un seul hachage, il faudrait en moyenne un jour à la force brute. Avec 100 000 tours qui augmente le temps à des siècles.