Wycofanie z użycia protokołu TLS w wersji 1.0 i 1.1 w usłudze Azure Cache for Redis

Aby spełnić wymagania branżowe dotyczące wyłącznego użycia protokołu Transport Layer Security (TLS) w wersji 1.2 lub nowszej, usługa Azure Cache for Redis przechodzi w kierunku wymagania użycia protokołu TLS 1.2 w listopadzie 2024 r. Protokoły TLS w wersji 1.0 i 1.1 są znane jako podatne na ataki, takie jak BEAST i POODLE, oraz inne słabe luki w zabezpieczeniach i ekspozycji (CVE).

Protokoły TLS w wersji 1.0 i 1.1 również nie obsługują nowoczesnych metod szyfrowania i zestawów szyfrowania zalecanych przez standardy zgodności z kartami payment Card Industry (PCI). W tym blogu dotyczącym zabezpieczeń protokołu TLS bardziej szczegółowo opisano niektóre z tych luk w zabezpieczeniach.

Ważne

1 listopada 2024 r. zostanie wymuszone wymaganie protokołu TLS 1.2.

Ważne

Zawartość wycofania protokołu TLS 1.0/1.1 w tym artykule nie ma zastosowania do usługi Azure Cache for Redis Enterprise/Enterprise Flash, ponieważ warstwy Enterprise obsługują tylko protokół TLS 1.2.

W ramach tego nakładu pracy można oczekiwać następujących zmian w usłudze Azure Cache for Redis:

  • Faza 1. Usługa Azure Cache for Redis przestaje oferować protokół TLS 1.0/1.1 jako opcję ustawienia MinimumTLSVersion dla tworzenia nowej pamięci podręcznej. Istniejące wystąpienia pamięci podręcznej nie zostaną zaktualizowane w tym momencie. Nadal możesz użyć witryny Azure Portal lub innych interfejsów API zarządzania, aby zmienić minimalną wersję protokołu TLS na 1.0 lub 1.1 w celu zapewnienia zgodności z poprzednimi wersjami.
  • Faza 2. Usługa Azure Cache for Redis przestaje obsługiwać protokoły TLS 1.1 i TLS 1.0 od 1 listopada 2024 r. Po tej zmianie aplikacja musi używać protokołu TLS 1.2 lub nowszego do komunikowania się z pamięcią podręczną. Usługa Azure Cache for Redis będzie dostępna podczas aktualizowania minimumTLSVerion dla wszystkich pamięci podręcznych do wersji 1.2.
Data opis
Wrzesień 2023 Ogłoszenie wycofania protokołu TLS 1.0/1.1
1 marca 2024 r. Od 1 marca 2024 r. nie będzie można tworzyć nowych pamięci podręcznych z minimalną wersją protokołu TLS ustawioną na 1.0 lub 1.1 i nie będzie można ustawić wersji protokołu TLS Minimium na 1.0 lub 1.1 dla istniejącej pamięci podręcznej. Minimalna wersja protokołu TLS nie zostanie zaktualizowana automatycznie dla istniejących pamięci podręcznych w tym momencie.
31 października 2024 r. Upewnij się, że wszystkie aplikacje nawiązują połączenie z usługą Azure Cache for Redis przy użyciu protokołu TLS 1.2 i Minimalna wersja protokołu TLS w ustawieniach pamięci podręcznej jest ustawiona na 1.2
1 listopada 2024 r. Minimalna wersja protokołu TLS dla wszystkich wystąpień pamięci podręcznej jest aktualizowana do wersji 1.2. Oznacza to, że wystąpienia usługi Azure Cache for Redis odrzucają połączenia przy użyciu protokołu TLS 1.0 lub 1.1.

Ważne

Zawartość tego artykułu nie dotyczy usługi Azure Cache for Redis Enterprise/Enterprise Flash, ponieważ warstwy Enterprise obsługują tylko protokół TLS 1.2.

W ramach tej zmiany usługa Azure Cache for Redis usuwa obsługę starszych zestawów szyfrowania, które nie są bezpieczne. Obsługiwane zestawy szyfrowania są ograniczone do następujących zestawów, gdy pamięć podręczna jest skonfigurowana z co najmniej protokołem TLS 1.2:

  • TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384
  • TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256

W poniższych sekcjach przedstawiono wskazówki dotyczące wykrywania zależności we wcześniejszych wersjach protokołu TLS i usuwania ich z aplikacji.

Sprawdzanie, czy aplikacja jest już zgodna

Możesz sprawdzić, czy aplikacja współpracuje z protokołem TLS 1.2, ustawiając wartość Minimalna wersja protokołu TLS na TLS 1.2 w testowej lub przejściowej pamięci podręcznej, a następnie uruchamiając testy. Ustawienie Minimalna wersja protokołu TLS znajduje się w ustawieniach zaawansowanych wystąpienia pamięci podręcznej w witrynie Azure Portal. Jeśli aplikacja nadal działa zgodnie z oczekiwaniami po tej zmianie, aplikacja używa protokołu TLS 1.2 lub nowszego.

Uwaga

Po otwarciu pamięci podręcznej w portalu wybierz pozycję Zaawansowane w menu zasobów. Jeśli minimalna wersja protokołu TLS dla wystąpienia pamięci podręcznej jest ustawiona na Wartość domyślna, minimalna wersja protokołu TLS jest ustawiona na TLS 1.2. Protokół TLS 1.2 jest wartością domyślną przypisaną do wystąpienia pamięci podręcznej, gdy nie zostanie wybrana żadna jawna wartość.

Konfigurowanie aplikacji do używania protokołu TLS 1.2 lub nowszego

Większość aplikacji używa bibliotek klienckich usługi Redis do obsługi komunikacji z pamięciami podręcznymi. Poniżej przedstawiono instrukcje dotyczące konfigurowania niektórych popularnych bibliotek klienckich w różnych językach programowania i strukturach do używania protokołu TLS 1.2 lub nowszego.

.NET

Klienci redis .NET używają domyślnie najwcześniejszej wersji protokołu TLS w programie .NET Framework 4.5.2 lub starszym i używają najnowszej wersji protokołu TLS na platformie .NET Framework 4.6 lub nowszej. Jeśli używasz starszej wersji programu .NET Framework, włącz protokół TLS 1.2 ręcznie:

.NET Core

Klienci redis .NET Core są domyślnie domyślną wersją protokołu TLS systemu operacyjnego, która zależy od samego systemu operacyjnego.

W zależności od wersji systemu operacyjnego i wszelkich zastosowanych poprawek obowiązująca domyślna wersja protokołu TLS może się różnić. Aby uzyskać więcej informacji, zobacz Transport Layer Security (TLS) — najlepsze rozwiązania dotyczące środowiska .NET Framework.

Jeśli jednak używasz starego systemu operacyjnego lub po prostu chcesz mieć pewność, zalecamy ręczne skonfigurowanie preferowanej wersji protokołu TLS za pośrednictwem klienta.

Java

Klienci języka Java usługi Redis używają protokołu TLS 1.0 w środowisku Java w wersji 6 lub starszej. Jedis, Lettuce i Redisson nie mogą nawiązać połączenia z usługą Azure Cache for Redis, jeśli protokół TLS 1.0 jest wyłączony w pamięci podręcznej. Uaktualnij platformę Java, aby używać nowych wersji protokołu TLS.

W przypadku języka Java 7 klienci redis nie używają domyślnie protokołu TLS 1.2, ale można go skonfigurować. Na przykład usługa Jedis umożliwia określenie podstawowych ustawień protokołu TLS przy użyciu następującego fragmentu kodu:

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);

Klienci Lettuce i Redisson nie obsługują jeszcze określania wersji protokołu TLS. Przerywają one, jeśli pamięć podręczna akceptuje tylko połączenia TLS 1.2. Poprawki dla tych klientów są przeglądane, więc zapoznaj się z tymi pakietami, aby uzyskać zaktualizowaną wersję z tą obsługą.

W środowisku Java 8 protokół TLS 1.2 jest używany domyślnie i nie powinien wymagać aktualizacji konfiguracji klienta w większości przypadków. Aby zapewnić bezpieczeństwo, przetestuj aplikację.

Od wersji Java 17 protokół TLS 1.3 jest domyślnie używany.

Node.js

Usługi Node Redis i ioredis obsługują protokoły TLS 1.2 i 1.3.

PHP

  • Wersje wcześniejsze niż PHP 7: Usługa Predis obsługuje tylko protokół TLS 1.0. Te wersje nie działają z protokołem TLS 1.2; Należy uaktualnić do korzystania z protokołu TLS 1.2.

  • Php 7.0 do PHP 7.2.1: Usługa Predis domyślnie używa tylko protokołu TLS 1.0 lub 1.1. Aby użyć protokołu TLS 1.2, możesz użyć następującego obejścia. Określ protokół TLS 1.2 podczas tworzenia wystąpienia klienta:

    $redis=newPredis\Client([
        'scheme'=>'tls',
        'host'=>'host',
        'port'=>6380,
        'password'=>'password',
        'ssl'=>[
            'crypto_type'=>STREAM_CRYPTO_METHOD_TLSv1_2_CLIENT,
        ],
    ]);
    
  • Php 7.3 i nowsze wersje: usługa Predis używa najnowszej wersji protokołu TLS.

PhpRedis

Język PhpRedis nie obsługuje protokołu TLS w żadnej wersji języka PHP.

Python

Usługa Redis-py domyślnie używa protokołu TLS 1.2.

JĘZYK GO

Redigo domyślnie używa protokołu TLS 1.2.

Dodatkowe informacje