Ini benar-benar lebih merupakan tambahan dari jawaban cerdas @ Brian. Tutup juga ke @Martijn Pieters untuk menambahkan rincian tentang cara memaksa paksa kata sandi lama berdasarkan yang sekarang dan ke @ scratchet freak untuk "jarak hamming." Saya tidak menghapus jawaban saya karena saya pikir ini memberikan latar belakang yang menarik untuk mendukung mereka.
Penyimpanan kata sandi yang canggih membutuhkan penggunaan beberapa putaran hash kriptografis satu arah yang kuat (SHA-512 +) dengan garam unik (128-bit +) untuk setiap pengguna. Tetapi jangan tergoda untuk menyimpan informasi tambahan tentang setiap kata sandi. Semakin banyak informasi yang Anda simpan tentang setiap kata sandi, semakin Anda merusak keamanan algoritma hashing Anda.
Contoh
Pertimbangkan betapa mudahnya memaksakan kata sandi jika Anda tahu itu:
- Panjangnya 7 karakter
- Karakter 3-5 adalah huruf besar (4 lebih rendah)
- 1 dan 7 adalah angka
- 6 adalah simbol
Papan ketik AS memiliki 95 karakter yang dapat dicetak, sehingga mengetahui bahwa kata sandinya panjangnya 7 karakter menghasilkan 95 ^ 7 = 69.833.729.610.000 = 7x10 ^ 13 permutasi. Jika itu benar-benar acak, mungkin butuh waktu satu tahun untuk memecahkan ini pada prosesor 3Ghz tunggal. Tapi:
- Hanya ada 26 huruf besar dan 26 huruf kecil
- Hanya ada 10 digit yang menghasilkan 100 kemungkinan untuk dua angka tersebut
- Hanya ada 32 simbol
Jadi (dikoreksi berkat @Hellion):
26^4 (charcters 2-5 are known upper or lower-case)
x 100 (characters 1 & 7 are digits)
x 32 (character 6 is a symbol)
====
1,462,323,200 possible passwords.
Itu 50.000 kali lebih mudah retak! Menyimpan informasi yang baik untuk mencegah kata sandi yang sama dalam kasus ini telah menghabiskan waktu Anda untuk kata sandi 7-karakter dari setahun hingga beberapa jam. Decoding semua kata sandi Anda dengan desktop multi-prosesor yang kuat dengan kartu video yang bagus dan sedikit kesabaran sekarang sangat layak. Saya harap contoh sederhana ini menunjukkan bahwa semakin bermakna Anda dapat membandingkan kata sandi yang sama, semakin tidak aman hashing Anda.
Pentingnya Hashing Yang Kuat
Basis data dengan kata sandi dicuri secara teratur, dengan pembobolan besar dalam berita setiap bulan. Heck, baru bulan lalu keadaan SC kehilangan nomor jaminan sosial semua orang - ya! Berapa banyak lagi pelanggaran ini yang ditutup-tutupi?
Pikiran Penutup
Hal yang paling menakutkan bagi saya adalah ketika orang memilih kata sandi yang sama atau mirip untuk beberapa situs sehingga membobolnya memberikan penyerang akses ke semuanya. Saya ingin melihat metode yang terbukti mencegah situasi itu, meskipun saya pikir mencegah kata sandi buruk yang paling umum akan membantu lebih dari mencegah seorang pengguna menggunakan kembali kata sandi buruk mereka di situs yang sama. Yang terbaik yang bisa saya sarankan adalah kebijakan di seluruh perusahaan untuk menggunakan pengelola kata sandi aman yang menghasilkan kata sandi sangat acak untuk setiap pengguna Anda dan menyimpannya dengan aman.