TLS 1.0 en 1.1 verwijderen uit gebruik met Azure Cache voor Redis
Om te voldoen aan de branchebrede push naar het exclusieve gebruik van TLS-versie 1.2 (Transport Layer Security) of hoger, Azure Cache voor Redis overstapt op het vereisen van het gebruik van TLS 1.2 in maart 2025. TLS-versies 1.0 en 1.1 zijn bekend gevoelig voor aanvallen zoals BEAST en POODLE, en om andere zwakke plekken in Common Vulnerabilities and Exposures (CVE) te hebben.
TLS-versies 1.0 en 1.1 bieden ook geen ondersteuning voor de moderne versleutelingsmethoden en coderingssuites die worden aanbevolen door PCI-nalevingsstandaarden (Payment Card Industry). In dit TLS-beveiligingsblog worden enkele van deze beveiligingsproblemen in meer detail uitgelegd.
Belangrijk
Vanaf 1 maart 2025 wordt de TLS 1.2-vereiste afgedwongen.
Belangrijk
De buitengebruikstelling van TLS 1.0/1.1 in dit artikel is niet van toepassing op Azure Cache voor Redis Enterprise/Enterprise Flash, omdat de Enterprise-lagen alleen TLS 1.2 ondersteunen.
Als onderdeel van deze inspanning kunt u de volgende wijzigingen in Azure Cache voor Redis verwachten:
- Fase 1: Azure Cache voor Redis stopt met het aanbieden van TLS 1.0/1.1 als optie voor de instelling MinimumTLSVersion voor het maken van nieuwe caches. Bestaande cache-exemplaren worden momenteel niet bijgewerkt. U kunt de MinimumTLSVersion niet instellen op 1.0 of 1.1 voor uw bestaande cache.
- Fase 2: Azure Cache voor Redis stopt met het ondersteunen van TLS 1.1 en TLS 1.0 vanaf 1 maart 2025. Na deze wijziging moet uw toepassing TLS 1.2 of hoger gebruiken om te communiceren met uw cache. De Azure Cache voor Redis-service blijft beschikbaar terwijl we de MinimumTLSVerion voor alle caches bijwerken naar 1.2.
Datum | Beschrijving |
---|---|
September 2023 | Aankondiging van buitengebruikstelling van TLS 1.0/1.1 |
1 maart 2024 | Vanaf 1 maart 2024 kunt u geen nieuwe caches maken met de minimale TLS-versie ingesteld op 1.0 of 1.1 en kunt u de MinimumTLSVersion niet instellen op 1.0 of 1.1 voor uw bestaande cache. De minimale TLS-versie wordt op dit moment niet automatisch bijgewerkt voor bestaande caches. |
31 oktober 2024 | Zorg ervoor dat al uw toepassingen verbinding maken met Azure Cache voor Redis met behulp van TLS 1.2 en minimale TLS-versie in uw cache-instellingen is ingesteld op 1.2. |
Vanaf 1 maart 2025 | Minimale TLS-versie voor alle cache-exemplaren wordt bijgewerkt naar 1.2. Dit betekent dat Azure Cache voor Redis instanties op dit moment verbindingen weigeren met BEHULP van TLS 1.0 of 1.1. |
Belangrijk
De inhoud in dit artikel is niet van toepassing op Azure Cache voor Redis Enterprise/Enterprise Flash, omdat de Enterprise-lagen alleen TLS 1.2 ondersteunen.
Als onderdeel van deze wijziging verwijdert Azure Cache voor Redis ondersteuning voor oudere coderingssuites die niet veilig zijn. Ondersteunde coderingssuites zijn beperkt tot de volgende suites wanneer de cache is geconfigureerd met minimaal TLS 1.2:
- TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384
- TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256
De volgende secties bevatten richtlijnen voor het detecteren van afhankelijkheden op deze eerdere TLS-versies en het verwijderen van afhankelijkheden uit uw toepassing.
Controleren of uw toepassing al compatibel is
U kunt nagaan of uw toepassing werkt met TLS 1.2 door de minimale TLS-versiewaarde in te stellen op TLS 1.2 op een test- of faseringscache en vervolgens tests uit te voeren. De instelling minimale TLS-versie bevindt zich in de geavanceerde instellingen van uw cache-exemplaar in Azure Portal. Als de toepassing blijft functioneren zoals verwacht na deze wijziging, gebruikt uw app TLS 1.2 of hoger.
Uw toepassing configureren voor het gebruik van TLS 1.2 of hoger
De meeste toepassingen gebruiken Redis-clientbibliotheken om communicatie met hun caches te verwerken. Hier volgen instructies voor het configureren van enkele populaire clientbibliotheken, in verschillende programmeertalen en frameworks, voor het gebruik van TLS 1.2 of hoger.
.NET
Redis .NET-clients gebruiken standaard de vroegste TLS-versie op .NET Framework 4.5.2 of eerder en gebruiken de nieuwste TLS-versie op .NET Framework 4.6 of hoger. Als u een oudere versie van .NET Framework gebruikt, schakelt u TLS 1.2 handmatig in:
- StackExchange.Redis: instellen
ssl=true
ensslProtocols=tls12
in de verbindingsreeks. - ServiceStack.Redis: volg de ServiceStack.Redis-instructies en vereist minimaal ServiceStack.Redis v5.6.
.NET Core
Redis .NET Core-clients zijn standaard ingesteld op de standaard TLS-versie van het besturingssysteem, die afhankelijk is van het besturingssysteem zelf.
Afhankelijk van de versie van het besturingssysteem en eventuele patches die zijn toegepast, kan de effectieve standaard TLS-versie variƫren. Zie Best practices voor TLS (Transport Layer Security) met .NET Framework voor meer informatie.
Als u echter een oud besturingssysteem gebruikt of alleen zeker wilt zijn, raden we u aan om de voorkeurs-TLS-versie handmatig te configureren via de client.
Java
Redis Java-clients gebruiken TLS 1.0 op Java versie 6 of eerder. Jedis, Lettuce en Redisson kunnen geen verbinding maken met Azure Cache voor Redis als TLS 1.0 is uitgeschakeld in de cache. Werk uw Java-framework bij om nieuwe TLS-versies te gebruiken.
Voor Java 7 gebruiken Redis-clients tls 1.2 niet standaard, maar kunnen hiervoor worden geconfigureerd. Met Jedis kunt u bijvoorbeeld de onderliggende TLS-instellingen opgeven met het volgende codefragment:
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);
De Lettuce- en Redisson-clients bieden nog geen ondersteuning voor het opgeven van de TLS-versie. Ze breken als de cache alleen TLS 1.2-verbindingen accepteert. Oplossingen voor deze clients worden gecontroleerd, dus neem contact op met deze pakketten voor een bijgewerkte versie met deze ondersteuning.
In Java 8 wordt TLS 1.2 standaard gebruikt en moet in de meeste gevallen geen updates voor uw clientconfiguratie vereist zijn. Test uw toepassing om veilig te zijn.
Vanaf Java 17 wordt TLS 1.3 standaard gebruikt.
Node.js
Node Redis en ioredis bieden ondersteuning voor TLS 1.2 en 1.3.
PHP
Versies ouder dan PHP 7: Predis ondersteunt alleen TLS 1.0. Deze versies werken niet met TLS 1.2; u moet een upgrade uitvoeren om TLS 1.2 te gebruiken.
PHP 7.0 naar PHP 7.2.1: Predis gebruikt standaard alleen TLS 1.0 of 1.1. U kunt de volgende tijdelijke oplossing gebruiken om TLS 1.2 te gebruiken. Geef TLS 1.2 op wanneer u het clientexemplaren maakt:
$redis=newPredis\Client([ 'scheme'=>'tls', 'host'=>'host', 'port'=>6380, 'password'=>'password', 'ssl'=>[ 'crypto_type'=>STREAM_CRYPTO_METHOD_TLSv1_2_CLIENT, ], ]);
PHP 7.3 en latere versies: Predis maakt gebruik van de nieuwste TLS-versie.
PhpRedis
PhpRedis biedt geen ondersteuning voor TLS op een PHP-versie.
Python
Redis-py maakt standaard gebruik van TLS 1.2.
GO
Redigo maakt standaard gebruik van TLS 1.2.