Mutual TLS (mTLS) est un type d'authentification dans lequel les deux parties d'une connexion s'authentifient mutuellement à l'aide du protocole TLS.
Cet article s'articule autour des points suivants :
Contenu associé
Authentification mutuelle
Sécurité Zero Trust
Attaque par phishing
Qu'est-ce que le modèle SASE ?
Qu'est-ce que l'lAM ?
Abonnez-vous à theNET, le récapitulatif mensuel par Cloudflare des informations les plus populaires sur Internet !
Copier le lien de l'article
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é.
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 :
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.
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.
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.
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 :
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) :
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.)
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 :
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.
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.