Ⅰ. 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를 지원
'어플리케이션' 카테고리의 다른 글
robots.txt 에 대해 알아보겠습니다. (1) | 2024.12.10 |
---|---|
DNS 캐시 (DNS Cache)에 대해 알아보겠습니다. (0) | 2024.12.10 |
HA(High Availability)에 대해 알아보겠습니다. (0) | 2024.11.28 |
OAuth(Open Authorization)에 대해 알아보겠습니다. (0) | 2024.11.27 |
OTP(One-Time Password)에 대해 알아보겠습니다. (0) | 2024.11.25 |