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 lutilisateur. PGP engendre des clefs IDEA aléatoires en utilisant lannexe 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 lutilisateur en utilisant lempreinte dune phrase clef au lieu dun 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 dun message chiffré est lidentité de lexpéditeur, pour autant quils connaissent lidentificateur de la clef du destinataire. Ce nest quaprès que le destinataire ait déchiffré le message quils peuvent apprendre qui la signé, s'il est signé.
Laspect le plus intéressant de PGP est sont approche de la gestion de clefs distribuées. Il ny a pas dautorité 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 dun 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. Sil y trouve quelquun 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 cest 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 quen Belgique, il vous faudra utiliser la version internationale de PGP étant donné les restrictions à lexportation édictées par les Etats-Unis (lutilisation de cette version est interdite aussi en France et en Irak).
La cryptographie
Lorsquil 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.
Cest 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 larmé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
Lencodage et le décodage utilisent la même clef. Le problème de cette méthode est quil est difficile de transmettre la clef unique par le biais dun canal de communication sûr. De fait, à partir du moment où il existe un canal sûr, la cryptographie na plus vraiment de raison dêtre (à part peut-être pour protéger vos messages de votre belle-mère).
RSA
Au lieu davoir une clef unique et secrète, chaque partie génère une paire de clef. Une des clefs est dite publique et lautre 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. Cest pour cette raison que la diffusion peut en être faite.
Cest cet algorithme quutilise PGP pour lencryption des données.
PGP en pratique
Génération dune paire de clefs
La première chose à faire après linstallation 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 dun fichier
PGP permet aussi la signature dun message à laide 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 dun message :
pgp -s fichier [votre_nom]
NOTE : si le nom nest 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 dun message
Pour chiffrer un message de manière conventionnelle (en utilisant lalgorithme IDEA) il faut utiliser la commande :
pgp -c fichier
PGP vous demandera alors un mot de passe (phrase) pour encoder le message. Attention, il sagit ici dun algorithme à clef unique et secrète. Il est donc important de ne pas la dévoiler.
Pour chiffrer un message à laide de RSA, il suffit de taper :
pgp -e destinataire [autre_destinataire]
Vous pouvez également signer et chiffrer un message en utilisant une combinaison doptions :
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 lutilise 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 dinformations
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