Políticas de SSL para protocolos SSL e TLS

Neste documento, o termo SSL se refere aos protocolos SSL (Secure Sockets Layer) e TLS (Transport Layer Security).

As políticas de SSL especificam o conjunto de recursos de SSL que os balanceadores de carga do Google Cloud usam ao negociar SSL com clientes. Por exemplo, é possível usar uma política de SSL para definir a versão mínima do TLS e os recursos que todos os clientes precisam oferecer suporte para enviar tráfego ao 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

Por padrão, esses balanceadores de carga usam um conjunto de recursos SSL que oferecem boa segurança e ampla compatibilidade. Alguns aplicativos exigem mais controle sobre quais versões de SSL e criptografias são usadas nas próprias conexões HTTPS ou SSL. É possível definir políticas de SSL para especificar o conjunto de recursos de SSL que o balanceador de carga usa ao negociar SSL com clientes.

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 ilustração). As políticas de SSL não afetam as conexões entre o balanceador de carga e os back-ends (Connection-2).

Como definir uma política de SSL

Para definir uma política de SSL, é preciso especificar uma versão de TLS mínima e um perfil. O perfil seleciona um conjunto de recursos SSL a serem ativados no balanceador de carga.

Três perfis gerenciados pelo Google pré-configurados permitem especificar o nível de compatibilidade apropriado para o aplicativo. Os três perfis pré-configurados são os seguintes:

  • COMPATÍVEL: permite que o conjunto mais amplo de clientes negociem SSL com o balanceador de carga, inclusive aqueles que aceitam apenas recursos SSL desatualizados.
  • MODERNO: compatível com um amplo conjunto de recursos de SSL, permitindo que clientes modernos negociem SSL.
  • RESTRITO: compatível com um conjunto reduzido de recursos de SSL, destinados a cumprir requisitos de conformidade mais rigorosos.

Um quarto perfil PERSONALIZADO permite selecionar recursos SSL individualmente.

A política de SSL também especifica a versão mínima do protocolo TLS que os clientes podem usar para estabelecer uma conexão.

Um perfil pode restringir indiretamente as versões de TLS que o balanceador de carga pode negociar. Por exemplo, as criptografias ativadas no perfil RESTRITO têm suporte apenas para o TLS 1.2. Portanto, a escolha do perfil RESTRITO 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 permita.

Se você não escolher um dos três perfis pré-configurados ou criar uma política de SSL personalizada, o balanceador de carga usará a política de SSL padrão. A política de SSL padrão é equivalente a uma política de SSL que usa o perfil COMPATÍVEL com uma versão TLS mínima 1.0.

Você pode anexar uma política de SSL a mais de um proxy de destino. Não é possível configurar mais de uma política de SSL para um determinado proxy de destino. As alterações feitas nas políticas de SSL não alteram nem interrompem as conexões atuais do balanceador de carga.

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.0, 1.1 ou 1.2 As configurações nas políticas de SSL que controlam conjuntos de criptografia se aplicam às conexões de cliente.
TLS 1.3 As configurações nas políticas de SSL não controlam a seleção de criptografia. O TLS 1.3 é compatível somente com criptografias TLS_AES_128_GCM_SHA256, TLS_AES_256_GCM_SHA384 e TLS_CHACHA20_POLY1305_SHA256.
QUIC As configurações nas políticas de SSL não controlam a seleção de criptografia.
SSL 3.0 ou anterior Não relevante. Não compatível com o Cloud Load Balancing.

Durante cada handshake de TLS, o cliente indica a versão mais alta do protocolo TLS compatível. O servidor é obrigado a selecionar a versão de protocolo mais alta compatível com o cliente e o servidor e que é permitida pela configuração do servidor. Por exemplo, se um balanceador de carga estiver configurado com a versão mínima do TLS 1.2, um handshake com um cliente moderno compatível com o TLS 1.3 selecionará o TLS 1.3. Um handshake com um cliente anterior compatível apenas com o TLS 1.2 usa o TLS 1.2. Um handshake com um cliente ainda mais antigo compatível apenas com TLS 1.1 falha.

A tabela a seguir lista os recursos de política de SSL disponíveis para cada perfil pré-configurado. Todos os recursos controlam se conjuntos de criptografia específicos podem ser usados e se aplicam apenas a conexões de clientes que usam o TLS versão 1.2 ou anterior, não a clientes que usam o QUIC.

Valor de IANA Recurso No perfil COMPATÍVEL No perfil MODERNO No perfil RESTRITO
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

Atualizações de recursos

Reservamo-nos o direito de atualizar o conjunto de recursos ativados nos perfis COMPATÍVEL, MODERNO e RESTRITO, bem como quais recursos são configuráveis em um perfil PERSONALIZADO. Fazemos isso à medida que deixarmos de oferecer suporte para recursos SSL mais antigos e adicionarmos suporte aos mais novos.

Quando adicionamos recursos que melhoram os recursos SSL, podemos ativá-los imediatamente nos perfis COMPATÍVEL, MODERNO e RESTRITO para que as políticas de SSL que selecionam esses perfis possam usar os novos recursos. No entanto, se sua política selecionar o perfil PERSONALIZADO, 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 PERSONALIZADO 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.

  • Os recursos que controlam os conjuntos de criptografia aplicam-se apenas às conexões de clientes que utilizam o TLS versão 1.2 e anteriores. Eles não controlam a seleção de criptografia em conexões que usam QUIC ou TLS 1.3.

A seguir