Quitar TLS 1.0 y 1.1 del uso de Azure Cache for Redis
Para satisfacer la inserción en todo el sector hacia el uso exclusivo de la versión 1.2 o posterior de Seguridad de la capa de transporte (TLS), Azure Cache for Redis se está moviendo hacia la necesidad de usar TLS 1.2 en marzo de 2025. Las versiones de TLS 1.0 y 1.1 son susceptibles de sufrir ataques como BEAST y POODLE, y tienen otros puntos vulnerables y exposiciones comunes (CVE).
Las versiones TLS 1.0 Y 1.1 tampoco admiten los métodos de cifrado modernos y los conjuntos de cifrado recomendados por las normas de cumplimiento del sector de las tarjetas de pago (PCI). En este blog de seguridad de TLS se explican con más detalle algunas de estas vulnerabilidades.
Importante
A partir del 1 de marzo de 2025, se aplicará el requisito de TLS 1.2.
Importante
El contenido de retirada de TLS 1.0/1.1 de este artículo no se aplica a Azure Cache for Redis Enterprise/Enterprise Flash, ya que los niveles Enterprise solo admiten TLS 1.2.
Como parte de este trabajo, puede esperar los siguientes cambios en Azure Cache for Redis:
- Fase 1: Azure Cache for Redis deja de ofrecer TLS 1.0/1.1 como opción para valor MinimumTLSVersion para las nuevas creaciones de caché. Las instancias de caché existentes no se actualizarán en este momento. No se puede establecer MinimumTLSVersion en 1.0 ni 1.1 para la caché existente.
- Fase 2: Azure Cache for Redis deja de admitir TLS 1.1 y TLS 1.0 a partir del 1 de marzo de 2025. Después de ese cambio, la aplicación debe usar TLS 1.2 o posterior para comunicarse con la caché. El servicio Azure Cache for Redis permanece disponible mientras actualizamos el MinimumTLSVersion para todas las memorias caché a 1.2.
Fecha | Descripción |
---|---|
Septiembre de 2023 | Anuncio de retirada de TLS 1.0/1.1 |
1 de marzo de 2024 | A partir del 1 de marzo de 2024, no puede crear nuevas memorias caché con la versión mínima de TLS establecida en 1.0 o 1.1 y no puede establecer el MinimumTLSVersion en 1.0 o 1.1 para la caché existente. La versión mínima de TLS no se actualizará automáticamente para las memorias caché existentes en este momento. |
31 de octubre de 2024 | Asegúrese de que todas las aplicaciones se conectan a Azure Cache for Redis mediante TLS 1.2 y la versión mínima de TLS en la configuración de caché está establecida en 1.2. |
A partir del 1 de marzo de 2025 | La versión mínima de TLS para todas las instancias de caché se actualiza a la versión 1.2. Esto significa que las instancias de Azure Cache for Redis rechazan las conexiones mediante TLS 1.0 o 1.1 en este momento. |
Importante
El contenido de este artículo no se aplica a Azure Cache for Redis Enterprise/Enterprise Flash, ya que los niveles Enterprise solo admiten TLS 1.2.
Como parte de este cambio, Azure Cache for Redis elimina la compatibilidad con conjuntos de cifrado anteriores que no son seguros. Los conjuntos de cifrado compatibles están restringidos a los siguientes cuando la caché está configurada con TLS 1.2 como mínimo:
- TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384
- TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256
En las siguientes secciones se proporcionan instrucciones generales sobre cómo detectar dependencias en estas versiones anteriores de TLS y cómo quitarlas de la aplicación.
Compruebe si la aplicación ya es compatible
Para averiguar si la aplicación funciona con TLS1.2, puede establecer el valor de Versión de TLS mínima en TLS 1.2 en una caché de pruebas o ensayo y, luego, realizar la prueba. La configuración de la versión mínima de TLS está en la Configuración avanzada de la instancia de caché en Azure Portal. Si la aplicación sigue funcionando según lo previsto después de este cambio, la aplicación usa TLS 1.2 o posterior.
Configuración de la aplicación para usar TLS 1.2 o posterior
La mayoría de las aplicaciones usan bibliotecas de cliente de Redis para controlar la comunicación con sus cachés. A continuación se proporcionan instrucciones para configurar algunas de las bibliotecas de cliente más populares, en diversos marcos y lenguajes de programación, para usar TLS 1.2 o posterior.
.NET
Los clientes .NET de Redis usan la versión de TLS más antigua de forma predeterminada en .NET Framework 4.5.2 o versiones anteriores, y usan la versión más reciente de TLS en .NET Framework 4.6 o posterior. Si utiliza una versión anterior de .NET Framework, puede habilitar TLS 1.2 de forma manual:
- StackExchange.Redis: Establezca
ssl=true
ysslProtocols=tls12
en la cadena de conexión. - ServiceStack.Redis: siga las instrucciones de ServiceStack.Redis y requiere ServiceStack.Redis v5.6, como mínimo.
.NET Core
Los clientes de .NET Core de Redis usan por defecto la versión de TLS predeterminada del sistema operativo, que depende del propio sistema operativo.
En función de la versión del sistema operativo y de las revisiones que se aplicaron, la versión de TLS predeterminada efectiva puede variar. Para obtener más información, vea Procedimientos recomendados sobre la seguridad de la capa de transporte (TLS) con .NET Framework.
Sin embargo, si usa un sistema operativo antiguo o simplemente quiere asegurarse, se recomienda configurar manualmente la versión de TLS preferida mediante el cliente.
Java
Los clientes de Java de Redis usan TLS 1.0, versión 6 o anterior de Java. Jedis, Lettuce y Redisson no se pueden conectar a Azure Cache for Redis si TLS 1.0 está deshabilitado en la memoria caché. Actualice el marco de Java para usar las nuevas versiones de TLS.
En Java 7, los clientes de Redis no usan TLS 1.2 de forma predeterminada, pero se pueden configurar para ello. Por ejemplo, Jedis permite especificar la configuración de TLS subyacente con el siguiente fragmento de código:
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);
Los clientes de Lettuce y Redisson todavía no admiten la especificación de la versión de TLS. Se interrumpirán si la memoria caché acepta solo conexiones de TLS 1.2. Se están revisando las correcciones de estos clientes, por lo que debe comprobar si hay una versión actualizada para esos paquetes con esta compatibilidad.
En Java 8, se usa TLS 1.2 de forma predeterminada y no es necesario actualizar la configuración del cliente en la mayoría de los casos. Para estar más seguro, pruebe la aplicación.
A partir de Java 17, TLS 1.3 se usa de forma predeterminada.
Node.js
Node Redis e ioredis admiten TLS 1.2 y 1.3.
PHP
Versiones anteriores a PHP 7: Predis solo admite TLS 1.0. Estas versiones no funcionan con TLS 1.2; debe actualizar para usar TLS 1.2.
PHP 7.0 a PHP 7.2.1: Predis solo usa TLS 1.0 o 1.1 de forma predeterminada. Puede usar la siguiente solución alternativa para usar TLS 1.2. Puede especificar TLS 1.2 al crear la instancia de cliente:
$redis=newPredis\Client([ 'scheme'=>'tls', 'host'=>'host', 'port'=>6380, 'password'=>'password', 'ssl'=>[ 'crypto_type'=>STREAM_CRYPTO_METHOD_TLSv1_2_CLIENT, ], ]);
PHP 7.3 y versiones posteriores: Predis usa la versión más reciente de TLS.
PhpRedis
PhpRedis no admite TLS en ninguna versión de PHP.
Python
Redis-py usa TLS 1.2 de forma predeterminada.
GO
Redigo usa TLS 1.2 de forma predeterminada.