일반 DNS 질의는 암호화 없이 평문으로 오갑니다. 그래서 중간에서 누가 어떤 도메인을 물었는지 훤히 보이고, 응답을 가로채 조작할 수도 있습니다. 이를 막으려고 나온 것이 **DoH(DNS over HTTPS)**와 **DoT(DNS over TLS)**입니다. 둘 다 DNS를 암호화하지만 운반 방식이 다릅니다.
개념 — 무엇이 다른가
핵심 차이는 "어떤 통로로 암호화 DNS를 실어 나르느냐"입니다.
| 구분 | 포트 | 운반 방식 | 특징 |
|---|---|---|---|
| 일반 DNS | 53 | 평문 UDP/TCP | 누구나 관찰·조작 가능 |
| DoT | 853 | TLS 위 DNS | 전용 포트, 방화벽에서 식별·차단 쉬움 |
| DoH | 443 | HTTPS 위 DNS | 일반 웹 트래픽에 섞여 구분 어려움 |
DoT는 853이라는 전용 포트를 쓰므로 관리자가 "이건 DNS다"라고 알아보기 쉽습니다. 반면 DoH는 일반 HTTPS와 같은 443을 쓰기 때문에 웹 트래픽과 섞여 구분이 어렵습니다. 프라이버시 관점에선 DoH가 더 은밀하고, 망 관리 관점에선 DoT가 더 다루기 쉽습니다.
확인 — DoH로 직접 질의 보내기
최신 dig는 +https 옵션으로 DoH 질의를 보낼 수 있습니다.
dig @1.1.1.1 +https example.com
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR
;; SERVER: 1.1.1.1#443(1.1.1.1) (HTTPS)
example.com. IPv4 93.184.216.34
응답의 SERVER 줄에 443과 HTTPS가 보이면 암호화 채널로 받아온 것입니다. DoT로 확인하려면 +tls 옵션을 씁니다.
dig @1.1.1.1 +tls example.com # 853 포트 TLS 질의
옵션이 지원되지 않는 구버전 dig라면 dig -v로 버전을 확인하고, 필요하면 패키지를 업데이트하세요.
확인 — 평문 질의와 비교
비교를 위해 평문 질의도 보내봅니다.
dig @1.1.1.1 example.com # 평문 53번 포트
이 경우 SERVER 줄에 #53이 찍히고 암호화 표시가 없습니다. 같은 도메인을 평문과 암호화로 각각 질의해 보면, 응답 내용은 같아도 운반 채널이 다르다는 점을 눈으로 확인할 수 있습니다.
정리
dig @1.1.1.1 +https example.com # DoH (443/HTTPS)
dig @1.1.1.1 +tls example.com # DoT (853/TLS)
dig @1.1.1.1 example.com # 평문 (53)
요약하면, DoT와 DoH는 DNS를 암호화한다는 목적은 같지만 포트와 은닉성에서 갈립니다. 사내망에서 정책상 DNS를 통제해야 한다면 식별이 쉬운 DoT가, 개인 프라이버시가 우선이면 DoH가 어울립니다.
DNS 동작과 암호화 채널을 직접 질의해보며 이해하는 실습은 네트워크 트랙에서 회원가입 없이 무료로 할 수 있습니다.