PGP

© 1997 NETLINE-Frédéric-Rouyre

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Introduction

Pretty Good Privacy est un programme de chiffrement. Philipp Zimmermann en est le concepteur. PGP utilise IDEA pour le chiffrement, RSA (avec une clef de 512, 1024 ou 2048 bits) pour la gestion des clefs et MD5 comme fonction de hachage à sens unique. PGP comprime les fichiers avant le chiffrement.

Les clefs publiques aléatoires PGP utilisent un test de primalité probabiliste et le logiciel obtient ses germes initiaux en mesurant les intervalles entre les touches frappées au clavier par l’utilisateur. PGP engendre des clefs IDEA aléatoires en utilisant l’annexe C du document ANSI X9.17, avec IDEA comme algorithme à clef secrète au lieu du DES. PGP chiffre également la clef privée de l’utilisateur en utilisant l’empreinte d’une phrase clef au lieu d’un mot de passe.

Les messages chiffrés dans PGP ont une structure de sécurité en couches. La seule chose que les cryptanalystes puissent apprendre d’un message chiffré est l’identité de l’expéditeur, pour autant qu’ils connaissent l’identificateur de la clef du destinataire. Ce n’est qu’après que le destinataire ait déchiffré le message qu’ils peuvent apprendre qui l’a signé, s'il est signé.

L’aspect le plus intéressant de PGP est sont approche de la gestion de clefs distribuées. Il n’y a pas d’autorité de certification. Tous les utilisateurs engendrent et distribuent leur propre clef publique. Les utilisateurs peuvent mutuellement signer les clefs des autres, ajoutant ainsi un niveau de confiance dans le système. Celui qui signe la clef publique d’un autre devient le parrain de cette personne. Quand un utilisateur reçoit une nouvelle clef publique, il examine la liste des parrains qui ont signé la clef. S’il y trouve quelqu’un en qui il a confiance, alors il a toutes les raisons de considérer cette clef comme valide. Si deux des parrains sont des personnes en qui il a moyennement confiance, alors il a certaines raisons de la considérer comme valide. Tout cela est automatique : dites à PGP en qui vous avez confiance et quel est votre degré de confiance en ces personnes et c’est tout. PGP est bien conçu, codé proprement et disponible publiquement. Vous ne trouverez sans doute pas de système de chiffrement plus proche de la classe militaire. Notez cependant qu’en Belgique, il vous faudra utiliser la version internationale de PGP étant donné les restrictions à l’exportation édictées par les Etats-Unis (l’utilisation de cette version est interdite aussi en France et en Irak).

La cryptographie

Lorsqu’il est impossible de rendre un canal de communication secret, il faut crypter ses données de façon à ce que seul un groupe défini et précis de personnes, en possession de la clef de décodage, puisse les lire.

C’est le seul moyen de transférer des données de manière sûre. La cryptographie est utilisée pour de nombreuses applications, notamment dans les affaires gouvernementales et dans l’armée.

Il ne faut pas croire que les gens qui utilisent la cryptographie sont tous des délinquants ou des pirates. Il y a des tas de raisons pour crypter un message, comme il peut y avoir des tas de raisons pour lesquelles vous envoyer une lettre sous enveloppe et non sur une carte postale.

Cryptographie à clef unique

L’encodage et le décodage utilisent la même clef. Le problème de cette méthode est qu’il est difficile de transmettre la clef unique par le biais d’un canal de communication sûr. De fait, à partir du moment où il existe un canal sûr, la cryptographie n’a plus vraiment de raison d’être (à part peut-être pour protéger vos messages de votre belle-mère).

RSA

Au lieu d’avoir une clef unique et secrète, chaque partie génère une paire de clef. Une des clefs est dite publique et l’autre privée. La première est destinée à être publiquement diffusée tandis que la seconde doit rester secrète.

Grâce à certaines propriétés mathématiques que nous n’évoquerons pas ici, il est impossible de déduire la clef secrète à partir de la clef publique. C’est pour cette raison que la diffusion peut en être faite.

C’est cet algorithme qu’utilise PGP pour l’encryption des données.

 

 

 

 

 

 

PGP en pratique

 

Génération d’une paire de clefs

La première chose à faire après l’installation de PGP est de générer sa propre paire de clefs. Pour ce faire vous devez utiliser la commande suivante :

pgp -kg

Le programme vous demandera alors votre nom, un mot de passe (ou mieux, une phrase). Il vous demandera également de taper un certain nombre de touches pour générer de manière vraiment aléatoire votre paire de clefs.

Signature d’un fichier

PGP permet aussi la signature d’un message à l’aide de votre clef secrète. Identifiant ainsi le message comme venant de vous et uniquement de vous. Le destinataire utilisera votre clef publique pour vérifier la signature.

Signature d’un message :

pgp -s fichier [votre_nom]

NOTE : si le nom n’est pas donné sur la ligne de commande, PGP prend par défaut la première clef secrète générée dans le fichier de clefs secrètes.

Vérification de la signature :

pgp fichier

Il est intéressant de noter que la commande qui permet le déchiffrement (conventionnel ou non) est identique.

 

 

 

 

 

 

 

Chiffrement d’un message

Pour chiffrer un message de manière conventionnelle (en utilisant l’algorithme IDEA) il faut utiliser la commande :

pgp -c fichier

PGP vous demandera alors un mot de passe (phrase) pour encoder le message. Attention, il s’agit ici d’un algorithme à clef unique et secrète. Il est donc important de ne pas la dévoiler.

Pour chiffrer un message à l’aide de RSA, il suffit de taper :

pgp -e destinataire [autre_destinataire]

Vous pouvez également signer et chiffrer un message en utilisant une combinaison d’options :

pgp -es destinataire [autre_destinataire] [-u votre_nom]

Gestion de clefs

Pour ajouter le contenu d'un fichier de clés à votre fichier de clés publiques ou secrètes :

pgp -ka fichier_de_clés [votre_fichier_de_clés]

ou:

pgp -kxa nom_d_utilisateur fichier_de_la_clé [fichier_de_clés]

Pour retirer une clé de votre fichier de clés publiques ou secrètes :

pgp -kr nom_d_utilisateur [fichier_de_clés]

Pour extraire (copier) une clé de votre fichier de clés publiques ou secrètes :

pgp -kx nom_d_utilisateur fichier_de_la_clé [fichier_de_clés]

Pour visualiser le contenu de votre fichier de clés :

pgp -kv[v] [nom_d_utilisateur] [ficher_de_clés]

 

Pour visualiser l'empreinte d'une clé publique, afin de faciliter sa vérification au téléphone avec son propriétaire :

pgp -kvc [nom_d_utilisateur] [ficher_de_clés]

Pour vérifier les signatures sur votre fichier de clés publiques :

pgp -kc [nom_d_utilisateur] [ficher_de_clés]

Pour modifier le nom d'utilisateur ou le mot de passe pour votre clé secrète :

pgp -ke nom_d_utilisateur [ficher_de_clés]

Pour modifier les paramètres de confiance pour une clé publique :

pgp -ke nom_d_utilisateur [ficher_de_clés]

Pour signer la clé publique de quelqu'un d'autre sur votre fichier de clés publiques :

pgp -ks son_nom [-u votre_nom] [fichier_de_clés]

Pour enlever certaines signatures d'une personne sur un fichier de clés :

pgp -krs son_nom [fichier_de_clés]

Pour inactiver une clé publique afin que PGP ne l’utilise pas ou pour la réactiver :

pgp -kd son_nom [fichier_de_clés]

Pour révoquer votre propre clé de façon permanente et émettre un certificat de compromission de clé :

pgp -kd votre_nom [fichier_de_clés]

 

 

 

 

 

 

 

 

Commandes diverses

Pour déchiffrer un message et laisser intacte la signature :

pgp -d fichier_chiffré

Pour créer un certificat de signature détaché du document :

pgp -sb fichier_de_texte [-u votre_nom]

Pour détacher un certificat de signature d'un message signé :

pgp -b fichier_chiffré

 

Combinaison de commandes

Pour produire un fichier chiffré en format ASCII base-64, ajouter l'option -a lors du chiffrement ou de la signature d'un message ou l'extraction d'une clé :

pgp -sea fichier son_nom

ou:

pgp -kxa nom_d_utilisateur fichier_de_la_clé [fichier_de_clés]

Pour effacer complètement le fichier en clair après avoir produit le fichier chiffré, ajoutez l'option -w lors du chiffrement ou de la signature d'un message :

pgp -sew fichier son_nom

Pour spécifier qu'un fichier en clair contient du texte ASCII et non du binaire, et qu'il faut le convertir aux conventions locales de lignes de texte, ajouter l'option -t (texte) aux autres options :

pgp -seat fichier son_nom

Pour voir le fichier déchiffré sur votre écran (comme la commande "more" de style Unix), sans l'écrire dans un fichier, utilisez l'option -m (more) lors du déchiffrement :

pgp -m fichier_chiffré

 

 

 

Pour spécifier que le texte déchiffré du destinataire sera affiché SEULEMENT sur son écran et ne peut pas être sauvegardé sur disque, ajouter l'option -m :

pgp -steam fichier son_nom

Pour récupérer le nom de fichier en clair originel lors du déchiffrement, ajouter l'option -p :

pgp -p fichier_chiffré

Pour utiliser un mode filtre du style Unix, lisant l'entrée standard et écrivant sur la sortie standard, ajouter l'option -f :

pgp -feast son_nom < fichier_entrée > fichier_sortie

Pour destiner le message à des destinataires supplémentaires, utilisez l'option -@ :

pgp -e texte un_destinatiare -@plus.txt

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Bibliographie

Schneier Bruce, Cryptographie appliquée, 1994, Thomson Publishing, 678 pages

Documentation PGP

Source d’informations

DOCs:

http://www.ifi.uio.no/pgp/doc.shtml

http://www.pegasus.esprit.ec.org/people/arne/pgp.html

ftp://ftp.ifi.uio.no/pub/pgp/doc/

ftp://ftp.rhein.de/pub/peti/

FAQs:

PGP 2.6.3i FAQ

http://www.ifi.uio.no/pgp/FAQ.shtml

PGP FAQs from alt.security.pgp

http://www.prairienet.org/~jalicqui/pgpfaq.txt

ftp://ftp.prairienet.org/pub/providers/pgp/pgpfaq.txt

Where to Get the Latest PGP Program FAQ

ftp://ftp.uu.net/usenet/news.answers/pgp-faq/where-is-PGP.Z

Newsgroups:

alt.anonymous : discussion of anonymity and anon remailers

alt.anonymous.messages : for anonymous encrypted message

transfer

alt.privacy.clipper : Clipper, Capstone, Skipjack, Key Escrow

alt.security : general security discussions

alt.security.index : index to alt.security

alt.security.pgp : discussion of PGP

alt.security.ripem : discussion of RIPEM

alt.security.keydist : key distribution via Usenet

alt.society.civil-liberty : general civil liberties, including privacy

comp.compression : discussion of compression algorithms

comp.org.eff.news : news reports from EFF

comp.org.eff.talk : discussion of EFF related issues

comp.patents : discussion of S/W patents, including RSA

comp.risks : some mention of crypto and wiretapping

comp.society.privacy : general privacy issues

comp.security.announce : announcements of security holes

misc.legal.computing : software patents, copyrights, computer laws

sci.crypt : methods of data encryption/decryption

sci.math : general math discussion

talk.politics.crypto : general talk on crypto politics

Books:

The Official PGP User's Guide

by Philip R. Zimmermann

MIT Press 1995

ISBN 0-262-74017-6

216 pp. $14.95

PGP: Pretty Good Privacy

by Simson Garfinkel

O'Reilly & Associates 1994

ISBN 1-56592-098-8

430 pp. $24.95

Protect Your Privacy : The PGP User's Guide

by William Stallings

Prentice Hall PTR 1995

ISBN 0-13-185596-4

302 pp. $19.95

E-Mail Security with PGP and PEM : How to Keep Your Electronic Mail Private

by Bruce Schneier

John Wiley & Sons 1995

ISBN 0-471-05318-X