38. La signature numérique ou électronique

38.1. Génération de la clef

Pour générer un jeu de clefs, on peut utiliser la commande gpg ou tout autre utilitaire graphique (seahorse, etc.).

Cette commande génère une nouvelle paire de clefs en se basant sur les réponses aux quelques questions.


vanvincq@Debian-Laptop ~/Bureau/CP2L/JournalDeBord $ gpg --gen-key
gpg (GnuPG) 1.4.10; Copyright (C) 2008 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 clé désiré:
   (1) RSA and RSA (default)
   (2) DSA and Elgamal
   (3) DSA (signature seule)
   (4) RSA (signature seule)
Votre choix ? 1
les clés RSA peuvent faire entre 1024 et 4096 bits de longueur.
Quelle taille de clé désirez-vous ? (2048) 
La taille demandée est 2048 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) 0
La clé 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> »

Nom réel: test test
Adresse e-mail: test.test@test.com
Commentaire: 
Vous avez sélectionné ce nom d'utilisateur:
    "test test  <test.test@test.com>"

Changer le (N)om, le (C)ommentaire, l'(E)-mail ou (O)K/(Q)uitter ? O
Vous avez besoin d'une phrase de passe pour protéger votre clé
secrète.

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.

Il n'y a pas assez d'octets aléatoires disponibles. Faites autre chose
pour que l'OS puisse amasser plus d'entropie ! (il faut 124 octets de plus)

....+++++
....+++++
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.

...+++++
Il n'y a pas assez d'octets aléatoires disponibles. Faites autre chose
pour que l'OS puisse amasser plus d'entropie ! (il faut 119 octets de plus)

............+++++
gpg: clé B231CBB2 marquée comme ayant une confiance ultime.
les clés publique et secrète ont été créées et signées.

gpg: vérifier la base de confiance
gpg: 3 marginale(s) nécessaires, 1 complète(s) nécessaires, modèle
de confiance PGP
gpg: profondeur: 0  valide:   2  signé:   1
confiance: 0-. 0g. 0n. 0m. 0f. 2u
gpg: profondeur: 1  valide:   1  signé:   0
confiance: 0-. 1g. 0n. 0m. 0f. 0u
gpg: la prochaine vérification de la base de confiance aura lieu le 2017-04-07
pub   2048R/B231CBB2 2012-04-08
    Empreinte de la clé = 013D 90F8 8BC3 FBD6 4945  DCB4 2BC2 B261 B231 CBB2
uid                  test test <test.test@test.com>
sub   2048R/6F53F46F 2012-04-08

En cas de changement de clefs, de vol de la clé privée, etc. il est conseillé de générer un certificat de révocation.


vanvincq@Debian-Laptop ~/Bureau/CP2L/JournalDeBord $ gpg --gen-revoke test

sec  2048R/B231CBB2 2012-04-08 test test <test.test@test.com>

Générer un certificat de révocation pour cette clé ? (o/N) o
choisissez la cause de la révocation:
  0 = Aucune raison spécifiée
  1 = La clé a été compromise
  2 = La clé a été remplacée
  3 = La clé n'est plus utilisée
  Q = Annuler
(Vous devriez sûrement sélectionner 1 ici)
Votre décision ? 0
Entrez une description optionnelle ; terminez-là par une ligne vide:
> test génération
> 
Cause de révocation: Aucune raison spécifiée
test génération
Est-ce d'accord ? (o/N) o

Vous avez besoin d'une phrase de passe pour déverrouiller la
clé secrète pour l'utilisateur: « test test <test.test@test.com> »
clé de 2048 bits RSA, ID B231CBB2, créée le 2012-04-08

sortie avec armure ASCII forcée.
Certificat de révocation créé.

Déplacez-le dans un support que vous pouvez cacher ; si Mallory a
accès à ce certificat il peut l'utiliser pour rendre votre clé
inutilisable.
Une bonne idée consiste à imprimer ce certificat puis à le stocker
ailleurs, au cas où le support devient illisible. Mais attention :
le système d'impression de votre machine pourrait stocker ces
données et les rendre accessibles à d'autres personnes !
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v1.4.10 (GNU/Linux)
Comment: A revocation certificate should follow

iQEwBCABAgAaBQJPgXrfEx0AdGVzdCBnw6luw6lyYXRpb24ACgkQK8KyYbIxy7I/
iAgA3gZOGAR64eQ2qLFKP/FqbB3UuCnVbet6iuRthw2LMovIzJDr0hA4UjFW0NK2
Zpi0ioxudVHjqgMwwXAGPwlbp8VbAvKtic44cIthBjjiUmsprrjVxkwfq8DIWkhC
ymgd6vBM2omp+14ugs/cRw++nqXPMsSYpOtsZtowCjRLPIFv6BOUGUFUftMg9xTm
id/AvtakVBFDI9/3zHz+6CAWxnJrn/j6BCHBhIsXjLXWcj0aeGWGNoCx4kfL/B8B
XxO2LcuuizSNbgJk5ZI5nRrE4HkiSV4yXTXncJ6FCI4c/NHBpan84YRV7GlUyphV
LIj4JCIDiFj0MLuyJe4OgP+/Lw==
=nGoB
-----END PGP PUBLIC KEY BLOCK-----

Pour plus d'informations concernant la commande gpg, il peut être utile de consulter le manuel, ou bien consulter le site officiel de gnupg.

38.2. La signature et le chiffrement d'un message

On peut signer l'envoi d'un message à l'aide de sa clef privée pour certifier que l'expéditeur est bien la personne annoncée. Les personnes détenteurs de la clef publique de l'expéditeur pourront vérifier la validité du courriel.

En plus de la signature, on peut également chiffrer l'envoi d'un message avec la clef publique du destinataire. Ainsi, il sera la seule personne en mesure de déchiffrer le message.