Kenapa? SHA-256 sendirian tidak cocok untuk penyimpanan sandi
File checksum dan server-side penyimpanan sandi memecahkan masalah yang berbeda. Penyimpanan password juga harus membuat masing-masing offline menebak mahal.
Dalam panduan ini
Hashing bukan enkripsi: tidak ada operasi dekripsi yang berhubungan. Namun demikian, setelah sebuah data kebocoran penyerang dapat menebak dan membandingkannya dengan catatan curian tanpa melewati batas laju log masuk aplikasi Anda.
Kecepatan SHA menjadi kerugian.
SHA-256 berguna untuk pemeriksaan integritas dan banyak aplikasi kriptografi. Kecepatan tidak diinginkan untuk penyimpanan sandi. Menambahkan garam untuk SHA256(salt + password) tidak membuat tebakan cukup mahal biaya garam dan komputasional melayani tujuan yang berbeda
Jangan ciptakan format kredensial atau suatu loop hashes biasa. Gunakan sebuah perpustakaan passsword- hashing yang dijaga.
Pilih sebuah fungsi penekan sandi yang berdedikasi
OWASP lebih suka Argon2id untuk sistem baru, dengan scrypt sebagai alternatif ketika tidak tersedia. PBKDF2 melayani persyaratan compliance spesifik. Bcrypt tetap relevan untuk sistem warisan tetapi memiliki batasan, termasuk panjang masukan.
Gunakan fungsi pustaka untuk pembuatan dan verifikasi, penyimpanan garam generasi dan parameter. Pilih parameter biaya dari panduan dan pengukuran saat ini di server target. Akun untuk log masuk dan batas sumber daya yang tersambung: hashing mahal tidak boleh membuat penolakan layanan sepele. Laju daring membatasi tetap diperlukan.
Memahami garam dan lada
garam adalah acak dan unik untuk setiap catatan; itu tidak perlu menjadi rahasia. Simpan pengidentifikasi algoritma dan parameter verifikasi juga, sering dalam catatan tersandi perpustakaan.
Sebuah lada adalah rahasia opsional yang disimpan di luar database password. Ini dapat membantu dalam beberapa skenario pelanggaran tapi rumit rotasi dan manajemen kunci. Ini menggantikan baik garam maupun fungsi hashing yang cocok.
Upgrade catatan setelah verifikasi sukses
Pada login sukses, verifikasi catatan lama terlebih dahulu, kemudian rehash sandi yang diajukan jika parameter sudah usang. Anda tidak dapat memulihkan password asli dari hashes yang ada untuk mengmigrasi seluruh basis data. Akun tidak aktif perlu mengatur ulang atau kebijakan migrasi terpisah. Pengelusuran tidak membatalkan kebocoran sebelumnya.
Sebelum penyebaran, uji sandi yang salah, migrasi warisan, batas panjang dan beban. Jangan pernah log password tes atau kirim mereka ke analitik.