Ada satu pencarian yang terus berulang: ide kata sandi. Dan itu wajar, karena formulirnya sudah menunggu, sesuatu harus dikarang, dan tak pernah ada yang menjelaskan caranya.
Masalahnya, kata ide itu sendiri sudah salah. Kata sandi yang baik bukan ide yang baik. Ia adalah kata sandi yang tidak punya ide apa pun di baliknya.
Ini bukan kalimat manis untuk membuka artikel: begitulah cara sebuah serangan bekerja, secara harfiah.
Daftar ide yang terlintas di kepalamu adalah daftar yang pertama ia coba
Serangan kamus tidak dimulai dari aaaaaaaa lalu naik. Ia dimulai dari kata sandi
yang sudah bocor jutaan kali, berlanjut ke nama orang, kata benda umum, nama kota,
klub sepak bola, dan tahun empat digit. Dan di atas dasar itu ia menerapkan
aturan: huruf besar di depan, angka atau ! di belakang, a jadi @, e jadi
3, o jadi 0, kata dibalik, kata ditulis dua kali.
Aturan itu bukan rahasia dan bukan hal baru. Sudah puluhan tahun tertulis dan tersedia bawaan di setiap perkakas serangan. Dengan kata lain: katalog gagasan yang kau sebut «ide kata sandi» itu, kurang lebih berurutan, adalah berkas konfigurasi milik orang yang menyerangmu.
Mulai dari sini, semua angka berasal dari pemeriksa rumah ini, yang mengandaikan serangan luring dengan 10¹² percobaan per detik melawan hash cepat. Itu tertulis di bawah hasil, dan tanpa data itu tak ada durasi yang berarti apa pun. Kau bisa mereproduksi setiap angka sendiri: ketik contohnya dan lihat.
Ide pertama: namamu dan tahun kelahiranmu
Dewi1985. Delapan karakter, satu huruf besar, empat angka. Ia memenuhi apa yang
dituntut separuh internet.
Pemeriksa membelahnya jadi dua dalam sekejap: «Ada di kamus kami» untuk
Dewi, «Tampak seperti tahun atau tanggal» untuk 1985. Hasilnya: 287.600
percobaan, yang pada kecepatan itu berarti kurang dari satu detik.
Dan perhatikan kenapa angkanya 287.600 dan bukan angka astronomis. Bukan soal pendek. Soalnya ini bukan delapan keputusan, melainkan dua: nama yang mana dan tahun yang mana. Nama yang umum dihitung dalam ribuan; tahun yang benar-benar dipakai orang dalam kata sandi, dalam puluhan. Kalikan, selesai: kau mengetik delapan karakter dan memilih dari kurang dari tiga ratus ribu kata sandi yang mungkin.
Ide kedua: mengganti huruf dengan angka
Ini trik yang dipercaya semua orang, dan yang paling buruk menuanya.
D3wi1985 menghasilkan 565.200 percobaan. Naik, memang: tepat dua kali lipat.
Dan dua kali lipat dari bukan apa-apa tetaplah bukan apa-apa — pemeriksa masih
mengukurnya di bawah satu detik — karena penggantian itu tidak menciptakan kata
sandi baru. Ia menambah satu pertanyaan ya-tidak yang sudah diperhitungkan
penyerang: orang ini mengganti huruf e atau tidak?
Perhatikan baik-baik: pemeriksa bahkan tidak mengubah putusannya. Ia tetap berkata «Ada di kamus kami», kali ini dengan catatan dengan angka menggantikan huruf. Ia tetap menemukan katanya.
Kalau ingin tahu seberapa jauh urusan ini, coba contoh klasiknya. P@ssw0rd —
dengan huruf besarnya, kekernya, nolnya, dan seluruh kesan sudah dipikirkan
matang — jatuh dalam 17 percobaan. Tujuh belas. Bisa dihitung dengan jari dua
tangan dan sedikit kesabaran.
Ide ketiga: menulisnya terbalik
iwed1985 menghasilkan 287.600 percobaan. Angka yang sama persis, sampai
digit terakhir, dengan Dewi1985.
Bukan berarti membalik hanya sedikit membantu. Ia tidak mengubah apa pun. Membalik kata adalah salah satu aturan bawaan kamus, jadi pemeriksa menemukannya sama saja dan melabelinya sama saja, kali ini dengan catatan ditulis terbalik.
Begitu juga dengan mengulangnya: DewiDewi turun ke 5.555 percobaan —
mengetik dua kali lebih banyak huruf justru meninggalkanmu lebih buruk dari
sebelumnya, karena «mengulang sepotong» juga sebuah pola yang punya nama.
Ide keempat: menyusuri papan ketik dengan jari
Ketika orang malas berpikir, ia menatap papan ketik dan mengikuti sebuah bentuk.
Keluarlah qwerty123, atau 1qaz2wsx, atau 1q2w3e4r, atau asdfghjkl.
Rasanya acak karena tidak berarti apa-apa. Tapi papan ketik punya geometri yang tetap dan sangat kecil, dan menyusurinya justru hal yang dilakukan sebuah program lebih baik daripada kau:
qwerty123→ 273 percobaan.1qaz2wsx→ 29 percobaan.
Dua puluh sembilan. Kata sandi ini begitu usang sampai aturan papan ketik pun tak diperlukan: ia muncul apa adanya di daftar kata sandi yang bocor, dan pemeriksa menepisnya dengan «Ada di kamus kami» yang datar.
Ide kelima: anjing, dan tanggal yang tak pernah terlupa
Toby2015! adalah kata sandi dengan biografi: nama anjingnya, tahun ia datang ke
rumah, dan sebuah tanda seru demi menyenangkan formulir. Hasilnya 1,2 × 10⁸
percobaan, dan itu tetap kurang dari satu detik.
Nama peliharaan yang paling umum jumlahnya beberapa ribu, dan ada di daftar yang
sama dengan nama orang. Tanda ! di ujung menyumbang sebanyak yang disumbang
aturan yang diterapkan semua orang: nol.
Dengan tanggal penting, keadaannya lebih tidak nyaman lagi. 24121985 — satu
tanggal, satu bulan, satu tahun — terbaca seperti delapan digit, tapi pemeriksa
melabelinya «Mengandung tanggal» dan menyelesaikannya dalam 14.966 percobaan.
Alasannya soal kalender: ada 31 hari, 12 bulan, dan satu abad lebih tahun yang
masuk akal. Delapan digit yang tampak seperti sepuluh juta kombinasi ternyata
sekitar lima belas ribu.
Itulah jebakan tanggal: ia memberimu panjang tanpa memberimu ketidakpastian, dan hanya ketidakpastian yang dibayar.
Ide keenam: pelat nomor, dan apa yang tidak bisa dilihat pemeriksa
4521KDR adalah kasus lain, dan layak dihentikan sejenak.
Di sini pemeriksa berkata «Kami tidak menemukan pola yang dikenal» dan menghitung 3,9 × 10¹⁰ percobaan. Tapi ia menandai angka itu sebagai plafon, dan kata itulah bagian pentingnya: ia tidak menemukan polamu, yang tidak membuktikan bahwa kau tak punya pola. Bahkan begitu, dan dengan murah hati, waktunya tetap kurang dari satu detik.
Dan di situlah jurang yang harus dipahami. Pemeriksa tidak tahu mobilmu apa. Orang yang mengenalmu, yang membuka Instagram-mu, atau yang membeli tumpahan data berisi pelat nomormu, tidak butuh 3,9 × 10¹⁰ percobaan: ia butuh satu. Angka yang kau lihat ketika tidak ada pola mengukur ketidaktahuan orang asing, bukan ketidaktahuan orang yang sudah mencari tahu tentangmu.
Hal yang sama berlaku untuk nomor rumah, nomor identitas, nomor telepon, dan tanggal pernikahan.
Apa yang sama dari keenamnya
Tak satu pun ide ini gagal karena «kurang rumit». Semuanya gagal karena alasan yang sama: semuanya autobiografi, dan autobiografi bisa ditebak. Namamu, tahunmu, anjingmu, mobilmu, caramu menyusuri papan ketik. Setiap keputusan itu terasa pribadi dan milikmu, dan justru karena itulah ia termasuk daftar pendek yang sudah ditulis orang lain.
Menambahkan kerumitan tidak memperbaiki apa pun, karena kerumitan yang kau
terapkan juga keputusanmu dan juga ada di daftar itu. Itu sebabnya D3wi1985
hanya naik dua kali lipat yang menyedihkan dan iwed1985 bahkan tidak sebanyak
itu.
Kalau kau ingin argumennya dalam angka, ada di bit entropi: yang dihitung bukan berapa banyak kata sandi yang bisa kau tulis, melainkan berapa yang tersisa setelah dikurangi segala hal yang diketahui tentang seleramu.
Jalan keluarnya bukan ide yang lebih baik: berhenti punya ide
Satu-satunya cara keluar dari daftar itu adalah kata sandinya tidak keluar dari kepalamu.
Itulah persis yang dilakukan Diceware: kau melempar lima dadu, mencari angkanya di daftar berisi 7.776 kata, dan mencatat apa yang keluar. Setiap lemparan bernilai 12,9 bit, dan itu 12,9 yang sungguhan, karena dadu tak punya selera, tak punya ingatan, dan tak tahu tahun kelahiranmu. Enam kata jadi sekitar 77 bit.
Masukkan satu ke pemeriksa dan lihat apa yang berubah: enam kata biasa hasil lemparan dadu naik dari «Sangat Lemah» ke «Sangat Kuat», dan waktunya berhenti diukur dalam detik. Bukan karena kata-katanya berbelit — tidak, itu enam kata biasa — melainkan karena itulah satu-satunya bagian kata sandimu yang tidak kau putuskan sendiri. Kalau kau lebih suka peramban yang melempar dadunya, generator menjalankan undian yang sama dan menunjukkan bitnya sambil berjalan.
Jadi jawaban jujur untuk «beri aku ide kata sandi» adalah: kau tidak membutuhkannya, bahkan kau punya terlalu banyak. Yang kurang adalah sebuah dadu.
Sumber: semua angka dalam artikel ini berasal dari pemeriksa password.es, yang menyatakan modelnya di bawah hasil — 10¹² percobaan per detik, serangan luring, hash cepat — dan bisa direproduksi dengan mengetik setiap contoh di /id/pemeriksa/ · mesin analisis polanya adalah zxcvbn karya Daniel Lowe Wheeler (Dropbox), dipresentasikan di USENIX Security 2016 sebagai «zxcvbn: Low-Budget Password Strength Estimation» · aturan penggantian, pembalikan, dan pengulangan yang dikutip adalah aturan bawaan perkakas serangan kamus · Arnold G. Reinhold, «The Diceware Passphrase Home Page» (1995), untuk 7.776 kata dan 12,9 bit per lemparan.
Foto oleh RDNE Stock project · Pexels