Gnupg

De Linuxmemo.

(Différences entre les versions)
(Déchiffrer un fichier (--decrypt ou -d non nécessaire option par défaut ))
(Astuces)
 
(10 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 120 : Ligne 135 :
-
===maj auto des cles==
+
===maj auto des cles===
-
*crontab
+
*crontab de l'utilisateur
 +
crontab -e
  # m h  dom mon dow  command
  # 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
  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
Ligne 137 : Ligne 153 :
==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