Akhir-akhir ini pengguna internet sedang cukup ramai mengeluhkan tentang pemblokiran yang terjadi di jaringan internet yang ada di Indonesia. Dari mengutarakan di sosial media, sampai ke grup WhatsApp keluarga. Pemblokiran akses ke layanan yang ada di internet bukanlah sesuatu yang baru di Indonesia, khususnya di jaringan internet itu sendiri.

Ada sekitar 1,609,729 alamat domain yang terdaftar di TrustPositif per tulisan ini diterbitkan, dan pastinya akan terus bertambah. TrustPositif adalah daftar alamat domain yang dianggap tidak layak diakses oleh pengguna internet di Indonesia karena mengandung unsur pornografi; radikalisme, SARA, perjudian dsb, yang mana daftar tersebut dipelihara oleh Subdirektorat Pengendalian Konten Internet dibawah Kementerian Komunikasi dan Informatika.

Keluhan mulai ramai ketika beberapa pengguna internet mengeluhkan layanan internet favorit mereka tidak dapat diakses—alias diblokir—karena alasan hukum, dari Paypal yang mana layanan untuk mengirim/menerima uang melalui internet sampai ke Steam, layanan hiburan untuk memainkan permainan komputer.

Oke sekarang mari berhenti bersifat manis. Gue sepenuhnya tidak menyalahkan pemblokiran yang terjadi sekalipun tidak pernah membenarkan pemblokiran itu sendiri. Beberapa orang akan menyinggung tentang “censorship”, “kebebasan berekspresi”, “privasi”, “keamanan” dan apapun itu yang berkaitan dengan hak sebagai individu khususnya sebagai warga negara.

Biar enak, mari kita fokus ke pemblokiran dulu. Biar lo terlihat edgy di tongkrongan, beri gue waktu 3 menit untuk menjelaskan tentang pemblokiran ini dari motivasinya, mitigasinya, sampai ke cara kerjanya secara high-level. Setelah itu, lo bisa melanjutkan pembahasan yang lebih jauh jika tertarik. Without further ado, take your best seat now.

It’s always DNS

Semua selalu bermulai dari DNS. Situs rizaldy.club yang sedang lo akses saat ini, situs twitter.com tempat lo ngeluh tentang teman kerja lo yang kontrol itu, sampai ke youtube.com tempat lo mencari hiburan berbentuk video, adalah tentang DNS.

DNS adalah sebuah sistem penamaan. Jika lo memiliki aplikasi kontak yang berisi nomor teman-teman dan mantan-mantan lo, cara kerja DNS gampangnya seperti aplikasi kontak tersebut: lo menggunakan nama seseorang untuk mencari sebuah nomor. Seperti, lo akan lebih mudah mengingat kalau nomor Fariz adalah +6287xxx69420 daripada mengingat +6287xxx69420 adalah nomor Fariz.

Di dunia internet, kasusnya pun tidak jauh berbeda. Lo akan lebih mudah mengingat google.com daripada 74.125.68.100, meskipun dua-dua nya bila diakses akan mengarah ke situs yang sama.

Mungkin lo bertanya: kenapa butuh DNS?

Jawabannya adalah: komputer hanya dapat berkomunikasi dengan komputer lainnya menggunakan alamat IP. Angka 74.125.68.100 diatas adalah sebuah alamat IP yang dikelola oleh Google, dan setiap komputer (atau perangkat apapun itu yang bisa tersambung ke jaringan internet) pasti memiliki alamat IP jika tersambung ke sebuah jaringan.

Ketika lo mengakses situs ini, perangkat lo (dengan IP yang bisa dilihat disini) berkomunikasi dengan komputer gue yang anggap memiliki alamat IP 104.21.87.241. Perangkat lo bilang *“hey komputer *104.21.87.241, gue akses rizaldy.club lewat Safari nih, beri gue sesuatu” ke komputer gue, dan komputer gue ngerespon “hey perangkat <alamat_ip_lo>, nih sesuatu yang lo minta”. Dan munculah halaman yang sedang lo lihat sekarang.

Pertanyaan selanjutnya adalah: Siapa yang mengatur DNS? DNS pada dasarnya ada 3 jenis, dan DNS yang digunakan oleh pengguna internet adalah DNS Resolver. Lalu siapa yang mengatur DNS resolver tersebut? Besar kemungkinan jawabannya adalah penyedia internet yang lo gunakan (ISP).

Misal, jika lo menggunakan layanan internet dari Biznet, DNS resolver yang digunakan di jaringan internet lo besar kemungkinan adalah dari Biznet. Jika misalnya perangkat lo tidak bisa mengakses situs vimeo.com, besar kemungkinan DNS resolver yang digunakan tersebut tidak memberikan alamat IP untuk situs vimeo.com tersebut.

Pemblokiran layanan internet

Pemblokiran akses layanan internet paling sederhana berada di level DNS.

Daftar yang ada di TrustPositif tersebut berisi kumpulan alamat domain, alamat domain adalah sebuah “pengenal” seperti sebuah nama di aplikasi kontak yang berisi nomor telepon.

Jika lo mengakses vimeo.com dan yang muncul adalah halaman yang menjelaskan bahwa situs tersebut diblokir, berarti DNS resolver lo memberikan alamat IP yang tidak seharusnya, alias palsu. Apa bagian menariknya?

  1. DNS resolver tau situs/layanan apa yang akan lo akses
  2. DNS resolver memberikan alamat IP palsu

Silahkan ubah DNS resolver pada poin diatas dengan entitas yang mengoperasikan DNS resolver tersebut.

DNS resolver tahu bahwa vimeo.com berada di daftar blokir mereka yang salah satunya merujuk ke daftar TrustPositif, maka dari itu mereka tidak meneruskan permintaan lo ke situs vimeo.com mungkin karena alasan hukum.

Cara untuk mitigasi pemblokiran di level DNS ini adalah sesederhana: jangan buat DNS resolver tersebut mengetahui situs apa yang akan lo akses. Yang berarti, lo harus menggunakan DNS resolver lain.

DNS resolver apa yang harus lo gunakan? Jawabannya tergantung. Saran gue adalah DNS resolver yang netral, cepat, dan aman. Maksud netral disini adalah yang tidak terpengaruhi oleh pihak lain, misal seperti DNS resolver yang digunakan oleh ISP yang ada di Indonesia yang dipengaruhi oleh hukum yang ada di Indonesia.

DNS resolver rekomendasi gue ada 3:

Cara konfigurasinya terlihat cukup mudah, hanya perlu mengganti alamat IP untuk entry DNS Servers dan bimsalabim lo sudah menggunakan DNS resolver yang bukan dari ISP tersebut.

Tapi kebanyakan ISP yang ada disini banyak gaya ;)

DNS Hijack

Lo mungkin mengganti bagian DNS Server di router ataupun di komputer lo dengan 8.8.8.8 nya Google Public DNS, tapi apakah DNS resolver yang lo gunakan tersebut adalah benar-benar Google Public DNS?

Jika penasaran, lo bisa cek di halaman ini. Di halaman tersebut akan memberitahu DNS resolver apa saja yang digunakan di jaringan internet lo. Jika ternyata bukan dari DNS resolver yang lo maksud, besar kemungkinan terdapat “DNS Leak” yang gampangnya permintaan DNS dari komputer/jaringan lo dibajak.

Siapa yang membajak? Siapa lagi jika bukan yang banyak gaya tersebut.

Bagaimana mereka bisa membajak? Karena mereka tahu bahwa komputer ataupun router lo mengirimkan permintaan DNS. Dan seperti biasa, untuk memitigasinya sesederhana dengan cara: jangan buat ISP lo mengetahui bahwa komputer ataupun router lo melakukan permintaan DNS.

Bagaimana caranya? Dengan menggunakan “protokol” yang aman, yang dalam konteks ini adalah protokol yang menggunakan enkripsi. Dari 3 DNS resolver yang sempat gue sebutkan diatas, mereka menyediakan “jalur aman” untuk dapat mengakses DNS resolver mereka, berikut instruksinya:

Sebagai kesimpulan, poin utama dari menghindari pemblokiran di level DNS adalah:

  1. Dengan menggunakan DNS resolver yang netral untuk menghindari “pemalsuan alamat IP”
  2. Dengan menggunakan protokol yang aman untuk menghindari pembajakan permintaan DNS

Pemblokiran adalah yang ada di poin nomor satu, dan dikebanyakan kasus, sayangnya pengguna internet terjebak di nomor dua tersebut.

Jika tidak ingin ribet, bisa gunakan layanan Warp nya Cloudflare meskipun gue tidak terlalu merekomendasikannya karena alasan pribadi. Tapi setidaknya itu menjadi satu-satunya langkah yang paling mudah untuk selangkah maju kedepan.

Just don’t forget that you know what you’re doing.

Commercial VPN

Tidak sedikit iklan yang menjelaskan bahwa menggunakan VPN akan meningkatkan keamanan dan privasi. Internet, pada dasarnya hanyalah tentang jaringan publik yang saling terhubung. Ketika lo mengakses youtube.com menggunakan layanan internet dari Biznet, sederhananya permintaan lo untuk situs youtube.com diteruskan ke jaringan Biznet dan diteruskan ke siapapun yang akan mengarahkan permintaan lo ke komputer—dengan alamat IP tertentu—yang mana tempat youtube.com berada.

VPN (atau VPN komersil lebih tepatnya) hanyalah mengganti peran ISP seperti Biznet tersebut. Alih-alih lo mempercayakan ISP untuk meneruskan permintaan lo ke situs youtube.com, lo mempercayakan layanan VPN yang lo gunakan tersebut untuk melakukannya.

Ketika lo mengakses situs/layanan yang ada di internet menggunakan VPN, yang lo lakukan adalah seperti “hey ISP, teruskan permintaan gue ke jaringan VPN X. Biar dia aja yang ngatur situs/layanan apa yang mau gue akses, dan jangan tanya kenapa karena itu bukan lagi urusan lo. Gue lebih percaya dia daripada lo”.

Berbicara teknis sedikit, VPN pada dasarnya adalah jaringan diatas jaringan, alias jaringan pribadi diatas jaringan publik (internet). VPN umumnya menggunakan protokol yang terenkripsi, sehingga bonusnya sederhananya adalah: ISP tidak mengetahui situs apa yang akan lo akses dan tidak tahu akan permintaan DNS ke situs tujuan lo. Karena informasi tersebut terenkripsi, dan hanya lo dan layanan VPN yang gunakan yang mengetahui informasi tersebut, technically.

Yang ISP tahu, lo terhubung ke sebuah jaringan yang informasinya terenkripsi. And that’s it. Mungkin ISP tahu bahwa lo terhubung ke jaringan penyedia layanan VPN, terlepas apakah mereka akan memblokir atau apapun itu, itu cerita lain.

Satu hal yang paling laris dijual oleh penyedia layanan VPN adalah fitur “Bypass Geo-blocking”, dan jika lo tidak membutuhkan itu, 1337% gue yakin yang lo butuhkan hanyalah permintaan DNS yang dilakukan melalui protokol yang aman kepada DNS resolver yang netral.

Mengapa terjadi pemblokiran?

Jika terkait pribadi, pasti jawabannya adalah preferensi. Jika sudah berkaitan dengan hukum, pasti jawabannya adalah aturan.

Gue pribadi pun melakukan pemblokiran, termasuk di level DNS. Ke situs judi, situs scam, situs phising, dll. I know there is no porn there. Anyway, gue melakukan itu karena preferensi, tujuannya adalah untuk terhindar dari situs-situs yang ingin mendapatkan keuntungan secara instan dari internet dengan mengeksploitasi pengguna internet itu sendiri.

Jika sudah berkaitan dengan hukum, gue tidak bisa banyak berbicara karena keterbatasan kapasitas. Gue tahu bahwa setiap negara pasti memiliki aturan, meskipun kurang yakin apakah harus sampai mengatur ke aktivitas pribadi seperti mengakses internet.

Aturan, yang gue tahu, pada dasarnya dibuat untuk menguntungkan kembali kepada yang taat pada aturan tersebut. Seperti, lo gak bakal di penjara karena mencuri, jika tidak mencuri. Dan lo akan di penjara jika mencuri, karena itu menguntungkan diri lo tapi merugikan orang lain. Kesimpulannya adalah jangan mencuri, benar? Sounds make sense.

Jika pengguna internet misalnya tidak bisa mengakses Vimeo karena alasan hukum, pertanyaannya adalah siapa yang diuntungkan dan siapa yang dirugikan? Jika Vimeo misalnya diblokir karena alasan administratif, maksud gue, kenapa pengguna internet yang menjadi korban? Yang padahal gue rasa tidak merugikan pengguna internet sepeserpun. Of course mungkin merugikan negara karena let’s say mereka tidak membayar pajak, tapi coba baca kembali kalimat tadi, terus baca dengan pelan-pelan.

Alasan lain terjadinya pemblokiran adalah untuk menghindari terjadinya sesuatu yang tak terduga. Alias, sebagai semacam tindakan antisipasi. Ini sedikit masuk akal, khususnya bila cukup familiar dengan situs yang berisi hate speech, SARA, Hoax, penipuan online, investasi ilegal, dsb.

Internet bagaimanapun seperti pisau bermata dua. Jika pisau bisa digunakan untuk buka tutup galon aqua yang ribet banget, pisau juga bisa digunakan untuk membunuh orang misalnya. Begitupula dengan internet. Jika internet sama-sama mengandung unsur yang mungkin dapat mengancam masyarakat, mengapa kepemilikan pisau tidak dibatasi sebagaimana akses layanan internet?

Selain karena mungkin sebuah alasan bahwa sudah ada hukum yang mengatur jika seseorang melakukan pembunuhan menggunakan pisau, mungkin belum ada hukum yang mengatur jika seseorang melakukan pembunuhan karena berita *hate speech *yang dia baca judulnya saja.

Who the fuck is having a will 1) to kill people and 2) with a knife?

Idk, common sense seems expensive, I guess?

Set the bar

Gue menemukan cuitan menarik yang berkaitan dengan drama pemblokiran ini: https://twitter.com/PapersBoy/status/1553186358365405185 Dan gue rasa ini tentang preferensi.

Narasi “ganti dns” diatas diasumsikan bahwa kita menggunakan setelan bawaan alias default, setuju? Ada alasan mengapa harus tetap dengan setelan bawaan dan ada alasan mengapa harus mengubah setelan bawaan.

Gue gak peduli apakah cuitan tersebut candaan ataupun sarkas atau memang serius, tapi gue peduli sama yang menelan cuitan tersebut mentah-mentah.

Pertanyaannya adalah apa yang spesial dari setelan bawaan?

Dari username admin password admin?

Dari passcode 12345?

Dari CPU yang tidak di overclocking?

Yang spesial dari setelan bawaan adalah standar. Setelan bawaan dianggap terjamin karena sudah mengikuti standar.

Siapa yang menetapkan standar? Jawabannya selalu tergantung.

Kembali ke konteks, bayangkan jika standar DNS resolver yang digunakan oleh ISP bawaan adalah:

  • Tidak netral
  • Menggunakan protokol yang kurang aman

Dalam hukum murphy, jika sesuatu yang buruk bisa terjadi, maka akan terjadi.

Jika A dapat memblokir permintaan DNS ke A, maka dapat memblokir ke B, C, D juga.

Jika A dapat membajak permintaan DNS, maka Y bisa juga.

Ini bukan tentang survivorship bias. Alasan misalnya perpesanan instan seperti WhatsApp menggunakan enkripsi end-to-end agar pesan hanya bisa dibaca oleh pengirim dan penerima saja bukan karena agar pesan tersebut tidak bisa dibaca oleh agensi 3 huruf misalnya. Jika agensi 3 huruf tersebut dapat membacanya, berarti siapapun memiliki kemungkinan untuk bisa membacanya juga, termasuk seseorang yang sering disebut sebagai hacker.

Pertanyaan selanjutnya, mengapa terdapat penyedia DNS resolver yang menjanjikan kenetralan dan juga menyediakan protokol yang aman seperti Quad9 misalnya? Bukankah sesuatu hadir karena sebuah alasan?

Ketika sebuah standar tidak memenuhi standar yang lain, apa yang bisa dilakukan selain menggunakan alternatif yang sesuai standar sendiri jika menaikkan merubah standar yang ada adalah hal yang tidak mungkin?

The next apocalypse

Jika internet selalu dianggap sebagai ancaman, pemblokiran di level DNS hanyalah permulaan. Siapapun yang bersangkutan pasti tahu itu.

Sempat terjadi pemblokiran untuk layanan streaming Netflix yang bahkan sampai melakukan Deep Packet Inspection oleh ISP tertentu pada tahun lalu. Pengguna internet yang membayar untuk berlangganan layanan dari Netflix tidak tahu menahu mengapa mereka tidak bisa mengakses Netflix sekalipun sudah menggunakan DNS Resolver yang netral menggunakan protokol yang aman, sampai mereka sadar bahwa router ISP mereka mengintip paket IP sampai ke header kedua.

Mimpi buruk internet adalah ketika akses internet dibatasi dan diawasi. Ketika akses internet harus selalui melalui dinding api untuk diawasi. Ketika akses internet dibatasi oleh “allowlist” alih-alih “blocklist” seperti sekarang.

Untuk sebagian orang, ini bukanlah ancaman yang nyata.

Untuk sebagian orang yang menggantungkan hidupnya pada jaringan internet, ini tentu sebuah mimpi buruk yang kedatangannya tidak pernah pasti apalagi diharapkan.

You can use a neutral and secure alternative DNS resolvers while still protesting.

Jika maksud gue hanya untuk bisa membypass blokir di level DNS, tulisan ini tidak akan memiliki 2,457 kata.

To set the bar, you must know what you’re doing.

And I’m just giving a clue.

Penutup

Sebagai penafian, gue menjalankan DNS Resolver yang **tidak netral **yang dapat digunakan oleh publik. Gue sebut tidak netral karena ada beberapa situs (including the very komxxfo.go.id lol) yang gue blokir berdasarkan preferensi dan “standar” gue yang daftarnya bisa dilihat disini—yang meskipun tidak terlalu up to date.

Selain itu, DNS Resolver tersebut hanya bisa diakses melalui protokol yang aman (DoH, DoT) atau melalui (encrypted) overlay network IPv6 melalui jaringan yggdrasil jika menggunakan plain UDP.

Sebagai penutup, lo bisa saja mempercayai “operator” dibalik siapapun yang menjalankan DNS dari Quad9, Cloudflare, Google, atau bahkan DNS Resolver public yang gue gunakan sendiri.

Termasuk mempercayakan operator dari DNS Resolver yang disediakan oleh ISP yang lo gunakan.

Internet adalah tentang jaringan, tentang komunitas yang saling terhubung. Dan salah satu fondasi utama dari sebuah komunitas adalah kepercayaan. Sebuah ide. Sebuah prinsip. Sebuah standar.

DNS tampaknya hal yang remeh, namun bisa menjadi batu loncatan pertama untuk sesuatu yang lebih besar.

Dan bukankah terkadang kita tidak bisa merasakan sesuatu sampai kita kehilangan sesuatu tersebut?

At least I can still publish this post now, to my home server behind Cloudflare networks which almost every internet user can access.