<-
Apache > Serveur HTTP > Documentation > Version 2.4 > SSL/TLS

Chiffrement SSL/TLS fort : Introduction

Langues Disponibles:  en  |  fr  |  ja 

Ce chapitre en guise d'introduction est destiné aux lecteurs pour lesquels le Web, HTTP et Apache sont familiers, mais ne sont pas des experts en matière de sécurité. Il n'a pas la prétention d'être un guide détaillé sur le protocole SSL, il ne traitera pas non plus des techniques spécifiques de gestion des certificats dans une organisation, ni des importants problèmes légaux de brevets ou des restrictions d'importation ou d'exportation. Il se veut plutôt une base de travail pour les utilisateurs de mod_ssl en rassemblant différents concepts, définitions et exemples comme point de départ pour une exploration plus détaillée.

Support Apache!

Voir aussi

top

Techniques de chiffrement

La maîtrise de SSL nécessite la compréhension des algorithmes de chiffrement, des fonctions relatives aux empreintes de messages (comme les fonctions de type hash ou non réversibles), et des signatures numériques. Ces techniques pourraient faire l'objet d'un ouvrage à elles seules (voir par exemple [AC96]) et constituent les bases de la confidentialité, de l'intégrité et de l'authentification.

Algorithmes de chiffrement

Supposons qu'Alice veuille envoyer un message à sa banque pour transférer une certaine somme. Alice souhaiterait que le message soit privé, car il contient des informations comme son numéro de compte et le montant du transfert. Une solution consisterait à utiliser un algorithme de chiffrement, technique qui permet de remplacer un message par sa version chiffrée, illisible jusqu'à ce qu'elle soit déchiffrée. Sous sa forme chiffrée, le message ne peut être déchiffré qu'en utilisant une clé secrète. Sans la clé, le message est inutilisable : les bons algorithmes de chiffrement rendent si difficile la restitution du texte original par des intrus que ceux-ci y gaspilleraient leurs efforts.

Il existe deux catégories d'algorithmes de chiffrement : conventionnel ou à clé publique.

Chiffrement conventionnel
aussi connu sous le nom de chiffrement symétrique, il nécessite le partage d'une clé entre l'expéditeur et le destinataire : une portion d'information secrète permettant de chiffrer et déchiffrer un message. Tant que cette clé reste secrète, personne à part l'expéditeur et le destinataire ne peut lire le message. Si Alice et sa banque partagent une clé secrète, ils peuvent donc s'envoyer l'un à l'autre des messages privés. Le fait de partager une clé entre l'expéditeur et le destinataire avant de communiquer, tout en la maintenant secrète vis à vis des autres, peut toutefois poser des problèmes.
Chiffrement à clé publique
aussi connu sous le nom de chiffrement asymétrique, il résoud le problème d'échange de clé en définissant un algorithme qui utilise deux clés, chacune d'entre elles pouvant être utilisée pour chiffrer un message. Si une des clés a été utilisée pour chiffrer le message, on doit utiliser l'autre clé pour le déchiffrer. Il est ainsi possible de recevoir des messages sécurisés simplement en rendant publique une des clés (la clé publique), et en gardant l'autre clé secrète (la clé privée).

Tout le monde peut chiffrer un message en utilisant la clé publique, mais seul le propriétaire de la clé privée sera en mesure de le lire. De cette façon, Alice peut envoyer des messages privés au propriétaire d'une paire de clés (sa banque), en les chiffrant à l'aide de la clé publique. Seule la banque sera en mesure de les déchiffrer.

Empreinte d'un message

Bien qu'Alice puisse chiffrer son message pour le rendre privé, il subsiste toujours le risque que quelqu'un puisse modifier le message original ou le remplacer par un autre, afin d'effectuer le transfert de fonds à son profit, par exemple. Une solution pour garantir l'intégrité du message consisterait pour Alice à créer un résumé concentré de son message qu'elle enverrait à sa banque avec ce dernier. A la réception du message, la banque crée son propre résumé et le compare avec celui qu'Alice a envoyé. Si les deux résumés sont identiques, le message reçu n'a pas été modifié.

Un résumé tel que celui-ci est appelé empreinte numérique de message (message digest), fonction irréversible (one-way function) ou fonction de hashage (hash function). Une empreinte de message constitue une représentation courte et de longueur fixe, d'un message plus long et de longueur variable. Les algorithmes de création d'empreintes sont conçus pour produire une empreinte unique pour chaque message. Les empreintes de messages sont conçues pour que la restitution du message à partir de l'empreinte soit d'une difficulté insurmontable, et qu'il soit (en théorie) impossible de trouver deux messages différents qui produisent la même empreinte -- ce qui élimine la possibilité de remplacer un message par un autre en conservant la même empreinte.

Trouver le moyen d'envoyer l'empreinte de manière sécurisée à la banque constitue un autre défit auquel Alice doit faire face ; si l'empreinte n'est pas envoyée de manière sécurisée, son intégrité peut être compromise, et avec elle, la possibilité pour la banque de vérifier l'intégrité du message original. L'intégrité du message ne peut être vérifiée que si l'empreinte qui lui est associée est envoyée de manière sécurisée.

Une solution pour envoyer l'empreinte de manière sécurisée consiste à l'inclure dans une signature numérique.

Signatures numériques

Quand Alice envoie un message à sa banque, cette dernière doit s'assurer que le message a bien été envoyé par elle, pour éviter qu'un intrus puisse effectuer une transaction sur son compte. Une signature numérique, créée par Alice et incluse dans le message, permet d'atteindre cet objectif.

Les signatures numériques peuvent être créées en chiffrant une empreinte de message, ainsi que d'autres informations (comme un numéro d'ordre) avec la clé privée de l'expéditeur. Bien que tout le monde puisse déchiffrer la signature à l'aide de la clé publique, seul l'expéditeur connait la clé privée. Ce qui implique que seul l'expéditeur peut avoir signé le message. Inclure l'empreinte dans la signature entraîne que cette dernière n'est valable que pour ce message ; ceci assure aussi l'intégrité du message car personne ne peut modifier l'empreinte et ensuite signer le message.

Afin de se prémunir contre l'interception et la réutilisation de la signature par un intrus quelques jours plus tard, la signature contient un numéro d'ordre unique. Ceci protège la banque contre une plainte frauduleuse de la part d'Alice alléguant qu'elle n'a pas envoyé le message -- elle seule peut l'avoir signé (non-répudiation).