인증기관 권한(CAA) 재고의 필요성
초록
본 논문은 DNS 기반 인증기관 권한(CAA) 메커니즘의 설계 결함과 실제 운영상의 문제점을 분석하고, 이러한 약점이 인증서 오발행 방지에 미치는 영향을 실증한다. 저자는 CT 로그와 DNS 조회를 결합한 대규모 측정을 통해 4가지 주요 결함(암묵적 의미, 불명확한 구문, 과도한 정책 범위, 절차 불일치)을 도출하고, 각각에 대한 설계·운영 개선 방안을 제시한다.
상세 분석
CAA는 도메인 소유자가 허용된 인증기관(CA)을 DNS 레코드로 선언함으로써 인증서 발급을 사전 차단하려는 시도이다. 그러나 논문은 CAA가 근본적으로 DNS의 보안 취약성을 그대로 물려받고, 설계 단계에서 몇 가지 구조적 결함을 내포하고 있음을 지적한다. 첫째, “implicit semantics” 문제는 issue, issuewild 태그의 값이 비어 있거나 형식이 잘못되었을 때 의도와 무관하게 발급을 허용하거나 금지하는 모호한 동작을 초래한다. 이는 운영자가 오타나 잘못된 구문을 입력했을 때 CA가 이를 정상적인 정책으로 오인하게 만들며, 실제로 800여 건 이상의 레코드가 이런 오류를 포함하고 있음을 실증한다. 둘째, “underspecified syntax”는 태그와 값 사이의 구분이 명확하지 않아 다양한 해석이 가능하게 만든다. 예를 들어, issue 태그에 “0issueletsencrypt.org”와 같이 앞에 숫자가 붙은 값이 존재하는데, 이는 CA가 이를 무시하거나 허용하는 방식에 따라 정책이 완전히 달라진다. 셋째, “boundless policy scoping”은 부모 도메인의 CAA 레코드가 하위 위임된 영역까지 자동으로 상속되는 구조를 허용한다. 이는 하위 도메인 소유자가 별도의 레코드를 설정하지 않았을 경우, 공격자가 중간 단계의 권한을 탈취하거나 조작된 상위 레코드에 의존해 발급을 허용받을 수 있는 위험을 만든다. 넷째, “misaligned procedures”는 DNSSEC 미적용, 레코드의 유효기간 부재, CA가 DNS 조회 결과를 포렌식 증거로 활용하지 못하는 점 등을 포함한다. 특히, CA가 발급 시점에 사용한 CAA 레코드가 사후에 변조될 경우, 해당 기록이 신뢰성을 상실한다는 점은 감사와 책임 추적을 크게 약화시킨다. 논문은 이러한 문제들을 정량적으로 입증하기 위해 2024년 6월 2주간 5.4 백만 개 이상의 인증서를 수집하고, 4.6 백만 개의 고유 인증서에 대해 실시간 DNS 조회를 수행했다. 결과적으로 약 34 %가 와일드카드 도메인을 포함하고, 811건은 빈 issue 태그와 동시에 발급을 허용하는 레코드가 존재했으며, 18건은 형식 오류가 있는 값이 정상적인 식별자와 함께 사용되는 사례가 발견되었다. 이러한 실증 결과는 CAA가 설계대로 작동하지 않을 경우, 실제 보안 경계가 크게 약화될 수 있음을 보여준다. 저자는 해결책으로(1) 태그별 명확한 의미 정의와 “no‑issue”를 위한 표준화된 값 도입, (2) 정책 상속을 제한하거나 별도 전용 서브도메인(예: _caa.example.com) 사용, (3) CA 식별자에 대한 중앙화된 관리·공개 인덱스 구축, (4) DNSSEC 의무화와 CA가 DNSSEC 체인을 로그에 남기는 방안을 제시한다. 이러한 개선이 이루어질 경우, CAA는 사전 차단 메커니즘으로서의 역할을 회복하고, 인증서 투명성(CT)과 연계된 감사 체계에서도 신뢰성을 확보할 수 있다.
댓글 및 학술 토론
Loading comments...
의견 남기기