Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
cryptographie:gnupg2 [2017/12/03 16:25] – Création de la page d2air | cryptographie: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 | + | 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: |
Les principales évolutions sont décrites [[https:// | Les principales évolutions sont décrites [[https:// | ||
Ligne 9: | Ligne 9: | ||
sudo apt update && sudo apt install rng-tools | sudo apt update && sudo apt install rng-tools | ||
</ | </ | ||
- | Pour configuer '' | + | Pour configuer '' |
- | <file sh rng-tools> | + | |
- | HRNGDEVICE=/ | + | |
- | </file> | + | |
- | Et ensuite il faudra relancer ce service avec la commande : | + | |
- | < | + | |
- | sudo service rng-tools restart | + | |
- | </ | + | |
===== 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 / | echo sks-keyservers.netCA.pem | sudo tee -a / | ||
sudo update-ca-certificates | sudo update-ca-certificates | ||
+ | rm ~/ | ||
</ | </ | ||
+ | <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." | ||
+ | </ | ||
Il faudra ensuite utiliser les paramètres suivants dans '' | Il faudra ensuite utiliser les paramètres suivants dans '' | ||
<file sh gpg.conf> | <file sh gpg.conf> | ||
Ligne 31: | Ligne 30: | ||
</ | </ | ||
Et spécifier le chemin d’accès complet où vous avez sauvegardé le fichier de l’autorité de certification en bas du fichier '' | Et spécifier le chemin d’accès complet où vous avez sauvegardé le fichier de l’autorité de certification en bas du fichier '' | ||
+ | <file sh dirmngr.conf> | ||
+ | hkp-cacert / | ||
+ | </ | ||
+ | Sous certaines versions du système – avant Ubuntu 18.04 – il faudra une double extension, car la commande '' | ||
<file sh dirmngr.conf> | <file sh dirmngr.conf> | ||
hkp-cacert / | hkp-cacert / | ||
Ligne 36: | Ligne 39: | ||
Avec cette configuration les interactions avec le serveur de clés seront chiffrées avec '' | Avec cette configuration les interactions avec le serveur de clés seront chiffrées avec '' | ||
Note : [[hkps:// | Note : [[hkps:// | ||
+ | === Serveur via TOR === | ||
+ | Il existe aussi des serveurs en '' | ||
+ | <file sh gpg.conf> | ||
+ | keyserver hkp:// | ||
+ | </ | ||
=== Forcer l' | === Forcer l' | ||
Un utilisateur qui crée sa clé peut indiquer un serveur de clés spécifique auquel s’adresser pour récupérer les nouvelles versions de sa clé. Il est recommandé d’utiliser l’option suivante dans '' | Un utilisateur qui crée sa clé peut indiquer un serveur de clés spécifique auquel s’adresser pour récupérer les nouvelles versions de sa clé. Il est recommandé d’utiliser l’option suivante dans '' | ||
Ligne 48: | 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 '' | 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 '' | ||
< | < | ||
- | sudo apt-get install parcimonie | + | sudo apt install parcimonie |
</ | </ | ||
[[https:// | [[https:// | ||
Ligne 104: | 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 117: | 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:// | keyserver hkps:// | ||
+ | keyserver hkp:// | ||
# When using --refresh-keys, | # When using --refresh-keys, | ||
Ligne 145: | Ligne 157: | ||
# " | # " | ||
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 | ||
+ | |||
</ | </ | ||
Le détail des différentes options possibles de ce fichier se trouvent [[https:// | Le détail des différentes options possibles de ce fichier se trouvent [[https:// | ||
Ligne 154: | Ligne 172: | ||
# Provide a certificate store to override the system default | # Provide a certificate store to override the system default | ||
# Get this from https:// | # Get this from https:// | ||
- | hkp-cacert / | + | hkp-cacert / |
</ | </ | ||
Le détail des différentes options possibles de ce fichier se trouvent [[https:// | Le détail des différentes options possibles de ce fichier se trouvent [[https:// | ||
===== 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:// | + | Par défaut il est actuellement |
==== Transition d'une ancienne clef ==== | ==== Transition d'une ancienne clef ==== | ||
En cas transition, une méthode est de rédiger un [[https:// | En cas transition, une méthode est de rédiger un [[https:// | ||
Ligne 187: | Ligne 205: | ||
</ | </ | ||
==== 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' | ||
< | < | ||
gpg --expert --full-gen-key | gpg --expert --full-gen-key | ||
+ | gpg (GnuPG) 2.1.15; Copyright (C) 2016 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. | ||
+ | |||
+ | Sélectionnez le type de clef désiré : | ||
+ | (1) RSA et RSA (par défaut) | ||
+ | (2) DSA et Elgamal | ||
+ | (3) DSA (signature seule) | ||
+ | (4) RSA (signature seule) | ||
+ | (7) DSA (indiquez vous-même les capacités) | ||
+ | (8) RSA (indiquez vous-même les capacités) | ||
+ | (9) ECC et ECC | ||
+ | (10) ECC (signature seule) | ||
+ | (11) ECC (indiquez vous-même les capacités) | ||
+ | Quel est votre choix ? 9 | ||
+ | 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' | ||
+ | < | ||
+ | <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) 10y | ||
+ | La clef expire le mer. 01 déc. 2027 23:59:59 CET | ||
+ | Est-ce correct ? (o/N) o | ||
+ | |||
+ | GnuPG doit construire une identité pour identifier la clef. | ||
+ | |||
+ | Nom réel : John Doe | ||
+ | Adresse électronique : | ||
+ | Commentaire : | ||
+ | Vous avez sélectionné cette identité : | ||
+ | « John Doe < | ||
+ | |||
+ | Changer le (N)om, le (C)ommentaire, | ||
+ | ou (O)ui/ | ||
+ | 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' | ||
+ | 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' | ||
+ | gpg: clef 0xCBC5A900D93F92C5 marquée de confiance ultime. | ||
+ | gpg: répertoire « / | ||
+ | gpg: revocation certificate stored as '/ | ||
+ | les clefs publique et secrète ont été créées et signées. | ||
+ | |||
+ | pub | ||
+ | Empreinte de la clef = A0B0 00FF 0000 FF00 1111 1111 A0B0 0000 0000 00FF | ||
+ | uid John Doe < | ||
+ | sub | ||
</ | </ | ||
+ | === Base de confiance === | ||
+ | Les clés sont identifiées par une valeur hexadécimale. 0xA0B00000000000FF est notre clé maîtresse et nous lui accordons une confiance ultime (donc au-delà de “complète” et de “marginale”) puisqu’il s’agit de notre propre clé. GnuPG rappelle aussi les règles (le modèle de confiance) utilisées par défaut pour considérer une clé publique comme valide, une clé doit être signée par un utilisateur à qui nous accordons une confiance “complète” ou par trois utilisateurs à qui nous accordons une confiance “marginale”. Notre clé publique est considérée comme valide puisque nous lui accordons une confiance ultime, '' | ||
+ | < | ||
+ | gpg: 3 marginale(s) nécessaire(s), | ||
+ | | ||
+ | gpg: profondeur : 0 valables : | ||
+ | | ||
+ | </ | ||
+ | Le niveau de confiance est précisé avec la nomenclature : | ||
+ | * i. : inconnu (non calculable) | ||
+ | * n.d. : non décidé, pas d' | ||
+ | * j. : aucune, pas de confiance | ||
+ | * m. : confiance marginale | ||
+ | * t. : confiance totale ou complète | ||
+ | * u. : confiance ultime | ||
+ | Ces informations peuvent s' | ||
+ | < | ||
+ | gpg --check-trustdb | ||
+ | </ | ||
+ | === Sous-clef générée === | ||
+ | La dernière ligne de sortie de la commande '' | ||
+ | < | ||
+ | sub | ||
+ | </ | ||
+ | Il faut utiliser la commande '' | ||
+ | < | ||
+ | gpg --edit-key ' | ||
+ | gpg (GnuPG) 2.1.15; Copyright (C) 2016 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/ | ||
+ | | ||
+ | | ||
+ | ssb cv25519/ | ||
+ | | ||
+ | [ ultime ] (1). John Doe < | ||
+ | |||
+ | </ | ||
+ | Le champ **utilisation** nous indique l' | ||
+ | * C : certificate ou signer la clé publique d'un utilisateur | ||
+ | * S : signer un document (mail, fichier...) | ||
+ | * E : chiffrer un document | ||
+ | * A : authentification (SSH, TLS...) | ||
+ | |||
+ | Avec la commande de génération de clés GnuPG ne crée pas une paire, mais deux. La première est utilisable pour signer d’autres clés ainsi que des documents, mais c’est une sous-clé (subkey ou clé subordonnée) qui est utilisée pour chiffrer. | ||
+ | |||
+ | Pourquoi ? Pour des raisons de sécurité, mais surtout de praticité, car tout le fonctionnement du réseau de confiance repose sur la signature des clefs publiques des utilisateurs. Si la clé de chiffrement est corrompue (par exemple un attaquant souhaitant lire nos messages et qui réussit) elle pourra être révoquée et une nouvelle pourra être créer, cette nouvelle clé sera rattachée à la clé maîtresse qui ne sera pas corrompue (enfin normalement) et il ne sera pas nécessaire de reconstruire les signatures sur la clé publique détruisant par la même le réseau de confiance. | ||
+ | |||
+ | GnuPG fait cela par défaut avec les options 1 et 2 – et 9 en mode expert – du processus de génération de clefs de la commande '' | ||
+ | === Générer une seconde sous-clef === | ||
+ | Après la génération d’une paire de clés, nous disposons d’une paire de clés maîtresse et d’une sous-clef pour le chiffrement. L’idée est ici de créer une nouvelle sous-clé pour la signature des documents afin de ne pas avoir à utiliser la clé principale pour autre chose que la signature d’autres clés publiques, cette tâche ne pouvant pas être déléguée à une sous-clé. | ||
+ | < | ||
+ | gpg --expert --edit-key ' | ||
+ | gpg (GnuPG) 2.1.15; Copyright (C) 2016 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/ | ||
+ | | ||
+ | | ||
+ | ssb cv25519/ | ||
+ | | ||
+ | [ ultime ] (1). John Doe < | ||
+ | |||
+ | gpg> addkey | ||
+ | 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 ? 10 | ||
+ | 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' | ||
+ | < | ||
+ | <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) 2y | ||
+ | La clef expire le mar. 03 déc. 2019 23:59:59 CET | ||
+ | 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' | ||
+ | |||
+ | sec ed25519/ | ||
+ | | ||
+ | | ||
+ | ssb cv25519/ | ||
+ | | ||
+ | ssb ed25519/ | ||
+ | | ||
+ | [ ultime ] (1). John Doe < | ||
+ | gpg> save | ||
+ | </ | ||
+ | === Préférences des clefs === | ||
+ | Il est possible de vérifier et de définir les préférences d' | ||
+ | < | ||
+ | gpg --expert --edit-key ' | ||
+ | gpg (GnuPG) 2.1.15; Copyright (C) 2016 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/ | ||
+ | | ||
+ | | ||
+ | ssb cv25519/ | ||
+ | | ||
+ | ssb ed25519/ | ||
+ | | ||
+ | [ ultime ] (1). John Doe < | ||
+ | |||
+ | gpg> showpref | ||
+ | [ ultime ] (1). John Doe < | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | gpg> setpref SHA512 SHA384 SHA256 SHA224 AES256 AES192 AES CAST5 ZLIB BZIP2 ZIP Uncompressed | ||
+ | Définir la liste de préférences en : | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | Faut-il vraiment mettre à jour les préférences ? (o/N) | ||
+ | </ | ||
+ | Les algorithmes 3DES (chiffrement) et [[https:// | ||
+ | < | ||
+ | setpref SHA512 SHA384 SHA256 SHA224 AES256 AES192 AES CAST5 ZLIB BZIP2 ZIP Uncompressed | ||
+ | </ | ||
+ | ==== Ajouter une alerte dans le calendrier ==== | ||
+ | Il vaut mieux paramétrer une alerte dans un agenda pour nous rappeler la date d’expiration, | ||
+ | ==== Certificat de révocation ==== | ||
+ | La génération d'un certificat de révocation est un étape importante dans la création de clés. En cas d' | ||
+ | |||
+ | Une clé révoquée peut encore être utilisée pour vérifier ses anciennes signatures ou pour déchiffrer des données (à condition d' | ||
+ | |||
+ | Depuis la version 2.1.0 un certificat de révocation est créé dans le dossier '' | ||
+ | < | ||
+ | gpg --output revoke.asc --gen-revoke '< | ||
+ | </ | ||
+ | === Révocation d'une clef === | ||
+ | La révocation se fait avec les commandes suivantes : | ||
+ | < | ||
+ | gpg --import / | ||
+ | gpg --keyserver hkps.pool.sks-keyservers.net --send-keys A0B000FF0000FF0011111111A0B00000000000FF | ||
+ | </ | ||
+ | Et avec un dossier parallèle : | ||
+ | < | ||
+ | gpg --homedir=/ | ||
+ | gpg --homedir=/ | ||
+ | gpg --keyserver hkps.pool.sks-keyservers.net --send-keys A0B000FF0000FF0011111111A0B00000000000F | ||
+ | </ | ||
+ | ou : | ||
+ | < | ||
+ | gpg --homedir=/ | ||
+ | gpg --keyserver hkps.pool.sks-keyservers.net --send-keys A0B000FF0000FF0011111111A0B00000000000F | ||
+ | </ | ||
+ | === Révocation d'une sous-clef === | ||
+ | Révoquer une sous-clé ne nécessite pas de certificat de révocation, | ||
+ | < | ||
+ | gpg --expert --edit-key ' | ||
+ | gpg (GnuPG) 2.1.15; Copyright (C) 2016 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/ | ||
+ | | ||
+ | | ||
+ | ssb cv25519/ | ||
+ | | ||
+ | ssb ed25519/ | ||
+ | | ||
+ | [ ultime ] (1). John Doe < | ||
+ | |||
+ | gpg> key 1 | ||
+ | |||
+ | sec ed25519/ | ||
+ | | ||
+ | | ||
+ | ssb* cv25519/ | ||
+ | | ||
+ | ssb ed25519/ | ||
+ | | ||
+ | [ ultime ] (1). John Doe < | ||
+ | |||
+ | gpg> revkey | ||
+ | Voulez-vous vraiment révoquer cette sous-clef ? (o/N) | ||
+ | </ | ||
+ | Le caractère '' | ||
+ | ==== Utilisation sans clefs primaires ==== | ||
+ | La clé primaire est nécessaire que pour la certification (signature de clefs publiques), cette tache se réalise peu fréquemment. Il est possible de supprimer la clé secrète afin de n’utiliser que les sous-clés pour le chiffrement et la signature de documents. | ||
+ | === Sauvegarde des clefs === | ||
+ | Il est recommandé de faire avant toutes manipulations une copie du répertoire '' | ||
+ | < | ||
+ | cd; tar cjvf gnupg-`date +%Y%m%d`.tbz2 ~/.gnupg | ||
+ | </ | ||
+ | === Exportation des clefs === | ||
+ | Si la procédure pour cela était relativement « tordue » avec GnuPG 1.4 et 2.0 (il n’était pas possible de supprimer uniquement la clef primaire du trousseau privée, de sorte qu’il fallait, en gros : exporter les sous-clefs uniquement, supprimer la clef primaire – ce qui supprimait aussi les sous-clefs rattachées, | ||
+ | Trouvez le keygrip de votre clef primaire : | ||
+ | < | ||
+ | gpg --with-keygrip -K | ||
+ | / | ||
+ | ------------------------------ | ||
+ | sec | ||
+ | Keygrip = D4DF0C35D3E22FA6AC37DA2E54FB03F73616A3CB | ||
+ | uid | ||
+ | </ | ||
+ | La clef privée xA0B00000000000FF se trouve dans le fichier '' | ||
+ | |||
+ | Je vous recommande de conserver la ou les clefs privées sur un support externe dans un volume crypté avec [[https:// | ||
+ | |||
+ | === 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:// | ||
+ | |||
+ | == Exportation des clefs == | ||
+ | Il faut exporter les clefs dans des fichiers : | ||
+ | < | ||
+ | gpg --armor --export 0xA0B00000000000FF > clepublique.asc | ||
+ | gpg --armor --export-secret-key 0xA0B00000000000FF > clesecrete.asc | ||
+ | gpg --armor --export-secret-subkeys 0xA0B00000000000FF > sousclessecretes.asc | ||
+ | </ | ||
+ | Avec ces commandes, la clef publique est exportée dans le fichier '' | ||
+ | == Suppression des clefs secrètes == | ||
+ | Après les avoir sauvegardées, | ||
+ | < | ||
+ | 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/ | ||
+ | |||
+ | 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 | ||
+ | </ | ||
+ | La commande '' | ||
+ | == Réimporter les sous-clefs secrètes == | ||
+ | Afin de pouvoir utiliser notre configuration uniquement avec des sous-clés nous devons les réimporter : | ||
+ | < | ||
+ | gpg --import sousclesecrete.asc | ||
+ | gpg: clef 0xAAAAAAAAFFFFFFFF : clef secrète importée | ||
+ | gpg: clef 0xAAAAAAAAFFFFFFFF : « John Doe < | ||
+ | gpg: Quantité totale traitée : 1 | ||
+ | gpg: non modifiées : 1 | ||
+ | gpg: clefs secrètes lues : 1 | ||
+ | gpg: clefs secrètes importées : 1 | ||
+ | </ | ||
+ | La commande '' | ||
+ | < | ||
+ | gpg --list-secret-keys | ||
+ | / | ||
+ | ------------------------------ | ||
+ | sec# ed25519/ | ||
+ | Empreinte de la clef = AAAA BBBB CCCC DDDD EEEE FFFF 0000 1111 2222 3333 | ||
+ | uid John Doe < | ||
+ | ssb | ||
+ | ssb | ||
+ | </ | ||
+ | Le caractère ''#'' | ||
+ | |||
+ | À cause de l’absence de la clef privée maîtresse des fonctionnalités ne seront plus disponibles à l’édition, | ||
+ | < | ||
+ | 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 | ||
+ | </ | ||
+ | == Configuration alternative externe == | ||
+ | < | ||
+ | gpg --homedir=/ | ||
+ | gpg: Attention : les droits du répertoire personnel « / | ||
+ | ne sont pas sûrs | ||
+ | gpg: le trousseau local « / | ||
+ | gpg: / | ||
+ | |||
+ | gpg: clef 000000FF : clef publique « John Doe < | ||
+ | gpg: clef 000000FF : clef secrète importée | ||
+ | gpg: clef 000000FF : « John Doe < | ||
+ | gpg: Quantité totale traitée : 2 | ||
+ | gpg: non modifiées : | ||
+ | gpg: clefs secrètes lues : 1 | ||
+ | gpg: clefs secrètes importées : | ||
+ | </ | ||
+ | Pour supprimer l’avertissement de cette sortie '' | ||
+ | < | ||
+ | chmod 700 / | ||
+ | </ | ||
+ | == Utilisation du répertoire alternatif == | ||
+ | Il est possible d’utiliser ce répertoire seulement comme avec '' | ||
+ | Pour éditer notre clef avec les deux répertoires la commande est la suivante : | ||
+ | < | ||
+ | gpg --homedir=/ | ||
+ | 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/ | ||
+ | | ||
+ | sub ed25519/ | ||
+ | sub ed25519/ | ||
+ | [ ultime ] (1). John Doe < | ||
+ | |||
+ | gpg> | ||
+ | </ | ||
+ | Le paramètre obsolète '' | ||
+ | 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 ''/ | ||
+ | < | ||
+ | gpg2 --home=/ | ||
+ | </ | ||
+ | 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**, | ||
+ | < | ||
+ | gpg --delete-secret-keys 0xA0B00000000000FF | ||
+ | gpg --homedir=/ | ||
+ | gpg --import maj-sousclesecrete.asc | ||
+ | </ | ||
+ | === 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, | ||
+ | < | ||
+ | gpg --homedir=/ | ||
+ | </ | ||
+ | puis dans la console les commandes '' | ||
+ | ==== Publication de la clef publique ==== | ||
+ | Vous pouvez maintenant publier la clef publique, pour cela il faut utiliser la commande : | ||
+ | < | ||
+ | gpg --send-keys 0xA0B00000000000FF | ||
+ | </ | ||
+ | ===== GnuPG et authentification SSH ===== | ||
+ | ==== Générer une sous-clef d’authentification ==== | ||
+ | < | ||
+ | gpg --homedir=/ | ||
+ | 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/ | ||
+ | | ||
+ | | ||
+ | ssb cv25519/ | ||
+ | | ||
+ | ssb ed25519/ | ||
+ | | ||
+ | [ ultime ] (1). John Doe < | ||
+ | |||
+ | 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/ | ||
+ | Actions actuellement permises : Signer | ||
+ | |||
+ | (S) Inverser la capacité de signature | ||
+ | (A) Inverser la capacité d' | ||
+ | (Q) Terminé | ||
+ | |||
+ | Quel est votre choix ? A | ||
+ | |||
+ | Actions possibles pour une clef ECDSA/ | ||
+ | Actions actuellement permises : Signer Authentifier | ||
+ | |||
+ | (S) Inverser la capacité de signature | ||
+ | (A) Inverser la capacité d' | ||
+ | (Q) Terminé | ||
+ | |||
+ | Quel est votre choix ? S | ||
+ | |||
+ | Actions possibles pour une clef ECDSA/ | ||
+ | Actions actuellement permises : Authentifier | ||
+ | |||
+ | (S) Inverser la capacité de signature | ||
+ | (A) Inverser la capacité d' | ||
+ | (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' | ||
+ | < | ||
+ | <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' | ||
+ | |||
+ | sec ed25519/ | ||
+ | | ||
+ | | ||
+ | ssb cv25519/ | ||
+ | | ||
+ | ssb ed25519/ | ||
+ | | ||
+ | ssb ed25519/ | ||
+ | | ||
+ | [ ultime ] (1). John Doe < | ||
+ | |||
+ | gpg> save | ||
+ | </ | ||
+ | ==== Le fichier gpg-agent.conf ==== | ||
+ | Pour activer le support SSH dans l' | ||
+ | <file sh gpg-agent.conf> | ||
+ | enable-ssh-support | ||
+ | </ | ||
+ | ==== Le fichier sshcontrol ==== | ||
+ | Pour indiquer à GnuPG notre clef d’authentification pour SSH nous ajouterons son identifiant (keygrip) dans le fichier '' | ||
+ | < | ||
+ | gpg -k --with-keygrip | ||
+ | / | ||
+ | ------------------------------ | ||
+ | pub | ||
+ | Empreinte de la clef = A0B0 00FF 0000 FF00 1111 1111 A0B0 0000 0000 00FF | ||
+ | Keygrip = AABBCCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDD | ||
+ | uid [ ultime ] John Doe < | ||
+ | sub | ||
+ | Keygrip = BBCCDD00000000000000000000000000000000EE | ||
+ | sub | ||
+ | Keygrip = CCDDEEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF | ||
+ | sub | ||
+ | Keygrip = DDEEFF00000000000000000000000000000000GG | ||
+ | </ | ||
+ | Nous récupérons la clé d' | ||
+ | < | ||
+ | echo " | ||
+ | </ | ||
+ | Le chiffre après l’identifiant est la durée en seconde pendant laquelle l’agent gardera la clé en mémoire. Si '' | ||
+ | <file sh sshcontrol> | ||
+ | DDEEFF00000000000000000000000000000000GG 0 | ||
+ | </ | ||
+ | ===== Logiciels ===== | ||
+ | * [[https:// | ||
+ | * [[https:// | ||
+ | * [[https:// | ||
+ | * [[https:// | ||
+ | * [[https:// | ||
+ | * [[https:// | ||
+ | ===== Références ===== | ||
+ | * [[https:// | ||
+ | * [[https:// | ||
+ | * Bonnes pratiques pour [[https:// | ||
+ | * [[https:// | ||
+ | * [[https:// | ||
+ | * [[https:// | ||
+ | * [[https:// | ||
+ | * [[https:// | ||
+ |