Premièrement, on va chiffrer un message avec une clé symétrique. Cela permettra d’envoyer un fichier à un ami de façon sécurisée (le contenu est chiffré). La seule chose à entrer sera un mot de passe, que l’ami devra aussi connaître.
simple chiffrement et déchiffrement de fichier
gpg --symmetric todo    # chiffrement
gpg todo                # déchiffrementcréation d’une paire de clés asymétriques
gpg --gen-keyOn aura une paire de clés dans ~/.gpg/.
lister ses clés enregistrées
gpg --list-keys
pub   4096R/1ECFD0EC 2013-12-01 [expire : 2014-12-01]
uid                  Mon Nom (Ce message s'auto-détruira dans 5 secondes.) <my.name@unistra.fr>
sub   4096R/AC81D8BC 2013-12-01 [expire : 2014-12-01]Le champ « pub » correspond à la partie publique de la clé. Le champ « sub » correspond à une sous-clé.
L’option gen-revoke génère un certificat de révocation pour une clé, au cas où on aurait des doutes sur le fait qu’elle soit restée privée, dans le pire des cas on peut la révoquée pour s’en faire une nouvelle. D’autres raisons peuvent être invoquées.
Révoquer une clé
gpg --output revoke.txt --gen-revoke <id> La commande permet de créer le certificat et de le mettre dans le fichier revoke.txt. Ce fichier pourra être envoyé sur un site regroupant des clés gpg pour signaler à tous que la clé publique de cette clé ne doit plus être utilisée.
L’option --armor créée une sortie en ASCII protégée plutôt qu’une sortie binaire. L’option --import importe ou fusionne des clés (pour gérer son trousseau).
Échanger des clés
gpg --export --armor --output sacle.gpg
gpg --import --armor sacle.gpgMaintenant que nous avons nos clés, nous voulons les partager au monde entier, et on ne va pas s’amuser à envoyer notre clé publique à chaque correspondant, on va la mettre sur un serveur d’échange de clés.
Envoyer sa clé sur un serveur d’échanges
    gpg --keyserver keys.gnupg.net --send-key C45D9C4DRécupérer la clé de quelqu’un sur le serveur
    gpg --keyserver keys.gnupg.net --recv-key 0x538cf18b4e0e3cbcOn ne peut pas être vraiment sûr que cette clé provient de la personne que l’on pense. C’est pour cela qu’il y a des keysigning party, et qu’on peut attribuer des niveaux de confiances aux clés.
L’option --fingerprint permet de récupérer l’empreinte d’une clé. Pour ça, bien évidemment, il nous faut la clé.
Quelques informations utiles :
--clearsign copie le fichier en y ajoutant la signature à la fin.--detach-sign crée simplement la signature dans un fichier à part (format binaire par défaut).La clé utilisée pour chiffrer ou signer est la première de la liste donnée par l’option --list-keys.
L’option --verify permet de vérifier la signature d’un fichier. Exemple, on veut vérifier la signature d’un message envoyé par une personne dont nous connaissons la clé:
Vérification de signature
gpg --verify monfichier.sig
    ou 
gpg --verify monfichier.ascVoici un exemple de résultat:
Test de la commande de vérification de signature
gpg --verify questions.asc
    gpg: Signature faite le dim. 01 déc. 2013 18:54:14 CET avec la clef RSA d'identifiant 00CB30AD
    gpg: Bonne signature de « VilainPirate <toto@tata.titi> »
    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 : 0151 E2FC 6AE1 035B AF98  CE1D C060 C2E6 00CB 30ADOn voit ici que je ne fais pas confiance à cette clé.
Chiffrement et déchiffrement
gpg -r C45D9C4D  -e monfichier
gpg -o lefichier.txt -d monfichier.gpgIl faut passer à -r l’identifiant du destinataire pour qui on souhaite chiffrer ce message. Le reste est explicite, -e suivi du fichier à chiffrer. Pour déchiffrer, -d suivi du nom du fichier à déchiffrer. On rajoute l’option -o si on souhaite avoir un nom particulier pour le fichier une fois déchiffré.
Signer la clé de quelqu’un c’est pour indiquer qu’on connait la personne et qu’elle est de confiance. Attention cependant à ne pas signer n’importe-quelle clé.
C’est un raccourcis de la commande --edit option « sign ». Elle peut s’utiliser de cette façon :
Signer une clé
gpg --sign-key adresse@ema.ilOn peut retourner une clef signée à son propriétaire afin de l’informer de notre contre-signature. On peut également utiliser un serveur de clef et rendre cette information disponible de tous (ce qui augmentera la confiance en cet utilisateur, pour les gens qui nous font confiance).
Envoyer la contre-signature de la clé
gpg --keyserver keys.gnupg.net --send-keys 0868FE01
    gpg: envoi de la clef 0868FE01 au serveur hkp keys.gnupg.netrafraichissement de clés
gpg --refresh-keysPour ceux qui souhaitent profiter de GPG sur leur navigateur web, il y a enigform qui s’intègre à Firefox. Pour le mail il y a enigmail, qui s’intègre à Thunderbird.