Pikirkan satu kata acak. Sekarang juga, yang pertama muncul di kepalamu.
Apa pun itu, itu bukan acak. Itu kata milikmu: sesuatu yang kamu baca minggu ini, benda yang ada di depan matamu, huruf awal namamu sendiri. Ketika manusia diminta keacakan, yang keluar adalah autobiografi. Dan autobiografi bisa ditebak.
Inilah seluruh masalah kata sandi, diringkas. Bukan karena orang malas — itu juga sih — melainkan karena kita tidak sanggup menghasilkan keacakan. Kita menyukai huruf-huruf tertentu, kita menghindari pengulangan karena “kelihatannya tidak acak”, kita menyelang-nyeling vokal dan konsonan tanpa sadar, dan kalau diminta angka, kita ambil yang paling dekat: tanggal, umur, angka yang ada artinya. Penyerang tidak perlu tahu siapa kamu untuk memanfaatkan itu. Cukup tahu bahwa kamu manusia.
Seorang insinyur, lima dadu, dan sebuah daftar
Pada 1995, Arnold G. Reinhold memublikasikan di situsnya sebuah metode yang ia sebut Diceware. Idenya begitu sederhana sampai agak menjengkelkan bahwa ia perlu dijelaskan: kalau masalahnya manusia tidak bisa memilih secara acak, cabut saja pilihan itu dari tangan manusia.
Seluruh prosedurnya muat dalam tiga baris:
- Kamu lempar lima dadu dan catat hasilnya berurutan. Misalnya keluar
4-2-6-1-3. - Kamu cari
42613di sebuah daftar. - Itulah katamu. Ulangi untuk kata berikutnya.
Daftar itu punya 7.776 entri, dan angka itu bukan asal comot: itu 6⁵, semua
hasil yang mungkin dari lima dadu. Setiap kombinasi — dari 11111 sampai 66666 —
menunjuk ke satu entri berbeda, tidak ada yang tertinggal dan tidak ada yang dobel.
Daftar aslinya mencampur kata-kata pendek bahasa Inggris dengan beberapa suku kata,
angka, dan tanda lepas, justru karena mencari 7.776 kata yang bagus jauh lebih
sulit daripada kelihatannya.
Yang penting bukan daftarnya. Yang penting dadunya.
Kenapa 12,9 bit itu benar-benar 12,9 bit
Di sinilah bagian yang hampir tidak ada yang paham, dan cuma bagian ini yang penting.
Entropi satu kata Diceware adalah log₂(7.776) = 12,9 bit. Itu aritmetika, bukan keamanan: ada 7.776 hasil dan semuanya punya peluang yang persis sama.
Bandingkan dengan apa yang terjadi kalau kamu yang memilih. Kalau aku minta kamu memilih satu kata dari kamus berisi 7.776 kata, hitungannya kelihatan sama — sama-sama 7.776 pilihan — tapi tidak sama, karena kamu tidak memilih semuanya dengan peluang yang sama. Kamu akan memilih kata yang umum, kata yang kamu suka, kata yang kamu lihat hari ini. Kamus itu punya 12,9 bit di atas kertas dan jauh lebih sedikit di dalam kepalamu, dan penyerang mengurutkan daftarnya berdasarkan frekuensi lalu mencoba dulu yang biasa dipilih orang. Entropi bukan soal berapa banyak pilihan yang ada: entropi adalah berapa banyak pilihan yang tersisa setelah dikurangi apa yang sudah diketahui penyerang tentang seleramu.
Dadu tidak punya selera. Dadu juga tidak punya ingatan: dadu tidak tahu bahwa
lemparan sebelumnya keluar hutan, jadi ia tidak menghindari pengulangan, tidak
mencari variasi, dan tidak malu kalau keluar dua kata yang berawalan sama. Karena
itulah 12,9 bit Diceware adalah 12,9 bit yang sungguhan, bukan angka optimistis
di brosur.
Dan karena itu pula hitungannya naik dengan rapi. Setiap kata menambah:
- Lima kata: sekitar 64 bit.
- Enam kata: sekitar 77 bit.
- Tujuh kata: sekitar 90 bit.
Ini penjumlahan yang bersih, bukan perkalian ajaib, karena setiap lemparan berdiri sendiri, lepas dari yang lain. Reinhold menyarankan jangan kurang dari lima kata, dan enam atau lebih untuk hal yang benar-benar penting. Kamu bisa melihat efeknya di generator: menambah satu kata selalu menambah nilai yang sama, dan “selalu” itulah seluruh inti penemuan ini.
Rahasianya bukan daftar itu
Keberatannya datang sendiri: kalau daftarnya publik, bukankah jadi lebih gampang dibobol?
Tidak, dan ini perlu diucapkan pelan-pelan. 12,9 bit itu sudah mengandaikan bahwa penyerang punya daftarnya. Sudah mengandaikan juga bahwa ia tahu kamu memakai Diceware, tahu berapa kata dalam frasamu, dan tahu urutan kamu menuliskannya. Semua itu sudah dipotong dari hitungan. Satu-satunya yang tidak ia ketahui adalah apa yang keluar di dadumu, dan itulah yang sedang kamu hitung ketika kamu bilang “77 bit”.
Ini kebalikan dari yang kita lakukan dengan P@ssw0rd, di mana seluruh harapan
ditumpukan pada tidak adanya orang yang terpikir mengganti a dengan @. Terpikir,
kok. Itu termasuk aturan pertama yang dijalankan alat serangan kamus mana pun. Kalau
kamu tergoda, coba saja di pemeriksa dan lihat berapa lama ia
bertahan.
EFF dan daftar-daftar alternatif
Pada 2016, Electronic Frontier Foundation menerbitkan daftar katanya sendiri untuk frasa dengan dadu. Daftar panjangnya tetap 7.776 entri — lima dadu yang sama, 12,9 bit yang sama — tapi isinya berubah: suku kata aneh dan tanda-tanda dibuang, kata sehari-hari yang mudah diketik dan mudah dibedakan satu sama lain dimasukkan. Mereka juga menerbitkan daftar pendek, 1.296 kata (6⁴, empat dadu, 10,3 bit per kata): satu berisi kata-kata yang lebih pendek dan gampang diingat, satu lagi dirancang supaya setiap kata bisa dibedakan dari yang lain lewat huruf-huruf awalnya sehingga bisa dilengkapi otomatis. Imbalannya, setiap lemparan bernilai lebih kecil dan kamu harus melempar lebih sering.
Yang elegan dari urusan ini adalah aritmetikanya tidak berubah menuruti selera siapa pun. Jumlah entri yang menentukan. Kamu boleh bikin daftarmu sendiri dalam bahasa Jawa, bahasa Sunda, atau bahasa Klingon: selama ia punya 7.776 entri berbeda dan kamu memilih dengan dadu, setiap kata bernilai 12,9 bit. Satu-satunya yang kamu putuskan saat berganti daftar adalah seberapa enak hasilnya buat kamu, bukan seberapa aman ia.
Tiga cara merusaknya
Diceware gagal lewat tiga cara, dan ketiganya adalah kesalahan yang sama: manusia kembali ikut campur tangan.
- Melempar ulang karena “yang itu kurang sreg”. Kalau kamu membuang hasil, kamu sudah tidak memakai dadu: kamu memakai seleramu sendiri dengan dadu sebagai properti panggung. Keluar apa, ya itu.
- Menyusun ulang kata-katanya supaya terdengar seperti kalimat. Urutan juga bagian dari lemparan.
- “Menyempurnakannya” dengan
!di akhir dan huruf besar di awal. Itu tidak menambah apa pun di hadapan penyerang yang tahu bahwa orang menaruh!di akhir dan huruf besar di awal. Kalau kamu harus memenuhi kebijakan yang tolol, lakukan saja, tapi jangan merasa kamu jadi lebih aman: keamanan itu kamu dapat dari melempar sekali lagi.
Dan satu peringatan yang sudah Reinhold sampaikan sejak dulu: dadu biasa sudah lebih dari cukup — dadu kasino memang lebih presisi, tapi tidak perlu —, sebaiknya melempar di atas permukaan yang rata, dan hasilnya dicatat apa adanya.
Ringkasannya
Frasa enam kata hasil lemparan dadu memang lebih panjang diketik daripada P@ssw0rd,
lebih gampang diingat daripada Tr0ub4dor&3, dan berlipat-lipat orde besaran lebih
mahal dibobol dibanding keduanya. Bukan karena ia lebih berbelit — sama sekali tidak,
isinya enam kata biasa — melainkan karena cuma itulah bagian dari kata sandimu yang
bukan kamu yang menentukan.
Itulah lelucon lengkap Diceware: kata sandi terbaik yang bisa kamu punya adalah kata sandi yang tidak melibatkan pendapatmu sama sekali.
Sumber: Arnold G. Reinhold, “The Diceware Passphrase Home Page” dan daftar 7.776 katanya (1995) · Electronic Frontier Foundation, daftar kata untuk frasa sandi dengan dadu (2016) · aritmetikanya bisa diperiksa sendiri: 6⁵ = 7.776 dan log₂(7.776) ≈ 12,92 bit per kata.