포스트

우리가 현재 사용하는 DNS는 과연 안전한가?

DNS란 무엇인가?

DNS, 도메인 이름 시스템, 인터넷의 전화번호부와 같은 역할을 합니다. 사용자가 웹 브라우저에 웹사이트 주소를 입력하면, DNS 서버는 해당 주소를 컴퓨터가 이해할 수 있는 IP 주소로 변환합니다. 이 과정을 통해 사용자는 원하는 웹사이트에 도달할 수 있습니다. DNS의 중요성은 명확하지만, 이는 사용자의 개인정보 보호 문제를 야기할 수 있으며, 이를 해결하기 위해 다양한 기술적 진보가 이루어지고 있습니다. 이 중 하나가 ODoH(무지의 DNS over HTTPS)로, 사용자의 쿼리를 더 안전하게 보호할 수 있는 새로운 프로토콜입니다. image

DoT, DoH는 무엇인가?

image

DNS over TLS (DoT)와 DNS over HTTPS (DoH)는 사용자의 DNS 쿼리를 보호하기 위해 설계된 두 가지 현대적인 인터넷 프로토콜입니다. 이 프로토콜들은 인터넷을 통해 DNS 정보를 안전하게 전송할 수 있도록 암호화를 제공합니다.

DoT (DNS over TLS) 란?

DoT는 기본적으로 DNS 쿼리를 TLS(전송 계층 보안) 프로토콜을 통해 암호화합니다. 이는 데이터를 전송하기 전에 먼저 보안 연결을 설정함으로써 DNS 쿼리와 응답 모두를 암호화합니다. DoT는 주로 853번 포트를 사용하며, 이는 DoT가 활성화된 DNS 리졸버에 의해 수신됩니다.

DoH (DNS over HTTPS)란?

DoH는 DNS 쿼리를 HTTPS 프로토콜을 통해 전송합니다. 이 방식은 웹 트래픽을 암호화하는 것과 동일한 방식으로 DNS 트래픽을 암호화하여 인터넷 서비스 제공자(ISP)나 중간자가 사용자의 DNS 쿼리를 볼 수 없도록 합니다. DoH는 기존 HTTPS 트래픽과 구분하기 어려워, 보다 뛰어난 프라이버시와 보안을 제공할 수 있습니다.

기존 DoT, DoH의 대책안

“Oblivious DNS over HTTPS (ODoH): A Practical Privacy Enhancement to DNS”

  • 위 논문은 Cloudflare와 애플이 공동으로 DNS에서 발생하는 보안위협을 줄이고자 새로운 프로토콜을 만들어낸 논문입니다.

image

논문에서 DNS 쿼리의 프라이버시를 향상시키기 위해 설계된 새로운 프로토콜인 ODoH에 관해 설명합니다. 이 프로토콜은 기존 DNS 쿼리 프로세스에서 클라이언트의 IP 주소와 쿼리 내용을 분리함으로써 프라이버시를 증대시키는 것을 목표로 합니다.

ODoH는 기존의 DNS over HTTPS(DoH) 프로토콜을 확장하여, 사용자의 쿼리를 암호화하고 이를 ‘프록시(Proxy)’라 불리는 중간자에게 전송합니다. 이 프록시는 암호화된 쿼리를 ‘타겟’이라 불리는 실제 DNS 리졸버로 전달합니다. 타겟 리졸버는 쿼리를 해독하고 요청된 DNS 정보를 검색한 후, 그 결과를 다시 암호화하여 프록시를 통해 클라이언트에게 전달합니다. 이 과정에서 프록시는 쿼리의 내용을 알지 못하며, 타겟 리졸버는 요청을 한 클라이언트의 실제 IP 주소를 알 수 없습니다.

이러한 방식으로, ODoH는 사용자가 방문하는 웹사이트에 대한 정보를 DNS 리졸버로부터 숨기면서, 동시에 리졸버가 사용자의 정체를 알 수 없도록 합니다. 이 논문은 이 프로토콜의 설계, 구현, 보안 분석 및 성능 평가를 포함하여 ODoH가 실제로 사용될 수 있는 실용적인 개인정보 보호를 위한 실용적인 방법 중 하나라고 논문을 통해서 주장합니다.

image ODoH(Oblivious DNS over HTTPS) 프로토콜의 실행 과정을 도식화한 것입니다. ODoH 프로토콜은 DNS 쿼리의 프라이버시를 향상시키기 위해 고안되었으며, 다음과 같은 단계를 포함합니다:

  1. ODoH 쿼리: 클라이언트는 타겟의 공개키를 사용하여 DNS 쿼리를 암호화하고, 이를 HPKE(Hybrid Public Key Encryption)를 이용해 캡슐화하여 프록시에게 전송합니다.

  2. 프록시된 쿼리: 프록시는 암호화된 쿼리를 받아 타겟에 전달합니다. 이때 프록시는 쿼리의 내용을 알 수 없습니다.

  3. 쿼리 해독: 타겟은 암호화된 쿼리를 받아 자신의 개인키를 이용하여 해독합니다.

  4. Request: 타겟은 해독된 쿼리를 DNS 리졸버에 전송하고, 결과를 받습니다.

  5. 암호화된 응답: 타겟은 응답을 다시 클라이언트의 공개키로 암호화하여 프록시에게 전송합니다.

  6. 전달된 응답: 프록시는 이 암호화된 응답을 클라이언트에게 전달합니다.

클라이언트는 이 응답을 받아 자신의 개인키로 해독하여 DNS 쿼리의 결과를 얻습니다. 이 과정을 통해 타겟 리졸버는 쿼리를 한 클라이언트의 IP 주소를 알지 못하며, 프록시도 쿼리의 내용을 알 수 없어, 사용자의 개인 정보를 보호할 수 있습니다. 모든 통신 채널은 HTTPS를 통해 이루어집니다.

이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.