Deskripsi
Untuk meningkatkan keamanan akun pengguna pada seluruh aplikasi OpenKab, perlu diterapkan mekanisme Password History yang mencegah pengguna menggunakan kembali kata sandi yang pernah digunakan sebelumnya.
Sistem wajib menyimpan 10 (sepuluh) kata sandi terakhir untuk setiap akun dan melakukan validasi pada setiap proses perubahan maupun reset kata sandi. Apabila kata sandi baru sama dengan salah satu dari 10 kata sandi terakhir, maka proses harus ditolak.
Fitur ini bertujuan untuk:
- Mencegah penggunaan ulang kata sandi lama.
- Meningkatkan efektivitas kebijakan pergantian kata sandi.
- Mengurangi risiko kompromi akun akibat penggunaan kata sandi yang berulang.
- Menyesuaikan praktik keamanan aplikasi dengan standar keamanan yang lebih baik.
Ruang Lingkup
- Menyimpan maksimal 10 riwayat kata sandi untuk setiap pengguna.
- Berlaku pada seluruh mekanisme perubahan kata sandi, meliputi:
- Ubah kata sandi melalui profil pengguna.
- Reset kata sandi melalui email.
- Reset menggunakan OTP.
- Reset oleh administrator.
- Mekanisme lain yang mengubah kata sandi.
- Melakukan validasi terhadap seluruh riwayat kata sandi sebelum kata sandi baru disimpan.
- Menampilkan pesan kesalahan apabila pengguna mencoba menggunakan kembali salah satu dari 10 kata sandi terakhir.
- Menghapus riwayat kata sandi yang paling lama secara otomatis apabila jumlah riwayat melebihi 10.
Ketentuan Teknis
- Kata sandi tidak boleh disimpan dalam bentuk plaintext.
- Riwayat kata sandi wajib disimpan menggunakan hashing yang sama dengan kata sandi aktif.
- Pemeriksaan riwayat dilakukan menggunakan fungsi verifikasi hash (
Hash::check() atau mekanisme bawaan framework).
- Validasi wajib dilakukan di sisi backend dan tidak hanya pada frontend.
- Audit log (apabila tersedia) hanya mencatat aktivitas perubahan kata sandi tanpa menyimpan isi maupun hash kata sandi.
Acceptance Criteria
Deskripsi
Untuk meningkatkan keamanan akun pengguna pada seluruh aplikasi OpenKab, perlu diterapkan mekanisme Password History yang mencegah pengguna menggunakan kembali kata sandi yang pernah digunakan sebelumnya.
Sistem wajib menyimpan 10 (sepuluh) kata sandi terakhir untuk setiap akun dan melakukan validasi pada setiap proses perubahan maupun reset kata sandi. Apabila kata sandi baru sama dengan salah satu dari 10 kata sandi terakhir, maka proses harus ditolak.
Fitur ini bertujuan untuk:
Ruang Lingkup
Ketentuan Teknis
Hash::check()atau mekanisme bawaan framework).Acceptance Criteria