cryptographie:gnupg2

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
cryptographie:gnupg2 [2018/05/06 07:33] – [Serveur de clés] Ajout des serveurs en .onion d2aircryptographie:gnupg2 [2023/01/22 10:45] (Version actuelle) – [Serveur de clés] sks-keyservers.net : This service is deprecated. d2air
Ligne 1: Ligne 1:
 ====== Utilisation de GNU Privacy Guard (version 2) ====== ====== Utilisation de GNU Privacy Guard (version 2) ======
-Ce logiciel est installé par défaut sous Linux – au moins sur Debian et Ubuntu – est désormais disponible qu’en version 2 sur les distributions les plus récentes. Mon [[cryptographie:gnupg|utilisation de la version précédente]] n’est plus pertinente, mais elle sera la base de cet article.+Ce logiciel est installé par défaut sous Linux – au moins sur Debian et Ubuntu – est désormais disponible en version 2 sur les distributions les plus récentes. Mon [[cryptographie:gnupg|utilisation de la version précédente]] n’est plus pertinente, mais elle sera la base de cet article.
  
 Les principales évolutions sont décrites [[https://www.gnupg.org/faq/whats-new-in-2.1.html|ici]]. Les principales évolutions sont décrites [[https://www.gnupg.org/faq/whats-new-in-2.1.html|ici]].
Ligne 9: Ligne 9:
 sudo apt update && sudo apt install rng-tools sudo apt update && sudo apt install rng-tools
 </code> </code>
-Pour configuer ''rng-tools'' il faut éditer le fichier ''/etc/default/rng-tools'' pour ajouter cette ligne : +Pour configuer ''rng-tools'' il faut éditer le fichier ''/etc/default/rng-tools'', mais c'est normalement inutile celui-ci pouvant reconnaître seul les sources d'entropie. Il faudra surtout éviter de le configurer avec ''/dev/urandom'' comme source (voir [[https://lwn.net/Articles/525459/|cet article]]). 
-<file sh rng-tools> +
-HRNGDEVICE=/dev/urandom +
-</file> +
-Et ensuite il faudra relancer ce service avec la commande : +
-<code> +
-sudo service rng-tools restart +
-</code>+
 ===== Configuration de GNUPG ===== ===== Configuration de GNUPG =====
 ==== Serveur de clés ==== ==== Serveur de clés ====
Ligne 25: Ligne 19:
 echo sks-keyservers.netCA.pem | sudo tee -a /etc/ca-certificates.conf echo sks-keyservers.netCA.pem | sudo tee -a /etc/ca-certificates.conf
 sudo update-ca-certificates sudo update-ca-certificates
 +rm ~/sks-keyservers.netCA.pem 
 </code> </code>
 +<note warning>
 +**sks-keyservers.net** : "This service is deprecated. This means it is no longer maintained, and new HKPS certificates will not be issued. Service reliability should not be expected.
 +2021-06-21: Due to even more GDPR takedown requests, the DNS records for the pool will no longer be provided at all."
 +</note>
 Il faudra ensuite utiliser les paramètres suivants dans ''~/.gnupg/gpg.conf'' : Il faudra ensuite utiliser les paramètres suivants dans ''~/.gnupg/gpg.conf'' :
 <file sh gpg.conf> <file sh gpg.conf>
Ligne 31: Ligne 30:
 </file> </file>
 Et spécifier le chemin d’accès complet où vous avez sauvegardé le fichier de l’autorité de certification en bas du fichier ''dirmngr.conf'' : Et spécifier le chemin d’accès complet où vous avez sauvegardé le fichier de l’autorité de certification en bas du fichier ''dirmngr.conf'' :
 +<file sh dirmngr.conf>
 +hkp-cacert /etc/ssl/certs/sks-keyservers.netCA.pem
 +</file>
 +Sous certaines versions du système – avant Ubuntu 18.04 – il faudra une double extension, car la commande ''update-ca-certificates'' semble en rajouter une à celle existante sur le nom du fichier.
 <file sh dirmngr.conf> <file sh dirmngr.conf>
 hkp-cacert /etc/ssl/certs/sks-keyservers.netCA.pem.pem hkp-cacert /etc/ssl/certs/sks-keyservers.netCA.pem.pem
Ligne 53: Ligne 56:
 Nous devons nous assurer que les clés se rafraîchissent régulièrement. La meilleure façon de le faire avec Debian ou Ubuntu est d’utiliser ''parcimonie'' : Nous devons nous assurer que les clés se rafraîchissent régulièrement. La meilleure façon de le faire avec Debian ou Ubuntu est d’utiliser ''parcimonie'' :
 <code> <code>
-sudo apt-get install parcimonie+sudo apt install parcimonie
 </code> </code>
 [[https://gaffer.ptitcanardnoir.org/intrigeri/code/parcimonie/|Parcimonie]] est un démon qui rafraîchit lentement votre trousseau de clés à partir d’un serveur de clés en passant par [[https://www.torproject.org/|Tor]]. Il utilise un délai aléatoire et un nouveau circuit Tor pour chaque clé. Le but est de compliquer la vie d’un attaquant qui voudrait corréler les mises à jour de clés avec votre trousseau. [[https://gaffer.ptitcanardnoir.org/intrigeri/code/parcimonie/|Parcimonie]] est un démon qui rafraîchit lentement votre trousseau de clés à partir d’un serveur de clés en passant par [[https://www.torproject.org/|Tor]]. Il utilise un délai aléatoire et un nouveau circuit Tor pour chaque clé. Le but est de compliquer la vie d’un attaquant qui voudrait corréler les mises à jour de clés avec votre trousseau.
Ligne 109: Ligne 112:
 list-options show-uid-validity list-options show-uid-validity
 verify-options show-uid-validity verify-options show-uid-validity
 +
 +# Display usage
 +list-options show-usage
  
 # Try to use the GnuPG-Agent. With this option, GnuPG first tries to connect to # Try to use the GnuPG-Agent. With this option, GnuPG first tries to connect to
Ligne 122: Ligne 128:
 # communicate with to receive keys from, send keys to, and search for keys on # communicate with to receive keys from, send keys to, and search for keys on
 keyserver hkps://hkps.pool.sks-keyservers.net keyserver hkps://hkps.pool.sks-keyservers.net
 +keyserver hkp://jirk5u4osbsr34t5.onion
  
 # When using --refresh-keys, if the key in question has a preferred keyserver # When using --refresh-keys, if the key in question has a preferred keyserver
Ligne 150: Ligne 157:
 # "setpref" in the edit menu # "setpref" in the edit menu
 default-preference-list SHA512 SHA384 SHA256 SHA224 AES256 AES192 AES CAST5 ZLIB BZIP2 ZIP Uncompressed default-preference-list SHA512 SHA384 SHA256 SHA224 AES256 AES192 AES CAST5 ZLIB BZIP2 ZIP Uncompressed
 +
 +# Disable 3DES algorithm and SHA1 checksum
 +disable-cipher-algo 3DES
 +# to comment on older versions
 +weak-digest SHA1
 +
 </file> </file>
 Le détail des différentes options possibles de ce fichier se trouvent [[https://www.gnupg.org/documentation/manuals/gnupg/GPG-Configuration-Options.html|ici]]. Le détail des différentes options possibles de ce fichier se trouvent [[https://www.gnupg.org/documentation/manuals/gnupg/GPG-Configuration-Options.html|ici]].
Ligne 159: Ligne 172:
 # Provide a certificate store to override the system default # Provide a certificate store to override the system default
 # Get this from https://sks-keyservers.net/sks-keyservers.netCA.pem # Get this from https://sks-keyservers.net/sks-keyservers.netCA.pem
-hkp-cacert /etc/ssl/certs/sks-keyservers.netCA.pem.pem+hkp-cacert /etc/ssl/certs/sks-keyservers.netCA.pem
 </file> </file>
 Le détail des différentes options possibles de ce fichier se trouvent [[https://www.gnupg.org/documentation/manuals/gnupg/Dirmngr-Options.html|ici]]. Le détail des différentes options possibles de ce fichier se trouvent [[https://www.gnupg.org/documentation/manuals/gnupg/Dirmngr-Options.html|ici]].
 ===== Configuration de la clef ===== ===== Configuration de la clef =====
 ==== Clef primaire robuste ==== ==== Clef primaire robuste ====
-Il est recommandé de générer une clé RSA de 4096 bits avec l’algorithme de hachage SHA-512, mais les [[https://www.gnupg.org/faq/whats-new-in-2.1.html#ecc|courbes elliptiques]] sont maintenant supportées via l’option ''expert''.+Par défaut il est actuellement recommandé de générer une clé RSA de 4096 bits avec l’algorithme de hachage SHA-512, mais les [[https://www.gnupg.org/faq/whats-new-in-2.1.html#ecc|courbes elliptiques]] sont maintenant supportées via l’option ''expert''.
 ==== Transition d'une ancienne clef ==== ==== Transition d'une ancienne clef ====
 En cas transition, une méthode est de rédiger un [[https://riseup.net/fr/security/message-security/openpgp/key-transition|communiqué de transition]] signé par les deux clés, puis en informer les gens. [[http://ekaia.org/blog/2009/05/10/creating-new-gpgkey/|Cette page]] détaille le processus à suivre pour générer une telle clé en s’assurant d’utiliser le bon algorithme de hachage (ça peut être compliqué avec des versions de GnuPG plus anciennes que la 1.4.10). En cas transition, une méthode est de rédiger un [[https://riseup.net/fr/security/message-security/openpgp/key-transition|communiqué de transition]] signé par les deux clés, puis en informer les gens. [[http://ekaia.org/blog/2009/05/10/creating-new-gpgkey/|Cette page]] détaille le processus à suivre pour générer une telle clé en s’assurant d’utiliser le bon algorithme de hachage (ça peut être compliqué avec des versions de GnuPG plus anciennes que la 1.4.10).
Ligne 192: Ligne 205:
 </code> </code>
 ==== Générer une paire de clefs ==== ==== Générer une paire de clefs ====
-Pour de nombreuses personnes, les courbes NIST et Brainpool ont une origine douteuse et le plan pour GnuPG est d'utiliser par défaut la courbe de Bernstein 25519. GnuPG 2.1.0 est déjà compatible avec les clés de signature utilisant la variante Ed25519 de cette courbe. Ceci n'a pas encore été standardisé par l'IETF (c'est-à-dire qu'il n'y a pas de RFC) mais nous n'attendrons plus et continuerons en utilisant le format proposé pour cet algorithme de signature.+Pour de nombreuses personnes, les courbes NIST et Brainpool ont une origine douteuse et le plan pour GnuPG est d'utiliser par défaut la courbe de Bernstein 25519. GnuPG 2.1.0 est déjà compatible avec les clés de signature utilisant la variante Ed25519 de cette courbe. Ceci n'a pas encore été standardisé par l'IETF (c'est-à-dire qu'il n'y a pas de RFC)mais nous n'attendrons plus et continuerons en utilisant le format proposé pour cet algorithme de signature.
 <code> <code>
 gpg --expert --full-gen-key gpg --expert --full-gen-key
Ligne 422: Ligne 435:
 <code> <code>
 gpg --output revoke.asc --gen-revoke '<fingerprint>' gpg --output revoke.asc --gen-revoke '<fingerprint>'
 +</code>
 +=== Révocation d'une clef ===
 +La révocation se fait avec les commandes suivantes :
 +<code>
 +gpg --import /home/john/.gnupg/openpgp-revocs.d/A0B000FF0000FF0011111111A0B00000000000FF.rev
 +gpg --keyserver hkps.pool.sks-keyservers.net --send-keys A0B000FF0000FF0011111111A0B00000000000FF
 +</code>
 +Et avec un dossier parallèle :
 +<code>
 +gpg --homedir=/media/veracrypt1 --keyring=~/.gnupg/pubring.gpg --trustdb-name=~/.gnupg/trustdb.gpg --output ~/Bureau/revoke.asc --gen-revoke A0B000FF0000FF0011111111A0B00000000000FF
 +gpg --homedir=/media/veracrypt1 --keyring=~/.gnupg/pubring.gpg --trustdb-name=~/.gnupg/trustdb.gpg --import ~/Bureau/revoke.asc
 +gpg --keyserver hkps.pool.sks-keyservers.net --send-keys A0B000FF0000FF0011111111A0B00000000000F
 +</code>
 +ou :
 +<code>
 +gpg --homedir=/media/veracrypt1 --keyring=~/.gnupg/pubring.gpg --trustdb-name=~/.gnupg/trustdb.gpg --import ~/.gnupg/openpgp-revocs.d/A0B000FF0000FF0011111111A0B00000000000FF.rev
 +gpg --keyserver hkps.pool.sks-keyservers.net --send-keys A0B000FF0000FF0011111111A0B00000000000F
 </code> </code>
 === Révocation d'une sous-clef === === Révocation d'une sous-clef ===
Ligne 469: Ligne 499:
 <code> <code>
 gpg --with-keygrip -K gpg --with-keygrip -K
-/home/alice/.gnupg/pubring.kbx+/home/john/.gnupg/pubring.kbx
 ------------------------------ ------------------------------
-sec   rsa4096/xA0B00000000000FF 2017-12-03 [SC] [expire : 2027-12-01]+sec   ed25519/xA0B00000000000FF 2017-12-03 [SC] [expire : 2027-12-01]
       Keygrip = D4DF0C35D3E22FA6AC37DA2E54FB03F73616A3CB       Keygrip = D4DF0C35D3E22FA6AC37DA2E54FB03F73616A3CB
 uid               [ultimate] John Doe <john@domaine.eu> uid               [ultimate] John Doe <john@domaine.eu>
 </code> </code>
-La clef privée xA0B00000000000FF se trouve dans le fichier ''~/.gnupg/private-keys-v1.d/D4DF0C35D3E22FA6AC37DA2E54FB03F73616A3CB.key''. Sortez simplement ce fichier de son répertoire et stockez-le sur le support de votre choix. Quand vous aueza besoin d’utiliser la clef primaire, remettez temporairement le fichier en place et c’est tout.+La clef privée xA0B00000000000FF se trouve dans le fichier ''~/.gnupg/private-keys-v1.d/D4DF0C35D3E22FA6AC37DA2E54FB03F73616A3CB.key''. Sortez simplement ce fichier de son répertoire et stockez-le sur le support de votre choix. Quand vous auez besoin d’utiliser la clef primaire, remettez temporairement le fichier en place et c’est tout.
  
 Je vous recommande de conserver la ou les clefs privées sur un support externe dans un volume crypté avec [[https://veracrypt.codeplex.com/|VeraCrypt]]. Je vous recommande de conserver la ou les clefs privées sur un support externe dans un volume crypté avec [[https://veracrypt.codeplex.com/|VeraCrypt]].
 +
 +=== Double répertoire gnupg pour les clefs privées ===
 +Pour éviter de manipuler l’importation et l’exportation de fichiers pour les opérations de signature de clefs ou de création de sous-clés, il est possible de créer sur un support amovible (disque, clef USB…) – et si possible chiffré – une autre configuration de GnuPG. Je vous propose de faire cela sur un volume crypté avec [[https://veracrypt.codeplex.com/|VeraCrypt]].
 +
 +== Exportation des clefs ==
 +Il faut exporter les clefs dans des fichiers :
 +<code>
 +gpg --armor --export 0xA0B00000000000FF > clepublique.asc
 +gpg --armor --export-secret-key 0xA0B00000000000FF > clesecrete.asc
 +gpg --armor --export-secret-subkeys 0xA0B00000000000FF > sousclessecretes.asc
 +</code>
 +Avec ces commandes, la clef publique est exportée dans le fichier ''clepublique.asc'', la clé privée dans le fichier ''clesecrete.asc'' et les clés secrètes des sous-clés dans le fichier ''sousclessecretes.asc''. La commande ''--armor'' n’est pas obligatoire, mais elle permet d’imprimer les fichiers produits en les créant en ASCII. Aucun mot de passe est demandé à l’exportation des clés secrètes, car elles sont exportées crypter.
 +== Suppression des clefs secrètes ==
 +Après les avoir sauvegardées, il faut maintenant supprimer les clés secrètes de notre trousseau :
 +<code>
 +gpg --delete-secret-keys 0xA0B00000000000FF
 +gpg (GnuPG) 2.2.4; Copyright (C) 2017 Free Software Foundation, Inc.
 +This is free software: you are free to change and redistribute it.
 +There is NO WARRANTY, to the extent permitted by law.
 +
 +sec  ed25519/0xA0B00000000000FF 2017-12-03 John Doe <john@domaine.eu>
 +
 +Faut-il supprimer cette clef du porte-clefs ? (o/N) o
 +C'est une clef secrète — faut-il vraiment la supprimer ? (o/N) o
 +</code>
 +La commande ''gpg --list-secret-keys'' confirmera la suppression par une sortie vide.
 +== Réimporter les sous-clefs secrètes ==
 +Afin de pouvoir utiliser notre configuration uniquement avec des sous-clés nous devons les réimporter :
 +<code>
 +gpg --import sousclesecrete.asc 
 +gpg: clef 0xAAAAAAAAFFFFFFFF : clef secrète importée
 +gpg: clef 0xAAAAAAAAFFFFFFFF : « John Doe <john@domaine.eu> » n'est pas modifiée
 +gpg: Quantité totale traitée : 1
 +gpg:              non modifiées : 1
 +gpg:       clefs secrètes lues : 1
 +gpg:   clefs secrètes importées : 1
 +</code>
 +La commande ''gpg --list-secret-keys'' affichera :
 +<code>
 +gpg --list-secret-keys
 +/home/john/.gnupg/pubring.kbx
 +------------------------------
 +sec#  ed25519/0xA0B00000000000FF 2017-12-03 [expire : 2027-12-01]
 +      Empreinte de la clef = AAAA BBBB CCCC DDDD EEEE  FFFF 0000 1111 2222 3333
 +uid                            John Doe <john@domaine.eu>
 +ssb   ed25519/0xB0FFFFFFFFFFFF00 2017-12-03
 +ssb   ed25519/0xB0FFFFFFFFFFFF22 2017-12-03
 +</code>
 +Le caractère ''#'' placé sur la ligne de la clé privée après **sec** indique qu’elle n’est pas disponible mais les deux sous-clefs privées sont bien présentes. Cette configuration peut être utiliser pour chiffrer et signer des documents.
 +
 +À cause de l’absence de la clef privée maîtresse des fonctionnalités ne seront plus disponibles à l’édition, par exemple :
 +<code>
 +gpg> addkey
 +Les parties secrètes de la clef principale ne sont pas disponibles.
 +gpg: Échec de génération de la clef : Pas de clef secrète
 +</code>
 +== Configuration alternative externe ==
 +<code>
 +gpg --homedir=/media/veracrypt1 --import clepublique.asc clesecrete.asc 
 +gpg: Attention : les droits du répertoire personnel « /media/veracrypt2 »
 +            ne sont pas sûrs
 +gpg: le trousseau local « /media/veracrypt1/pubring.kbx » a été créé
 +gpg: /media/veracrypt1/trustdb.gpg : base de confiance créée
 +
 +gpg: clef 000000FF : clef publique « John Doe <john@domaine.eu> » importée
 +gpg: clef 000000FF : clef secrète importée
 +gpg: clef 000000FF : « John Doe <john@domaine.eu> » n'est pas modifiée
 +gpg: Quantité totale traitée : 2
 +gpg:              non modifiées : 2
 +gpg:       clefs secrètes lues : 1
 +gpg:   clefs secrètes importées : 1
 +</code>
 +Pour supprimer l’avertissement de cette sortie ''gpg: Attention : les droits du répertoire personnel « /media/veracrypt1 » ne sont pas sûrs'' il faut accorder des permissions en lecture et écriture uniquement à l’utilisateur courant (nous).
 +<code>
 +chmod 700 /media/veracrypt1
 +</code>
 +== Utilisation du répertoire alternatif ==
 +Il est possible d’utiliser ce répertoire seulement comme avec ''.gnupg'', mais aussi avec celui ci. Pour ce type d’utilisation, par exemple pour modifier sa clé ou signer celle d’un autre utilisateur, il suffit de monter la volume contenant notre répertoire alternatif.
 +Pour éditer notre clef avec les deux répertoires la commande est la suivante :
 +<code>
 +gpg --homedir=/media/veracrypt1 --keyring=~/.gnupg/pubring.kbx --trustdb-name=~/.gnupg/trustdb.gpg --edit-key 'A0B000FF0000FF00111111110000AAAAFFFFFFFF'
 +gpg (GnuPG) 2.2.4; Copyright (C) 2017 Free Software Foundation, Inc.
 +This is free software: you are free to change and redistribute it.
 +There is NO WARRANTY, to the extent permitted by law.
 +
 +La clef secrète est disponible.
 +
 +pub  ed25519/0xA0B00000000000FF  créé : 2017-12-03  expire : 2027-12-01  utilisation : SC  
 +                               confiance : ultime        validité : ultime
 +sub  ed25519/0xB0FFFFFFFFFFFF00  créé : 2017-12-03  expire : 2027-12-01  utilisation : E   
 +sub  ed25519/0xB0FFFFFFFFFFFF22  créé : 2017-12-03  expire : 2019-12-03  utilisation : S   
 +[  ultime ] (1). John Doe <john@domaine.eu>
 +
 +gpg> 
 +</code>
 +Le paramètre obsolète ''secret-keyring'' est maintenant inutile.
 +Toutes les opérations nécessitant la clé privée principale deviennent possibles, mais attention tous les changements se feront dans le répertoire alternatif ''/media/veracrypt1'', ainsi l’ajout d’une sous clé devra être répercuté manuellement dans le répertoire courant.
 +<code>
 +gpg2 --home=/media/veracrypt1 --armor --export 0xA0B00000000000FF > maj-clepublique.asc
 +</code>
 +Cette commande mettra à jour que la partie publique des clés. Il faudra faire la même opération pour les clés privées, mais **il existe un problème de fusion des sous-clés**, il n’existe pas de mise à jour des sous-clés secrètes. Pour contrer ce problème il faut effacer toutes les clés privées du répertoire courant (celui sans la clé privée maîtresse) puis exporter les sous-clés secrètes du répertoire alternatif pour les importer dans le répertoire courant.
 +<code>
 +gpg --delete-secret-keys 0xA0B00000000000FF
 +gpg --homedir=/media/veracrypt1 --armor --export-secret-subkeys 0xA0B00000000000FF > maj-sousclesecrete.asc
 +gpg --import maj-sousclesecrete.asc
 +</code>
 +=== Certification d'une clef publique  ===
 +Pour signer une clef publique avec le répertoire alternatif, après avoir vérifier le fingerprint avec le correspondant, il faut utiliser la commande pour éditer la clef :
 +<code>
 +gpg --homedir=/media/veracrypt1 --keyring=~/.gnupg/pubring.kbx --trustdb-name=~/.gnupg/trustdb.gpg --edit-key 0xBBAACC001122334455
 +</code>
 +puis dans la console les commandes ''key'', ''sign'' et ''trust'' puis ''save'' pour finir.
 ==== Publication de la clef publique ==== ==== Publication de la clef publique ====
 Vous pouvez maintenant publier la clef publique, pour cela il faut utiliser la commande : Vous pouvez maintenant publier la clef publique, pour cela il faut utiliser la commande :
Ligne 483: Ligne 625:
 gpg --send-keys 0xA0B00000000000FF gpg --send-keys 0xA0B00000000000FF
 </code>  </code> 
 +===== GnuPG et authentification SSH =====
 +==== Générer une sous-clef d’authentification ====
 +<code>
 +gpg --homedir=/media/veracrypt1 --keyring=~/.gnupg/pubring.kbx --trustdb-name=~/.gnupg/trustdb.gpg --edit-key 'A0B000FF0000FF00111111110000AAAAFFFFFFFF'
 +gpg (GnuPG) 2.2.4; Copyright (C) 2017 Free Software Foundation, Inc.
 +This is free software: you are free to change and redistribute it.
 +There is NO WARRANTY, to the extent permitted by law.
 +
 +La clef secrète est disponible.
 +
 +sec  ed25519/0xA0B00000000000FF
 +     créé : 2017-12-03  expire : 2027-12-01  utilisation : SC  
 +     confiance : ultime        validité : ultime
 +ssb  cv25519/0xB0FFFFFFFFFFFF00
 +     créé : 2017-12-03  expire : 2027-12-01  utilisation : E   
 +ssb  ed25519/0xB0FFFFFFFFFFFF22
 +     créé : 2017-12-03  expire : 2019-12-03  utilisation : S   
 +[  ultime ] (1). John Doe <john@domaine.eu>
 +
 +gpg> addkey
 +Les parties secrètes de la clef principale sont stockées sur la carte.
 +Sélectionnez le type de clef désiré :
 +   (3) DSA (signature seule)
 +   (4) RSA (signature seule)
 +   (5) Elgamal (chiffrement seul)
 +   (6) RSA (chiffrement seul)
 +   (7) DSA (indiquez vous-même les capacités)
 +   (8) RSA (indiquez vous-même les capacités)
 +  (10) ECC (signature seule)
 +  (11) ECC (indiquez vous-même les capacités)
 +  (12) ECC (chiffrement seul)
 +  (13) Clef existante
 +Quel est votre choix ? 11
 +
 +Actions possibles pour une clef ECDSA/EdDSA : Signer Authentifier 
 +Actions actuellement permises : Signer 
 +
 +   (S) Inverser la capacité de signature
 +   (A) Inverser la capacité d'authentification
 +   (Q) Terminé
 +
 +Quel est votre choix ? A
 +
 +Actions possibles pour une clef ECDSA/EdDSA : Signer Authentifier 
 +Actions actuellement permises : Signer Authentifier 
 +
 +   (S) Inverser la capacité de signature
 +   (A) Inverser la capacité d'authentification
 +   (Q) Terminé
 +
 +Quel est votre choix ? S
 +
 +Actions possibles pour une clef ECDSA/EdDSA : Signer Authentifier 
 +Actions actuellement permises : Authentifier 
 +
 +   (S) Inverser la capacité de signature
 +   (A) Inverser la capacité d'authentification
 +   (Q) Terminé
 +
 +Quel est votre choix ? Q
 +Sélectionnez le type de courbe elliptique désiré :
 +   (1) Curve 25519
 +   (3) NIST P-256
 +   (4) NIST P-384
 +   (5) NIST P-521
 +   (6) Brainpool P-256
 +   (7) Brainpool P-384
 +   (8) Brainpool P-512
 +   (9) secp256k1
 +Quel est votre choix ? 1
 +Veuillez indiquer le temps pendant lequel cette clef devrait être valable.
 +         0 = la clef n'expire pas
 +      <n>  = la clef expire dans n jours
 +      <n>w = la clef expire dans n semaines
 +      <n>m = la clef expire dans n mois
 +      <n>y = la clef expire dans n ans
 +Pendant combien de temps la clef est-elle valable ? (0) 5y
 +La clef expire le ven. 27 oct. 2023 03:42:20 CEST
 +Est-ce correct ? (o/N) o
 +Faut-il vraiment la créer ? (o/N) o
 +De nombreux octets aléatoires doivent être générés. Vous devriez faire
 +autre chose (taper au clavier, déplacer la souris, utiliser les disques)
 +pendant la génération de nombres premiers ; cela donne au générateur de
 +nombres aléatoires une meilleure chance d'obtenir suffisamment d'entropie.
 +
 +sec  ed25519/0xA0B00000000000FF
 +     créé : 2017-12-03  expire : 2027-12-01  utilisation : SC  
 +     confiance : ultime        validité : ultime
 +ssb  cv25519/0xB0FFFFFFFFFFFF00
 +     créé : 2017-12-03  expire : 2027-12-01  utilisation : E   
 +ssb  ed25519/0xB0FFFFFFFFFFFF22
 +     créé : 2017-12-03  expire : 2019-12-01  utilisation : S   
 +ssb  ed25519/0xB0FFFFFFFFFFFF44
 +     créé : 2018-12-03  expire : 2023-12-01  utilisation : A   
 +[  ultime ] (1). John Doe <john@domaine.eu>  
 +
 +gpg> save
 +</code>
 +==== Le fichier gpg-agent.conf ====
 +Pour activer le support SSH dans l'agent GnuPG nous éditerons ainsi le fichier :
 +<file sh gpg-agent.conf>
 +enable-ssh-support
 +</file>
 +==== Le fichier sshcontrol ====
 +Pour indiquer à GnuPG notre clef d’authentification pour SSH nous ajouterons son identifiant (keygrip) dans le fichier ''~/.gnupg/sshcontrol''.
 +<code>
 +gpg -k --with-keygrip 
 +/home/john/.gnupg/pubring.kbx
 +------------------------------
 +pub   ed25519/0xA0B00000000000FF 2017-12-03 [SC] [expire : 2027-12-01]
 +      Empreinte de la clef = A0B0 00FF 0000 FF00 1111  1111 A0B0 0000 0000 00FF
 +      Keygrip = AABBCCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDD
 +uid                  [  ultime ] John Doe <john@domaine.eu> 
 +sub   cv25519/0xB0FFFFFFFFFFFF00 2017-12-03 [E] [expire : 2027-12-01]
 +      Keygrip = BBCCDD00000000000000000000000000000000EE
 +sub   ed25519/0xB0FFFFFFFFFFFF22 2017-12-03 [S] [expire : 2019-12-01]
 +      Keygrip = CCDDEEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
 +sub   rsa4096/0xB0FFFFFFFFFFFF44 2018-12-03 [A] [expire : 2023-12-01]
 +      Keygrip = DDEEFF00000000000000000000000000000000GG
 +</code>
 +Nous récupérons la clé d'authentification 0xB0FFFFFFFFFFFF44 avec l’identifiant associé afin de l’ajouter au fichier ''~/.gnupg/sshcontrol''.
 +<code>
 +echo "DDEEFF00000000000000000000000000000000GG 0" >> ~/.gnupg/sshcontrol
 +</code>
 +Le chiffre après l’identifiant est la durée en seconde pendant laquelle l’agent gardera la clé en mémoire. Si ''0'' – la valeur par défaut – est utilisé la durée sera de 30 minutes.
 +<file sh sshcontrol>
 +DDEEFF00000000000000000000000000000000GG 0
 +</file>
 +===== Logiciels =====
 +  * [[https://gpgtools.org/|GnuPG pour macOS]]
 +  * [[https://www.gpg4win.org/|GnuPG pour Windows]]
 +  * [[https://play.google.com/store/apps/details?id=org.sufficientlysecure.keychain|OpenKeychain]], PGP pour Android
 +  * [[https://play.google.com/store/apps/details?id=com.fsck.k9|K-9 Mail]] pour Android supporte OpenPGP
 +  * [[https://addons.mozilla.org/fr/firefox/addon/mailvelope/| Mailvelope]], une extension Firefox pour les webmails
 +  * [[https://addons.thunderbird.net/fr/thunderbird/addon/enigmail/| Enigmail]], une extension Thunderbird
 ===== Références ===== ===== Références =====
   * [[https://wiki.archlinux.org/index.php/GnuPG|GnuPG sur wiki.archlinux.org]]   * [[https://wiki.archlinux.org/index.php/GnuPG|GnuPG sur wiki.archlinux.org]]
Ligne 489: Ligne 766:
   * [[https://github.com/ioerror/duraconf/|duraconf]], a collection of hardened configuration files for SSL/TLS services par Jacob Appelbaum   * [[https://github.com/ioerror/duraconf/|duraconf]], a collection of hardened configuration files for SSL/TLS services par Jacob Appelbaum
   * [[https://www.debian-administration.org/users/dkg/weblog/105|OpenPGP Key IDs are not useful]]   * [[https://www.debian-administration.org/users/dkg/weblog/105|OpenPGP Key IDs are not useful]]
-  * [[https://debian-administration.org/users/dkg/weblog/48|HOWTO prep for migration off of SHA-1]] in OpenPGP +  * [[https://debian-administration.org/users/dkg/weblog/48|HOWTO prep for migration off of SHA-1]] in OpenPGP 
 +  * [[https://linuxfr.org/news/gnupg-openpgp-js-cie-quoi-de-neuf|GnuPG, OpenPGP.js & cie : quoi de neuf ?]] 
 +  * [[https://linuxfr.org/users/spack/journaux/gnupg-et-authentification-ssh|GnuPG et authentification SSH]]
  
  • cryptographie/gnupg2.1525606385.txt.gz
  • Dernière modification : 2018/05/06 07:33
  • de d2air