Présentation des stratégies SSL

Dans ce document, le terme SSL désigne à la fois les protocoles SSL (Secure Sockets Layer) et TLS (Transport Layer Security). Les informations contenues dans ce document s'appliquent aux connexions TLS via le protocole de transport TCP, qui peuvent utiliser n'importe quelle version compatible de TLS. Pour les équilibreurs de charge qui utilisent HTTP/3, le protocole de transport sous-jacent est QUIC, qui utilise exclusivement TLS 1.3.

Les règles SSL sont des objets de configuration Google Cloud qui vous permettent de contrôler la manière dont les équilibreurs de charge mettent fin aux connexions TLS des clients. Une règle SSL est associée à un proxy HTTPS ou SSL cible. Une règle SSL spécifie un profil de fonctionnalités TLS et une version TLS minimale.

Chaque profil prédéfini d'une règle SSL spécifie un ensemble de fonctionnalités TLS que l'équilibreur de charge est configuré pour prendre en charge. La version TLS minimale limite davantage l'équilibreur de charge à l'utilisation de versions spécifiques de TLS. Dans les cas où vous devez spécifier la compatibilité avec des suites de chiffrement particulières utilisées par TLS 1.2 et les versions antérieures, un profil personnalisé vous permet de le faire. Chaque règle SSL est associée à un champ d'application (global ou régional) en fonction de l'équilibreur de charge.

Les équilibreurs de charge suivants sont compatibles avec les règles SSL globales :

  • Équilibreur de charge d'application externe global
  • Équilibreur de charge d'application classique
  • Équilibreur de charge d'application interne interrégional
  • Équilibreur de charge réseau proxy externe global
  • Équilibreur de charge réseau proxy classique

Les équilibreurs de charge suivants sont compatibles avec les règles SSL régionales :

  • Équilibreur de charge d'application externe régional
  • Équilibreur de charge d'application interne régional

L'association d'une règle SSL à un proxy HTTPS ou SSL cible est facultative. Chaque proxy HTTPS ou SSL cible ne peut être associé qu'à une seule règle SSL. Vous pouvez associer la même règle SSL à plusieurs proxys HTTPS cibles ou à plusieurs proxys SSL cibles, à condition que la règle SSL et le proxy cible utilisent des champs d'application identiques. Les modifications apportées aux règles SSL n'altèrent ni n'interrompent les connexions de l'équilibreur de charge existantes.

L'exemple suivant montre comment les connexions de clients sont établies et interrompues au niveau d'un équilibreur de charge.

Connexions de clients dans des équilibreurs de charge d'application externes ou des équilibreurs de charge réseau proxy externes.
Connexions de clients dans les équilibreurs de charge d'application externes ou les équilibreurs de charge réseau proxy externes (cliquez pour agrandir)

Vous pouvez utiliser une règle SSL pour configurer la version TLS minimale et les fonctionnalités SSL activées dans l'équilibreur de charge. Les règles SSL affectent les connexions entre les clients et l'équilibreur de charge (connexion 1 dans l'illustration). Les règles SSL n'affectent pas les connexions entre l'équilibreur de charge et les backends (connexion 2 dans l'illustration).

Créer une règle SSL

Lorsque vous créez une règle SSL, vous spécifiez les informations suivantes :

  • un profil, qui spécifie un ensemble de fonctionnalités TLS que l'équilibreur de charge est configuré pour prendre en charge.
  • une version TLS minimale, qui limite davantage l'équilibreur de charge à l'utilisation de versions TLS spécifiques.

Lorsqu'ils se connectent à l'équilibreur de charge, les clients annoncent les versions du protocole TLS, les suites de chiffrement et les autres fonctionnalités TLS qu'ils sont en mesure de prendre en charge. Lors du handshake TLS, l'équilibreur de charge choisit la version la plus récente du protocole TLS que lui et le client prennent en charge, ainsi que d'autres paramètres TLS (y compris une suite de chiffrement) pour la connexion. Le handshake TLS échoue si l'équilibreur de charge et le client ne sont pas compatibles avec les mêmes versions TLS, suites de chiffrement et autres fonctionnalités.

Profils prédéfinis

Google Cloud fournit les profils prédéfinis suivants.

  • COMPATIBLE : accepte l'ensemble le plus vaste de clients, y compris ceux qui ne peuvent utiliser que les versions et les fonctionnalités TLS antérieures.
  • MODERN : accepte un large éventail d'algorithmes de chiffrement TLS, ce qui permet aux clients modernes d'effectuer des négociations TLS.
  • RESTRICTED : accepte un ensemble réduit de chiffrements TLS. Le profil RESTRICTED est conçu pour répondre à des exigences de conformité plus strictes.
  • FIPS_202205 : accepte un ensemble de fonctionnalités TLS destinées à répondre à la conformité FIPS 140-3.

Profil personnalisé

Les profils COMPATIBLE, MODERN et RESTRICTED diffèrent par l'ensemble des suites de chiffrement qu'ils prennent en charge lorsque l'équilibreur de charge négocie TLS 1.2 et les versions antérieures. Le tableau de la section Suites de chiffrement pour TLS 1.2 et versions antérieures montre ces différences.

Vous pouvez également créer un profil CUSTOM et spécifier individuellement les suites de chiffrement que l'équilibreur de charge prend en charge pour TLS 1.2 et les versions antérieures. Cela n'affecte pas la façon dont l'équilibreur de charge négocie TLS 1.3.

Comportement lorsqu'aucune règle SSL n'est spécifiée

Si vous n'associez pas de règle SSL à un proxy HTTPS ou SSL cible, l'équilibreur de charge fonctionne comme si vous aviez associé une règle SSL avec les paramètres suivants :

  • le profil COMPATIBLE est sélectionné ;
  • la version TLS minimale est définie sur 1.0.

Compatibilité avec les versions TLS

Notez qu'un profil peut indirectement restreindre les versions de TLS que l'équilibreur de charge peut négocier. Par exemple, les suites de chiffrement activées dans le profil RESTRICTED n'incluent pas de suites de chiffrement compatibles avec TLS 1.0 ou 1.1. Le choix du profil RESTRICTED interdit donc aux clients d'utiliser TLS 1.0 et 1.1, même si la version TLS minimale de la règle SSL est définie sur 1.0 ou 1.1.

Cloud Load Balancing n'est pas compatible avec la version 3.0 ou antérieure de SSL. Le tableau suivant décrit la compatibilité des fonctionnalités pour chaque version TLS/SSL.

Version TLS/SSL Prise en charge de fonctionnalités
TLS 1.3

Tous les profils, à l'exception du profil FIPS_202205, sont compatibles avec les suites de chiffrement TLS 1.3 suivantes :

  • TLS_AES_128_GCM_SHA256
  • TLS_AES_256_GCM_SHA384
  • TLS_CHACHA20_POLY1305_SHA256

Le profil FIPS_202205 est compatible avec les deux suites de chiffrement TLS 1.3 suivantes :

  • TLS_AES_128_GCM_SHA256
  • TLS_AES_256_GCM_SHA384
TLS 1.2 et versions antérieures Le profil utilisé par la règle SSL contrôle les suites de chiffrement utilisées avec TLS 1.2 et les versions antérieures.
SSL 3.0 ou version antérieure Non compatible avec les équilibreurs de charge qui utilisent des règles SSL.

Suites de chiffrement pour TLS 1.2 et versions antérieures

Le tableau suivant présente les suites de chiffrement pour TLS 1.2 et versions antérieures incluses dans chaque profil prédéfini. Lorsque vous créez une règle SSL qui utilise le profil CUSTOM, vous pouvez sélectionner ces suites de chiffrement individuellement. Les règles SSL qui utilisent le profil CUSTOM doivent inclure au moins une suite de chiffrement de la liste suivante.

Valeur IANA Fonctionnalité 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

Détails du profil FIPS_202205

Le profil FIPS_202205 limite l'équilibreur de charge à l'utilisation d'un ensemble de fonctionnalités TLS censées être compatibles avec la norme FIPS 140-3. Lorsqu'une règle SSL utilise ce profil, l'équilibreur de charge est compatible avec TLS 1.2 ou TLS 1.3, avec les restrictions suivantes :

  • Si la connexion TLS utilise TLS 1.2, seules les suites de chiffrement suivantes sont autorisées :

    • 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
  • Si la connexion TLS utilise TLS 1.3, seules les suites de chiffrement suivantes sont autorisées :

    • TLS_AES_128_GCM_SHA256
    • TLS_AES_256_GCM_SHA384
  • Seuls P-256 ou P-384 sont autorisés pour la clé-contrat.

  • Seules les signatures numériques de certificat d'équilibreur de charge suivantes sont autorisées :

    • PKCS#1/PSS avec SHA-256, SHA-384 ou SHA-512
    • ECDSA avec P-256 ou P-384 et SHA-256 ou SHA-384

Mises à jour de fonctionnalités

Nous nous réservons le droit de modifier l'ensemble des fonctionnalités activées dans les profils COMPATIBLE, MODERN et RESTRICTED, ainsi que les fonctionnalités configurables dans un profil CUSTOM. Le cas peut se présenter lorsque nous supprimons la compatibilité avec d'anciennes fonctionnalités TLS ou lorsque nous en intégrons de nouvelles.

Lorsque nous ajoutons des fonctionnalités qui améliorent les capacités TLS, nous pouvons les activer immédiatement dans les profils COMPATIBLE, MODERN et RESTRICTED, afin que les règles SSL qui sélectionnent ces profils puissent utiliser les nouvelles fonctionnalités. Toutefois, si votre règle sélectionne le profil CUSTOM, vous devez modifier les paramètres de la règle pour utiliser les fonctionnalités ajoutées.

Limites

  • La désactivation d'algorithmes de chiffrement ou de versions SSL spécifiques peut empêcher certains clients plus anciens de se connecter à votre proxy via HTTPS ou SSL. Si vous désactivez un trop grand nombre d'algorithmes de chiffrement dans le profil CUSTOM, cela peut avoir pour conséquence qu'aucun client ne sera en mesure d'effectuer des négociations HTTPS.

  • Un certificat SSL associé à votre équilibreur de charge utilise une signature numérique ECDSA ou RSA. Les profils prédéfinis sont compatibles avec ces deux types de signature de certificat. Un profil personnalisé doit autoriser les algorithmes de chiffrements compatibles avec la signature numérique utilisée par les certificats de votre équilibreur de charge.

Étapes suivantes