Megosztás a következőn keresztül:


A TLS 1.0 és 1.1 használatának eltávolítása az Azure Cache for Redis szolgáltatásban

A Transport Layer Security (TLS) 1.2-es vagy újabb verziójának kizárólagos használatára irányuló iparági szintű leküldés teljesítése érdekében az Azure Cache for Redis 2025 áprilisában a TLS 1.2 használatát követeli meg. A TLS 1.0-s és 1.1-s verzióiról ismert, hogy fogékonyak az olyan támadásokra, mint a BEAST és a POODLE, és más gyakori biztonsági résekkel és kitettségekkel (CVE) is rendelkeznek.

A TLS 1.0-s és 1.1-s verziói szintén nem támogatják a Payment Card Industry (PCI) megfelelőségi szabványai által ajánlott modern titkosítási módszereket és titkosítási csomagokat. Ez a TLS biztonsági blog részletesebben ismerteti a biztonsági rések némelyikét.

Fontos

2025. április 1-jétől a TLS 1.2 követelménye érvényesül.

Fontos

A jelen cikkben szereplő TLS 1.0/1.1-re vonatkozó kivonási tartalom nem vonatkozik az Azure Cache for Redis Enterprise/Enterprise Flash szolgáltatásra, mert a vállalati szintek csak a TLS 1.2-t vagy újabb verziót támogatják.

Ennek a munkának a részeként a következő változásokra számíthat az Azure Cache for Redisben:

  • 1. fázis: Az Azure Cache for Redis nem ajánlja fel a TLS 1.0/1.1-et az új gyorsítótárhoz létrehozott MinimumTLSVersion beállításhoz. A meglévő gyorsítótárpéldányok jelenleg nem frissülnek. A MinimumTLSVersion nem állítható be 1.0-ra vagy 1.1-re a meglévő gyorsítótárhoz.
  • 2. fázis: Az Azure Cache for Redis 2025. április 1-től nem támogatja a TLS 1.1-et és a TLS 1.0-t. A módosítás után az alkalmazásnak TLS 1.2 vagy újabb verziót kell használnia a gyorsítótárral való kommunikációhoz. Az Azure Cache for Redis szolgáltatás továbbra is elérhető marad, miközben az összes gyorsítótár MinimálisTLSVersion-ét 1.2-re frissítjük.
Dátum Leírás
2023. szeptember TLS 1.0/1.1 kivonási közlemény
2024. március 1. 2024. március 1-től nem hozhat létre új gyorsítótárakat az 1.0-s vagy 1.1-es minimális TLS-verzióval, és a MinimumTLSVersion nem állítható be 1.0-ra vagy 1.1-esre a meglévő gyorsítótárhoz. A minimális TLS-verziók jelenleg nem frissülnek automatikusan a meglévő gyorsítótárak esetében.
2025. március 31., hétfő Győződjön meg arról, hogy az összes alkalmazás a TLS 1.2 és a minimális TLS-verzió használatával csatlakozik az Azure Cache for Redishez a gyorsítótár beállításainál 1.2-re van állítva.
2025. április 1-től Az összes gyorsítótárpéldány minimális TLS-verziója 1.2-es verzióra frissül. Ez azt jelenti, hogy az Azure Cache for Redis-példányok jelenleg elutasítják a TLS 1.0 vagy 1.1 használatával létesített kapcsolatokat.

A módosítás részeként az Azure Cache for Redis eltávolítja a nem biztonságos régebbi titkosítási csomagok támogatását. A támogatott titkosítási csomagok a következő csomagokra korlátozódnak, ha a gyorsítótár legalább TLS 1.2-vel van konfigurálva:

  • TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384
  • TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256

A következő szakaszok útmutatást nyújtanak a korábbi TLS-verziók függőségeinek észleléséhez és az alkalmazásból való eltávolításához.

Az Azure Cache for Redis által támogatott TLS-verziók ellenőrzése

Az Azure Portalon a gyorsítótár speciális beállításaiban ellenőrizheti, hogy a minimális TLS-verzióérték TLS 1.2-es értékre van-e állítva. Ha a TLS 1.2-es értékétől eltérő értékről van szó, akkor kövesse az Azure Cache for Redis TLS 1.2 használatára való konfigurálása című szakasz utasításait. Ha az érték TLS 1.2, és az ügyfélalkalmazás hiba nélkül tud csatlakozni, akkor nincs szükség semmilyen intézkedésre.

Ezzel a PowerShell-szkripttel ellenőrizheti az Azure Cache for Redis-végpont által támogatott minimális TLS-verziót is. Ha a Redis-példány virtuális hálózat (VNet) injektálva van, ezt a szkriptet a virtuális hálózaton lévő virtuális gépről kell futtatnia, amely hozzáfér az Azure Cache for Redis-végponthoz. Ha az eredmény megjelenik Tls Enabled és/vagyTls 11 Enabled, akkor kövesse az Azure Cache for Redis TLS 1.2 használatára való konfigurálása című szakasz utasításait. Ha az eredmény csak Tls12 Enabled akkor jelenik meg, és az ügyfélalkalmazás hiba nélkül tud csatlakozni, akkor nincs szükség műveletre.

    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 $_"
            }
        }
    }

Az Azure Cache for Redis konfigurálása a TLS 1.2 használatához

A TLS 1.2-t a gyorsítótáron úgy konfigurálhatja, hogy a TLS minimális verzióértékét TLS 1.2 értékre állítja a gyorsítótár speciális beállításai között az Azure Portalon.

  1. A gyorsítótár TLS 1.2 használatára való konfigurálásához először válassza a Speciális beállítások lehetőséget a gyorsítótár Erőforrás menüjében.

  2. Válassza az 1.2 elemet a munkaablak Minimális TLS-verzió részében. Ezt követően válassza a Mentés lehetőséget.

Ugyanezt a PowerShell-lel is megteheti. A parancs futtatása előtt telepítenie kell lennie az Az.RedisCache modult.

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

A TLS-verzió CLI-n keresztüli beállításához a --minimum-tls-version verzió csak a Redis létrehozási ideje alatt érhető el, és a minimum-tls-version meglévő Redis-példányon való módosítása nem támogatott.

Feljegyzés

Az Azure Cache for Redis szolgáltatásnak elérhetőnek kell lennie a TLS 1.2 vagy újabb verzióra való áttérés során.

Ellenőrizze, hogy az ügyfélalkalmazás már megfelelő-e

Megtudhatja, hogy az alkalmazás működik-e a TLS 1.2-vel, ha a TLS minimális verzióértékét TLS 1.2-esre állítja a korábban ismertetett módon egy teszt- vagy átmeneti gyorsítótárban, majd futtatja a teszteket. Ha az alkalmazás továbbra is a várt módon működik a módosítás után, valószínűleg megfelelő. Lehetséges, hogy konfigurálnia kell az alkalmazás által használt Redis-ügyfélkódtárat , hogy kifejezetten engedélyezze a TLS 1.2-t az Azure Cache for Redishez való csatlakozáshoz.

Az ügyfélalkalmazás konfigurálása TLS 1.2 használatára

A legtöbb alkalmazás Redis-ügyfélkódtárakkal kezeli a gyorsítótárakkal folytatott kommunikációt. Az alábbiakban néhány népszerű ügyfélkódtárat konfigurálhat különböző programozási nyelveken és keretrendszerekben a TLS 1.2 használatához.

.NET

A Redis .NET-ügyfelek alapértelmezés szerint a legkorábbi TLS-verziót használják a 4.5.2-es vagy korábbi .NET-keretrendszer, és a legújabb TLS-verziót használják a .NET-keretrendszer 4.6-os vagy újabb verzióján. Ha a .NET-keretrendszer régebbi verzióját használja, engedélyezze manuálisan a TLS 1.2-t:

  • StackExchange.Redis: Beállítás ssl=true és sslProtocols=tls12 a kapcsolati sztring.
  • ServiceStack.Redis: Kövesse a ServiceStack.Redis utasításait, és legalább a ServiceStack.Redis 5.6-os verziót igényli.

.NET Core

A Redis .NET Core-ügyfelek alapértelmezés szerint az operációs rendszer alapértelmezett TLS-verzióját használják, amely az operációs rendszertől függ.

Az operációs rendszer verziójától és az alkalmazott javításoktól függően az alapértelmezett TLS-verzió eltérő lehet. További információ: Transport Layer Security (TLS) – ajánlott eljárások a .NET-keretrendszer használatával.

Ha azonban régi operációs rendszert használ, vagy csak biztos szeretne lenni benne, javasoljuk, hogy manuálisan konfigurálja az előnyben részesített TLS-verziót az ügyfélen keresztül.

Java

A Redis Java-ügyfelek a TLS 1.0-t használják a Java 6-os vagy korábbi verziójában. A Jedis, a Lettuce és a Redisson nem tud csatlakozni az Azure Cache for Redishez, ha a TLS 1.0 le van tiltva a gyorsítótárban. Frissítse a Java-keretrendszert az új TLS-verziók használatára.

Java 7 esetén a Redis-ügyfelek alapértelmezés szerint nem használják a TLS 1.2-t, de konfigurálhatók hozzá. A Jedis például lehetővé teszi az alapul szolgáló TLS-beállítások megadását a következő kódrészlettel:

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

A Saláta- és Redisson-ügyfelek még nem támogatják a TLS-verzió megadását. Megszakadnak, ha a gyorsítótár csak TLS 1.2-kapcsolatokat fogad el. Az ügyfelek javításainak áttekintése folyamatban van, ezért ellenőrizze, hogy ezek a csomagok frissített verziót kapnak-e ezzel a támogatással.

A Java 8-ban a TLS 1.2 alapértelmezés szerint használatos, és a legtöbb esetben nem igényel frissítéseket az ügyfélkonfigurációhoz. A biztonság érdekében tesztelje az alkalmazást.

A Java 17-ből alapértelmezés szerint a TLS 1.3 van használatban.

Node.js

A Node Redis és az ioredis egyaránt támogatja a TLS 1.2-t és az 1.3-at.

PHP

A PHP 7-nél korábbi verziók: A Predis csak a TLS 1.0-t támogatja. Ezek a verziók nem működnek a TLS 1.2-vel; A TLS 1.2 használatára frissítenie kell.

PHP 7.0–PHP 7.2.1: A Predis alapértelmezés szerint csak TLS 1.0-t vagy 1.1-et használ. A TLS 1.2 használatához az alábbi kerülő megoldás használható. Adja meg a TLS 1.2-t az ügyfélpéldány létrehozásakor:

$redis=newPredis\Client([
    'scheme'=>'tls',
    'host'=>'host',
    'port'=>6380,
    'password'=>'password',
    'ssl'=>[
        'crypto_type'=>STREAM_CRYPTO_METHOD_TLSv1_2_CLIENT,
    ],
]);

PHP 7.3 és újabb verziók: A Predis a legújabb TLS-verziót használja.

PhpRedis

A PhpRedis nem támogatja a TLS-t semmilyen PHP-verzióban.

Python

A Redis-py alapértelmezés szerint a TLS 1.2-t használja.

GO

A Redigo alapértelmezés szerint a TLS 1.2-t használja.