La TLS mutuelle (mTLS) est un protocole standard du secteur pour l'authentification mutuelle entre un client et un serveur. Le protocole mTLS garantit que le client et le serveur, à chaque extrémité d'une connexion réseau, sont bien ceux qu'ils prétendent être en vérifiant que chacun possède la clé privée associée au certificat client.
Qu'est-ce qu'un certificat client ?
Un certificat client, également appelé certificat TLS (Transport Layer Security), est un fichier contenant des informations importantes permettant de vérifier l'identité d'un appareil. Les informations sur le certificat incluent la clé publique, une déclaration indiquant qui a émis le certificat (les certificats peuvent être émis par des autorités de certification ou être autosignés) et la date d'expiration du certificat.
Comment les API Google valident l'identité de l'appareil
Le protocole TLS utilise une technique appelée infrastructure à clé publique (PKI), qui repose sur une paire de clés asymétriques : une clé publique et une clé privée. Tout ce qui est chiffré avec la clé privée ne peut être déchiffré qu'avec la clé publique. Les API Google Cloud utilisent le protocole TLS pour vérifier l'identité d'un appareil en déchiffrant le message chiffré par la clé privée à l'aide de la clé publique du certificat lors du handshake mTLS. Le déchiffrement réussi prouve la possession de la clé privée, qui n'est disponible que sur les appareils vérifiés.
Pour activer le processus de validation et d'établissement de liaison mTLS, un client doit effectuer les opérations suivantes :
Établissez une connexion mTLS avec les API Google à l'aide de points de terminaison d'API spécifiques à mTLS. Les points de terminaison spécifiques à mTLS sont au format suivant :
[service].mtls.googleapis.comDécouvrez et utilisez le certificat de l'appareil lors du handshake mTLS. Si vous utilisez la validation des points de terminaison pour le déploiement de certificats, ce type de certificat est automatiquement détecté et utilisé par les clients compatibles.
Le schéma suivant illustre le handshake mTLS entre un client et un serveur d'API Google :