감시자는 누가 감시하는가? 인증서 투명성(CT; Certificate Transparency) 표준


CA 의 문제

Web 은 이제 인터넷과 동의어로 쓰일 정도로 성공한 서비스이며 HTTP 기술을 기반으로 하고 있습니다.

사용자가 많아지다 보니 보안이 중요해져서 보안성을 갖춘 HTTPS 가 점점 많이 쓰이고 있고 google 같은 경우 HTTPS 를 우선적으로 indexing 하고 검색 결과에 노출하고 있습니다.

HTTPS 는 인증서 발급 기관(CA;  Certificate Authority)에 대한 신뢰를 기반으로 하고 있습니다.

기본적으로 브라우저에 탑재된 CA 를 신뢰하고 신뢰하는 CA 가 발급한 SSL/TLS 인증서(이하 인증서)를 믿고 사이트에 HTTPS 로 접근하게 됩니다.


인증서 발급은 공개키 기반 구조(PKI; Public Key infrastructure) 에 의해 운영되는데 PKI 는 인증기관(CA)이 하위에 인증 기관(SubCA)을 둘 수 있게 설계되어 있습니다.

이런 구조는 CA 의 부하를 줄이고 하위 CA 가 특정 지역에서 신원 확인 업무를 대행하여 고객 만족도가 높아지는 등 여러 장점이 있습니다.


하지만 만약 CA 나 하위 CA 가 해킹당하거나, 실수 또는 의도적으로 잘못된 인증서를 발급하게 되면 공격자는 중간자 공격(Man in the Middle Attack)을 하거나 도메인 소유자의 비즈니스에 심각한 피해를 입힐수 있습니다.

기존 PKI 체계에서는 CA 가 발급한 인증서 전체 목록을 알기가 어려웠고 이에 따라 특정 도메인에 대한 인증서 발급 여부는 도메인 소유자도 알기가 어려운 문제가 있었습니다.


이는 왓치맨에서도 제시한 "감시자는 누가 감시하는가?" 라는 질문을 불러일으키게 됩니다.


왓치맨 포스터

CT란

인증서 투명성(이하 CT)는 위와 같은 문제를 해결하기 위한 표준으로 CA 나 하위 CA가 발급한 SSL 인증서를 인터넷에 공개된 Database 에 기록하고 공개하고 질의할수 있는 시스템으로 digicert, sectigo 등 많은 CA 들과 facebook, google, apple, cloudflare 등이 참여하고 있는 SSL/TLS 인증서 발급에 대해 감사(auditing)와 모니터링(monitoring)을 위한 표준입니다.


2013년 이후 인증서는 약 52억개(5,240,531,903)가 발급된걸로 기록되고 있습니다. (출처: Certificate Transparency : Certificate Transparency)

CT 에 참여한 CA 는 인증서 발급시 즉시 발급 정보를 전송하며 발급한 인증서 정보는 시점 확인(time stamping) 을 찍은 후에 이를 머클 트리(Merkle Tree) 기반의 자료 구조에 추가한후에 public 하게 공개합니다.

시점 확인 + 머클 트리 구조이므로 CT 에 추가된 정보는 블록체인처럼 추가된 자료는 수정/삭제가 힘들며 누구나 쉽게 모니터링하고 검색할 수 있습니다.


발급 인증서 조회

Google 투명성 보고서 에 접속하면 도메인 이름으로 발급된 모든 인증서를 검색할 수 있습니다.

crt.sh 에서도 가능하지만 편의성면에서 구글 투명성 보고서가 낫습니다.



google.com 이라는 도메인에 대해 CN 이 "GTS CA 101" 인 발급자가 108,662 개의 인증서를 발급한 것을 알수 있습니다.


해당 발급자를 클릭하면 더 상세한 정보를 볼 수 있습니다.

같이 보기


Ref