Vous êtes sur la page 1sur 21

GnuPG Travail Pratique

GnuPG
Logiciel Libre, http://www.gnupg.org
Peut-tre utilis pour chiffrer/signer des fichiers
ex: paquets Debian et Ubuntu
Ou des courriers lectroniques, directement au
sein des clients : Thunderbird, Sylpheed Claws,
Kmail, Evolution, Mutt
Manipulation en ligne de commande (gpg) ou
avec des interfaces graphiques (Seahorse,
GnomeGPG, Kgpg, Enigmail)

Pourquoi chiffrer ?
Envoi de courrier lectronique par le protocole
SMTP, Simple Mail Transport Protocol
Transit des donnes en clair
Les intermdiaires sur le rseau voient vos
donnes et peuvent les lire !
En terme de confidentialit, similaire une
carte postale

Pourquoi signer ?
SMTP ne prvoit pas de mcanisme
d'authentification de l'expditeur
On peut envoyer des courriers lectroniques en
se faisant passer pour n'importe qui, n'importe
quelle adresse
Absolument aucune garantie sur l'origine d'un
courrier lectronique

Cryptographie symtrique
Solution la plus simple : utilisation d'un secret partag (mot
de passe, mthode)
Exemple : on dcale de 13 lettres les lettres de chaque mot

Algos: ROT13, XOR, DES, 3DES, AES, Blowfish


En ROT13, espace des cls = 26
En AES, 2^128 cls

L'ge de l'univers tant de 1010 annes, si on suppose qu'il est

possible de tester 1000 milliards de clefs par seconde (soit 3.2


1019 clefs par an) il faudra encore plus d'un milliard de fois l'ge
de l'univers
Problme : comment se mettre d'accord sur le secret partag si on
ne peut pas se voir ?

Cryptographie asymtrique
Utilisation de fonctions mathmatiques sens
unique, ou en tout cas trs trs difficiles
inverser
Principe : Diffie et Helmann, 1976
Premire implmentation : RSA, Rivest,
Shamir et Adelman, 1978
Chaque partie possde deux cls
une cl prive, que l'on garde secrte
une cl publique, que l'on diffuse tout le
monde

Gnration des cls


Gnration d'une paire de cls:
gpg --gen-key

Type de cl : 1 (DSA et Elgamal)


Taille de cl : 2048 (par dfaut)
Dure de validit : 2w (2 semaines)
Nom rel : Votre Nom Entier
Adl : votre@adresse.org
Commentaire : test
Confirmer puis choisir une passphrase
Bouger la souris, taper au clavier, boire un
caf, ...
7

Le trousseau de cls
Le trousseau est l'endroit o vous allez stoquer
l'ensemble des cls (les vtres, mais aussi
toutes les cls publiques des gens que vous
connaissez).
/home/user/.gnupg repertoire pour garder vos cls

Lister les cls :


gpg --list-keys

Afficher lempreinte d'une cl


Lempriente (fingerprint) est le rsultat d'un
calcul effectu sur la cl. Si deux cls ont le
mme fingerprint, c'est que les deux cls sont
identiques.
Le fingerprint permet de vrifier rapidement
qu'une cl proviens bien de la personne qui
on pense qu'elle appartient.
Afficher lempreinte:
gpg --fingerprint

change de cls
Pour pouvoir communiquer, il faut disposer de
la cl publique de son correspondant
Exporter sa cl

gpgoutputmoi.ascarmor
exportfoo@bar.org

Importer une cl

gpgimportcopain.asc

Peu pratique ...

10

Serveurs de cls
Pour faciliter les changes de cls publiques, il
existe des serveurs de cl, comme pgp.mit.edu
http://pgp.mit.edu

11

Publication des cls


Publier sa cl sur le serveur :
gpg --keyserver pgp.mit.edu --send-keys D4C8BDBB

Vrifier la publication
http://pgp.mit.edu:11371/pks/lookup? \
op=get&search=0xD4C8BDBB

Sinon utilisez l'terface du serveur:


http://pgp.mit.edu:11371

Importer une cl partir du serveur :


gpg --keyserver pgp.mit.edu --recv-keys D4C8BDBB

Vrifier l'import : gpg --list-keys


12

Prparer la rvocation de la cl
Prparer une demande de rvocation de cl :
gpg --gen-revoke votre@adresse.org > revoc.txt

Cause de rvocation : 3 (plus utilise)


Raison : c'tait juste un test
Confirmer puis entrer la passphrase

13

Rvocation dune cl
Rvoquer une cl :
Importer la demande de rvocation :
gpg --import revoc.txt
Vrifier la rvocation :gpg --list-keys
Renvoyer la cl : gpg --keyserver pgp.mit.edu \
--send-keys D4C8BDBB
Supprimer ses cls :
gpg delete-secret-keys D4C8BDBB
gpg delete-keys D4C8BDBB

14

Chiffrer/dchiffrer
Chiffrer un message :
edit texte.txt
gpg -er votre@adresse.org texte.txt
ls -l
rm texte.txt
Dchiffrer un message :
gpg texte.txt.gpg
ls -l

15

Signer un message
Signer un message, dans le message :

edit texte.txt
gpg --clearsign -u votre@adresse.org texte.txt
cat texte.txt.asc

Vrifier la signature : gpg --verify texte.txt.asc


Modifier le contenu du message sign
Revrifier la signature => non valide

16

Signature dtache
Signature dtache d'un message :
gpg -bu votre@adresse.org texte.txt
ls -l

Vrifier une signature :


gpg --verify texte.txt.sig

17

Signature, est-ce suffisant ?


La signature est prvue pour identifier l'expditeur
Pourtant, n'importe qui peut crer une cl publique
avec le nom de n'importe qui
Solutions: rseau de confiance ou tierce partie
Rseau de confiance: les utilisateurs signent les
cls d'autres utilisateurs dans lesquels ils ont
confiance
http://www.cs.uu.nl/people/henkp/henkp/pgp/pathfinder/

Repose sur le facteur humain, faillible


18

Signer une cl
Rencontrer physiquement le dtenteur de la cl et
vrifier son identit. Keysigning party !
Rcuprer sa cl dans son trousseau, vrifier
l'empreinte
Signer la cl

gpg --edit-key toto@toto.com, commandes fpr, sign, quit

Envoyer la signature sur les serveurs

gpg --keyserver pgp.mit.edu --send-key toto@toto.com

19

Mettre jour son trousseau

Pour rcuprer les nouvelles signatures

gpg --keyserver pgp.mit.edu --refresh-keys

20

Pour rsumer

1) Crer sa cl
2) L'exporter sur un serveur de cl
3) L'utiliser pour signer ses courriers
lectroniques
4) Mettre l'empreinte sur sa carte de visite, et
faire signer sa cl par d'autres utilisateurs

21

Vous aimerez peut-être aussi