Porównanie zaszyfrowanych protokołów DNS: DoT, DoH, DoQ

Porównanie Plain DNS, DoT, DoH, DoQ pod względem warstw, portów, wydajności i zastosowań, wraz z praktycznymi wskazówkami wyboru i konfiguracji.

Szybka definicja

  • Plain DNS: DNS w postaci jawnej, domyślnie UDP/53, w razie potrzeby TCP/53 (np. przycięcie odpowiedzi, transfer strefy).
  • DoT: DNS over TLS, TLS na TCP, domyślny port 853 (RFC 7858/8310).
  • DoH: DNS over HTTPS, oparte na HTTPS (HTTP/2 lub HTTP/3), domyślny port 443 (RFC 8484).
  • DoQ: DNS over QUIC, oparte na QUIC + TLS 1.3, domyślny port UDP/853 (RFC 9250, IANA przypisało 853/udp).

Relacja warstw (uproszczony model TCP/IP)

  • Warstwa aplikacji: HTTP, HTTPS, DNS (DoH to enkapsulacja DNS w HTTPS)
  • Warstwa bezpieczeństwa: TLS (dla TCP lub QUIC)
  • Warstwa transportowa: TCP, UDP, QUIC
  • Warstwa sieciowa: IP
  • Warstwa łącza: Ethernet itp.
  • Warstwa fizyczna: skrętka/światłowód/bezprzewodowe

Podstawowe punkty

  • Plain DNS działa na UDP/TCP, bez szyfrowania.
  • DoT = TCP + TLS + DNS (dedykowany port 853).
  • DoH = TCP/QUIC + TLS + HTTP(S) + DNS (port 443, współdzieli z HTTPS).
  • DoQ = QUIC + TLS 1.3 + DNS (dedykowany port UDP/853).
graph TB
    subgraph Warstwa aplikacji
        A[HTTP]
        A2[HTTPS]
        C[DNS]
        D[DoH DNS over HTTPS]
    end

    subgraph Warstwa bezpieczeństwa
        E[TLS]
    end

    subgraph Warstwa transportowa
        F[TCP]
        G[UDP]
        H[QUIC]
    end

    subgraph Warstwa sieciowa
        I[IP]
    end

    subgraph Warstwa łącza
        J[Ethernet]
    end

    subgraph Warstwa fizyczna
        K[skrętka/światłowód/bezprzewodowe]
    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

Podstawy i sprostowania

  • Plain DNS domyślnie korzysta z UDP/53, przy przycięciu odpowiedzi (bit TC) lub potrzebie niezawodności przełącza się na TCP/53.
  • DoT buduje tunel TLS na TCP, domyślny port 853; można wykorzystać długotrwałe połączenia, zmniejszając narzut uzgadniania.
  • DoH traktuje DNS jako zasób HTTPS (application/dns-message), zwykle HTTP/2 lub HTTP/3, port 443, łatwe przejęcie przez zwykłe HTTPS.
  • DoQ bezpośrednio wykorzystuje QUIC (oparte na UDP) do DNS, niskie opóźnienia i brak blokady głowy kolejki, ale ekosystem nadal rośnie.
  • Ogólne stwierdzenia typu „QUIC zawsze jest o X% szybszy” nie są trafne; rzeczywista wydajność zależy od jakości sieci (utraty pakietów, jitter, RTT), możliwości ponownego użycia połączeń, implementacji i konfiguracji serwera.
  • DoH „nie jest automatycznie wolniejszy/szybszy tylko dlatego, że DNS jest w HTTP”; wydajność zależy od ponownego użycia połączeń, jakości sieci i implementacji; w wielu przypadkach DoH/3 i DoT są porównywalne lub DoH/3 lepszy.
  • DoT może używać SNI do weryfikacji nazwy hosta w certyfikacie; DoH polega na standardowej weryfikacji certyfikatu HTTPS i dopasowaniu nazwy hosta.
  • Szyfrowany DNS chroni przed podsłuchem i modyfikacją w trasie, nie oznacza to „pełnej anonimowości”. Rezolwer może nadal rejestrować zapytania; wybierz zaufanego dostawcę i zapoznaj się z polityką prywatności.
graph TD
    subgraph Rodzina DNS
        A[Plain DNS UDP/TCP + DNS]

        subgraph Szyfrowany DNS
            B[DoT TCP + TLS + DNS]
            C[DoH HTTP/2,3 + TLS + DNS]
            D[DoQ QUIC + TLS 1.3 + DNS]
        end

        subgraph Transport
            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

Porównawcza tabela

Protokół Warstwa transportowa Szyfrowanie Enkapsulacja Domyślny port Typowe cechy
Plain DNS UDP/TCP Brak DNS native 53 Prosty, wydajny, jawny, podatny na podsłuch/modyfikację
DoT TCP TLS 1.2/1.3 DNS 853 Dedykowany port, łatwo blokowany, dobre wsparcie systemowe
DoH TCP/QUIC TLS 1.2/1.3 HTTP/2-3 + DNS 443 Współdzieli port z HTTPS, lepsza przebijalność, priorytet w przeglądarkach
DoQ QUIC TLS 1.3 DNS 853/UDP Niskie opóźnienia, brak blokady głowy kolejki, ekosystem w rozwoju

Wydajność i opóźnienia

  • Ponowne użycie połączeń: DoT/DoH/DoQ mogą wykorzystywać długotrwałe połączenia, zmniejszając narzut uzgadniania; DoH/2, DoH/3 i DoQ obsługują wielokrotne żądania w jednym połączeniu.
  • Blokada głowy kolejki: TCP ma to na poziomie aplikacji; HTTP/2 na TCP zmniejsza to, ale wciąż zależy od utraty pakietów TCP; QUIC (DoH/3, DoQ) unika blokady głowy kolejki na poziomie transportu, lepiej radzi sobie z dużą utratą pakietów/siecią mobilną.
  • Opóźnienie pierwszego pakietu: przy pierwszym połączeniu DoT wymaga TCP+TLS; DoH/2 podobnie; DoH/3/DoQ oparte na QUIC mają szybsze ponowne połączenie i migrację. W długim okresie różnice zależą od implementacji i warunków sieci.
  • Dostępność: DoH (port 443) najtrudniej zablokować; DoT (port 853) często blokowany; DoQ (853/UDP) może być blokowany lub nieotwierany.

Wsparcie klientów i systemów

  • Przeglądarki: rodzina Chromium i Firefox domyślnie wbudowane DoH (możliwość automatycznego ulepszania lub listy wbudowanych dostawców).
  • Windows: Windows 11 natywnie obsługuje DoH.
  • Android: Android 9+ oferuje „Prywatne DNS” (systemowe DoT). Systemowe DoH zależy od wersji/wytwórcy.
  • Platformy Apple: iOS 14+/macOS 11+ przez profile lub NetworkExtension obsługują DoT i DoH.

Wdrożenie i wybór

  • Sieci o ograniczonym dostępie (np. Wi‑Fi publiczne, wymagające przebijania prostych blokad): DoH (port 443), włącz HTTP/3 jeśli dostępne.
  • Systemowy wspólny punkt wyjścia (router, brama, prywatne DNS Androida): DoT (853), w razie potrzeby DoH (443) jako fallback.
  • Sieci o dużych utratkach pakietów/mobilne: DoH/3 lub DoQ (jeśli obsługiwane przez rezolwer i klienta).
  • Środowisko korporacyjne/zgodność: wybierz zgodnie z polityką (DoH łączy się z infrastrukturą HTTPS; DoT oddziela DNS od kontroli).

Podsumowanie

  • Preferowane DoH (443, przebijalność), włącz HTTP/3 jeśli dostępne.
  • Systemowe: DoT (853) z trwałym połączeniem, DoH (443) jako fallback.
  • Jeśli rezolwer i klient obsługują: DoQ (lepsze doznania w sieci mobilnej).

Standardy

  • RFC 7858, RFC 8310 (DNS over TLS)
  • RFC 8484 (DNS over HTTPS)
  • RFC 9250 (DNS over QUIC)

Polecane usługi DNS