DS 레코드

DS 레코드는 DNSSEC으로 서명된 존의 키 지문을 상위 존에 등록해 신뢰 사슬을 잇는 레코드입니다. 등록자가 레지스트라를 통해 레지스트리에 넣습니다.

작성

DS 레코드(Delegation Signer record)는 DNSSEC으로 서명된 존의 키 지문을 상위 존에 등록해, 루트에서 우리 도메인까지 이어지는 신뢰 사슬을 완성하는 레코드입니다. 우리 존 안에 두는 레코드가 아니라 상위 존, 즉 확장자를 운영하는 레지스트리가 보관하는 값이라는 점이 특징입니다. DS가 없으면 존에 서명이 있어도 검증하는 리졸버는 그 서명을 믿을 근거가 없어 서명되지 않은 도메인처럼 취급합니다.

값의 구성

example.co.kr. 3600 IN DS 12345 13 2 49FD46E6C4B45C55D4AC69CBD3CD34AC1AFE51DE...
자리이름뜻
1키 태그어떤 키를 가리키는지 식별하는 짧은 숫자
2알고리즘서명에 쓴 방식. 8은 RSA/SHA-256, 13은 ECDSA P-256
3다이제스트 유형지문을 만든 해시. 1은 SHA-1, 2는 SHA-256
4다이제스트키 자체의 해시값. 공개키 전체가 아니라 지문만 올립니다

값은 존에 있는 키 서명 키(KSK)에서 계산됩니다. 그래서 DS는 새로 만들어 적는 값이 아니라, 네임서버나 DNS 호스팅이 DNSSEC을 켤 때 보여 주는 네 항목을 그대로 옮기는 값입니다.

레토에 제출할 때는 DS만으로는 끝나지 않습니다. DS 네 항목(키 태그, 알고리즘, 다이제스트 유형, 다이제스트)과 함께 서명에 쓴 DNSKEY 네 항목(플래그, 프로토콜, 알고리즘, 공개키)을 한 번에 넣게 되어 있으므로, DNS 호스팅 화면에서 두 값을 함께 복사해 두는 편이 좋습니다.

레지스트리에 등록한다는 것

일반 레코드는 우리가 쓰는 DNS 콘솔에서 존 파일에 넣으면 끝나지만, DS는 상위 존에 들어가야 하므로 경로가 다릅니다.

  1. DNS 호스팅에서 존에 서명을 켠다

    키가 만들어지고 존의 레코드마다 서명이 붙습니다. 이 단계까지는 검증이 시작되지 않으므로 안전합니다.

  2. 보여 주는 DS 와 DNSKEY 값을 확인한다

    DS 쪽의 키 태그, 알고리즘, 다이제스트 유형, 다이제스트와 DNSKEY 쪽의 플래그, 프로토콜, 알고리즘, 공개키를 그대로 복사합니다.

  3. 레지스트라를 통해 레지스트리에 등록한다

    레토 대시보드에서는 도메인 상세의 DNS 및 포워딩 탭에 있는 DNSSEC 카드에서 DNSSEC 설정 을 열고 DS 와 DNSKEY 를 함께 제출합니다. DNSSEC 지원 여부는 확장자마다 다르고, 지원하지 않는 확장자에서는 그 안내가 표시됩니다.

  4. 검증이 되는지 확인한다

    조회 결과에 검증 표시가 붙고 오류가 없는지 확인합니다. 상위 존 반영에는 시간이 걸립니다.

어긋나면 도메인 전체가 멈춘다

주로 이런 경우에 어긋납니다.

  • DNS 호스팅을 옮기면서 DS를 그대로 두었을 때. 새 호스팅의 키는 다른 키이므로 옛 DS는 맞지 않습니다.
  • 호스팅에서 DNSSEC을 껐는데 레지스트리의 DS는 남아 있을 때. 서명 자체가 사라져 검증이 실패합니다.
  • 키 교체 중 옛 키를 너무 빨리 지웠을 때. 상위 존의 DS 갱신이 전파되기 전까지는 양쪽 키를 함께 두어야 합니다.

네임서버를 바꿀 때의 순서

DNSSEC이 켜진 도메인은 순서를 반드시 지켜야 합니다. 레지스트리에서 DS를 먼저 지우고, 해제가 전파될 만큼 기다린 뒤 네임서버를 바꾸고, 새 네임서버에서 서명을 켠 다음 새 DS를 등록합니다. 순서를 건너뛰면 옛 키의 DS가 남은 채로 새 존이 응답해 도메인이 조회되지 않습니다. 절차는 네임서버 변경 방법, DNSSEC 전반은 DNSSEC 설정과 주의점에서 다룹니다.

자주 묻는 질문

우리 도메인의 존이 아니라 상위 존에 들어갑니다. 직접 DNS 콘솔에 추가하는 것이 아니라, 레지스트라를 통해 레지스트리에 등록하는 값입니다. 레토에서는 도메인 상세의 DNS 및 포워딩 탭에 있는 DNSSEC 카드에서 DS와 DNSKEY를 함께 제출하며, 지원 여부는 확장자마다 다릅니다.

도메인 전체가 조회되지 않습니다. 검증을 하는 리졸버는 서명이 맞지 않는 응답을 위조로 보고 버리기 때문에 SERVFAIL이 돌아오고, 웹사이트와 메일이 동시에 멈춥니다. 레코드 하나가 아니라 도메인 단위로 영향이 가는 점이 일반 레코드 실수와 다릅니다.

먼저 DS 등록을 해제해 검증을 끄고, 해제가 전파된 뒤 네임서버를 옮기고, 새 네임서버에서 서명을 만든 다음 새 DS를 등록하는 순서가 안전합니다. 순서를 건너뛰고 네임서버만 바꾸면 옛 키의 DS가 남아 조회가 실패합니다.

관련 가이드