Glosarium

Apa itu Hashing Password?

Hashing password adalah praktik menerapkan fungsi kriptografi satu arah yang mahal secara komputasi pada sebuah password — dikombinasikan dengan salt yang unik — untuk menghasilkan digest berukuran tetap yang dapat memverifikasi password tanpa menyimpannya dalam bentuk yang dapat dipulihkan.

Juga dikenal sebagai: password hash, password digest

Menyimpan password dalam bentuk plaintext adalah salah satu praktik paling berbahaya dalam pengembangan perangkat lunak. Ketika basis data dibobol, password plaintext langsung dapat digunakan untuk pengambilalihan akun — bukan hanya di layanan yang dibobol, tetapi di setiap layanan lain tempat pengguna menggunakan password yang sama. Hashing password menggantikan penyimpanan plaintext dengan digest yang tidak dapat dibalik, yang dapat memverifikasi percobaan password namun tidak dapat dikembalikan untuk memulihkan password asli.

Tidak semua fungsi hash cocok untuk password. Fungsi hash serbaguna seperti SHA-256 terlalu cepat — GPU modern dapat menghitung miliaran hash SHA-256 per detik, membuat serangan brute-force menjadi sepele. Algoritma hashing password dirancang sengaja agar lambat, membutuhkan waktu CPU, memori, atau keduanya yang signifikan untuk setiap komputasi hash. Kelambatan ini dapat dikonfigurasi melalui parameter seperti jumlah iterasi (PBKDF2), faktor biaya (bcrypt), atau pengaturan memori dan paralelisme (Argon2).

Evolusi hashing password mencerminkan perlombaan senjata antara pembela dan penyerang. PBKDF2 (2000) menambahkan jumlah iterasi yang dapat dikonfigurasi. bcrypt (1999) memperkenalkan kebutuhan memori tetap yang menahan akselerasi GPU. scrypt (2009) menambahkan memory-hardness yang dapat dikonfigurasi. Argon2 (2015), pemenang Password Hashing Competition, menawarkan waktu CPU, memori, dan paralelisme yang dapat disetel. Setiap generasi mengatasi kemampuan serangan baru, dan pilihannya bergantung pada lingkungan penerapan dan model ancaman.

Cara Vaulted menggunakan Hashing Password

Vaulted tidak menyimpan password pengguna karena tidak memiliki akun pengguna. Namun, prinsip hashing password secara langsung menginformasikan fitur perlindungan passphrase-nya. Ketika pengguna menetapkan passphrase pada sebuah rahasia, PBKDF2 — sebuah algoritma hashing password — digunakan untuk menurunkan kunci dari passphrase tersebut. Kelambatan yang disengaja dari 100.000 iterasi PBKDF2 membuat tebakan brute-force terhadap passphrase menjadi tidak praktis, melindungi kunci yang di-wrap bahkan jika penyerang mendapatkan ciphertext dan salt.