어플리케이션

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

forward error correction Circle 2024. 12. 5. 08:05
반응형

Ⅰ. 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를 지원

반응형