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 pelo 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 exclusivamente TLS 1.3.

As políticas de SSL são objetos de configuração Google Cloud 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 ou SSL de destino. Uma política de SSL especifica um perfil de recursos do TLS e uma versão mínima do TLS.

Cada perfil predefinido de uma política de SSL especifica um conjunto de recursos do 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 o suporte para conjuntos 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 ou SSL de destino é opcional. Cada proxy HTTPS ou SSL de destino pode ser associado a apenas uma política de SSL. É possível associar a mesma política de SSL a vários proxies HTTPS ou SSL de destino, desde que a política e o proxy de destino usem escopos idênticos. As mudanças 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 (Connection-1 na figura). As políticas de SSL não afetam as conexões entre o balanceador de carga e os back-ends (Connection-2 na figura).

Criar uma política de SSL

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

  • um perfil, que especifica um conjunto de recursos do TLS que o balanceador de carga está configurado para oferecer suporte; e
  • uma versão mínima do TLS, que restringe ainda mais o balanceador de carga para usar apenas versões específicas do TLS.

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

Perfis predefinidos

Google Cloud oferece os seguintes perfis predefinidos.

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

Perfil personalizado

Os perfis COMPATIBLE, MODERN e RESTRICTED diferem no conjunto de conjuntos 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 conjuntos de criptografia que o balanceador de carga oferece suporte para TLS 1.2 e versões anteriores. Isso não afeta a forma 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 ou 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;
  • a versão mínima de TLS definida como 1.0

Suporte para versões do TLS

Um perfil pode restringir indiretamente as versões de TLS que o balanceador de carga pode negociar. Por exemplo, os conjuntos de criptografia ativados no perfil RESTRICTED não incluem conjuntos de criptografia compatíveis com TLS 1.0 ou 1.1. Portanto, escolher o 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 de SSL esteja definida como 1.0 ou 1.1.

O Cloud Load Balancing não é compatível com 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, são compatíveis com os 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 é compatível com os 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 conjuntos 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 conjuntos de criptografia para TLS 1.2 e versões anteriores incluídos em cada perfil predefinido. Ao criar uma política de SSL que usa o perfil CUSTOM, é possível selecionar esses conjuntos 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 a usar um conjunto de recursos de TLS que devem ser compatíveis com o padrão FIPS 140-3. Quando uma política de SSL usa esse perfil, o balanceador de carga é compatível com TLS 1.2 ou 1.3, com as seguintes restrições:

  • Se a conexão TLS usar o TLS 1.2, somente os seguintes conjuntos 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, apenas os seguintes conjuntos 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 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

Atualizações de recursos

Reservamo-nos o direito de atualizar o conjunto de recursos ativados nos perfis COMPATIBLE, MODERN e RESTRICTED, bem como quais recursos são configuráveis em um perfil CUSTOM. Fazemos isso à medida que deixamos de oferecer suporte para recursos TLS mais antigos e adicionamos suporte aos mais novos.

Quando adicionamos recursos que melhoram as capacidades do TLS, podemos ativá-los imediatamente nos perfis COMPATIBLE, MODERN e RESTRICTED para que as políticas de SSL que selecionam esses perfis possam usar os recursos adicionados. No entanto, se sua política selecionar o perfil CUSTOM, você precisará modificar as configurações da política para usar os recursos adicionados.

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