Glosarium

Apa itu PBKDF2?

PBKDF2 (Password-Based Key Derivation Function 2) adalah algoritma derivasi kunci yang didefinisikan dalam RFC 8018 yang menerapkan fungsi pseudorandom — biasanya HMAC-SHA-256 — secara iteratif pada kata sandi dan salt untuk menghasilkan kunci turunan yang mahal secara komputasi untuk di-brute-force.

Juga dikenal sebagai: Password-Based Key Derivation Function 2, PBKDF, RFC 8018

PBKDF2 bekerja dengan menerapkan HMAC (Hash-based Message Authentication Code) secara berulang pada kombinasi kata sandi dan nilai salt acak. Jumlah iterasi mengontrol berapa kali operasi ini dilakukan — lebih banyak iterasi berarti lebih banyak waktu CPU per upaya derivasi kunci, yang secara langsung meningkatkan biaya bagi penyerang yang mencoba menebak kata sandi.

Salt adalah nilai acak yang unik untuk setiap operasi derivasi kunci. Salt mencegah serangan lookup yang telah dihitung sebelumnya (rainbow table) dengan memastikan bahwa kata sandi yang sama menghasilkan kunci turunan yang berbeda saat salt yang berbeda digunakan. Salt tidak perlu dirahasiakan — biasanya disimpan bersama kunci turunan atau ciphertext.

PBKDF2 distandarisasi pada tahun 2000 dan masih didukung secara luas, terutama di browser melalui Web Crypto API. Meskipun KDF yang lebih baru seperti Argon2 menawarkan resistensi yang lebih kuat terhadap serangan GPU dan ASIC dengan memerlukan banyak memori, PBKDF2 tetap menjadi pilihan yang solid untuk aplikasi berbasis browser di mana kompatibilitas Web Crypto API sangat penting dan jumlah iterasi dapat diatur cukup tinggi untuk memberikan keamanan yang memadai.

Cara Vaulted menggunakan PBKDF2

Vaulted menggunakan PBKDF2 melalui Web Crypto API saat passphrase ditambahkan ke sebuah rahasia. Implementasinya menggunakan 100.000 iterasi dengan HMAC-SHA-256 dan salt 16-byte acak. Kunci 256-bit yang diturunkan digunakan sebagai kunci wrapping AES-KW untuk mengenkripsi kunci AES-256-GCM utama. Salt disertakan dalam fragmen URL bersama kunci yang dibungkus sehingga penerima dapat menurunkan ulang kunci wrapping yang sama dari passphrase.