DNSSEC 문제 해결
DNSSEC 문제 해결
DNSSEC는 DNS를 보호합니다. 본 문서는 DNS 확인에 영향을 주는 DNSSEC 문제를 감지하는 방법을 소개합니다.
이 문서에서
Dig로 DNSSEC 테스트
_Dig_는 DNS 레코드의 이름 서버를 쿼리하는 명령줄 도구입니다. 예를 들어, _dig_는 DNS 확인자에 www.cloudflare.com_의 IP 주소를 문의할 수 있습니다(옵션으로 +short_을 사용하면 결과만 출력됩니다).
$ dig www.cloudflare.com +short198.41.215.162198.41.214.162
_dig_로 DNSSEC 레코드를 확인하세요. 아래 예에서
$ dig www.cloudflare.com +dnssec +short198.41.214.162198.41.215.162A 13 3 300 20180927180434 20180925160434 35273 cloudflare.com. DYYZ/bhHSAIlpvu/HEUsxlzkC9NsswbCQ7dcfcuiNBrbhYV7k3AI8t46 QMnOlfhwT6jqsfN7ePV6Fwpym3B0pg==
하위 도메인의 공개 키가아니라 루트 도메인의 공개 키에 대해 쿼리해야 합니다.
$ dig DNSKEY cloudflare.com +short257 3 13 mdsswUyr3DPW132mOi8V9xESWE8jTo0dxCjjnopKl+GqJxpVXckHAeF+ KkxLbxILfDLUT0rAK9iUzy1L53eKGQ==256 3 13 koPbw9wmYZ7ggcjnQ6ayHyhHaDNMYELKTqT+qRGrZpWSccr/lBcrm10Z 1PuQHB3Azhii+sb0PYFkH1ruxLhe5g==
DNS 응답은 두 개의 레코드로 이루어져 있습니다.
- DNSKEY 레코드 256은 영역 서명 키로 불리는 공개 키로서 A, MX, CNAME, SRV 등의 DNS 레코드 서명을 확인할 때 사용됩니다.
_dig_에 +short 옵션을 사용하지 않는 경우, ad 플래그가 응답 헤더에 있으면 DNS 응답이 DNSSEC 인증을 받은 것입니다.
$ dig www.cloudflare.com[...];; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 65326;; flags: qr rd ra ad; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1[...];; QUESTION SECTION:;www.cloudflare.com. IN A[...];; ANSWER SECTION:www.cloudflare.com. 15 IN A 198.41.215.162www.cloudflare.com. 15 IN A 198.41.214.162
Dig로 DNSSEC 신뢰 체인 보기
도메인 서명(예: cloudflare.com)의 완전한 확인은 상위 레벨 도메인(예: .com)에서 키 서명 키를 확인하는 것이 포함됩니다. 이후
DNSSEC가 활성화된 경우 등록 기관의 DNS에 _DS 레코드_가 필요합니다. _DS 레코드_에는 다양한 공개 키 서명 키는 물론 키에 대한 메타데이터가 포함됩니다.
_dig_를 사용하여 _DS 레코드_를 찾으세요.
$ dig +short DS cloudflare.com2371 13 2 32996839A6D808AFE3EB4A795A0E6A7A39A76FC52FF228B22B76F6D6 3826F2B9
_dig_는 응답이 이름 서버에서 반환됐는지,
$ dig DS cloudflare.com +trace[...]cloudflare.com. 86400 IN DS 2371 13 2 32996839A6D808AFE3EB4A795A0E6A7A39A76FC52FF228B22B76F6D6 3826F2B9[...]com. 172800 IN NS e.gtld-servers.net.[...];; Received 1213 bytes from 2001:502:1ca1::30#53(e.gtld-servers.net) in 37 ms
위 모든 단계를 수동으로 실행하는 것보다 더 간편한 방법은 DNSViz 온라인 도구를 사용하는 것입니다. 자세한 내용은 DNSViz를 사용한 DNSSEC 유효성 검사 문제 해결이나 DNSViz를 통한 cloudflare.com의 DNSSEC 결과 예를 참조하시기 바랍니다.
Dig로 DNSSEC 유효성 검사 문제 해결
등록 기관의 오래된 DNSSEC 레코드를 업데이트하거나 제거하지 않고 권한 있는 DNS 공급자를 변경하면, 문제가 발생합니다.
$ dig A brokendnssec.net @1.0.0.1;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 10663
으로 _dig_를
$ dig A brokendnssec.net @1.0.0.1 +dnssec +cd +short104.20.49.61104.20.48.61
위 예에서 +cd 옵션을 사용한 경우에는 올바른 DNS 응답을 수신하지만, DNSSEC를 사용하여 쿼리한 경우 SERVFAIL 응답을 수신한다면 DNSSEC가 잘못 구성된 것입니다_._이 문제는 권한 있는 이름 서버가 변경됐지만 _DS 레코드_가 업데이트되지 않은 경우 종종 발생합니다. 공격자가 쿼리에 대한 응답을 조작하려 할 때도 이 문제가 발생할 수 있습니다.
DNSViz로 DNSSEC 유효성 검사 문제 해결
- http://dnsviz.net/으로 이동하세요.
- 텍스트 필드가 나타나면 도메인 이름을 입력하세요.
- DNSViz가 처음으로 사이트를 분석하는 경우, 표시된 분석 버튼을 클릭하세요.
- DNSViz가 사이트를 분석한 적이 있었다면, 표시되는
다음 단계
DNSSEC 실행으로 문제가 발견된 경우, 도메인 등록 기관에 문의하여 _DS 레코드_가, 권한 있는 DNS 공급자가 지정한 무엇과 일치하는지 확인하세요. Cloudflare가 권한 있는 DNS 공급자인 경우에는 Cloudflare로 DNSSEC 구성 지침을 따르세요.