Políticas de SSL para protocolos SSL y TLS

En este documento, el término SSL hace referencia a los protocolos SSL (Secure Sockets Layer) y TLS (Transport Layer Security). La información de este documento se aplica a las conexiones TLS a través del protocolo de transporte TCP, que puede usar cualquier versión compatible de TLS. En el caso de los balanceadores de carga que usan conexiones HTTP/3, el protocolo de transporte subyacente es QUIC, que usa TLS 1.3 exclusivamente.

Las políticas de SSL especifican el conjunto de funciones de SSL que usan los Google Cloud balanceadores de carga al negociar el protocolo SSL con los clientes. Por ejemplo, puedes usar una política de SSL para definir la versión mínima de TLS y las funciones que debe admitir cada cliente para enviar tráfico a tu balanceador de carga.

Los siguientes balanceadores de carga admiten políticas de SSL globales:

  • Balanceador de carga de aplicación externo global
  • Balanceador de carga de aplicación clásico
  • Balanceador de carga de aplicación interno entre regiones
  • Balanceador de carga de red con proxy externo global
  • Balanceador de carga de red de proxy clásico

Los siguientes balanceadores de carga admiten políticas de SSL regionales:

  • Balanceador de carga de aplicación externo regional
  • Balanceador de carga de aplicación interno regional

De forma predeterminada, estos balanceadores de carga usan un conjunto de funciones SSL que proporcionan una buena seguridad y una amplia compatibilidad. Algunas aplicaciones requieren más control sobre las versiones y los cifrados de SSL que se usan en sus conexiones HTTPS o SSL. Puedes definir políticas de SSL para especificar el conjunto de funciones de SSL que usa tu balanceador de carga al negociar el protocolo SSL con los clientes.

En el siguiente ejemplo se muestra cómo se establecen y se terminan las conexiones de los clientes en un balanceador de carga.

Conexiones de cliente en balanceadores de carga de aplicaciones externos o balanceadores de carga de red de proxy externos.
Conexiones de cliente en balanceadores de carga de aplicación externos o balanceadores de carga de red de proxy externos (haz clic para ampliar).

Puedes usar una política de SSL para configurar la versión mínima de TLS y las funciones de SSL que están habilitadas en el balanceador de carga. Las políticas de SSL afectan a las conexiones entre los clientes y el balanceador de carga (Conexión 1 en la ilustración). Las políticas de SSL no afectan a las conexiones entre el balanceador de carga y los back-ends (conexión 2).

Definir una política de SSL

Para definir una política de SSL, debes especificar una versión mínima de TLS y un perfil. El perfil selecciona un conjunto de funciones SSL que se habilitarán en el balanceador de carga.

Tres perfiles preconfigurados gestionados por Google te permiten especificar el nivel de compatibilidad adecuado para tu aplicación. Los tres perfiles preconfigurados son los siguientes:

  • COMPATIBLE. Permite que la cartera de clientes más amplia, incluidos los clientes que solo admiten funciones obsoletas de SSL, negocie el protocolo SSL con el balanceador de carga.
  • MODERN. Admite una amplia gama de funciones de SSL, lo que permite a los clientes modernos negociar SSL.
  • RESTRICTED. Admite un conjunto reducido de funciones de SSL, diseñado para cumplir requisitos de cumplimiento más estrictos.

Un cuarto perfil PERSONALIZADO te permite seleccionar funciones SSL de forma individual.

La política de SSL también especifica la versión mínima del protocolo TLS que pueden usar los clientes para establecer una conexión.

Ten en cuenta que un perfil puede restringir indirectamente las versiones de TLS que puede negociar el balanceador de carga. Por ejemplo, los cifrados habilitados en el perfil RESTRICTED solo son compatibles con TLS 1.2. Por lo tanto, si se elige el perfil RESTRICTED, se impide que los clientes usen TLS 1.0 y 1.1, aunque la versión mínima de TLS de la política de SSL lo permita.

Si no eliges uno de los tres perfiles preconfigurados ni creas una política de SSL personalizada, el balanceador de carga usará la política de SSL predeterminada. La política de SSL predeterminada es equivalente a una política de SSL que usa el perfil COMPATIBLE con una versión mínima de TLS 1.0.

Puedes adjuntar una política de SSL a más de un proxy de destino. No puede configurar más de una política de SSL para un proxy de destino concreto. Los cambios que se hagan en las políticas de SSL no alteran ni interrumpen las conexiones de balanceadores de carga.

Cloud Load Balancing no admite las versiones 3.0 ni anteriores de SSL. En la siguiente tabla se describe la compatibilidad de las funciones con cada versión de TLS/SSL.

Versión de TLS/SSL Funciones admitidas
TLS 1.0, 1.1 o 1.2 Los ajustes de las políticas de SSL controlan los paquetes de cifrado que se aplican a las conexiones de los clientes.
TLS 1.3 Los ajustes de las políticas de SSL no controlan la selección de cifrado. TLS 1.3 solo admite los cifrados TLS_AES_128_GCM_SHA256, TLS_AES_256_GCM_SHA384 y TLS_CHACHA20_POLY1305_SHA256.
SSL 3.0 o versiones anteriores No aplicable No es compatible con Cloud Load Balancing.

Durante cada handshake de TLS, el cliente indica la versión más alta del protocolo TLS que admite. El servidor debe seleccionar la versión del protocolo más alta que admitan el cliente y el servidor, y que permita la configuración del servidor. Por ejemplo, si un balanceador de carga se configura con una versión mínima de TLS 1.2, un handshake con un cliente moderno que admita TLS 1.3 seleccionará TLS 1.3. Un handshake con un cliente anterior que solo admita TLS 1.2 usa TLS 1.2. Un handshake con un cliente aún más antiguo que solo admite TLS 1.1 falla.

En la siguiente tabla se muestran las funciones de la política de SSL disponibles para cada perfil preconfigurado. Todas las funciones controlan si se pueden usar conjuntos de cifrado concretos y solo se aplican a las conexiones que usan TLS 1.2 o versiones anteriores, no a las que usan TLS 1.3.

Valor de IANA Función En el perfil COMPATIBLE En el perfil MODERNO En el perfil RESTRINGIDO
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

Actualizaciones de funciones

Nos reservamos el derecho de actualizar el conjunto de funciones habilitadas en los perfiles COMPATIBLE, MODERNO y RESTRINGIDO, así como las funciones que se pueden configurar en un perfil PERSONALIZADO. Lo hacemos a medida que retiramos la compatibilidad con las funciones SSL más antiguas y añadimos compatibilidad con las más recientes.

Cuando añadimos funciones que mejoran las capacidades de SSL, podemos habilitarlas inmediatamente en los perfiles COMPATIBLE, MODERN y RESTRICTED para que las políticas de SSL que seleccionen esos perfiles puedan usar las nuevas funciones. Sin embargo, si tu política selecciona el perfil PERSONALIZADO, debes modificar la configuración de la política para usar las funciones añadidas.

Limitaciones

  • Si inhabilitas determinadas versiones o cifrados de SSL, es posible que algunos clientes antiguos no puedan conectarse a tu proxy mediante HTTPS o SSL. Si se inhabilita una selección suficientemente amplia de cifrados en el perfil PERSONALIZADO, es posible que ningún cliente pueda negociar HTTPS.

  • Un certificado SSL asociado a tu balanceador de carga usa una firma digital ECDSA o RSA. Los perfiles predefinidos son compatibles con ambos tipos de firmas de certificados. Un perfil personalizado debe habilitar cifrados que sean compatibles con la firma digital utilizada por los certificados de tu balanceador de carga.

  • Las funciones que controlan los conjuntos de cifrado solo se aplican a las conexiones de cliente que usan TLS 1.2 y versiones anteriores. No controlan la selección de cifrado en las conexiones que usan TLS 1.3.

Siguientes pasos