클라이언트에 대한 하이브리드 양자 후 TLS 구성하기

클라이언트에 대한 하이브리드 양자 후 TLS 구성하기 (Configuring hybrid post-quantum TLS for your client)

Amazon S3에서 PQ-TLS를 사용하려면 클라이언트가 양자 후 키 교환 알고리즘과 하이브리드 방식을 지원하도록 구성해야 해요.

출처: 문서

본문

Amazon S3에서 PQ-TLS를 사용하려면 클라이언트가 양자 후 키 교환 알고리즘을 지원하도록 구성해야 해요. 또한 클라이언트가 전통적인 타원 곡선 암호화와 ML-KEM(Module-Lattice-Based Key Encapsulation Mechanism) 같은 양자 후 알고리즘을 결합하는 하이브리드 방식을 지원하는지 확인해야 해요.

구체적인 구성은 클라이언트 라이브러리와 프로그래밍 언어에 따라 달라져요. 자세한 내용은 하이브리드 양자 후 TLS 활성화를 참고하세요.

클라이언트 구성 예제: AWS SDK for Java 2

이 절차에서는 AWS Common Runtime HTTP Client에 대한 Maven 종속성을 추가해요. 다음으로 양자 후 TLS를 선호하는 HTTP 클라이언트를 구성해요. 그런 다음 이 HTTP 클라이언트를 사용하는 Amazon S3 클라이언트를 만들어요.

참고 미리 보기로 제공되었던 AWS Common Runtime HTTP Client는 2023년 2월에 정식 출시되었어요. 이 릴리스에서 tlsCipherPreference 클래스와 tlsCipherPreference() 메서드 매개 변수는 postQuantumTlsEnabled() 메서드 매개 변수로 대체되었어요. 미리 보기 중에 이 예제를 사용하고 있었다면 코드를 업데이트해야 해요.

  1. Maven 종속성에 AWS Common Runtime 클라이언트를 추가해요. 최신 사용 가능한 버전을 사용하는 것이 좋아요. 예를 들어 다음 구문은 AWS Common Runtime 클라이언트 버전 2.30.22를 Maven 종속성에 추가해요.

    <dependency>
        <groupId>software.amazon.awssdk</groupId>
        <artifactId>aws-crt-client</artifactId>
        <version>2.30.22</version>
    </dependency>
    
  2. 하이브리드 양자 후 암호 스위트를 활성화하려면 프로젝트에 AWS SDK for Java 2.x를 추가하고 초기화해요. 그런 다음 다음 예제와 같이 HTTP 클라이언트에서 하이브리드 양자 후 암호 스위트를 활성화해요. 이 코드는 postQuantumTlsEnabled() 메서드 매개 변수를 사용해 권장되는 하이브리드 양자 후 암호 스위트인 ML-KEM과 함께하는 ECDH를 선호하는 AWS Common Runtime HTTP 클라이언트를 구성해요. 그런 다음 구성된 HTTP 클라이언트를 사용해 Amazon S3 비동기 클라이언트 S3AsyncClient의 인스턴스를 빌드해요. 이 코드가 완료된 후 S3AsyncClient 인스턴스의 모든 Amazon S3 API 요청은 하이브리드 양자 후 TLS를 사용해요.

    중요 v2.35.11부터 호출자는 클라이언트에 대해 하이브리드 양자 후 TLS를 활성화하기 위해 더 이상 .postQuantumTlsEnabled(true)를 설정할 필요가 없어요. v2.35.11보다 새로운 모든 버전은 기본적으로 양자 후 TLS를 활성화해요.

    // Configure HTTP client
    SdkAsyncHttpClient awsCrtHttpClient = AwsCrtAsyncHttpClient.builder()
              .postQuantumTlsEnabled(true)
              .build();
    
    // Create the Amazon S3 async client
    S3AsyncClient s3Async = S3AsyncClient.builder()
             .httpClient(awsCrtHttpClient)
             .build();
    
  3. 하이브리드 양자 후 TLS로 Amazon S3 호출을 테스트해요. 구성된 Amazon S3 클라이언트에서 Amazon S3 API 작업을 호출하면 호출이 하이브리드 양자 후 TLS를 사용해 Amazon S3 엔드포인트로 전송돼요. 구성을 테스트하려면 ListBuckets와 같은 Amazon S3 API를 호출해요.

    ListBucketsResponse reponse = s3Async.listBuckets();
    

하이브리드 양자 후 TLS 구성 테스트

Amazon S3를 호출하는 애플리케이션에서 하이브리드 암호 스위트로 다음 테스트를 실행하는 것을 고려해요.

  • 부하 테스트와 벤치마크를 실행해요. 하이브리드 암호 스위트는 전통적인 키 교환 알고리즘과 다르게 작동해요. 더 긴 핸드셰이크 시간을 허용하도록 연결 제한 시간을 조정해야 할 수 있어요. AWS Lambda 함수 내에서 실행 중이라면 실행 제한 시간 설정을 연장해요.
  • 다양한 위치에서 연결해 보세요. 요청이 거치는 네트워크 경로에 따라 심층 패킷 검사(DPI)를 수행하는 중간 호스트, 프록시 또는 방화벽이 요청을 차단할 수 있음을 발견할 수 있어요. 이는 TLS 핸드셰이크의 ClientHello 부분에서 새 암호 스위트를 사용하거나 더 큰 키 교환 메시지로 인해 발생할 수 있어요. 이러한 문제를 해결하는 데 어려움이 있다면 보안 팀이나 IT 관리자와 협력해 관련 구성을 업데이트하고 새 TLS 암호 스위트를 차단 해제해요.

더 알아보기 (Learn more)