DNS-PERSIST-01: DNS 기반 챌린지 검증을 위한 새로운 모델

1 month ago 11

  • DNS-PERSIST-01은 기존 DNS-01 방식의 반복 검증을 대체해, 지속적인 인증 레코드를 사용하는 새로운 ACME 챌린지 모델
  • 이 방식은 특정 ACME 계정과 CA에 바인딩된 TXT 레코드를 통해 도메인 제어권을 장기적으로 증명
  • DNS 변경과 API 자격 증명 배포 부담을 줄여, 운영 효율성과 보안을 동시에 강화
  • 정책 옵션(policy=wildcard) , 만료 시점(persistUntil) , 다중 CA 허용 등 세밀한 제어 기능을 지원
  • 2026년 1분기 말 스테이징, 2분기 본격 롤아웃 예정으로, 대규모·자동화 환경의 인증 관리 단순화 기대

DNS-01 방식의 한계

  • 기존 DNS-01 챌린지는 인증서 발급 시마다 새로운 토큰을 생성하고 _acme-challenge.<도메인>에 TXT 레코드를 추가해야 함
    • 각 검증마다 DNS 업데이트가 필요하며, 전파 지연과 자동화 복잡성이 발생
  • 대규모 배포에서는 DNS API 자격 증명이 여러 시스템에 분산되어 보안 위험 증가
  • 일부 구독자는 이러한 반복적 DNS 변경을 피하고 싶어 함

DNS-PERSIST-01의 구조와 작동 방식

  • 새로운 방식은 지속적 권한 부여(persistent authorization) 개념을 도입
    • _validation-persist.<도메인>에 CA와 ACME 계정 URI를 포함한 TXT 레코드를 한 번만 설정
    • 이후 발급 및 갱신 시 동일 레코드를 재사용 가능
  • 예시: _validation-persist.example.com. IN TXT ( "letsencrypt.org;" " accounturi=https://acme-v02.api.letsencrypt.org/acme/acct/1234567890"; )
  • 이로써 DNS 변경이 발급 경로에서 제거, 운영 효율성 향상

보안 및 운영상의 균형점

  • DNS-01에서는 DNS 쓰기 권한이 주요 자산이었으나, DNS-PERSIST-01에서는 ACME 계정 키 보호가 핵심
  • 초기 설정 후에는 DNS 쓰기 접근을 제한할 수 있어 공격 표면 감소
  • 단, 지속적 인증 구조로 인해 계정 키 유출 시 위험이 커지므로 계정 보안 관리 강화 필요

범위 및 수명 제어 기능

  • 기본적으로 검증된 FQDN에만 무기한 유효
  • policy=wildcard 옵션으로 와일드카드 및 하위 도메인까지 확장 가능 "policy=wildcard"
  • persistUntil 속성으로 만료 시점(UTC 초 단위) 을 지정 가능
    • 만료 전 갱신 필요, 모니터링 체계 필수
    "persistUntil=1767225600"
  • 여러 CA를 동시에 허용하려면 _validation-persist.<도메인>에 CA별 TXT 레코드를 추가

도입 일정 및 구현 현황

  • CA/Browser Forum SC-088v3 투표가 2025년 10월 만장일치로 통과, IETF ACME 워킹그룹이 초안 채택
  • Pebble(Boulder의 축소판)에서 이미 지원 중이며, lego-cli 클라이언트 구현도 진행 중
  • 2026년 1분기 말 스테이징, 2분기 본격 배포 예정
  • 이 모델은 IoT, 멀티테넌트, 대량 인증서 발급 환경 등 기존 방식이 비효율적인 영역에 적합

Let's Encrypt 및 ISRG 배경

  • Let's Encrypt는 비영리단체 ISRG가 운영하는 무료·자동화·오픈 인증기관(CA)
  • 2025년 연례 보고서에서 ISRG의 인터넷 보안 관련 활동 공개

Read Entire Article