Supprimer les protocoles TLS 1.0 et 1.1 de l’utilisation avec Azure Cache pour Redis
Pour répondre à la poussée à l’échelle du secteur vers l’utilisation exclusive de TLS (Transport Layer Security) version 1.2 ou ultérieure, Azure Cache pour Redis s’oriente vers l’utilisation de TLS 1.2 en mars 2025. Les versions TLS 1.0 et 1.1 sont connues pour être sujettes à des attaques telles que BEAST et POODLE, et pour avoir d’autres failles et menaces courantes (CVE).
Les versions TLS 1.0 et 1.1 ne prennent pas non plus en charge les méthodes de chiffrement modernes et les suites de chiffrement recommandées par les normes de conformité PCI. Ce blog sur la sécurité de TLS explique plus en détail certaines de ces vulnérabilités.
Important
À partir du 1er mars 2025, l’exigence TLS 1.2 sera appliquée.
Important
Le contenu de cet article relatif à la mise hors service de TLS 1.0/1.1 ne s’applique pas à Azure Cache pour Redis Enterprise ou Enterprise Flash, car les niveaux Enterprise prennent uniquement en charge TLS 1.2.
Dans le cadre de cet effort, vous pouvez vous attendre aux modifications suivantes dans Azure Cache pour Redis :
- Phase 1 : Azure Cache pour Redis cesse d’offrir TLS 1.0 ou 1.1 comme option pour le paramètre MinimumTLSVersion pour les nouvelles créations de cache. Les instances de cache existantes ne seront pas mises à jour à ce stade. Vous ne pouvez pas définir la MinimumTLSVersion sur 1.0 ou 1.1 pour votre cache existant.
- Phase 2 : Azure Cache pour Redis cesse de prendre en charge TLS 1.1 et TLS 1.0 à compter du 1er mars 2025. Après cette modification, votre application devra utiliser TLS 1.2 ou une version ultérieure pour communiquer avec votre cache. Le service Azure Cache pour Redis reste disponible pendant que nous mettons à jour le MinimumTLSVerion pour tous les caches vers la version 1.2.
Date | Description |
---|---|
September 2023 | Annonce de suppression de TLS 1.0 et 1.1 |
1er mars 2024 | À compter du 1er mars 2024, vous ne pouvez pas créer de caches avec la version TLS minimale définie sur 1.0 ou 1.1 et vous ne pouvez pas définir le MinimumTLSVersion sur 1.0 ou 1.1 pour votre cache existant. La version TLS minimale ne sera pas mise à jour automatiquement pour les caches existants à ce stade. |
31 octobre 2024 | Vérifiez que toutes vos applications se connectent à Azure Cache pour Redis à l’aide de TLS 1.2 et que la version TLS minimale sur vos paramètres de cache est définie sur 1.2. |
À compter du 1er mars 2025 | La version TLS minimale pour toutes les instances de cache est mise à jour vers la version 1.2. Cela signifie qu’Azure Cache pour Redis rejette les connexions à l’aide de TLS 1.0 ou 1.1 à ce stade. |
Important
Le contenu de cet article ne s’applique pas à Azure Cache pour Redis Entreprise ou Enterprise Flash car les niveaux Entreprise prennent uniquement en charge TLS 1.2.
Dans le cadre de cette modification, Azure Cache pour Redis supprime la prise en charge des anciennes suites de chiffrement qui ne sont pas sécurisées. Les suites de chiffrement prises en charge sont limitées aux suites suivantes lorsque le cache est au minimum configuré avec TLS 1.2 :
- TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384
- TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256
Les sections suivantes fournissent des instructions sur la façon de détecter les dépendances sur ces versions antérieures de TLS et de les supprimer de votre application.
Vérifier si votre application est déjà conforme
Pour déterminer si votre application fonctionne avec TLS 1.2, définissez le paramètre Version TLS minimale sur TLS 1.2 sur un cache de test ou intermédiaire, puis effectuez des tests. Le paramètre Version TLS minimale se trouve dans les Paramètres avancés de votre instance de cache dans le portail Azure. Si l’application continue à fonctionner comme prévu après cette modification, cela signifie que votre application utilise TLS 1.2 ou une version ultérieure.
Configurer votre application pour utiliser TLS 1.2 ou version ultérieure
La plupart des applications utilisent des bibliothèques clientes Redis pour gérer la communication avec leurs caches. Voici des instructions pour configurer certaines des bibliothèques de client populaires, dans différents langages de programmation et infrastructures, afin qu’elles utilisent TLS 1.2 ou version ultérieure.
.NET
Les clients .NET Redis utilisent la version TLS la plus ancienne par défaut sur .NET Framework 4.5.2 ou version antérieure, et la dernière version de TLS sur .NET Framework 4.6 ou version ultérieure. Si vous utilisez une version antérieure de .NET Framework, activez TLS 1.2 manuellement :
- StackExchange.Redis : Définissez
ssl=true
etsslProtocols=tls12
dans la chaîne de connexion. - ServiceStack.Redis : Suivez les instructions ServiceStack.Redis avec ServiceStack.Redis v5.6 au minimum.
.NET Core
Les clients .NET Core Redis utilisent par défaut la version TLS du système d'exploitation, qui dépend du système d'exploitation lui-même.
Selon la version du système d’exploitation et les correctifs appliqués, la version TLS par défaut effective peut varier. Pour plus d’informations, consultez Bonnes pratiques du protocole TLS (Transport Layer Security) avec .NET Framework.
Toutefois, si vous utilisez un ancien système d'exploitation ou souhaitez simplement être rassuré, nous vous recommandons de configurer manuellement la version du protocole TLS de votre choix via le client.
Java
Les clients Java Redis utilisent TLS 1.0 sur Java version 6 ou antérieure. Jedis, Lettuce et Redisson ne peuvent pas se connecter à Azure Cache for Redis si TLS 1.0 est désactivé sur le cache. Mettez à niveau votre infrastructure Java pour utiliser les nouvelles versions du protocole TLS.
Pour Java 7, les clients Redis n’utilisent pas TLS 1.2 par défaut, mais peuvent être configurés pour cela. Par exemple, Jedis vous permet de spécifier les paramètres TLS sous-jacents avec l’extrait de code suivant :
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);
Les clients Lettuce et Redisson ne prenant pas encore en charge la spécification de la version de TLS. Ils s’interrompent si le cache accepte uniquement les connexions TLS 1.2. Les correctifs pour ces clients étant en cours de révision, vérifiez auprès de ces packages qu’une version mise à jour est prise en charge.
Dans Java 8, TLS 1.2 est utilisé par défaut et ne doit pas nécessiter de mise à jour de la configuration de votre client dans la plupart des cas. Par précaution, testez votre application.
À compter de Java 17, TLS 1.3 est utilisé par défaut.
Node.js
Node Redis et ioredis prennent tous deux en charge TLS 1.2 et 1.3.
PHP
Versions antérieures à PHP 7 : Predis prend uniquement en charge TLS 1.0. Ces versions ne fonctionnent pas avec TLS 1.2 ; vous devez effectuer la mise à niveau pour utiliser TLS 1.2.
PHP 7.0 à PHP 7.2.1 : Predis utilise uniquement TLS 1.0 ou 1.1 par défaut. Vous pouvez utiliser la solution de contournement suivante pour utiliser TLS 1.2. Spécifiez TLS 1.2 quand vous créez l’instance cliente :
$redis=newPredis\Client([ 'scheme'=>'tls', 'host'=>'host', 'port'=>6380, 'password'=>'password', 'ssl'=>[ 'crypto_type'=>STREAM_CRYPTO_METHOD_TLSv1_2_CLIENT, ], ]);
PHP 7.3 et versions ultérieures : Predis utilise la toute dernière version de TLS.
PhpRedis
PhpRedis ne prend en charge TLS sur aucune version de PHP.
Python
Redims-py utilise TLS 1.2 par défaut.
GO
Redigo utilise TLS 1.2 par défaut.