Qu'est-ce que le TLS mutuel (mTLS) ?

Mutual TLS (mTLS) est un type d'authentification dans lequel les deux parties d'une connexion s'authentifient mutuellement à l'aide du protocole TLS.

Objectifs d’apprentissage

Cet article s'articule autour des points suivants :

  • Expliquer comment fonctionne le TLS mutuel (mTLS)
  • Comprendre la différence entre TLS mutuel et TLS régulier
  • Illustrer comment mTLS bloque les attaques

Copier le lien de l'article

Qu'est-ce que le TLS mutuel (mTLS) ?

Mutual TLS, ou mTLS en abrégé, est une méthode d'authentification mutuelle . mTLS garantit que les parties à chaque extrémité d'une connexion réseau sont bien celles qu'elles prétendent être en vérifiant qu'elles possèdent toutes deux la bonne clé privée . Les informations contenues dans leurs certificats TLS respectifs fournissent une vérification supplémentaire.

mTLS est souvent utilisé dans un cadre de sécurité Zero Trust * pour vérifier les utilisateurs, les appareils et les serveurs au sein d'une organisation. Il peut également contribuer à sécuriser les API.

*La confiance zéro signifie qu'aucun utilisateur, périphérique ou trafic réseau n'est fiable par défaut, une approche qui permet d'éliminer de nombreuses failles de sécurité.

Qu'est-ce que le TLS ?

Transport Layer Security (TLS) est un protocole de cryptage largement utilisé sur Internet. TLS, anciennement appelé SSL, authentifie le serveur dans une connexion client-serveur et crypte les communications entre le client et le serveur afin que des parties externes ne puissent pas espionner ces communications.

Il y a trois choses importantes à comprendre sur le fonctionnement de TLS :

1. Clé publique et clé privée

TLS fonctionne à l'aide d'une technique appelée "cryptage à clé publique" , qui repose sur une paire de clés - une clé publique et une clé privée.

  • Tout ce qui est crypté avec la clé publique ne peut être décrypté qu'avec la clé privée .
  • Tout ce qui est crypté avec la clé privée ne peut être décrypté qu'avec la clé publique .

Par conséquent, un serveur qui déchiffre un message qui a été chiffré avec la clé publique prouve qu'il possède la clé privée. N'importe qui peut voir la clé publique en consultant le certificat TLS du domaine ou du serveur.

2. Certificat TLS

Un certificat TLS est un fichier de données qui contient des informations importantes pour vérifier l'identité d'un serveur ou d'un appareil, notamment la clé publique, une déclaration indiquant qui a émis le certificat (les certificats TLS sont émis par une autorité de certification) et la date d'expiration du certificat.

3. Prise de contact TLS

La poignée de main TLS est le processus de vérification du certificat TLS et de la possession de la clé privée par le serveur. La poignée de main TLS établit également la manière dont le cryptage aura lieu une fois la poignée de main terminée.

Comment fonctionne le protocole mTLS ?

Normalement, dans TLS, le serveur dispose d'un certificat TLS et d'une paire de clés publiques/privées, alors que le client n'en dispose pas. Le processus TLS typique fonctionne comme suit :

  1. Le client se connecte au serveur
  2. Le serveur présente son certificat TLS
  3. Le client vérifie le certificat du serveur
  4. Le client et le serveur échangent des informations via une connexion TLS cryptée.

Dans mTLS, cependant, le client et le serveur disposent tous deux d'un certificat, et les deux parties s'authentifient à l'aide de leur paire de clés publiques/privées. Par rapport au protocole TLS ordinaire, le protocole mTLS comporte des étapes supplémentaires pour vérifier les deux parties (étapes supplémentaires indiquées en gras sur et) :

  1. Le client se connecte au serveur
  2. Le serveur présente son certificat TLS
  3. Le client vérifie le certificat du serveur
  4. Le client présente son certificat TLS
  5. Le serveur vérifie le certificat du client
  6. Le serveur accorde l'accès
  7. Le client et le serveur échangent des informations via une connexion TLS cryptée.

Autorités de certification dans mTLS

L'organisation qui met en œuvre mTLS agit comme sa propre autorité de certification. À la différence du système TLS standard, dans lequel l'autorité de certification est une organisation externe qui vérifie si le propriétaire du certificat possède légitimement le domaine associé (pour en savoir plus sur la validation des certificats TLS ).

Un certificat racine "" TLS est nécessaire pour mTLS ; cela permet à une organisation d'être sa propre autorité de certification. Les certificats utilisés par les clients et serveurs autorisés doivent correspondre à ce certificat racine. Le certificat racine est auto-signé, ce qui signifie que l'organisation le crée elle-même. (Cette approche ne fonctionne pas pour le TLS unidirectionnel sur l'Internet public car une autorité de certification externe doit émettre ces certificats).

Pourquoi utiliser mTLS ?

mTLS permet de garantir que le trafic est sécurisé et fiable dans les deux sens entre un client et un serveur. Cela fournit une couche de sécurité supplémentaire pour les utilisateurs qui se connectent au réseau ou aux applications d'une organisation. Il permet également de vérifier les connexions avec les dispositifs clients qui ne suivent pas un processus de connexion, comme les dispositifs de l'Internet des objets (IoT).

mTLS prévient divers types d'attaques, notamment :

  • Attaques sur le chemin : Les attaquants sur le chemin se placent entre un client et un serveur et interceptent ou modifient les communications entre les deux. Lorsque mTLS est utilisé, les attaquants sur le chemin ne peuvent s'authentifier ni auprès du client ni auprès du serveur, ce qui rend cette attaque presque impossible à réaliser.
  • "Attaques par usurpation d'identité : Les attaquants peuvent tenter d'usurper" (imiter) un serveur web auprès d'un utilisateur, ou vice versa. Les attaques par usurpation d'identité sont beaucoup plus difficiles lorsque les deux parties doivent s'authentifier à l'aide de certificats TLS.
  • Remplissage d'informations d'identification : Les attaquants utilisent des ensembles d'informations d'identification provenant d'une violation de données pour tenter de se connecter en tant qu'utilisateur légitime. En l'absence d'un certificat TLS légitimement émis, les attaques par bourrage d'identifiants ne peuvent pas réussir contre les organisations qui utilisent mTLS.
  • Attaques par force brute : Généralement réalisée par des bots , une attaque par force brute consiste pour un attaquant à utiliser des essais et erreurs rapides pour deviner le mot de passe d'un utilisateur. mTLS garantit qu'un mot de passe n'est pas suffisant pour accéder au réseau d'une organisation. (Limitation de débit est un autre moyen de faire face à ce type d'attaque de bots).
  • Attaques de phishing : L'objectif d'une attaque de phishing est souvent de voler les informations d'identification de l'utilisateur, puis de les utiliser pour compromettre un réseau ou une application. Même si un utilisateur tombe dans le piège d'une telle attaque, l'attaquant a toujours besoin d'un certificat TLS et d'une clé privée correspondante afin d'utiliser ces informations d'identification.
  • Demandes d'API malveillantes : Lorsqu'il est utilisé pour la sécurité de l'API , mTLS garantit que les demandes d'API proviennent uniquement d'utilisateurs légitimes et authentifiés. Cela empêche les attaquants d'envoyer des demandes d'API malveillantes visant à exploiter une vulnérabilité ou à modifier le fonctionnement de l'API.

Les sites web utilisent déjà TLS, alors pourquoi mTLS n'est pas utilisé sur tout l'internet ?

Pour les besoins quotidiens, l'authentification à sens unique offre une protection suffisante. Les objectifs de TLS sur l'Internet public sont 1) de s'assurer que les gens ne visitent pas des sites Web usurpés, 2) de garder des données privées sécurisées et cryptées lorsqu'elles traversent les différents réseaux qui constituent l'Internet, et 3) de s'assurer que les données ne sont pas altérées en transit. Le protocole TLS unidirectionnel, dans lequel le client vérifie uniquement l'identité du serveur, permet d'atteindre ces objectifs.

En outre, il serait extrêmement difficile de distribuer des certificats TLS à tous les appareils des utilisateurs finaux. Générer, gérer et vérifier les milliards de certificats nécessaires à cette opération est une tâche quasi impossible.

Mais à plus petite échelle, mTLS est très utile et tout à fait pratique pour les organisations individuelles, en particulier lorsque ces organisations emploient une approche de confiance zéro pour la sécurité du réseau. Puisqu'une approche de confiance zéro ne fait confiance à aucun utilisateur, dispositif ou demande par défaut, les organisations doivent être en mesure d'authentifier chaque utilisateur, dispositif et demande chaque fois qu'ils essaient d'accéder à un point quelconque du réseau. mTLS aide à rendre cela possible en authentifiant les utilisateurs et en vérifiant les dispositifs.

Comment Cloudflare utilise-t-il le mTLS ?

Cloudflare Zero Trust utilise mTLS pour la sécurité Zero Trust. Cloudflare API Shield utilise également mTLS pour vérifier les points de terminaison des API, ce qui garantit qu'aucune partie non autorisée ne peut envoyer de demandes d'API potentiellement malveillantes. Découvrez comment mettre en œuvre mTLS avec Cloudflare.

Service commercial