Visão geral das políticas de SSL

Neste documento, o termo SSL se refere aos protocolos Secure Sockets Layer (SSL) e Transport Layer Security (TLS). As informações neste documento se aplicam a conexões TLS no protocolo de transporte TCP, que pode usar qualquer versão compatível do TLS. Para balanceadores de carga que usam HTTP/3, o protocolo de transporte subjacente é QUIC, que usa o TLS 1.3 exclusivamente.

As políticas de SSL são Google Cloud objetos de configuração que permitem controlar como os balanceadores de carga encerram as conexões TLS do cliente. Uma política de SSL está associada a um proxy HTTPS de destino ou proxy SSL de destino. Uma política de SSL especifica um perfil de recursos TLS e uma versão mínima do TLS.

Cada perfil predefinido de uma política de SSL especifica um conjunto de recursos TLS que o balanceador de carga está configurado para oferecer suporte. A versão mínima do TLS restringe ainda mais o balanceador de carga para usar apenas versões específicas do TLS. E, nos casos em que você precisa especificar suporte para pacotes de criptografia específicos usados pelo TLS 1.2 e versões anteriores, um perfil personalizado permite fazer isso. Cada política de SSL tem um escopo associado, global ou regional, dependendo do balanceador de carga.

Os seguintes balanceadores de carga dão suporte a políticas de SSL globais:

  • Balanceador de carga de aplicativo externo global
  • Balanceador de carga de aplicativo clássico
  • Balanceador de carga de aplicativo interno entre regiões
  • Balanceador de carga de rede de proxy externo global
  • Balanceador de carga de rede de proxy clássico

Os seguintes balanceadores de carga dão suporte a políticas de SSL regionais:

  • Balanceador de carga de aplicativo externo regional
  • Balanceador de carga de aplicativo interno regional

Associar uma política de SSL a um proxy HTTPS de destino ou proxy SSL de destino é opcional. Cada proxy HTTPS de destino ou proxy SSL de destino pode ser associado a no máximo uma política de SSL. É possível associar a mesma política de SSL a vários proxies HTTPS de destino ou proxies SSL de destino, desde que a política de SSL e o proxy de destino usem escopos idênticos. As alterações feitas nas políticas de SSL não alteram nem interrompem as conexões atuais do balanceador de carga.

O exemplo a seguir mostra como as conexões de clientes são estabelecidas e encerradas em um balanceador de carga.

Conexões de cliente em balanceadores de carga de aplicativo externos ou balanceadores de carga de rede de proxy externo.
Conexões de cliente em balanceadores de carga de aplicativo externos ou de rede de proxy externo (clique para ampliar)

É possível usar uma política de SSL para configurar a versão mínima do TLS e os recursos SSL ativados no balanceador de carga. As políticas de SSL afetam as conexões entre os clientes e o balanceador de carga (conexão 1 na figura). As políticas de SSL não afetam as conexões entre o balanceador de carga e os back-ends (conexão 2 na figura).

Criar uma política de SSL

Ao criar uma política de SSL, você especifica as seguintes informações:

  • perfil, que especifica um conjunto de recursos TLS que o balanceador de carga está configurado para oferecer suporte
  • versão mínima do TLS, que restringe ainda mais o balanceador de carga para usar apenas versões específicas do TLS
  • configuração de troca de chaves pós-quântica, que especifica quando a troca de chaves pós-quântica está ativada no balanceador de carga

Ao se conectar ao balanceador de carga, os clientes anunciam as versões do protocolo TLS, os pacotes de criptografia e outros recursos TLS que podem oferecer suporte. Durante o handshake TLS, o balanceador de carga escolhe a versão mais recente do protocolo TLS que ele e o cliente oferecem suporte e também escolhe outros parâmetros TLS (incluindo um pacote de criptografia) para a conexão. O handshake TLS falha se o balanceador de carga e o cliente não oferecem suporte a versões, pacotes de criptografia e outros recursos de TLS sobrepostos.

Perfis predefinidos

Google Cloud oferece os seguintes perfis predefinidos.

  • COMPATIBLE. Oferece suporte ao conjunto mais amplo de clientes, incluindo aqueles que só podem usar versões anteriores do TLS e recursos TLS.
  • MODERN. Oferece suporte a um amplo conjunto de criptografias TLS, permitindo que clientes modernos negociem TLS.
  • RESTRICTED. Oferece suporte a um conjunto reduzido de criptografias TLS. O perfil RESTRICTED foi criado para atender a requisitos de conformidade mais rigorosos.
  • FIPS_202205. Oferece suporte a um conjunto de recursos TLS que foram criados para atender à conformidade com o FIPS 140-3.

Perfil personalizado

Os perfis COMPATIBLE, MODERN e RESTRICTED diferem no conjunto de pacotes de criptografia que oferecem suporte quando o balanceador de carga negocia o TLS 1.2 e versões anteriores. A tabela na seção Pacotes de criptografia para TLS 1.2 e versões anteriores mostra essas diferenças.

Também é possível criar um perfil CUSTOM e especificar individualmente os pacotes de criptografia que o balanceador de carga oferece suporte para TLS 1.2 e versões anteriores. Isso não afeta como o balanceador de carga negocia o TLS 1.3.

Comportamento quando nenhuma política de SSL é especificada

Se você não associar uma política de SSL a um proxy HTTPS de destino ou proxy SSL de destino, o balanceador de carga vai operar como se você tivesse associado uma política de SSL com as seguintes configurações:

  • o perfil COMPATIBLE selecionado e
  • a versão mínima do TLS definida como 1.0

Suporte à versão do TLS

Um perfil pode restringir indiretamente as versões de TLS que o balanceador de carga pode negociar. Por exemplo, os pacotes de criptografia ativados no perfil RESTRICTED não incluem pacotes de criptografia com suporte para TLS 1.0 ou 1.1. Portanto, a escolha do perfil RESTRICTED proíbe que os clientes usem o TLS 1.0 e 1.1, mesmo que a versão mínima de TLS da política esteja definida como 1.0 ou 1.1.

O Cloud Load Balancing não oferece suporte a versões SSL 3.0 ou anteriores. A tabela a seguir descreve o suporte aos recursos em cada versão de TLS/SSL.

Versão de TLS/SSL Suporte a recursos
TLS 1.3

Todos os perfis, exceto o FIPS_202205 oferecem suporte aos seguintes pacotes de criptografia TLS 1.3:

  • TLS_AES_128_GCM_SHA256
  • TLS_AES_256_GCM_SHA384
  • TLS_CHACHA20_POLY1305_SHA256

O perfil FIPS_202205 oferece suporte aos dois pacotes de criptografia TLS 1.3 a seguir:

  • TLS_AES_128_GCM_SHA256
  • TLS_AES_256_GCM_SHA384
TLS 1.2 e versões anteriores O perfil usado pela política de SSL controla quais pacotes de criptografia são usados com o TLS 1.2 e versões anteriores.
SSL 3.0 ou anterior Não é compatível com balanceadores de carga que usam políticas de SSL.

Pacotes de criptografia para TLS 1.2 e versões anteriores

A tabela a seguir mostra os pacotes de criptografia para TLS 1.2 e versões anteriores que estão incluídos em cada perfil predefinido. Ao criar uma política de SSL que usa o perfil CUSTOM, é possível selecionar esses pacotes de criptografia individualmente. As políticas de SSL que usam o perfil CUSTOM precisam incluir pelo menos um pacote de criptografia da lista a seguir.

Valor de IANA Recurso 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

Detalhes do perfil FIPS_202205

O perfil FIPS_202205 restringe o balanceador de carga para usar um conjunto de recursos TLS que foi criado para ser compatível com o padrão FIPS 140-3. Quando uma política de SSL usa esse perfil, o balanceador de carga oferece suporte ao TLS 1.2 ou 1.3, com as seguintes restrições:

  • Se a conexão TLS usar o TLS 1.2, somente os seguintes pacotes de criptografia serão permitidos:

    • 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
  • Se a conexão TLS usar o TLS 1.3, somente os seguintes pacotes de criptografia serão permitidos:

    • TLS_AES_128_GCM_SHA256
    • TLS_AES_256_GCM_SHA384
  • Somente P-256 ou P-384 são permitidos para o contrato de chave.

  • Somente as seguintes assinaturas digitais de certificado do balanceador de carga são permitidas:

    • PKCS#1/PSS com SHA-256, SHA-384 ou SHA-512
    • ECDSA com P-256 ou P-384 e SHA-256 ou SHA-384

Troca de chaves pós-quântica

A troca de chaves pós-quântica protege contra determinadas ameaças à segurança TLS representadas pela tecnologia de computação quântica. Com o tempo, vamos ativá-la por padrão nos Google Cloud balanceadores de carga. A configuração de troca de chaves pós-quântica permite ativá-la mais cedo, e recomendamos que você faça isso.

A forma específica de troca de chaves pós-quântica com suporte para Google Cloud balanceadores de carga é X25519MLKEM768, um híbrido de algoritmos criptográficos clássicos e pós-quânticos.

É possível ativar a troca de chaves X25519MLKEM768 em todos os balanceadores de carga que oferecem suporte a políticas de SSL.

Ao ativar a troca de chaves pós-quântica, considere o seguinte comportamento:

  • Quando a troca de chaves pós-quântica está ativada, o balanceador de carga usa a troca de chaves X25519MLKEM768 ao se conectar a clientes que anunciam suporte para TLS 1.3 e X25519MLKEM768. As conexões com clientes que não oferecem suporte ao TLS 1.3 ou X25519MLKEM768 não são afetadas.

  • A troca de chaves pós-quântica é compatível apenas com conexões TLS de front-end, ou seja, para conexões entre o cliente e o balanceador de carga.

  • A troca de chaves pós-quântica pode ser ativada com qualquer um dos perfis de política de SSL e qualquer configuração mínima de versão do TLS.

Modos de troca de chaves pós-quântica

A configuração de troca de chaves pós-quântica permite especificar uma das seguintes opções:

  • ENABLED. O balanceador de carga usa a troca de chaves X25519MLKEM768 com clientes que anunciam suporte a ela.

  • DEFAULT. O balanceador de carga não permite a troca de chaves X25519MLKEM768 até outubro de 2026. Esse é o comportamento padrão se nenhuma política de SSL estiver anexada.

  • DEFERRED. O balanceador de carga não permite a troca de chaves X25519MLKEM768 até outubro de 2027.

O cronograma a seguir mostra o lançamento planejado do suporte à troca de chaves pós-quântica para balanceadores de carga.

Cronograma Status da troca de chaves pós-quântica
Agora Desativado por padrão, ativado apenas quando definido como ENABLED
Depois de outubro de 2026 Ativado por padrão, desativado quando definido como DEFERRED
Depois de outubro de 2027 Sempre ativado

Para saber mais sobre como criar uma política de SSL com troca de chaves pós-quântica, consulte Criar políticas de SSL.

Limitações

  • A desativação de versões ou criptografias específicas do SSL pode impedir que alguns clientes mais antigos se conectem ao seu proxy com HTTPS ou SSL. Desativar uma seleção suficientemente ampla de criptografias no perfil CUSTOM pode impedir todos os clientes de negociar o HTTPS.

  • Um certificado SSL associado ao seu balanceador de carga usa uma assinatura digital ECDSA ou RSA. Os perfis predefinidos são compatíveis com ambos os tipos de assinaturas de certificados. Um perfil personalizado precisa permitir criptografias compatíveis com a assinatura digital usada pelos certificados do balanceador de carga.

A seguir