Zákaz používání protokolu TLS 1.0 a 1.1 ve službě Azure Cache for Redis

Azure Cache for Redis se v listopadu 2024 přesouvá směrem k výhradnímu použití protokolu TLS (Transport Layer Security) verze 1.2 nebo novější. Protokoly TLS verze 1.0 a 1.1 jsou známé jako náchylné k útokům, jako je BEAST a POODLE, a mají další slabiny běžných ohrožení zabezpečení a ohrožení zabezpečení (CVE).

Tls verze 1.0 a 1.1 také nepodporují moderní metody šifrování a šifrovací sady doporučené standardy dodržování předpisů PCI (Payment Card Industry). Tento blog zabezpečení PROTOKOLU TLS podrobněji vysvětluje některá z těchto ohrožení zabezpečení.

Důležité

1. listopadu 2024 se vynutí požadavek TLS 1.2.

Důležité

Obsah vyřazení protokolu TLS 1.0/1.1 v tomto článku se nevztahuje na Azure Cache for Redis Enterprise/Enterprise Flash, protože úrovně Enterprise podporují pouze protokol TLS 1.2.

V rámci tohoto úsilí můžete očekávat následující změny služby Azure Cache for Redis:

  • Fáze 1: Azure Cache for Redis přestane nabízet protokol TLS 1.0/1.1 jako možnost pro nastavení MinimumTLSVersion pro vytvoření nové mezipaměti. Stávající instance mezipaměti se v tuto chvíli neaktualizují. Stále můžete pomocí webu Azure Portal nebo jiných rozhraní API pro správu změnit minimální verzi protokolu TLS na 1.0 nebo 1.1 kvůli zpětné kompatibilitě.
  • Fáze 2: Azure Cache for Redis přestane podporovat protokol TLS 1.1 a TLS 1.0 od 1. listopadu 2024. Po této změně musí vaše aplikace ke komunikaci s mezipamětí použít protokol TLS 1.2 nebo novější. Služba Azure Cache for Redis bude dostupná, zatímco aktualizujeme MinimumTLSVerion pro všechny mezipaměti na verzi 1.2.
Date Popis
Září 2023 Oznámení o vyřazení protokolu TLS 1.0/1.1
1. března 2024 Od 1. března 2024 nebudete moct nastavit minimální verzi protokolu TLS pro žádnou mezipaměť na 1.0 nebo 1.1. Stávající instance mezipaměti se v tuto chvíli neaktualizují.
31. října 2024 Ujistěte se, že se všechny aplikace připojují ke službě Azure Cache for Redis pomocí protokolu TLS 1.2 a minimální verze protokolu TLS v nastavení mezipaměti nastavená na 1.2.
1. listopadu 2024 Minimální verze protokolu TLS pro všechny instance mezipaměti se aktualizuje na verzi 1.2. To znamená, že instance Azure Cache for Redis odmítnou připojení pomocí protokolu TLS 1.0 nebo 1.1.

Důležité

Obsah v tomto článku se nevztahuje na Azure Cache for Redis Enterprise nebo Enterprise Flash, protože úrovně Enterprise podporují pouze protokol TLS 1.2.

V rámci této změny azure Cache for Redis odebere podporu starších šifrovacích sad, které nejsou zabezpečené. Pokud je mezipaměť nakonfigurovaná s minimálním protokolem TLS 1.2, jsou podporované šifrovací sady omezeny na následující sady:

  • TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384
  • TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256

Následující části obsahují pokyny k detekci závislostí na těchto starších verzích protokolu TLS a jejich odebrání z vaší aplikace.

Kontrola, jestli vaše aplikace už vyhovuje předpisům

Zjistíte, jestli vaše aplikace funguje s protokolem TLS 1.2, nastavením hodnoty minimální verze protokolu TLS na tls 1.2 v testovací nebo přípravné mezipaměti a následným spuštěním testů. Nastavení minimální verze protokolu TLS je v rozšířených nastaveních vaší instance mezipaměti na webu Azure Portal. Pokud aplikace po této změně nadále funguje podle očekávání, pak vaše aplikace používá protokol TLS 1.2 nebo novější.

Poznámka:

Když máte mezipaměť otevřenou na portálu, v nabídce prostředků vyberte Upřesnit . Pokud je pro instanci mezipaměti nastavená minimální verze protokolu TLS, je minimální verze protokolu TLS nastavená na tls 1.2. Protokol TLS 1.2 je výchozí hodnota, která je přiřazena instanci mezipaměti, pokud není zvolena žádná explicitní hodnota.

Konfigurace aplikace pro použití protokolu TLS 1.2 nebo novější

Většina aplikací používá klientské knihovny Redis ke zpracování komunikace s jejich mezipamětí. Tady jsou pokyny pro konfiguraci některých oblíbených klientských knihoven v různých programovacích jazycích a architekturách pro použití protokolu TLS 1.2 nebo novější.

.NET

Klienti Redis .NET používají ve výchozím nastavení nejstarší verzi protokolu TLS v rozhraní .NET Framework 4.5.2 nebo starší a používají nejnovější verzi protokolu TLS v rozhraní .NET Framework 4.6 nebo novější. Pokud používáte starší verzi rozhraní .NET Framework, povolte protokol TLS 1.2 ručně:

  • StackExchange.Redis: Nastavte ssl=true a sslProtocols=tls12 v připojovací řetězec.
  • ServiceStack.Redis: Postupujte podle pokynů ServiceStack.Redis a vyžaduje serviceStack.Redis v5.6 minimálně.

.NET Core

Klienti Redis .NET Core mají výchozí verzi protokolu TLS operačního systému, která závisí na samotném operačním systému.

V závislosti na verzi operačního systému a všech opravách, které byly použity, se může platná výchozí verze protokolu TLS lišit. Další informace najdete v tématu Osvědčené postupy pro protokol TLS (Transport Layer Security) s rozhraním .NET Framework.

Pokud ale používáte starý operační systém nebo chcete mít jistotu, doporučujeme nakonfigurovat upřednostňovanou verzi protokolu TLS ručně prostřednictvím klienta.

Java

Klienti Redis Java používají protokol TLS 1.0 v Javě verze 6 nebo starší. Jedis, Lettuce a Redisson se nemůžou připojit ke službě Azure Cache for Redis, pokud je v mezipaměti zakázaný protokol TLS 1.0. Upgradujte architekturu Java tak, aby používala nové verze PROTOKOLU TLS.

U Javy 7 klienti Redis ve výchozím nastavení nepoužívají protokol TLS 1.2, ale dají se pro něj nakonfigurovat. Jedis například umožňuje zadat základní nastavení protokolu TLS pomocí následujícího fragmentu kódu:

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

Klienti Lettuce a Redisson zatím nepodporují zadávání verze protokolu TLS. Přeruší se, pokud mezipaměť přijímá pouze připojení TLS 1.2. Opravy těchto klientů se kontrolují, proto u těchto balíčků zkontrolujte aktualizovanou verzi s touto podporou.

V Javě 8 se ve výchozím nastavení používá protokol TLS 1.2 a ve většině případů by neměl vyžadovat aktualizace konfigurace klienta. Pokud chcete být v bezpečí, otestujte aplikaci.

Od Javy 17 se ve výchozím nastavení používá protokol TLS 1.3.

Node.js

Node Redis i ioredis podporují protokol TLS 1.2 i 1.3.

PHP

  • Verze starší než PHP 7: Predis podporuje pouze protokol TLS 1.0. Tyto verze nefungují s protokolem TLS 1.2; Musíte upgradovat na použití protokolu TLS 1.2.

  • PHP 7.0 až PHP 7.2.1: Predis ve výchozím nastavení používá pouze tls 1.0 nebo 1.1. K použití protokolu TLS 1.2 můžete použít následující alternativní řešení. Při vytváření instance klienta zadejte protokol TLS 1.2:

    $redis=newPredis\Client([
        'scheme'=>'tls',
        'host'=>'host',
        'port'=>6380,
        'password'=>'password',
        'ssl'=>[
            'crypto_type'=>STREAM_CRYPTO_METHOD_TLSv1_2_CLIENT,
        ],
    ]);
    
  • PHP 7.3 a novější verze: Predis používá nejnovější verzi protokolu TLS.

PhpRedis

PhpRedis nepodporuje tls v žádné verzi PHP.

Python

Redis-py ve výchozím nastavení používá protokol TLS 1.2.

GO

Redigo ve výchozím nastavení používá protokol TLS 1.2.

Další informace