Roxy Pony's blog

Only fresh pony stuff

Cryptographie

August 15, 2015 / by Nicolas Hoareau

Cryptographie - GPG - Et logiciels libres

[TL;DR]
Si vous vous intéressez un peu à la sécurité sur Internet, vous vous êtes déjà confronté à la question de la cryptographie. Aujourd’hui je me suis penché sur le logiciel de cryptographie VeraCrypt.

Ce logiciel open-source vous permet de créer des images disques cryptées que vous pouvez monter/démonter avec un mot de passe et ajouter des fichiers à l’intérieur. C’est un moyen sûr de stocker des documents sensibles sur les différents cloud. Cependant je dois dire que je ne suis jamais vraiment rassuré quand j’installe quelque chose sur mon ordinateur, et surtout dans le domaine de la sécurité, je veux être sûr que le logiciel que j’installe provient bien du/des développeur(s) sans avoir été altéré par un tiers.

Heureusement des solutions existent sur le web basées sur le concept de web of trust. En cryptographie, un web of trust est un concept utilisé en PGP, GnuPG, et autre système OpenPGP-compatible pour établir l’authenticité entre la clef publique et son propriétaire. Ce système de clefs publique/privée appelé Cryptographie assymétrique est largement répandu sur le web.

Récupérer le logiciel et le vérifier

Maintenant que les concepts de base sont bien compris nous allons sur le site du logiciel pour installer VeraCrypt. Sur la page d’accueil nous pouvons lire :

All released files are signed with a PGP key available on major key servers with ID=0x54DDD393.
Please check that its fingerprint is 993B7D7E8E413809828F0F29EB559C7C54DDD393.

En d’autres termes il nous donne toutes les informations dont nous avons besoin. L’ID pour récupérer la clef publique et le fingerprint qui permet de la vérifier. Allons récupérer cette clef !

Récupérer la clef publique des développeurs

Nous allons avoir besoin de GnuPG sur mon Mac avec MacPort (ou un autre gestionnaire de packet) j’utilise le terminal

sudo port install gnupg

Je génère ma propre clef, acceptez toutes les options par défaut.

gpg --gen-key

Récupérons la clef des développeurs auprès d’un serveur de confiance, http://pgp.mit.edu en l’occurence.

gpg --keyserver pgpkeys.mit.edu --recv-key 0x54DDD393

gpg: demande de la clef 54DDD393 sur le serveur hkp pgpkeys.mit.edu
gpg: DBG: armor-keys-failed (KEY 0x54DDD393 BEGIN) ->0
gpg: DBG: armor-keys-failed (KEY 0x54DDD393 END) ->0
gpg: clef 54DDD393 : clef publique « VeraCrypt Team veracrypt@idrix.fr » importée
gpg: aucune clef de confiance ultime n’a été trouvée
gpg: Quantité totale traitée : 1
gpg: importées : 1 (RSA: 1)

Verifions que cette clef est bien dans notre trousseau.

gpg --list-keys

pub 4096R/54DDD393 2014-06-27
uid VeraCrypt Team veracrypt@idrix.fr

Vérifier le fingerprint

Passons maintenant la vérification du fingerprint de cette clef. Pour cela je vais encore utiliser gpg avec la commande edit. Je dois passer l’identifiant de la clef que je veux éditer. Son identifiant se trouve dans la liste de vos clef 4096R/54DDD393

gpg --edit-key 54DDD393

gpg (GnuPG) 1.4.19; Copyright (C) 2015 Free Software Foundation, Inc.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

pub 4096R/54DDD393 créé : 2014-06-27 expire : jamais utilisation : SCE
confiance : inconnu validité : inconnu
[ inconnue] (1). VeraCrypt Team veracrypt@idrix.fr

Ensuite je tape la commande fpr pour avoir le fingerprint de la clef.

gpg> fpr

pub 4096R/54DDD393 2014-06-27 VeraCrypt Team veracrypt@idrix.fr Empreinte clef princip. : 993B 7D7E 8E41 3809 828F 0F29 EB55 9C7C 54DD D393

Parfait ! C’est bien la même fingerprint que celle fournie par les développeurs.

Vérifier la signature

Nous pouvons maintenant nous rendre dans la séction téléchargement du site. Là nous pouvons voir que chaque version du logiciel est accompagnée d’une PGP Signature for…. Récupérons la clef de la version que nous voulons installer. Ici PGP Signature for VeraCrypt MacOSX Setup 1.13. Une fois téléchargée cette clef se nomme VeraCrypt_1.13.dmg.sig. Il ne nous reste plus qu’à verifier la clef de signature.

gpg --verify VeraCrypt_1.13.dmg.sig

gpg: les données signées sont supposées être dans « VeraCrypt_1.13.dmg »
gpg: Signature faite le Dim 9 aoû 15:52:25 2015 CEST avec la clef RSA d’identifiant 54DDD393
gpg: Bonne signature de « VeraCrypt Team veracrypt@idrix.fr »
Empreinte de clef principale : 993B 7D7E 8E41 3809 828F 0F29 EB55 9C7C 54DD D393

Très bien ! Nous avons vérifié la signature.

Vérifier le logiciel grâce aux checksums

Maintenant téléchargeons le logiciel et vérifions le. Là encore les développeurs nous ont donné toutes les informations nécessaires : les checksums.

11007b36cfd327113f009e50a36b3e1667a8b3814b9695885a5e926f6e15323b VeraCrypt Setup 1.13.exe 0274ccccdf13c990854b80db7293bb1c49f9e4fbbbf842a7ecfcfb56f86ddaae VeraCrypt User Guide.pdf 087b8b2067ddb3953dc71f4e2cb306e645315699b15a9ff7aaf33abe7c1ccd04 VeraCrypt_1.13.dmg 76bd3fecd740e342e9e1c85d46e7b762c772c23cfec7c9dd03ac37e1871a802e veracrypt_1.13_Source.tar.bz2 e61441486dc983ff1f7b1e8e5fafc1167eede513e43b64e49c018286e4307387 veracrypt_1.13_Source.zip 12b6a72b9fa1931f29c38b5d6d2cdfa10c64790bc71c996c5f7e5b068189bb21 veracrypt-1.13-setup.tar.bz2

Vérifions tout cela avec le terminal.

shasum -a 256 /Users/name/Downloads/VeraCrypt_1.13.dmg

087b8b2067ddb3953dc71f4e2cb306e645315699b15a9ff7aaf33abe7c1ccd04 /Users/name/Downloads/VeraCrypt_1.13.dmg

Nous y sommes. Tout est bon ! Vous pouvez installer en toute sécurité le logiciel. En tout cas vous pouvez être sûr que le logiciel provient bien des gens qui vous l’ont proposé.