Udostępnij za pośrednictwem


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 marcu 2025 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

Od 1 marca 2025 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. Dla istniejącej pamięci podręcznej nie można ustawić wartości MinimumTLSVersion na 1.0 lub 1.1.
  • Faza 2. Usługa Azure Cache for Redis przestaje obsługiwać protokoły TLS 1.1 i TLS 1.0 od 1 marca 2025 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 pozostaje dostępna podczas aktualizowania parametru MinimumTLSVersion 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 można tworzyć nowych pamięci podręcznych z minimalną wersją protokołu TLS ustawioną na 1.0 lub 1.1 i nie można ustawić wartości MinimumTLSVersion 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 łączą się 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.
Od 1 marca 2025 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 w tym momencie.

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.

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