PGP est un cryptosystème (système de chiffrement)
inventé par Philip zimmermann, un analyste informaticien. Philip Zimmermann a travaillé de 1984 à 1991 sur
un programme permettant de faire fonctionner RSA sur des ordinateurs personnels (PGP).
Cependant, étant donné que celui-ci utilisait RSA sans l'accord de ses auteurs, cela lui a valu des
procès pendant 3 ans, il est donc vendu environ 150$ depuis 1993...
Il est très rapide et sûr ce qui le rend quasiment impossible à
cryptanalyser.
PGP est une combinaison des fonctionnalités de la cryptographie de clef publique et de la cryptographie
conventionnelle. PGP est donc un système de cryptographie hybride.
Lorsqu'un utilisateur chiffre un texte avec PGP, les données sont d’abord compressées.
Cette compression des données permet de réduire le temps de transmission par modem, d'économiser l'espace
disque et, surtout, de renforcer la sécurité cryptographique.
La plupart des cryptanalystes exploitent les modèles trouvés dans le texte en clair
pour casser le chiffrement. La compression réduit ces modèles dans le texte en clair, améliorant
par conséquent considérablement la résistance à la cryptanalyse.
Ensuite, l'opération de chiffrement se fait principalement en deux étapes :
- PGP crée une clé secrète IDEA de manière aléatoire, et chiffre les données avec cette clef
- PGP crypte la clé secrète IDEA et la transmet au moyen de la clé RSA publique du destinataire.
De même, l'opération de décryptage se fait aussi en deux étapes :
- PGP déchiffre la clé secrète IDEA au moyen de la clé RSA privée.
- PGP déchiffre les données avec la clé secrète IDEA précédemment obtenue.
Cette méthode de chiffrement associe la facilité d'utilisation du cryptage de clef publique
à la vitesse du cryptage conventionnel.
Le chiffrement conventionnel est environ 1 000 fois plus rapide que le cryptage de clef publique.
Le cryptage de clef publique résout le problème de la distribution des clefs. Utilisées conjointement,
ces deux méthodes améliorent la performance et la gestion des clefs, sans pour autant compromettre la sécurité.
PGP offre les fonctionnalités suivantes :
- Signature électronique et vérification d'intégrité
de messages : fonction basée sur l'emploi simultané d'une fonction de
hachage (MD5) et du système RSA. MD5 hache le message et fournit un résultat
de 128 bits qui est ensuite chiffré, grâce à RSA, par la clef privée de
l'expéditeur.
- Chiffrement des fichiers locaux : fonction utilisant
IDEA.
- Génération de clefs publiques et privées : chaque
utilisateur chiffre ses messages à l'aide de clefs privées IDEA. Le
transfert de clefs électroniques IDEA utilise le système RSA; PGP offre donc
des mécanismes de génération de clefs adaptés à ce système. La taille des
clefs RSA est proposée suivant plusieurs niveaux de sécurité : 512, 768,
1024 ou 1280 bits.
- Gestion des clefs : fonction s'assurant de
distribuer la clef publique de l'utilisateur aux correspondants qui
souhaiteraient lui envoyer des messages chiffrés.
- Certification de clefs : cette fonction permet
d'ajouter un sceau numérique garantissant l'authenticité des clefs
publiques. Il s'agit d'une originalité de PGP, qui base sa confiance sur une
notion de proximité sociale plutôt que sur celle d'autorité centrale de
certification.
- Révocation, désactivation, enregistrement de clefs :
fonction qui permet de produire des certificats de révocation.
Un certificat PGP comprend, entre autres, les informations suivantes :
- Le numéro de version de PGP : identifie la version
de PGP utilisée pour créer la clef associée au certificat.
- La clef publique du détenteur du certificat : partie
publique de votre paire de clefs associée à l'algorithme de la clef, qu'il
soit RSA, DH (Diffie-Hellman) ou DSA (Algorithme de signature numérique).
- Les informations du détenteur du certificat : il
s'agit des informations portant sur l'« identité » de l'utilisateur, telles
que son nom, son ID utilisateur, sa photographie, etc.
- La signature numérique du détenteur du certificat :
également appelée autosignature, il s'agit de la signature effectuée avec la
clef privée correspondant à la clef publique associée au certificat.
- La période de validité du certificat : dates/ heures
de début et d'expiration du certificat. Indique la date d'expiration du
certificat.
- L'algorithme de chiffrement symétrique préféré pour la
clef : indique l'algorithme de chiffrement que le détenteur du certificat
préfère appliquer au cryptage des informations. Les algorithmes pris en
charge sont CAST, IDEA ou DES triple
Le fait qu'un seul certificat puisse contenir plusieurs signatures est l'un
des aspects uniques du format du certificat PGP. Plusieurs personnes peuvent
signer la paire de clefs/ d'identification pour attester en toute certitude
de l'appartenance de la clef publique au détenteur spécifié.
Certains certificats PGP sont composés d'une clef publique avec plusieurs
libellés, chacun offrant un mode d'identification du détenteur de la clef
différent (par exemple, le nom et le compte de messagerie d'entreprise du
détenteur, l'alias et le compte de messagerie personnel du détenteur, sa
photographie, et ce, dans un seul certificat).
Dans un certificat, une personne doit affirmer qu'une clef publique et le
nom du détenteur de la clef sont associés. Quiconque peut valider les
certificats PGP. Les certificats X. 509 doivent toujours être validés par
une autorité de certification ou une personne désignée par la CA. Les
certificats PGP prennent également en charge une structure hiérarchique à
l'aide d'une CA pour la validation des certificats.
Plusieurs différences existent entre un certificat X. 509 et un certificat
PGP. Les plus importantes sont indiquées ci-dessous :
Pour créer votre propre certificat PGP, vous devez
demander l'émission d'un certificat X. 509 auprès d'une autorité de
certification et l'obtenir ;
- Les certificats X. 509 prennent en charge un seul
nom pour le détenteur de la clef ;
- Les certificats X. 509 prennent en charge une seule
signature numérique pour attester de la validité de la clef ;
En règle générale, la CA (Certification authority - autorité de certification)
inspire une confiance totale pour établir la
validité des certificats et effectuer tout le processus de validation
manuelle. Mais, il est difficile d'établir une ligne de confiance avec les
personnes n'ayant pas été explicitement considérées comme fiables par votre
CA.
Dans un environnement PGP, tout utilisateur peut agir en tant qu'autorité de
certification. Il peut donc valider le certificat de clef publique d'un
autre utilisateur PGP. Cependant, un tel certificat peut être considéré
comme valide par un autre utilisateur uniquement si un tiers reconnaît celui
qui a validé ce certificat comme un correspondant fiable. C'est-à-dire, si
l'on respecte par exemple mon opinion selon laquelle les clefs des autres
sont correctes uniquement si je suis considéré comme un correspondant
fiable. Dans le cas contraire, mon opinion sur la validité d'autres clefs
est controversée.
Supposons, par exemple, que votre trousseau de clefs contient la clef
d'Alice. Vous l'avez validée et, pour l'indiquer, vous la signez. En outre,
vous savez qu'Alice est très pointilleuse en ce qui concerne la validation
des clefs d'autres utilisateurs. Par conséquent, vous affectez une fiabilité
complète à sa clef. Alice devient ainsi une autorité de certification. Si
elle signe la clef d'un autre utilisateur, cette clef apparaît comme valide
sur votre trousseau de clefs.
Seul le détenteur du certificat (le détenteur de sa clef privée
correspondante) ou un autre utilisateur, désigné comme autorité de
révocation par le détenteur du certificat, a la possibilité de révoquer un
certificat PGP. La désignation d'une autorité de révocation est utile, car
la révocation, par un utilisateur PGP, de son certificat est souvent due à
la perte du mot de passe complexe de la clef privée correspondante. Or,
cette procédure peut uniquement être effectuée s'il est possible d'accéder à
la clef privée. Un certificat X. 509 peut uniquement être révoqué par son
émetteur.
Lorsqu'un certificat est révoqué, il est important d'en avertir ses
utilisateurs potentiels. Pour informer de la révocation des certificats PGP,
la méthode habituelle consiste à placer cette information sur un serveur de
certificats. Ainsi, les utilisateurs souhaitant communiquer avec vous sont
avertis de ne pas utiliser cette clef publique.
Article écrit par Sylvain Lorin Source : http://www.pgpi.org/doc/pgpintro/, une très bonne référence
|