BLOG

CloudFront가 이제 오리진에서 HTTPS 연결에 대한 ECDSA 인증서를 지원합니다
작성일: 2018-04-03

인터넷 트래픽을 암호화하기 위한 SSL/TLS(Secure Sockets Layer/Transport Layer Security)프로토콜의 적용이 사이버 범죄, 준수 요구 사항(PCI v3.2) 및 고객 데이터 보안에 대한 약속에 따라 증가했습니다. 상위 135,000개의 웹 사이트에 대한 조사에서 55% 이상이 SSL.1로 안전하다는 것이 밝혀졌습니다. Amazon CloudFront여기 백서에 읽어 볼 수 있는 콘텐츠를 보호하고 안전하게 하는데 도움이 되는 몇 가지 기능을 고객에게 제공합니다. 이 블로그에서는 오리진 서버에 대한 HTTPS 연결을 위한 ECDSA 인증서에 대한 CloudFront의 지원을 소개합니다.

 

SSL/TLS 핸드셰이크 프로세스

먼저 CloudFront가 보안 연결을 설정하여 CloudFront와 오리진 서버 간에 처리되는 데이터를 보호하는 데 사용하는 SSL/TLS 핸드셰이크 프로세스에 대해 간략히 살펴보겠습니다. HTTPS 프로토콜을 사용자가 선택한 암호화 알고리즘(암호화 제품군)과 함께 사용하여 오리진과 CloudFront 사이에 안전한 통신 채널을 설정합니다.

 

CloudFront가 오리진 서버와 보안 연결을 시작하면 두 서버 간의 인증이 비대칭 암호화를 사용하여 수행됩니다. SSL/TLS 핸드셰이크 프로세스는 CloudFront가 오리진 서버에 “Hello” 메시지를 전송하는 것으로 시작합니다. 이에 대한 응답으로, 오리진 서버는 개인 키를 사용하여 생성되고 신뢰할 수 있는 CA(인증 기관)와 해당 공용 키가 서명한 디지털 인증서를 보냅니다. CloudFront는 인증서를 받을 때 제공된 공용 키를 사용하여 디지털 서명을 확인하고 안전한 암호화 연결을 설정합니다.

 

ECDSA vs RSA

연결의 암호화 강도는 선택한 알고리즘의 키의 크기와 복잡성에 따라 달라집니다. 기존 고객의 오리진 서버에서는 RSA 2048 비트 비대칭 키를 TLS 종료에 사용했습니다. RSA 알고리즘은 두 개의 큰 기본 숫자로 이루어진 제품을 사용하며, 여기에 다른 숫자

 

가 추가되면 공용 키가 생성됩니다. 개인 키는 관련 번호입니다. RSA의 강력한 장점은 두 개의 큰 기본 숫자로 이루어진 제품을 제작해야 하는 키를 파손하기가 어려울 것으로 가정합니다. 하지만 컴퓨팅 기술이 발전함에 따라 암호화를 더욱 쉽게 해제할 수 있는 RSA 알고리즘의 유효성이 감소했습니다. RSA를 계속 사용하는 동안 암호화 강도를 유지하려면 RSA 키의 크기를 늘리는 것이 하나의 방법입니다. 이 접근 방식은 큰 키를 사용하면 암호화에 대한 컴퓨팅 비용이 증가하기 때문에 쉽게 확장할 수 없습니다.

 

또는 보안의 기반이 되는 기본적인 수학적 문제를 변경하는 ECDSA를 선택할 수 있습니다. ECDSA는 그 근거가 알려져 있을 때 무작위 타원 곡선의 이산 로그에 대해서 해결하기 어려운 원리, 즉 타원 곡선 이산 로그 문제(ECDLP)로 잘 알려져 있습니다. 이렇게 하면 키의 길이를 줄일 수 있어 훨씬 더 긴 키 크기에서 RSA에 해당하는 보안 수준을 확보할 수 있습니다. 다음 표는 특정 키의 크기에 대한 비대칭 암호화 알고리즘의 최대 보안 강도에 대한 NIST의 추정치를 제공합니다.

 

 

보안 이점 외에도 작은 키를 사용하면 오리진이 처리할 수 있는 초당 TLS 핸드셰이크의 수를 늘리는 알고리즘을 더 빠르게 사용할 수 있습니다. 이렇게 ECDSA를 사용하여 처리 성능이 향상되면 다른 워크로드를 처리하는 리소스를 해제하여 암호화에 필요한 컴퓨팅 주기가 단축 될 수 있습니다. 처리량 이점을 측정하기 위해 환경에서 OpenSSL 속도 테스트를 실행하여 2048비트 RSA와 256비트 ECDSA(nistp256)를 비교했으며, 그 결과는 다음과 같습니다.

 

 

위의 두 표에 나와 있는 결과와 NIST 보안 강도 추정치에 따르면, nists256 옵션은 2048 비트 RSA보다 95%더 빨랐지만 3072 비트 RSA와 같은 보안 강도를 제공했습니다.

 

오리진에서 ECDSA에 대한 CloudFront 지원

암호화 강도와 성능을 모두 최적화하기 위해 CloudFront에서는 “256비트 ecdsa(nistp256)” 및 “384비트 ecdsa(nistp384)” 타원형 곡선을 지원합니다. 다음은 CloudFront가 ECDSA에 대해 지원하는 암호 그룹의 전체 목록입니다.

 

  • ECDHE-ECDSA-AES256-GCM-SHA384
  • ECDHE-ECDSA-AES256-SHA384
  • ECDHE-ECDSA-AES256-SHA
  • ECDHE-ECDSA-AES128-GCM-SHA256
  • ECDHE-ECDSA-AES128-SHA256
  • ECDHE-ECDSA-AES128-SHA

 

오리진에서 ECDSA를 사용하려면 사용 가능한 곡선 중 하나를 선택하여 개인 키를 생성하면 됩니다. 그 다음 ECDSA 디지털 인증서를 생성하여 오리진이 더 좋은 것으로 설정되어야 합니다. 이 기능을 사용하기 위해 CloudFront 콘솔 또는 API의 설정을 변경할 필요가 없습니다. 이 기능을 사용하는 데 추가 비용도 들지 않습니다.

 

오리진 서버에 대한 ECDSA로 전환

CloudFront는 TLS 연결에 대해 RSA를 계속 지원합니다. 하지만 오리진 서버와의 TLS 핸드셰이크를 위한 현재 암호화 기능의 강력함 및/또는 처리량과 관련하여 문제가 있는 경우 ECDSA가 바로 탐색할 수 있는 좋은 옵션입니다. AWS 애플리케이션 로드 밸런서를 여러분의 로드 밸런서로 사용하는 경우 ECDSA 인증서도 로드 밸런서와 연결할 수 있습니다. ECDSA를 사용하면 보안 및 성능에 도움이 될 뿐만 아니라, 암호화 기술의 계산 비용도 줄어들게 됩니다. 또한 보너스도 추가됩니다!

 

CloudFront에서 사용할 수 있는 암호화 및 프로토콜에 대한 자세한 내용은 개발자 가이드를 참조하십시오.

 

원문 URL: https://aws.amazon.com/ko/blogs/networking-and-content-delivery/cloudfront-now-supports-ecdsa-certificates-for-https-connections-to-origins/

** 메가존 TechBlog는 AWS BLOG 영문 게재글중에서 한국 사용자들에게 유용한 정보 및 콘텐츠를 우선적으로 번역하여 내부 엔지니어 검수를 받아서, 정기적으로 게재하고 있습니다. 추가로 번역및 게재를 희망하는 글에 대해서 관리자에게 메일 또는 SNS페이지에 댓글을 남겨주시면, 우선적으로 번역해서 전달해드리도록 하겠습니다.