Apa itu Serangan Kamus?

Untuk mengautentikasi ke situs web, Anda perlu memberikan nama pengguna dan kata sandi. Situs kemudian memeriksa detail autentikasi yang telah Anda berikan dengan membandingkannya dengan detail yang telah disimpan di databasenya. Jika detailnya cocok, akses diberikan. Jika detailnya tidak cocok, akses ditolak.

Sayangnya, pelanggaran data adalah kejadian yang relatif umum. Pelanggaran data bisa menjadi masalah besar karena salah satu bit data yang paling sering menjadi sasaran adalah data pengguna, khususnya daftar nama pengguna dan kata sandi. Jika kata sandi disimpan apa adanya, dalam teks biasa maka siapa pun yang memiliki akses ke database dapat mengakses akun pengguna lain mana pun. Seolah-olah mereka diberi gantungan kunci dengan kunci setiap pintu di gedung apartemen.

Meskipun banyak upaya dilakukan untuk mencegah pelanggaran data sejak awal, disarankan untuk menggunakan strategi pertahanan mendalam. Secara khusus, saran keamanan menyatakan bahwa kata sandi harus di-hash, dengan hanya hash kata sandi yang pernah disimpan. Fungsi hash adalah fungsi satu arah yang selalu mengubah input yang sama menjadi output yang sama. Bahkan perubahan kecil pada input, bagaimanapun, menghasilkan output yang sama sekali berbeda. Secara kritis, tidak ada cara untuk membalikkan fungsi dan mengubah hash yang dihasilkan kembali ke input aslinya. Namun, yang dapat Anda lakukan adalah hash input baru dan lihat apakah output cocok dengan hash yang disimpan dalam database. Kalau memang Anda tahu passwordnya cocok, tanpa pernah tahu password sebenarnya.

Bermanfaat ini juga berarti bahwa jika penyerang benar-benar melanggar database, mereka tidak mendapatkan daftar kata sandi yang berguna segera, mereka malah mendapatkan hash. Untuk dapat menggunakan hash ini, hash tersebut harus di-crack.

Meretas hash kata sandi dengan kecerdasan

Meretas hash kata sandi adalah proses mencari tahu kata sandi asli yang diwakili oleh hash tersebut. Karena tidak ada cara untuk membalikkan fungsi hash dan mengubah hash menjadi kata sandi. Satu-satunya cara untuk memecahkan hash adalah dengan menebak kata sandinya. Salah satu caranya adalah dengan menggunakan serangan brute force. Ini benar-benar melibatkan mencoba setiap kata sandi yang mungkin. Itu berarti mulai dari “a”, mencoba setiap huruf, dalam kedua kasus, dan setiap angka dan simbol. Kemudian penyerang perlu mencoba semua kombinasi dua karakter, kombinasi tiga karakter, dan seterusnya. Peningkatan kemungkinan kombinasi karakter adalah eksponensial setiap kali Anda menambahkan karakter. Hal ini menyulitkan untuk menebak kata sandi yang panjang secara efisien, bahkan ketika algoritme hashing cepat digunakan dengan rig cracking GPU yang kuat.

Beberapa upaya dapat dihemat dengan melihat persyaratan kata sandi situs dan tidak mencoba kata sandi yang terlalu pendek untuk diizinkan atau yang tidak menampilkan nomor, misalnya. Ini akan menghemat waktu dan masih cocok di kelas serangan brute force yang mencoba semua kata sandi yang diizinkan. Serangan brute force saat lambat, akan – jika dibiarkan cukup lama dengan banyak kekuatan pemrosesan – akhirnya memecahkan kata sandi apa pun karena semua kemungkinan kombinasi akan dicoba.

Masalah dengan serangan brute force adalah mereka tidak terlalu pintar. Serangan kamus adalah varian yang jauh lebih bertarget. Alih-alih hanya mencoba kata sandi yang mungkin, ia mencoba daftar kata sandi yang ditentukan. Keberhasilan serangan jenis ini bergantung pada daftar kata sandi, dan kamus yang dimaksud.

Membuat tebakan yang cerdas

Kamus kata sandi biasanya dibuat dari kata sandi yang sebelumnya diretas dari pelanggaran data lainnya. Kamus ini dapat berisi ribuan atau jutaan entri. Ini didasarkan pada konsep bahwa orang-orang buruk dalam membuat kata sandi yang unik. Sayangnya, bukti dari pelanggaran data menunjukkan hal ini juga terjadi. Orang masih menggunakan variasi kata “password”. Topik umum lainnya adalah tim olahraga, nama hewan peliharaan, nama tempat, nama perusahaan, membenci pekerjaan Anda, dan kata sandi berdasarkan tanggal. Yang terakhir ini secara khusus cenderung terjadi ketika orang dipaksa untuk mengubah kata sandi mereka secara teratur.

Menggunakan kamus kata sandi secara besar-besaran mengurangi jumlah tebakan yang perlu dilakukan dibandingkan dengan serangan brute force. Kamus kata sandi juga cenderung berisi kata sandi pendek dan panjang yang berarti bahwa beberapa kata sandi mungkin dicoba yang tidak akan tercapai bahkan dengan bertahun-tahun atau tebakan kasar. Pendekatan ini terbukti berhasil juga. Statistik bervariasi berdasarkan pelanggaran data dan ukuran serta kualitas kamus yang digunakan tetapi tingkat keberhasilannya bisa melebihi 70%.

Tingkat keberhasilan dapat dinaikkan lebih jauh lagi dengan algoritme penguraian kata. Algoritme ini mengambil setiap kata dalam kamus kata sandi dan kemudian memodifikasinya sedikit. Modifikasi ini cenderung berupa penggantian karakter standar dan penambahan angka atau simbol tambahan. Misalnya, orang biasa mengganti huruf "e" dengan "3" dan "s" dengan "$" atau menambahkan tanda seru di akhir. Algoritma mangling kata membuat duplikat dari setiap entri dalam kamus kata sandi. Setiap duplikat memiliki variasi yang berbeda dari penggantian karakter tersebut. Ini secara signifikan meningkatkan jumlah kata sandi untuk ditebak dan juga meningkatkan tingkat keberhasilan, dalam beberapa kasus di atas 90%.

Kesimpulan

Serangan kamus adalah variasi yang ditargetkan dari serangan brute force. Daripada mencoba semua kemungkinan kombinasi karakter, subset dari kombinasi karakter diuji. Subset ini adalah daftar kata sandi yang sebelumnya telah ditemukan dan jika perlu diretas dalam pelanggaran data sebelumnya. Ini secara besar-besaran mengurangi jumlah tebakan yang harus dilakukan sambil menutupi kata sandi yang telah digunakan sebelumnya, dan dalam beberapa kasus, sering terlihat. Serangan kamus tidak memiliki tingkat keberhasilan setinggi serangan brute force. Namun, itu mengasumsikan Anda memiliki waktu dan kekuatan pemrosesan yang tidak terbatas. Serangan kamus cenderung mendapatkan tingkat keberhasilan yang cukup tinggi jauh lebih cepat daripada serangan brute force. Ini karena tidak membuang waktu untuk kombinasi karakter yang sangat tidak mungkin.

Salah satu hal utama yang harus Anda lakukan saat membuat kata sandi adalah memastikan kata sandi itu tidak muncul di daftar kata. Salah satu cara untuk melakukannya adalah dengan membuat kata sandi yang rumit, cara lainnya adalah dengan membuat kata sandi yang panjang. Secara umum, opsi terbaik adalah membuat kata sandi panjang yang terdiri dari beberapa kata. Penting agar kata-kata itu tidak membuat frasa yang sebenarnya seperti yang bisa ditebak. Mereka harus sama sekali tidak berhubungan. Anda disarankan untuk memilih kata sandi lebih dari 10 karakter dengan 8 sebagai jumlah minimum mutlak.