DNSSEC란?
DNSSEC(도메인 이름 시스템 보안 확장)는 DNS 레코드 집합에 디지털 서명을 추가합니다. DNSSEC 검증 리졸버는 유효한 서명과 신뢰 체인을 사용해 서명된 데이터의 출처와 무결성을 확인하고 무단 변경을 탐지할 수 있습니다. DNSSEC는 DNS 쿼리나 응답을 암호화하지 않습니다.DNSSEC가 작동하는 방법
신뢰 체인 (키 분리 예시):
루트 영역 (.)
├── 루트 KSK (신뢰 앵커)가 루트 DNSKEY RRset에 서명합니다
└── 루트 ZSK가 권한 있는 루트 RRset에 서명합니다(.com용 상위 영역 DS RRset 포함)
└── DS 다이제스트가 .com KSK와 일치합니다
├── .com KSK가 .com DNSKEY RRset에 서명합니다
└── .com ZSK가 권한 있는 .com RRset에 서명합니다(example.com용 상위 영역 DS RRset 포함)
└── DS 다이제스트가 example.com KSK와 일치합니다
├── example.com KSK가 example.com DNSKEY RRset에 서명합니다
└── example.com ZSK가 권한 있는 example.com RRset에 서명합니다
리졸버는 루트 신뢰 앵커에서 시작해 서명과 DS 다이제스트를 검증합니다
DNSSEC 기록 유형
| 레코드 | 목적 | 설명 |
|---|---|---|
| RRSIG | 서명 | 각 리소스 레코드 집합(RRset)에 대한 암호학적 서명 |
| DNSKEY | 공개 키 | 영역의 공개 키(KSK 및 ZSK)가 저장되며 DNSSEC 서명 검증에 사용됩니다 |
| DS | 위임 서명자(Delegation Signer) | 상위 영역에 게시되는 하위 영역 KSK의 해시 |
| NSEC/NSEC3 | 인증된 부재 증명 | 레코드가 존재하지 않음을 증명합니다 |
키 유형
| 키 | 목적 | 교체 주기 |
|---|---|---|
| KSK (키 서명 키) | DNSKEY RRset에 서명 | 운영 정책에 따라 다름 (아래 참고) |
| ZSK (영역 서명 키) | DNSKEY RRset 외의 다른 권한 RRset에 서명 | 운영 정책에 따라 다름 (아래 참고) |
회전 시점은 KSK의 역할과 운영자 정책에 따라 달라집니다. 상위 영역의 DS 레코드에 연결된 KSK를 정기적으로 교체하기로 한 경우, [RFC 6781 §3.3](https://www.rfc-editor.org/rfc/rfc6781.html#section-3.3)은 1년을 합리적인 키 유효 기간으로 설명합니다. 신뢰 앵커로 사용되는 KSK는 DNSSEC 검증 리졸버와 조정해야 하며, 키 유효 기간을 훨씬 길게 둘 수 있습니다 ([RFC 6781 §3.2.2](https://www.rfc-editor.org/rfc/rfc6781.html#section-3.2.2)).
ZSK 교체 시점은 DNSKEY와 서명의 TTL, 영역 전파 시간, 교체 대상 키로 만든 RRSIG가 리졸버 캐시에 남아 있을 수 있는 기간에 따라 달라집니다 ([RFC 7583 §3.2.1](https://www.rfc-editor.org/rfc/rfc7583.html#section-3.2.1)). 침해 위험에 비교적 많이 노출된 환경에서 온라인 ZSK를 사용하는 경우, [RFC 6781 §3.3](https://www.rfc-editor.org/rfc/rfc6781.html#section-3.3)은 의도한 키 유효 기간으로 1개월이 합리적일 수 있다고 설명합니다. 이는 조건부 지침이며 보편적으로 적용되는 기간은 아닙니다. 상위 영역의 위임 NS RRset과 위임에 연결된 glue 주소 RRset은 서명하지 않습니다 ([RFC 4035 §2.2](https://www.rfc-editor.org/rfc/rfc4035.html#section-2.2)).
2026년 10월 11일 루트 KSK 롤오버
ICANN은 루트 영역 KSK 롤오버 일정을 2026년 10월 11일로 안내합니다. DNSSEC 검증 리졸버 운영자는 신뢰 앵커 설정에 KSK-2024(키 태그 38696)가 있는지 확인해야 합니다. 자동 신뢰 앵커 업데이트가 성공했으리라고 가정하지 마세요. 키가 없다면 자동 업데이트가 활성화되어 있는지 확인하고 리졸버 공급업체의 안내에 따라 신뢰 앵커를 업데이트하세요. 최신 정보는 [ICANN의 루트 KSK 롤오버 안내](https://www.icann.org/resources/pages/ksk-rollover-en)를 참조하세요.
DNSSEC 검증 절차
1. 클라이언트가 DNS 리졸버에 example.com의 A 레코드를 질의합니다.
2. 리졸버가 A 레코드와 RRSIG 서명을 가져옵니다.
3. 리졸버가 DNSKEY를 가져와 RRSIG를 검증합니다.
4. 리졸버가 DNSKEY와 대조해 DS 레코드를 검증합니다.
5. 신뢰 체인을 따라 루트까지 각 단계를 검증합니다.
6. 모든 서명이 유효하면 응답이 인증됩니다.
DNSSEC 검증으로 탐지할 수 있는 위협
이러한 검사는 RRset에 서명이 있고, 검증 리졸버가 사용되며, 신뢰 체인이 온전히 유지될 때에만 가능합니다. 서명되지 않았거나 DNSSEC상 보안되지 않은 데이터는 인증할 수 없습니다.
| 위협 | 예시 | DNSSEC 보호 |
|---|---|---|
| 캐시 중독 | 위조된 DNS 데이터가 리졸버 캐시에 삽입됨 | 검증 리졸버는 서명 또는 신뢰 체인 검증에 실패한 데이터를 거부할 수 있습니다. |
| 응답 변조 | 서명된 DNS RRset이 전송 중 변경됨 | 변경된 데이터는 서명 검증에 실패합니다. |
| DNS 스푸핑 | 서명된 영역에 위조된 응답이 제공됨 | 검증 리졸버는 검증에 실패한 응답을 거부할 수 있습니다. |
구현 시 고려사항
- 성능: 서명 때문에 응답 크기가 커집니다(약 1,000-4,000바이트, 일반 DNS는 약 100바이트).
- 키 관리: 안전한 키 생성, 저장, 교체가 필요합니다.
- 영역 서명: 레코드가 변경되면 영역에 다시 서명해야 합니다.
- 리졸버 지원: 클라이언트는 DNSSEC 검증 리졸버를 사용해야 합니다.
- 키 롤오버: 교체 대상 키로 만든 RRSIG는 캐시 TTL이 만료될 때까지 리졸버 캐시에 남을 수 있습니다. 캐시 수명이 끝나기 전에 해당 키를 영역에서 제거하면 안 됩니다 (RFC 7583 §3.2.1).
모범 사례
1. DNSSEC 서명 알고리즘 선택: [IANA DNSSEC 알고리즘 레지스트리](https://www.iana.org/assignments/dns-sec-alg-numbers)는 ECDSAP256SHA256 (알고리즘 13)을 서명과 검증에 권장합니다. 192비트 보안 강도가 필요한 경우 ECDSAP384SHA384 (14)가 적합할 수 있습니다. 알고리즘을 변경하기 전에 리졸버 지원을 확인하세요 ([RFC 9904](https://www.rfc-editor.org/rfc/rfc9904.html), [RFC 8624 §3.1](https://www.rfc-editor.org/rfc/rfc8624.html#section-3.1)).
2. 키 롤오버 자동화: 키 수명 주기 관리에 OpenDNSSEC 같은 도구를 사용합니다.
3. 서명 만료 모니터링: RRSIG 서명에는 유효 기간이 있습니다.
4. 배포 전 테스트: dnsviz.net 같은 도구로 영역을 검증합니다.
5. 비상 계획 마련: 키 롤오버 절차를 문서화합니다.
검증 리졸버가 신뢰 체인을 검증하면 DNSSEC는 서명된 DNS 데이터의 출처와 무결성을 인증합니다. 응답에 포함된 주소의 웹사이트나 서버가 신뢰할 수 있는지까지 DNSSEC가 확인해 주지는 않습니다.