Principe du Cryptage PGP

Le texte suivant est pris du chapitre 1 du document Introduction à la Cryptographie dans la documentation de PGP 6.5.1.
Copyright © 1990-1999 Network Associates, Inc. et ses filiales. Tous droits Reservés.
Converti de PDF en HTML à l'adresse http://access.adobe.com/ et ensuite édité à la main.
Page d'accueil Retour à la page d'accueil
 
Notions élémentaires de cryptographie
Cryptage et décryptage
Définition de la cryptographie
Cryptographie invulnérable
Mécanismes de la cryptographie
Cryptographie conventionnelle
Chiffrement de César
Gestion des clés et cryptage conventionnel
Cryptographie de clé publique
Fonctionnement de PGP
Clés
Signatures numériques
Fonctions de hachage
Certificats numériques
Distribution de certificats
Formats de certificats
Validité et fiabilité
Vérification de la validité
Etablissement de la fiabilité
Modèles de fiabilité
Révocation de certificats
Communication de la révocation d'un certificat
Qu'est-ce qu'un mot de passe complexe ?
Découpage de clé

Notions élémentaires de cryptographie

Lorsque Jules César envoyait des messages à ses généraux, il ne faisait pas confiance à ses messagers. Il remplaçait donc tous les A contenus dans ses messages par des D, les B par des E, et ainsi de suite pour tout l'alphabet. Seule la personne connaissant la règle du « décalage par trois » pouvait déchiffrer ses messages.

Et voilà comment tout a commencé.

Cryptage et décryptage

Les données lisibles et compréhensibles sans intervention spécifique sont considérées comme du texte en clair. La méthode permettant de dissimuler du texte en clair en masquant son contenu est appelée le cryptage. Le cryptage consiste à transformer un texte normal en charabia inintelligible appelé texte chiffré. Cette opération permet de s'assurer que seules les personnes auxquelles les informations sont destinées pourront y accéder. Le processus inverse de transformation du texte chiffré vers le texte d'origine est appelé le décryptage. La Figure 1 illustre ce processus.

Figure 1. Cryptage et décryptage

Définition de la cryptographie

La cryptograpie est la science qui utilise les mathématiques pour le cryptage et le décryptage de données. Elle permet ainsi de stocker des informations confidentielles ou de les transmettre sur des réseaux non sécurisés (tels que l'Internet), afin qu'aucune personne autre que le destinataire ne puisse les lire.

Alors que la cryptographie consiste à sécuriser les données, la cryptanalyse est l'étude des informations cryptées, afin d'en découvrir le secret. La cryptanalyse classique implique une combinaison intéressante de raisonnement analytique, d'application d'outils mathématiques, de recherche de modèle, de patience, de détermination et de chance. Ces cryptanalystes sont également appelés des pirates.

La cryptologie englobe la cryptographie et la cryptanalyse.

Cryptographie invulnérable

« Il existe deux types de cryptographie dans le monde : la cryptographie qui protège vos documents de la curiosité de votre petite soeur et celle qui empêche les gouvernements les plus puissants de lire vos fichiers. Cet ouvrage s'adresse au dernier cas. »

—Bruce Schneier, Applied Cryptography : Protocols, Algorithms, and Source Code in C.

PGP traite également de ce dernier type de cryptographie. La cryptographie peut être invulnérable ou vulnérable, comme décrit précédemment. Cette vulnérabilité se mesure en termes de temps et de ressources nécessaires pour récupérer le texte en clair. Une cryptographie invulnérable pourrait être définie comme un texte crypté particulièrement difficile à déchiffrer sans l'aide d'un outil de décodage approprié. Mais, alors, comment déterminer cette difficulté ? Etant donné la puissance informatique et le temps machine actuellement disponibles, il devrait être impossible de déchiffrer le résultat d'une telle cryptographie avant la fin du monde (même avec un milliard d'ordinateurs effectuant un milliard de vérifications à la seconde).

On pourrait donc penser qu'une cryptographie évoluée résisterait même aux assauts d'un cryptanalyste particulièrement acharné. Qui peut vraiment l'affirmer ? Personne n'a encore prouvé que le meilleur niveau de cryptage pouvant être obtenu de nos jours tiendra la route avec la puissance informatique de demain. Néanmoins, nous pouvons vous assurer que PGP est actuellement la solution la plus invulnérable à ce jour. La vigilance et la prudence constituent toutefois une meilleure protection que les prétentions d'inviolabilité.

Mécanismes de la cryptographie

Un algorithme de cryptographie ou un chiffrement est une fonction mathématique utilisée lors du processus de cryptage et de décryptage. Cet algorithme est associé à une clé (un mot, un nombre ou une phrase), afin de crypter le texte en clair. Avec des clés différentes, le résultat du cryptage variera également. La sécurité des données cryptées repose entièrement sur deux éléments : l'invulnérabilité de l'algorithme de cryptographie et la confidentialité de la clé.

Un système de cryptographie est constitué d'un algorithme de cryptographie, ainsi que de toutes les clés et tous les protocoles nécessaires à son fonctionnement. PGP est un système de cryptographie.

Cryptographie conventionnelle

En cryptographie conventionnelle, également appelée cryptage de clé secrète ou de clé symétrique, une seule clé suffit pour le cryptage et le décryptage. La norme de cryptage de données (DES) est un exemple de système de cryptographie conventionnelle largement utilisé par le gouvernement fédéral des Etats-Unis. La Figure 2 est une illustration du processus de cryptage conventionnel.

Figure 2. Cryptage conventionnel

Chiffrement de César

Le chiffrement de substitution est un exemple extrêmement simple de cryptographie conventionnelle. Il substitue une information par une autre. Cette opération s'effectue généralement en décalant les lettres de l'alphabet. Le code secret de Jules César est à la base de la cryptographie conventionnelle. Dans ce cas, l'algorithme constitue à décaler les lettres de l'alphabet et la clé correspond au nombre de caractères de décalage.

Par exemple, si vous codez le mot « SECRET » à l'aide de la valeur 3 de la clé de César, l'alphabet est décalé de manière à commencer à la lettre D. Ainsi, l'alphabet

ABCDEFGHIJKLMNOPQRSTUVWXYZ

si vous décalez le début de 3 lettres, vous obtenez

DEFGHIJKLMNOPQRSTUVWXYZABC

où D = A, E = B, F = C, etc.

Avec ce procédé, le texte en clair « SECRET » est crypté en « VHFUHW ». Pour autoriser un autre utilisateur à lire le texte chiffré, indiquez-lui que la valeur de la clé est égale à 3.

Evidemment, ceci est considéré comme une cryptographie extrêmement vulnérable de par les standards actuels. Mais, cette méthode convenait à César et illustre le mode de fonctionnement de la cryptographie conventionnelle.

Gestion des clés et cryptage conventionnel

Le cryptage conventionnel comporte des avantages. Il est très rapide. Mais, il s'avère particulièrement utile pour les données véhiculées par des moyens de transmission sécurisés. Toutefois, il peut entraîner des coûts importants en raison de la difficulté à garantir la confidentialité d'une clé de cryptage lors de la distribution.

Souvenez-vous d'un personnage de votre film d'espionnage préféré : la personne avec un porte-documents menotté à son poignet. Mais que contient donc ce porte-documents ? Sûrement pas le code de lancement d'un missile, la formule d'une biotoxine ou un plan d'invasion, mais la clé permettant de décrypter ces données secrètes.

Un expéditeur et un destinataire souhaitant communiquer de manière sécurisée à l'aide du cryptage conventionnel doivent convenir d'une clé et ne pas la divulguer. S'ils se trouvent à des emplacements géographiques différents, ils doivent faire confiance à un coursier, au téléphone de Batman ou à tout autre moyen de communication sécurisé pour éviter la divulgation de la clé secrète lors de la transmission. Toute personne interceptant la clé lors d'un transfert peut ensuite lire, modifier et falsifier toutes les informations cryptées ou authentifiées avec cette clé. De la norme de cryptage de données DES au code secret de Jules César, la distribution des clés reste le problème majeur du cryptage conventionnel. Autrement dit, comment faire parvenir la clé à son destinataire sans qu'aucune personne ne l'intercepte ?

Cryptographie de clé publique

Les problèmes de distribution des clés sont résolus par la cryptographie de clé publique. Ce concept a été introduit par Whitfield Diffie et Martin Hellman en 1975. (Il est maintenant prouvé que les services secrets britanniques avaient fait cette même découverte plusieurs années avant Diffie et Hellman et avaient protégé ce secret militaire (sans en faire aucune utilisation).

La cryptographie de clé publique est un procédé asymétrique utilisant une paire de clés pour le cryptage : une clé publique qui crypte des données et une clé privée ou secrète correspondante pour le décryptage. Vous pouvez ainsi publier votre clé publique tout en conservant votre clé privée secrète. Tout utilisateur possédant une copie de votre clé publique peut ensuite crypter des informations que vous êtes le seul à pourvoir lire. Même les personnes que vous ne connaissez pas personnellement peuvent utiliser votre clé publique.

D'un point de vue informatique, il est impossible de deviner la clé privée à partir de la clé publique. Tout utilisateur possédant une clé publique peut crypter des informations, mais est dans l'impossibilité de les décrypter. Seule la personne disposant de la clé privée correspondante peut les décrypter. 1. J H Ellis, The Possibility of Secure Non-Secret Digital Encryption, Rapport du CESG, janvier 1970. [Le CESG est l'institution nationale britannique responsable de l'utilisation officielle de la cryptographie.]

Figure 3. Cryptage de clé publique

La cryptographie de clé publique présente un avantage majeur : en effet, elle permet d'échanger des messages de manière sécurisée sans aucun dispositif de sécurité. L'expéditeur et le destinataire n'ont plus besoin de partager des clés secrètes via une voie de transmission sécurisée. Les communications impliquent uniquement l'utilisation de clés publiques et plus aucune clé privée n'est transmise ou partagée. Elgamal (d'après le nom de son inventeur, Taher Elgamal), RSA (d'après le nom de ses inventeurs, Ron Rivest, Adi Shamir et Leonard Adleman), Diffie-Hellman (également d'après le nom de ses inventeurs) et DSA, l'algorithme de signature numérique (élaboré par David Kravitz), sont des exemples de systèmes de cryptographie de clé publique.

La cryptographie conventionnelle étant auparavant la seule méthode pour transmettre des informations secrètes, les coûts de transmission et de distribution sécurisées des clés ont relégué son utilisation aux institutions disposant de moyens suffisants, telles que des gouvernements et des banques. Le cryptage de clé publique représente une révolution technologique qui offre à tout citoyen la possibilité d'utiliser une cryptographie invulnérable. Souvenez- vous du messager avec un porte-documents menotté à son poignet. Le cryptage de clé publique l'a mis au chômage (probablement à son grand soulagement).

Fonctionnement de PGP

PGP est une combinaison des meilleures fonctionnalités de la cryptographie de clé publique et de la cryptographie conventionnelle. PGP est un système de cryptographie hybride. Lorsqu'un utilisateur crypte du texte en clair avec PGP, ces 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. Toutefois, la compression est impossible sur les fichiers de taille insuffisante ou supportant mal ce processus.

PGP crée ensuite une clé de session qui est une clé secrète à usage unique. Cette clé correspond à un nombre aléatoire, généré par les déplacements aléatoires de votre souris et les séquences de frappes de touches. Pour crypter le texte en clair, cette clé de session utilise un algorithme de cryptage conventionnel rapide et sécurisé. Une fois les données codées, la clé de session est cryptée vers la clé publique du destinataire. Cette clé de session cryptée par clé publique est transmise avec le texte chiffré au destinataire.

Figure 4. Fonctionnement du cryptage PGP

Le processus de décryptage est inverse. La copie de PGP du destinataire utilise sa clé privée pour récupérer la clé de session temporaire qui permettra ensuite de décrypter le texte crypté de manière conventionnelle.

Figure 5. Fonctionnement du décryptage PGP

Ces deux méthodes de cryptage associent la facilité d'utilisation du cryptage de clé publique à la vitesse du cryptage conventionnel. Le cryptage conventionnel est environ 1 000 fois plus rapide que le cryptage de clé publique. De plus, le cryptage de clé publique résout non seulement le problème de la distribution des clés, mais également de la transmission des données. Utilisées conjointement, ces deux méthodes améliorent la performance et la distribution des clés, sans pour autant compromettre la sécurité.

Clés

Une clé est une valeur utilisée dans un algorithme de cryptographie, afin de générer un texte chiffré. Les clés sont en réalité des nombres extrêmement importants. La taille d'une clé se mesure en bits et le nombre correspondant à une clé de 1 024 bits est gigantesque. Dans la cryptographie de clé publique, plus la clé est grande, plus la sécurité du texte chiffré est élevée.

Cependant, la taille de la clé publique et de la clé secrète de cryptographie conventionnelle sont complètement indépendantes. Une clé conventionnelle de 80 bits est aussi puissante qu'une clé publique de 1 024 bits. De même, une clé conventionnelle de 128 bits équivaut à une clé publique de 3 000 bits. Encore une fois, plus la clé est grande, plus elle est sécurisée, mais les algorithmes utilisés pour chaque type de cryptographie sont très différents. Autant essayer de comparer une pomme avec une orange.

Même si les clés publiques et privées sont liées par une relation mathématique, il est très difficile de deviner la clé privée uniquement à partir de la clé publique. Cependant, la déduction de la clé privée est toujours possible en disposant de temps et de puissantes ressources informatiques. Ainsi, il est très important de sélectionner des clés de tailles correctes, suffisamment grandes pour être sécurisées, mais suffisamment petites pour être utilisées assez rapidement. De plus, vous devez tenir compte du profil des utilisateurs tentant de lire vos fichiers, connaître leur détermination, le temps dont ils disposent, ainsi que de leurs ressources.

Plus la clé est grande, plus sa durée de sécurisation est élevée. Si les informations que vous souhaitez crypter doivent rester confidentielles pendant plusieurs années, vous pouvez utiliser une clé correspondant à un nombre de bits extrêmement élevé. Qui sait combien de temps sera nécessaire pour deviner votre clé avec la technologie de demain ? Il fut un temps où une clé symétrique de 56 bits était considérée comme extrêmement sûre.

Les clés sont stockées sous forme cryptée. PGP conserve les clés sur votre disque dur, dans deux fichiers : l'un est destiné aux clés publiques, l'autre aux clés privées. Ces fichiers s'appellent des trousseaux de clés. Lors de l'utilisation de PGP, vous devez généralement ajouter les clés publiques de vos destinataires sur votre trousseau de clés publiques. Vos clés privées sont stockées sur votre trousseau de clés privées. En cas de perte de votre trousseau de clés privées, il vous sera impossible de décrypter les informations cryptées vers les clés de ce trousseau.

Signatures numériques

L'un des principaux avantages de la cryptographie de clé publique est qu'elle offre une méthode d'utilisation des signatures numériques. Celles-ci permettent au destinataire de vérifier leur authenticité, leur origine, mais également de s'assurer qu'elles sont intactes. Ainsi, les signatures numériques de clé publique garantissent l'authentification et l'intégrité des données. Elles fournissent également une fonctionnalité de non répudiation, afin d'éviter que l'expéditeur ne prétende qu'il n'a pas envoyé les informations. Ces fonctions jouent un rôle tout aussi important pour la cryptographie que la confidentialité, sinon plus.

Une signature numérique a la même utilité qu'une signature manuscrite. Cependant, une signature manuscrite peut être facilement imitée, alors qu'une signature numérique est pratiquement infalsifiable. De plus, elle atteste du contenu des informations, ainsi que de l'identification du signataire.

Certaines personnes privilégient l'utilisation des signatures par rapport au cryptage. Par exemple, qu'une personne sache que vous venez de déposer 5 000,00 FF sur votre compte vous importe peu. Cependant, vous voulez être certain d'avoir eu affaire à un caissier.

La Figure 6 illustre la méthode de création des signatures numériques. Plutôt que de crypter des informations avec la clé publique d'un autre utilisateur, cryptez-les avec votre clé privée. Si des informations peuvent être décryptées avec votre clé publique, c'est vous qui devez les avoir créées.

Figure 6. Signatures numériques simples

Fonctions de hachage

Le système décrit précédemment comporte certains problèmes. Il est lent et produit un volume important de données (au moins le double de la taille des informations d'origine). L'ajout d'une fonction de hachage à sens unique dans le processus permet d'améliorer le schéma ci-dessus. Cette fonction traite une entrée de longueur variable (dans ce cas, un message pouvant contenir indifféremment des milliers ou des millions de bits), afin d'obtenir en sortie un élément de longueur fixe, à savoir 160 bits. En cas de modification des données (même d'un seul bit), la fonction de hachage garantit la production d'une valeur de sortie complètement différente.

PGP applique au texte en clair signé par l'utilisateur une fonction de hachage évoluée, qui génère un élément de données à longueur définie, appelé résumé de message. En outre, toute modification apportée aux informations entraîne un résumé complètement différent.

PGP utilise ensuite le résumé et la clé privée pour créer la « signature ». PGP transmet en même temps la signature et le texte en clair. A réception du message, le destinataire utilise PGP pour traiter à nouveau le message informatiquement, vérifiant ainsi la signature. PGP peut crypter ou non le texte en clair. La signature du texte en clair est utile si certains utilisateurs ne souhaitent pas ou ne peuvent pas vérifier la signature.

Si une fonction de hachage sécurisée est utilisée, il est impossible de récupérer la signature d'un document pour la joindre à un autre document ou d'altérer un message signé. La moindre modification apportée à un document signé entraîne l'échec du processus de vérification de la signature numérique.

Figure 7. Signatures numériques sécurisées

Les signatures numériques jouent un rôle majeur dans l'authentification et la validation des clés d'autres utilisateurs PGP.

Certificats numériques

Lors de l'utilisation des systèmes de cryptographie de clé publique, les utilisateurs doivent constamment vérifier qu'ils cryptent vers la clé du bon utilisateur, ce qui constitue un problème. Dans un environnement où le libre échange de clés via des serveurs publics est sécurisé, toute attaque menée par une personne intermédiaire, encore appelée un intercepteur, représente une menace éventuelle. Dans ce type d'attaque, une personne place une fausse clé comportant le nom et l'ID utilisateur du destinataire. Les données cryptées (et interceptées) vers le détenteur réel de cette clé erronée sont dorénavant entre de mauvaises mains.

Dans un environnement de clé publique, il est essentiel de s'assurer que la clé publique vers laquelle vous cryptez les données est celle du destinataire concerné et non une contrefaçon. Vous pouvez crypter uniquement vers les clés qui vous ont été distribuées physiquement. Supposons maintenant que vous devez échanger des informations avec des personnes que vous ne connaissez pas, comment savoir que vous êtes en possession de la bonne clé ?

Les certificats numériques ou certificats simplifient la tâche qui consiste à déterminer si une clé publique appartient réellement à son détenteur supposé.

Un certificat correspond à une référence. Il peut s'agir par exemple de votre permis de conduire, de votre carte de sécurité sociale ou de votre certificat de naissance. Chacun de ces éléments contient des informations vous identifiant et déclarant qu'une autre personne a confirmé votre identité. Certains certificats, tels que votre passeport, représentent une confirmation de votre identité suffisamment importante pour ne pas les perdre, de crainte qu'une autre personne ne les utilise pour usurper votre identité.

Un certificat numérique contient des données similaires à celles d'un certificat physique. Il contient des informations associées à la clé publique d'une personne, aidant d'autres personnes à vérifier qu'une clé est authentique ou valide. Les certificats numériques permettent de contrecarrer les tentatives de substitution de la clé d'une personne par une autre.

Un certificat numérique se compose de trois éléments :

Une clé publique.
Des informations sur le certificat. (Informations sur l'« identité » de l'utilisateur, telles que son nom, son ID utilisateur, etc.)
Une ou plusieurs signatures numériques.

La signature numérique d'un certificat permet de déclarer que ses informations ont été attestées par une autre personne ou entité. La signature numérique ne garantit pas totalement l'authenticité du certificat. Elle confirme uniquement que les informations d'identification signées correspondent ou sont liées à la clé publique.

Ainsi, un certificat équivaut en réalité à une clé publique comportant un ou deux types d'ID joints ainsi qu'une estampille agréée par d'autres personnes fiables.

Figure 8. Schéma d'un certificat PGP

Distribution de certificats

Les certificats sont utilisés lors de l'échange de clés publiques avec un autre utilisateur. Pour un petit groupe de personnes souhaitant communiquer de manière sécurisée, il est facile d'échanger manuellement des disquettes ou des e-mails contenant la clé publique de chaque détenteur. Cette distribution manuelle de clés publiques s'avère limitée. Au-delà d'un certain point, il est nécessaire de mettre en place des systèmes pouvant fournir des mécanismes de sécurité, de stockage et d'échanges nécessaires pour que vos collègues ou d'autres personnes puissent communiquer. Ces systèmes peuvent se présenter sous la forme de référentiels de stockage uniquement, appelés serveurs de certificats ou sous la forme de systèmes structurés offrant des fonctions de gestion de clés, appelés infrastructures de clé publique (PKI).

Serveurs de certificats
Un serveur de certificats, également appelé serveur de clés, est une base de données permettant aux utilisateurs de soumettre et de récupérer des certificats numériques. Un serveur de certificats offre généralement des fonctions de gestion permettant à une entreprise de soutenir sa politique de sécurité (par exemple, autoriser uniquement le stockage des clés répondant à des exigences spécifiques).

Infrastructures de clé publique (PKI)
Une PKI contient les fonctions de stockage de certificats d'un serveur de certificats, mais elle offre également des fonctions de gestion de certificats (émission, révocation, stockage, récupération et fiabilité des certificats). La principale fonction d'une PKI est de présenter l'autorité de certification ou la CA, à savoir une entité humaine (une personne, un groupe, un service, une entreprise ou une autre association) autorisée par une société à émettre des certificats à l'attention de ses utilisateurs informatiques. Une CA fonctionne comme un service de contrôle des passeports du gouvernement d'un pays. Elle crée des certificats et les signe de façon numérique à l'aide d'une clé privée de CA. Ainsi, la CA est l'élément central d'une PKI. A l'aide de la clé publique de la CA, quiconque souhaite vérifier l'authenticité d'un certificat doit vérifier la signature numérique de la CA émettrice et, par conséquent, l'intégrité du contenu du certificat (essentiellement, la clé publique et l'identité du détenteur du certificat).

Formats de certificats

Un certificat numérique est en réalité un ensemble d'informations permettant d'identifier une clé publique, signé par un tiers de confiance, afin de prouver son authenticité. Un certificat numérique peut se présenter sous différents formats.

PGP reconnaît deux formats de certificat :

Certificats PGP
Certificats X. 509

Format de certificat PGP
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 clé associée au certificat.
La clé publique du détenteur du certificat : partie publique de votre paire de clés associée à l'algorithme de la clé, 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 clé privée correspondant à la clé 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 cryptage symétrique préféré pour la clé : indique l'algorithme de cryptage 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.

On peut comparer un certificat PGP à une clé publique comportant un ou plusieurs libellés (voir Figure 9). Dans ces « libellés » figurent des informations liées à l'identification du détenteur de la clé, ainsi que sa signature, confirmant l'association de la clé et de l'identification. Cette signature spécifique est appelée autosignature­ et figure dans chaque certificat PGP.

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 clés/ d'identification pour attester en toute certitude de l'appartenance de la clé publique au détenteur spécifié. Sur un serveur de certificats publics, vous pouvez remarquer que certains certificats, tels que celui du créateur de PGP, Phil Zimmermann, contiennent plusieurs signatures.

Certains certificats PGP sont composés d'une clé publique avec plusieurs libellés, chacun offrant un mode d'identification du détenteur de la clé 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). La liste des signatures de chacune de ces identités peut varier. Les signatures attestent de l'authenticité de l'appartenance de l'un des libellés à la clé publique et non de l'authenticité de tous les libellés sur la clé. Notez que « authentique » est fonction de l'opinion de l'utilisateur. Les signatures sont des opinions et différentes personnes vérifient à différents niveaux l'authenticité avant de signer une clé.

Figure 9. Un certificat PGP

Format de certificat X. 509
Le format X. 509 est un autre format de certificat très utilisé. Tous les certificats X. 509 sont conformes à la norme internationale UIT-T X. 509. Ainsi, en théorie, les certificats X. 509 créés pour une application peuvent être utilisés par toute autre application compatible X. 509. Cependant, en pratique, différentes entreprises ont créé leurs propres extensions de certificats X. 509, toutes n'étant pas compatibles.

Dans un certificat, une personne doit affirmer qu'une clé publique et le nom du détenteur de la clé 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. Gardez à l'esprit que les certificats PGP prennent également en charge une structure hiérarchique à l'aide d'une CA pour la validation des certificats.

Un certificat X. 509 est un ensemble standard de champs contenant des informations relatives à un utilisateur ou un périphérique et à la clé publique correspondante. Le standard X. 509 définit les informations à inclure dans le certificat et décrit leur mode de codage (le format des données). Tous les certificats X. 509 contiennent les données suivantes :

Le numéro de version X. 509 : identifie la version du standard X. 509 s'appliquant à ce certificat, ce qui détermine les informations à spécifier. La version 3 est la plus courante.
La clé publique du détenteur du certificat : clé publique du détenteur du certificat associée à un identifiant d'algorithme spécifiant le système de cryptographie auquel appartient la clé ainsi que tous les paramètres de clé correspondants.
Le numéro de série du certificat : l'entité (application ou personne) ayant créé le certificat doit lui affecter un numéro de série unique permettant de le distinguer des autres certificats émis. Ces informations sont utilisées de différentes manières. Par exemple, lorsqu'un certificat est révoqué, son numéro de série est placé dans une liste des révocations de certificats ou LRC.
L'identifiant unique du détenteur du certificat (ou nom explicite/ DN). Ce nom doit être unique sur Internet. Un DN se compose de plusieurs sous-sections et peut avoir la structure suivante :

NC = Robert Durand, UO = Service de sécurité réseau, O = Network Associates, Inc., C = France

(Ces éléments se réfèrent au nom, à l'unité organisationnelle, à l'organisme et au pays du sujet. )

La période de validité du certificat : dates/ heures de début et d'expiration du certificat. Indique la date d'expiration du certificat.
Le nom unique de l'émetteur du certificat : nom unique de l'entité ayant signé le certificat. Il s'agit généralement d'une CA. L'utilisation du certificat
implique que vous faites confiance à l'entité ayant signé le certificat. Notez que dans certains cas, tels que pour les certificats CA de haut ou bas niveau,
l'émetteur signe son propre certificat.
La signature numérique de l'émetteur : signature effectuée avec la clé privée de l'entité ayant émis le certificat.
L'identifiant d'algorithme de signature : identifie l'algorithme utilisé par la CA pour signer le certificat.

Plusieurs différences existent entre un certificat X. 509 et un certificat PGP. Les plus importantes sont indiquées ci-dessous :

On peut créer son propre certificat PGP, alors qu'un certificat X.509 doit être validé par une autorité de certification au préalable.
Les certificats X. 509 prennent en charge un seul nom pour le détenteur de la clé.
Les certificats X. 509 prennent en charge une seule signature numérique pour attester de la validité de la clé.

Pour obtenir un certificat X. 509, demandez à une CA d'émettre un certificat à votre attention. Fournissez votre clé publique, preuve que vous possédez la clé privée correspondante, ainsi que des informations spécifiques vous concernant. Signez ensuite les informations numériquement, puis envoyez l'ensemble (la demande de certificat) à la CA. Cette dernière vérifie ensuite avec précaution que les informations fournies sont correctes et, si tel est le cas, génère le certificat et vous le renvoie.

On peut comparer un certificat X. 509 à un certificat sur papier standard (similaire à celui que vous avez pu recevoir au terme d'une formation de secouriste) avec une clé publique. Il contient votre nom, des informations vous concernant, ainsi que la signature de l'émetteur.

Figure 10. Un certificat X. 509

C'est probablement au niveau des navigateurs Web que l'utilisation des certificats X. 509 a été la plus systématique et la plus évidente.

Validité et fiabilité

Dans un système de clés publiques, chaque utilisateur risque de confondre une fausse clé (certificat) avec une clé authentique. La validité garantit qu'un certificat de clé publique appartient bien à la personne se présentant comme son détenteur. La validité est essentielle dans un environnement de clés publiques dans lequel il faut constamment vérifier l'authenticité de chaque certificat.

Lorsque vous êtes assuré de la validité d'un certificat appartenant à une personne, vous pouvez signer la copie sur votre trousseau de clés local, afin d'attester que vous avez vérifié le certificat et son authenticité. Si vous souhaitez communiquer aux autres utilisateurs que vous avez approuvé ce certificat, vous pouvez exporter la signature vers un serveur de certificats, afin qu'elle soit visible par tous.

Comme le décrit la section « Infrastructures de clé publique », certaines entreprises désignent une ou plusieurs autorités de certification (CA) pour indiquer la validité du certificat. Dans une société utilisant une PKI avec des certificats X. 509, il incombe à la CA d'émettre des certificats à l'attention des utilisateurs (procédé qui implique généralement une réponse à la demande de certificat d'un utilisateur). Dans une société utilisant des certificats PGP sans PKI, le rôle de la CA est de vérifier l'authenticité de tous les certificats PGP, puis de les signer. En fait, une CA vise principalement à associer une clé publique aux informations d'identification contenues dans le certificat et ainsi d'assurer aux tiers que des mesures de sécurité ont été prises pour garantir la validité de cette association.

Dans une société, la CA est le « grand manitou » de la validation, une personne de confiance. Et dans certaines sociétés, telles que celles utilisant une PKI, un certificat est considéré comme valide uniquement lorsqu'il a été signé par une CA de confiance.

Vérification de la validité

Vous pouvez établir la validité manuellement et ce, de plusieurs manières. Vous pouvez demander à votre destinataire de vous remettre physiquement une copie de sa clé publique. Cependant, cette méthode peut s'avérer peu pratique et inefficace.

Vous pouvez également procéder à une vérification manuelle de l'empreinte digitale du certificat. L'empreinte digitale de chaque certificat PGP est unique, tout comme les empreintes digitales d'un individu. L'empreinte digitale est un hachage du certificat de l'utilisateur et constitue l'une des propriétés du certificat. Dans PGP, elle peut être un nombre hexadécimal ou une série de mots biométriques, phonétiquement distincts et employés pour faciliter le processus d'identification.

Vous pouvez également procéder à une vérification manuelle de l'empreinte digitale du certificat. L'empreinte digitale de chaque certificat PGP est unique, tout comme les empreintes digitales d'un individu. L'empreinte digitale est un hachage du certificat de l'utilisateur et constitue l'une des propriétés du certificat. Dans PGP, elle peut être un nombre hexadécimal ou une série de mots biométriques, phonétiquement distincts et employés pour faciliter le processus d'identification.

Une autre manière d'établir la validité du certificat d'un utilisateur est de faire confiance au tiers qui a effectué le processus de validation.

Par exemple, une CA se doit de vérifier que la partie de clé publique appartient bien au détenteur supposé avant d'émettre un certificat. Toute personne faisant confiance à la CA considère alors que tous les certificats signés par cette CA sont valides.

Un autre aspect de la vérification de la validité consiste à garantir la non révocation du certificat. Pour plus d'informations, reportez-vous à la section « Révocation de certificats ».

Etablissement de la fiabilité

Vous validez des certificats et faites confiance à des utilisateurs. En termes plus précis, vous faites confiance à certaines personnes afin qu'elles valident les certificats d'autres personnes. A moins que le détenteur du certificat ne vous remette ce dernier en mains propres, vous devez généralement vous fier à la parole d'autrui.

Gestionnaires en chef de la sécurité et correspondants fiables
En règle générale, la CA inspire une confiance totale pour établir la validité des certificats et effectuer tout le processus de validation manuelle. Cette procédure est appropriée pour un nombre défini d'utilisateurs ou de postes de travail. Au-delà de cette limite, la CA ne peut pas conserver le même niveau de qualité de validation. Dans ce cas, l'intervention d'autres validateurs s'avère nécessaire.

Une CA peut également désigner un gestionnaire en chef de la sécurité. Outre la validité des clés, un gestionnaire en chef de la sécurité définit également leur fiabilité. De la même manière qu'un souverain confie son sceau à ses conseillers afin que ces derniers agissent en son nom, le gestionnaire en chef de la sécurité permet à d'autres utilisateurs d'agir en tant que correspondants fiables. Ces correspondants fiables peuvent procéder à la validation des clés de la même manière que le gestionnaire en chef de la sécurité. Ils ne peuvent toutefois pas créer de nouveaux correspondants fiables.

Les termes « gestionnaire en chef de la sécurité » et « correspondant fiable » sont propres à PGP. Dans un environnement X. 509, le gestionnaire en chef de la sécurité et les correspondants fiables sont respectivement appelés Autorité de certification par défaut (CA par défaut) et Autorités de certification subordonnées.

La CA par défaut utilise la clé privée associée à un type de certificat spécial, appelé certificat CA par défaut, afin de signer les certificats. Tout certificat signé par le certificat CA par défaut est considéré comme valide par tout autre certificat signé par défaut. Ce processus de validation fonctionne également pour les certificats signés par d'autres CA du système, à condition que le certificat de CA par défaut ait signé le certificat de CA subordonnée. En outre, tout certificat signé par la CA est considéré comme valide par les autres certificats de la hiérarchie. Ce processus de contrôle du système visant à déterminer les signataires des certificats est appelé suivi du chemin de certification ou d'une chaîne de certification.

Modèles de fiabilité

Dans des systèmes relativement fermés, par exemple au sein d'une petite entreprise, il est facile de suivre le chemin de certification jusqu'à la CA par défaut. Cependant, les utilisateurs doivent souvent communiquer avec des personnes externes à leur entreprise, qu'ils n'ont parfois jamais rencontrées, telles que des fournisseurs, des clients, des associés, etc. 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.

Les entreprises suivent un modèle de fiabilité définissant la manière dont les utilisateurs établissent la validité des certificats. Il existe trois modèles de fiabilité différents :

Fiabilité directe
Fiabilité hiérarchique
Fiabilité du Web

Fiabilité directe
La fiabilité directe est le modèle de fiabilité le plus simple. Dans ce modèle, un utilisateur est sûr qu'une clé est valide parce qu'il en connaît la provenance. Tous les systèmes de cryptographie utilisent cette forme de fiabilité d'une façon ou d'une autre. Par exemple, dans les navigateurs Web, les clés de l'autorité de certification par défaut disposent d'une fiabilité directe, car elles ont été envoyées par le fabricant. S'il existe une forme quelconque de hiérarchie, elle se décline à partir de ces certificats à fiabilité directe.

Dans PGP, un utilisateur qui valide les clés lui-même et ne désigne jamais un autre certificat comme correspondant fiable utilise la fiabilité directe.

Figure 11. Fiabilité directe

Fiabilité hiérarchique
Dans un système hiérarchique, il existe un certain nombre de certificats « par défaut » sur lesquels se fonde la fiabilité. Ces certificats peuvent directement certifier d'autres certificats ou certifier des certificats qui en certifient d'autres, et ainsi de suite. On peut comparer cette structure à un grand « arbre » de fiabilité. La validité du certificat « feuille » est vérifiée en remontant vers le certificat qui l'a rendu fiable, puis vers d'autres certificats ayant rendu fiable ce dernier et enfin d'autres le précédant, jusqu'à atteindre le certificat par défaut à fiabilité directe.

Figure 12. Fiabilité hiérarchique

Fiabilité du Web
La fiabilité du Web comprend les deux modèles précédents, mais ajoute également la notion selon laquelle la fiabilité dépend de l'opinion de l'utilisateur (qui a une vue réaliste) et l'idée que plus on dispose d'informations, mieux c'est. Il s'agit donc d'un modèle de fiabilité cumulatif. Un certificat peut être rendu fiable directement ou par une chaîne remontant vers un certificat par défaut à fiabilité directe (le gestionnaire en chef de la sécurité) ou par un groupe de correspondants.

Peut-être avez-vous déjà entendu parler du concept des six degrés de séparation, selon lequel une personne, où qu'elle se trouve, peut définir un lien avec une toute autre personne via un maximum de six autres personnes jouant le rôle d'intermédiaires. Il s'agit d'un réseau de correspondants.

Cette notion de fiabilité est également celle de PGP. PGP utilise des signatures numériques comme forme de présentation. Lorsqu'un utilisateur signe la clé d'un autre, il devient un correspondant de cette clé. Ce processus, lorsqu'il fonctionne, établit une fiabilité du Web.

Dans un environnement PGP, tout utilisateur peut agir en tant qu'autorité de certification. Il peut donc valider le certificat de clé 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 clés 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 clés est controversée.

Des indicateurs stockés sur le trousseau de clés publiques de chaque utilisateur permettent :

De définir si l'utilisateur considère une clé spécifique comme correcte
De déterminer le niveau de fiabilité que l'utilisateur attribue à la clé afin que le détenteur de cette clé puisse en certifier d'autres

Indiquez, par exemple sur votre copie de ma clé, si vous pensez que mon jugement est à prendre en compte ou non. Il s'agit réellement d'un système de réputation : certaines personnes sont réputées donner des signatures correctes et les autres utilisateurs leur font confiance lorsqu'elles valident d'autres clés.

Niveaux de fiabilité dans PGP
Le niveau maximal de fiabilité d'une clé, la confiance implicite, est la confiance en votre propre paire de clés. PGP part du principe que si vous possédez la clé privée, vous devez faire confiance aux opérations liées à la clé publique associée. Toutes les clés signées par votre clé rendue fiable implicitement sont valides.

Vous pouvez affecter trois niveaux de fiabilité à la clé publique d'un autre utilisateur :

Fiabilité complète
Fiabilité marginale
Non fiable

Bien sûr, pour ne pas simplifier les choses, il existe également trois niveaux de validité :

Valide
Correcte de manière marginale
Incorrect

Pour définir la clé d'un autre utilisateur comme correspondant fiable :

  1. Commencez avec une clé valide signée
    par vous-même ou par
    un autre correspondant fiable,

    puis

  2. définissez le niveau de fiabilité auquel a droit le détenteur de la clé.

Supposons, par exemple, que votre trousseau de clés contient la clé 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 clés d'autres utilisateurs. Par conséquent, vous affectez une fiabilité complète à sa clé. Alice devient ainsi une autorité de certification. Si elle signe la clé d'un autre utilisateur, cette clé apparaît comme valide sur votre trousseau de clés.

Pour définir une clé comme valide, PGP exige une signature à fiabilité complète ou deux signatures à fiabilité marginale. Cette exigence est similaire à celle d'un vendeur qui vous demande deux pièces d'identité. Vous pouvez penser qu'Alice et Robert sont dignes de confiance. Chacun d'eux peut malencontreusement signer une fausse clé, aussi ne devez-vous pas considérer l'un d'eux comme étant complètement fiable. Toutefois, le risque qu'Alice et Robert signent cette même clé est minime.

Révocation de certificats

Les certificats sont utiles tant qu'ils sont valides. Si vous considérez que la validité d'un certificat est permanente, la sécurité n'est plus garantie. Dans la plupart des entreprises et dans toutes les infrastructures de clé publique, les certificats ont une durée de vie limitée. Par conséquent, en cas de compromis de certificat, la période de vulnérabilité d'un système est réduite.

Les certificats sont donc créés avec une période de validité par défaut : une date/ heure de début et une date/ heure d'expiration. Ce certificat peut être utilisé pendant la totalité de sa période de validité (sa durée de vie). Lorsque ce certificat arrive à expiration, il n'est plus valide, car l'authenticité de sa paire de clés/ d'identification n'est plus assurée. Même si vous pouvez l'utiliser en toute sécurité pour reconfirmer les informations cryptées ou signées pendant la période de validité, vous ne devez pas le considérer comme fiable pour les tâches cryptographiques à venir.

L'annulation d'un certificat préalablement à sa date d'expiration peut parfois s'avérer nécessaire, en particulier lorsque son détenteur quitte l'entreprise ou pense que la clé privée correspondante est compromise. Dans ce cas, on parle de révocation. Vous devez considérer un certificat révoqué avec bien plus de suspicion qu'un certificat arrivé à expiration. Les certificats expirés sont inutilisables, mais ne constituent pas une menace aussi sérieuse pour la sécurité que les certificats révoqués.

Toute personne ayant signé un certificat peut révoquer sa signature (à condition qu'elle utilise la même clé privée que celle employée pour la création de la signature). Une signature révoquée indique soit que le signataire ne croit plus que les informations d'identification correspondent à la clé publique, soit que la clé publique du certificat (ou la clé privée correspondante) est compromise. Une signature révoquée doit être presque aussi importante qu'un certificat révoqué.

Pour les certificats X. 509, une signature révoquée est pratiquement équivalente à un certificat révoqué, car la seule signature présente sur le certificat est celle l'ayant rendu valide, à savoir la signature de la CA. Les certificats vous permettent en outre de révoquer la totalité de votre certificat (pas uniquement les signatures qu'il contient) si vous pensez qu'il est compromis.

Seul le détenteur du certificat (le détenteur de sa clé 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 clé privée correspondante. Or, cette procédure peut uniquement être effectuée s'il est possible d'accéder à la clé privée. Un certificat X. 509 peut uniquement être révoqué par son émetteur.

Communication de la révocation d'un certificat

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 clé publique.

Dans un environnement PKI, vous êtes généralement informé sur les certificats révoqués via une structure de données appelée Liste de révocation des certificats, ou LRC, publiée par la CA. Cette LRC contient une liste validée et horodatée de tous les certificats révoqués et non expirés du système. Les certificats révoqués figurent sur la liste jusqu'à leur expiration, puis ils sont supprimés pour ne pas surcharger la liste.

La CA distribue la LRC aux utilisateurs à intervalles réguliers (et éventuellement hors cycle, à savoir lors de la révocation d'un certificat) afin de les empêcher, en théorie, d'utiliser sans le savoir un certificat compromis. Toutefois, il peut arriver qu'un nouveau certificat compromis soit utilisé entre deux LRC différentes.

Qu'est-ce qu'un mot de passe complexe ?

La plupart des utilisateurs connaissent parfaitement la procédure de restriction d'accès aux systèmes informatiques via un mot de passe, une chaîne de caractères unique entrée par un utilisateur pour permettre son identification.

Un mot de passe complexe est plus long et théoriquement plus sécurisé qu'un mot de passe habituel. Généralement composé de plusieurs mots, il est plus sécurisé contre les attaques « au dictionnaire » standard, où le pirate tente d'entrer tous les mots du dictionnaire afin de deviner votre mot de passe. Les meilleurs mots de passe complexes sont relativement longs et invulnérables, car ils contiennent une combinaison de majuscules et de minuscules, des nombres et des signes de ponctuation.

PGP utilise un mot de passe complexe pour le cryptage de votre clé privée sur votre ordinateur. Votre clé privée est cryptée sur votre disque en utilisant un hachage de votre mot de passe complexe comme clé secrète. Vous utilisez le mot de passe complexe pour le décryptage et l'utilisation de votre clé privée. Il doit être facile à mémoriser, mais les autres utilisateurs ne doivent pas pouvoir le deviner. Plutôt que de l'inventer, il est préférable d'en choisir un ancré dans votre esprit. Pourquoi ? Parce que si vous oubliez votre mot de passe complexe, vous perdez vos données. Votre clé privée ne sert strictement à rien sans votre mot de passe complexe, et vous ne pouvez plus rien faire. Vous n'avez pas oublié la citation du début de ce chapitre ? PGP est une cryptographie permettant même de sécuriser vos fichiers contre les gouvernements les plus puissants. Il protègera également sans nul doute vos fichiers contre vous-même. En effet, n'oubliez jamais ce point si vous décidez de remplacer votre mot de passe complexe par la chute de la fameuse blague dont vous ne vous souvenez presque jamais.

Découpage de clé

Selon l'expression populaire, un secret partagé n'est plus un secret. C'est le problème du partage d'une paire de clés privées. Même s'il n'est pas recommandé, le partage d'une paire de clés privées s'avère parfois nécessaire. Les clés de signature d'entreprise, par exemple, sont des clés privées utilisées par une entreprise pour la signature, entre autres, de documents juridiques, d'informations personnelles confidentielles ou de communiqués de presse afin d'authentifier leur origine. Dans ce cas, il peut être utile de permettre à plusieurs salariés d'une entreprise d'accéder à la clé privée. Toutefois, ceci signifie que chaque salarié peut agir au nom de l'entreprise.

Il est donc conseillé de découper cette clé entre plusieurs personnes, de sorte que chacune d'elles doive présenter sa partie de la clé afin de la reconstituer et de pouvoir l'utiliser. Si trop de pièces sont manquantes, la clé est inutilisable.

Vous pouvez, par exemple, découper une clé en trois parties et en exiger deux pour la reconstituer, ou la découper en deux parties et exiger chacune d'elles. Si vous utilisez une connexion réseau sécurisée lors du processus de reconstitution, il n'est pas nécessaire que les détenteurs d'une partie de la clé soient présents pour assembler cette clé.

Page d'accueil PGPi (en anglais) > Documentation > Comment fonctionne PGP (en anglais) ]