Jika kata sandi disimpan hash, bagaimana komputer tahu bahwa kata sandi Anda mirip dengan kata sandi terakhir jika Anda mencoba mengatur ulang kata sandi Anda?

11

Jika kata sandi disimpan hash, bagaimana komputer tahu bahwa kata sandi Anda mirip dengan kata sandi terakhir jika Anda mencoba mengatur ulang kata sandi Anda? Bukankah kedua kata sandi itu akan sama sekali berbeda karena satu hash, dan tidak dapat dibalik?

bob larry
sumber
5
Komputer tidak akan tahu apakah mereka mirip. Itu hanya akan tahu jika mereka identik (dengan hashing kata sandi baru dan membandingkannya dengan hash yang tersimpan dari kata sandi asli).
Robert Harvey
Padahal, ada beberapa cara untuk menghasilkan hash yang menangkap bagian dari karakteristik kata sandi. Namun, ketersediaan hash semacam itu merupakan celah yang besar, karena cracker kata sandi juga dapat menggunakan informasi tersebut untuk mempersempit pencarian brute-force kata sandi oleh banyak pesanan.
rwong
Jika Anda perlu membandingkan kata sandi, Anda tidak akan menggunakan hash. Kemungkinan Anda akan menggunakan AES atau bentuk enkripsi
simetri lainnya

Jawaban:

15

Salah satu cara untuk mengimplementasikan ini adalah jika Anda mengatur ulang kata sandi, Anda biasanya diminta untuk memasukkan kata sandi lama Anda juga. Anda cukup menggunakan perbandingan kesamaan string biasa dalam situasi itu karena Anda memiliki kedua kata sandi dalam bentuk plaintext pada saat itu.

Cara lain untuk mengimplementasikan ini adalah dengan menormalkan kata sandi, misalnya karakter beraksen dinormalisasi ke abjad bahasa Inggris terdekat, mencoba menyalin teks secara fonetis, menghapus angka, dll, dan dengan menghitung ulang beberapa versi hash yang dihasilkan dari kata sandi yang telah dinormalisasi dengan berbagai cara. Perhatikan bahwa ini melemahkan mekanisme hashing dengan jumlah yang tidak ditentukan. Saya tidak akan menganggap itu sebagai praktik keamanan terbaik.

Lie Ryan
sumber
"Reset kata sandi" biasanya mengacu pada "Saya lupa kata sandi saya dan saya ingin mengatur ulang", jadi Anda tidak akan ditanya kata sandi lama. Namun, bagian kedua dari jawaban Anda akurat.
casablanca
3
@casablanca: ada banyak sistem di luar sana yang membuat Anda "mengatur ulang" kata sandi Anda setiap X hari ....
whatsisname
1
@casablanca: paruh pertama juga akurat, "mengatur ulang kata sandi" dapat memiliki kedua arti, terminologinya tidak sekaku itu. Kita perlu bertanya pada OP apa artinya sebenarnya.
Doc Brown
12

Jawaban sederhananya adalah bahwa sistem yang aman tidak tahu apakah mereka serupa.

Tetapi beberapa sistem dengan sengaja mengurangi keamanan untuk kata sandi tertentu di suatu tempat untuk mencegah kata sandi baru menjadi kata sandi lama, atau mirip dengan kata sandi tersebut. Imbalan manfaat biaya adalah bahwa kata sandi baru akan dibuat sebelum seseorang dengan kejam memecahkan kata sandi saat ini bahkan dengan informasi kesamaan.

  • Mereka mungkin menyimpan hash N kata sandi terakhir yang telah Anda gunakan. Jika Anda memasukkan kata sandi lama, itu jelas karena hash kata sandi yang baru cocok dengan hash kata sandi lama.
  • Mekanisme hash yang digunakan mungkin berisi mekanisme memaku ibu jari, atau thumbnail hash mungkin disimpan di samping hash. Pada dasarnya pola bit tertentu dalam thumbnail hash mengekspresikan serangkaian pola bit yang sangat mirip dalam nilai yang mendasarinya.
  • Demikian pula mereka mungkin menjaga statistik ke sisi tentang kata sandi Anda, yang akan memungkinkan untuk mengukur kesamaan yang akurat.

Secara umum masing-masing teknik ini mengurangi keamanan kata sandi.

  • Menjaga kata sandi lama mengurangi keamanan kata sandi tersebut. Jika salah satu dari kata sandi itu di-crack, ada kemungkinan besar bahwa kata sandi saat ini akan serupa dengan mereka, kebanyakan orang hanya mengubah angka.

  • Memaku dan statistik jempol dapat menghilangkan tebakan kata sandi yang buruk lebih cepat daripada mencoba menebak dan membandingkan. Ini karena hash, terutama hash aman rumit untuk dihitung dan diusahakan, bahkan jika perangkat keras dipercepat. Walaupun perhitungan yang lebih sederhana yang mengatakan 'pasti tidak' atau 'mungkin' dapat menghilangkan sebagian besar dugaan itu, setelah semua pemeriksaan kesamaan dimaksudkan untuk menghentikan Anda menggunakan kata sandi yang sama, bukan dari menggunakan kata sandi yang sama sekali baru yang tidak terlihat sama seperti yang lama.

Singkatnya berhati-hatilah terhadap situs yang menunjukkan ukuran kesamaan dengan kata sandi lama / lama Anda. Kecuali mereka mengatakan bahwa kata sandi baru adalah kata sandi lama.

Kain0_0
sumber
7

Jika kata sandi disimpan hash, bagaimana komputer tahu bahwa kata sandi Anda mirip dengan kata sandi terakhir jika Anda mencoba mengatur ulang kata sandi Anda? Bukankah kedua kata sandi itu akan sama sekali berbeda karena satu hash, dan tidak dapat dibalik?

Anda menghasilkan beberapa kata sandi yang serupa dari kata sandi yang dimasukkan pengguna, dan memeriksa apakah ada hash yang cocok dengan kata sandi lama.

Jörg W Mittag
sumber
Ya, orang cukup dapat diprediksi dalam jenis perubahan yang akan mereka buat sehingga ini bisa menjadi cara yang layak untuk melakukannya.
cyborg
Itu akan meledak sangat cepat dalam hal pemrosesan yang dibutuhkan hanya dengan kata sandi terpendek. Jadi saya tidak percaya ini adalah praktik nyata.
Martin Maat
Saya bekerja di satu tempat untuk waktu yang cukup lama, dan ketika saya meninggalkan kata sandi saya adalah supersecurepassword39. (Hanya dua digit terakhir yang benar). Sudah jelas jika kata sandi dimulai atau diakhiri dengan nomor untuk melihat apakah nomor sebelumnya digunakan.
gnasher729
@ MartinMaat Akankah begitu? Anda dapat mendeteksi say menambahkan atau menambah angka dengan memilih karakter satu per satu dari kata sandi asli. Yaitu untuk "kata sandi", Anda hash "assword" (heehee), "pssword", "pasword" dll. Anda bahkan bisa lolos dengan menggunakan yang lebih lemah untuk ini karena kompleksitas tambahan karena harus mencoba 256 permutasi masing-masing jika Anda kebetulan memaksa hash sekunder. (Terlebih lagi jika Anda menyimpannya dalam urutan acak dan Anda tidak tahu karakter mana yang dipilih, maka itu 256 * N untuk masing-masing.)
millimoose
Itu membuat pengaturan kata sandi baru N-kali lebih mahal ketika N adalah panjang kata sandi, tidak termasuk pemeriksaan kesamaan yang seharusnya jauh lebih murah daripada hashing. Tapi kata sandi hash Anda setiap kali pengguna masuk, dan ini mungkin terjadi jauh lebih sering daripada perubahan kata sandi, jadi saya ragu beban tambahan akan terlihat.
milimoose
2

Pola lain adalah sistem Anda hash beberapa himpunan bagian karakteristik kata sandi Anda dan menyimpan hash itu untuk memeriksa apakah himpunan bagian dari kata sandi yang baru cocok dengan yang lama, yaitu: kata sandi: "Admin2018" & subset: "Admin" = tidak dapat memasukkan "Admin2019" sebagai baru.

Lukasz Matysiak
sumber
1

Salah satu caranya adalah dengan menyimpan lima kata sandi hash dalam tabel seperti 'Sejarah Kata Sandi' dan ketika pengguna mencoba untuk mengatur kata sandi baru, hash dan bandingkan dengan kata sandi hash dalam tabel.

SKDev
sumber