Passer au contenu principal

Comprendre le chiffrement SSL/TLS

Le chiffrement TLS/SSL est un protocole de sécurisation des échanges sur internet.

  • TLS signifie Transport Layer Security
  • SSL signifie Secure Sockets Layer

Pour bien saisir les mécanismes de sécurisation, nous devons d'abord explorer deux concepts fondamentaux : la cryptographie symétrique et la cryptographie asymétrique.

 

Qu'est ce que la cryptographie symétrique ?

La cryptographie symétrique est une méthode de chiffrement dans laquelle les deux parties utilisent la même clé secrète pour chiffrer et déchiffrer le message. Cette méthode est rapide, mais elle nécessite un moyen sécurisé de partage de la clé secrète entre les deux parties.

 

Qu'est ce que la cryptographie asymétrique ?

La cryptographie asymétrique est une méthode de chiffrement qui repose sur l’utilisation de deux clés : une clé privée et une clé publique. Lorsqu'un message est chiffré avec l’une des clés, il ne peut être déchiffré qu’avec l’autre clé. Les deux clés sont mathématiquement liées mais il est pratiquement impossible de déduire l’une à partir de l’autre.

Chaque utilisateur génère une paire de clés, garde la clé privée secrète et partage la clé publique. Lorsque l’utilisateur A envoie un message à B, il chiffrera le message avec la clé publique de B. Ensuite, l’utilisateur B déchiffrera le message avec sa clé privée, et il est donc le seul à être capable de déchiffrer les messages que lui envoie l’utilisateur A.

 

L'attaque du MAN IN THE MIDDLE

Le problème du chiffrement asymétrique peut survenir lors de la transmission de ces clés publiques. Si une personne malveillante se positionne entre l’utilisateur A et B, elle peut intercepter la clé publique et la remplacer par la sienne. Dans ce cas, les utilisateurs A et B communiquent en réalité avec l’attaquant sans le savoir.

Pour éviter ce type d’attaque, il est crucial de certifier l’identité du détenteur de la clé publique.

 

Obtention d’un certificat SSL/TLS

  1. Générer une paire de clés : Cela comprend une clé publique, qui sera incluse dans le certificat, et une clé privée, qui restera secrète et sera utilisée pour signer numériquement les informations.

  2. Créer une demande de signature de certificat (CSR) : La CSR contient la clé publique, les informations personnelles du propriétaire de la clé (comme le nom et l’adresse email), et des informations sur votre site web (comme le nom de domaine). Vous signez numériquement la CSR avec votre clé privée, ce qui permet à l’autorité de certification de vérifier que vous possédez la clé privée correspondante.

  3. Soumettre la CSR à l’autorité de certification : L’autorité de certification vérifie les informations fournies dans la CSR. Cette vérification peut inclure la confirmation de votre identité et de votre possession du nom de domaine spécifié dans la CSR.

  4. Obtenir le certificat de l’autorité de certification : Si la CSR est approuvée, l’autorité de certification crée un certificat qui contient la clé publique et les informations vérifiées. L’autorité de certification signe ce certificat avec sa propre clé privée, ce qui permet à quiconque de vérifier l’authenticité du certificat.

  5. Installer le certificat sur le serveur : Le certificat doit être installé sur le serveur où il sera utilisé pour sécuriser les communications. Une fois installé, le serveur peut établir des connexions sécurisées avec les clients en utilisant le protocole SSL/TLS.

 

Processus d'établissement d'une connexion HTTPS sécurisée entre le navigateur et le serveur

  1. Un utilisateur souhaite accéder à un site Web en tapant son URL sur le navigateur via HTTPS.
  2. Le site internet envoie alors son certificat au navigateur.
  3. Le navigateur vérifie la signature du certificat et sa validité. Pour cela, il utilise la liste de clés publiques des autorités de certification qu’il a enregistrée dans sa base de données. S’il réussit à déchiffrer la signature du certificat, cela signifie que le certificat est fiable.
  4. Ensuite, le navigateur et le serveur se mettent d’accord sur une clé secrète commune qui sera utilisée pour cette session d’échange (comme en cryptographie symétrique). C’est grâce à cette clé que l’utilisateur pourra chiffrer/déchiffrer les messages du site. Cette clé est générée de manière aléatoire et est unique pour chaque session, ce qui renforce la sécurité de la communication.