Kesamaan kata sandi

9

Saya ingin mengubah kata sandi di mesin unix. Saya melakukan "passwd" yang normal dan mengetik kata sandi lama dan baru saya.

Kemudian mesin kembali kepada saya dengan pesan berikut:

BAD PASSWORD: is too similar to the old one

Itu membuat saya berpikir ... Apakah itu berarti, mesin memiliki kata sandi saya dalam teks yang jelas di suatu tempat? Kalau tidak, seharusnya tidak bisa membandingkan kata sandi lama dan kata sandi baru, kan? Atau ada fungsi hash, yang memungkinkan itu?

dertoni
sumber

Jawaban:

6

OK, jadi saya mengikuti saran Michael Hampton dan pergi dan melihat kode pam_cracklib.c dan sepertinya pam_cracklib mendapatkan kata sandi lama (alias saat ini) dari PAM melalui panggilan fungsi (yang saya anggap benar-benar baik-baik saja, seperti Saya baru saja memasukkan kata sandi saat ini untuk mengotentikasi) dan kemudian melakukan analisis kesamaan (fungsi jarak) antara kata sandi lama dan yang baru saya masukkan.

Tapi itu tidak melakukan analisis ini untuk semua kata sandi lama dalam sejarahnya. Itu tidak mungkin, karena mereka hanya disimpan sebagai hash. Bagi mereka hanya akan ada cek jika mereka sama. Jadi semuanya tampak beres, seperti yang saya harapkan, tapi sekarang saya mengerti mengapa itu ... terima kasih semuanya.

dertoni
sumber
3

Kata sandi lama Anda tidak disimpan dalam teks biasa.

Alih-alih, hash kata sandi lama Anda disimpan /etc/security/opasswdoleh PAM. Itu kemudian membuat perbandingan ketika Anda pergi untuk mengubah kata sandi Anda, berdasarkan apa yang telah ditentukan dalam konfigurasi PAM.

Contoh konfigurasi PAM:

password required pam_unix.so sha512 remember=12 use_authtok

Di sini, remembermenyebabkannya mengingat 12 kata sandi sebelumnya.

Untuk detail lebih lanjut, lihat Keamanan Kata Sandi Linux dengan pam_cracklib .

Michael Hampton
sumber
Mhm ... yah itu jelas bukan kata sandi yang pernah saya gunakan sebelumnya ... Jadi harus memeriksa perubahan karakter pada kata sandi lama. Tetapi jika semua yang disimpan adalah hash dari kata sandi itu, lalu bagaimana cara melakukan perbandingan? Bukankah salah satu fungsi utama hash yang aman secara kriptografis tidak memungkinkan perbandingan antara berbagai teks bening?
dertoni
Anda membuat saya di sana. Saya pikir Anda harus membaca kode sumber untuk menjawab yang pasti.
Michael Hampton
Saya berharap itu membuat variasi pada kata sandi baru dan jika salah satu hash dari variasi ini cocok dengan hash kata sandi lama, itu terlalu mirip. Dengan begitu, hanya hash yang disimpan. Tentu saja, saya belum memeriksa ini dalam kode sumber juga ...
Ladadadada
ok, baca kodenya ... tambahkan jawaban tentang temuan saya. +1 untuk membantu saya menemukan jawabannya ;-) thx.
dertoni
0

Beberapa sistem dapat menyimpan / menghitung entropi (kompleksitas kata sandi) dan membandingkannya, saya tidak tahu apakah itu kasus PAM.

vn.
sumber