Sdílet prostřednictvím


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 dubnu 2025 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é

Od 1. dubna 2025 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 nebo novější.

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í. Pro existující mezipaměť nemůžete nastavit Hodnotu MinimumTLSVersion na 1.0 nebo 1.1.
  • Fáze 2: Azure Cache for Redis přestane podporovat protokol TLS 1.1 a TLS 1.0 od 1. března 2025. 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 zůstává dostupná, zatímco aktualizujeme MinimumTLSVersion 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 nemůžete vytvářet nové mezipaměti s minimální verzí protokolu TLS nastavenou na 1.0 nebo 1.1 a pro stávající mezipaměť nemůžete nastavit minimální hodnotu MinimumTLSVersion na 1.0 nebo 1.1. Minimální verze protokolu TLS se v tuto chvíli neaktualizuje automaticky pro existující mezipaměti.
pondělí 31. března 2025 Ujistěte se, že se všechny vaše 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 hodnotu 1.2.
Od 1. dubna 2025 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 v tuto chvíli odmítnou připojení pomocí protokolu TLS 1.0 nebo 1.1.

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 verzí PROTOKOLU TLS podporovaných službou Azure Cache for Redis

V rozšířených nastaveních mezipaměti na webu Azure Portal můžete ověřit, že minimální hodnota verze protokolu TLS je nastavená na hodnotu TLS 1.2. Pokud se jedná o jinou hodnotu než TLS 1.2, ujistěte se, že podle pokynů nakonfigurujete službu Azure Cache for Redis tak, aby používala protokol TLS 1.2. Pokud je hodnota TLS 1.2 a klientská aplikace se může připojit bez chyb, není potřeba žádná akce.

Tento skript PowerShellu můžete také použít k ověření minimální verze protokolu TLS podporované koncovým bodem Azure Cache for Redis. Pokud je instance Redis vložená do virtuální sítě, musíte tento skript spustit z virtuálního počítače ve virtuální síti, který má přístup ke koncovému bodu Azure Cache for Redis. Pokud se zobrazí výsledek Tls Enabled a/nebo Tls 11 Enabled, ujistěte se, že podle pokynů nakonfigurujete Službu Azure Cache for Redis tak, aby používala protokol TLS 1.2. Pokud se výsledek zobrazí jenom Tls12 Enabled a vaše klientská aplikace se může připojit bez chyb, není potřeba žádná akce.

    param(
    [Parameter(Mandatory=$true)]
    [string]$redisCacheName,
    [Parameter(Mandatory=$false)]
    [string]$dnsSuffix = ".redis.cache.windows.net",
    [Parameter(Mandatory=$false)]
    [int]$connectionPort = 6380,
    [Parameter(Mandatory=$false)]
    [int]$timeoutMS = 2000
    )
    $redisEndpoint = "$redisCacheName$dnsSuffix"
    $protocols = @(
        [System.Security.Authentication.SslProtocols]::Tls,
        [System.Security.Authentication.SslProtocols]::Tls11,
        [System.Security.Authentication.SslProtocols]::Tls12
    )
    $protocols | % {
        $ver = $_
        $tcpClientSocket = New-Object Net.Sockets.TcpClient($redisEndpoint, $connectionPort )
        if(!$tcpClientSocket)
        {
            Write-Error "$ver- Error Opening Connection: $port on $computername Unreachable"
            exit 1;
        }
        else
        {
            $tcpstream = $tcpClientSocket.GetStream()
            $sslStream = New-Object System.Net.Security.SslStream($tcpstream,$false)
            $sslStream.ReadTimeout = $timeoutMS
            $sslStream.WriteTimeout = $timeoutMS
            try
            {
                $sslStream.AuthenticateAsClient($redisEndpoint, $null, $ver, $false)
                Write-Host "$ver Enabled"
            }
            catch [System.IO.IOException]
            {
                $null = $_
                #Write-Host "$ver Disabled"
            }
            catch
            {
                $null = $_
                #Write-Error "Unexpected exception $_"
            }
        }
    }

Konfigurace služby Azure Cache for Redis na použití protokolu TLS 1.2

Protokol TLS 1.2 v mezipaměti můžete nakonfigurovat nastavením hodnoty Minimální verze protokolu TLS na TLS 1.2 v nabídce Rozšířená nastavení mezipaměti na webu Azure Portal.

  1. Pokud chcete nakonfigurovat mezipaměť tak, aby používala protokol TLS 1.2, vyberte nejprve v nabídce Prostředek mezipaměti rozšířená nastavení .

  2. V pracovním podokně vyberte verzi 1.2 v části Minimální verze protokolu TLS. Potom vyberte Uložit.

Snímek obrazovky znázorňující nastavení protokolu TLS 1.2 pro mezipaměť na webu Azure Portal

Stejný postup můžete provést také pomocí PowerShellu. Před spuštěním příkazu musíte mít nainstalovaný modul Az.RedisCache.

   Set-AzRedisCache -Name <YourRedisCacheName> -MinimumTlsVersion "1.2"

Pokud chcete nastavit verzi protokolu TLS prostřednictvím rozhraní příkazového řádku, příkaz --minimum-tls-version je k dispozici pouze při vytváření Redis a změna minimum-tls-version v existující instanci Redis není podporována.

Poznámka:

Během migrace na protokol TLS 1.2 nebo novější by měla být dostupná služba Azure Cache for Redis.

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

Zjistíte, jestli vaše aplikace funguje s protokolem TLS 1.2, nastavením minimální hodnoty verze protokolu TLS na tls 1.2, jak je vysvětleno výše, v testovací nebo přípravné mezipaměti a následném spuštění testů. Pokud aplikace po této změně bude fungovat podle očekávání, bude pravděpodobně kompatibilní. Je možné, že budete muset nakonfigurovat klientskou knihovnu Redis používanou vaší aplikací, aby se konkrétně mohla protokol TLS 1.2 připojit ke službě Azure Cache for Redis.

Konfigurace aplikace klienta na používání protokolu TLS 1.2

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.

.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 použitých opravách se může efektivní 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.