2007/08/12

DNSSEC: DNS Security Extentions(DNS 보안성 확장)" 구성

- 다음 내용은 정통부 산하 한국인터넷진흥원(http://dnssec.nida.or.kr/)의 DNSSEC 기술의 내용을 발췌 한것으로 서버운영,보안 기술에 도움이 되는 내용입니다. -


DNSSEC은 전자서명과 서명검증 절차를 지원하기 위한 신규 리소스 레코드를 정의하였다.
이에는 RRSIG RR, DNSKEY RR, NSEC RR, DS RR의 4 가지가 있다.

리소스 레코드 각각의 주요 용도는 다음과 같다.

RRSIG(Resource Record Signature) RR은 도메인 네임 시스템의 각 리소스 레코드 데이터에 대한 전자서명 데이터를 저장하기 위한 리소스 레코드이다. RRSIG은 서명 데이터만 단순하게 제공하는 것은 아니며 전자서명에 관련된 여러 가지 정보 필드를 함께 정의하고 있다. RRSIG은 DNS 응답 메시지에 그 서명 대상 리소스 레코드와 함께 응답된다.


[그림]


DNSKEY(DNS Public Key) RR은 도메인 존(zone)의 공개키(public key) 데이터를 저장하여 제공하기 위한 리소스 레코드이다. RRSIG RR에서 제공되는 리소스 레코드별 전자서명에 대한 서명검증 절차는 이 서명에 사용된 개인키(private key)에 상응하는 공개키(public key)를 필요로 한다. 이 공개키의 소유자는 도메인 존(zone)이며, 도메인 존(zone)의 공개키(public key)는 DNSKEY RR에 저장되어 DNS 질의응답을 통해 배포된다.

하나의 도메인 존에는 두 가지 공개키 암호화 방식의 키 쌍(key pair)이 존재한다.
하나는 도메인 존(zone)의 소유하고 있는 모든 리소스 레코드 각각을 서명하기 위한 키 쌍(key pair)이다. 이 키 쌍 중에서 공개키(public key)를 "ZSK(Zone Singing Key)"라고 한다. 곧, 존을 서명하는 데에 사용된 개인키에 대응하는 공개키임을 의미한다.

[그림]


다른 한 쌍은 존을 서명하는 데에 사용된 개인키의 대응 공개키인 ZSK 자체를 서명하기 위한 키 쌍(key pair)이다. 이 중에서 공개키(public key)를 "KSK(Key Signing Key)"라 한다. 곧, 공개키인 ZSK를 서명하는 데에 사용된 개인키의 대응 공개키임을 의미한다.

DS(Delegation Signer) RR은 DNS 고유의 위임체계에 따라 보안측면의 인증된 위임체계를 구성하기 위한 데이터를 저장한다. 여기에 저장되는 데이터는 자식 도메인 존(zone)의 공개키 중에서 KSK(Key Signing Key)에 대한 다이제스트(digest) 데이터이다.

이 다이제스트(digest) 값은 KSK 공개키 데이터에 대한 지문(fingerprint) 역할을 한다. 곧, 하위 자식 도메인 존(zone)의 KSK를 확증할 수 있는 수단을 제공함으로써, 부모 도메인 존(zone)의 인증된 권한에 의해 자식 도메인의 KSK를 인증할 수 있게 한다.

이를 통해 부모 도메인과 자식 도메인 간에 인증사슬(authentication chain)을 형성한다. 이 DS RR은 부모 도메인 존(zone)이 소유하는 리소스 레코드이며, 따라서 부모 도메인 존(zone)의 ZSK(Zone Signing Key)의 대응 개인키로 서명한 RRSIG RR이 DS RR에 대하여 생성되어 제공된다.

[그림]


NSEC(Next Secure) RR은 DNSSEC이 제공하는 보안 기능 중 "DNS 데이터의 부재 인증(authenticated denial of existence of DNS data)"을 위해 정의된 리소스 레코드이다. 특정 리소스 레코드가 존재하지 않음을 전자서명을 통해 인증할 수 있는 메커니즘을 제공하기 위한 리소스 레코드 타입이다.

이는 도메인 존에서 설정하여 존재하고 있는 도메인 네임이 존재하지 않는 것으로 위-변조하여 응답되는 경우, 또는 존재하고 있는 리소스 레코드를 존재하지 않는 것으로 위-변조하여 응답되는 경우에 대하여 실제로 그 도메인 네임이나 리소스 레코드의 존재여부를 서명검증을 통해 확인할 수 있는 수단을 제공하기 위함이다.

NSEC RR은 DNSSEC의 적용상에서 문제점을 유발하는 요소로 인식되고 있다.

NSEC RR의 목적이 "DNS 데이터의 부재인증"을 위한 것이지만, 이는 역으로 도메인 존에 설정되어 있는 전체 도메인 네임 리스트와 리소스 레코드 리스트를 쉽게 파악할 수 있는 도구로 활용될 수 있다. 이 문제는 존 목록화(zone enumeration) 이슈로 알려져 있다.

이 문제 외에 .COM이나 .NET, .KR과 같이 위임설정 정보만 갖는 도메인 존에서 NSEC RR이 존재함으로 인해, 도메인 존의 서명된 데이터가 급증하고, 일반 도메인에 대한 대량의 위임설정 정보 각각에 대한 서명처리로 인해 DNSSEC 적용이 곤란하고 비용이 과다하게 발생한다는 문제점이 있다.

이 문제를 해소하기 위해 IETF DNSEXT 워킹그룹에서는 NSEC RR의 기능을 대신할 수 있는 NSEC3 RR에 대한 표준화 작업이 진행 중에 있다.

[그림]


DNSSEC은 리졸버에서의 신뢰할 수 있는 서명검증이 가능하도록 설계된 표준이다.

DNSSEC 표준의 RRSIG RR과 DNSKEY RR, DS RR을 사용하여 리커시브 네임서버의 리졸버는 응답된 리소스 레코드 데이터에 대한 서명검증을 수행한다. 서명검증 대상 데이터는 기존의 리소스 레코드 데이터이며, 서명은 RRSIG RR에서 얻을 수 있고, 이 서명에 대한 검증에서 필요한 공개키 데이터는 도메인 존의 DNSKEY RR에 대한 질의응답으로 얻는다.

DNSKEY RR 자체에 대한 위-변조 위험 가능성이 존재하므로 이에 대한 검증 또한 필요하다. 그 부모 도메인 존에서 서명된 위임설정의 DS RR과 이 DS RR에 대한 서명을 갖는 RRSIG RR, 그리고 부모 존의 공개키를 갖는 DNSKEY RR을 질의응답으로 조회하여 서명 검증을 수행한다.
 
이러한 검증은 상위 도메인으로 지속되며, 결국에는 리커시브 네임서버에 미리 설정된 신뢰앵커(Trust Anchor)를 사용한 검증이 가능하게 되면 그 검증은 신뢰할 수 있게 된다.

DNSSEC: DNS Security Extensions, Securing the Domain Name System 기술포럼
http://www.dnssec.org/


11-rrsig_rr.png
11-zsk_ksk_key.png
11-ds_rr.png
11-verification.png

댓글 없음:

댓글 쓰기

가장 많이 본 글