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é.
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
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.
« 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é.
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.
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
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.
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 ?
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).
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é.
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.
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
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.
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
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).
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.
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.
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 ».
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.
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 :
- Commencez avec une clé valide signée
| par vous-même ou par |
| un autre correspondant fiable, |
puis
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.
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.
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.
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.
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) ]