• Loïc Morel

Comment vérifier l'intégrité d'un logiciel Bitcoin sous Windows ?

Dans cet article tutoriel vous allez apprendre à vérifier la signature d'un développeur et à vous assurez de l'intégrité d'un logiciel que vous venez de télécharger. L'objectif sera de vérifier que le logiciel téléchargé n'est pas malveillant.


Etant donné le caractère open source d'une majorité des logiciels en rapport avec Bitcoin, beaucoup de contrefaçons malveillantes existent. Afin de préserver la sécurisation de vos bitcoins et la confidentialité de vos actions en rapport avec le protocole, il est essentiel de procéder à une vérification du logiciel Bitcoin que vous téléchargez avant de l'installer sur votre machine.


J'ai choisi de faire ce tutoriel uniquement sur le système d'exploitation Windows. Je ne suis pas un grand amoureux de cet OS, mais force est de constater que la majorité des utilisateurs de distributions Linux savent déjà très bien comment vérifier l'authenticité d'un logiciel. J'ai donc choisi de restreindre le tutoriel à ce système d'exploitation afin de pouvoir aider le plus grand nombre possible d'utilisateurs.


Pour ne pas rester uniquement dans la théorie, je vais vous montrer concrètement comment vérifier une signature et comment vérifier l'intégrité d'un programme en prenant pour exemple Sparrow Wallet, un logiciel vous permettant de créer et de gérer facilement des portefeuilles Bitcoin.



Sommaire :



signature papier stylo




Qu'est-ce qu'une signature numérique ?


La signature numérique est une preuve cryptographique permettant d'assurer l'authentification d'une donnée. On la retrouve dans de très nombreux usages, mais dans notre cas, nous allons l'utiliser pour vérifier que le logiciel que l'on vient de télécharger a bien été produit par le développeur légitime. Cela nous permettra d'éviter d'installer des logiciels malveillants.


La seconde partie de la vérification se fera sur le hash de l'exécutable. Grâce à la caractéristique de résistance à la falsification des fonctions de hachage cryptographiques, nous allons vérifier que le code du logiciel n'a pas été modifié.





Étape 1 : Préparer sa machine.


Tout d'abord, vous allez avoir besoin du logiciel GPG afin d'être en capacité de vérifier les signatures. Pour ce faire, téléchargez et installez le logiciel Gpg4win.


Rendez-vous sur le site officiel : https://www.gpg4win.org/index.html


Cliquez sur Download pour télécharger le logiciel, puis installez le avec les paramètres par défaut. Vous pouvez réaliser une donation en bitcoins si vous souhaitez soutenir les développeurs de ce projet.


Ce logiciel vous donne accès à de nombreux outils utilisant les signatures numériques. Il est nécessaire qu'il soit installé en fond sur votre ordinateur pour la suite de notre tutoriel.




Étape 2 : Télécharger les documents nécessaires.


Ensuite il va falloir télécharger différents documents afin de réaliser une installation propre :

  • L'installateur du logiciel souhaité, c'est-à-dire le fichier exécutable habituel (.exe).

  • La clé publique du développeur.

  • Le haché du logiciel, généralement nommé "SHA", "SHA256SUMS" ou "MANIFEST".

  • Le haché signé, généralement en .asc.


Dans l'exemple de Sparrow Wallet, nous allons nous rendre sur le site officiel ou bien sur le Github afin de récupérer tous ces fichiers.


Sur le site officiel, nous trouverons ces fichiers dans l'onglet Download. Cliquez dessus pour les télécharger sur votre ordinateur. Tachez de les mettre dans le même dossier (par exemple le dossier "Téléchargements").


site Sparrow Wallet logiciel Bitcoin


Sur le Github, nous trouverons ces mêmes fichiers dans l'onglet Releases.

Github Sparrow Wallet logiciel Bitcoin


Il vous faudra également récupérer la clé publique du développeur du logiciel. En l'occurrence, la clé de Craig Raw, le développeur de Sparrow Wallet, est disponible ici : https://keybase.io/craigraw/pgp_keys.asc


Faites un clic droit, puis cliquez sur "Enregistrer sous..." afin de télécharger la clé.


Nous vérifierons l'authenticité de cette clé plus tard.





Étape 3 : Vérifier la signature.


Maintenant que nous disposons de tous les documents nécessaires, nous allons pouvoir vérifier la signature du développeur.


Il existe différentes manières de réaliser cette opération. Personnellement, j'aime bien le faire avec Windows PowerShell.


Ouvrez Windows PowerShell.

PowerShell Windows

Commencez par importer la clé du développeur avec la commande :

gpg --import [la clé]

Remplacez [la clé] par la clé du développeur que vous avez téléchargé précédemment. Vous pouvez effectuer un glisser-déposer avec le fichier contenant la clé.

Commande gpg --import dans powershell

Vous allez alors disposer d'informations sur la clé importée. Ici on peut voir le nom du propriétaire de la clé, et son empreinte cryptographique (en vert) :

empreinte de la clé publique du développeur

L'empreinte de la clé du développeur est : E946 1833 4C67 4B40.


Nous allons maintenant vérifier à partir de son empreinte que la clé dont nous disposons est bien la clé légitime. Si ce n'est pas le cas, la vérification ne servirait à rien. Nous allons donc chercher d'autres sources, différentes de celle où l'on a téléchargé cette clé, pour nous assurer de son authenticité.


Par exemple, les développeurs exposent généralement l'empreinte de leur clé publique sur différents réseaux sociaux.

Vérification de l'empreinte de la clé sur le compte Twitter du développeur

Ici, nous pouvons voir que l'empreinte donnée dans sa bio Twitter correspond bien à l'empreinte dont on dispose sur PowerShell.


Il faut donc vérifier cette empreinte à partir de différentes sources afin de réduire la chance de tomber sur une clé non légitime.



Revenons à notre PowerShell. Nous allons maintenant vérifier que cette clé publique correspond bien à la signature du logiciel. Pour cela, il faut exécuter la commande :

 gpg --verify [document .asc]

Remplacez [document .asc] par le document signé que vous avez téléchargé précédemment.

Commande gpg --verify dans PowerShell

Vérifiez que gpg renvoie bien l'information "Bonne signature".


Vous remarquerez une nouvelle fois l'empreinte de la signature : E946 1833 4C67 4B40.


Maintenant que nous avons vérifié la signature du fichier manifest, nous allons vérifier que l'exécutable n'ait pas été modifié, et qu'il correspond bien aux informations dont on dispose dans le fichier manifest.





Étape 4 : Vérifier l'intégrité de l'exécutable.


Nous allons commencer par hacher le fichier exécutable. La fonction utilisée est généralement SHA256.


Pour ce faire, tapez dans PowerShell la commande :

Get-FileHash [le .exe]

Cette commande par défaut utilise SHA256. Remplacez simplement [le .exe] par votre exécutable téléchargé précédemment :

Commande Get-FileHash dans PowerShell

La commande nous donne en sortie le hash de notre exécutable. Dans notre exemple cela donne : 9BDFA60291A45B75B20756F131B06BAF66AC8AEE470F893037707E0084843454.


Nous pouvons maintenant comparer ce hash avec le hash indiqué dans le fichier manifest.


Double cliquez sur le fichier manifest.txt pour l'ouvrir.


Comparaison avec le hash du manifest

Vérifiez que le hash de votre exécutable corresponde au hash donné dans le document manifest pour le .exe. Si les hash sont identiques, votre exécutable est vérifié.


Vous pouvez donc exécuter le fichier .exe en double cliquant dessus afin d'installer le logiciel.





Conclusion.


Vous n'avez plus aucune excuse pour éviter de vérifier les logiciels que vous installez sur votre machine sous Windows !


La vérification de l'authenticité et de l'intégrité d'un logiciel est particulièrement indispensable pour les logiciels Bitcoin étant donné qu'on les utilise pour manier de l'argent.


Je vous conseille fortement de prendre l'habitude de réaliser cette vérification également pour tous les autres logiciels que vous installez sur votre machine. Cela pourra vous éviter bien des soucis.





Pour aller plus loin :