Configuration
Création d'une paire de clef
La première étape, donc, est de se créer un trousseau contenant une clef privée et une clef publique. En ligne de commande, taper 'gpg --gen-key'. Les listings suivants ont été obtenus sur une Red Hat 7.3, avec GnuPG 1.2.1. Il est probable que le logiciel lance un avertissement disant que la mémoire n'est pas sûre ; cela fait référence au swap non chiffrée, et relève purement de la paranoîa (sans que ce soit péjoratif par ailleurs) : pour une utilisation classique d'un ordinateur, il n'est nul besoin de chiffrer la partition de swap. Le premier lancement de gpg initialise les répertoires d'accueil des trousseaux, puis nous indique qu'il faut relancer le logiciel pour l'utiliser.
[alice@localhost]$ gpg --gen-key gpg (GnuPG) 1.0.6; Copyright (C) 2001 Free Software Foundation, Inc. This program comes with ABSOLUTELY NO WARRANTY. This is free software, and you are welcome to redistribute it under certain conditions. See the file COPYING for details. gpg: /home/alice/.gnupg: répertoire créé gpg: /home/alice/.gnupg/options: nouveau fichier d'options créé gpg: vous devez redémarrer GnuPG pour qu'il puisse lire le nouveau fichier «options»
[alice@localhost]$ gpg --gen-key gpg (GnuPG) 1.0.6; Copyright (C) 2001 Free Software Foundation, Inc. This program comes with ABSOLUTELY NO WARRANTY. This is free software, and you are welcome to redistribute it under certain conditions. See the file COPYING for details. gpg: /home/alice/.gnupg/secring.gpg: porte-clés créé gpg: /home/alice/.gnupg/pubring.gpg: porte-clés créé Sélectionnez le type de clé désiré: (1) DSA et ElGamal (par défaut) (2) DSA (signature seule) (5) RSA (signature seule)
Le programme demande quel est le type de chiffrement à utiliser : DSA, RSA et/ou El-Gamal. Le choix (3) non affiché permet de générer une paire de clefs ElGamal pour la signature seulement et le choix (4) une paire de clefs ElGamal pour la signature et le chiffrement (nb : une faille importante a été découverte dans l'implémentation de ce chiffrement, l'option 4 est donc à proscrire... Pour plus d'informations, se référer au site de http://www.gnupg.org). Nous souhaitons pouvoir signer et chiffrer nos documents, nous choisissons donc la première solution. En fait, deux paires de clefs sont générées (une DSA et une ElGamal), mais cela est transparent pour nous à l'utilisation.
Votre choix ? 1
La paire de clés DSA fera 1024 bits.
Préparation à la génération d'une nouvelle paire de clés ELG-E.
la taille minimale est 768 bits
la taille par défaut est 1024 bits
la taille maximale conseillée est 2048 bits
Quelle taille de clé désirez-vous ? (1024)
Nous spécifions la longueur de la clef ; la taille par défaut (1024 bits) nous convient bien. Une clef supérieure à 2048 bits peut paraitre d'autant plus sûre ; mais une telle longueur n'est que rarement utilisée car elle demande un certain temps de calcul également pour l'utilisateur, alors qu'elle apporte une faible sécurité supplémentaire.
La taille demandée est 1024 bits
Spécifiez combien de temps cette clé devrait être valide.
0 = la clé n'expire pas
<n> = la clé expire dans n jours
<n>w = la clé expire dans n semaines
<n>m = la clé expire dans n mois
<n>y = la clé expire dans n années
La clé est valide pour ? (0)
Dans certaines situations, il peut être intéressant qu'une clef expire au bout d'un temps donné -- pour un accès temporaire à une ressource par exemple. L'inconvénient du système est que si la clef change, il faut la redistribuer à toutes les personnes possédant la clef publique correspondante. Nous utiliserons en conséquence une clef qui n'expire pas.
Key n'expire pas du tout
Est-ce correct (o/n) ? o
Vous avez besoin d'un nom d'utilisateur pour identifier votre clé; le
programme le construit à partir du nom réel, d'un commentaire et d'une
adresse e-mail de cette manière:
« Heinrich Heine (Der Dichter) <heinrichh@duesseldorf.de> »
Ces informations doivent être complétées sérieusement : elles sont l'identité rattachée à notre clef, et apparaissent par exemple sur les serveurs de clefs publiques.
Nom réel: Alice
Adresse e-mail: alice@yahoo.com
Commentaire: Experte en systèmes cryptographiques
Vous avez sélectionné ce nom d'utilisateur:
«Alice (Experte en systèmes cryptographiques) <alice@yahoo.com>»
Changer le (N)om, le (C)ommentaire, l'(E)-mail ou (O)K/(Q)uitter ? O
Vous avez besoin d'un mot de passe pour protéger votre clé secrète.
Entrez le mot de passe :
Nous validons l'identité et tapons le mot de passe d'accès à nos clefs. Celui-ci sert à protéger notre identité dans le cas où quelqu'un volerait l'ordinateur, et il nous sera demandé chaque fois que nous devrons utiliser notre clef privée. C'est, finalement, la seule que nous aurons à retenir ; il convient donc qu'elle soit assez longue, comme une phrase un peu tordue, agrémentée de quelques accents, changement de casse, chiffres et ponctuation (eg. 'Pet1t Xél07E, Y a-7-1l 4SSeZ de Z3st3s ?'). Il n'y a pas de retour écran (ie. vous ne verrez pas s'afficher ce que vous tapez) lors de la frappe, et le mot de passe n'est pas toujours redemandé (selon la version utilisée). Le système génère ensuite aléatoirement la clef ; cette étape demande du temps, notamment à cause du déterminisme des ordinateurs. Il est conseillé de faire travailler les disques et la mémoire pendant ce temps (par un 'find / -name «*~»' par exemple).
Un grand nombre d'octets aléatoires doit être généré. 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'avoir assez d'entropie. ++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++++++++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++.......>+++++.............................<+++++... ...........................................+++++ les clés publique et secrète ont été créées et signées. [alice@localhost]$
Lister les clefs
Gpg a créé un répertoire où seront rangées toutes nos clefs (publique et privée), ainsi que les clefs publiques de nos amis (quand nous en aurons). Une fois la paire de clefs créée, nous pouvons les consulter grâce aux commandes 'gpg --list-keys' ou 'gpg --list-secret-keys', qui listent respectivement les clefs publiques et les clefs privées du trousseau. L'identifiant de l'utilisateur est celui de la clef primaire (première ligne) : 767AE664.
[alice@localhost]$ gpg --list-keys /home/alice/.gnupg/pubring.gpg ------------------------------ pub 1024D/767AE664 2003-09-20 Alice (Experte en systèmes cryptographiques) <alice@yahoo.com> sub 1024g/3D30334F 2003-09-20
[alice@localhost]$ gpg --list-secret-keys /home/alice/.gnupg/secring.gpg ------------------------------ sec 1024D/767AE664 2003-09-20 Alice (Experte en systèmes cryptographiques) <alice@yahoo.com> ssb 1024g/3D30334F 2003-09-20