Gegenseitiges TLS bei Google Cloud

Gegenseitiges TLS (Mutual TLS, mTLS) ist ein Branchenstandard für die gegenseitige Authentifizierung zwischen einem Client und einem Server. Das mTLS-Protokoll sorgt dafür, dass sowohl der Client als auch der Server an beiden Enden einer Netzwerkverbindung angeblich davon ausgehen, dass sie den privaten Schlüssel haben, der mit dem Clientzertifikat verknüpft ist.

Was ist ein Clientzertifikat?

Ein Clientzertifikat, auch TLS-Zertifikat genannt, ist eine Datei mit wichtigen Informationen zur Überprüfung der Identität eines Geräts. Die Zertifikatinformationen 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 eine Technik namens Public-Key-Infrastruktur (PKI), die auf einem Paar asymmetrischer Schlüssel basiert: einem öffentlichen und einem privaten Schlüssel. Alle mit dem privaten Schlüssel verschlüsselten Elemente können 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, indem sie die Nachricht, die während des mTLS-Handshakes mit dem öffentlichen Schlüssel des Zertifikats verschlüsselt wurde, entschlüsseln. Die erfolgreiche Entschlüsselung zeigt den Besitz des privaten Schlüssels, der nur von vertrauenswürdigen Geräten verfügbar ist.

Zum Aktivieren des mTLS-Handshake- und -Validierungsprozesses muss ein Client Folgendes tun:

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

  • Ermitteln und verwenden Sie das Gerätezertifikat während des mTLS-Handshakes. Wenn Sie für die Zertifikatsbereitstellung die Endpunktprüfung verwenden, wird dieser Zertifikatstyp 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