\Ta bort TLS 1.0 och 1.1 från användning med Azure Cache for Redis

För att möta den branschomfattande satsningen på exklusiv användning av TLS version 1.2 eller senare av Transport Layer Security (TLS) går Azure Cache for Redis mot att kräva användning av TLS 1.2 i november 2024. TLS-versionerna 1.0 och 1.1 är kända för att vara mottagliga för attacker som BEAST och POODLE, och för att ha andra svagheter i Common Vulnerabilities and Exposures (CVE).

TLS-versionerna 1.0 och 1.1 stöder inte heller de moderna krypteringsmetoder och chiffersviter som rekommenderas av PCI-efterlevnadsstandarder (Payment Card Industry). Den här TLS-säkerhetsbloggen förklarar några av dessa säkerhetsrisker mer detaljerat.

Viktigt!

Den 1 november 2024 tillämpas TLS 1.2-kravet.

Viktigt!

TLS 1.0/1.1-innehåll i den här artikeln gäller inte för Azure Cache for Redis Enterprise/Enterprise Flash eftersom Enterprise-nivåerna endast stöder TLS 1.2.

Som en del av det här arbetet kan du förvänta dig följande ändringar i Azure Cache for Redis:

  • Fas 1: Azure Cache for Redis slutar erbjuda TLS 1.0/1.1 som ett alternativ för inställningen MinimumTLSVersion för nya cacheminnen. Befintliga cacheinstanser uppdateras inte just nu. Du kan fortfarande använda Azure-portalen eller andra hanterings-API:er för att ändra den lägsta TLS-versionen till 1.0 eller 1.1 för bakåtkompatibilitet.
  • Fas 2: Azure Cache for Redis slutar stödja TLS 1.1 och TLS 1.0 från och med den 1 november 2024. Efter den här ändringen måste programmet använda TLS 1.2 eller senare för att kommunicera med din cache. Azure Cache for Redis-tjänsten är tillgänglig medan vi uppdaterar MinimumTLSVerion för alla cacheminnen till 1.2.
Date beskrivning
September 2023 Meddelande om att TLS 1.0/1.1 upphör
1 mars 2024 Från och med 1 mars 2024 kommer du inte att kunna skapa nya cacheminnen med den lägsta TLS-versionen inställd på 1.0 eller 1.1 och du kommer inte att kunna ange Minimium TLS-versionen till 1.0 eller 1.1 för din befintliga cache. Den lägsta TLS-versionen uppdateras inte automatiskt för befintliga cacheminnen just nu.
den 31 oktober 2024 Se till att alla dina program ansluter till Azure Cache for Redis med TLS 1.2 och lägsta TLS-version i cacheinställningarna är inställt på 1.2
Den 1 november 2024 Lägsta TLS-version för alla cacheinstanser uppdateras till 1.2. Det innebär att Azure Cache for Redis-instanser avvisar anslutningar med TLS 1.0 eller 1.1.

Viktigt!

Innehållet i den här artikeln gäller inte för Azure Cache for Redis Enterprise/Enterprise Flash eftersom Enterprise-nivåerna endast stöder TLS 1.2.

Som en del av den här ändringen tar Azure Cache for Redis bort stöd för äldre chiffersviter som inte är säkra. Chiffersviter som stöds är begränsade till följande sviter när cachen har konfigurerats med minst TLS 1.2:

  • TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384
  • TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256

Följande avsnitt innehåller vägledning om hur du identifierar beroenden för dessa tidigare TLS-versioner och tar bort dem från ditt program.

Kontrollera om programmet redan är kompatibelt

Du kan ta reda på om ditt program fungerar med TLS 1.2 genom att ange värdet för lägsta TLS-version till TLS 1.2 på ett test- eller mellanlagringscacheminne och sedan köra tester. Inställningen Lägsta TLS-version finns i avancerade inställningar för cacheinstansen i Azure-portalen. Om programmet fortsätter att fungera som förväntat efter den här ändringen använder appen TLS 1.2 eller senare.

Kommentar

När cachen är öppen i portalen väljer du Avancerat på resursmenyn. Om den lägsta TLS-versionen för cacheinstansen är inställd på Standard är din lägsta TLS-version inställd på TLS 1.2. TLS 1.2 är standardvärdet som tilldelas din cacheinstans när inget explicit värde har valts.

Konfigurera ditt program att använda TLS 1.2 eller senare

De flesta program använder Redis-klientbibliotek för att hantera kommunikationen med sina cacheminnen. Här följer anvisningar för hur du konfigurerar några av de populära klientbiblioteken i olika programmeringsspråk och ramverk för att använda TLS 1.2 eller senare.

.NET

Redis .NET-klienter använder den tidigaste TLS-versionen som standard på .NET Framework 4.5.2 eller tidigare och använder den senaste TLS-versionen på .NET Framework 4.6 eller senare. Om du använder en äldre version av .NET Framework aktiverar du TLS 1.2 manuellt:

  • StackExchange.Redis: Ange ssl=true och sslProtocols=tls12 i anslutningssträng.
  • ServiceStack.Redis: Följ anvisningarna för ServiceStack.Redis och kräver ServiceStack.Redis v5.6 som minst.

.NET Core

Redis .NET Core-klienterna är standard för TLS-standardversionen för operativsystemet, vilket är beroende av själva operativsystemet.

Beroende på operativsystemversionen och eventuella korrigeringar som har tillämpats kan den effektiva TLS-standardversionen variera. Mer information finns i Metodtips för TLS (Transport Layer Security) med .NET Framework.

Men om du använder ett gammalt operativsystem eller bara vill vara säker rekommenderar vi att du konfigurerar den önskade TLS-versionen manuellt via klienten.

Java

Redis Java-klienter använder TLS 1.0 på Java version 6 eller tidigare. Jedis, Lettuce och Redisson kan inte ansluta till Azure Cache for Redis om TLS 1.0 är inaktiverat i cacheminnet. Uppgradera ditt Java-ramverk för att använda nya TLS-versioner.

För Java 7 använder Redis-klienter inte TLS 1.2 som standard, men kan konfigureras för det. Med Jedis kan du till exempel ange de underliggande TLS-inställningarna med följande kodfragment:

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

Klienterna Lettuce och Redisson har ännu inte stöd för att ange TLS-versionen. De bryts om cachen endast accepterar TLS 1.2-anslutningar. Korrigeringar för dessa klienter granskas, så kontrollera med dessa paket om det finns en uppdaterad version med det här stödet.

I Java 8 används TLS 1.2 som standard och bör i de flesta fall inte kräva uppdateringar av klientkonfigurationen. Testa ditt program för att vara säker.

Från och med Java 17 används TLS 1.3 som standard.

Node.js

Både Node Redis och ioredis stöder TLS 1.2 och 1.3.

PHP

  • Tidigare versioner än PHP 7: Predis stöder endast TLS 1.0. Dessa versioner fungerar inte med TLS 1.2. du måste uppgradera för att använda TLS 1.2.

  • PHP 7.0 till PHP 7.2.1: Predis använder endast TLS 1.0 eller 1.1 som standard. Du kan använda följande lösning för att använda TLS 1.2. Ange TLS 1.2 när du skapar klientinstansen:

    $redis=newPredis\Client([
        'scheme'=>'tls',
        'host'=>'host',
        'port'=>6380,
        'password'=>'password',
        'ssl'=>[
            'crypto_type'=>STREAM_CRYPTO_METHOD_TLSv1_2_CLIENT,
        ],
    ]);
    
  • PHP 7.3 och senare versioner: Predis använder den senaste TLS-versionen.

PhpRedis

PhpRedis stöder inte TLS på någon PHP-version.

Python

Redis-py använder TLS 1.2 som standard.

GO

Redigo använder TLS 1.2 som standard.

Ytterligare information