Setiap kali Anda masuk ke sebuah sistem, kata sandi yang Anda ketik tidak pernah disimpan dalam bentuk teks biasa di server. Sebaliknya, sistem menyimpan nilai yang disebut hash — hasil dari fungsi matematika satu arah yang mengubah kata sandi menjadi deretan karakter dengan panjang tetap. Praktik ini melindungi kata sandi asli jika terjadi kebocoran data. Namun, tidak semua fungsi hash diciptakan sama. Fungsi hash modern seperti bcrypt dan Argon2 dirancang lambat untuk mempersulit percobaan massal, sementara fungsi lama seperti MD5 atau SHA-1 dapat diproses sangat cepat oleh perangkat keras modern.
Di sisi lain, alat seperti Hashcat hadir untuk menguji seberapa kuat kata sandi Anda dengan mencoba memulihkan teks asli dari nilai hash. Hashcat adalah perkakas pemulihan kata sandi yang bekerja pada nilai hash. Dalam konteks audit keamanan, alat ini digunakan untuk mengidentifikasi kata sandi lemah sebelum penyerang melakukannya. Artikel ini akan membahas fungsi hash, alasan audit kata sandi dilakukan, serta batas etis pemakaian Hashcat agar pembelajaran tetap berada pada jalur legal.
Memahami Fungsi Hash dalam Penyimpanan Kata Sandi
Fungsi hash adalah algoritma yang menerima masukan berupa teks apa pun — misalnya kata sandi “rahasia123” — lalu menghasilkan keluaran dengan panjang tetap yang tampak acak. Sifat utamanya adalah satu arah: dari hash tidak mungkin dikembalikan ke teks asli secara matematis, kecuali dengan mencoba banyak kemungkinan masukan. Sifat kedua adalah deterministik: masukan yang sama selalu menghasilkan hash yang sama. Itulah sebabnya sistem dapat memverifikasi kata sandi tanpa menyimpan teks aslinya. Saat Anda login, sistem menghitung hash dari kata sandi yang Anda ketik dan membandingkannya dengan hash yang tersimpan.
Masalahnya, karena hash bersifat deterministik, seseorang yang memiliki daftar hash dapat mencoba menebak kata sandi dengan cara menghitung hash dari tebakan dan membandingkannya. Metode ini disebut serangan kamus atau brute force. Di sinilah kecepatan fungsi hash menjadi krusial. Fungsi hash cepat seperti MD5 atau SHA-1 memungkinkan miliaran percobaan per detik pada perangkat keras khusus. Sebaliknya, bcrypt dan Argon2 sengaja dibuat lambat dan membutuhkan sumber daya komputasi lebih besar untuk setiap percobaan. Tujuannya adalah memperlambat proses tebak massal, sehingga serangan menjadi tidak praktis secara waktu dan biaya. Inilah alasan mengapa sistem modern disarankan menggunakan bcrypt atau Argon2, bukan MD5.
Apa Itu Hashcat dan Mengapa Digunakan untuk Audit?
Hashcat adalah perkakas pemulihan kata sandi yang bekerja pada nilai hash. Alat ini menerima berkas berisi hash — misalnya hash MD5, SHA-1, bcrypt, atau Argon2 — lalu mencoba berbagai kandidat kata sandi hingga ditemukan kecocokan. Hashcat populer karena mendukung ratusan algoritma hash, memanfaatkan kekuatan GPU secara paralel, dan menyediakan berbagai mode serangan seperti dictionary attack, combinator attack, mask attack, dan rule-based attack. Semua fitur ini membuat Hashcat sangat efisien untuk menguji ketahanan kata sandi dalam skala besar.
Namun, penting dipahami bahwa Hashcat tidak “membobol” sistem secara langsung. Ia hanya bekerja pada nilai hash yang sudah Anda miliki. Dalam audit keamanan, administrator sistem menggunakan Hashcat untuk menguji apakah kata sandi pengguna di organisasi mereka mudah ditebak. Misalnya, jika banyak pengguna memakai kata sandi “password123”, audit akan menemukan pola tersebut dan mendorong kebijakan kata sandi yang lebih kuat. Tujuan akhirnya adalah memperbaiki kelemahan sebelum pihak yang tidak bertanggung jawab menemukannya. Dengan kata lain, Hashcat adalah alat ukur kekuatan kata sandi — bukan senjata untuk menyerang.
Menyiapkan Lingkungan Audit yang Legal dan Etis
Sebelum menyentuh Hashcat, Anda harus memastikan bahwa aktivitas Anda berada di ranah yang sah. Audit kata sandi hanya sah dilakukan pada sistem milik sendiri atau dengan izin tertulis dari pemilik sistem. Menggunakan Hashcat terhadap hash yang diperoleh dari sistem orang lain tanpa persetujuan adalah tindakan ilegal di banyak yurisdiksi dan melanggar etika keamanan siber. Tidak ada pengecualian untuk alasan “belajar” atau “iseng”. Jika Anda ingin berlatih, buatlah laboratorium sendiri dengan akun tiruan dan hash dummy yang Anda hasilkan dari kata sandi buatan.
Langkah persiapan yang aman adalah sebagai berikut. Pertama, siapkan mesin virtual atau komputer terpisah yang tidak terhubung ke sistem produksi. Kedua, buat beberapa pengguna dummy dengan kata sandi yang sengaja dibuat lemah, seperti “qwerty”, “123456”, atau “iloveyou”. Ketiga, ekstrak hash dari basis data lokal milik Anda — misalnya dengan perintah bawaan sistem operasi — dan simpan ke berkas teks. Keempat, instal Hashcat dari repositori resmi distribusi Anda atau unduh dari sumber yang terpercaya. Untuk panduan instalasi di distribusi seperti Kali Linux, Anda dapat merujuk pada dokumentasi komunitas di kalilinux.net atau kalilinux.info, yang sering memuat langkah-langkah praktis seputar alat audit. Pastikan Anda membaca dokumentasi resmi Hashcat untuk memahami opsi yang tersedia.
Langkah Praktis Menjalankan Hashcat
Setelah lingkungan siap, Anda dapat mulai menjalankan Hashcat. Format dasar perintahnya adalah:
hashcat -m [tipe_hash] -a [mode_serangan] [file_hash] [wordlist]
Parameter -m menentukan tipe algoritma hash. Sebagai contoh, nilai 0 digunakan untuk MD5, nilai 1000 untuk NTLM, dan nilai 3200 untuk bcrypt. Parameter -a menentukan mode serangan; 0 berarti dictionary attack, sedangkan 3 berarti mask attack. File hash berisi satu hash per baris, dan wordlist adalah berkas teks berisi kandidat kata sandi yang umum digunakan.
Contoh sederhana untuk menguji hash MD5 menggunakan wordlist bernama rockyou.txt:
hashcat -m 0 -a 0 hash.txt rockyou.txt
Perintah di atas akan mencoba setiap kata dalam rockyou.txt, menghitung hash MD5-nya, dan membandingkan dengan isi hash.txt. Jika cocok, Hashcat akan menampilkan kata sandi asli di layar dan menyimpannya ke berkas potfile. Anda juga dapat menambahkan aturan seperti -r rules/best64.rule untuk memodifikasi kata dalam wordlist — misalnya menambahkan angka atau mengubah huruf besar-kecil.
Penting untuk diingat bahwa kecepatan Hashcat sangat bergantung pada tipe hash. Pada hash cepat seperti MD5, GPU kelas menengah dapat mencoba miliaran kandidat per detik. Namun pada bcrypt atau Argon2, kecepatan turun drastis menjadi ribuan atau puluhan ribu percobaan per detik karena desainnya yang memang lambat. Inilah alasan mengapa fungsi hash modern sangat disarankan: audit terhadap hash bcrypt membutuhkan waktu dan daya komputasi yang jauh lebih besar, sehingga kata sandi yang cukup kuat menjadi tidak praktis untuk ditebak.
Menafsirkan Hasil dan Rekomendasi Penguatan Kata Sandi
Jika Hashcat berhasil memulihkan beberapa kata sandi dari hash yang Anda uji, itu adalah sinyal bahwa kebijakan kata sandi di sistem Anda perlu diperbaiki. Kata sandi yang berhasil ditebak biasanya pendek, menggunakan pola umum, atau muncul dalam wordlist publik. Sebaliknya, hash yang tidak berhasil dipecahkan dalam batas waktu wajar menunjukkan bahwa kata sandi tersebut cukup kuat untuk menahan serangan kamus dasar.
Berdasarkan hasil audit, Anda dapat merekomendasikan beberapa langkah penguatan. Pertama, terapkan panjang kata sandi minimal
