Entfernen der Verwendung von TLS 1.0 und 1.1 mit Azure Cache for Redis
Um dem branchenweiten Trend zur ausschließlichen Verwendung von TLS (Transport Layer Security) ab Version 1.2 zu folgen, wird für Azure Cache for Redis ab März 2025 TLS 1.2 vorausgesetzt. 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
Ab dem 1. März 2025 wird 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: Für die Erstellung neuer Caches wird TLS 1.0/1.1 in Azure Cache for Redis nicht mehr als Option für die Einstellung MinimumTLSVersion angeboten. Vorhandene Cache-Instanzen werden zu diesem Zeitpunkt nicht aktualisiert. Sie können MinimumTLSVersion für bestehende Caches nicht mehr auf 1.0 oder 1.1 festlegen.
- Phase 2: Azure Cache for Redis unterstützt TLS 1.1 und TLS 1.0 ab dem 1. März 2025 nicht mehr. Nach dieser Änderung muss Ihre Anwendung für die Kommunikation mit dem Cache TLS 1.2 oder höher verwenden. Der Dienst Azure Cache for Redis bleibt verfügbar, während MinimumTLSVersion 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 keine neuen Caches mehr mit der TLS-Mindestversion 1.0 oder 1.1 erstellt werden, und MinimumTLSVersion kann für bestehende Caches nicht mehr auf 1.0 oder 1.1 festgelegt werden. 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 Verbindungen mit Azure Cache for Redis über TLS 1.2 herstellen und dass in Ihren Cacheeinstellungen die TLS-Mindestversion auf 1.2 festgelegt ist. |
Ab dem 1. März 2025 | Die TLS-Mindestversion wird für alle Cache-Instanzen auf Version 1.2 aktualisiert. Dies bedeutet, dass Azure Cache for Redis-Instanzen momentan 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.
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
undsslProtocols=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 Betriebssystemversion und den angewandten Patches kann die tatsächliche 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.