Qu'est-ce que le protocole mutual TLS (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 protocole mutual TLS mTLS)
  • Comprendre la différence entre mutual TLS et TLS
  • Illustrer comment mTLS bloque les attaques

Contenu associé


Vous souhaitez continuer à enrichir vos connaissances ?

Abonnez-vous à theNET, le récapitulatif mensuel par Cloudflare des informations les plus populaires sur Internet !

Consultez la politique de confidentialité de Cloudflare pour en savoir plus sur la manière dont nous collectons et traitons vos données personnelles.

Copier le lien de l'article

Qu'est-ce que le protocole mutual TLS (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 disposent toutes deux de clé privée correcte. Les informations contenues dans leurs certificats TLS respectifs offrent une vérification supplémentaire.

Le protocole 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 entreprise. Il peut également contribuer à la sécurisation des API.

*L'approche Zero Trust signifie qu'aucun utilisateur, appareil ou trafic réseau n'est fiable par défaut ; elle permet ainsi d'éliminer de nombreuses failles de sécurité.

Livre blanc
Maximisez la puissance du protocole TLS

Guide
Le guide Zero Trust de la sécurisation de l'accès aux applications

Qu'est-ce que le protocole TLS ?

Transport Layer Security (TLS) est un protocole de chiffrement largement utilisé sur Internet. Le protocole TLS (anciennement appelé SSL) authentifie le serveur dans une connexion client-serveur et chiffre 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 du protocole TLS :

1. Clé publique et clé privée

TLS utilise une technique appelée cryptographie à clé publique, qui repose sur une paire de clés : une clé publique et une clé privée. Toute donnée chiffrée avec la clé publique peut uniquement être déchiffrée avec la clé privée.

Par conséquent, un serveur qui déchiffre un message chiffré avec la clé publique prouve qu'il dispose de la clé privée. N'importe quel utilisateur peut afficher 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 permettant de vérifier l’identité d’un serveur ou d’un appareil, notamment la clé publique, une déclaration mentionnant l’émetteur du certificat (les certificats TLS sont émis par une autorité de certification) et la date d’expiration du certificat.

3. Négociation TLS

La négociation TLS est le processus de vérification du certificat TLS et de la détention de la clé privée par le serveur. La négociation TLS définit également de quelle manière le chiffrement sera mis en œuvre une fois la négociation terminée.

Protection par pare-feu WAF
Défendez-vous contre techniques d'attaque du classement Top 10

Comment fonctionne l'authentification mTLS ?

Normalement, avec le protocole TLS, le serveur dispose d'un certificat TLS et d'une paire de clés publique/privée, tandis que le client ne dispose d'aucune clé. Le processus TLS se déroule habituellement comme ceci :

  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 chiffrée
Les étapes de base d'une négociation TLS

Avec le protocole 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 publique/privée. Par rapport au protocole TLS ordinaire, le protocole mTLS comporte des étapes supplémentaires destinées à vérifier l'identité des deux parties (les étapes supplémentaires sont indiquées en caractères gras) :

  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 chiffrée
Les étapes de base d'une négociation mutual TLS (mTLS)

Autorités de certification dans mTLS

L'organisation qui met en œuvre le protocole mTLS est sa propre autorité de certification. Cette approche diffère du protocole TLS standard, selon lequel l'autorité de certification est une organisation externe qui vérifie si le propriétaire du certificat détient légitimement le domaine associé (en savoir plus sur la validation des certificats TLS).

Un certificat TLS « racine » est nécessaire pour le protocole mTLS ; il permet à une organisation d'être sa propre autorité de certification. Les certificats utilisés par les clients et les 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 protocole TLS unidirectionnel sur l'Internet public, car une autorité de certification externe doit émettre ces certificats.)

Pourquoi utiliser mTLS ?

mTLS contribue à garantir la sécurité et la fiabilité du trafic dans les deux sens entre un client et un serveur. Il offre ainsi une couche de sécurité supplémentaire aux utilisateurs qui se connectent au réseau ou aux applications d'une organisation. Il vérifie également les connexions avec les appareils clients qui n'effectuent pas de processus de connexion, tels que les appareils connectés à l'Internet des objets (IoT).

mTLS prévient différents types d'attaques, notamment :

  • Attaques de l'homme du milieu (« on-path ») : les auteurs d'une attaque de l'homme du milieu se placent entre un client et un serveur et interceptent ou modifient les communications entre ces deux appareils. L'utilisation du protocole mTLS empêche les auteurs d'une attaque de l'homme du milieu de s'authentifier auprès du client ou auprès du serveur, rendant pratiquement impossible l'exécution de cette attaque.
  • Attaques par usurpation d'identité : des acteurs malveillants peuvent tenter « d'usurper » un serveur web auprès d'un utilisateur, ou inversement. Les attaques par usurpation d'identité sont beaucoup plus difficiles à exécuter lorsque les deux parties doivent s'authentifier avec des certificats TLS.
  • Bourrage d'identifiants (Credential Stuffing) : des acteurs malveillants utilisent des informations d'identification divulguées lors d'une violation de données pour essayer de se connecter en tant qu'utilisateur légitime. En l'absence de certificat TLS émis de manière légitime, les attaques par bourrage d'identifiants (Credential Stuffing) ne peuvent pas aboutir contre des organisations utilisant le protocole mTLS.
  • Attaques par force brute : lors d'une attaque par force brute, généralement lancée à l'aide de bots, un acteur malveillant essaie à deviner le mot de passe d'un utilisateur en effectuant rapidement une série d'essais aléatoires. Le protocole mTLS garantit qu'un mot de passe ne suffit pas pour accéder au réseau d'une organisation. (Le contrôle du volume des requêtes est un autre moyen de lutter contre ce type d'attaque utilisant des bots.)
  • Attaques par phishing : l'objectif d'une attaque par phishing (ou hameçonnage) est souvent de dérober les identifiants d'un utilisateur, puis d'utiliser ces identifiants pour compromettre un réseau ou une application. Même si un utilisateur tombe dans le piège de cette attaque, l'acteur malveillant aura toujours besoin d'un certificat TLS et de la clé privée correspondante pour pouvoir utiliser ces identifiants.
  • Appels d'API malveillants : lorsqu'il est utilisé pour la sécurité des API, le protocole mTLS garantit que les appels d'API proviennent uniquement d'utilisateurs légitimes et authentifiés. Cela empêche les pirates d'envoyer des appels d'API malveillants visant à exploiter une vulnérabilité ou à perturber le fonctionnement normal de l'API.

Les sites web utilisent déjà TLS, alors pourquoi le protocole mTLS n'est pas utilisé sur l'ensemble de l'Internet ?

Pour les besoins quotidiens, l'authentification à sens unique offre une protection suffisante. Les objectifs du protocole TLS sur l'Internet public sont 1) d'assurer que les internautes ne consultent pas des sites web usurpés, 2) de préserver la sécurité et le chiffrement des données privées lorsqu'elles traversent les différents réseaux qui constituent Internet, et 3) d'assurer que les données ne sont pas altérées pendant leur acheminement. Le protocole TLS unidirectionnel, dans lequel le client vérifie uniquement l'identité du serveur, permet d'atteindre ces objectifs.

Par ailleurs, 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 fin est une tâche quasi impossible.

À plus petite échelle, toutefois, le protocole mTLS est très utile et pratique pour les entreprises individuelles, surtout lorsque celles-ci adoptent une approche Zero Trust de la sécurisation de leur réseau. Dans la mesure où une approche Zero Trust ne fait confiance à aucun utilisateur, appareil ou requête par défaut, les entreprises doivent être en mesure d'authentifier chaque utilisateur, appareil et requête chaque fois qu'ils tentent d'accéder à un point quelconque du réseau. Le protocole mTLS permet d'y parvenir en authentifiant les utilisateurs et en vérifiant les appareils.

Comment la plateforme Cloudflare utilise-t-elle le protocole mTLS ?

La solution Cloudflare Zero Trust utilise le protocole mTLS pour la sécurité Zero Trust. Cloudflare API Shield utilise également le protocole mTLS pour vérifier les points de terminaison des API, garantissant ainsi qu'aucune partie non autorisée ne peut envoyer d'appels d'API potentiellement malveillants. Découvrez comment mettre en œuvre le protocole mTLS avec Cloudflare.