Dernière modification 24 décembre 2016
Avant d'aller plus loin, je vous invite à consulter ma page sur la cryptographie en guise d'introduction
Vous allez récupérer GnuPG sur www.gnupg.org,
l'archive se
présente sous la forme d'un tarball qu'on décompresse en tapant
tar xvfj gnupg-2.0.30.tar.bz2
Cela va créer un répertoire gnup-2.0.30 dans le répertoire courant. Dans ce répertoire tapez:
./configure
voilà le résultat
GnuPG v2.0.30 has been
configured as follows:
Revision: 83cae8c
(33738)
Platform: GNU/Linux
(x86_64-unknown-linux-gnu)
OpenPGP: yes
S/MIME: yes
Agent: yes
Smartcard: yes (without
internal CCID driver)
Gpgtar: no
Protect
tool: (default)
Default
agent: (default)
Default pinentry:
(default)
Default scdaemon:
(default)
Default dirmngr:
(default)
On tape maintenant
make
Et enfin en tant que root
make install
Cela va créer un répertoire /usr/local/share/gnupg contenant un fichier standard de configuration utilisateur qui va s'appeler gpg-conf.skel ainsi qu'une FAQ au format html et les exécutables gpg et gpgv dans /usr/local/bin. Si ces chemins ne vous plaisent pas, taper:
./configure -help
Et retaper ./configure avec les arguments qui vont bien.
Par conséquent le point crucial du système est que vous ne communiquiez en aucun cas votre clé privée, vous devez faire en sorte que le fichier et répertoire contenant votre clé privée soient d'accès hautement restrictifs.
Le risque maintenant du système est que la clé publique du destinaire que vous détenez ne soit pas la bonne mais appartienne à quelqu'un d'autre, ou que quelqu'un se soit fait passer pour votre destinaire (ce qui revient au même) et ait donné sa clé publique. Pour parer à cela, il faut ABSOLUMENT être sûr sans la moindre ambiguïté que la clé publique que vous receviez soit bien celle de votre destinataire, pour cela vous devez certifier la clé publique, vous ne devez en aucun cas certifiez une clé publique si vous avez des doutes sur son origine.
GnuPG permet en outre de pouvoir s'authentifier ou d'authentifier des personnes. Pour s'authentifier, il suffit de crypter un message avec votre clé privée, n'importe qui possédant votre clé publique pourra alors le déchiffrer, comme vous êtes le seul à pouvoir émettre ce message, cela va vous authentifier parfaitement auprès des autres. Un risque cependant c'est que quelqu'un vous ait piqué votre clé privée.
Vous remarquerez
qu'éventuellement on peut donner un temps de
validité pour la clé. Cela va créer dans votre
home
directory un répertoire .gnupg contenant votre
clé publique (pubring.gpg) et votre clé
privée (secring.gpg). Inutile de chercher à
éditer ces fichiers, c'est du binaire.
Attention, s'il existe une version préinstallé de GnuPG
sur votre système, vous
pouvez soit la supprimer, l'écraser, ou alors spécifier
le chemin de gpg version tarball
(/usr/local/bin pour une
installation par défaut).
Pour exporter une clé, maintenant rien de plus simple
gpg2 --export --armor > public-key-ohoarau.asc
[olivier@obelix temp]$ gpg2 --import public-key-vhoarau.asc
voilà le résultat
gpg: clé 2CB452D2:
clé publique « Véronique Hoarau
<veronique.hoarau@funix.org> » importée
gpg:
Quantité totale traitée: 1
gpg:
importée:
1
Cette base de données de destinataires potentiels est dans votre répertoire .gnupg et se nomme trustdb.gpg (fichier binaire).
Pour afficher l'empreinte d'une clé, il suffit de taper:
gpg2 --fingerprint veronique
pub 1024D/2CB452D2 2007-04-01
Empreinte de la clé = 2F15 A16A 284A 347B B517
C6D5 9E39 979C 2CB4 52D2
uid
Véronique
Hoarau <veronique.hoarau@funix.org>
sub 2048g/5776C745 2007-04-01
C'est quand même plus facile de vérifier avec l'empreinte.
[olivier@obelix olivier]$ gpg2 --sign-key veronique
voilà le résultat
pub 1024D/2CB452D2 créé:
2007-04-01 expire: jamais
utilisation: SC
confiance:
inconnu validité:
inconnu
sub 2048g/5776C745 créé:
2007-04-01 expire: jamais
utilisation: E
[ inconnue] (1). Véronique Hoarau
<veronique.hoarau@funix.org>
pub 1024D/2CB452D2 créé:
2007-04-01 expire: jamais
utilisation: SC
confiance:
inconnu validité:
inconnu
Empreinte de la clé principale:
2F15 A16A 284A 347B B517 C6D5 9E39 979C 2CB4 52D2
Véronique
Hoarau <veronique.hoarau@funix.org>
Etes-vous vraiment sûr(e) que vous
voulez signer cette clé
avec votre clé « Olivier Hoarau
<olivier.hoarau@funix.org> » (83A7E9B7)
Signer réellement ? (o/N)
Vous avez besoin d'une phrase de passe pour déverrouiller la
clé secrète pour l'utilisateur: « Olivier Hoarau
<olivier.hoarau@funix.org> »
clé de 1024 bits DSA, ID 83A7E9B7, créée le 2007-04-01
Entrez la phrase de passe:
Pour info la syntaxe de gpg avec l'option --sign-key est
gpg2 --sign-key UID
Avec UID une chaîne de caractère compris dans le nom de la personne ou son email.
On verra plus loin que ce n'est pas suffisant pour certifier une clé avec une confiance absolue.
[olivier@obelix olivier]$ gpg2 -sear veronique toto.txt
voilà le résultat
Vous avez besoin d'une phrase de passe
pour déverrouiller la
clé secrète pour l'utilisateur: « Olivier Hoarau
<olivier.hoarau@funix.org> »
clé de 2048 bits DSA, ID F1FC5F0F, créée le 2013-07-11
Avec les options :
- s pour certifier, en effet comme votre clé est
publique
n'importe qui pourrait se faire passer pour vous en vous empruntant
votre clé publique, dans ce cas il faut passer par
l'étape de certification des clés publiques pour
déchiffrer les données.
- e pour chiffrer,
- a pour créer un fichier .asc prêt
à être envoyé en fichier attaché par email
- r suivi du destinataire du message
et enfin toto.txt le nom du fichier à chiffrer, celui
contenant:
________________________________
FUNIX - http://funix.free.fr
Mettez un pingouin dans votre PC
Cela va créer un fichier toto.txt.asc qui aura cette
tête là:
-----BEGIN PGP MESSAGE-----
Version: GnuPG v2
hQIOAyHK030iiG12EAf/bBo87wzNsobaoKusS13oEtaDy6BU4Nn56/ujOeelmimL
HqIJuVs/KhseIbC7hu20eSReyZqJ4dfbmdUZcWgWIXI2pZCyPkzKJm7YUhEGlgTT
c8cRd/Q+sB5xohjHv2+4+lYYOUC5gOHzi8vfUKK4yL9GS5kCSfeOPKtTab55ozc7
3yUerZXdQx/GWxJb2qsem2NkP+VG0iQ/QbXGLYl2Nyg/l+jtZ/fSPfSVRjLtL2Kj
(...)
1nsouDehNUHCYZzvWm7Ep36ugnQbyRcJBuEOy7DlVFbQHpRAVtmjzsFhsw7tMur6
Wm8fC78TBiTgukfHj+7vI2fN7IiSHmGGWAF372G9wY61c4EFSpP5OK2EPmX0Jqv8
m9KkAfwKz/orjEPZupeo2ojlTIM6nc8j/55F5WWB6xzozke0OwZrSwRsFzPQO5wz
E11tedOn5bHDJfBHakv0Gcck9uQnwmiLwOGxqsg7pmagHHkUb7BSrTejdnOA7HvK
X6hYzAANuB988jKJ3zxBIdE+TlaTgy0b9cpMGIU7ltZxTcvzm1B912z0yGoEKq3+
xB6q044HYzT61SElOqYhDdGDWb7SsM0=
=tLQT
-----END PGP MESSAGE-----
Dans le cas où la personne n'est pas certifiée cela donne cela:
[olivier@obelix olivier]$ gpg2 -sear benjamin signature
cela donne
Vous avez besoin d'une phrase de passe pour déverrouiller la
clé secrète pour l'utilisateur: « Olivier Hoarau
<olivier.hoarau@funix.org> »
clé de 1024 bits DSA, ID 83A7E9B7, créée le 2007-04-01
gpg: 6D597A58: Rien ne dit que la clé appartient vraiment
à l'utilisateur
nommé.
pub 2048g/6D597A58 2005-08-08 Benjamin Hoarau
<benjamin.hoarau@free.fr>
Empreinte de la clé principale: 8038 48D2 2AAE 5655
535E 6FEB 9520 70B4 5F61 5291
Empreinte de la sous-clé:
DD3A 4CC8 9E1C E826 8663 C762 A5C7 3E2C 6D59 7A58
Il n'est PAS certain que la clé appartient à la personne
nomée dans
le nom d'utilisateur. Si vous savez *vraiment* ce que vous faites,
vous pouvez répondre oui à la prochaine question.
Utiliser cette clé quand même ? (o/N) o
[veronique@obelix temp]$ gpg2 -d toto.txt.asc
voilà le résultat
Vous avez besoin d'une phrase de passe pour déverrouiller la
clé secrète pour l'utilisateur: « Véronique Hoarau
<veronique.hoarau@funix.org> »
clé de 2048 bits ELG-E, ID 5776C745, créée le 2007-04-01 (ID clé
principale 2CB452D2)
Entrez la phrase de passe
gpg: chiffré avec une clé de 2048 bits ELG-E, ID 5776C745, créée le
2007-04-01
« Véronique Hoarau
<veronique.hoarau@funix.org> »
________________________________
FUNIX - http://funix.free.fr
Mettez un pingouin dans votre PC
gpg: Signature faite le dim 01 avr 2007 12:13:04 CEST avec la clé DSA
ID 83A7E9B7
gpg: Impossible de vérifier la signature: clé publique non trouvée
Vous constatez alors qu'on a le message Impossible de vérifier la signature: clé publique non trouvée car veronique n'a pas la clé publique d'olivier et donc n'a pu la certifier et donc même si elle peut déchiffrer le message, ne peut assurer que l'envoyeur est bien olivier. On va arranger cela, olivier doit lui donner sa clé publique, et veronique doit la mettre dans sa base de données.
gpg2 --import public-key-ohoarau.asc
Redéchiffrons le message pour voir maintenant:
Vous avez besoin d'une phrase de passe pour déverrouiller la
clé secrète pour l'utilisateur: « Véronique Hoarau
<veronique.hoarau@funix.org> »
clé de 2048 bits ELG-E, ID 5776C745, créée le 2007-04-01 (ID clé
principale 2CB452D2)
Entrez la phrase de passe
gpg: chiffré avec une clé de 2048 bits ELG-E, ID 5776C745, créée le
2007-04-01
« Véronique Hoarau
<veronique.hoarau@funix.org> »
________________________________
FUNIX - http://www.funix.org
Mettez un pingouin dans votre PC
gpg: Signature faite le dim 01 avr 2007 12:13:04 CEST avec la clé DSA
ID 83A7E9B7
gpg: Bonne signature de « Olivier Hoarau
<olivier.hoarau@funix.org> »
gpg: ATTENTION: Cette clé n'est pas certifiée avec une signature de
confiance !
gpg:
Rien ne dit que la signature appartient à son
propriétaire.
Empreinte de clé principale: 112C 669C 28C8 75AF 5B17 7167 2F89
6D51 83A7 E9B7
La clé publique n'étant pas certifiée par veronique, on est absolument pas sûr qu'elle appartienne bien à olivier. Cependant si veronique est absolument sûre qu'olivier est bien le propriétaire de cette clé publique, elle peut la certifier en faisant:
gpg2 --sign-key olivier
Redéchiffrons à nouveau notre fameux message
[veronique@obelix temp]$ gpg2 -d toto.txt.asc
voilà le résultat
Vous avez besoin d'une phrase de passe pour déverrouiller la
clé secrète pour l'utilisateur: « Véronique Hoarau
<veronique.hoarau@funix.org> »
clé de 2048 bits ELG-E, ID 5776C745, créée le 2007-04-01 (ID clé
principale 2CB452D2)
Entrez la phrase de passe
gpg: chiffré avec une clé de 2048 bits ELG-E, ID 5776C745, créée le
2007-04-01
« Véronique Hoarau
<veronique.hoarau@funix.org> »
________________________________
FUNIX - http://www.funix.org
Mettez un pingouin dans votre PC
gpg: Signature faite le dim 01 avr 2007
12:13:04 CEST avec la clé DSA ID 83A7E9B7
gpg: vérifier la base de confiance
gpg: 3 marginale(s) nécessaires, 1
complète(s) nécessaires, modèle
de confiance PGP
gpg: profondeur: 0
valide: 1 signé: 1
confiance: 0-. 0g. 0n. 0m. 0f. 1u
gpg: profondeur: 1
valide: 1 signé: 0
confiance: 1-. 0g. 0n. 0m. 0f. 0u
gpg: Bonne signature de « Olivier Hoarau
<olivier.hoarau@funix.org> »
Le doute subsiste même si on a certifié sans ambiguité l'authenticité de la clé publique, il manque la signature de confiance. Pour ce faire, on doit taper :
[veronique@asterix temp]$ gpg2 --edit-key olivier
voilà le résultat
gpg (GnuPG) 2.0.30; 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 1024D/83A7E9B7 créé:
2007-04-01 expire: jamais
utilisation: SC
confiance:
inconnu validité:
entière
sub 2048g/9B601F37 créé:
2007-04-01 expire: jamais
utilisation: E
[ entière ] (1). Olivier Hoarau
<olivier.hoarau@funix.org>
Commande> sign
« Olivier Hoarau <olivier.hoarau@funix.org> » a
déjà été signé par la clé
2CB452D2
Rien à signer avec la clé 2CB452D2
Commande> trust
pub 1024D/83A7E9B7 créé: 2007-04-01 expire:
jamais utilisation: SC
confiance:
inconnu validité:
entière
sub 2048g/9B601F37 créé: 2007-04-01 expire:
jamais utilisation: E
[ entière ] (1). Olivier Hoarau <olivier.hoarau@funix.org>
Décidez maintenant à quel point vous avez confiance en cet utilisateur
pour qu'il vérifie les clés des autres utilisateurs (vous pouvez
vérifier son passeport, vérifier les empreintes de plusieurs sources
différentes, etc.)
1 = ne sais pas ou ne dirai pas
2 = je ne fais PAS confiance
3 = je crois marginalement
4 = je fais entièrement confiance
5 = je donne une confiance ultime
m = retour au menu principal
Votre décision ? 5
Voulez-vous vraiment donner une confiance ultime à cette
clé ? (o/N) o
pub 1024D/83A7E9B7 créé: 2007-04-01 expire:
jamais utilisation: SC
confiance:
ultime
validité: entière
sub 2048g/9B601F37 créé: 2007-04-01 expire:
jamais utilisation: E
[ entière ] (1). Olivier Hoarau <olivier.hoarau@funix.org>
Notez que la validité affichée pour la clé n'est pas nécessairement
correcte tant que vous n'avez pas relancé le programme.
Commande> quit
On rédécrypte maintenant le fichier
[veronique@asterix temp]$ gpg2 -d toto.txt.asc
voilà le résultatVous avez besoin d'une phrase de passe pour déverrouiller la
clé secrète pour l'utilisateur: « Véronique Hoarau
<veronique.hoarau@funix.org> »
clé de 2048 bits ELG-E, ID 5776C745, créée le 2007-04-01 (ID clé
principale 2CB452D2)
Entrez la phrase de passe:
gpg: chiffré avec une clé de 2048 bits ELG-E, ID 5776C745, créée le
2007-04-01
« Véronique Hoarau
<veronique.hoarau@funix.org> »
________________________________
FUNIX - http://www.funix.org
Mettez un pingouin dans votre PC
gpg: Signature faite le dim 01 avr 2007
12:13:04 CEST avec la clé DSA ID 83A7E9B7
gpg: vérifier la base de confiance
gpg: 3 marginale(s) nécessaires, 1
complète(s) nécessaires, modèle
de confiance PGP
gpg: profondeur: 0
valide: 2 signé: 0
confiance: 0-. 0g. 0n. 0m. 0f. 2u
gpg: Bonne signature de « Olivier Hoarau
<olivier.hoarau@funix.org> »
Cette fois-ci c'est bon !
Veronique Hoarau
veronique.hoarau@fnac.net
Puis taper
gpg2 -sa signature
voilà le résultat
Vous avez besoin d'une phrase de passe pour déverrouiller la
clé secrète pour l'utilisateur: « Véronique Hoarau
<veronique.hoarau@funix.org> »
clé de 1024 bits DSA, ID 2CB452D2, créée le 2007-04-01
Entrez la phrase de passe:
Cela va crypter le fichier avec votre clé privée et donner le fichier signature.asc, n'importe qui pourra le déchiffrer avec votre clé publique.
Maintenant si vous voulez authentifier quelqu'un qui vous a envoyé sa signature crypté avec sa clé privée, il vous faudra sa clé publique et taper:
[olivier@obelix temp]$ gpg2 --verify signature.asc
voilà le résultat
gpg: Signature faite le dim 01 avr 2007 12:25:46 CEST avec la clé DSA
ID 2CB452D2
gpg: Bonne signature de « Véronique Hoarau
<veronique.hoarau@funix.org> »
Au message Bonne signature on voit bien que la signature appartient bien à la personne dont vous avez la clé publique. Vous pouvez obtenir des warnings dans le cas où la personne n'est pas certifiée.
D'une autre manière quand vous récupérerez des
fichiers sous internet (des packages par exemple), c'est un bon moyen
de
voir que la package vient bien du créateur et n'est pas un
package détournée avec des backdoors à
l'intérieur.
Ainsi on peut trouver le tarball de GnuPG signé, ainsi
que la clé publique du projet GnuPG (fichier samplekeys.asc
qu'on trouve sous ./gnupg-2.0.29/doc), vous pouvez ainsi
authentifier l'origine du package avec le fichier signature qu'on peut
trouver en téléchargement sur le site de GnuPG, tout d'abord il
faut importer la clé publique de GnuPG
et maintenant pour vérifier l'intégrité de l'archive on tapera
gpg2 --verify gnupg-2.0.29.tar.bz2.sig
cela donne cela
gpg: assuming signed data in
'./gnupg-2.0.29.tar.bz2'
gpg: Signature faite le mar. 08 sept. 2015 16:38:22 CEST avec la clef
RSA d'identifiant 4F25E3B6
gpg: Bonne signature de « Werner Koch (dist sig) » [inconnu]
gpg: Attention : cette clef n'est pas certifiée avec une signature
de confiance.
gpg:
Rien
n'indique que la signature appartient à son propriétaire.
Empreinte de clef principale : D869 2123 C406 5DEA 5E0F 3AB5
249B 39D2 4F25 E3B6
gpg: Signature faite le mer. 09 sept. 2015 12:30:24 CEST avec la clef
RSA d'identifiant 33BD3F06
gpg: Impossible de vérifier la signature : Pas de clef publique
Les fichiers gnupg-2.2.29.tar.bz2.sig et gnupg-2.0.29.tar.bz2 doivent se trouver dans le même répertoire.
gpg2 --list-key
voilà le résultat
/export/home/olivier/.gnupg/pubring.gpg
---------------------------------------
pub 1024D/83A7E9B7 2007-04-01
uid
Olivier
Hoarau <olivier.hoarau@funix.org>
sub 2048g/9B601F37 2007-04-01
pub 1024D/2CB452D2 2007-04-01
uid
Véronique
Hoarau <veronique.hoarau@funix.org>
sub 2048g/5776C745 2007-04-01
pub 1024D/5F615291 2005-08-08
uid
Benjamin
Hoarau <benjamin.hoarau@free.fr>
sub 2048g/6D597A58 2005-08-08
Pour supprimer une clé publique d'un utilisateur (si par
exemple on lui a volé sa clé privée)
gpg2 --delete-key UID
Editer la clé publique d'un utilisateur particulier
gpg2 --edit-key UID
[Retour page d'accueil] | [Retour haut de la page] |