Analisis Perbandingan Teknologi DoH dan DoT
Categories:
DNS over HTTPS (DoH) dan DNS over TLS (DoT) adalah dua metode transmisi DNS yang umum digunakan, mereka mencapai transportasi DNS yang aman melalui berbagai protokol jaringan yang berbeda. Standar DoT didefinisikan oleh RFC 7858, sementara DoH didefinisikan oleh DNS Queries over HTTPS (DoH). Memahami perbedaan mendasar antara kedua teknologi ini memerlukan analisis dari struktur lapisan protokol jaringan.
Struktur Lapisan Protokol Jaringan
Desain bertingkat modern dari struktur lapisan protokol jaringan menggunakan pendekatan bertingkat, setiap lapisan menyediakan fungsi berbeda. DNS sebagai protokol aplikasi itu sendiri tidak terikat pada transportasi tertentu, dapat berjalan di atas berbagai protokol transport.
Lapisan aplikasi (L7) mencakup HTTP/1.1, HTTP/2, HTTP/3, FTP dan DNS dll. Perlu dicatat bahwa semantik HTTP/3 masih berada di lapisan aplikasi, hanya saja QUIC sebagai transportasi. Lapisan keamanan terletak antara lapisan aplikasi dan lapisan transport, utamanya mencakup TLS dan variasinya. TLS biasanya berjalan di atas TCP, seperti HTTPS dan DoT. DTLS adalah versi datagram dari TLS, dapat berjalan di atas UDP. Protokol QUIC relatif khusus, ia mengintegrasikan handshake TLS 1.3 dan derivasi kunci secara langsung ke dalam protokol internal.
QUIC dapat dianggap sebagai protokol L4.5, ia didasarkan pada ekspansi UDP, menyediakan kemampuan transportasi tradisional. Lapisan transport (L4) mencakup TCP, UDP dan QUIC. Meskipun dari sudut pandang implementasi QUIC didasarkan pada UDP, namun ia memiliki kemampuan reliabilitas, kontrol tekanan, multipart dan handshake enkripsi, sehingga dalam praktiknya dianggap sebagai protokol transport independen. Lapisan jaringan (L3) menggunakan protokol IP (IPv4/IPv6) untuk routing dan forwarding paket data. Lapisan tautan data (L2) mencakup Ethernet dan Wi-Fi (802.11) dll.
TLS sebagai alat enkripsi bekerja antara lapisan aplikasi dan lapisan transport. Jika enkripsi TLS dilepas dari DoT, DoT sebenarnya menjadi DNS over TCP. Desain bertingkat ini membuat enkripsi menjadi opsional, bukan batasan wajib dari protokol itu sendiri.
Karakteristik Plain DNS
DNS paling dasar disebut Plain DNS, dapat berjalan di atas UDP atau TCP. UDP adalah cara paling umum, karena koneksi sederhana dan kecepatan pertama cepat. Namun UDP memiliki kelemahan yaitu tidak dapat diandalkan, paket mudah hilang di jaringan. TCP meskipun memiliki banyak handshake, kecepatan pertama lebih lambat sekitar 30% dibandingkan UDP, namun setelah koneksi berlangsung lama, responsnya sama dengan UDP.
Operator jaringan memilih untuk membuang paket UDP saat jaringan sibuk guna mengurangi beban perangkat. Untuk beberapa daerah operator UDP mengalami banyak pembuangan, menggunakan TCP untuk DNS mungkin lebih menguntungkan. TCP memiliki mekanisme pengiriman ulang, meskipun terjadi pembuangan tetap dapat menjamin data sampai tepat waktu, sedangkan pembuangan UDP tidak akan mengurangi beban perangkat kecil operator, justru akan menambah ketidakpastian karena pengiriman ulang.
Pengeleman Lapisan Aplikasi
DNS dan HTTP keduanya termasuk protokol lapisan aplikasi, DoH sebenarnya adalah protokol lapisan aplikasi yang mengeksplorasi protokol lapisan aplikasi lainnya. DoH bukan pasti DNS over HTTPS, menggunakan HTTP biasa juga layak dilakukan, hanya saja DoH yang tidak terenkripsi adalah permintaan teks biasa, dibandingkan Plain DNS tidak ada keuntungan apa pun, hanya dalam kasus sangat jarang kebutuhan khusus yang akan menggunakan.
Secara teoritis dapat menempatkan DNS pada setiap protokol lapisan aplikasi, misalnya DNS over FTP juga dapat direalisasikan, cukup dengan mengembangkan server dan klien yang sesuai. Kebebasan ini menunjukkan kemungkinan kombinasi protokol lapisan aplikasi.
flowchart TD
subgraph L7["Lapisan Aplikasi"]
A[DNS]
B[HTTP]
C[FTP]
end
subgraph Security["Lapisan Keamanan"]
D[TLS]
E[DTLS]
end
subgraph Transport["Lapisan Transport"]
F[TCP]
G[UDP]
H[QUIC]
end
subgraph L3["Lapisan Jaringan"]
I[IP]
end
subgraph L2["Lapisan Tautan Data"]
J[Ethernet]
K[Wi-Fi]
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:#e1ffe1Pengeleman Lapisan Transport
Protokol QUIC didasarkan pada UDP, namun di lapisan transport menawarkan layanan koneksi. QUIC merealisasikan kemampuan koneksi, kontrol tekanan, pengiriman ulang, kontrol aliran, fragmentasi dan penggabungan yang sudah ada di TCP. Dibandingkan dengan TCP, QUIC memiliki latensi lebih rendah. Dibandingkan dengan UDP, QUIC lebih canggih dan andal.
Hubungan Kombinasional Protokol
Hubungan kombinasional antara lapisan aplikasi dan lapisan transport tidak memiliki batasan yang pasti, enkripsi bisa ditambahkan atau tidak ditambahkan. HTTP dapat berjalan di atas TCP, juga dapat berjalan di atas QUIC. DNS dapat berjalan di atas TCP, dapat berjalan di atas UDP, juga dapat berjalan di atas QUIC.
Berdasarkan kemungkinan-kemungkinan ini, dapat merangkum hubungan kombinasional berikut. Plain DNS sama dengan UDP atau TCP ditambah protokol DNS. HTTP/2 sama dengan TCP ditambah TLS 1.2 atau TLS 1.3 ditambah protokol HTTP. HTTP/3 sama dengan QUIC ditambah TLS 1.3 ditambah protokol HTTP.
DoH (DNS over HTTPS) sama dengan HTTP/2 atau HTTP/3 ditambah protokol DNS. DoT (DNS over TLS) sama dengan TCP ditambah TLS 1.2 atau TLS 1.3 ditambah protokol DNS. DoQ (DNS over QUIC) sama dengan QUIC ditambah TLS 1.3 ditambah protokol 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:#fff3e0Analisis Kinerja dan Kompatibilitas
Setelah memah struktur lapisan protokol, dapat menganalisis kelebihan dan kekurangan DoH dan DoT.
Perbandingan antara TCP dan QUIC perlu dikombinasikan dengan lingkungan jaringan aktual operator. QUIC adalah protokol yang lebih baru, menyelesaikan beberapa masalah jaringan lama, namun ia didasarkan pada UDP. Dari sudut pandang latensi jaringan, protokol berbasis QUIC memiliki latensi sekitar 35% lebih rendah dibandingkan TCP, sehingga DNS over HTTP/3 dan DoQ (DNS over QUIC) secara teoretis akan memiliki kinerja lebih baik dibandingkan DNS over HTTP/2 dan DoT.
Namun lingkungan jaringan aktual memiliki masalah latensi pengiriman ulang akibat pembuangan. Operator memilih untuk membuang paket UDP saat sibuk, QUIC akan diidentifikasi sebagai UDP dan dibuang. Meskipun QUIC mendukung pengiriman ulang, pengiriman ulang yang memperkenalkan latensi akan menyebabkan latensi aktual QUIC mungkin lebih tinggi daripada TCP.
Privasi dan keamanan, DoH dan DoT keduanya merupakan lalu lintas terenkripsi, tidak akan dicuri dan dimanipulasi. Tentang masalah DoT diidentifikasi lalu diblokir, utamanya karena pengaturan DNS enkripsi default Android menggunakan port 853, sehingga port 853 menjadi port sensitif. DoT sendiri adalah lalu lintas enkripsi umum, tidak akan diidentifikasi sebagai lalu lintas DNS khusus. Secara aktual setiap port dapat menyediakan layanan DoT, ini di Android membutuhkan aplikasi pihak ketiga, iOS mendukung secara native penggunaan port DoT apa pun.
Skalabilitas adalah keunggulan penting bagi DoH. Dibandingkan dengan DNS yang diwrapping HTTP dan Plain DNS, HTTP memiliki skalabilitas yang jelas lebih baik. Penyedia layanan dapat menyediakan ribuan layanan di port 443, termasuk DoH, dan dengan mudah memperluas fungsionalitas. DoT dan DoQ biasanya membutuhkan port eksklusif, skalabilitas sepenuhnya bergantung pada Plain DNS. Ini adalah perbedaan dari perspektif penyedia, bagi pengguna biasa belum ada persepsi yang jelas.
Kecepatan penanganan permintaan DNS, kecepatan penanganan HTTP memang mungkin lebih lambat beberapa siklus CPU dibandingkan Plain DNS, namun perbedaan ini dalam penggunaan aktual dapat diabaikan. Dalam hal kompatibilitas, DoH mungkin lebih mainstream, karena bagi penyedia DoH memiliki skalabilitas yang baik.
Situasi dukungan enkripsi DNS saat ini pada platform utama berbeda-beda. Browser Chromium mendukung DoH. Sistem Windows 11 mendukung DoH secara native. Sistem Android 8 dan versi lebih tinggi mendukung DoT secara native. Sistem Android 11 dan versi lebih tinggi mendukung DoT dan DoH. Sistem macOS mendukung DoT dan DoH secara native. Sistem iOS mendukung DoT dan DoH secara native.
Saran Pemilihan Aktual
Bagi pengguna biasa, menggunakan DoH akan lebih nyaman dibandingkan DoT. DoH dibandingkan DoT, mayoritas waktu memberikan latensi yang lebih baik, minoritas waktu memberikan latensi yang mirip. DoH dibandingkan DoQ, mayoritas waktu memberikan latensi yang mirip, minoritas waktu memberikan latensi yang lebih baik.
Kesimpulan ini didasarkan pada penyedia layanan menyediakan layanan DNS over HTTP/3. Jika penyedia tidak menyediakan HTTP/3, DoH dan DoT tidak memiliki perbedaan yang signifikan. DoH akan menggunakan DoH/3 mendapatkan latensi rendah ketika jaringan baik, dan secara otomatis turun menjadi HTTP/2 ketika jaringan buruk. Kemampuan adaptif ini membutuhkan implementasi penyedia, namun penyedia utama biasanya sudah menerapkannya.
Disarankan mencoba 宁屏, yang mendukung DoT dan DoH/3, dengan fitur pemblokiran iklan dan pemecahan DNS secara native. Jika perlu self-hosting, dapat menggunakan library open source nya.
Pemilihan protokol jaringan perlu mempertimbangkan berbagai faktor, termasuk kualitas jaringan operator, dukungan penyedia, kompatibilitas perangkat dll. Bagi sebagian besar pengguna, DoH adalah pilihan yang seimbang antara kinerja, kompatibilitas dan perlindungan privasi.