Bayangkan Anda menyerahkan kunci rumah Anda kepada pencuri. Sekarang bayangkan mereka membuat salinan sempurna dan membuka kunci setiap rumah lainnya dengan kunci yang sama persis. Itulah yang terjadi jika pengembang melewatkan password salting. Kedengarannya seperti saran dapur, namun dalam keamanan siber, inilah perbedaan antara database yang aman dan buku besar umum berisi kredensial yang dicuri.
Garam hanyalah serangkaian karakter acak. Itu ditempelkan di akhir kata sandi pengguna sebelum kata sandi tersebut dijalankan melalui algoritma hashing. Fungsi hashing mengubah kombinasi menjadi string teks unik yang tidak dapat dibaca yang disebut hash. Dengan mencampurkan data acak ini, keluarannya menjadi lebih panjang, berantakan, dan jauh lebih sulit untuk dibalik.
Tanpa langkah ekstra ini, penyerang dapat menggunakan daftar yang telah dihitung sebelumnya yang dikenal sebagai tabel pelangi. Ini adalah database besar kata sandi umum dan hashnya yang sesuai. Jika Anda tidak memberi garam pada kata sandi Anda, penyerang dapat mencari hash Anda di tabel pelangi dan langsung mengetahui kata sandi Anda. Pengasinan merusak efisiensi ini. Ini memaksa penyerang menghitung hash baru untuk setiap tebakan, untuk setiap pengguna.
Peran salting dalam keamanan digital
Dalam keamanan informasi modern, penambahan garam tidak bisa dinegosiasikan. Ini memastikan bahwa setiap hash kata sandi adalah unik. Bahkan jika dua pengguna memilih kata sandi yang sama persis—misalnya, “password123″—hash akhir yang disimpan akan terlihat sangat berbeda karena garam yang melekat pada kata sandi tersebut berbeda.
Keunikan ini mempersulit serangan brute force dan serangan kamus secara signifikan. Penyerang tidak dapat menyusupi satu akun dan kemudian menggunakan kunci tersebut untuk membuka kunci akun lain dengan kata sandi yang sama. Setiap akun menjadi teka-teki tersendiri. Garam mengaburkan struktur kata sandi, membuatnya tahan terhadap alat peretasan otomatis yang mengandalkan pengenalan pola.
Bagaimana garam dihasilkan
Keamanan sistem pengasinan bergantung sepenuhnya pada kualitas garam itu sendiri. Garam biasanya merupakan rangkaian karakter acak yang dihasilkan menggunakan generator bilangan acak semu (CSPRNG) yang aman secara kriptografis. Panjangnya penting. Garam yang singkat dan dapat diprediksi tidak ada gunanya. Pengembang harus memastikan garamnya cukup panjang untuk mencegah tebakan dan cukup acak untuk mengalahkan serangan berbasis pola.
Jika garamnya lemah, seluruh mekanisme hashing akan runtuh. Tujuannya adalah membuat garam tidak mungkin diprediksi atau direproduksi oleh musuh. Ini berarti mengandalkan perpustakaan standar yang terverifikasi daripada menulis generator nomor acak khusus.
Mengintegrasikan garam ke dalam sistem manajemen kata sandi
Sistem manajemen kata sandi modern dan kerangka web biasanya menangani pengasinan secara otomatis. Anda jarang perlu membuat garam secara manual dan menambahkannya ke string kata sandi sebelum melakukan hashing. Sebaliknya, perpustakaan keamanan terkemuka menyediakan fungsi bawaan yang melakukan hal ini di belakang layar.
Misalnya, saat Anda menggunakan fungsi seperti bcrypt atau Argon2, pustaka menghasilkan garam acak, menggabungkannya dengan kata sandi Anda, meng-hash hasilnya, dan menyimpan garam bersama hash di database Anda. Otomatisasi ini mengurangi risiko kesalahan manusia. Pengembang yang secara tidak sengaja menggunakan kembali garam atau menggunakan benih acak yang lemah dapat mengekspos seluruh basis pengguna. Penggunaan kerangka kerja yang sudah ada dapat memitigasi risiko ini.
Praktik terbaik untuk menerapkan garam
Untuk menjaga keamanan yang kuat, ikuti panduan khusus berikut saat menangani hashing kata sandi:
- Hasilkan garam unik untuk setiap pengguna dan setiap perubahan kata sandi.
- Pastikan garamnya cukup panjang; garam yang lebih pendek lebih mudah dipecahkan.
- Jangan pernah menggunakan kembali garam di beberapa akun atau kata sandi.
- Simpan garam dengan aman, biasanya dalam catatan database yang sama dengan kata sandi yang di-hash. Tidak perlu dirahasiakan, tapi harus utuh.
Akibat kekurangan garam
Melewatkan proses penggaraman membuat sistem rentan terhadap serangan parah. Tanpa basa-basi, kata sandi yang identik menghasilkan hash yang identik. Jika database bocor, penyerang hanya perlu memecahkan satu hash untuk mendapatkan akses ke setiap akun menggunakan kata sandi umum tersebut. Ini adalah kegagalan besar dalam integritas data.
Pertimbangkan skalanya. Jika satu juta pengguna memilih “qwerty” sebagai kata sandi mereka dan tidak ada yang diberi garam, penyerang akan memecahkan satu hash. Tiba-tiba, mereka memiliki kunci sejuta pintu. Pengasinan mencegah aliran ini. Ini memastikan bahwa memecahkan satu kata sandi tidak membantu memecahkan kata sandi lainnya, meskipun kata sandi dasarnya sama.
Serangan tabel pelangi dijelaskan
Serangan umum yang mengeksploitasi hash tanpa garam adalah serangan tabel pelangi. Metode ini menggunakan tabel yang telah dihitung sebelumnya yang berisi pasangan kata sandi teks biasa dan nilai hashnya. Jika database Anda tidak diberi garam, penyerang cukup mencocokkan hash yang dicuri dengan tabel ini. Tidak diperlukan perhitungan. Kata sandi terungkap dalam hitungan detik.
Pengasinan mengalahkan tabel pelangi karena tabel tersebut harus berisi hash untuk setiap kemungkinan kombinasi garam. Karena garam bersifat acak dan unik untuk setiap pengguna, tabel yang telah dihitung sebelumnya menjadi tidak berguna. Penyerang harus melakukan perhitungan baru yang mahal untuk setiap hash yang mereka coba pecahkan.
Intinya
Menambahkan garam ke hash kata sandi bukan hanya praktik terbaik. Ini adalah persyaratan mendasar untuk melindungi data pengguna di sistem modern mana pun. Ini mengubah metode penyimpanan yang lemah dan dapat diprediksi menjadi pertahanan yang kuat terhadap serangan otomatis.
Pengembang dan administrator sistem harus memastikan teknik ini diterapkan dengan benar. Mengandalkan fitur otomatis di perpustakaan aman adalah jalan teraman. Mengabaikannya akan membuat informasi sensitif terpapar pada teknik eksploitasi yang sederhana dan terkenal.
Lanskap ancaman dunia maya berubah dengan cepat. Alat cracking baru muncul setiap minggu. Namun prinsipnya tetap sederhana: jangan pernah menyimpan hash kata sandi tanpa garam yang unik dan acak. Ini adalah garis pertahanan pertama.















