클라이언트에 대한 하이브리드 양자 후 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()메서드 매개 변수로 대체되었어요. 미리 보기 중에 이 예제를 사용하고 있었다면 코드를 업데이트해야 해요.
-
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> -
하이브리드 양자 후 암호 스위트를 활성화하려면 프로젝트에 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(); -
하이브리드 양자 후 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 암호 스위트를 차단 해제해요.