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 november 2024. 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

Op 1 november 2024 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 nog steeds Azure Portal of andere beheer-API's gebruiken om de minimale TLS-versie te wijzigen in 1.0 of 1.1 voor achterwaartse compatibiliteit.
  • Fase 2: Azure Cache voor Redis stopt met het ondersteunen van TLS 1.1 en TLS 1.0 vanaf 1 november 2024. Na deze wijziging moet uw toepassing TLS 1.2 of hoger gebruiken om te communiceren met uw cache. De Azure Cache voor Redis-service is 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 Minimium TLS-versie 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
1 november 2024 Minimale TLS-versie voor alle cache-exemplaren wordt bijgewerkt naar 1.2. Dit betekent dat Azure Cache voor Redis instanties verbindingen weigeren met 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.

Notitie

Selecteer Geavanceerd in het resourcemenu terwijl uw cache is geopend in de portal. Als de minimale TLS-versie voor uw cache-exemplaar is ingesteld op Standaard, is de minimale TLS-versie ingesteld op TLS 1.2. TLS 1.2 is de standaardwaarde die is toegewezen aan uw cache-exemplaar wanneer er geen expliciete waarde wordt gekozen.

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 en sslProtocols=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.

Aanvullende informatie