Share via


Remover o TLS 1.0 e 1.1 de utilização com a Cache do Azure para Redis

Para atender à pressão de todo o setor em direção ao uso exclusivo do Transport Layer Security (TLS) versão 1.2 ou posterior, o Cache Redis do Azure está se movendo para exigir o uso do TLS 1.2 em novembro de 2024. As versões 1.0 e 1.1 do TLS são conhecidas por serem suscetíveis a ataques como BEAST e POODLE, e por terem outros pontos fracos de Vulnerabilidades e Exposições Comuns (CVE).

As versões 1.0 e 1.1 do TLS também não suportam os modernos métodos de criptografia e pacotes de codificação recomendados pelos padrões de conformidade PCI (Payment Card Industry). Este blog de segurança TLS explica algumas dessas vulnerabilidades com mais detalhes.

Importante

Em 1º de novembro de 2024, o requisito TLS 1.2 será aplicado.

Importante

O conteúdo de desativação do TLS 1.0/1.1 neste artigo não se aplica ao Cache do Azure para Redis Enterprise/Enterprise Flash porque as camadas Enterprise oferecem suporte apenas ao TLS 1.2.

Como parte desse esforço, você pode esperar as seguintes alterações no Cache do Azure para Redis:

  • Fase 1: O Cache Redis do Azure para de oferecer TLS 1.0/1.1 como uma opção para a configuração MinimumTLSVersion para novas criações de cache. As instâncias de cache existentes não serão atualizadas neste momento. Você ainda pode usar o portal do Azure ou outras APIs de gerenciamento para alterar a versão mínima do TLS para 1.0 ou 1.1 para compatibilidade com versões anteriores.
  • Fase 2: O Cache Redis do Azure deixa de oferecer suporte a TLS 1.1 e TLS 1.0 a partir de 1º de novembro de 2024. Após essa alteração, seu aplicativo deve usar o TLS 1.2 ou posterior para se comunicar com seu cache. O serviço Cache do Azure para Redis estará disponível enquanto atualizamos o MinimumTLSVerion para todos os caches para 1.2.
Date Description
Setembro de 2023 Anúncio de aposentadoria do TLS 1.0/1.1
1 de março de 2024 A partir de 1º de março de 2024, você não poderá criar novos caches com a versão Minimum TLS definida como 1.0 ou 1.1 e não poderá definir a versão Minimium TLS como 1.0 ou 1.1 para o cache existente. A versão mínima do TLS não será atualizada automaticamente para caches existentes neste momento.
31 de outubro de 2024 Verifique se todos os seus aplicativos estão se conectando ao Cache Redis do Azure usando TLS 1.2 e a versão mínima do TLS nas configurações de cache está definida como 1.2
1 de novembro de 2024 A versão mínima do TLS para todas as instâncias de cache é atualizada para 1.2. Isso significa que as instâncias do Cache do Azure para Redis rejeitarão conexões usando TLS 1.0 ou 1.1.

Importante

O conteúdo deste artigo não se aplica ao Cache do Azure para Redis Enterprise/Enterprise Flash porque as camadas Enterprise suportam apenas TLS 1.2.

Como parte dessa alteração, o Cache Redis do Azure remove o suporte para pacotes de codificação mais antigos que não são seguros. Os pacotes de codificação suportados são restritos aos seguintes pacotes quando o cache é configurado com um mínimo de TLS 1.2:

  • TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384
  • TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256

As seções a seguir fornecem orientação sobre como detetar dependências nessas versões anteriores do TLS e removê-las do seu aplicativo.

Verifique se o seu aplicativo já está em conformidade

Você pode descobrir se seu aplicativo funciona com TLS 1.2 definindo o valor de versão mínima do TLS como TLS 1.2 em um cache de teste ou preparo e, em seguida, executando testes. A configuração Versão mínima do TLS está nas Configurações avançadas da sua instância de cache no portal do Azure. Se o aplicativo continuar a funcionar como esperado após essa alteração, seu aplicativo está usando o TLS 1.2 ou mais recente.

Nota

Com o cache aberto no portal, selecione Avançado no menu de recursos. Se a versão Mínima de TLS para sua instância de cache estiver definida como Padrão, sua versão Mínima de TLS será definida como TLS 1.2. TLS 1.2 é o valor padrão atribuído à sua instância de cache quando nenhum valor explícito é escolhido.

Configure seu aplicativo para usar TLS 1.2 ou posterior

A maioria dos aplicativos usa bibliotecas de cliente Redis para lidar com a comunicação com seus caches. Aqui estão instruções para configurar algumas das bibliotecas de cliente populares, em várias linguagens de programação e estruturas, para usar TLS 1.2 ou posterior.

.NET

Os clientes Redis .NET usam a versão mais antiga do TLS por padrão no .NET Framework 4.5.2 ou anterior e usam a versão mais recente do TLS no .NET Framework 4.6 ou posterior. Se você estiver usando uma versão mais antiga do .NET Framework, habilite o TLS 1.2 manualmente:

  • StackExchange.Redis: Definido ssl=true e sslProtocols=tls12 na cadeia de conexão.
  • ServiceStack.Redis: Siga as instruções ServiceStack.Redis e requer ServiceStack.Redis v5.6 no mínimo.

.NET Core

Os clientes Redis .NET Core usam como padrão a versão TLS padrão do sistema operacional, que depende do próprio sistema operacional.

Dependendo da versão do sistema operacional e de quaisquer patches que tenham sido aplicados, a versão padrão efetiva do TLS pode variar. Para obter mais informações, veja Melhores práticas do Transport Layer Security (TLS) com o .NET Framework.

No entanto, se você estiver usando um sistema operacional antigo ou apenas quiser ter certeza, recomendamos configurar a versão TLS preferida manualmente através do cliente.

Java

Os clientes Redis Java usam TLS 1.0 em Java versão 6 ou anterior. Jedis, Lettuce e Redisson não podem se conectar ao Cache Redis do Azure se o TLS 1.0 estiver desabilitado no cache. Atualize seu framework Java para usar novas versões TLS.

Para Java 7, os clientes Redis não usam TLS 1.2 por padrão, mas podem ser configurados para ele. Por exemplo, Jedis permite que você especifique as configurações subjacentes de TLS com o seguinte trecho de código:

SSLSocketFactory sslSocketFactory = (SSLSocketFactory) SSLSocketFactory.getDefault();
SSLParameters sslParameters = new SSLParameters();
sslParameters.setEndpointIdentificationAlgorithm("HTTPS");
sslParameters.setProtocols(new String[]{"TLSv1.2"});
 
URI uri = URI.create("rediss://host:port");
JedisShardInfo shardInfo = new JedisShardInfo(uri, sslSocketFactory, sslParameters, null);
 
shardInfo.setPassword("cachePassword");
 
Jedis jedis = new Jedis(shardInfo);

Os clientes Lettuce e Redisson ainda não suportam a especificação da versão TLS. Eles quebram se o cache aceitar apenas conexões TLS 1.2. As correções para esses clientes estão sendo revisadas, portanto, verifique com esses pacotes uma versão atualizada com esse suporte.

No Java 8, o TLS 1.2 é usado por padrão e não deve exigir atualizações na configuração do cliente na maioria dos casos. Para estar seguro, teste a sua aplicação.

A partir do Java 17, o TLS 1.3 é usado por padrão.

Node.js

O nó Redis e ioredis suportam TLS 1.2 e 1.3.

PHP

  • Versões anteriores ao PHP 7: Predis suporta apenas TLS 1.0. Essas versões não funcionam com TLS 1.2; você deve atualizar para usar o TLS 1.2.

  • PHP 7.0 a PHP 7.2.1: Predis usa apenas TLS 1.0 ou 1.1 por padrão. Você pode usar a seguinte solução alternativa para usar o TLS 1.2. Especifique TLS 1.2 ao criar a instância do cliente:

    $redis=newPredis\Client([
        'scheme'=>'tls',
        'host'=>'host',
        'port'=>6380,
        'password'=>'password',
        'ssl'=>[
            'crypto_type'=>STREAM_CRYPTO_METHOD_TLSv1_2_CLIENT,
        ],
    ]);
    
  • PHP 7.3 e versões posteriores: Predis usa a versão mais recente do TLS.

PhpRedis

O PhpRedis não suporta TLS em nenhuma versão do PHP.

Python

Redis-py usa TLS 1.2 por padrão.

GO

O Redigo usa TLS 1.2 por padrão.

Informações adicionais