GPG
ATTENTION
Ne pas envoyer sa clé sur un serveur de clés sans savoir ce qu'on fait…
Gérer ses clés
Générer une paire de clés
gpg --gen-key
Besoin d'entropie ?
grep -R zedezdezzefzefezfezf / find / apt-get update apt-get dist-upgrade -dy
Générer une clé de révocation
gpg --gen-revoke $MY_USER_ID
ou
gpg --gen-revoke $MY_USER_ID --output revoke.key
À conserver sur un support protégé !
Gérer le trousseau de clés GPG
gpg --list-key [$AN_ID] gpg --list-sigs gpg --list-secret-keys gpg --fingerprint
Exporter sa clé publique
# Pour l'envoyer par mail, par exemple gpg --export --armor # Envoi sur un serveur de clé gpg --send-keys $MY_USER_ID --keyserver $SERVER
Signer une clé
gpg --edit-key $OTHER_USER_ID trust # Signature exportable sign # Signature uniquement locale lsign
Autres opérations
gpg --edit-key $MY_USER_ID
Utiliser ses clés
Signer un fichier
gpg --sign [ --local-user $MY_USER_ID ] --armor [fichier] gpg -s [ -u $MY_USER_ID ] -a fichier
> fichier.asc
Vérifier une signature
gpg --verify fichier
Chiffrer un fichier
Chiffrer un fichier avec la clé publique du destinataire, avec la possibilité de le chiffrer en plus pour soi-même (option --encrypt-to
) :
gpg --recipient $OTHER_USER_ID [fichier] [--encrypt-to $MY_USER_ID] gpg -r $OTHER_USER_ID -r $OTHER_USED_ID2 [fichier] [--encrypt-to $MY_USER_ID]
Idem, mais fait en sorte qu'on ne puisse pas savoir pour qui ce message est chiffré (équivalent du « Bcc: » pour les mails) :
gpg --hidden-recipient $OTHER_USER_ID [fichier] [--encrypt-to $MY_USER_ID] gpg -R $OTHER_USER_ID -R $OTHER_USED_ID2 [fichier] [--encrypt-to $MY_USER_ID]
Déchiffrer un fichier
gpg --decrypt [fichier] gpg -d [fichier]
Chiffrer et signer
gpg [--local-user $MY_USER_ID] -remote-user $OTHER_USER_ID --encrypt --sign --armor [fichier] gpg [-u $MY_USER_ID] -r $OTHER_USER_ID -e -s -a [fichier]
Déchiffer et vérifier une signature
gpg --decrypt --verifiy [fichier] gpg -d -v [fichier]
Chiffrement symétrique
gpg --symmetric [ --cipher-algo AES256, AES192, AES, CAST5, 3DES ] gpg -c [ --cipher-algo AES256, AES192, AES, CAST5, 3DES ]
Visualisation de son réseau de confiance
L'ensemble des signatures entre clés forme ce qu'on appelle un **réseau de confiance** : c'est un graphe où les nœuds sont des clés, et les arêtes (orientées) sont des signatures.
Pour visualiser le réseau de confiance (de son point de vue), on peut utiliser le script suivant :
#!/bin/sh # # Creates a graph of the local GPG web of trust. # Output: "gpg.png" in the current directory. # # You can *optionally* provide names and/or mail addresses on the command line to get a partial graph. TMPFILE=/tmp/gpgweb.dot gpg --list-sigs $@ | sig2dot > "$TMPFILE" 2>/dev/null dot -Tpng -o gpg.png "$TMPFILE"
Il y a besoin de graphviz
(facile à trouver sous n'importe quel OS potable, normalement) et sig2dot
[1], un script en Perl.