Certificat SSL/TLS: notion

jeudi 19 avril 2018

Introduction

Première chose à savoir c’set que le terme certificat SSL convenait avant et que maintenant on parle plus de certificat TLS mais on a gardé les deux termes.

L’installation d’un certificat sur un serveur web apporte deux intérêts majeures aux clients:

  • Chiffrer les données échangées entre le client et le serveur
  • Identifier que le site est bien celui qu’il prétend être!

C’est pourquoi l’organisme qui offre des certificats fait une demande de vérification de plusieurs informations sur l’entreprise qui souhaite un certificat. La société devra fournir un ensemble de renseignements pour bien valider sa présence.

Chiffrement

Le serveur possède une clé privée et une clé publique. Quand le client veut se connecter sur le serveur, il reçoit la clé publique pour chiffrer les informations à envoyer au serveur et le serveur les décryptent avec la clé privée.C’est ce qu’on appelle la cryptographie symétrique.

Mais le soucis de ce système est que si quelqu’un arrive a intercepté les échanges entre le client et le serveur, il va aussi recevoir la clé publique et donc du coup décrypter les données.

Solution: la cryptographie asymétrique utilise la même technique mais en communiquant avec une seul clé:

  • Première étape: le client demande au serveur les informations de cryptage (Clés,Cipher,hash)
  • Ensuite, le client reçoit les informations et la clé publique.
  • Le client génère un prémaster password qui génère la clé symétrique
  • Le client envoi le prémaster password au serveur en la cryptant avec la clé publique du serveur.
  • Le serveur décrypte ce prémaster password avec sa clé privé et obtient la clé symétrique à son tour. Du coup, les échanges sont sécurisés entre eux.

Le certificat

Il représente la carte d’identité du serveur. C’est l’autorité de certificat qui est reconnu et validé qui délivre le certificat. Il va donc falloir transmettre beaucoup d’information pour valider qui on est et on va aussi fournir la clé publique du serveur.
Donc le certificat va contenir la clé publique du serveur, les informations de la société et une signature. La signature est une combinaison de la clé publique et des informations de la société chiffré par al clé privé de l’organisme d’autorité du certificat.

L’autorité de certificat peut aussi fournir un certificat intermédiaire qui est en réalité le certificat de cette autorité. Il y a beaucoup d’organisme d’autorité de certificat maintenant ce qui a amené à une hierarchie de ces organismes et donc les nouveaux organismes d’autorité de certificat reçoivent leur certificat d’une autorité de certificat racine.

Donc au final notre serveur doit contenir deux certificats: (fichiers .CRT)

  • Un certificat intermédiaire de l’organisme d’autorité (bundle)
  • Le certificat de la société représentant le site internet.

Par défaut un navigateur contient l’ensemble des certificats d’autorité racine avec leur clé publique afin de permettre de validé les certificats intermédiaire (racine ou non). La clé publique des certificats racine va donc servir à déchiffrer la signature et validé si c’est correct ou non le certificat intermédiaire.

Ensuite, il prend la clé publique du certificat intermédiaire pour déchiffrer le certificat de l’entreprise et valider l’identité du serveur. C’est ce qu’on appelle la chaîne de confiance.

Tags: Apache , Certificat , SSL , TLS