DNS 암호화 프로토콜 비교: DoT, DoH, DoQ
Plain DNS, DoT, DoH, DoQ의 레이어 관계, 포트, 성능 차이 및 적용 시나리오를 정리하고, 실제 선택 및 설정을 위한 권장 사항을 제공합니다.
Categories:
약어 빠른 정리
- Plain DNS: 평문 DNS, 기본 UDP/53 사용, 필요 시 TCP/53 사용(응답 절단, 영역 전송 등).
- DoT: DNS over TLS, TLS 기반 TCP 사용, 기본 포트 853(RFC 7858/8310).
- DoH: DNS over HTTPS, HTTPS(HTTP/2 혹은 HTTP/3) 기반, 기본 포트 443(RFC 8484).
- DoQ: DNS over QUIC, QUIC + TLS 1.3 기반, 기본 포트 UDP/853(RFC 9250, IANA에서 853/udp 할당).
레이어 관계(간단 TCP/IP 모델)
- 애플리케이션 레이어: HTTP, HTTPS, DNS(DoH는 HTTPS 애플리케이션 레이어 래핑에 포함).
- 보안 레이어: TLS(TCP 혹은 QUIC에 암호화 제공).
- 전송 레이어: TCP, UDP, QUIC.
- 네트워크 레이어: IP.
- 링크 레이어: 이더넷 등.
- 물리 레이어: Twisted pair/광섬유/무선 등.
핵심 포인트
- Plain DNS는 UDP/TCP 위에서 작동하며 암호화되지 않음.
- DoT = TCP + TLS + DNS(전용 포트 853).
- DoH = TCP/QUIC + TLS + HTTP(S) + DNS(443 포트 사용, 일반 HTTPS와 포트 공유).
- DoQ = QUIC + TLS 1.3 + DNS(전용 포트 UDP/853).
graph TB
subgraph 애플리케이션 레이어
A[HTTP]
A2[HTTPS]
C[DNS]
D[DoH DNS over HTTPS]
end
subgraph 보안 레이어
E[TLS]
end
subgraph 전송 레이어
F[TCP]
G[UDP]
H[QUIC]
end
subgraph 네트워크 레이어
I[IP]
end
subgraph 링크 레이어
J[Ethernet]
end
subgraph 물리 레이어
K[Twisted pair/광섬유/무선]
end
A2 --> F
A2 --> H
A --> F
C --> F
C --> G
D --> A2
E --> F
E --> H
F --> I
G --> I
H --> I
I --> J
J --> K
style D fill:#e1f5fe
style E fill:#fff3e0
기본 지식 및 오류 교정
- Plain DNS 기본 UDP/53 사용, 응답 절단(TC 비트) 혹은 신뢰성 전송 필요 시 TCP/53로 전환.
- DoT는 TCP 위에서 TLS 터널을 구축해 DNS 메시지 전송, 기본 포트 853; 긴 연결 재사용으로 핸드셰이크 오버헤드 감소 가능.
- DoH는 DNS를 HTTPS의 리소스(
application/dns-message)로 래핑, 일반적으로 HTTP/2 혹은 HTTP/3 사용, 포트 443, 일반 HTTPS와 혼동되기 쉬움. - DoQ는 직접 QUIC(UDP 기반)로 DNS 전달, 낮은 지연과 Head-of-line blocking 방지 장점, 현재 생태계 커버리지는 성장 중.
- “QUIC이 무조건 TCP보다 X% 빠르다"는 일반화된 결론은 정확하지 않음; 실제 성능은 네트워크 상태(패킷 손실, 지터, RTT), 연결 재사용 여부, 구현 세부사항 및 서버 배포와 관련.
- DoH가 “DNS를 HTTP에 넣으면 무조건 느리다/빠르다"는 주장도 정확하지 않음; 성능은 연결 재사용, 네트워크 품질, 구현에 따라 달라지며, 많은 경우 DoH/3와 DoT 체감 차이가 적거나 더 나을 수 있음.
- DoT는 SNI로 인증서 호스트명 검증 가능; DoH는 HTTPS의 일반 인증서 검증과 호스트명 매칭에 의존.
- 암호화 DNS는 경로상의 도청·변조만 방지하며 “완전 익명"을 의미하지 않음. Resolver는 여전히 쿼리를 기록할 수 있음; 신뢰할 수 있는 제공업체를 선택하고 개인정보 정책을 확인하세요.
graph TD
subgraph DNS 패밀리
A[Plain DNS UDP/TCP + DNS]
subgraph 암호화된 DNS
B[DoT TCP + TLS + DNS]
C[DoH HTTP/2,3 + TLS + DNS]
D[DoQ QUIC + TLS 1.3 + DNS]
end
subgraph 전송 베이스
E[TCP]
F[UDP]
G[QUIC]
end
end
A --> B
A --> C
A --> D
B --> E
C --> E
C --> G
D --> G
A --> F
style A fill:#f3e5f5
style B fill:#e8f5e8
style C fill:#e3f2fd
style D fill:#fff3e0
대조 개요
| 프로토콜 | 전송 레이어 | 암호화 | 래핑 | 기본 포트 | 주요 특징 |
|---|---|---|---|---|---|
| Plain DNS | UDP/TCP | 없음 | DNS 원생 | 53 | 간단 효율적, 평문 노출, 변조·검열 위험 |
| DoT | TCP | TLS 1.2/1.3 | DNS | 853 | 전용 포트, 포트 차단 위험, 시스템 지원 우수 |
| DoH | TCP/QUIC | TLS 1.2/1.3 | HTTP/2-3 + DNS | 443 | HTTPS와 포트 공유, 우수한 통과성, 브라우저 우선 지원 |
| DoQ | QUIC | TLS 1.3 | DNS | 853/UDP | 낮은 지연, Head-of-line blocking 방지, 생태계 성장 중 |
성능 및 지연
- 연결 재사용: DoT/DoH/DoQ 모두 긴 연결 재사용으로 핸드셰이크 비용 절감 가능; DoH/2, DoH/3, DoQ는 단일 연결 내 다중화 지원.
- Head-of-line blocking: TCP는 애플리케이션 레벨 HOL 문제 존재; HTTP/2는 TCP 위에서 다중화로 완화하지만 여전히 TCP 패킷 손실 영향을 받음, QUIC(DoH/3, DoQ)는 전송 레벨에서 HOL 방지, 높은 패킷 손실/모바일 네트워크에 유리.
- 초기 패킷 지연: 첫 연결 시 DoT는 TCP+TLS 핸드셰이크 필요; DoH/2 유사; DoH/3/DoQ는 QUIC 기반이라 재연결·이동이 빠름. 장기 로드에서는 구현 및 네트워크 조건에 더 크게 좌우됨.
- 접근성: DoH는 포트 443 사용으로 단순 포트 차단에 가장 저항력; DoT는 853 포트 사용으로 종종 차단; DoQ는 853/UDP 사용, 현재 단계에서도 차단 혹은 허용되지 않을 수 있음.
클라이언트 및 시스템 지원
- 브라우저: Chromium 계열 및 Firefox는 기본 DoH 지원(자동으로 DoH 지원 Resolver로 업그레이드 혹은 내장 제공업체 목록 사용 가능).
- Windows: Windows 11는 기본 DoH 지원.
- Android: Android 9+는 “Private DNS”(시스템 레벨 DoT) 제공. 시스템 레벨 DoH 지원은 버전/제조사에 따라 다름.
- Apple 플랫폼: iOS 14+/macOS 11+는 설명 파일 혹은 NetworkExtension으로 DoT/DoH 지원.
배포 및 선택 권장
- 일반/제한된 네트워크(공공 Wi‑Fi, 단순 차단 우회 필요): DoH(포트 443) 우선, HTTP/3 활성화 권장.
- 시스템 레벨 통합 업스트림(라우터, 게이트웨이, Android Private DNS): DoT(853) 우선, 네트워크 허용 시 DoH(443)를 대체로 추가.
- 높은 패킷 손실/모바일 네트워크: Resolver 및 클라이언트 지원 시 QUIC 기반 DoH/3 혹은 DoQ 우선.
- 기업/규제 시나리오: 정책에 따라 선택(DoH는 기존 HTTPS 인프라와 융합 가능; DoT는 DNS 제어면과 분리하기 용이).
요약
- DoH(443, 통과성 우수)를 우선 선택하고, 가능하면 HTTP/3 활성화.
- 시스템 레벨 통합이 필요하면 DoT(853)+지속 연결을 우선하고, 필요 시 DoH(443)를 대체로 사용.
- Resolver와 클라이언트가 모두 지원한다면 DoQ(모바일 환경에서 종종 더 좋은 체감) 시도.
참조 표준
- RFC 7858, RFC 8310(DNS over TLS)
- RFC 8484(DNS over HTTPS)
- RFC 9250(DNS over QUIC)
DNS 서비스 권장
- 닝핑 DNS: https://www.nullprivate.com DoT, DoH(지원 HTTP3), 광고 차단 및 분류 원생 지원.
- 자체 배포 버전: https://github.com/NullPrivate/NullPrivate