\Ta bort TLS 1.0 och 1.1 från användning med Azure Cache for Redis
Azure Cache for Redis går mot att kräva användning av TLS 1.2 i mars 2025 för att möta den branschomfattande satsningen på exklusiv användning av TLS-version 1.2 eller senare. 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!
Från och med den 1 mars 2025 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 inte ange MinimumTLSVersion till 1.0 eller 1.1 för din befintliga cache.
- Fas 2: Azure Cache for Redis slutar stödja TLS 1.1 och TLS 1.0 från och med 1 mars 2025. 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 fortfarande 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 kan du inte skapa nya cacheminnen med lägsta TLS-version inställd på 1.0 eller 1.1 och du kan inte ange MinimumTLSVersion 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. |
31 oktober 2024 | Kontrollera 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. |
Från och med 1 mars 2025 | 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 just nu. |
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 Portal. Om programmet fortsätter att fungera som förväntat efter den här ändringen använder appen TLS 1.2 eller senare.
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
ochsslProtocols=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.