클라우드플레어(Cloudflare)와 애플 등이 협력해 새로운 DNS 프로토콜인 ODoH(Oblivious DNS over HTTPS)를 발표했다. ODoH를 이용하면 지금까지 DNS 확인으로 클라이언트 소스 IP 주소를 숨기고 개인 정보 보호를 향상시킬 수 있다.
DNS는 도메인명에서 IP 주소로 변환하는 인터넷에서는 빼놓을 수 없는 프로토콜이다. 하지만 일반적으로 DNS는 암호화가 이뤄지고 있지 않기 때문에 스푸핑이나 통신 감청 등 위험이 있었다. DNS 보안을 높인다는 관점에서 최근 주목 받고 있는 게 DNS를 TLS나 HTTPS에서 실시하는 DoT(DNS over TLS)와 DoH(DNS over HTTPS) 등 DNS 자체 암호화 기능을 탑재하는 게 아니라 원래 암호화 기능을 갖고 있는 TLS와 HTTPS로 DNS 데이터를 얹어 통신해 간접적으로 DNS를 암호화하는 방식으로 조금씩 인터넷에 보급되기 시작하고 있다.
하지만 DoT과 DoH를 이용해도 TLS나 HTTPS보다 낮은 계층 프로토콜인 IP 부분은 암호화할 수 없기 때문에 DNS 쿼리를 전송한 사용자 소스 IP 주소는 확인자에서 확인할 수 있다는 문제가 있었다. 이 문제를 해결하기 위해 클라우드플레어와 애플, 패스틀리(Fastly)가 공동 개발한 새로운 프로토콜이 바로 ODoH다.
ODoH의 구체적인 방법은 DNS 쿼리와 응답이 HTTPS를 이용해 송신되는 점은 일반 DoH와 비슷하지만 ODoH는 HPKE(Hybrid Public Key Encryption)라는 공개키 암호화는 클라이언트에서 DNS 쿼리를 암호화하고 프록시로 보낸다. 프록시 클라이언트에서 DNS 쿼리를 대상으로 전송하고 대상은 암호화된 DNS 쿼리를 해독한다. 해독된 DNS 쿼리는 확인자에 전송된 DNS 쿼리를 보낼 때와 역순으로 해결해주는 프로그램으로 클라이언트에 DNS 응답을 전송하는 구조다.
클라이언트와 대상 사이에 프록시를 두는 것으로 대상에서 클라이언트 IP 주소를 알 수 없다. 또 DNS 쿼리는 클라이언트와 대상간 암호화가 되어 있기 때문에 프록시 DNS 쿼리 내용을 파악하는 게 불가능하다. 프록시와 대상이 2개 모두 공모하지 않는 한 사용자 개인 정보는 보호된다. 또 클라이언트가 프록시와 대상을 선택할 수 있는 것도 ODoH의 장점이라고 설명하고 있다.
클라이언트 IP를 은닉하는 게 목적이라면 클라이언트와 대상 사이 종단간 암호화는 불필요하게 생각될 수 있다. 하지만 이에 대해 클라우드플레어는 ODoH에는 TLS 연결이 2개 필요하기 때문이라고 밝히고 있다. ODoH에서 TLS 연결은 클라이언트-플록시, 프록시-대상 2개 존재하는 DNS 쿼리 자체를 암호화하지 않으면 프록시에서 DNS 쿼리가 그대로 나타는 순간 노출될 수 있다는 설명이다.
ODoH 성능은 ODoH는 도메인 50%에서 305.1밀리초로 응답할 수 있지만 일반 DoH에는 뒤떨어지지만 토르(Tor)를 이용한 DoH보다 높은 성능을 보인다. 또 클라우드플레어는 이미 ODoH용 클라이언트(odoh-client-rs, odoh-client-go)를 공개한 상태다. 클라우드플레어 측은 더 많은 운영자가 프록시나 대상 등 인프라를 운용하고 ODoH를 지원하고 인프라 정비에 따라 클라이언트 측에서도 ODoH에 대한 대응이 진행되기를 기대하공 lTek고 밝히고 있다. 관련 내용은 이곳에서 확인할 수 있다.