Gnupg

De Linuxmemo.

(Différences entre les versions)
(Signer un fichier)
(Astuces)
 
(17 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.
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.
Ligne 95 : Ligne 110 :
  Sortie : [fichier sorti signature].sig
  Sortie : [fichier sorti signature].sig
-
==Vérification de signature sur un fichier==
+
===Vérification de signature sur un fichier (avant déchiffrement)===
  gpg --verify [fichier signé].gpg
  gpg --verify [fichier signé].gpg
  ou
  ou
  gpg --verify [fichier signé].asc
  gpg --verify [fichier signé].asc
 +
Vérifier la signature détaché (fichier binaire)
 +
gpg  --verify  [fichier signature]  [fichier signé]
-
==Chiffrer un fichier==
+
===Chiffrer un fichier (--encrypt ou -e)===
 +
gpg -r [uid] -e -a -o [fichier sorti] [fichier lu]
 +
Sortie sans l’option -o : [fichier].gpg
-
    --encrypt ou -e
+
Chiffrer et signer
 +
gpg  ---e [fichier lu]
-
gpg -r [uid] -e  --o [fichier sorti] [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]
-
    Sortie sans l’option -o : [fichier].gpg
 
-
 
-
Chiffrer et signer gpg  -s  -a  -e [fichier lu]
 
-
Vérifier la signature séparée gpg  --verify  [fichier signature]  [fichier signé]
 
-
Vérifier la signature incluse gpg  --verify  [fichier lu]
 
-
Déchiffrer un fichier
 
-
 
-
    --decrypt ou -d
 
-
 
-
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
-
    --symmetric ou -c
+
gpg  -c  -a  -o  [fichier sorti]  [fichier lu]
-
 
+
-
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]
-
    --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==
==Interface graphique==
Ligne 133 : 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

Sommaire

[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

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)

Outils personnels