새 소식우리 회사에 어떤 규제가 적용되는지 알고 계신가요? 3분 안에 확인할 수 있습니다. Panke가 드리는 진심 어린 선물:EU 스코퍼한국 스코퍼
무엇을 도와드릴까요?

채널로 문의하기

KakaoTalkLINE

48시간 이내 답변

이메일 보내기 →
인증서 투명성 로그: CA가 서명한 인증서는 모두 공개된다
웹보안

인증서 투명성 로그: CA가 서명한 인증서는 모두 공개된다

2026년 10월 1일·Alex Holmquist, Panke IT Solutions LLC

2015년 9월, 시맨텍(Symantec) 소유의 CA가 내부 테스트 도중 google.com용 인증서를 발급했다. 구글은 공개 인증서 투명성(CT) 로그를 확인하여 이 사실을 찾아냈다.

이 글에서는 CT 로그가 무엇인지, 어디에 존재하는지, 그리고 보유 도메인에 대해 검색하는 방법을 설명한다.

yourcompany.com이라고 적힌 종이 두루마리가 풀리며 인증서가 이어진 띠가 된다. 각 인증서에는 빨간 인장과 발급일(2025-10-25, 2026-01-22, 2026-04-21, 2026-07-19)이 있고, 더 오래된 인증서는 왼쪽 가장자리 밖으로 이어진다.

CT 로그란 무엇인가

인증서 투명성(CT) 로그는 RFC 6962에 정의된 TLS 인증서의 공개 추가 전용(append-only) 목록이다.

CA는 인증서를 발급하기 전에 여러 로그에 각 인증서를 제출한다. 각 로그는 서명된 인증서 타임스탬프(Signed Certificate Timestamp, SCT)라는 서명된 영수증을 반환하며, CA는 이 영수증을 최종 인증서에 삽입한다.

로그 항목은 머클 트리(Merkle tree)에 저장되므로 누구나 항목이 삭제되거나 변경되었는지 검증할 수 있다.

브라우저는 모든 CA에 로그 기록을 강제한다

Chrome CT 정책은 서로 다른 두 운영자가 운영하는 최소 두 개의 로그에서 제공하는 SCT가 포함된 인증서만 수용한다. 유효 기간이 180일을 초과하는 인증서에는 세 개가 필요하다. Apple도 동일한 규칙을 적용한다.

인증 기관(CA)이 인증서를 두 개의 CT 로그로 보낸다. 한 로그에는 3,373,531,407 entries라고 표시되어 있다. 각 로그는 인증서를 추가하고 영수증(SCT)을 돌려주며, 두 SCT는 인증서 안에 들어간다. 브라우저는 이 인증서를 받아 수락한다. yourcompany.com 검색은 두 로그를 모두 읽는다.

이러한 영수증이 없는 인증서는 Chrome 및 Safari에서 오류가 발생한다. 따라서 CA는 공개 로그에 등록하지 않고는 특정 도메인에서 작동하는 인증서를 발급할 수 없다.

이것이 2015년 사건이 공개된 계기다. google.com 인증서를 발견한 후, 구글은 로그를 조사하여 의심스러운 인증서를 추가로 발견했다. 이후 진행된 시맨텍의 자체 감사를 통해 76개 도메인에 대해 164개의 인증서가 추가로 확인되었으며, 등록조차 되지 않은 도메인에 발급된 인증서도 2,458개나 찾아냈다.

인증서 내 SCT 확인하기

openssl 명령을 사용하면 실제 운영 중인 인증서의 SCT 영수증을 확인할 수 있다.

openssl s_client -connect pankeit.com:443 -servername pankeit.com \
  </dev/null 2>/dev/null | openssl x509 -noout -dates -ext ct_precert_scts

축약된 출력 결과:

notBefore=Jun  4 00:00:00 2026 GMT
notAfter=Dec 18 23:59:59 2026 GMT
CT Precertificate SCTs:
    Signed Certificate Timestamp:
        Log ID    : C2:31:7E:57:45:19:A3:45:...
        Timestamp : Jun  4 01:08:11.347 2026 GMT
    Signed Certificate Timestamp:
        Log ID    : D8:09:55:3B:94:4F:7A:FF:...
        Timestamp : Jun  4 01:08:11.367 2026 GMT
    Signed Certificate Timestamp:
        Log ID    : 94:4E:43:87:FA:EC:C1:EF:...
        Timestamp : Jun  4 01:08:11.362 2026 GMT

각 로그 ID(Log ID)는 Chrome의 로그 목록에 있는 개별 로그를 식별한다. 위 예시의 로그 ID는 DigiCert의 Wyvern2026h2, Google의 Xenon2026h2, DigiCert의 Sphinx2026h2를 가리킨다.

로그가 위치한 곳

각 로그 레지스트리는 Google, Cloudflare, DigiCert, Sectigo, Let's Encrypt, TrustAsia 및 기타 4개 운영자가 운영하는 HTTPS 서버다.

Chrome은 수용하는 레지스트리 목록을 JSON 파일로 게시한다.

각 로그는 특정 기간을 담당한다. 예를 들어 Google의 Argon2026h2는 2026년 7월 1일부터 2027년 1월 1일 사이에 만료되는 인증서만 수용한다.

로그를 직접 조회할 수도 있다. 다음 명령은 Argon2026h2에 현재 크기를 요청한다.

curl https://ct.googleapis.com/logs/us1/argon2026h2/ct/v1/get-sth

2026년 10월 1일 기준, 해당 로그의 항목 수는 3,373,531,407개로 집계되었다.

도메인 검색하기

로그 자체에는 검색 기능이 없다. 0번 항목부터 순서대로 읽는 것만 가능하다. crt.sh 및 Cert Spotter와 같은 모니터링 도구는 모든 로그를 읽은 후 도메인 이름별로 인증서를 색인한다.

특정 도메인과 서브도메인의 모든 인증서를 확인하려면 다음 URL을 연다.

https://crt.sh/?q=%25.yourdomain.com

예시로 pankeit.com에 대해 이 검색을 실행했다.

응답에는 1년 이상의 기간에 걸쳐 3개 CA에서 발급한 14개의 항목이 포함되어 있었다. pankeit.com에 대한 CA는 Amazon, GoDaddy, Let's Encrypt였다.

대부분의 인증서는 두 번 나타난다. 한 로그 항목은 "사전 인증서(precertificate)"를 나타내고, 다른 항목은 최종 서명된 인증서를 나타내기 때문이다.


참고 자료

  1. IETF — RFC 6962: Certificate Transparency (2013년 6월)
  2. Google — Chrome Certificate Transparency Policy
  3. Apple — Apple의 Certificate Transparency 정책
  4. Google Security Blog — Improved Digital Certificate Security (2015년 9월 18일)
  5. Google Security Blog — Sustaining Digital Certificate Security (2015년 10월)
  6. Google — Chrome CT log list (v3) (2026-10-01 확인)
귀사의 공격 표면이 걱정되시나요?

귀사의 인프라가 공격자의 스코어링 모델에서 어떻게 평가되는지 알고 싶다면 contact@pankeit.com으로 문의해 주세요. 동일한 지문채취 및 스코어링 프로세스를 실행하고 우선순위가 매겨진 개선 목록을 제공합니다.

블로그 구독하기

최신 보안 동향을 가장 먼저 받아보세요

스팸 없음. 언제든 구독 취소.

©2026 Panke IT Solutions LLC

Austin, TX