La sécurité des SI : aussi simple que P, K et I

Il y a peu de chance pour que quelqu'un qui ne travaille pas dans l'informatique, ait déjà croisé l'acronyme PKI. Pas étonnant puisque la PKI est conçue pour intervenir en arrière-plan.

L’acronyme PKI signifie Public Key Infrastructure — Infrastructure à clé publique. Chacune des lettres nous livre quelques clés. Pour clarifier le propos et dans une démarche plus prudente sur le plan didactique, commençons avec le « K » de Key (clé). Dans le domaine de la cryptographie, le terme est employé dans un sens légèrement différent de ce à quoi l’on pourrait s’attendre. Lorsque nous étions au lycée, nous avons souvent essayé d’envoyer à quelqu’un un message secret, sur un bout de papier rendu illisible pour nos camarades de classe trop curieux. Pour ce faire, le processus aurait pu consister à remplacer chaque lettre de l’alphabet par les trois suivantes ; ce qui s’appelle, en mathématiques, un algorithme. En cryptographie, ce processus de décalage des lettres porte le nom de cryptosystème ; ici dans notre cas, la clé est le chiffre 3. Dans le cas d’une communication cachée avec un correspondant qui vit à des milliers de kilomètres, la méthode fonctionnerait à condition que l’on ait communiqué préalablement le cryptosystème et la clé. Et c’est là le problème de la cryptographie symétrique : pour partager la clé, il nous faudrait un canal sécurisé que nous ne pouvons établir tant qu’aucune clé n’a été partagée. Dans des principes de Kerckhoffil est précisé que pour fonctionner, il faut que le cryptosystème n’exige pas le secret, et qu’il puisse sans inconvénient tomber entre les mains d’une tierce personne. C’est un point essentiel dans la pratique cryptographique. Le secret de la clé revêt une importance capitale, car sans ce secret, un espion saurait exactement comment déchiffrer votre message. 

« Clés publiques » oui, mais pas forcément d’accès public 

Les cryptographes de génie Whitfield Diffie, Martin Hellman et Ralph Merkle ont heureusement élaboré un concept pour résoudre la question cruciale du partage de clé sur un canal non sécurisé. Si l’on prend comme exemple le fait qu’Alice veuille envoyer un objet à Bob qu’elle placerait dans une petite boîte en métal fermée par un cadenas. Il faudrait qu’Alice emballe l’objet dans sa boîte, qu’elle utilise son cadenas pour verrouiller cette boîte, puis qu’elle l’envoie à Bob. Pour l’ouvrir, Bob aurait besoin qu’Alice lui envoie sa clé. Au lieu de cela, imaginons qu’Alice verrouille sa boîte non pas avec son cadenas à elle, mais avec celui de Bob dont il est le seul à posséder la clé. Le fait pour Bob de partager son cadenas ne poserait pas de problème dans la mesure où ce cadenas ne servirait qu’à verrouiller la boîte, pas à l’ouvrir.  L’analogie n’est pas parfaite, mais s’en approche. Elle a par ailleurs le mérite de s’appuyer sur un exemple concret. En termes techniques, on parle de cryptographie à clé publique pour désigner le processus de sécurisation des données. Au lieu du cadenas et de sa clé de notre exemple, la cryptographie à clé publique parle de clés privées et de clés publiques. Et contrairement aux cadenas, la cryptographie à clé publique fonctionne à double sens : les clés publiques peuvent déchiffrer le chiffrement effectué par les clés privées et vice versa. De plus, il est pratiquement impossible de déduire une clé privée à partir de la clé publique correspondante. Ce principe repose sur le concept de « fonctions de porte dérobée » (Trap-door) qui exigerait de se pencher sur des équations mathématiques, mais cela sort du cadre de cet article. Ce qu’il faut retenir : en détenant chacun une clé publique et une clé privée, Alice et Bob peuvent communiquer en toute confidentialité. Ils sont libres de publier la clé publique (d’où le nom) et ont toujours l’assurance que les communications resteront confidentielles — tant qu’ils veillent à la sécurité de leur clé privée. 

Et que signifie le « i » ? Identité ? Intégrité ? Infrastructure ?

La cryptographie à clé publique avait la réputation d’être révolutionnaire dans le monde de la sécurité de l’information. Tout d’abord parce qu’en appliquant intelligemment la cryptographie à clé publique, il est possible de donner certaines garanties sur les aspects cruciaux de la confidentialité et de la sécurité. On a souvent utilisé l’expression « Triade CIA » pour désigner les trois fondements de la confidentialité et de la sécurité.

Dans le contexte qui nous intéresse, l’acronyme CIA signifie Confidentialité, Intégrité et Authenticité. Autrement dit, il s’agit de protéger l’information des oreilles et des regards indiscrets, de s’assurer qu’un message ne peut être modifié et de vérifier l’expéditeur d’un message. Après avoir vu comment préserver la confidentialité, intéressons-nous à présent aux aspects d’intégrité et d’authenticité. Mais pour aborder ces notions, nous devons évoquer le hachage et les certificats numériques.

Comment définir le hachage ? Il s’agit de prendre l’empreinte digitale d’un fichier. Une empreinte digitale permet d’identifier une personne de façon unique. Pourtant, quelle que soit la personne, chaque empreinte est (plus ou moins) de la même taille et aucune ne livre d’information sur l’aspect ou le caractère de la personne. Le hash (également appelé condensat ou empreinte) d’un document possède les mêmes caractéristiques qu’une empreinte digitale : il est unique, de taille uniforme et anonyme.

Les certificats numériques attestent l’identité du propriétaire d’une clé publique donnée (et par conséquent de la clé privée correspondante), comme les passeports qui attestent l’identité d’une personne. Une personne peut obtenir un certificat numérique auprès d’une autorité de certification (AC), comme elle le ferait auprès d’un service de l’État civil pour obtenir un passeport. Il faudrait qu’elle prouve son identité à une division de l’AC appelée Autorité d’enregistrement (AE), comme pour une toute première demande de passeport où un acte de naissance est exigé.

Après en avoir vérifié l’identité, l’Autorité d’enregistrement lui délivre une paire de clés publiques et privées. Comme les clés publiques doivent être partagées, mais sont trop longues pour être facilement mémorisées, elles sont stockées sur des certificats numériques pour pouvoir être transportées et partagées en toute sécurité. Les clés privées n’étant pas partagées, elles sont stockées dans le logiciel ou le système d’exploitation que l’on utilise. Elles peuvent aussi être stockées sur un dispositif cryptographique (clé USB ou module de sécurité matérielle, dit « module HSM ») qui contient les pilotes adéquats pour permettre l’utilisation des clés avec son logiciel ou système d’exploitation. Les clés privées restant (idéalement) privées, on a ainsi la certitude que toutes les actions effectuées par la clé privée d’une personne (déchiffrement d’un message ou signature numérique d’un document, voir ci-après pour plus de détails) ont réellement été réalisées par elle-même.

En combinant hachage, certificats numériques et cryptographie à clé publique, nous sommes en mesure de créer une signature numérique qui garantira l’intégrité ainsi que l’authenticité des messages.

Ainsi se justifie l’utilisation de la cryptographie à clé publique comme socle pour une infrastructure à clé publique. Dans l’exemple ci-dessus, l’AC avait garanti ainsi, avant d’émettre le certificat, que l’identité de la personne émettrice a bien été vérifiée par l’Autorité d’enregistrement. Toute personne peut ensuite valider l’intégrité et l’authenticité du certificat d’Alice en utilisant à cet effet la clé publique de l’AC. Le certificat associé à la clé publique de l’AC est appelé certificat racine, ce qui fait de l’AC une AC racine.

En conclusion 

La PKI a été surnommée à juste titre « le couteau suisse de la sécurité informatique ». Difficile de ne pas être d’accord tant son apport a été majeur pour la construction de systèmes autour de la gestion des identités et des accès, mais aussi dans le domaine des communications chiffrées et des signatures numériques pour les documents et les fichiers.