Chiffrer avec PGP


Créer sa paire de clés

Commençons par installer GPG :

apt-get install gpgv

On se créer la paire de clés :

gpg --gen-key

Une suite de questions est à réponse soigneusement car ces informations seront utilisé pour garantir notre authenticité et elles seront publique. Pour ma part, je demande la création d'une clé pour l'adresse mail mon@mail.fr pour une durée de 2 ans avec une taille de 2048 bits.

gpg (GnuPG) 1.4.18; Copyright (C) 2014 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.

Sélectionnez le type de clef désiré :
   (1) RSA et RSA (par défaut)
   (2) DSA et Elgamal
   (3) DSA (signature seule)
   (4) RSA (signature seule)
Quel est votre choix ? 1
les clefs RSA peuvent faire une taille comprise entre 1024 et 4096 bits.
Quelle taille de clef désirez-vous ? (2048) 
La taille demandée est 2048 bits
Veuillez indiquer le temps pendant lequel cette clef devrait être valable.
         0 = la clef n'expire pas
      <n>  = la clef expire dans n jours
      <n>w = la clef expire dans n semaines
      <n>m = la clef expire dans n mois
      <n>y = la clef expire dans n ans
Pendant combien de temps la clef est-elle valable ? (0) 2y
La clef expire le mar. 12 févr. 2019 22:24:48 CET
Est-ce correct ? (o/N) o

Une identité est nécessaire à la clef ; le programme la construit à partir
du nom réel, d'un commentaire et d'une adresse électronique de cette façon :
   « Heinrich Heine (le poète) <heinrichh@duesseldorf.de> »

Nom réel : Prenom Nom
Adresse électronique : mon@mail.fr
Commentaire : 2y
Vous avez sélectionné cette identité :
    « Prenom Nom (2y) <mon@mail.fr> »

Faut-il modifier le (N)om, le (C)ommentaire, l'(A)dresse électronique
ou (O)ui/(Q)uitter ? o
Une phrase secrète est nécessaire pour protéger votre clef secrète.

Par la suite il faut renseigner une passphrase dont seulement le créateur de ces clés doit la connaître et, elle sera à chaque fois demandé lorsque l'on souhaite envoyer un mail chiffré.

De nombreux octets aléatoires doivent être générés. Vous devriez faire
autre chose (taper au clavier, déplacer la souris, utiliser les disques)
pendant la génération de nombres premiers ; cela donne au générateur de
nombres aléatoires une meilleure chance d'obtenir suffisamment d'entropie.

Il n'y a pas suffisamment d'octets aléatoires disponibles. Veuillez faire
autre chose pour que le système d'exploitation puisse rassembler plus
d'entropie (132 octets supplémentaires sont nécessaires).
.+++++
..+++++
De nombreux octets aléatoires doivent être générés. Vous devriez faire
autre chose (taper au clavier, déplacer la souris, utiliser les disques)
pendant la génération de nombres premiers ; cela donne au générateur de
nombres aléatoires une meilleure chance d'obtenir suffisamment d'entropie.
.......+++++
.+++++
gpg: clef 0BA9A9D7 marquée de confiance ultime.
les clefs publique et secrète ont été créées et signées.

gpg: vérification de la base de confiance
gpg: 3 marginale(s) nécessaire(s), 1 complète(s) nécessaire(s),
     modèle de confiance PGP
gpg: profondeur : 0  valables :   1  signées :   0
     confiance : 0 i., 0 n.d., 0 j., 0 m., 0 t., 1 u.
gpg: la prochaine vérification de la base de confiance aura lieu le 2019-02-12
pub   2048R/0BA9A9D7 2017-02-12 [expire : 2019-02-12]
 Empreinte de la clef = E8CB 036C 9142 E952 7385  B6D7 CF14 2A11 0BA9 A9D7
uid                  Prenom Nom (2y) <mon@mail.fr>
sub   2048R/7FE30A37 2017-02-12 [expire : 2019-02-12]

La paire de clé est maintenant disponible dans notre trousseau :

gpg --list-key
pub   2048R/0BA9A9D7 2017-02-12 [expire : 2019-02-12]
uid                  Bruno Tatu (2y) <mon@mail.fr>
sub   2048R/7FE30A37 2017-02-12 [expire : 2019-02-12]

Progressivement cette liste va s'agrandir lorsque l'on approuvera l'authenticité des nouveaux destinataires.

Envoyer un mail chiffré

D'abord il faut envoyer la clé publique sur un serveur publique et de confiance. Pour rester simple et facilement accessible, j'ai choisi le serveur de Massachusetts Institute of Technology.

gpg --keyserver pgp.mit.edu --send-key 0x0BA9A9D7
  • 0x0BA9A9D7 est l'identifiant de la clé publique.

On obtient cette réponse :

gpg: envoi de la clef 0BA9A9D7 au serveur hkp pgp.mit.edu

Installons maintenant l'extension Enigmail qui se fait depuis le logiciel client. Dans mon cas j'utilise Icedove et je peux le trouver dans le menu “Tools” (outils) puis “Adds-ons” (extensions) puis effectuer une recherche dans le champ de saisie en haut à droite.

Rendez-vous dans la fenêtre des réglages (ou “settings” en anglais) pour désigner explicitement la paire de clé que l'on souhaite utiliser. Depuis la barre d'outil du logiciel : “Edit” (Editions) puis “Account Settings” (réglages de comptes) et déplaçons-nous dans la section “Sécurité OpenPGP” :

On sélectionne la bonne clé et le tour est joué! Cette méthode s'applique également lorsqu'il s'agit d'utiliser une autre clé.

Il reste plus qu'a écrire un mail avec les options de chiffrement activé :

Déchiffrer un mail

  • Récupération de la clé publique :
gpg --keyserver certserver.pgp.com --recv-key 0x00Z0ZF0Z > key.pub
gpg --import key.pub

Puis valider que la clé soit authentique. Cette manip' est faisable depuis l'interface du logiciel client. (en ligne de commande aussi ?) Doc à terminé

Chiffrer des fichiers

Grâce aux clés publiques, il est possible de chiffrer un contenu de cette manière :

gpg --output doc.gpg --encrypt --recipient utilisateur@domaine.com document.txt
# en plus court : gpg --encrypt document.txt

Pour les déchiffrer :

gpg --output doc.txt --decrypt doc.gpg
# en plus court : gpg --decrypt doc.gpg

S'échanger des clés

  • On souhaite partage la clé publique de Bob à Alice:
gpg --export > cle.pub
  • On enregistre la clé publique de Bob sur le compte d'Alice :
gpg --import cle.pub

Révocation

Il est possible de révoquer sa clé comme ceci:

gpg --gen-revoke utilisateur@domaine.com > revoc.txt
  • Dernière modification: 2017/06/01 19:50