1062. DNSSEC 존 (Zone) 서명 - Domain Name System Security Extensions 계층적 체인 오브 트러스트 RRSIG DNSKEY DS 캐시 포이즈닝 원천 차단
핵심 인사이트: (972번 DNS 스푸핑 심화) 인터넷 주소창에
naver.com을 쳤다. DNS 서버가 "IP는 220.10.x.x야"라고 대답해 줬는데, 사실 그게 해커가 중간에 조작해치기한 가짜 피싱 사이트 IP였다. 나는 은행 비번을 털렸다. "야! DNS 패킷은 암호도 없고 도장도 없는 쌩얼(UDP)이라 해커가 가짜 답장을 쏴도 컴맹 폰은 그걸 100% 믿잖아! 앞으로 DNS 서버가 대답을 줄 때, 대답 껍데기에다가 서버 관리자의 '공인 전자서명 도장(RSA)'을 쾅 찍어서 보내! 내 폰이 그 도장이 진짜인지 확인하고 가짜 도장이면 사이트 접속을 콱 막아버리게!" DNS의 태생적 멍청함을 암호학으로 치료한 철갑 방패, DNSSEC이다.
Ⅰ. 기존 DNS의 치명적 결함 (캐시 포이즈닝의 공포)
- 511번 DNS는 속도에 미친 UDP 프로토콜을 씁니다. 인증 절차(비밀번호, 서명)가 1도 없습니다.
- 캐시 포이즈닝(Cache Poisoning) 해킹: 내 컴퓨터가 DNS 서버에 주소를 물어보고 대답을 기다리는 그 0.1초의 틈을 타서, 해커가 진짜 DNS 서버보다 먼저 "야 네이버 IP 1.1.1.1(해커 서버)이야!"라고 가짜 패킷(스푸핑)을 찔러 넣습니다. 내 컴퓨터와 KT DNS 서버는 그 가짜 주소를 진짜인 줄 알고 꿀꺽 삼켜서 저장(Cache)해 버립니다.
Ⅱ. DNSSEC (DNS Security Extensions)의 개념 🌟
- 개념: DNS 응답 패킷 자체를 암호화(숨김)하는 것이 아닙니다. DNS가 뱉어내는 주소(IP) 정보에 공개키 암호화 방식(PKI)의 전자서명을 덧붙여서, "이 정보가 중간에 해커에게 조작되지 않았으며(무결성), 진짜 해당 도메인 관리자가 보낸 것이 맞음(인증)"을 100% 검증해 내는 인터넷 보안 표준입니다.
Ⅲ. DNSSEC을 완성하는 3대 마법의 레코드 🌟 핵심 🌟
기존 DNS에는 주소를 적는 A 레코드만 있었습니다. DNSSEC은 방어용 자물쇠 레코드 3개를 추가합니다.
1. RRSIG (Resource Record Signature) - "빨간 인감도장"
- DNS 서버 관리자는 자기 도메인의 모든 IP 주소(A 레코드)마다 자신의 개인키로 암호화된 전자서명 도장(RRSIG)을 꽉꽉 찍어둡니다.
- 유저가 IP를 물어보면, DNS 서버는 IP 주소와 함께 RRSIG 도장을 세트로 묶어서 던져줍니다.
2. DNSKEY - "도장 감식기 (공개키)"
- 유저가 도장(RRSIG)을 받았는데 이게 진짜인지 확인하려면 서버의 '공개키'가 필요합니다.
- DNS 서버는 자신의 공개키를 아예 누구나 볼 수 있게 DNSKEY 레코드라는 게시판에 올려둡니다.
- 유저는 이 DNSKEY를 받아와서 방금 받은 RRSIG 도장을 대보고 딱 맞으면 "오 조작 안 됐네!" 하고 안심합니다. (근데 이 DNSKEY 공개키 자체를 해커가 가짜로 바꿔치기하면 어떡하죠?)
3. DS (Delegation Signer) - "상급자의 보증서" 🌟
이게 DNSSEC의 핵심인 **'신뢰의 사슬 (Chain of Trust)'**입니다.
naver.comDNS 서버의 DNSKEY(공개키)가 진짜라는 걸 누가 보증할까요? 윗동네인.com(최상위 도메인) 서버가 보증합니다!.com서버는naver.com의 공개키 지문을 DS 레코드라는 금고에 보관해 두고 서명을 찍어줍니다.- 유저는 끝도 없이 의심하며 상급자를 찾아갑니다.
naver.com확인 ➜.com확인 ➜ 최종적으로 전 세계 인터넷의 꼭대기인Root (.)서버까지 올라가서 보증을 확인합니다. 루트 서버의 열쇠는 전 세계가 이미 안전하게 공유하고 있기 때문에, 해커가 피라미드 전체를 해킹하지 않는 이상 절대 도장을 위조할 수 없습니다.
Ⅳ. DNSSEC의 현실적 문제 (증폭 반사 공격의 무기)
- 무거움의 딜레마: IP 주소 4바이트만 뱉어내던 가벼운 DNS 패킷이, 뚱뚱한 전자서명(RRSIG, DNSKEY)을 달고 나오면서 패킷 크기가 10배~50배로 폭발해버렸습니다.
- 1077번 문서에서 배울 DNS 증폭 DDoS 공격에 악용되기 딱 좋습니다. 해커가 1바이트 질문을 던지면 서버가 50바이트 쓰레기(서명)를 타겟 서버에 쏟아붓게 만들 수 있어, 보안 장비(방화벽) 단에서 이 거대한 패킷을 처리하는 CPU 부하가 엄청난 단점입니다.
📢 섹션 요약 비유: 기존 DNS 서버는 신분증 검사 없이 아무나 **"저기요 네이버 주소 어딘가요?" 물어보면 "어 12번지야!"라고 답해주는 '동네 아저씨'**였습니다. 해커가 옆에서 슬쩍 "네이버 99번지야!"라고 새치기해서 소리치면 유저는 그대로 속았습니다. DNSSEC은 이 동네 아저씨에게 **'경찰청 공인 인감도장(RRSIG)'**을 쥐여준 혁명입니다. 아저씨는 주소를 알려줄 때 무조건 서류에 빨간 인감도장을 찍어서 줍니다. 유저는 도장을 확인하기 위해 아저씨의 공개키(DNSKEY)를 대보는데, 이 공개키조차 못 믿겠어서 동사무소(.com 서버, DS 레코드)에 가서 "이 아저씨 도장 진짜 맞죠?" 확인하고, 마지막엔 청와대(Root 서버)까지 가서 삼중으로 도장을 검증(신뢰의 사슬)합니다. 해커가 중간에 주소를 99번지로 바꾸고 싶어도, 청와대의 빨간 인감도장까지 위조할 수는 없기 때문에 가짜 피싱 주소를 뱉는 순간 내 스마트폰이 0.1초 만에 짝퉁임을 알아채고 밴(차단)을 때려버리는 궁극의 주소 무결성 방패입니다.