다음을 통해 공유


Azure Cosmos DB에 대한 예정된 TLS 1.3 지원 준비

적용 대상: NoSQL MongoDB Cassandra Gremlin 테이블

Azure Cosmos DB는 보안 모범 사례에 맞게 전 세계 플랫폼의 퍼블릭 엔드포인트에서 TLS 1.3 지원을 사용하도록 설정합니다. 2025년 8월 31일부터 공식적으로 TLS 1.0/1.1을 더 이상 사용하지 않습니다. TLS 1.2 이상만 지원됩니다. 이 문서에서는 Azure Cosmos DB용 TLS 1.3의 향후 지원을 준비하는 방법에 대한 추가 지침을 제공합니다. 

TLS 1.3은 이전 버전에 비해 훨씬 향상된 기능을 제공합니다. TLS 1.3의 개선은 더 빠른 핸드셰이크 및 간소화된 더 안전한 암호 제품군, 즉 TLS_AES_256_GCM_SHA384 및 TLS_AES_128_GCM_SHA256을 제공하여 성능과 보안 모두에 중점을 둡니다. 특히 TLS 1.3은 이를 지원하지 않는 주요 교환 알고리즘을 제거하여 PFS(Perfect Forward Secrecy)의 우선 순위를 지정합니다. 

사용 가능한 최신 TLS 버전을 활용하는 클라이언트는 사용 가능한 경우 자동으로 TLS 1.3을 선택합니다. Azure Cosmos DB는 TLS 1.3 외에도 TLS 1.2를 계속 지원합니다. 

이러한 문제는 TLS 1.3 사용, 잠재적 효과 및 완화와 관련된 몇 가지 알려진 문제입니다.

알려진 문제, 영향 및 완화

  • JDK 관련 문제: Java 런타임 엔진이 TLS 1.3 4.1.68.Final 을 지원하지 않는 경우 클라이언트가 직접 모드 연결에서 TLS 핸드셰이크를 실패하게 하는 버그가 포함되어 있습니다 4.1.86.Final . 4.20.0에서 4.40.0에 이르는 Azure Cosmos DB Java SDK 버전에는 이 버그가 있는 io.netty에 대한 전이적 종속성이 있습니다. 여기에 표시된 것처럼 예외가 java.lang.IllegalArgumentException 발생하여 클라이언트가 실패합니다.

     Caused by: io.netty.handler.codec.DecoderException: javax.net.ssl.SSLHandshakeException: General OpenSslEngine problem at 
    ...       
    Caused by: java.lang.IllegalArgumentException: TLSv1.3 at sun.security.ssl.ProtocolVersion.valueOf(ProtocolVersion.java:187)
    
  • 완화를 위한 권장 사항:

    • 옵션 1: (필수) Azure Cosmos DB Java SDK를 최소 권장 버전으로 업그레이드합니다.
    • 옵션 2: 최신 SDK 버전으로 업그레이드하는 것이 항상 가능하지는 않을 수 있습니다. 애플리케이션을 최신 SDK로 전환하는 동안 게이트웨이 모드로 연결을 전환하여 이 문제를 해결할 수 있습니다. 프로덕션 환경에 배포하기 전에 애플리케이션을 철저히 테스트해야 합니다.

참고 항목

클라이언트가 TLS 1.3을 사용하도록 설정하려면 Java 런타임에서 TLS 1.3을 지원해야 합니다.