TLS 1,0 ve 1,1 ' i Redsıs için Azure Cache ile birlikte kullanarak kaldırmaRemove TLS 1.0 and 1.1 from use with Azure Cache for Redis

Aktarım Katmanı Güvenliği (TLS) sürüm 1,2 veya üzeri için özel kullanıma yönelik sektör genelinde bir gönderim vardır.There's an industry-wide push toward the exclusive use of Transport Layer Security (TLS) version 1.2 or later. TLS sürümleri 1,0 ve 1,1, BEAST ve POOTEKı gibi saldırılara açıktır ve diğer yaygın güvenlik açıkları ve Etkilenmeler (CVE) zayıflıklarına sahip olur.TLS versions 1.0 and 1.1 are known to be susceptible to attacks such as BEAST and POODLE, and to have other Common Vulnerabilities and Exposures (CVE) weaknesses. Ayrıca, ödeme kartı sektör (PCI) uyumluluk standartları tarafından önerilen modern şifreleme yöntemlerini ve şifre paketlerini desteklemezler.They also don't support the modern encryption methods and cipher suites recommended by Payment Card Industry (PCI) compliance standards. Bu TLS güvenlik blogu , bu güvenlik açıklarından bazılarını daha ayrıntılı bir şekilde açıklamaktadır.This TLS security blog explains some of these vulnerabilities in more detail.

Bu çaba kapsamında, Redsıs için Azure önbelleğinde aşağıdaki değişiklikleri yapacağız:As a part of this effort, we'll be making the following changes to Azure Cache for Redis:

  • 1. Aşama: Yeni oluşturulan önbellek örnekleri için varsayılan en düşük TLS sürümünü 1,2 olarak yapılandıracağız (daha önce TLS 1,0 idi).Phase 1: We'll configure the default minimum TLS version to be 1.2 for newly created cache instances (previously, it was TLS 1.0). Mevcut önbellek örnekleri bu noktada güncelleştirilmeyecek.Existing cache instances won't be updated at this point. Gerekirse, geriye doğru uyumluluk için En düşük TLS sürümünü 1,0 veya 1,1 olarak değiştirmek üzere Azure Portal veya diğer yönetim API 'lerini kullanmaya devam edebilirsiniz.You can still use the Azure portal or other management APIs to change the minimum TLS version to 1.0 or 1.1 for backward compatibility if you need to.

  • 2. Aşama: TLS 1,1 ve TLS 1,0 ' nin desteklenmesi durdurulacak.Phase 2: We'll stop supporting TLS 1.1 and TLS 1.0. Bu değişiklikten sonra uygulamanızın önbelleğiyle iletişim kurması için TLS 1,2 veya üstünü kullanması gerekir.After this change, your application must use TLS 1.2 or later to communicate with your cache. Redsıs hizmeti için Azure önbelleğinin, yalnızca TLS 1,2 veya üstünü desteklemek üzere geçirdiğimiz için kullanılabilir olması beklenir.The Azure Cache for Redis service is expected to be available while we migrate it to support only TLS 1.2 or later.

    Not

    2. aşama, 31 Aralık 2020 ' den daha önce değil, geçici olarak planlanmaktadır.Phase 2 is tentatively planned to begin not earlier than December 31, 2020. Ancak, bu değişikliği planlamayı ve TLS 1,2 veya üstünü destekleyecek şekilde istemcileri önceden güncelleştirmeyi öneririz.However, we strongly recommend that you begin planning for this change now and proactively update clients to support TLS 1.2 or later.

Bu değişikliğin bir parçası olarak güvenli olmayan eski şifresi üzerinde anlaşılamadı paketleri desteğini de kaldıracağız.As part of this change, we'll also remove support for older cypher suites that are not secure. Önbellek en az TLS 1,2 ile yapılandırıldığında desteklenen şifresi üzerinde anlaşılamadı paketlerimiz aşağıdaki paketler ile kısıtlanır:Our supported cypher suites will be restricted to the following suites when the cache is configured with a minimum of TLS 1.2:

  • TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384
  • TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256

Bu makalede, bu önceki TLS sürümlerindeki bağımlılıkların nasıl algılanacağı ve uygulamanızdan kaldırılacağı hakkında genel yönergeler sunulmaktadır.This article provides general guidance about how to detect dependencies on these earlier TLS versions and remove them from your application.

Bu değişikliklerin etkili olması için tarihler şunlardır:The dates when these changes take effect are:

BulutCloud Aşama 1 başlangıç tarihiPhase 1 Start Date 2. aşama başlangıç tarihiPhase 2 Start Date
Azure (genel)Azure (global) 13 Ocak 2020January 13, 2020 COVıD-19 nedeniyle ertelendiPostponed due to COVID-19
Azure KamuAzure Government 13 Mart 2020March 13, 2020 COVıD-19 nedeniyle ertelendiPostponed due to COVID-19
Azure AlmanyaAzure Germany 13 Mart 2020March 13, 2020 COVıD-19 nedeniyle ertelendiPostponed due to COVID-19
Azure China 21VianetAzure China 21Vianet 13 Mart 2020March 13, 2020 COVıD-19 nedeniyle ertelendiPostponed due to COVID-19

Not

2. aşama, 31 Aralık 2020 ' den daha önce değil, geçici olarak planlanmaktadır.Phase 2 is tentatively planned to begin not earlier than December 31, 2020. Bu makale, belirli tarihler ayarlandığında güncelleştirilecektir.This article will be updated when specific dates are set.

Uygulamanızın zaten uyumlu olup olmadığını denetleyinCheck whether your application is already compliant

Uygulamanızın TLS 1,2 ile çalışıp çalışmadığını bulmanın en kolay yolu, En düşük TLS sürümü değerini bir test veya HAZıRLAMA önbelleğinde TLS 1,2 olarak ayarlamak ve ardından testleri çalıştırmak için kullanılır.The easiest way to find out whether your application will work with TLS 1.2 is to set the Minimum TLS version value to TLS 1.2 on a test or staging cache, then run tests. En düşük TLS sürümü ayarı, Azure Portal önbellek örneğinizin Gelişmiş ayarlarından oluşur.The Minimum TLS version setting is in the Advanced settings of your cache instance in the Azure portal. Bu değişiklikten sonra uygulama beklendiği gibi çalışmaya devam ederse büyük olasılıkla uyumludur.If the application continues to function as expected after this change, it's probably compliant. Redsıs için Azure önbelleğine bağlanmak üzere TLS 1,2 ' i etkinleştirmek için, uygulamanız tarafından kullanılan Redsıs istemci kitaplığını yapılandırmanız gerekebilir.You might need to configure the Redis client library used by your application to enable TLS 1.2 in order to connect to Azure Cache for Redis.

Uygulamanızı TLS 1,2 kullanacak şekilde yapılandırmaConfigure your application to use TLS 1.2

Çoğu uygulama, önbellekleri ile iletişimi işlemek için Redsıs istemci kitaplıklarını kullanır.Most applications use Redis client libraries to handle communication with their caches. Aşağıda, çeşitli programlama dillerinde ve çerçevelerinizdeki bazı popüler istemci kitaplıklarını, TLS 1,2 kullanacak şekilde yapılandırma yönergeleri verilmiştir.Here are instructions for configuring some of the popular client libraries, in various programming languages and frameworks, to use TLS 1.2.

.NET Framework.NET Framework

Redsıs .NET istemcileri, en eski TLS sürümünü varsayılan olarak .NET Framework 4.5.2 veya önceki sürümlerde kullanır ve .NET Framework 4,6 veya sonraki sürümlerde en son TLS sürümünü kullanır.Redis .NET clients use the earliest TLS version by default on .NET Framework 4.5.2 or earlier, and use the latest TLS version on .NET Framework 4.6 or later. .NET Framework eski bir sürümünü kullanıyorsanız, TLS 1,2 'yi el ile etkinleştirebilirsiniz:If you're using an older version of .NET Framework, you can enable TLS 1.2 manually:

  • StackExchange. Reddir: ssl=true sslprotocols=tls12 Bağlantı dizesinde ve ayarlanır.StackExchange.Redis: Set ssl=true and sslprotocols=tls12 in the connection string.
  • Servicestack. redsıs: Servicestack. redin talimatlarını izleyin ve en azından Servicestack. redsıs v 5.6 'yı gerektirir.ServiceStack.Redis: Follow the ServiceStack.Redis instructions and requires ServiceStack.Redis v5.6 at a minimum.

.NET Core.NET Core

Redis .NET Core istemcileri varsayılan işletim sistemi varsayılan TLS sürümüne göre değişir.Redis .NET Core clients default to the OS default TLS version which obviously depends on the OS itself.

İşletim sistemi sürümüne ve uygulanan tüm düzeltme eklerine bağlı olarak, geçerli varsayılan TLS sürümü farklılık gösterebilir.Depending on the OS version and any patches which have been applied, the effective default TLS version can vary. Bu bilgiler hakkında bir bilgi kaynağı olmakla kalmaz, Windows için bir makale aşağıda verilmiştir.While there is one source of info about this, here is an article for Windows.

Ancak, eski bir işletim sistemi kullanıyorsanız veya yalnızca emin olmak istiyorsanız, tercih edilen TLS sürümünü istemci aracılığıyla el ile yapılandırmanızı öneririz.However, if you are using a old OS or just want to be sure, we recommend configuring the preferred TLS version manually through the client.

JavaJava

Redsıs Java istemcileri Java sürüm 6 veya daha önceki bir sürümünde TLS 1,0 kullanır.Redis Java clients use TLS 1.0 on Java version 6 or earlier. TLS 1,0, önbellekte devre dışı bırakılmışsa, jedsıs, Lettuce ve Redisson, redin için Azure önbelleğine bağlanamaz.Jedis, Lettuce, and Redisson can't connect to Azure Cache for Redis if TLS 1.0 is disabled on the cache. Yeni TLS sürümlerini kullanmak için Java çatısını yükseltin.Upgrade your Java framework to use new TLS versions.

Java 7 için Redsıs istemcileri varsayılan olarak TLS 1,2 kullanmaz ancak bu için yapılandırılabilir.For Java 7, Redis clients don't use TLS 1.2 by default but can be configured for it. Jedsıs, aşağıdaki kod parçacığı ile temeldeki TLS ayarlarını belirtmenize olanak sağlar:Jedis allows you to specify the underlying TLS settings with the following code snippet:

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

Letgce ve Redisson istemcileri henüz TLS sürümünün belirtilmesini desteklemez, bu nedenle önbellek yalnızca TLS 1,2 bağlantısı kabul ediyorsa kesilir.The Lettuce and Redisson clients don't yet support specifying the TLS version, so they'll break if the cache accepts only TLS 1.2 connections. Bu istemcilere yönelik düzeltmeler incelenmektedir, bu nedenle bu desteğe sahip güncelleştirilmiş bir sürüm için bu paketlere danışın.Fixes for these clients are being reviewed, so check with those packages for an updated version with this support.

Java 8 ' de, TLS 1,2 varsayılan olarak kullanılır ve çoğu durumda istemci yapılandırmanızda güncelleştirmeler gerektirmemelidir.In Java 8, TLS 1.2 is used by default and shouldn't require updates to your client configuration in most cases. Güvenli olması için uygulamanızı test edin.To be safe, test your application.

Node.jsNode.js

Redsıs ve ıoredin Node, varsayılan olarak TLS 1,2 kullanır.Node Redis and IORedis use TLS 1.2 by default.

PHPPHP

Ön dışPredis

  • PHP 7 ' den önceki sürümler: Predıs yalnızca TLS 1,0 ' i destekler.Versions earlier than PHP 7: Predis supports only TLS 1.0. Bu sürümler TLS 1,2 ile çalışmaz; TLS 1,2 ' i kullanmak için ' i yükseltmeniz gerekir.These versions don't work with TLS 1.2; you must upgrade to use TLS 1.2.

  • PHP 7,0 ile PHP 7.2.1: Predıs, varsayılan olarak yalnızca TLS 1,0 veya 1,1 kullanır.PHP 7.0 to PHP 7.2.1: Predis uses only TLS 1.0 or 1.1 by default. TLS 1,2 ' i kullanmak için aşağıdaki geçici çözümü kullanabilirsiniz.You can use the following workaround to use TLS 1.2. İstemci örneğini oluştururken TLS 1,2 belirtin:Specify TLS 1.2 when you create the client instance:

    $redis=newPredis\Client([
        'scheme'=>'tls',
        'host'=>'host',
        'port'=>6380,
        'password'=>'password',
        'ssl'=>[
            'crypto_type'=>STREAM_CRYPTO_METHOD_TLSv1_2_CLIENT,
        ],
    ]);
    
  • PHP 7,3 ve üzeri sürümler: Predıs, en son TLS sürümünü kullanır.PHP 7.3 and later versions: Predis uses the latest TLS version.

PhpRedisPhpRedis

Phpredıs, herhangi bir PHP sürümünde TLS 'yi desteklemez.PhpRedis doesn't support TLS on any PHP version.

PythonPython

Redin-Kopyala varsayılan olarak TLS 1,2 kullanır.Redis-py uses TLS 1.2 by default.

GOGO

Redigo varsayılan olarak TLS 1,2 kullanır.Redigo uses TLS 1.2 by default.

Ek bilgilerAdditional information