Comprendre l'authentification TLS mutuelle sur Google Cloud

TLS mutuel (mTLS) est un protocole standard dans l'industrie 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 qu'ils possèdent tous deux 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 la validation de l'identité d'un appareil. Les informations de certificat incluent la clé publique, une déclaration de l'auteur du certificat (les certificats peuvent être délivrés par des autorités de certification ou 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 valider 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 montre la possession de la clé privée qui n'est disponible qu'à partir d'appareils fiables.

Pour activer le processus de validation et de handshake 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 sont au format suivant: [service].mtls.googleapis.com

  • Découvrez et utilisez le certificat d'appareil pendant le handshake mTLS. Si vous utilisez la validation des points de terminaison pour le déploiement de certificats, ce type de certificat est automatiquement découvert et utilisé par les clients compatibles.

Le schéma suivant illustre le handshake mTLS entre un client et un serveur d'API Google:

Handshake mTLS entre un client et un serveur d'API Google

Étapes suivantes