BLOG

AWS가 자체 인증 기관으로 이동하기 위한 준비 방법
작성일: 2018-04-17

2018년 3월 28일 업데이트: 우리는 오래 된 값을 새로운 값으로 교체하여 Amazon 트러스트 서비스 테이블을 업데이트했습니다.

 


 

전송 계층 보안(TLS, 이전의 SSL)은 인터넷에서 교환되는 정보를 암호화하는 데 필수적입니다. 예를 들어 Amazon.com에서는 웹 사이트의 모든 트래픽에 대해 TLS를 사용하고, AWS에서는 이 TLS를 사용하여 AWS서비스에 대한 호출의 보안을 설정합니다.

 

인증서 라고 하는 전자 문서는 이러한 암호화된 연결을 생성할 때 서버의 ID를 확인합니다. 인증서는 웹 브라우저의 주소 필드에 입력한 웹 사이트와 웹 브라우저가 안전하게 통신하고 있다는 증거를 확립하는 데 도움이 됩니다. CA로도 알려진 인증 기관은 특정 도메인에 인증서를 발급합니다. 도메인이 신뢰할 수 있는 CA에서 발급한 인증서를 제공하면 브라우저 또는 응용 프로그램은 연결해도 안전하다는 것을 알게 됩니다.

 

2016년 1월, AWS는 AWS서비스와 함께 사용하기 위해 SSL/TLS인증서를 쉽게 프로비저닝, 관리 및 배포할 수 있는 ACM(AWS Certificate Manager)을 출시했습니다. 이러한 인증서는 Amazon 자체의 CA인 Amazon 트러스트 서비스를 통해 추가 비용 없이 사용할 수 있습니다. 브라우저 및 기타 응용 프로그램이 인증서를 신뢰하려면 인증서의 발급자가 신뢰할 수 있는 인증 기관 목록인 브라우저의 신뢰 저장소에 포함되어 있어야 합니다. CA발급이 신뢰 저장소에 없는 경우 브라우저에 오류 메시지(예시 참조)가 표시되고 응용 프로그램이 응용 프로그램 고유 오류를 표시합니다. Amazon 트러스트 CA가 어디에나 있도록 하기 위해 AWS는 대부분의 브라우저에 있는 루트이며 2005년 이후로 유효한 Starfield Services CA를 구입했습니다. 이것은 당신이 Amazon 트러스트 서비스에서 발급한 인증서를 사용하기 위해 어떤 조치도 취해서는 안 된다는 것을 의미합니다.

 

AWS는 Amazon 트러스트 서비스 CA의 무료 인증서를 고객에게 제공하고 있습니다. 현재 AWS는 Amazon 트러스트 서비스의 인증서를 사용하기 위해 Amazon EC2Amazon DynamoDB와 같은 서비스의 인증서를 이동하는 과정에 있습니다. 이 전환을 처리하기 위해 대부분의 소프트웨어를 변경할 필요는 없지만 예외가 있습니다. 이 블로그 포스트는 당신이 Amazon 트러스트 서비스 CA를 사용할 준비가 되었는지 확인하는 방법을 보여 줍니다.

 

아마존 트러스트 서비스 CA가 귀하의 트러스트 저장소에 있는지 여부를 확인하는 방법

 

다음 표에는 Amazon 트러스트 서비스 인증서가 나열되어 있습니다. 이러한 인증서가 브라우저의 트러스트 저장소에 있는지 확인하려면 다음 표에 있는 각 테스트 URL을 클릭하여 해당 인증서가 작동하는지 확인하십시오. 테스트 URL이 작동하지 않으면 이 예와 유사한 오류를 표시합니다.

 

Distinguished name SHA-256 hash of subject public key information Test URL
CN=Amazon Root CA 1,O=Amazon,C=US fbe3018031f9586bcbf41727e417b7d1c45c2f

47f93be372a17b96b50757d5a2

Test URL
CN=Amazon Root CA 2,O=Amazon,C=US 7f4296fc5b6a4e3b35d3c369623e364ab1af381d

8fa7121533c9d6c633ea2461

Test URL
CN=Amazon Root CA 3,O=Amazon,C=US 36abc32656acfc645c61b71613c4bf21c787f5

cabbee48348d58597803d7abc9

Test URL
CN=Amazon Root CA 4,O=Amazon,C=US f7ecded5c66047d28ed6466b543c40e0743abe

81d109254dcf845d4c2c7853c5

Test URL
CN=Starfield Services Root Certificate Authority – G2,O=Starfield Technologies\, Inc.,L=Scottsdale,ST=Arizona,C=US 2b071c59a0a0ae76b0eadb2bad23bad4580b69

c3601b630c2eaf0613afa83f92

Test URL
Starfield Class 2 Certification Authority 15f14ac45c9c7da233d3479164e8137fe35ee

0f38ae858183f08410ea82ac4b4

Not available*

 

*참고: Amazon은 이 루트를 소유하고 있지 않으며 이 루트에 대한 테스트 URL이 없습니다. 인증서는 여기서 다운로드할 수 있습니다.

 

다음과 같이 주체 공용 키 정보의 SHA-256 해시를 계산할 수 있습니다. certificate.pem에 저장된 PEM암호화 인증서를 사용하여 다음과 같은 openssl 명령을 실행하십시오.

 

openssl x509 -in certificate.pem -noout -pubkey | openssl asn1parse -noout -inform pem -out certificate.key
openssl dgst -sha256 certificate.key

 

예를 들어 PEM으로 인코딩된 파일 sf-class2-root.crt의 StarfieldClass2 인증 기관 자체에서 서명된 인증서를 사용하면 다음과 같은 openssl 명령을 사용할 수 있습니다.

 

openssl x509 -in sf-class2-root.crt -noout -pubkey | openssl asn1parse -noout -inform pem -out sf-class2-root.key
openssl dgst -sha256 sf-class2-root.key ~
SHA256(sf-class2-root.key)= 15f14ac45c9c7da233d3479164e8137fe35ee0f38ae858183f08410ea82ac4b4

 

Amazon트러스트 서비스 CA가 신뢰 저장소에 없는 경우 어떻게 합니까?

 

테스트 URL 중 하나라도 테스트에 실패하면 트러스트 저장소를 업데이트해야 합니다. 트러스트 저장소를 업데이트하는 가장 쉬운 방법은 사용 중인 운영 체제 또는 브라우저를 업그레이드하는 것입니다.

 

다음 운영 체제에서 Amazon 트러스트 서비스 CA를 찾을 수 있습니다(출시 날짜는 괄호 안에 있음).

 

  • 2005년 1월 이후의 업데이트가 설치된 마이크로소프트 Windows 버전(Windows Vista, Windows 7, Windows 서버 2008 및 최신 버전)
  • Mac OS X 10.4 with Java for Mac OS X 10.4 Release 5, Mac OS X 10.5 and 최신 버전
  • Red Hat Enterprise Linux 5 (March 2007), Linux 6, and Linux 7 and CentOS 5, CentOS 6, and CentOS 7
  • Ubuntu 8.10
  • Debian 5.0
  • Amazon Linux (모든 버전)
  • Java 1.4.2_12, Java 5 update 2, and 모든 최신 버전인 Java 6, Java 7, and Java 8 포함.

 

모든 최신 브라우저는 Amazon의 CA를 신뢰합니다. 브라우저를 업데이트하기만 하면 브라우저의 인증서 번들을 업데이트할 수 있습니다. 각 웹 사이트에서 다음 브라우저를 업데이트하는 지침을 확인할 수 있습니다.

 

 

응용 프로그램이 사용자 정의 트러스트 저장소를 사용하는 경우 응용 프로그램의 트러스트 저장소에 Amazon루트 CA를 추가해야 합니다. 이 작업에 대한 지침은 응용 프로그램 또는 플랫폼에 따라 다릅니다. 사용 중인 응용 프로그램 또는 플랫폼의 설명서를 참조하십시오.

 

AWS SDK및 CLI

 

대부분의 AWS SDK및 CLI는 Amazon트러스트 서비스 CA로의 전환에 영향을 받지 않습니다. 2013년 10월 29일 이전에 출시된 Python AWS SDK또는 CLI버전을 사용하는 경우에는 업그레이드해야 합니다. .NET, Java, PHP, Go, JavaScript및 C++ SDK와 CLI에서는 인증서가 번들로 제공되지 않으므로 해당 인증서는 기본 운영 체제에서 제공되었습니다. Ruby SDK는 2015년 6월 10일 이후로 적어도 하나의 필수 CA를 포함하고 있습니다. 그 이전에는 Ruby V2 SDK가 인증서를 번들로 만들지 않았습니다.

 

인증서 고정
도메인 단위로 신뢰하는 CA를 제재하는데 인증서 고정 이라는 기술을 사용하는 경우에는 Amazon트러스트 서비스 CA를 포함하도록 고정을 조정해야 합니다. 인증서 고정 기능은 애플리케이션을 패러디한 호스트 (합법적인 호스트로 가장한 불법 호스트)에 대한 연결을 만들도록 속이기 위해 잘못 지정된 인증서를 사용하여 공격자로부터 사용자를 보호합니다. 특정 고정 인증서에 대한 제한은 발급된 인증서가 예상된 인증서인지 확인하여 이루어집니다. 이 작업은 서버에서 받은 인증서 공용 키의 해시가 응용 프로그램에 저장된 예상 해시와 일치하는지 확인하여 수행됩니다. 해시가 일치하지 않으면 코드에서 연결을 중지합니다.

 

AWS는 잠재적인 가용성 위험을 초래할 수 있기 때문에 인증서 고정 사용에 대해 권장하지 않습니다. 고정한 인증서가 교체된 경우 응용 프로그램이 연결되지 않습니다. 사용 사례에 고정이 필요한 경우에는 개별 인증서에 고정하지 말고 CA에 고정하는 것이 좋습니다. Amazon트러스트 서비스 CA에 고정하는 경우 이 게시물의 앞에 있는 표에 모든 CA를 고정해야 합니다.

 

원문 URL: https://aws.amazon.com/ko/blogs/security/how-to-prepare-for-aws-move-to-its-own-certificate-authority/

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