SSL-Richtlinien – Übersicht

In diesem Dokument bezieht sich der Begriff SSL sowohl auf das Secure Sockets Layer-Protokoll (SSL) als auch auf das Transport Layer Security-Protokoll (TLS). Die Informationen in diesem Dokument beziehen sich auf TLS-Verbindungen über das TCP-Transportprotokoll, für die eine beliebige unterstützte Version von TLS verwendet werden kann. Bei Load-Balancern, die HTTP/3 verwenden, ist das zugrunde liegende Transportprotokoll QUIC, das ausschließlich TLS 1.3 verwendet.

SSL-Richtlinien sind Google Cloud Konfigurationsobjekte, mit denen Sie steuern können, wie Load-Balancer Client-TLS-Verbindungen beenden. Eine SSL-Richtlinie ist einem Ziel-HTTPS-Proxy oder Ziel-SSL-Proxy zugeordnet. In einer SSL-Richtlinie werden ein Profil von TLS-Funktionen und eine TLS-Mindestversion angegeben.

Jedes vordefinierte Profil einer SSL-Richtlinie gibt eine Reihe von TLS-Funktionen an, die der Load-Balancer unterstützen soll. Die TLS-Mindestversion schränkt den Load Balancer weiter ein, sodass nur bestimmte TLS-Versionen verwendet werden. Wenn Sie die Unterstützung für bestimmte Cipher-Suites angeben müssen, die von TLS 1.2 und älter verwendet werden, können Sie das mit einem benutzerdefinierten Profil tun. Jeder SSL-Richtlinie ist ein Bereich zugeordnet, entweder global oder regional, je nach Load Balancer.

Die folgenden Load-Balancer unterstützen globale SSL-Richtlinien:

  • Globaler externer Application Load Balancer
  • Klassischer Application Load Balancer
  • Regionsübergreifender interner Application Load Balancer
  • Globaler externer Proxy-Network Load Balancer
  • Klassischer Proxy-Network Load Balancer

Die folgenden Load-Balancer unterstützen regionale SSL-Richtlinien:

  • Regionaler externer Application Load Balancer
  • Regionaler interner Application Load Balancer

Die Zuordnung einer SSL-Richtlinie zu einem Ziel-HTTPS-Proxy oder Ziel-SSL-Proxy ist optional. Jedem HTTPS-Zielproxy oder SSL-Zielproxy kann höchstens eine SSL-Richtlinie zugeordnet werden. Sie können dieselbe SSL-Richtlinie mehreren Ziel-HTTPS-Proxys oder mehreren Ziel-SSL-Proxys zuordnen, sofern die SSL-Richtlinie und der Zielproxy identische Bereiche verwenden. Änderungen an SSL-Richtlinien ändern oder unterbrechen keine vorhandenen Load Balancer-Verbindungen.

Das folgende Beispiel zeigt, wie Verbindungen von Clients zu einem Load-Balancer hergestellt und beendet werden.

Clientverbindungen in externen Application Load Balancern oder externen Proxy-Network Load Balancern.
Clientverbindungen in externen Application Load Balancern oder externen Proxy-Network Load Balancern (zum Vergrößern anklicken).

Sie können eine SSL-Richtlinie verwenden, um die Mindest-TLS-Version und die SSL-Features zu konfigurieren, die im Load-Balancer aktiviert sind. SSL-Richtlinien wirken sich auf Verbindungen zwischen Clients und dem Load-Balancer aus (Verbindung 1 in der Abbildung). SSL-Richtlinien haben keine Auswirkungen auf die Verbindungen zwischen dem Load Balancer und den Backends (Verbindung 2 in der Abbildung).

SSL-Richtlinie erstellen

Wenn Sie eine SSL-Richtlinie erstellen, geben Sie die folgenden Informationen an:

  • ein Profil, das eine Reihe von TLS-Funktionen angibt, die der Load Balancer unterstützen soll, und
  • Eine Mindest-TLS-Version, die den Load Balancer weiter einschränkt, sodass nur bestimmte Versionen von TLS verwendet werden.

Wenn Clients eine Verbindung zum Load-Balancer herstellen, geben sie die TLS-Protokollversionen, Cipher-Suites und anderen TLS-Funktionen an, die sie unterstützen. Während des TLS-Handshake wählt der Load Balancer die neueste TLS-Protokollversion aus, die sowohl er als auch der Client unterstützen, und wählt auch andere TLS-Parameter (einschließlich einer Cipher Suite) für die Verbindung aus. Der TLS-Handshake schlägt fehl, wenn der Load-Balancer und der Client keine sich überschneidenden TLS-Versionen, Cipher Suites und anderen Funktionen unterstützen.

Vordefinierte Profile

Google Cloud bietet die folgenden vordefinierten Profile.

  • COMPATIBLE: Unterstützt die meisten Clients, einschließlich Clients, die nur frühere TLS-Versionen und TLS-Funktionen verwenden können.
  • MODERN: Unterstützt eine Vielzahl von TLS-Chiffren, mit denen moderne Clients TLS aushandeln können.
  • RESTRICTED: Unterstützt einen reduzierten Satz von TLS-Chiffren. Das Profil RESTRICTED soll strengere Compliance-Anforderungen erfüllen.
  • FIPS_202205: Unterstützt eine Reihe von TLS-Funktionen, die FIPS 140-3-konform sein sollen.

Benutzerdefiniertes Profil

Die Profile COMPATIBLE, MODERN und RESTRICTED unterscheiden sich in den unterstützten Cipher Suites, wenn der Load Balancer TLS 1.2 und frühere Versionen aushandelt. Die Unterschiede sind in der Tabelle im Abschnitt Cipher Suites für TLS 1.2 und früher aufgeführt.

Sie können auch ein CUSTOM-Profil erstellen und die vom Load Balancer für TLS 1.2 und früher unterstützten Cipher Suites einzeln angeben. Dies hat keine Auswirkungen darauf, wie der Load-Balancer TLS 1.3 aushandelt.

Verhalten, wenn keine SSL-Richtlinie angegeben ist

Wenn Sie einem Ziel-HTTPS-Proxy oder Ziel-SSL-Proxy keine SSL-Richtlinie zuordnen, verhält sich der Load-Balancer so, als hätten Sie eine SSL-Richtlinie mit den folgenden Einstellungen zugeordnet:

  • das Profil COMPATIBLE ausgewählt ist und
  • Die TLS-Mindestversion ist auf 1.0 festgelegt.

Unterstützung von TLS-Versionen

Ein Profil kann auch indirekt die Versionen von TLS einschränken, die der Load-Balancer aushandeln kann. Die im Profil RESTRICTED aktivierten Chiffresammlungen enthalten beispielsweise keine Chiffresammlungen, die von TLS 1.0 oder 1.1 unterstützt werden. Wenn Sie das Profil RESTRICTED auswählen, können Clients TLS 1.0 und 1.1 daher faktisch nicht verwenden, selbst wenn die TLS-Mindestversion der SSL-Richtlinie auf 1.0 oder 1.1 festgelegt ist.

Cloud Load Balancing unterstützt nicht die SSL-Version 3.0 oder früher. In der folgenden Tabelle werden die unterstützten Features für jede TLS/SSL-Version aufgelistet.

TLS/SSL-Version Funktionsunterstützung
TLS 1.3

Alle Profile außer dem Profil FIPS_202205 unterstützen die folgenden TLS 1.3-Cipher-Suites:

  • TLS_AES_128_GCM_SHA256
  • TLS_AES_256_GCM_SHA384
  • TLS_CHACHA20_POLY1305_SHA256

Das Profil FIPS_202205 unterstützt die folgenden zwei TLS 1.3-Chiffresammlungen:

  • TLS_AES_128_GCM_SHA256
  • TLS_AES_256_GCM_SHA384
TLS 1.2 und früher Das von der SSL-Richtlinie verwendete Profil steuert, welche Chiffresammlungen mit TLS 1.2 und älter verwendet werden.
SSL 3.0 oder älter Wird nicht von Load-Balancern unterstützt, die SSL-Richtlinien verwenden.

Cipher Suites für TLS 1.2 und früher

In der folgenden Tabelle sind die Chiffrierverfahren für TLS 1.2 und früher aufgeführt, die in den einzelnen vordefinierten Profilen enthalten sind. Wenn Sie eine SSL-Richtlinie mit dem Profil CUSTOM erstellen, können Sie diese Chiffresammlungen einzeln auswählen. SSL-Richtlinien, die das Profil CUSTOM verwenden, müssen mindestens eine Cipher Suite aus der folgenden Liste enthalten.

IANA-Wert Funktion COMPATIBLE MODERN RESTRICTED FIPS_202205
0xCCA9 TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256
0xCCA8 TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256
0xC02B TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
0xC02F TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
0xC02C TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
0xC030 TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
0xC009 TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA
0xC013 TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA
0xC00A TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA
0xC014 TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA
0x009C TLS_RSA_WITH_AES_128_GCM_SHA256
0x009D TLS_RSA_WITH_AES_256_GCM_SHA384
0x002F TLS_RSA_WITH_AES_128_CBC_SHA
0x0035 TLS_RSA_WITH_AES_256_CBC_SHA
0x000A TLS_RSA_WITH_3DES_EDE_CBC_SHA

FIPS_202205-Profildetails

Das Profil FIPS_202205 beschränkt den Load Balancer auf die Verwendung einer Reihe von TLS-Funktionen, die mit dem FIPS 140-3-Standard kompatibel sein sollen. Wenn in einer SSL-Richtlinie dieses Profil verwendet wird, unterstützt der Load-Balancer TLS 1.2 oder 1.3 mit den folgenden Einschränkungen:

  • Wenn die TLS-Verbindung TLS 1.2 verwendet, sind nur die folgenden Chiffresammlungen zulässig:

    • TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
    • TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
    • TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
    • TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
  • Wenn die TLS-Verbindung TLS 1.3 verwendet, sind nur die folgenden Cipher Suites zulässig:

    • TLS_AES_128_GCM_SHA256
    • TLS_AES_256_GCM_SHA384
  • Für die Schlüsselvereinbarung sind nur P-256 oder P-384 zulässig.

  • Es sind nur die folgenden digitalen Signaturen für Load-Balancer-Zertifikate zulässig:

    • PKCS#1/PSS mit SHA-256, SHA-384 oder SHA-512
    • ECDSA mit P-256 oder P-384 und SHA-256 oder SHA-384

Featureaktualisierungen

Wir behalten uns das Recht vor, die in den Profilen COMPATIBLE, MODERN und RESTRICTED aktivierten Funktionen und die in einem CUSTOM-Profil konfigurierbaren Funktionen zu aktualisieren. Diese Aktualisierungen erfolgen, wenn wir die Unterstützung für ältere TLS-Funktionen entfernen und Unterstützung für neuere TLS-Funktionen hinzufügen.

Wenn wir Features zur Verbesserung der TLS-Funktionen hinzufügen, können wir diese sofort in den Profilen COMPATIBLE, MODERN und RESTRICTED aktivieren, sodass SSL-Richtlinien, die diese Profile auswählen, die hinzugefügten Features verwenden können. Wenn Ihre Richtlinie jedoch das Profil CUSTOM auswählt, müssen Sie die Einstellungen der Richtlinie ändern, um die hinzugefügten Funktionen zu verwenden.

Beschränkungen

  • Das Deaktivieren bestimmter SSL-Versionen oder -Chiffres kann dazu führen, dass einige ältere Clients keine Verbindung über HTTPS oder SSL zu Ihrem Proxy herstellen können. Wenn zu viele Chiffres im Profil CUSTOM deaktiviert werden, kann möglicherweise kein Client eine HTTPS-Verbindung aushandeln.

  • Ein SSL-Zertifikat, das Ihrem Load-Balancer zugeordnet ist, verwendet entweder eine digitale ECDSA- oder RSA-Signatur. Die vordefinierten Profile sind mit beiden Arten von Zertifikatsignaturen kompatibel. In einem benutzerdefinierten Profil müssen Chiffres aktiviert werden, die mit der digitalen Signatur kompatibel sind, die von den Zertifikaten Ihres Load-Balancers verwendet wird.

Nächste Schritte