본문 바로가기
어플리케이션

DNSSEC (Domain Name System Security Extensions)에 대해 알아보겠습니다.

by forward error correction Circle 2024. 12. 5.
반응형

Ⅰ. DNSSEC (Domain Name System Security Extensions) 이란?

 도메인 네임 시스템(DNS)에 보안 확장을 제공하기 위한 프로토콜입니다. DNS 자체는 설계상 안전하지 않으며, 인증 및 데이터 무결성 검증 기능이 없어서 DNS정보의 위-변조가 가능하다는 문제가 있습니다. DNSSEC는 이를 보완하여 DNS 데이터의 무결성과 출처를 확인할 수 있도록 설계되었습니다.


Ⅱ. DNS (Domain Name System) 문제점

DNS는 인터넷 사용자가 웹사이트 도메인을 IP 주소로 변환하도록 설계되었습니다. 

Ex) www.tistory.com 이라는 도메인을 192.168.1.1 로 변환

ⅰ. 데이터 위변조
   : DNS 응답을 가로채거나 위조하여 사용자를 악성 사이트로 리디렉션하는 공격(DNS 스푸핑).
ⅱ. DNS 캐싱 공격
   : DNS 서버의 캐시를 변조해 악의적인 데이터를 삽입하는 공격(DNS 캐시 포이즈닝).

이로 인해 사용자가 신뢰할 수 없는 웹사이트로 유도되거나, 피싱 및 데이터 탈취 위험이 높아집니다.

Ⅲ. DNSSEC(Domain Name System Security Extensions) 목적

DNSSEC는 DNS 데이터의 무결성(integrity)과 출처 인증(authenticity)을 보장하는 데 중점을 둡니다. 이를 통해 DNS 요청/응답 과정에서 데이터가 변조되지 않았는지 확인할 수 있습니다.

Ⅳ. DNSSEC (Domain Name System Security Extensions) 주요 기능

ⅰ. 데이터 무결성 보장
   : DNS 응답이 원래의 출처에서 변경되지 않았음을 보장합니다.
ⅱ. 출처 인증
   : DNS 응답이 신뢰할 수 있는 DNS 서버에서 제공된 것임을 증명합니다.
ⅲ. 거부 인증(DENIAL OF EXISTENCE)

   : 요청한 도메인이 존재하지 않는다는 사실조차도 인증할 수 있습니다.

Ⅳ. DNSSEC (Domain Name System Security Extensions) 동작 방식

공개 키 암호화(Public Key Cryptography)를 기반으로 하며, DNS 레코드에 디지털 서명을 추가하여 동작합니다.

Ⅴ. DNSSEC (Domain Name System Security Extensions) 구성 요소

ⅰ. RRSIG (Resource Record Signature)
   : 리소스 레코드에 대한 디지털 서명으로, 데이터를 보호합니다.
ⅱ. DNSKEY (DNS Key Record)
   : 공개 키를 포함하며, 클라이언트는 이를 통해 서명을 검증합니다.
ⅲ. DS (Delegation Signer)
   : 상위 DNS 영역에서 하위 영역의 DNSKEY를 참조하기 위한 레코드입니다.
ⅳ. NSEC/NSEC3 (Next Secure)
   : 존재하지 않는 도메인 이름의 부재를 증명합니다. NSEC3는 해시를 사용해 개인정보 보호를 강화합니다.
ⅴ. ZSK (Zone Signing Key)
   : DNS 레코드에 서명하기 위한 키입니다.
ⅵ. KSK (Key Signing Key)
   : ZSK의 신뢰성을 보장하기 위해 서명하는 상위 키입니다.

Ⅵ. DNSSEC (Domain Name System Security Extensions) 처리 흐름

ⅰ. DNS 쿼리 요청
   : 사용자가 tistory.com을 요청하면 리졸버(Resolver)가 요청을 보냅니다.
ⅱ. 디지털 서명 전달
   : DNSSEC 활성화된 DNS 서버는 요청된 레코드와 함께 디지털 서명(RRSIG)을 응답으로 반환합니다.
ⅲ. 서명 검증
   : 리졸버는 반환된 레코드와 디지털 서명을 DNSKEY와 비교하여 데이터의 무결성을 검증합니다.
ⅳ. 체인 검증
   : DNS 루트 서버에서부터 최상위 도메인(TLD), 최종 도메인까지의 신뢰 체인을 따라가며 모든 데이터가 신뢰할 수 있는 출처에서 왔는지 확인합니다.

Ⅶ. DNSSEC (Domain Name System Security Extensions) 신뢰 체인

DNSSEC는 루트 존(Root Zone)에서 시작하는 신뢰 체인을 형성합니다.

ⅰ. 루트 키
   : 인터넷의 루트 영역이 모든 신뢰의 시작점입니다. 루트 서버의 공개 키는 전 세계적으로 신뢰받습니다.
ⅱ. TLD 서명
   : 루트 키는 .com, .org와 같은 최상위 도메인의 키에 서명합니다.
ⅲ. 도메인 서명
   : TLD의 키는 하위 도메인(예: example.com)의 키에 서명합니다.

Ⅷ. DNSSEC (Domain Name System Security Extensions) 장·단점

  장점 단점
DNSSEC
(Domain Name System
Security Extenstions)
1) 보안 강화
DNS 응답의 변조를 방지하고, 사용자가 신뢰할 수 있는 IP 주소로 연결되도록 보장합니다.

2) DNS 스푸핑 방지
공격자가 응답을 위조하거나 변조하려는 시도를 차단합니다.

3) 신뢰 체인 제공
계층적으로 신뢰할 수 있는 도메인 인증 체계를 제공합니다.
1) 복잡성
설정 및 관리가 비교적 어렵습니다. 특히 ZSK/KSK 갱신이 까다롭습니다.

2) 추가 비용
DNSSEC를 구현하기 위해 추가 리소스와 비용이 필요합니다.

3) DNS 트래픽 증가
디지털 서명 및 키 데이터로 인해 DNS 응답 크기가 커져 네트워크 부하가 증가할 수 있습니다.

4) DDoS 증폭 공격 가능성
DNSSEC 활성화된 서버는 대규모 응답을 반환할 수 있어 공격자에게 악용될 가능성이 있습니다.

Ⅸ. DNSSEC (Domain Name System Security Extensions) 구현 방법

 

ⅰ. DNSSEC 활성화
DNS 관리 도구(예: BIND)를 사용하여 DNSSEC를 활성화합니다.

ⅱ. 키 생성
 1) 존의 존 서명키(ZSK) 생성

dnssec-keygen -a NSEC3RSASHA256 -b 2048 -n ZONE test.com

2) 존의 키 서명키(KSK) 생성

dnssec-keygen -a NSEC3RSASHA256 -b 2048 -n ZONE -f KSK test.com

 

ⅲ. DNS 레코드 서명

dnssec-signzone -o test.com test.com.zone

 

ⅳ. DS 레코드 업로드
생성된 DS 레코드를 상위 DNS 영역(TLD 관리자)에게 제출합니다.

Ⅹ. DNSSEC (Domain Name System Security Extensions) 활용 사례

ⅰ. 은행 및 금융 서비스
   : 안전한 DNS 조회로 피싱 공격 방지
ⅱ. 정부 및 공공기관
   : 민감한 데이터를 보호하기 위해 사용
ⅲ. ISP 및 DNS 서비스 제공자
   : 사용자 신뢰도를 높이기 위해 DNSSEC를 지원

반응형