• Loïc Morel

Tout savoir sur la Passphrase Bitcoin.

Proposée pour la première fois sur Bitcoin avec le BIP38 et adaptée avec le BIP39, la passphrase représente un exceptionnel levier d'amélioration du niveau de sécurisation d'un portefeuille Bitcoin.


Parfois également nommée "two-factor seed phrase", "password", "seed extension", "extention word" ou encore "25ème mot", la passphrase constitue un sel cryptographique permettant de définir une donnée de taille arbitraire indispensable pour déterminer la graine d'un portefeuille HD (déterministe hiérarchique).


Dans cet article vous découvrirez ce qu'est la passphrase, où elle se positionne dans la structure de dérivation d'un portefeuille HD et comment l'utiliser pour augmenter fortement la sécurité de votre portefeuille Bitcoin.


Voyons ensemble comment ajouter un peu de sel à votre portefeuille.




Sommaire :



Sel cryptographique Bitcoin




Position de la passphrase.


Les portefeuilles HD sont ceux utilisés en grande majorité sur Bitcoin aujourd'hui. En effet, ils disposent d'un excellent rapport entre sécurisation du portefeuille et facilité d'utilisation.


Leur principe est assez simple : toutes les clés donnant accès aux bitcoins de l'utilisateur sont calculées de façon déterministe depuis une information unique qui constitue la base du portefeuille HD : la graine (ou seed en anglais).


Ainsi, l'intégralité du portefeuille d'un utilisateur peut être reconstitué en cas de problème à partir de cette unique information que constitue la graine. L'utilisateur n'aura plus qu'à sauvegarder précieusement cette graine.


Les portefeuilles respectant BIP39 déterminent la graine depuis une phrase mnémonique. Cette phrase, généralement composée de 24 mots, permet de faciliter le stockage de la sauvegarde du portefeuille HD. Pour que le portefeuille soit sécurisé, cette phrase doit être déterminée à partir d'une source d'entropie forte.


Pour dériver la graine depuis la phrase mnémonique, on va passer cette information dans la fonction PBKDF2 (Password Based Key Derivation Function 2). Cette fonction dispose de deux entrées et d'une sortie :

  • Un message (entrée).

  • Un sel cryptographique (entrée).

  • Un chiffré (sortie).


Dans le cas de Bitcoin, ces informations seront :

  • Le message sera la phrase mnémonique.

  • Le sel sera la passphrase.

  • La sortie sera la graine.


Schéma PBKDF2 Bitcoin
Sur Bitcoin, on utilise la fonction PBKDF2 avec la fonction HMAC-SHA512. Le nombre d'itération est de 2048.



La passphrase intervient donc comme variable dans le calcul de la graine.





À quoi sert la passphrase ?


Comme vous pouvez le remarquer dans le schéma précédent, la passphrase est une des deux informations nécessaires pour calculer la graine. Ainsi, si un utilisateur de Bitcoin décide d'utiliser une passphrase pour son portefeuille, celle-ci sera indispensable pour dériver ses clés et donc accéder à ses bitcoins.


Pour accéder à ses fonds, l'utilisateur devra alors renseigner sa passphrase sur son logiciel ou sur son périphérique (hardware wallet). Pour récupérer ses bitcoins à partir de sa phrase mnémonique, il devra encore une fois renseigner la passphrase.


La passphrase permet donc d'ajouter facilement une couche supplémentaire de sécurité à un portefeuille Bitcoin.


En effet, même si un attaquant accède aux 24 mots de votre phrase de récupération, il ne pourra pas voler vos bitcoins tant qu'il n'aura pas trouvé votre passphrase.





Comment utiliser la passphrase ?


Comme expliqué en introduction, la passphrase est une donnée librement choisie par l'utilisateur, à l'instar d'un mot de passe. Pour que son utilisation soit efficace, il convient de choisir une passphrase forte. Ses caractéristiques seront les mêmes que celles d'un bon mot de passe afin de réduire l'efficacité d'une éventuelle attaque par brute force :

  • La plus longue possible et avec une diversité de caractères : actuellement au minimum 12 caractères avec des chiffres, des lettres majuscules et minuscules, et des symboles.

  • Sans lien direct avec l'utilisateur et son environnement.

  • Sans lien avec un dictionnaire quelconque.


Le plus efficace serait de déterminer la passphrase de manière aléatoire, mais cela induit un risque de perte ou d'oubli plus élevé.


Une fois la passphrase déterminée, il sera important d'en effectuer une sauvegarde afin de pouvoir récupérer le portefeuille en cas d'oubli de celle-ci. Plusieurs options se présentent à l'utilisateur :


La première option est de retenir la passphrase de tête, et donc de n'en faire aucune sauvegarde. Je déconseille fortement de choisir cette option car le risque de perte est bien trop élevé.


La deuxième option est de réaliser une sauvegarde physique de la passphrase, de la même façon que l'on sauvegarde la phrase de récupération. On peut donc réaliser une copie de la passphrase sur un papier ou sur un support en métal. Cette option est la plus sécurisée, mais il convient de conserver la copie de la passphrase dans un lieu différent de la copie de phrase de récupération, sans quoi son utilisation est presque inutile.


La troisième option est de réaliser une sauvegarde numérique de la passphrase. Cette option est évidemment beaucoup moins sécurisée qu'une sauvegarde physique, mais dans certains cas, elle peut être cohérente. Dans ce cas, je conseille de la sécuriser sur un périphérique chiffré ou bien sur un gestionnaire de mots de passe chiffré localement.





Quand utiliser la passphrase ?


Vous pouvez utilisez la passphrase chaque fois que vous souhaitez améliorer simplement la sécurisation de votre portefeuille.


Je conseille également fortement d'utiliser une passphrase lorsque la sécurisation de la phrase mnémonique d'un portefeuille Bitcoin n'est pas pleinement satisfaisante. Par exemple, certains hardwares wallets ont des faiblesses qui viennent réduire fortement la sécurité d'un portefeuille :

  • Si le hardware wallet est vulnérable à une attaque physique.

  • Si la génération de la mnémonique est closed source.

  • ...

Dans ces cas particuliers, l'utilisation de la passphrase permet de colmater partiellement la faille.


Aussi, si vous utilisez un portefeuille dit "chaud", c'est-à-dire un logiciel hébergé sur une machine connectée à internet, l'utilisation de la passphrase permet d'augmenter le niveau de sécurisation de votre portefeuille.





Tutoriel passphrase.


La procédure pour mettre en place une passphrase sur un portefeuille diffère d'un logiciel à un autre. Nous allons voir ici un exemple pour un portefeuille logiciel sur Sparrow Wallet.



Étape 1 : Créer un nouveau portefeuille.


Pour commencer il faut créer un nouveau portefeuille Bitcoin.


Ouvrez Sparrow Wallet et cliquez sur l'onglet "File" en haut à gauche.


Sparrow Wallet Portefeuille Bitcoin


Puis cliquez sur "New Wallet".


Nouveau Portefeuille Bitcoin


Choisissez un nom pour ce portefeuille.


Nom du portefeuille Bitcoin


Étape 2 : Générer une phrase mnémonique.


Cliquez ensuite sur "New or Imported Software Wallet" afin de créer un portefeuille logiciel directement sur votre ordinateur.


Choisir le type de portefeuille Bitcoin


Une nouvelle fenêtre s'ouvre, cliquez sur "Use 24 Words".


Choisir le format de la graine Bitcoin


Pour créer une nouvelle phrase mnémonique vous pouvez soit cliquer sur le bouton "Generate New" pour laisser Sparrow la générer pour vous grâce à son GNPA, ou bien vous pouvez la générer vous-même et la noter manuellement dans Sparrow dans chaque case. Je vous explique dans cet article comment faire pour générer une phrase mnémonique manuellement dans les règles de l'art : Comment générer soi-même sa phrase mnémonique Bitcoin ?


Générer la phrase de récupération portefeuille Bitcoin


Étape 3 : Choisir sa passphrase.


C'est à ce moment là que vous devez indiquer la passphrase qui viendra sécuriser votre portefeuille dans la case "Passphrase :".


Dans mon exemple, j'ai choisi d'utiliser la passphrase suivante :

xPsf5%$ed34dJ#5*

Réalisez ensuite la sauvegarde de récupération de votre portefeuille en notant sur un support solide les 24 mots, et sur un autre support solide la passphrase. Puis cliquez sur "Create Keystore".


Choisir la passphrase Bitcoin


Sparrow va ensuite vous demander de réécrire votre phrase de récupération et votre passphrase afin de s'assurer que vous ayez bien réalisé vos sauvegardes.


C'est le seul et unique moment légitime où l'on vous demandera de noter votre phrase mnémonique. Toute autre demande, sur n'importe quel support, représente sûrement une escroquerie.

Une fois ces informations notées, cliquez sur "Confirm Backup".


Confirmer la apssphrase Bitcoin et la phrase de récupération Bitcoin


Étape 4 : Générer le nouveau portefeuille Bitcoin.


Cliquez ensuite sur "Import Keystore".


Importer le nouveau portefeuille Bitcoin


Sparrow vous affiche ensuite des informations sur la structure de votre nouveau portefeuille. À ce stade, si vous utilisez une passphrase comme dans notre exemple, je vous conseille fortement de noter les 8 caractères (base 16) de votre "Master Fingerprint" et d'en conserver plusieurs copies.


La Master Fingerprint est l'empreinte de la clé privée maîtresse de votre portefeuille. Cette empreinte est réalisée en utilisant une fonction de hachage cryptographique. Il est donc impossible de déterminer la valeur de la clé maîtresse en connaissant uniquement son empreinte. Cette information n'est donc pas très sensible.


En revanche, la Master Fingerprint est indispensable pour vous, afin de vous assurer que vous utilisez bien le bon portefeuille Bitcoin. Vous comprendrez son utilité plus tard.


Dans mon exemple, la Master Fingerprint est :

C6DC7775

Une fois cette copie effectuée, cliquez sur "Apply".


Confirmer les informations de structure du portefeuille Bitcoin


Sparrow vous demande de confirmer une nouvelle fois votre passphrase.


Confirmer la passphrase Bitcoin


Le logiciel vous demande ensuite de choisir un mot de passe. Ce mot de passe n'a rien à voir avec votre passphrase. Il permet simplement d'accéder à votre portefeuille depuis Sparrow Wallet, mais il n'a aucune influence sur votre portefeuille Bitcoin.


Il vous sera demandé à chaque fois que vous souhaitez accéder à votre portefeuille Bitcoin depuis Sparrow, mais il n'est pas nécessaire pour récupérer votre portefeuille : seules la phrase de récupération et la passphrase sont nécessaires pour récupérer les bitcoins.


Choisissez un mot de passe fort puis cliquez sur "Set Password".


Choisir le mot de passe du portefeuille Bitcoin


Et voilà, votre portefeuille Bitcoin sécurisé par une passphrase est prêt à être utilisé !



Étape 5 : Utiliser le portefeuille Bitcoin avec Passphrase.


La passphrase n'est pas stockée sur votre ordinateur. Sparrow dispose simplement de l'information que votre portefeuille a une passphrase. Chaque fois que vous ouvrirez votre portefeuille, le logiciel va donc vous demander de renseigner votre passphrase.


Notez là dans le cadre approprié, puis cliquez sur "Ok".


Ouvrir le nouveau portefeuille Bitcoin avec la passphrase


Votre portefeuille s'ouvre et vous pouvez commencer à l'utiliser.

Utiliser le portefeuille Bitcoin avec passphrase


Attention, étant donné que Sparrow ne stocke pas votre passphrase, le logiciel n'est pas en capacité de reconnaître si la passphrase que vous notez est bien la bonne.


Dans tous les cas, le logiciel va ouvrir un portefeuille et dériver les clés en fonction de la passphrase entrée, que celle-ci soit bonne ou mauvaise.


Evidemment, si vous entrez une mauvaise passphrase, vous tomberez sur un portefeuille vide qui n'est enfaite pas votre bon portefeuille.


Par exemple, si nous notons mauvaise_passphrase au lieu de la bonne passphrase xPsf5%$ed34dJ#5*, Sparrow va nous ouvrir le mauvais portefeuille.


Entrer une mauvaise passphrase pour portefeuille BItcoin


Pour vérifier que vous êtes bien sur le bon portefeuille lorsque vous y avez accédé, allez dans l'onglet "Settings", puis regardez la valeur de la "Master Fingerprint".


Si cette valeur correspond exactement à celle que vous aviez notée à l'étape 4, alors vous êtes bien sur le bon portefeuille.


Dans mon exemple, vous pouvez voir qu'après avoir noté une mauvaise passphrase, la valeur de l'empreinte est F59F0C4D, alors que la bonne valeur de l'empreinte de mon portefeuille légitime est censée être : C6DC7775 (comme expliqué à l'étape 4). Je me rends alors compte rapidement que je me suis trompé lorsque j'ai écris la passphrase.


Vérifier la master fingerprint du portefeuille Bitcoin


Attention : Comme expliqué précédemment, l'utilisation d'une passphrase sur une phrase mnémonique vient modifier la graine du portefeuille. Ainsi, si vous disposez déjà d'un portefeuille Bitcoin, et que vous essayez d'y ajouter une passphrase directement dessus, cela va créer un nouveau portefeuille complètement séparé du premier.


La phrase de récupération de 24 mots et la passphrase ne doivent jamais être communiquées, sans quoi il sera possible de voler tous vos bitcoins. Le portefeuille créé dans le cadre de ce tutoriel est évidemment vide et je ne vais pas l'utiliser.


Conclusion.


Selon moi, la passphrase représente un exceptionnel levier de sécurisation lorsqu'elle est bien utilisée. Ce levier est trop souvent sous estimé par les utilisateurs de Bitcoin, beaucoup ne jugeant que par les multi-signatures pour les sécurisations poussées. Pourtant, la passphrase est une excellente solutions, simple à mettre en place et gratuite, afin d'améliorer fortement la sécurisation d'un portefeuille personnel.


Pour aller plus loin :