DoH와 DoT 기술 비교 분석

네트워크 프로토콜 수준에서 DNS over HTTPS와 DNS over TLS의 기술 구현, 성능 차이 및 적용 시나리오를 심층 분석

DNS over HTTPS (DoH)와 DNS over TLS (DoT)는 흔히 사용되는 암호화 DNS 전송 방식입니다. 둘 다 DNS 쿼리가 쉽게 도청되거나 변조되는 것을 방지하지만, 기반하는 프로토콜 스택은 다릅니다.

먼저 결론부터 살펴보겠습니다:

  • DoH: HTTP를 통해 DNS를 전송하며, 기존 웹 인프라를 쉽게 재활용할 수 있습니다.
  • DoT: TLS 위에 DNS를 직접 전송하며, 프로토콜 경로가 더 짧고 구조가 더 직접적입니다.
  • 두 방식의 핵심 목표는 동일합니다: DNS 쿼리의 개인정보 보호와 무결성을 보호합니다.

해당 표준은 다음과 같습니다:

프로토콜표준설명
DoTRFC 7858DNS over TLS
DoHRFC 8484HTTPS를 통한 DNS 쿼리

두 방식의 차이를 진정으로 이해하려면, 네트워크 프로토콜 계층 구조부터 살펴보는 것이 좋습니다.

네트워크 프로토콜 계층 구조

현대 네트워크 프로토콜 스택은 분층 설계를 채택하며, 각 계층은 서로 다른 역할을 담당합니다. DNS는 애플리케이션 계층 프로토콜이지만, 특정 전송 방식에 강하게 바인딩되지는 않습니다.

먼저 각 계층의 역할을 빠르게 이해할 수 있는 표를 보겠습니다:

계층일반적인 프로토콜주요 역할
애플리케이션 계층 (L7)DNS, HTTP/1.1, HTTP/2, HTTP/3, FTP애플리케이션 의미론 정의
보안 계층TLS, DTLS암호화 및 인증 제공
전송 계층 (L4)TCP, UDP, QUIC연결, 재전송, 흐름 제어 등 담당
네트워크 계층 (L3)IPv4, IPv6라우팅 및 전달 담당
데이터 링크 계층 (L2)Ethernet, Wi‑Fi로컬 링크 전송 담당

여기서 몇 가지 핵심 포인트가 있습니다:

  • DNS는 애플리케이션 계층에 속합니다.
  • TLS는 애플리케이션 계층과 전송 계층 사이에 위치합니다.
  • HTTP/3는 여전히 애플리케이션 계층 프로토콜이며, 단지 QUIC 위에서 실행됩니다.
  • QUIC은 “강화된 전송 계층"으로 간주될 수 있습니다, 신뢰성 전송, 혼잡 제어, 다중화합 암호화 핸드셰이크 기능을 통합하고 있기 때문입니다.

DoT에서 TLS를 제거하면, 본질적으로 DNS over TCP에 가깝습니다. 이는 “암호화 여부"와 “DNS가 어떤 전송 위에서 실행되는지"가 실제로 두 가지 다른 차원임을 보여줍니다.

Plain DNS의 특징

가장 일반적인 DNS는 일반적으로 Plain DNS라고 하며, UDP 또는 TCP에서 실행됩니다.

전송 방식장점단점주요 특징
UDP연결 설정 오버헤드 낮음, 최초 조회 빠름신뢰성 없음, 패킷 손실 가능전통적인 DNS에서 가장 흔함
TCP재전송 메커니즘 존재, 더 안정적핸드셰이크 비용 더 높음장기 연결 설정 후 성능 수용 가능

단순히 이해하면:

  • UDP는 더 가볍습니다: 빠른 요청에 적합합니다.
  • TCP는 더 안정적입니다: 패킷 손실 발생 시 더 확실합니다.
  • 일부 네트워크 환경에서, 특히 UDP 패킷 손실이 심각할 때, TCP가 오히려 더 안정적일 수 있습니다.

일부 통신사는 네트워크가 혼잡할 때 UDP 패킷을 우선적으로 폐기합니다. 이 경우 UDP에 의존하는 DNS 쿼리가 영향을 받지만, TCP는 재전송 기능이 있어 안정적인 결과를 얻기가 더 쉽습니다.

애플리케이션 계층 중첩

DNS와 HTTP는 모두 애플리케이션 계층 프로토콜이므로, DoH는 “애플리케이션 계층을 한 겹 더 감싼 것“으로 볼 수 있습니다.

이 부분에서는 두 가지를 집중적으로 파악하면 됩니다:

  • DoH의 핵심은 HTTP라는 이름이 아니라, HTTP라는 전송 방식에 있습니다.
  • 이론적으로 DNS는 다양한 애플리케이션 계층 프로토콜 위에 실행될 수 있습니다, 하지만 실제로 그렇게 복잡하게 만들 필요는 없습니다.

예를 들어:

  • DoH = DNS 요청을 HTTP 요청 안에 넣는 것.
  • 암호화되지 않은 HTTP도 DNS를 전송할 수 있지만, 실제적인 이점은 거의 없습니다.
  • 이론적으로 “DNS over FTP"도 가능하지만, 현실적인 가치는 없습니다.
flowchart TD
    subgraph L7["애플리케이션 계층"]
        A[DNS]
        B[HTTP]
        C[FTP]
    end
    
    subgraph Security["보안 계층"]
        D[TLS]
        E[DTLS]
    end
    
    subgraph Transport["전송 계층"]
        F[TCP]
        G[UDP]
        H[QUIC]
    end
    
    subgraph L3["네트워크 계층"]
        I[IP]
    end
    
    subgraph L2["데이터 링크 계층"]
        J[Ethernet]
        K[WiFi]
    end
    
    A --> D
    B --> D
    C --> D
    D --> F
    E --> G
    H --> G
    F --> I
    G --> I
    H --> I
    I --> J
    I --> K
    
    style A fill:#e1f5ff
    style B fill:#e1f5ff
    style C fill:#e1f5ff
    style D fill:#fff4e1
    style E fill:#fff4e1
    style F fill:#ffe1e1
    style G fill:#ffe1e1
    style H fill:#e1ffe1

전송 계층 중첩

QUIC은 UDP 기반이지만, 전통적으로 전송 계층에서 제공하는 많은 기능을 갖추고 있습니다.

일반적으로 다음과 같은 특징을 가집니다:

  • 연결 지향
  • 혼잡 제어
  • 재전송 메커니즘
  • 흐름 제어
  • 다중화
  • TLS 1.3과 깊이 통합

따라서 QUIC은 다음과 같이 이해할 수 있습니다:

비교 대상QUIC의 특징
TCP 대비연결 설정 및 복구 지연 시간이 일반적으로 더 낮음
UDP 대비더 안정적이고, 기능이 더 완전함

프로토콜 조합 관계

애플리케이션 계층 프로토콜과 전송 계층 프로토콜은 일대일로 바인딩되지 않습니다. 동일한 애플리케이션 프로토콜이 서로 다른 전송 방식 위에서 실행될 수 있습니다.

먼저 간소화된 총괄 표를 보겠습니다:

방식프로토콜 조합
Plain DNSUDP/TCP + DNS
HTTP/2TCP + TLS 1.2/1.3 + HTTP/2
HTTP/3QUIC + TLS 1.3 + HTTP/3
DoTTCP + TLS 1.2/1.3 + DNS
DoHHTTP/2 또는 HTTP/3 + DNS
DoQQUIC + TLS 1.3 + DNS

한 문장으로 요약하면:

  • DoT: 경로가 더 짧으며, TLS 위에 DNS를 직접 실행합니다.
  • DoH: 먼저 HTTP를 거친 후, 그 위에 DNS를 실행합니다.
  • DoQ: QUIC을 통해 직접 DNS를 실행합니다.
flowchart LR
    subgraph DoT["DoT DNS over TLS"]
        direction LR
        T1[TCP] --> T2[TLS]
        T2 --> T3[DNS]
    end
    
    subgraph DoH2["DoH over HTTP/2"]
        direction LR
        H1[TCP] --> H2[TLS]
        H2 --> H3[HTTP/2]
        H3 --> H4[DNS]
    end
    
    subgraph DoH3["DoH over HTTP/3"]
        direction LR
        Q1[QUIC] --> Q2[TLS 1.3]
        Q2 --> Q3[HTTP/3]
        Q3 --> Q4[DNS]
    end
    
    subgraph DoQ["DoQ DNS over QUIC"]
        direction LR
        D1[QUIC] --> D2[TLS 1.3]
        D2 --> D3[DNS]
    end
    
    style T1 fill:#e3f2fd
    style T2 fill:#fff3e0
    style H1 fill:#e3f2fd
    style H2 fill:#fff3e0
    style Q1 fill:#e8f5e9
    style Q2 fill:#fff3e0
    style D1 fill:#e8f5e9
    style D2 fill:#fff3e0

성능 및 호환성 분석

프로토콜 조합을 이해한 후에는 DoH와 DoT의 차이가 더 직관적으로 보입니다.

1. 성능

항목DoHDoT
이론적 저지연 잠재력높음, 특히 DoH/3중간~높음
UDP 환경 의존도DoH/3은 QUIC/UDP에 의존주로 TCP에 의존
네트워크 불량 시 안정성HTTP/2로의 폴백 여부에 따라 다름일반적으로 더 안정적

단순히 이해하면:

  • 서비스 제공업체가 HTTP/3을 지원하는 경우, DoH가 더 낮은 지연 잠재력을 가지는 경우가 많습니다.
  • 네트워크 환경이 UDP에 불리한 경우, DoT가 일반적으로 더 안정적입니다.
  • 이론적 속도는 실제 체감과 다를 수 있으며, 통신사의 패킷 폐기 전략이 결과에 직접적인 영향을 미칩니다.

2. 개인정보 보호 및 보안

항목DoHDoT
전송 암호화예예
도청/변조 방지예예
일반 기본 포트443853

핵심 사항은 다음과 같습니다:

  • DoH와 DoT는 모두 암호화 DNS입니다.
  • 둘 다 DNS 평문 누출 위험을 효과적으로 줄일 수 있습니다.
  • DoT가 “식별하기 쉽다"고 자주 언급되는 이유는 대체로 853 포트가 눈에 띄기 때문이며, 프로토콜 자체가 더 많은 정보를 노출하는 것은 아닙니다.
  • 실제로 DoT도 853 포트 외의 포트에서 실행될 수 있습니다, 단 플랫폼별 지원 정도가 다릅니다.

3. 확장성 및 서비스 배포

항목DoHDoT
기존 웹 인프라 재활용강함약함
443 포트 재활용 용이성예아니오
서비스 측 확장 공간더 큼상대적으로 제한적

이는 서비스 제공업체 관점에서 더 중요합니다:

  • DoH는 성숙한 HTTP 서비스 체계를 직접 재활용할 수 있습니다.
  • DoH는 443 포트에서 다른 웹 서비스와 함께 배포하기가 더 쉽습니다.
  • DoT는 일반적으로 “전용 DNS 서비스"에 가깝고, 프로토콜 경로가 더 순수하지만, HTTP 생태계만큼의 확장 능력은 없습니다.

4. 플랫폼 호환성

플랫폼/시스템DoHDoT
Chromium 브라우저지원시스템 또는 확장 프로그램에 의존
Windows 11기본 지원구성에 따라 다름
Android 8+일부 시나리오에서 지원기본 지원
Android 11+기본 지원기본 지원
macOS기본 지원기본 지원
iOS기본 지원기본 지원

전반적인 추세는:

  • DoH의 플랫폼 보급률이 점점 높아지고 있습니다.
  • DoT는 Android에서 먼저 시작했습니다.
  • 일반 사용자에게는 시스템에서 기본 제공하는 진입점이 있는지가 중요합니다.

실제 선택 권장 사항

일반 사용자에게 한 가지를 추천해야 한다면, 아래 표를 참고할 수 있습니다:

시나리오더 추천하는 방식
편리하고 호환성을 모두 원함DoH
네트워크가 UDP에 불리한 경우DoT
서비스 제공업체가 HTTP/3을 지원함DoH 우선 시도
시스템에서 DoT만 기본 제공우선 DoT 사용

추가 설명:

  • 대부분의 사용자에게 DoH가 일반적으로 더 편리합니다.
  • 서비스 제공업체가 DoH/3을 지원하는 경우, 네트워크 상태가 좋을 때 일반적으로 더 낮은 지연 시간을 제공합니다.
  • 네트워크 상태가 좋지 않은 경우, DoH는 HTTP/2로 폴백하여 가용성을 유지할 수 있습니다.
  • 로컬 네트워크에서 UDP 패킷이 자주 손실되는 경우, DoT가 DoH/3보다 더 안정적일 수 있습니다.

선택 시 확인할 사항

다음 4가지를 순서대로 확인하는 것을 권장합니다:

  1. 서비스 제공업체가 HTTP/3 / DoH/3을 지원하는지
  2. 내 통신사 네트워크에서 UDP 패킷 손실이 잦은지
  3. 내 기기가 DoH 또는 DoT를 기본으로 지원하는지
  4. 편리한 설정을 더 중시하는지, 아니면 네트워크 안정성을 더 중시하는지

실용적인 팁

宁屏을 사용해 보시는 것을 추천합니다. DoT와 DoH/3을 모두 지원하며, 광고 차단 및 DNS 분류 기능도 제공합니다. 자체 배포가 필요하다면 오픈소스 라이브러리도 사용할 수 있습니다.

요약

마지막으로 3가지로 정리하겠습니다:

  • DoH와 DoT는 모두 DNS 개인정보 보호 수준을 크게 향상시킵니다.
  • DoH는 호환성과 생태계 재활용에 더 강점이 있고, DoT는 직접성과 안정성에 더 강점이 있습니다.
  • 대부분의 사용자에게 DoH가 일반적으로 더 균형 잡힌 선택이지만, 궁극적으로는 네트워크 환경과 서비스 제공업체의 지원 여부에 따라 결정해야 합니다.