Gnupg
De Linuxmemo.
(Page créée avec « Catégorie:Logiciel Commandes GnuPG essentielles Gestion du trousseau : uid personnels et clefs publiques de tiers Aide, liste des commandes et options gpg --help Gén... ») |
(→Astuces) |
||
| (54 versions intermédiaires masquées) | |||
| Ligne 1 : | Ligne 1 : | ||
[[Catégorie:Logiciel]] | [[Catégorie:Logiciel]] | ||
| + | répertoire « ~/.gnupg » créé | ||
| + | nouveau fichier de configuration « ~/.gnupg/gpg.conf » créé | ||
| + | le porte-clefs « ~/.gnupg/pubring.gpg » a été créé | ||
| + | ~/.gnupg/trustdb.gpg : base de confiance créée | ||
| - | + | ==Serveur de clés== | |
| - | + | https://pgp.mit.edu/ | |
| - | + | http://keys.gnupg.net/ | |
| - | + | https://pgp.key-server.io/ | |
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | hkp://p80.pool.sks-keyservers.net:80 | |
| - | + | * default keys server | |
| + | The upstream default currently uses the SKS keyservers. The IP you saw is one of those listed for hkps.pool.sks-keyservers.net: | ||
| + | $ dig +short hkps.pool.sks-keyservers.net | ||
| + | 209.244.105.201 | ||
| + | 37.191.231.105 | ||
| + | 192.146.137.98 | ||
| - | + | This is set during compile time via configure.ac: | |
| - | + | AC_DEFINE_UNQUOTED(DIRMNGR_DEFAULT_KEYSERVER, | |
| + | "hkps://hkps.pool.sks-keyservers.net", | ||
| + | [The default keyserver for dirmngr to use, if none is explicitly given]) | ||
| - | + | ==réception de clef via proxy== | |
| - | + | gpg --keyserver hkp://pgp.key-server.io:80 --keyserver-options http-proxy=http://172.21.xxx.xxx:8080,debug '''--search-keys [KEY]''' | |
| + | gpg --keyserver hkp://pgp.mit.edu:80 --keyserver-options http-proxy=http://172.21.xxx.xxx:8080,debug --search-keys [KEY] | ||
| + | gpg --keyserver hkp://pgp.mit.edu:80 --keyserver-options http-proxy=http://172.21.xxx.xxx:8080,debug '''--recv-keys 0x059Exxxx''' | ||
| - | + | ==Commandes GnuPG essentielles== | |
| + | ===Gestion du trousseau : uid personnels et clefs publiques de tiers=== | ||
| + | Aide, liste des commandes et options | ||
| + | gpg --help | ||
| + | Génération du trousseau | ||
| + | gpg --gen-key | ||
| + | Génère un certificat de révocation | ||
| + | gpg --gen-revoke | ||
| + | Lister les clefs. A défaut, un fichier "pubring.gpg" vide est créé. | ||
| + | gpg --list-key | ||
| + | '''gpg -k''' | ||
| + | Lister les clefs privés. A défaut, un fichier "secring.gpg" vide est créé. | ||
| + | gpg --list-secret-keys | ||
| + | '''gpg -K''' | ||
| + | Gestion des clefs | ||
| + | '''gpg --edit-key [id]''' (adduid | trust | save | quit) | ||
| + | Rechercher un clefs sur le serveur | ||
| + | gpg --keyserver hkp://pgp.key-server.io:80 --keyserver-options http-proxy=http://172.21.xxx.xxx:8080,debug --search-keys [KEY] | ||
| + | gpg --keyserver hkp://pgp.mit.edu:80 --keyserver-options http-proxy=http://172.21.xxx.xxx:8080,debug --search-keys [KEY] | ||
| + | Envoi de clef publique à un serveur de clefs | ||
| + | gpg --keyserver [pgp.mit.edu] --send-key [uid] | ||
| + | Récupérer une clef publique sur un serveur de clefs | ||
| + | gpg --keyserver [pgp.mit.edu] --recv-keys [uid] | ||
| - | + | ===Manipulation des clefs=== | |
| + | Exporter la clef publique dans un fichier | ||
| + | gpg --export --armor [uid] > [fichier sorti] | ||
| + | Importer une clef publique depuis un fichier | ||
| + | '''gpg --import [fichier lu]''' | ||
| + | Importer une clef privé depuis un fichier | ||
| + | '''gpg --allow-secret-key-import --import [fichier lu]''' | ||
| + | Exporter une clef privée | ||
| + | gpg --export-secret-key -a > [fichier sorti] | ||
| + | Importer une clef privée depuis un fichier | ||
| + | gpg --import --allow-secret-key-import [fichier lu] | ||
| + | Sortir l'empreinte de la clef publique | ||
| + | gpg --fingerprint [uid] > [fichier sorti] | ||
| - | + | ===Réseau de confiance=== | |
| + | Signer la clef publique d'un tiers | ||
| + | gpg --sign-key [uid] | ||
| + | Lister les signatures | ||
| + | '''gpg --list-sigs [uid]''' | ||
| + | Vérifier les signatures (?=on n'a pas la cle publique/!=on l'a) | ||
| + | gpg --check-sigs [uid] | ||
| + | Garder son tousseau a jour | ||
| + | '''gpg --refresh-keys''' | ||
| + | # crontab -e | ||
| + | 0 12 * * * /usr/bin/gpg --refresh-keys > /dev/null 2>&1 | ||
| - | + | ===Principales options=== | |
| + | Sortie ASCII (au lieu de binaire) | ||
| + | --armor ou -a | ||
| + | Spécifier le fichier sorti | ||
| + | --output ou -o [nom_du_fichier] | ||
| + | -o- sortie standard | ||
| + | Spécifier l’utilisateur | ||
| + | '''--recipient ou -r [nom]''' | ||
| + | Mode verbeux | ||
| + | --verbose ou -b | ||
| + | Mode silencieux | ||
| + | --quiet ou -q | ||
| + | Confirmation avant écrasement | ||
| + | --interactive ou -i | ||
| + | ===Signer un fichier=== | ||
| + | le fichier d'origine est conserver, un nouveau fichier est généré .gpg ou .asc. C'est uniquement ce dernier fichier qu'il faut communiquer. | ||
| - | + | *Signature (compressée) | |
| + | gpg --sign [-a] [fichier signé] | ||
| + | (--sign ou -s) | ||
| + | Sortie : [fichier].gpg en binaire ou [fichier].asc en ASCII avec -a | ||
| - | + | *Signature (non compressée) | |
| + | gpg --clearsign -a [fichier signé] | ||
| - | + | *Signature détachée (pour les fichiers binaire) | |
| + | gpg -b -a [uid] -o [fichier sorti signature] [fichier à signer] | ||
| + | (--detach-sign ou -b) | ||
| + | Sortie : [fichier sorti signature].sig | ||
| - | + | ===Vérification de signature sur un fichier (avant déchiffrement)=== | |
| + | gpg --verify [fichier signé].gpg | ||
| + | ou | ||
| + | gpg --verify [fichier signé].asc | ||
| + | Vérifier la signature détaché (fichier binaire) | ||
| + | gpg --verify [fichier signature] [fichier signé] | ||
| - | + | ===Chiffrer un fichier (--encrypt ou -e)=== | |
| + | gpg -r [uid] -e -a -o [fichier sorti] [fichier lu] | ||
| + | Sortie sans l’option -o : [fichier].gpg | ||
| - | + | Chiffrer et signer | |
| + | gpg -s -a -e [fichier lu] | ||
| - | + | ===Déchiffrer un fichier (--decrypt ou -d non nécessaire option par défaut )=== | |
| - | + | gpg -r [uid] -d -o [fichier sorti] [fichier lu] | |
| - | + | ||
| - | + | ||
| - | |||
| - | |||
| - | |||
Cryptage symétrique (pas à l’intention d’un tiers) | Cryptage symétrique (pas à l’intention d’un tiers) | ||
| + | --symmetric ou -c | ||
| + | gpg -c -a -o [fichier sorti] [fichier lu] | ||
| + | Décryptage symétrique (pas à l’intention d’un tiers) | ||
| + | --decrypt ou -d | ||
| + | gpg -d -o [fichier sorti] [fichier lu] | ||
| - | |||
| - | + | ===maj auto des cles=== | |
| - | + | *crontab de l'utilisateur | |
| + | crontab -e | ||
| + | # m h dom mon dow command | ||
| + | 0 12 * * * /usr/bin/gpg --keyserver hkp://pgp.mit.edu:80 --keyserver-options http-proxy=http://172.21.xxx.xxx:8080,debug --refresh-keys > /dev/null 2>&1 | ||
| + | |||
| + | ==Interface graphique== | ||
| + | *kgpg | ||
| + | kgpg | ||
| + | QDBusConnection: session D-Bus connection created before QCoreApplication. Application may misbehave. | ||
| + | QDBusConnection: session D-Bus connection created before QCoreApplication. Application may misbehave. | ||
| + | kgpg -k | ||
| + | |||
| + | ==best-practices== | ||
| + | https://riseup.net/fr/security/message-security/openpgp/gpg-best-practices | ||
| + | |||
| + | ==Problème / incohérence== | ||
| + | Supprimer le rep ~/.gnupg , recréation vierge , puis réimporter les clefs. | ||
| + | |||
| + | ==Astuces== | ||
| + | echo "Your secret message" | gpg -ea -r "Recipient name" | mail -s "Subject" recipient@example.com | ||
| + | |||
| + | -e Encrypt data to one or more public keys | ||
| + | -a Create ASCII armored output | ||
| + | -r Encrypt for user id name | ||
| + | -s Sign a message | ||
| + | |||
| + | |||
| + | |||
| + | https://riseup.net/fr/security/message-security/openpgp/gpg-best-practices | ||
| + | |||
| + | * display long key by default: | ||
| + | vim ~/.gnupg/gpg.conf | ||
| + | and add at the end of file: | ||
| + | keyid-format 0xlong | ||
| + | with-fingerprint | ||
| - | + | *ref | |
| - | + | https://wiki.csnu.org/index.php/GnuPG_:_Cr%C3%A9er_la_paire_de_cl%C3%A9_gpg_parfaite_:_cl%C3%A9_maitre,_subkeys_et_support_smartcard_(yubikey) | |
Version actuelle en date du 9 mars 2020 à 14:50
répertoire « ~/.gnupg » créé nouveau fichier de configuration « ~/.gnupg/gpg.conf » créé le porte-clefs « ~/.gnupg/pubring.gpg » a été créé ~/.gnupg/trustdb.gpg : base de confiance créée
[modifier] Serveur de clés
https://pgp.mit.edu/ http://keys.gnupg.net/ https://pgp.key-server.io/
hkp://p80.pool.sks-keyservers.net:80
- default keys server
The upstream default currently uses the SKS keyservers. The IP you saw is one of those listed for hkps.pool.sks-keyservers.net:
$ dig +short hkps.pool.sks-keyservers.net 209.244.105.201 37.191.231.105 192.146.137.98
This is set during compile time via configure.ac:
AC_DEFINE_UNQUOTED(DIRMNGR_DEFAULT_KEYSERVER,
"hkps://hkps.pool.sks-keyservers.net",
[The default keyserver for dirmngr to use, if none is explicitly given])
[modifier] réception de clef via proxy
gpg --keyserver hkp://pgp.key-server.io:80 --keyserver-options http-proxy=http://172.21.xxx.xxx:8080,debug --search-keys [KEY] gpg --keyserver hkp://pgp.mit.edu:80 --keyserver-options http-proxy=http://172.21.xxx.xxx:8080,debug --search-keys [KEY] gpg --keyserver hkp://pgp.mit.edu:80 --keyserver-options http-proxy=http://172.21.xxx.xxx:8080,debug --recv-keys 0x059Exxxx
[modifier] Commandes GnuPG essentielles
[modifier] Gestion du trousseau : uid personnels et clefs publiques de tiers
Aide, liste des commandes et options
gpg --help
Génération du trousseau
gpg --gen-key
Génère un certificat de révocation
gpg --gen-revoke
Lister les clefs. A défaut, un fichier "pubring.gpg" vide est créé.
gpg --list-key gpg -k
Lister les clefs privés. A défaut, un fichier "secring.gpg" vide est créé.
gpg --list-secret-keys gpg -K
Gestion des clefs
gpg --edit-key [id] (adduid | trust | save | quit)
Rechercher un clefs sur le serveur
gpg --keyserver hkp://pgp.key-server.io:80 --keyserver-options http-proxy=http://172.21.xxx.xxx:8080,debug --search-keys [KEY] gpg --keyserver hkp://pgp.mit.edu:80 --keyserver-options http-proxy=http://172.21.xxx.xxx:8080,debug --search-keys [KEY]
Envoi de clef publique à un serveur de clefs
gpg --keyserver [pgp.mit.edu] --send-key [uid]
Récupérer une clef publique sur un serveur de clefs
gpg --keyserver [pgp.mit.edu] --recv-keys [uid]
[modifier] Manipulation des clefs
Exporter la clef publique dans un fichier
gpg --export --armor [uid] > [fichier sorti]
Importer une clef publique depuis un fichier
gpg --import [fichier lu]
Importer une clef privé depuis un fichier
gpg --allow-secret-key-import --import [fichier lu]
Exporter une clef privée
gpg --export-secret-key -a > [fichier sorti]
Importer une clef privée depuis un fichier
gpg --import --allow-secret-key-import [fichier lu]
Sortir l'empreinte de la clef publique
gpg --fingerprint [uid] > [fichier sorti]
[modifier] Réseau de confiance
Signer la clef publique d'un tiers
gpg --sign-key [uid]
Lister les signatures
gpg --list-sigs [uid]
Vérifier les signatures (?=on n'a pas la cle publique/!=on l'a)
gpg --check-sigs [uid]
Garder son tousseau a jour
gpg --refresh-keys # crontab -e 0 12 * * * /usr/bin/gpg --refresh-keys > /dev/null 2>&1
[modifier] Principales options
Sortie ASCII (au lieu de binaire)
--armor ou -a
Spécifier le fichier sorti
--output ou -o [nom_du_fichier] -o- sortie standard
Spécifier l’utilisateur
--recipient ou -r [nom]
Mode verbeux
--verbose ou -b
Mode silencieux
--quiet ou -q
Confirmation avant écrasement
--interactive ou -i
[modifier] Signer un fichier
le fichier d'origine est conserver, un nouveau fichier est généré .gpg ou .asc. C'est uniquement ce dernier fichier qu'il faut communiquer.
- Signature (compressée)
gpg --sign [-a] [fichier signé] (--sign ou -s) Sortie : [fichier].gpg en binaire ou [fichier].asc en ASCII avec -a
- Signature (non compressée)
gpg --clearsign -a [fichier signé]
- Signature détachée (pour les fichiers binaire)
gpg -b -a [uid] -o [fichier sorti signature] [fichier à signer] (--detach-sign ou -b) Sortie : [fichier sorti signature].sig
[modifier] Vérification de signature sur un fichier (avant déchiffrement)
gpg --verify [fichier signé].gpg ou gpg --verify [fichier signé].asc
Vérifier la signature détaché (fichier binaire)
gpg --verify [fichier signature] [fichier signé]
[modifier] Chiffrer un fichier (--encrypt ou -e)
gpg -r [uid] -e -a -o [fichier sorti] [fichier lu] Sortie sans l’option -o : [fichier].gpg
Chiffrer et signer
gpg -s -a -e [fichier lu]
[modifier] Déchiffrer un fichier (--decrypt ou -d non nécessaire option par défaut )
gpg -r [uid] -d -o [fichier sorti] [fichier lu]
Cryptage symétrique (pas à l’intention d’un tiers)
--symmetric ou -c gpg -c -a -o [fichier sorti] [fichier lu]
Décryptage symétrique (pas à l’intention d’un tiers)
--decrypt ou -d gpg -d -o [fichier sorti] [fichier lu]
[modifier] maj auto des cles
- crontab de l'utilisateur
crontab -e # m h dom mon dow command 0 12 * * * /usr/bin/gpg --keyserver hkp://pgp.mit.edu:80 --keyserver-options http-proxy=http://172.21.xxx.xxx:8080,debug --refresh-keys > /dev/null 2>&1
[modifier] Interface graphique
- kgpg
kgpg QDBusConnection: session D-Bus connection created before QCoreApplication. Application may misbehave. QDBusConnection: session D-Bus connection created before QCoreApplication. Application may misbehave. kgpg -k
[modifier] best-practices
https://riseup.net/fr/security/message-security/openpgp/gpg-best-practices
[modifier] Problème / incohérence
Supprimer le rep ~/.gnupg , recréation vierge , puis réimporter les clefs.
[modifier] Astuces
echo "Your secret message" | gpg -ea -r "Recipient name" | mail -s "Subject" recipient@example.com
-e Encrypt data to one or more public keys -a Create ASCII armored output -r Encrypt for user id name -s Sign a message
https://riseup.net/fr/security/message-security/openpgp/gpg-best-practices
- display long key by default:
vim ~/.gnupg/gpg.conf and add at the end of file: keyid-format 0xlong with-fingerprint
- ref