Aller au contenu principal
Expert Cybersécurité & IAv9.0
Centres de ressources conformité
Besoin d'un accompagnement expert ?
Devis personnalisé sous 24h — audit, conformité, incident
Checklists Sécurité — Audit & Durcissement
Formats disponibles
📄 PDF 📊 Excel 🌐 Web

11 checklists professionnelles couvrant 2 200+ points de contrôle. Téléchargement gratuit, aucune inscription.

mTLS API

devsecops

Définition

mTLS (Mutual TLS ou Mutual Transport Layer Security) est une extension du protocole TLS standard qui exige une authentification mutuelle entre le client et le serveur : non seulement le serveur présente son certificat pour s'authentifier auprès du client (comme en TLS standard), mais le client présente également son propre certificat pour s'authentifier auprès du serveur. Dans les architectures API et microservices, mTLS est un mécanisme d'authentification forte service-à-service particulièrement robuste. En TLS standard (utilisé pour la navigation web HTTPS), seul le serveur s'authentifie via son certificat. Le client (navigateur ou application) peut rester anonyme ou s'authentifier via d'autres mécanismes applicatifs (login/password, token OAuth). En mTLS, le serveur exige également que le client présente un certificat valide signé par une autorité de certification (CA) de confiance — sans ce certificat, la connexion est refusée au niveau TLS avant même qu'une requête applicative ne soit traitée. Les avantages de mTLS pour la sécurité des APIs et des microservices sont significatifs. L'authentification se fait au niveau du transport, indépendamment de la couche applicative — même si un attaquant obtient un token JWT ou une clé API, il ne peut pas établir une connexion sans le certificat client. La rotation des certificats, bien que nécessitant une infrastructure PKI, est plus difficile à exfiltrer qu'un simple secret. La chaîne de confiance basée sur une CA interne permet de contrôler finement quels clients peuvent se connecter. mTLS est la fondation de l'authentification service-à-service dans les service meshes (Istio, Linkerd, Consul Connect). Ces outils gèrent automatiquement l'émission, la distribution et la rotation des certificats SPIFFE (SVID) pour chaque service, rendant mTLS transparent pour les développeurs d'applications. Le mode strict mTLS dans Istio rejette toutes les connexions non-mTLS entre les services du mesh. Les défis de mTLS incluent la complexité de la gestion d'une PKI interne (CA, émission de certificats, révocation via CRL ou OCSP), la rotation des certificats sans interruption de service, et la gestion des certificats sur les clients mobiles ou tiers qui peuvent ne pas supporter mTLS.

mTLS vs TLS : authentification unidirectionnelle et bidirectionnelle

En TLS standard, seul le serveur présente un certificat — le client vérifie l'identité du serveur mais reste anonyme au niveau TLS. En mTLS, les deux parties présentent des certificats : le serveur vérifie l'identité du client avant d'accepter la connexion. Cette authentification au niveau transport est plus robuste que les tokens applicatifs car elle opère avant même le traitement de la requête HTTP, protégeant également contre les attaques au niveau des serveurs intermédiaires.

mTLS dans les service meshes

Istio, Linkerd et Consul Connect implémentent mTLS de façon transparente entre les microservices via des sidecars Envoy Proxy. Le control plane émet automatiquement des certificats SPIFFE/SVID pour chaque service via SPIRE ou son implémentation interne. En mode "STRICT", Istio rejette toutes les connexions non-mTLS. Les PeerAuthentication et DestinationRule Istio contrôlent la politique mTLS par namespace ou par service, permettant une migration progressive.

Gestion du cycle de vie des certificats

L'infrastructure PKI pour mTLS nécessite : une CA racine (souvent offline), des CA intermédiaires pour l'émission de certificats, un mécanisme de distribution automatique (cert-manager pour Kubernetes, SPIRE), une politique de révocation (CRL ou OCSP) pour les certificats compromis, et des durées de vie courtes (24h à 7 jours) pour limiter l'impact d'une compromission. cert-manager avec Let's Encrypt (pour les certs publics) ou Vault PKI (pour les certs internes) est la solution recommandée en Kubernetes.

Articles liés

Un projet cybersécurité ?

Expert dispo · Réponse 24h

Devis