다음을 통해 공유


Azure Cache for Redis 사용에서 TLS 1.0과 1.1 제거

TLS(전송 계층 보안) 버전 1.2 이상을 배타적으로 사용하려는 업계 전반의 요구를 충족하기 위해 Azure Cache for Redis는 2024년 11월 TLS 1.2 사용을 요구하는 방향으로 나아가고 있습니다. TLS 1.0과 1.1은 BEAST 및 POODLE과 같은 공격에 취약하며, 다른 CVE(Common Vulnerabilities and Exposures) 취약점이 있는 것으로 알려져 있습니다.

TLS 버전 1.0 및 1.1은 또한 PCI(Payment Card Industry) 규정 준수 표준에서 권장하는 최신 암호화 방법 및 암호화 그룹을 지원하지 않습니다. TLS 보안 블로그에는 이러한 취약점 중 일부가 자세히 설명되어 있습니다.

Important

2024년 11월 1일에 TLS 1.2 요구 사항이 적용됩니다.

Important

Enterprise 계층은 TLS 1.2만 지원하기 때문에 이 문서의 TLS 1.0/1.1 사용 중지 콘텐츠는 Azure Cache for Redis Enterprise/Enterprise Flash에 적용되지 않습니다.

이러한 활동의 일환으로 Azure Cache for Redis가 다음과 같이 변경될 수 있습니다.

  • 1단계: Azure Cache for Redis는 새 캐시 만들기에 대한 최소TLSVersion 설정 옵션으로 TLS 1.0/1.1 제공을 중단합니다. 이 시점에 기존 캐시 인스턴스는 업데이트되지 않습니다. 기존 캐시에 대해 MinimumTLSVersion을 1.0 또는 1.1로 설정할 수 없습니다.
  • 2단계: Azure Cache for Redis는 2024년 11월 1일부터 TLS 1.1과 TLS 1.0 지원을 중지합니다. 이러한 변경 후 애플리케이션은 TLS 1.2 이상을 사용하여 캐시와 통신해야 합니다. 모든 캐시에 대한 MinimumTLSVerion을 1.2로 업데이트하는 동안 Azure Cache for Redis 서비스를 계속 사용할 수 있습니다.
날짜 설명
2023년 9월 TLS 1.0/1.1 종료 공지 사항
2024년 3월 1일 2024년 3월 1일부터 최소 TLS 버전이 1.0 또는 1.1로 설정된 새 캐시를 만들 수 없으며 기존 캐시에 대해 MinimumTLSVersion을 1.0 또는 1.1로 설정할 수 없습니다. 이 시점에서는 기존 캐시에 대한 최소 TLS 버전이 자동으로 업데이트되지 않습니다.
2024년 10월 31일 모든 애플리케이션이 TLS 1.2를 사용하여 Azure Cache for Redis에 연결되고 캐시 설정의 최소 TLS 버전이 1.2로 설정되어 있는지 확인합니다.
2024년 11월 1일 모든 캐시 인스턴스의 최소 TLS 버전이 1.2로 업데이트되었습니다. 이는 Azure Cache for Redis 인스턴스가 이 시점에서 TLS 1.0 또는 1.1을 사용하는 연결을 거부한다는 의미입니다.

Important

엔터프라이즈 계층은 TLS 1.2만 지원하므로 이 문서의 콘텐츠는 Azure Cache for Redis Enterprise/Enterprise Flash에 적용되지 않습니다.

이 변경의 일부로 Azure Cache for Redis는 안전하지 않은 이전 암호화 그룹에 대한 지원을 제거합니다. 캐시가 최소 TLS 1.2로 구성된 경우 지원되는 암호화 제품군은 다음 제품군으로 제한됩니다.

  • TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384
  • TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256

다음 섹션에서는 이러한 이전 TLS 버전에 대한 종속성을 검색하고 애플리케이션에서 제거하는 방법에 대한 지침을 제공합니다.

애플리케이션이 이미 규격에 맞는지 확인

테스트 또는 스테이징 캐시에서 최소 TLS 버전 값을 TLS 1.2로 설정한 다음 테스트를 실행하여 애플리케이션이 TLS 1.2에서 작동하는지 확인할 수 있습니다. 최소 TLS 버전 설정은 Azure Portal에서 캐시 인스턴스의 고급 설정에 있습니다. 이렇게 변경한 후에도 애플리케이션이 예상대로 계속 작동하면 앱에서 TLS 1.2 이상을 사용합니다.

참고 항목

포털에서 캐시를 연 상태에서 리소스 메뉴에 있는 고급을 선택합니다. 캐시 인스턴스의 최소 TLS 버전이 기본값으로 설정된 경우 최소 TLS 버전은 TLS 1.2로 설정됩니다. TLS 1.2는 명시적 값을 선택하지 않은 경우 캐시 인스턴스에 할당되는 기본값입니다.

TLS 1.2 이상을 사용하도록 애플리케이션 구성

대부분의 애플리케이션은 Redis 클라이언트 라이브러리를 사용하여 캐시와의 통신을 처리합니다. 다음은 다양한 프로그래밍 언어 및 프레임워크에서 TLS 1.2를 사용하도록 널리 사용되는 클라이언트 라이브러리 중 일부를 구성하는 지침입니다.

.NET

Redis .NET 클라이언트는 .NET Framework 4.5.2 또는 이전 버전에서 기본적으로 가장 오래된 TLS 버전을 사용하고 .NET Framework 4.6 또는 이상 버전에서 최신 TLS 버전을 사용합니다.클라이언트 컴퓨터 이전 버전의 .NET Framework를 사용하는 경우 TLS 1.2를 수동으로 사용하도록 설정합니다.

  • StackExchange.Redis: 연결 문자열에서 ssl=truesslProtocols=tls12를 설정합니다.
  • ServiceStack.Redis:ServiceStack.Redis 지침을 따르고, 최소 ServiceStack.Redis v5.6 이상이 필요합니다.

.NET Core

Redis .NET Core 클라이언트는 OS 자체에 따라 달라지는 OS 기본 TLS 버전으로 기본 설정됩니다.

OS 버전과 적용된 패치에 따라 유효한 기본 TLS 버전이 달라질 수 있습니다. 자세한 내용은 .NET Framework를 사용한 TLS(전송 계층 보안) 모범 사례를 참조하세요.

그러나 이전 OS를 사용하고 있는 경우 클라이언트를 통해 기본 설정된 TLS 버전을 수동으로 구성하는 것이 좋습니다.

Java

Redis Java 클라이언트는 Java 6 또는 이전 버전에서 TLS 1.0을 사용합니다. 캐시에서 TLS 1.0이 비활성화되면 Jedis, Lettuce 및 Redisson이 Azure Cache for Redis에 연결할 수 없습니다. 새 TLS 버전을 사용하도록 Java 프레임워크를 업그레이드하십시오.

Java 7의 경우 Redis 클라이언트는 기본적으로 TLS 1.2를 사용하지 않지만 그에 맞게 구성할 수 있습니다. 예를 들어 Jedis를 사용하면 다음 코드 조각을 이용해 기본 TLS 설정을 지정할 수 있습니다.

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

Lettuce 및 Redisson 클라이언트는 아직 TLS 버전 지정을 지원하지 않습니다. 캐시가 TLS 1.2 연결만 허용하면 중단됩니다. 이러한 클라이언트에 대한 수정 사항을 검토 중이므로 해당 패키지에서 지원을 포함하는 업데이트된 버전이 있는지 확인하십시오.

Java 8에서는 TLS 1.2가 기본적으로 사용되며 대부분의 경우 클라이언트 구성을 업데이트하지 않아도 됩니다. 안전을 위해 애플리케이션을 테스트하십시오.

Java 17부터는 TLS 1.3이 기본적으로 사용됩니다.

Node.js

Node Redis와 ioredis는 모두 TLS 1.2, 1.3을 지원합니다.

PHP

  • PHP 7 이전 버전: Predis는 TLS 1.0만 지원합니다. 이 버전은 TLS 1.2에서 작동하지 않습니다. TLS 1.2를 사용하려면 업그레이드해야 합니다.

  • PHP 7.0 ~ PHP 7.2.1: Predis는 기본적으로 TLS 1.0 또는 1.1만 지원합니다. 다음 해결 방법을 사용하여 TLS 1.2를 사용할 수 있습니다. 클라이언트 인스턴스를 만들 때 TLS 1.2를 지정합니다.

    $redis=newPredis\Client([
        'scheme'=>'tls',
        'host'=>'host',
        'port'=>6380,
        'password'=>'password',
        'ssl'=>[
            'crypto_type'=>STREAM_CRYPTO_METHOD_TLSv1_2_CLIENT,
        ],
    ]);
    
  • PHP 7.3 이상 버전: Predis에서 최신 TLS 버전을 사용합니다.

PhpRedis

PhpRedis는 PHP 버전에서 TLS를 지원하지 않습니다.

Python

Redis-py는 기본적으로 TLS 1.2를 사용합니다.

이동

Redigo는 기본적으로 TLS 1.2를 사용합니다.

추가 정보