일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- PDF 개행문자
- 파이썬 파일 전송
- ROS #spin() #spinOnce() #ROS기초
- 파이썬
- 파이썬 #파이썬프로젝트 #파이썬 예시 #파이썬 파일경로 #파이썬 자동화
- 파이썬 엑셀 파일 읽고 쓰기
- 논문번역 꿀팁
- 파이썬 #
- 크롬오류#크롬검색어자동완성끄기#검색어자동완성오류#검색어자동완성 제거#검색어 노란선#검색어반복입력
- 스트림 암호 one-time-pad 공격#보안#암호
- 파이썬 음성파일 텍스트 변환
- 파이썬#subprocess#communicate()
- 파이썬 채팅
- 파파고 꿀팁
- 리눅스#모의해킹#리눅스명령어#head 명령어
- 파이썬 예시
- 패스트 캠퍼스 #자율주행 #비전
- 파이썬 음성인식
- QGC#QGrouncControl#GLIB오류
- 파이썬#파이썬경로#파이썬폴더#파이썬디렉토리
- 파이선 행
- 파이썬 열
- 파이썬 프로젝트
- 통계 #ROC #TPR #FPR #TNR #이진분류 #Accuracy #Recall
- 파이썬 텍스트 변환 #파이썬 공부
- ROS #Robotics #ROS기초
- 리눅스기초#리눅스명령어#리눅스 tail#tail#모의해킹 리눅스
- 파파고 번역
- pdf 번역
- 파이썬 유튜브
개발자비행일지
DNSSEC(DNS Security Extensions) 본문
우리는 인터넷 홈페이지에 접속 할 때, 상대방의 IP를 통해 접속하지 않는다. DNS라는 편리한 별칭 주소체계를 이용한다.
DNS는 인터넷 도메인의 record라 부르는 정보를 제공하기 위해 네트워크 구간에 설치되어 운영되는 서버입니다. 만약 DNS가 잘못된 정보를 제공한다면, 가짜 피싱 사이트로 사용자를 유도하여 ID/PW를 탈취하거나 이메일을 엿보고 인터넷 통화를 엿듣는 등의 범죄에 악용될 수 있습니다. 따라서 DNS의 보안 또한 매우 중요한 요소라 할 수 있습니다.
DNSSEC(Domain Name System Security Extensions)은 DNS의 보안성을 높이기 위한 기술입니다. DNSSEC을 이해하기 위해서는 DNS의 작동 과정과 이 과정에서 어느 부분에 보안 취약성이 존재하는지를 먼저 이해해야 합니다.
DNS의 작동 원리
DNS를 통해 특정 도메인의 주소를 알아내는 과정에는 클라이언트, 리졸버, 서버 3개의 컴포넌트가 있습니다. 클라이언트에 설치된 Stub 리졸버는 클라이언트가 사용하는 인터넷사의 DNS 리졸버 혹은 별도로 지정한 DNS 리졸버에게 도메인 주소 질의를 하고, DNS 리졸버가 Recursive 방식으로 각 네임 서버들을 접속하여 주소를 알아오는 방식입니다.
클라이언트(사용자 브라우저)
접속하려는 도메인의 DNS 정보를 요청
예) blog.naver.com의 IP 주소를 질의
클라이언트에도 DNS만을 담당하는 모듈이 소프트웨어 형태로 존재할 수 있고 이를 Stub 리졸버(Resolver)라고 합니다. 주로 운영 체제(OS)에 포함되어 있습니다.
DNS Resolver
클라이언트의 요청을 받고 해당 도메인의 정보를 요청 및 캐시 하는 서버
예) .com, naver, blog 도메인의 정보를 요청
DNS Resolver는 ISP의 안전한 네트워크에서 운용됩니다. 많은 가입자 클라이언트들의 DNS 질의를 받아 빠르게 결과를 전송해야 하므로 성능과 보안 모두 중요합니다. ISP가 아닌 구글이나 Cloudflare와 같은 클라우드 기반 회사들도 자체적인 DNS Resolver를 운영하고 있습니다. 구글의 OpenDNS(8.8.8.8), Cloudflare의 1.1.1.1 서비스가 여기에 해당합니다. 도메인의 구조에 따라 반복적인 질의를 하며 결과를 찾아내기 때문에 DNS Recursive Resolver 혹은 DNS Recursor라고도 부릅니다.
DNS 서버
DNS Resolver의 요청을 받고 DNS의 정보를 알려주는 서버
예) .com, naver, blog 도메인의 정보를 제공
DNS 기술 자체를 만들 때는 보안에 대한 개념이 적었기 때문에 일반적인 DNS 질의 과정 중에는 다음과 같은 보안 취약점이 있습니다. 각 구간별로 취약점이 있다는 의미입니다.
그중에서도 대표적인 DNS 공격 두 가지 - DNS hijacking과 DNS Cache Poisoning를 알아보면..
DNS hijacking
도메인 등록 정보는 Registra(도메인 등록 대형 업체) 혹은 직접 DNS를 운영하는데, Registra의 관리 페이지는 보통 단순하게 ID/PW 기반으로 로그인합니다. 만약 관리자의 ID/PW 정보가 유출되었다면 해커가 DNS 정보를 변경하는 DNS hijacking의 위험성이 있습니다.
DNS Cache Poisoning
DNS 리졸버는 한번 질의한 DNS 정보에 대해 TTL(Time to live) 주기 동안 캐싱을 하는데, 캐싱 된 정보를 위조하여 결괏값을 변경하는 공격입니다.
그렇다면 DNSSEC은 어떤 핵심 기술을 통해 DNS 정보의 위변조를 방지할까요?
크게 3가지로 분류할 수 있습니다.
1. DNS 결괏값(레코드)가 변조되지 않은 올바른 값임을 증명하는 정합성(integrity)
2. DNS 레코드가 올바른 DNS 서버에서 조회한 값임을 증명하는 서버 인증(authenticity)
3. DNS 계층별로 각 DNS 서버가 올바른 서버임을 증명하는 Chain of Trust
DNSSEC은 위 3가지 기능에 대해 전자 서명과 PKI 기술을 사용하여 구현합니다.
정합성
캐싱 된 DNS 정보나, Authorative 서버를 통해 전달받은 레코드 값이 올바른 값인지를 전자 서명을 통해 검사합니다. 사설키를 통해 만들어진 해시값을 공개키를 통해 검증하는 방식입니다.
DNS 레코드 인증
DNS 결괏값이 올바른 DNS 존으로부터 도출되었는지를 검사합니다.
Chain of Trust
DNS 체인이 올바른 값인지를 검사합니다.
마지막으로, DNSSEC이 사용하는 암호키를 안전하게 저장하는 또한 매우 중요합니다.
일반적으로 S/W 방식 혹은 H/W 방식의 HSM(Hardware Security Module) 방식을 사용합니다.
참고:
https://www.cloudflare.com/learning/dns/dns-server-types/
https://www.efficientip.com/what-is-dnssec/
https://blog.naver.com/aepkoreanet/221478403178
[출처] DNS 보안을 위한 DNSSEC(DNS Security Extensions) 살펴보기|작성자 Tech유람
'▶ Computer Science' 카테고리의 다른 글
파이프라이닝(Pipelining) (0) | 2020.12.01 |
---|---|
신호 (0) | 2020.11.15 |
Write Through, Write Back (0) | 2020.09.28 |
스트림 암호 one-time-pad 공격 (0) | 2020.09.03 |
버스 스누핑(Bus Snooping), 캐시 일관성, 커널 보안 (0) | 2020.09.03 |