Le protocole TLS mutuel (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 pour vérifier l'identité d'un appareil. Les informations du certificat incluent la clé publique, une déclaration indiquant qui a délivré le certificat (les certificats peuvent être délivrés par des autorités de certification ou être autosignés) et la date d'expiration du certificat.
Comment les API Google valident-elles 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 élément chiffré avec la clé privée ne peut être déchiffré qu'avec la clé publique. Les APIGoogle 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 des appareils approuvés.
Pour activer le processus d'établissement de la liaison et de validation mTLS, un client doit procéder comme suit:
É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 ont le format suivant:
[service].mtls.googleapis.com
Dé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: