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 가 발급한 인증서 전체 목록을 알기가 어려웠고 이에 따라 특정 도메인에 대한 인증서 발급 여부는 도메인 소유자도 알기가 어려운 문제가 있었습니다.
이는 왓치맨에서도 제시한 "감시자는 누가 감시하는가?" 라는 질문을 불러일으키게 됩니다.
![왓치맨 포스터 왓치맨 포스터](/security/files/125305081/129008464/1/1639930447000/watchman+060bff28d09b9c7e5e17016eff873e6f82785cfff59a2443d3dbd37971c51413f15aff09a363d15cd63e774913ac68f1fc468093d0e894ba00e7e756a5b6dccc7a175a90ac165999952461b22d183397ae8b680c9596514d32811b35b196546dc56b947c594e9461e017.jpg)
CT란
인증서 투명성(이하 CT)는 위와 같은 문제를 해결하기 위한 표준으로 CA 나 하위 CA가 발급한 SSL 인증서를 인터넷에 공개된 Database 에 기록하고 공개하고 질의할수 있는 시스템으로 digicert, sectigo 등 많은 CA 들과 facebook, google, apple, cloudflare 등이 참여하고 있는 SSL/TLS 인증서 발급에 대해 감사(auditing)와 모니터링(monitoring)을 위한 표준입니다.
![](/security/files/125305081/125305089/1/1633704986000/image2021-10-8_23-56-25.png)
2013년 이후 인증서는 약 52억개(5,240,531,903)가 발급된걸로 기록되고 있습니다. (출처: Certificate Transparency : Certificate Transparency)
![](/security/files/125305081/125305113/1/1633709705000/image2021-10-9_1-15-4.png)
CT 에 참여한 CA 는 인증서 발급시 즉시 발급 정보를 전송하며 발급한 인증서 정보는 시점 확인(time stamping) 을 찍은 후에 이를 머클 트리(Merkle Tree) 기반의 자료 구조에 추가한후에 public 하게 공개합니다.
시점 확인 + 머클 트리 구조이므로 CT 에 추가된 정보는 블록체인처럼 추가된 자료는 수정/삭제가 힘들며 누구나 쉽게 모니터링하고 검색할 수 있습니다.
발급 인증서 조회
Google 투명성 보고서 에 접속하면 도메인 이름으로 발급된 모든 인증서를 검색할 수 있습니다.
crt.sh 에서도 가능하지만 편의성면에서 구글 투명성 보고서가 낫습니다.
google.com 이라는 도메인에 대해 CN 이 "GTS CA 101" 인 발급자가 108,662 개의 인증서를 발급한 것을 알수 있습니다.
![](/security/files/125305081/125305109/1/1633709524000/image2021-10-9_1-12-3.png)
해당 발급자를 클릭하면 더 상세한 정보를 볼 수 있습니다.
![](/security/files/125305081/125305111/1/1633709646000/image2021-10-9_1-14-6.png)
같이 보기
Ref