Entfernen der Verwendung von TLS 1.0 und 1.1 mit Azure Cache for Redis

Um die branchenweite Anforderung zur ausschließlichen Verwendung von TLS (Transport Layer Security) ab Version 1.2 zu erfüllen, wird Azure Cache for Redis im November 2024 auf die Verwendung von TLS 1.2 umgestellt. Die TLS-Versionen 1.0 und 1.1 sind bekanntermaßen anfällig für Angriffe wie BEAST und POODLE und weisen andere allgemeine Sicherheitslücken und Schwachstellen (CVE, Common Vulnerabilities and Exposures) auf.

Die TLS-Versionen 1.0 und 1.1 unterstützen auch keine modernen Verschlüsselungsmethoden und Verschlüsselungssammlungen, wie sie durch die Compliancestandards der Payment Card Industry (PCI) empfohlen werden. Einige dieser Sicherheitslücken werden in diesem Blog zur TLS-Sicherheit ausführlicher erläutert.

Wichtig

Am 1. November 2024 wird die Verwendung von TLS 1.2 erzwungen.

Wichtig

Der Inhalt zur Einstellung von TLS 1.0/1.1 in diesem Artikel gilt nicht für Azure Cache for Redis Enterprise/Enterprise Flash, da die Enterprise-Dienstebenen nur TLS 1.2 unterstützen.

Im Rahmen dieser Initiative werden die folgenden Änderungen an Azure Cache for Redis vorgenommen:

  • Phase 1: Azure Cache for Redis bietet bei neuen Cacheerstellungen TLS 1.0/1.1 nicht mehr als Option für die Einstellung „MinimumTLSVersion“ an. Vorhandene Cache-Instanzen werden zu diesem Zeitpunkt nicht aktualisiert. Sie können weiterhin das Azure-Portal oder andere Verwaltungs-APIs nutzen, um zum Zweck der Abwärtskompatibilität die TLS-Mindestversion auf 1.0 oder 1.1 zu ändern.
  • Phase 2: Azure Cache for Redis unterstützt TLS 1.1 und TLS 1.0 ab dem 1. November 2024 nicht mehr. Nach dieser Änderung muss Ihre Anwendung für die Kommunikation mit dem Cache TLS 1.2 oder höher verwenden. Der Azure Cache for Redis-Dienst bleibt verfügbar, während MinimumTLSVerion für alle Caches auf 1.2 aktualisiert wird.
Datum Beschreibung
September 2023 Ankündigung der Einstellung von TLS 1.0/1.1
1. März 2024 Ab dem 1. März 2024 können Sie keine neuen Caches mehr erstellen, bei denen die TLS-Mindestversion auf 1.0 oder 1.1 festgelegt ist, und Sie können die TLS-Mindestversion für vorhandene Caches nicht mehr auf 1.0 oder 1.1 festlegen. Die TLS-Mindestversion wird zu diesem Zeitpunkt nicht automatisch für vorhandene Caches aktualisiert.
31. Oktober 2024 Stellen Sie sicher, dass Ihre sämtlichen Anwendungen TLS 1.2 zum Herstellen einer Verbindung mit Azure Cache for Redis verwenden und dass in Ihren Cacheeinstellungen die TLS-Mindestversion auf 1.2 festgelegt ist.
1. November 2024 Die TLS-Mindestversion wird für alle Cache-Instanzen auf Version 1.2 aktualisiert. Dies bedeutet, dass Azure Cache for Redis-Instanzen Verbindungen mit TLS 1.0 oder 1.1 ablehnen.

Wichtig

Der Inhalt dieses Artikels gilt nicht für Azure Cache for Redis Enterprise/Enterprise Flash, da die Enterprise-Dienstebenen nur TLS 1.2 unterstützen.

Im Rahmen dieser Änderung hebt Azure Cache for Redis die Unterstützung für ältere Verschlüsselungssammlungen auf, die nicht sicher sind. Wenn der Cache mit TLS 1.2 als Mindestversion konfiguriert ist, werden nur die folgenden Verschlüsselungssammlungen unterstützt:

  • TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384
  • TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256

Die folgenden Abschnitte bieten einen Leitfaden zum Erkennen von Abhängigkeiten von diesen früheren TLS-Versionen und zum Entfernen der Versionen aus Ihrer Anwendung.

Überprüfen, ob Ihre Anwendung bereits konform ist

Sie können herausfinden, ob Ihre Anwendung mit TLS 1.2 funktioniert, indem Sie den Wert TLS-Mindestversion in einem Test- oder Stagingcache auf TLS 1.2 festlegen und anschließend Tests ausführen. Die Einstellung TLS-Mindestversion befindet sich unter Erweiterte Einstellungen für Ihre Cache-Instanz im Azure-Portal. Wenn die Anwendung nach dieser Änderung weiterhin wie erwartet funktioniert, verwendet Ihre App TLS 1.2 oder höher.

Hinweis

Wenn Ihr Cache im Portal geöffnet ist, wählen Sie im Ressourcenmenü Erweitert aus. Wenn die TLS-Mindestversion für Ihre Cacheinstanz auf Standard festgelegt ist, wird die TLS-Mindestversion auf TLS 1.2 festgelegt. TLS 1.2 wird Ihrer Cacheinstanz als Standardwert zugewiesen, wenn kein expliziter Wert ausgewählt wird.

Konfigurieren Ihrer Anwendung für die Verwendung von TLS 1.2 oder höher

In den meisten Anwendungen werden Redis-Clientbibliotheken für die Kommunikation mit den zugehörigen Caches verwendet. Hier finden Sie Anweisungen zum Konfigurieren einiger gängiger Clientbibliotheken in verschiedenen Programmiersprachen und Frameworks für die Verwendung von TLS 1.2 oder höher.

.NET

Bei Redis .NET-Clients wird standardmäßig die früheste TLS-Version in .NET Framework 4.5.2 oder früher und die neueste TLS-Version in .NET Framework 4.6 oder höher verwendet. Wenn Sie eine ältere Version von .NET Framework verwenden, aktivieren Sie TLS 1.2 manuell:

  • StackExchange.Redis: Legen Sie ssl=true und sslProtocols=tls12 in der Verbindungszeichenfolge fest.
  • ServiceStack.Redis: Befolgen Sie die Anweisungen für ServiceStack.Redis. Dazu ist mindestens ServiceStack.Redis v5.6 erforderlich.

.NET Core

Redis .NET Core-Clients verwenden standardmäßig die TLS-Standardversion des Betriebssystems, die vom Betriebssystem abhängig ist.

Je nach verwendeter Betriebssystemversion und den angewandten Patches kann die TLS-Standardversion variieren. Weitere Informationen finden Sie unter Bewährte Methoden für Transport Layer Security (TLS) mit .NET-Framework.

Wenn Sie ein altes Betriebssystem verwenden oder nur sichergehen möchten, wird empfohlen, die bevorzugte TLS-Version manuell über den Client zu konfigurieren.

Java

Bei Redis Java-Clients wird TLS 1.0 für Java Version 6 oder früher verwendet. Bei Jedis, Lettuce, und Redisson kann keine Verbindung mit Azure Cache for Redis hergestellt werden, wenn TLS 1.0 für den Cache deaktiviert ist. Führen Sie ein Upgrade Ihres Java-Frameworks durch, um neue TLS-Versionen zu verwenden.

Für Java 7 wird bei Redis-Clients standardmäßig TLS 1.2 nicht verwendet, die Clients können aber dafür konfiguriert werden. In Jedis können Sie die zugrunde liegenden TLS-Einstellungen z. B. mit dem folgenden Codeschnipsel angeben:

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

Die Lettuce- und Redisson-Clients unterstützen noch nicht das Festlegen der TLS-Version. Es erfolgt ein Abbruch, wenn der Cache nur TLS 1.2-Verbindungen akzeptiert. Korrekturen für diese Clients werden überprüft. Sehen Sie also für diese Pakete nach, ob eine aktualisierte Version mit dieser Unterstützung vorhanden ist.

In Java 8 wird standardmäßig TLS 1.2 verwendet und sollte in den meisten Fällen keine Updates Ihrer Clientkonfiguration erfordern. Um sicherzugehen, testen Sie Ihre Anwendung.

Ab Java 17 wird standardmäßig TLS 1.3 verwendet.

Node.js

Node Redis und ioredis unterstützen sowohl TLS 1.2 als auch TLS 1.3.

PHP

  • Versionen vor PHP 7: Predis unterstützt nur TLS 1.0. Diese Versionen funktionieren nicht mit TLS 1.2. Führen Sie ein Upgrade durch, um TLS 1.2 verwenden zu können.

  • PHP 7.0 bis PHP 7.2.1: Predis verwendet standardmäßig nur TLS 1.0 oder 1.1. Zur Verwendung von TLS 1.2 kann die folgende Problemumgehung verwendet werden: Geben Sie beim Erstellen der Clientinstanz TLS 1.2 an:

    $redis=newPredis\Client([
        'scheme'=>'tls',
        'host'=>'host',
        'port'=>6380,
        'password'=>'password',
        'ssl'=>[
            'crypto_type'=>STREAM_CRYPTO_METHOD_TLSv1_2_CLIENT,
        ],
    ]);
    
  • PHP 7.3 und höhere Versionen: Predis verwendet die aktuelle TLS-Version.

PhpRedis

Bei PhpRedis wird TLS in keiner PHP-Version unterstützt.

Python

Bei Redis-py wird standardmäßig TLS 1.2 verwendet.

GO

Bei Redigo wird standardmäßig TLS 1.2 verwendet.

Zusätzliche Informationen