brunch

You can make anything
by writing

C.S.Lewis

by 테크유람 Mar 28. 2021

ROOT CA 인증서는 무엇인가?

SSL 인증서 체인의 최상단, ROOT CA

중요한 데이터를 다루는 대부분의 웹 사이트들은 HTTPS(HTTP Secure)를 사용하고 있습니다. SSL 인증서는 HTTPS 통신을 통해 웹 사이트의 콘텐츠가 브라우저에 전송되는 동안 사이트에서 주고받는 모든 데이터를 암호화합니다. 엄밀히 말하면 보안이 적용된 통신 채널을 제공한다고 할 수 있습니다.


SSL 인증서를 통해 클라이언트(브라우저)와 서버 간 통신을 보안화하고 통신 과정에서 발생할 수 있는 스니핑(데이터 엿보기), 피싱(유사 사이트), 데이터 변조 등의 해킹을 방지할 수 있습니다. SSL은 대칭키 암호화 방식과 공개키 암호화 방식을 사용합니다.


SSL 인증서는 CA (Certificate Authority, 인증 기관)라고도 하는 인증서 발급 회사에서 시작하는 ROOT 인증서에서 시작합니다. 일반적으로 인증서는 ROOT, Intermediate(중간 인증서), Leaf(서버 인증서) 3단계로 구성되어 있고 이를 인증서 체인(certificate chain)이라고 합니다. 사용자가 구입하는 SSL 인증서는 Leaf 인증서를 의미하며 이는 인증서 체인의 일부이지 전체가 아닙니다. 이 3개의 인증서 체인은 하위 구조의 인증서를 서명하고 상위 구조의 인증서를 참고하는 방식으로 만들어집니다.


즉 인증서 체인은 SSL 인증서(서버 인증서)에서 시작하여 ROOT 인증서로 끝나는 인증서 목록으로 구성됩니다. 서버의 인증서를 신뢰하려면 해당 서명을 루트 CA로 다시 추적할 수 있어야 합니다. 브라우저가 웹 사이트에 접속하면 웹 사이트의 인증서를 다운로드하면서 해당 인증서를 루트에 다시 연결하기 시작합니다. 체인을 따라가며 신뢰할 수 있는 루트 인증서에 도달할 때까지 계속해서 역추적합니다.


<3개의 인증서 체인>


루트 CA 인증서는 CA에서 자체 서명한(self-signed) 인증서로 공개키 기반 암호화를 사용합니다. 모든 유효한 SSL 인증서는 업계에서 보안 리더로 알려진 신뢰할 수 있는 CA가 발행한 루트 CA 인증서 아래 체인에 위치합니다.


중간 인증서는 루트 인증서와 SSL 인증서 사이에 구분을 만들어 위험을 완화하도록 설계된 인증서입니다. 이는 루트 인증서가 가장 많은 권한을 갖고 보호되어야 하기 때문에 루트 인증서가 손상될 경우를 대비합니다.


네이버 블로그의 인증서 체인을 살펴보겠습니다. 먼저 네이버 블로그에 접속하여 브라우저 주소창의 주소 앞 열쇠 모양을 더블클릭하여 팝업 된 메뉴 중 "Certificate" 부분을 또 클릭합니다.


<브라우저에서 인증서 찾는 방법>


새로운 레이어 화면에서 다음과 같은 인증서 정보를 볼 수 있습니다.

<인증서 정보 조회하기>


네이버 블로그가 사용하는 인증서 정보는 다음과 같습니다.

ROOT CA: DigiCert라는 미국 회사가 ROOT CA 인증서를 만들었습니다.

중간 인증서: DigiCert SHA2 Secure Server CA

SSL 인증서: blog.naver.com 도메인 전용 인증서


인증서 중간을 보면 "This certificate is valid"라는 문구가 있습니다. 이는 네이버 블로그에 설치된 인증서를 접속한 브라우저도 유효하다고 인정한 것이고 정상적으로 SSL 통신을 웹 서버와 진행할 수 있다는 의미입니다. 브라우저 혹은 Microsoft, Apple과 같은 운영 체제 제작사는 믿을 수 있는 CA 리스트를 가지고 있고 이를 바탕으로 유효하고 적법한 인증서인지를 확인합니다.


루트 CA 인증서는 웹 브라우저의 특정 저장소에 포함되어 있고 일부 운영 체제에는 사전 설치되어 있기 때문에 따로 다운로드할 필요는 없습니다. 루트 인증서를 발급한 기관이 운영 체제가 신뢰할 수 있는 루트 CA 목록에 없으면 인증서 자체는 신뢰할 수 있는 인증서가 아니라는 경고가 표시됩니다.

<신뢰할 수 없는 인증서의 에러 페이지>


어떤 ROOT CA들이 브라우저에서 유효하다고 인정받고 있는지 리스트가 궁금하다면 브라우저 - 설정 - 보안 메뉴에서 확인 가능합니다.

<크롬 브라우저가 신뢰하는 ROOT CA 확인하기>







매거진의 이전글 SASE란 무엇인가?
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari