인증 기관은 어떻게 죽는가

CA는 대개 해킹으로 죽지 않는다. Entrust는 현대적인 방식으로 죽었다 — 서류 작업으로. 늦은 폐기, 놓친 마감, 그리고 마침내 약속을 믿길 멈춘 브라우저 루트 프로그램.

인증 기관(CA)이 죽는 이야기로 모두가 아는 건 DigiNotar 이야기다. 2011년 네덜란드의 이 CA가 뚫렸고, 공격자가 Google용 위조 인증서를 발급해 이란에서 트래픽을 가로채는 데 썼으며, 몇 주 만에 회사는 파산 선고를 받고 루트가 모든 브라우저에서 뽑혔다. 좋은 이야기다 — 악당이 있고, 침입이 있고, 빠르고 완전한 붕괴가 있으니까. 그런데 이건 CA가 실제로 죽는 방식과 거의 닮지 않았다.

Entrust는 다른 방식으로 죽었고, 더 교훈적인 방식이었다. 침해는 없었다. 훔친 키도, 누군가의 은행용 위조 인증서도 없었다. 공개 TLS 인증 기관으로서의 Entrust를 죽인 건 서류 작업이었다 — 놓친 마감과 늦은 제출이 쌓이고 쌓여, 어떤 CA를 브라우저가 신뢰할지 정하는 사람들이 그저 나아지리라는 믿음을 멈출 때까지.

신뢰 모델은 암호가 아니라 감사 기록으로 굴러간다

사람들이 CA 시스템에 대해 오해하는 지점이 여기다. 인증 기관이 된다는 걸 근본적으로 암호학 일이라 여긴다 — 개인 키를 지키고, 올바로 서명하고, 강한 알고리즘을 쓰는 것. 그 부분도 중요하지만 그건 쉬운 부분이고, 브라우저 루트 프로그램이 실제로 시간을 쏟아 감시하는 대상이 아니다.

그들이 감시하는 건 프로세스다. 공개 CA는 CA/Browser Forum의 Baseline Requirements 아래에서 운영된다 — 어떻게 행동해야 하는지를 멋없이 세세하게 규정한 긴 문서다. 오발급이나 키 유출로 인증서를 폐기해야 하면 정해진 마감 안에 해야 한다 — 키 유출은 24시간, 다른 문제는 5일처럼 빡빡하게. 사고가 나면 공개적으로, 신속하게, 완전하게, 생태계 전체가 읽을 수 있는 버그 트래커에 공개해야 한다. 무언가를 고치겠다고 말하면, 당신이 댄 그 날짜까지 실제로 고칠 것이 기대된다.

이 중 어느 것도 암호학이 아니다. 운영 규율이고, 지루하고, CA가 진짜로 신뢰받는 바로 그 일이다. 완벽한 수학으로 인증서를 서명하지만 3주 늦게 폐기하는 CA는 거친 모서리를 가진 강한 CA가 아니다. 자기 약속이 자기를 구속하지 않는다고 생태계에 반복해서 말한 CA다.

Entrust가 실제로 잘못한 것

이게 Entrust 불신을 올바로 읽는 틀이다. 스모킹 건 — 침해, 유출된 키 — 을 찾으러 가면 못 찾을 테니까.

대신 찾게 되는 건 패턴이다. 2024년 초부터 Entrust의 컴플라이언스 사고들이 공개 Mozilla 버그 트래커에 쌓였다: 규칙을 어겨 폐기해야 했던 인증서들, 마감을 놓친 폐기들, 그리고 — 실제로 타격을 준 부분 — 왔다가 개선 없이 지나간 개선 약속들. Mozilla는 나중에 2024년 3월과 5월 사이 단 한 구간에서 Entrust 관련 사고 22건을 셌다. 대참사 하나가 아니다. 평범한 실패 스물둘, 그리고 고치기보다 왜 못 고쳤는지 설명하는 CA의 반복되는 주제.

2024년 6월, Google의 Chrome 보안 팀이 관료적인 제목 — “Sustaining Digital Certificate Security” — 의 글을 올렸고 그 안에 무뚝뚝한 평결을 담았다. 지난 수년간, 그들은 컴플라이언스 실패, 지켜지지 않은 개선 약속, 공개된 문제에 대한 진전 부족의 패턴을 관찰했다고 썼다. 결론은 어떤 단일 Entrust 인증서가 안전하지 않다는 게 아니었다. 조직에 관한 것이었다: Entrust의 인증서가 규칙이 요구하는 방식대로 안정적으로 발급·관리되리라는 확신이 더는 없다는 것. 어떤 기술적 결함이 아니라 그 확신의 상실이 결정의 전부였다.

DigiNotar와 얼마나 다른지 곱씹어 보라. DigiNotar는 키가 이미 새어 나간 뒤 대참사에 반응하는 시스템이었다. Entrust는 표류에 반응하는 시스템이었다 — 무엇이 터지기 전에, 프로세스를 근거로 선제적으로 신뢰를 거둔 것. 두 번째 종류의 죽음은 더 건강하고 역사적으로 훨씬 드물며, 생태계가 자기를 단속하는 데 더 능해졌다는 신호다.

메커니즘: distrust-after 날짜

브라우저는 스위치를 내려 인터넷을 부수지 않았다. distrust-after 날짜라는 메스를 썼고, 실제 처벌이 무엇인지 알려주니 이해할 가치가 있다.

Chrome의 규칙은 127 버전에서 2024년 11월 1일경 배포됐고 이랬다: 2024년 10월 31일 이후 발급되어 Entrust나 AffirmTrust 루트로 이어지는 TLS 서버 인증서는 더 이상 신뢰하지 않는다. 그 날짜 이전에 발급된 인증서는 만료까지 정상 작동했다. Mozilla도 자기 컷오프로 같은 일을 했다 — 2024년 11월 30일 이후 발급된 Entrust 인증서를 불신. Apple도 뒤따랐다. (iOS의 Chrome은 예외였다 — iOS에서 Chrome은 Chrome Root Store가 아니라 Apple의 플랫폼 신뢰 저장소를 쓰므로 Chrome Root Program의 결정이 닿지 않았다.)

우아한 부분은 진짜다: 이미 배포된 누구의 인증서도 갑자기 에러를 내지 않았다. 사이트 운영자에게는 이전할 활주로가 있었다. 하지만 날짜 기반 컷오프가 CA 자신에게 무엇을 하는지 보라. 내일부터 당신이 발급하는 어떤 인증서도 어떤 브라우저가 신뢰하지 않는다면, 기존 인증서를 소진될 때까지 존중할 수는 있어도 작동하는 새것을 팔 수는 없다. 신뢰받는 인증서를 발급 못 하는 CA는 더 이상 CA가 아니다. 제 재고를 소진하며 시간을 끄는 회사다.

조용한 결말

정확히 그렇게 흘러갔다. 2025년 1월, Entrust는 공개 인증서 사업을 Sectigo에 매각한다고 발표했다. 이전은 그해 9월 마무리됐고, Entrust의 인증서 고객은 브라우저가 여전히 신뢰하는 CA로 옮겨졌다. Entrust는 이 움직임을 아이덴티티와 포스트 양자 암호에 집중을 벼리는 것으로 포장했는데, 이건 보도자료가 하는 말이다. 평범하게 읽으면, 루트 프로그램이 새 Entrust 인증서를 신뢰하길 멈춘 순간 굴릴 공개 TLS 사업이 남지 않았고, 그래서 고객을 그들을 서빙할 수 있는 누군가에게 팔고 그 사업에서 손을 뗀 것이다.

아무도 해킹당하지 않았다. 어떤 키도 새지 않았다. 수십 년 된 인증 기관이, 사고 보고서를 계속 늦게 내고 자기가 정한 마감을 계속 놓쳐서 공개 TLS 시장을 떠났다.

간직할 교훈

이 모든 것 아래에 있는 불편하고 명료한 진실은 권력이 실제로 어디 있느냐다. TLS의 보안은 150개 인증 기관에 얹혀 있다기보다, 그 150개 중 어느 것이 중요할 자격이 있는지 정하는 소수의 루트 프로그램 — Chrome, Mozilla, Apple, Microsoft — 에 얹혀 있다. 그들은 CA를 제거하는 데 법원도, 침해도, 증명된 피해 한 건조차 필요 없다. 지속된 태만의 패턴이면 충분하다. 그건 상당히 집중된 권력이고, 존재한다는 걸 정직하게 인정할 가치가 있다. 하지만 그건 또한 표류하는 CA를 다음 DigiNotar가 된 뒤가 아니라 되기 전에 생태계가 내쫓게 해 준 메커니즘이기도 하다. 저울질하자면, 키가 새길 기다리는 버전보다 마감을 놓쳤다고 신뢰가 거둬지는 버전을 택하겠다.

인프라를 운영한다면 교훈은 더 작고 더 실용적이다: 당신의 인증 기관은 해킹당하는 게 진짜 위험이 아닌 의존성이다. 진짜 위험은 당신이 안 보는 사이에 신뢰받길 멈추는 것이다. 서버의 인증서는 암호학적으로 완벽해도 하룻밤 새 브라우저 경고로 변할 수 있다 — 당신 설정의 무언가가 바뀌어서가 아니라, 그걸 보증한 조직이 판을 잃어서. 인증서 수명은 몇 주 쪽으로 줄고 있고, 자동 발급이 표준이며, 그 아래 CA는 소방 훈련 없이 갈아 끼울 수 있어야 하는 대상이다. Entrust는 그 이식 가능성이 왜 중요한지 — 그리고 신뢰받던 기관이 죽는 가장 덜 극적이고 가장 현대적인 방식이 무엇인지 — 를 상기시킨다: 침입이 아니라, 밀린 서류로.

토론 참여

← 블로그로 돌아가기