Gegenseitiges TLS in Google Cloud verstehen

Gegenseitige TLS (mTLS) ist ein Industriestandardprotokoll für die gegenseitige Authentifizierung zwischen einem Client und einem Server. Mit dem mTLS-Protokoll wird sichergestellt, dass sowohl der Client als auch der Server an beiden Enden einer Netzwerkverbindung die sind, die sie vorgeben zu sein. Dazu wird überprüft, ob beide den privaten Schlüssel haben, der mit dem Clientzertifikat verknüpft ist.

Was ist ein Clientzertifikat?

Ein Clientzertifikat, auch TLS-Zertifikat (Transport Layer Security) genannt, ist eine Datei, die wichtige Informationen zur Überprüfung der Identität eines Geräts enthält. Die Zertifikatsinformationen umfassen den öffentlichen Schlüssel, eine Erklärung, wer das Zertifikat ausgestellt hat (Zertifikate können von Zertifizierungsstellen oder selbst signiert sein) und das Ablaufdatum des Zertifikats.

So überprüfen die Google APIs die Geräteidentität

Das TLS-Protokoll verwendet die sogenannte Public-Key-Infrastruktur (PKI), die auf einem Paar asymmetrischer Schlüssel basiert: einem öffentlichen und einem privaten Schlüssel. Alles, was mit dem privaten Schlüssel verschlüsselt ist, kann nur mit dem öffentlichen Schlüssel entschlüsselt werden. Die Google Cloud APIs verwenden das TLS-Protokoll, um die Identität eines Geräts zu überprüfen. Dazu wird die mit dem privaten Schlüssel verschlüsselte Nachricht während des mTLS-Handshakes mit dem öffentlichen Schlüssel des Zertifikats entschlüsselt. Die erfolgreiche Entschlüsselung belegt, dass der private Schlüssel vorhanden ist, der nur auf vertrauenswürdigen Geräten verfügbar ist.

So aktivieren Sie den mTLS-Handshake und die Validierung:

  • Stellen Sie über mTLS-spezifische API-Endpunkte eine mTLS-Verbindung zu den Google APIs her. Die mTLS-spezifischen Endpunkte haben das folgende Format: [service].mtls.googleapis.com

  • Erkennen und verwenden Sie das Gerätezertifikat während des mTLS-Handshakes. Wenn Sie die Endpunktprüfung für die Zertifikatsbereitstellung verwenden, wird dieser Zertifikattyp automatisch von den unterstützten Clients erkannt und verwendet.

Das folgende Diagramm veranschaulicht den mTLS-Handshake zwischen einem Client und einem Google API-Server:

mTLS-Handshake zwischen einem Client und einem Google API-Server

Nächste Schritte