DNSSEC 검증 체커

도메인의 DNSKEY 레코드를 Google, Cloudflare 등 여러 공개 DNS 리졸버에 조회하여 DNSSEC 서명 체인이 올바르게 검증되는지 진단합니다.

  • AD(Authenticated Data) 플래그는 조회한 DNS 리졸버 자신이 DNSSEC 검증을 수행한 경우에만 설정됩니다. DNSSEC을 지원하지 않는 리졸버로는 의미 있는 판정을 얻을 수 없습니다.
  • "DNSSEC 미적용"은 오류가 아닙니다. 현재도 대다수 도메인이 DNSSEC을 사용하지 않으며, 이는 검색 순위나 이메일 전달률에 직접적인 영향을 주지 않습니다.
  • "검증 실패"로 판정된 경우, 먼저 등록기관(레지스트라) 관리 화면에 등록한 DS 레코드의 키 태그와 다이제스트가 현재 DNSKEY와 일치하는지 확인하세요.
  • DNSSEC 서명(RRSIG)에는 유효기간이 있습니다. DNS 관리 소프트웨어의 자동 재서명이 중단되지 않았는지도 확인 대상입니다.
  • DNSSEC을 새로 활성화한 직후에는 DS 레코드가 상위 존에 반영될 때까지 일시적으로 "검증 실패"로 표시될 수 있습니다.

자주 묻는 질문

"DNSSEC 미적용" 자체는 위험하지 않습니다. 현재도 대다수 도메인이 DNSSEC 없이 운영되고 있습니다. 다만 DNS 캐시 포이즈닝 대응책으로서 가능하다면 도입을 검토할 가치는 있습니다.

DNSSEC을 강제하는 리졸버(많은 기업 네트워크와 일부 ISP)를 사용하는 사용자는 해당 도메인의 이름을 전혀 해석할 수 없게 될 수 있습니다(SERVFAIL로 처리됨). DNSSEC 활성화 직후 DS 레코드 반영을 기다리는 일시적인 상태가 아니라면 신속한 수정이 필요합니다.

DNSKEY 갱신(롤오버) 직후에는 신구 키가 리졸버 캐시에 일시적으로 혼재하여 리졸버마다 검증 결과가 다르게 나타날 수 있습니다. 시간을 두고 다시 확인해 보세요.

다릅니다. DNSSEC은 "이름 해석 응답이 변조되지 않았는지"를 보증하는 장치이고, SSL/TLS는 "통신 내용이 암호화되고 접속 대상이 인증서 소유자인지"를 보증하는 장치입니다. 둘은 독립적이며, 한쪽만 도입된 상태도 있을 수 있습니다.

이 도구는 DNSKEY 공개 여부와 리졸버의 AD 판정이라는 표면적인 상태만 확인합니다. 서명 체인(RRSIG·NSEC/NSEC3 일치 여부 등)에 대한 엄밀한 분석이 필요하다면 dnsviz.net 등 전문 도구를 함께 사용하세요.
ツールくん

여담 ― DNS에 "위조 방지" 장치를 추가하게 된 배경

DNS는 1983년 설계 당시 응답을 보낸 주체를 암호학적으로 확인할 수단이 없었습니다. 리졸버는 그럴듯한 트랜잭션 ID가 붙은 UDP 패킷이 돌아오면 그대로 신뢰하는, 성선설에 기반한 프로토콜이었기 때문에 발신지 IP 위조나 ID 추측이 가능하면 가짜 응답을 주입할 수 있었습니다. 2008년 보안 연구자 Dan Kaminsky는 이 약점을 이용해 실용적인 속도로 캐시 포이즈닝(가짜 레코드를 리졸버 캐시에 주입하는 공격)을 수행할 수 있음을 보여 업계에 충격을 주었습니다.

DNSSEC(DNS Security Extensions)은 이 문제에 대한 표준화된 해답으로, 공개키 암호를 사용해 "이 응답은 정당한 존 관리자가 서명한 것"임을 증명합니다. 도메인은 자신의 DNSKEY로 레코드에 전자 서명을 하고, 상위 존에 등록한 DS 레코드가 그 DNSKEY의 다이제스트를 보증함으로써 DNS 루트부터 개별 도메인까지 끊기지 않는 "신뢰 체인(Chain of Trust)"을 구축합니다.

DoH(DNS over HTTPS) 응답에 포함된 AD(Authenticated Data) 플래그는 리졸버 자신이 이 DNSSEC 검증을 대행한 결과입니다. 애플리케이션이 직접 서명 검증을 구현하지 않아도, 신뢰할 수 있는 리졸버에 조회해 AD=true가 반환되면 응답이 변조되지 않았음을 간접적으로 확인할 수 있습니다. 다만 이는 리졸버와 애플리케이션 사이의 통신 경로(HTTPS)가 별도로 보호되어 있다는 전제하에 성립합니다.