Sebagai pembuka, jika belum pernah mendengar apa itu Oblivious DNS Over HTTPS (ODoH), bisa pertimbangan untuk membaca:
Artikel di Blog Cloudflare yang berjudul “Improving DNS Privacy with Oblivious DoH in 1.1.1.1” disini
Artikel di Techcrunch yang berjudul “Cloudflare and Apple design a new privacy-friendly internet protocol” disini
Paper yang berjudul “Oblivious DNS Over HTTPS” oleh E. Kinnear (Apple), P. McManus (Fastly), T. Pauly (Apple) dan C.A. Wood (Cloudflare) disini
…untuk penjelasan yang mendetail.
Namun jika ingin mengetahuinya berdasarkan cerita gue, cari posisi ternyamanmu dan mari dengarkan (literally) gue bercerita.
Sebelum berbicara tentang ODoH, mari kita bahas tentang pendahulunya terlebih dahulu yakni DNS Over HTTPS (DoH), DNS Over TLS (DoT) dan DNS Over QUIC (DoQ).
Tiga Do* diatas pada dasarnya melakukan hal yang sama: Untuk menjawab pertanyaan terkait DNS (DNS resolution). Pembedanya pada dasarnya hanya 1: Transport layer — protokol yang digunakan untuk “membungkus” paket internet.
DoH menggunakan protokol HTTP+TLS (TCP), sedangkan DoT menggunakan TLS (TCP) dan DoQ menggunakan QUIC (UDP) yang mana setiap paket dienkripsi terlebih dahulu sebelum dikirim untuk memastikan tidak ada yang “mengintip” ataupun “memanipulasi” paket yang ada. Dan dalam konteks disini, paket tersebut adalah paket DNS.
Berbeda dengan paket DNS yang dikirim menggunakan protokol “murni” TCP/UDP alias DNS 53 yang rentan untuk diintip apalagi dimanipulasi.
Ada pro-kontra terkait transport layer yang digunakan baik di DoH, DoT ataupun di DoQ, namun masih ada satu masalah—terkait privasi—diantara 3 transport layer tersebut: bagaimanapun DNS Resolver yang digunakan akan mengetahui siapa mengakses apa.
Alias, ini seperti hanya memindahkan kepercayaan dari yang sebelumnya ke ISP (atau siapapun) ke DNS resolver yang digunakan. Untuk masalah apakah DNS Resolver memanipulasi DNS answer mungkin bisa diselesaikan oleh DNSSEC, namun tidak untuk masalah privasi, sekalipun DNS resolver yang digunakan menjanjikan “zero logging” or whatsoever.
ODoH
ODoH singkatnya ingin menjembatani jurang privasi antara DNS resolver dengan pengguna (DNS stub resolver). Sederhananya, konsep ODoH adalah seperti ini:
Server Proxy mengetahui user X adalah pemilik alamat IP x.x.x.x namun tidak mengetahui ingin mengakses situs apa
DNS Resolver mengetahui jika Server Proxy menanyakan alamat IP dari situs indonesia.go.id namun tidak mengetahui penanya (ataupun alamat aslinya) pengguna
Terdengar sangat menarik, bukan?
Berikut ilustrasinya yang diambil dari blog Cloudflare:
ODoH berbeda dengan proxy biasa yang biasanya melakukan DNS resolution di Proxy Server juga, karena di konsep ODoH ada 2 pemain yang berperan: server proxy & target.
Dan yang perlu diketahui juga adalah “target server” alias “upstream server” yang digunakan berbeda dengan server yang mendukung DoH/DoT/DoQ alias harus mengerti paket yang dikirim oleh proxy server yang berarti DNS resolver yang digunakanpun harus mendukung ODoH.
ODoH statusnya masih experimental dan (open) DNS resolver yang sudah mendukung ODoH sejauh yang gue tau adalah Cloudflare melalui odoh.cloudflare-dns.com nyaa.
Yang lumayan sulit—untuk saat ini—adalah mencari proxy server yang mendukung ODoH, dan yang gue tau adalah odoh1.surfdomeinen.nl milik surf.nl, yang harusnya berada di Netherlands jika melihat TLD yang digunakan.
Dan tentu saja edgyDNS pun mendukung ODoH, baik di resolver maupun di proxy, yang keduanya berada di beda server. Sejauh ini DNS Client (stub resolver) yang gue tau mendukung ODoH hanyalah DNSCrypt, dan jika kamu sudah menggunakan DNSCrypt, bisa pertimbangkan untuk menggunakan ODoH nya edgyDNS!
Menggunakan ODoH
Sebagai informasi, ada 2 server yang akan digunakan untuk menggunakan ODoH ini:
Proxy (relay.edgy-dns.com) dengan alamat IP 27.112.79.208
Resolver (odoh.edgy-dns.com) dengan alamat IP 27.112.79.80
Kedua server diatas tentu saja diatur langsung oleh gue dan seperti biasa: zero logging policy.
Ilustrasinya kurang lebih seperti ini:
Dengan menggunakan ODoH, sudah dipastikan akan sulit untuk “pihak ketiga” mengetahui situs yang kamu kunjungi. Jika sebelumnya (DoH, DoT, DoQ) si DNS resolver dapat mengetahui jika kamu (pemilik alamat IP x.x.x.x.) ingin mengakses github.com, sekarang sudah tidak lagi!
Sekarang bisa dipastikan hanya kamu yang mengetahui jika kamu mengakses situs github.com tersebut, tidak ISP; tidak DNS resolver, tidak VPN/Proxy provider, tidak root servers.
Untuk mencoba menggunakan ODoH, konfigurasi minimum dari berkas dnscrypt-proxy.toml
nya adalah seperti ini:
listen_addresses = ['127.0.0.1:53']
bootstrap_resolvers = ['9.9.9.9:53']
server_names = ['odoh-edgy']
[anonymized_dns]
routes = [
{ server_name='odoh-edgy', via=['odohrelay-edgy'] }
]
[static]
[static.'odoh-edgy']
stamp = 'sdns://BQMAAAAAAAAAFW9kb2guZWRneS1kbnMuY29tOjQ0MwovZG5zLXF1ZXJ5'
[static.'odohrelay-edgy']
stamp = 'sdns://hQIAAAAAAAAAETI3LjExMi43OS4yMDg6NDQzABJyZWxheS5lZGd5LWRucy5jb20GL3Byb3h5'
Untuk DNS Stamps nya bisa di-inspect disini.
Dan markicob!
Bagaimana pemandangan disisi Proxy server?
Hampir tidak ada paket yang menarik :))
Jika penasaran apa yang bisa “dilihat” di paket yang menggunakan HTTPS sebagai transport layer, kurang lebih payloadnya adalah seperti ini:
Ya, ter-enkripsi. Dan hanya si penerima saja (level aplikasi) yang bisa mengetahui isi paket tersebut. Ada 1 lack dari HTTPS yakni SNI leak, tapi itu masalah lain :))
Sekarang mari kita lihat bagaimana pemandangan di sisi DNS resolver:
Dan sekali lagi, tidak ada yang menarik. Hanya memproses permintaan HTTPS dari si server proxy.
Kesimpulannya: server DNS resolver (edgyDNS) tidak akan tau bahwa DNS resolution melalui DoH/DoT untuk github.com adalah dari gue (pengguna dengan alamat IP 8.38.148.162 — alamat IP nya Cloudflare Warp+ kalau penasaran) dan si server proxy tidak akan tau bahwa gue melakukan DNS resolution untuk alamat domain github.com alias yang menggambarkan kalau gue lagi akses github.com.
…which is nice, right?
Penutup
Gue pribadi menggunakan ODoH dan baru sekitar 3 hari (dimulai wiken kemaren) untuk ber-eksperimen sambil mempelajari lebih lanjut tentang ini khususnya dibagian keamanan & privasi. Di router gue, gue memasang Pi-Hole dengan upstream DNS ke DNSCrypt proxy gue yang mengarah ke odoh.edgy-dns.com melalui relay.edgy-dns.com sebagai proxy.
Technically ini terlalu ribet untuk konteks gue yang mana gue adalah pemelihara dari layanan edgyDNS. Tapi gue anggap sebagai usaha gue untuk mengurangi footprint walaupun gue bukan penjahat & edgyDNS tidak mencatat log satupun terkait DNS resolution dan HTTP requests.
So, yeah, that’s it.
Gue ingatkan sekali lagi bahwa ODoH ini masih berstatus eksperimental, tapi kita hidup di “edge”, so, yeah, enjoy!
Dan jika suatu saat nanti Mozilla Firefox ataupun Apple Safari mendukung penggunaan ODoH (dan dapat memilih sendiri proxy/target nya) untuk umum, edgyDNS sudah siap untuk digunakan oleh siapapun yang dimulai dari hari ini 😉
nays!
nays!