Page suivante Page précédente Table des matières

4. PGP

PGP s'utilise via quatre commandes :

4.1 Création d'une clef

Tapez la commande pgpk -g.


Choose the type of your public key:
  1)  DSS/Diffie-Hellman - New algorithm for 5.0 (default)
  2)  RSA
Choose 1 or 2: 

Cette étape permet de choisir l'algorithme qui va générer la clef. Il faut savoir que l'algorithme DSS/Diffie-Hellman est considéré à l'heure actuelle comme plus sûr que RSA.


Pick your public/private keypair key size:
(Sizes are Diffie-Hellman/DSS; Read the user's guide for more information)
 1)   768/768  bits- Commercial grade, probably not currently breakable
 2)  1024/1024 bits- High commercial grade, secure for many years
 3)  2048/1024 bits- "Military" grade, secure for forseeable future(default)
 4)  3072/1024 bits- Archival grade, slow, highest security
Choose 1, 2, 3 or 4, or enter desired number of Diffie-Hellman bits
(768 - 4096): 

La longueur de la clef détermine la complexité de l'opération de cryptage/décryptage et en même temps le niveau de sécurité auquel vous vous situez. En règle générale, le niveau 2 suffit amplement pour un particulier, mais cela dépend de la législation du pays où vous êtes (restriction sur la taille des clefs) et des informations que vous allez avoir à crypter.


You need a user ID for your public key.  The desired form for this
user ID is your FULL name, followed by your E-mail address enclosed in
<angle brackets>, if you have an E-mail address.  For example:
  Joe Smith <user@domain.com>
If you violate this standard, you will lose much of the benefits of
PGP 5.0's keyserver and email integration.
Enter a user ID for your public key:

Permet de donner un nom à une clef. Par la suite vous pourrez faire référence à cette clef simplement par le nom, le prénom ou même l'adresse électronique.


Enter the validity period of your key in days from 0 - 999
0 is forever (and the default): 

Dépend des moyens de calcul que possèdent les gens qui pourraient vouloir lire vos messages. En cryptanalyse, la puissance de calcul seule ne veut rien dire. Il faut aussi considérer le temps dont on dispose pour décrypter l'information avant qu'elle ne perde sa validité. Si vous n'intéressez que des particuliers, vous pouvez probablement garder votre paire de clefs indéfiniment.


You need a pass phrase to protect your private key(s).
Your pass phrase can be any sentence or phrase and may have many
words, spaces, punctuation, or any other printable characters.
Enter pass phrase:
Enter again, for confirmation:
Enter pass phrase:

La pass-phrase sert à protéger l'accès à votre clef privé sur le disque-dur. En effet, la clef privée n'est certainement pas écrite en clair sur votre compte. Cette pass-phrase permet de reconstituer votre clef privé. Elle vous sera demandée à chaque fois que vous aurez besoin votre clef privé.

Ne l'oubliez pas!

Mais évitez de l'inscrire à un endroit où quelqu'un pourrait la lire.


If you wish to send this new key to a server, enter the URL of the server,
below.  If not, enter nothing.

Cette étape vient après la création de la paire de clef, elle permet de mettre à jour automatiquement votre clef sur les serveurs de clefs sur lesquels vous êtes répertoriés.

Et voila, vous avez maintenant une paire de clefs qui sont stockées dans le répertoire .pgp situé à votre racine.

4.2 Gestion des clefs

Extraction d'une clef

Vous avez donc une paire de clef. Mais pour pouvoir communiquer, il vous faut envoyer votre clef publique à vos correspondants. Pour cela, nous allons extraire votre clef publique de votre base de clefs avec la commande pgpk -x <user-id> -o mykey.pgp.

Le fichier mykey.pgp devrait contenir :


-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: PGPfreeware 5.0i for non-commercial use

mQGiBDi83BIRBADu3L6QPiVSqk5mw3sc0mpRibwGSNbrhaeuMjoKWw1mNl4rZI3I
w25A/BYXxId50LfIXKCSyKmhykzbzoYTeUMDbDH5OBG8kJQZ2uxQtgjtSnGT4dOJ
fQmJdUHfdT4JTw7hCmBcdZvpBnWggg1KSzlMDY64HYff0B9Zj/c+oee2ZQCg/wj0
...
GeDFyd/IxJE1XYpGPWpGfIkAPwMFGDi9OF5MBlCJG6RMgRECNNQAnioq2StX/5co
jhN/5BoTYpia3O5HAKCV5/UtcCvMQTXgxGpItxoGjsilfg==
=4y8h
-----END PGP PUBLIC KEY BLOCK-----

Ce fichier contient votre clef publique que vous pouvez envoyer à vos correspondants. De la même façon, vous pouvez extraire la clef publique de n'importe quel utilisateur présent dans votre base de clef PGP.

Ajout d'une clef

Si l'un de vos correspondants vous communique une clef que vous désirez ajouter à votre base, il suffit de la sauver dans un fichier et d'exécuter la commande pgpk -a <filename>.

Informations sur les clefs répertoriées

Obtenir la liste de toutes les clefs de sa base se fait par un pgpk -l. Pour obtenir encore plus d'informations on peut faire un pgpk -ll.

Il est aussi possible d'extraire des informations sur un seul utilisateur en spécifiant l'user-id de celui-ci :

pgpk -l <user-id>


bash$ pgpk -l dupont
Type Bits KeyID      Created    Expires    Algorithm       Use
sec+ 1024 0x1BA44C81 2000-03-01 ---------- DSS             Sign & Encrypt
sub  1024 0xA0BAC7FA 2000-03-01 ---------- Diffie-Hellman
uid  Jean Dupont <dupont@jean.fr>

Modification d'une clef

Éditer les attributs d'une clef se fait par la commande pgpk -e <user-id>. Lorsqu'il s'agit de sa propre clef, on peut modifier son user-id et sa pass-phrase.

Dans l'exemple, suivant l'utilisateur dupont a deux paires de clefs :


bash$ pgpk -e dupont
Please select a key to edit:
 1)
sec+ 1024 0x1BA44C81 2000-03-01 ---------- DSS             Sign & Encrypt
sub  1024 0xA0BAC7FA 2000-03-01 ---------- Diffie-Hellman
uid  Jean Dupont <dupont@jean.fr>
 2)
sec  1024 0x498FBF8C 2000-03-01 ---------- DSS             Sign & Encrypt
sub  1024 0x7AF22D31 2000-03-01 ---------- Diffie-Hellman
uid  Jean Dupont <dupont@jean.fr>
Choose one of the above:  1

  1024 bits, Key ID 0x1BA44C81, created 2000-03-01
   "Jean Dupont <dupont@jean.fr>"

Do you want to unset this key as axiomatic [y/N]? N
Do you want to add a new user ID [y/N]? N
Do you want to change your pass phrase (y/N)? N
Do want to set this as your default key [y/N]? y
Keyrings updated.

Si la clef en question n'est pas à vous, vous pouvez uniquement modifier la confiance que vous avez dans l'utilisateur.


pub  1024 0x31BF8027 2000-03-01 2002-01-30 DSS             Sign & Encrypt
sub  2048 0xA6CEA8F6 2000-03-01 2002-01-30 Diffie-Hellman
uid  John Doe <doe@john.org>

  1024 bits, Key ID 0x31BF8027, created 2000-03-01
   "John Doe <doe@john.org>"

Would you trust this key owner to act as an introducer and
certify other people's public keys to you?
(1=I don't know. 2=No. 3=Usually. 4=Yes, always?

Destruction d'une clef

Enfin, vous pouvez révoquer (effacer) une clef en faisant pgpk -r <user-id>. En reprenant l'exemple de Jean Dupont qui avait deux clefs, on a  :


Please select a key to be removed:
 1)
sec+ 1024 0x1BA44C81 2000-03-01 ---------- DSS             Sign & Encrypt
sub  1024 0xA0BAC7FA 2000-03-01 ---------- Diffie-Hellman
uid  Jean Dupont <dupont@jean.fr>
 2)
sec  1024 0x498FBF8C 2000-03-01 ---------- DSS             Sign & Encrypt
sub  1024 0x7AF22D31 2000-03-01 ---------- Diffie-Hellman
uid  Jean Dupont <dupont@jean.fr>
Choose one of the above:  2

The following key has been selected to be removed:

sec  1024 0x498FBF8C 2000-03-01 ---------- DSS             Sign & Encrypt
sub  1024 0x7AF22D31 2000-03-01 ---------- Diffie-Hellman
uid  Jean Dupont <dupont@jean.fr>

Do you wish to remove this key from your public and private keyrings?
[y/N]? y
Removed.

4.3 Cryptage

Cryptage simple

Le cryptage d'un fichier se fait par la commande :

pgpe -r <destinataire-id> -a -o <outfile> <filename>

L'option -a permet de générer un cryptage en ASCII, il est 30% plus gros, mais passe sans problème par le courrier électronique.

Par exemple, si Jean Dupont veut écrire à John Doe en signant son message, on aura :


bash$ pgpe -r doe -s -a -o crypt-message.pgp message
A private key is required to make a signature.
Need a pass phrase to decrypt private key:
  1024 bits, Key ID 1BA44C81, Created 2000-03-01
   "Jean Dupont <dupont@jean.fr>"
Enter pass phrase:
Pass phrase is good.
  1024 bits, Key ID 1FA54D81, Created 2000-03-01
   "John Doe <doe@john.org>"

Creating output file crypt-message.pgp

Cryptage avec signature

On peut combiner l'opération de cryptage d'un message avec l'opération de signature. il suffit de rajouter l'option -s :

pgpe -r <destinataire-id> -s -a -o <outfile> <filename>

Signature simple d'un message

On utilise le programme pgps avec les options suivantes :

pgps -a -o <outfile> <filename>

Décryptage et vérification de signature

On utilise le programme pgpv avec les options suivantes :

pgpv -o <outfile> <filename>

Par exemple, si John Doe veut lire le message de Jean Dupont, on aura :


bash$ pgpv -o message crypt-message.pgp
Message is encrypted.
Need a pass phrase to decrypt private key:
  1024 bits, Key ID A0BAC7FA, Created 2000-03-01
Enter pass phrase:
Pass phrase is good.
Opening file "message" type binary.
Good signature made 2000-03-01 18:17 GMT by key:
  1024 bits, Key ID 1BA44C81, Created 2000-03-01
   "Jean Dupont <dupont@jean.fr>"

Quelques astuces

Vous verrez souvent apparaître le message :

Cannot open configuration file ~/.pgp/pgp.cfg

Pour ne plus l'avoir, il suffit de faire un fichier vide ~/.pgp/pgp.cfg.


Page suivante Page précédente Table des matières