Gnupg
De Linuxmemo.
 (→Réseau de confiance)  | 
		 (→Astuces)  | 
		||
| (22 versions intermédiaires masquées) | |||
| Ligne 9 : | Ligne 9 : | ||
  http://keys.gnupg.net/  |   http://keys.gnupg.net/  | ||
  https://pgp.key-server.io/  |   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==  | ==réception de clef via proxy==  | ||
| Ligne 79 : | Ligne 94 : | ||
Confirmation avant écrasement  | Confirmation avant écrasement  | ||
  --interactive ou -i  |   --interactive ou -i  | ||
| - | + | ===Signer un fichier===  | |
| - | 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)  | 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  | |
| - |   gpg --  | + |   # 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==  | ==Interface graphique==  | ||
| Ligne 141 : | Ligne 147 : | ||
  QDBusConnection: session D-Bus connection created before QCoreApplication. Application may misbehave.  |   QDBusConnection: session D-Bus connection created before QCoreApplication. Application may misbehave.  | ||
  kgpg -k  |   kgpg -k  | ||
| + | |||
| + | ==best-practices==  | ||
| + | https://riseup.net/fr/security/message-security/openpgp/gpg-best-practices  | ||
==Problème / incohérence==  | ==Problème / incohérence==  | ||
Supprimer le rep ~/.gnupg , recréation vierge , puis réimporter les clefs.  | 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