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 obligatoire de TLS 1.2 en novembre 2024. 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

Le 1er novembre 2024, 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 en ce qui concerne les nouvelles créations de cache. Les instances de cache existantes ne seront pas mises à jour à ce stade. Vous pouvez toujours utiliser le portail Azure ou d'autres API de gestion pour remplacer la version minimale de TLS par la version 1.0 ou 1.1 et assurer la compatibilité descendante.
  • Phase 2 : Azure Cache pour Redis cesse de prendre en charge TLS 1.1 et TLS 1.0 à compter du 1er novembre 2024. 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 sera disponible pendant que nous mettons à jour 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 pourrez pas définir la version TLS minimale pour n’importe quel cache sur 1.0 ou 1.1. Les instances de cache existantes ne seront pas mises à jour à 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
1er novembre 2024 La version TLS minimale pour toutes les instances de cache est mise à jour vers la version 1.2. Cela signifie que Azure Cache pour Redis instances rejetteront les connexions utilisant TLS 1.0 ou 1.1.

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.

Remarque

Une fois votre cache ouvert dans le portail, sélectionnez Avancé dans le menu de ressources. Si la version TLS minimale de votre instance de cache est définie sur Par défaut, votre version TLS minimale est définie sur TLS 1.2. TLS 1.2 est la valeur par défaut affectée à votre instance de cache lorsqu’aucune valeur explicite n’est choisie.

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

En fonction de la version du système d'exploitation et des correctifs qui ont été appliqués, la version par défaut effective du protocole TLS 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.

Informations supplémentaires