Bagaimana mencegah pengguna mengubah kata sandi mereka menjadi salah satu kata sandi X terakhir?

9

Saya memiliki Ubuntu GNOME 15.10 dengan sistem GNOME 3.18 yang ingin saya atur agar pengguna yang menggunakannya tidak dapat menetapkan kata sandi baru sebagai salah satu kata sandi X sebelumnya, bagaimana hal ini dapat dicapai?

Ketika saya mengubah kata sandi saya, jika terlalu mirip dengan kata sandi terakhir saya, sistem saya tidak mengizinkan saya untuk mengubahnya ke kata sandi itu, akan lebih baik jika jawabannya juga dapat menunjukkan cara memperpanjang ini sehingga kata sandi baru juga tidak dapat terlalu mirip dengan kata sandi yang direkam X sebelumnya.

Catatan: Sejarah kata sandi X terakhir tidak boleh disimpan dengan cara tidak terenkripsi yang tidak aman, bahkan kata sandi X mungkin harus disimpan dengan cara yang sama atau mirip dengan cara penyimpanan kata sandi saat ini (sebagai hash asin).

Saya telah digunakan Xuntuk mewakili jumlah kata sandi (ini bisa berupa nilai apa saja) karena saya ingin dapat dengan mudah mengubah jumlah kata sandi yang disimpan yang tidak dapat digunakan, dan juga agar orang lain dapat dengan mudah mengambil jawabannya dan menggunakannya saat mereka berharap daripada memiliki jawaban yang berkisar pada nilai yang sangat ditentukan untuk X.

Pembaruan Informasi:

Seperti yang diminta di sini adalah isi file saya (tidak termasuk komentar di bagian atas) /etc/pam.d/common-password:

# here are the per-package modules (the "Primary" block)
password        [success=1 default=ignore]      pam_unix.so obscure sha512
# here's the fallback if no module succeeds
password        requisite                       pam_deny.so
# prime the stack with a positive return value if there isn't one already;
# this avoids us returning an error just because nothing sets a success code
# since the modules above will each just jump around
password        required                        pam_permit.so
# and here are more per-package modules (the "Additional" block)
password        optional        pam_gnome_keyring.so
# end of pam-auth-update config
Guntbert
sumber
Perhatikan bahwa a) memaksa pengguna untuk mengubah kata sandi mereka dan b) mencegah X kata sandi lama di mana X> 2 dapat mengurangi keamanan ... "Hmm lebih baik hanya menambahkan 1 ke kata sandi lama saya ... Dan menulisnya di catatan postit untuk mengingatkan saya ... "
Tim
@Tim: Sudah ada mekanisme yang dibangun ke dalam sistem saya yang mencegah kata sandi terlalu mirip dengan yang terakhir.
Itu sering sama buruknya - yang memastikan pengguna akan menuliskannya. Saya juga tidak yakin mengubahnya memiliki manfaat apa pun - dan tentu saja itu negatif.
Tim
@Tim: Juga, Anda hanya mengingatkan saya pada sesuatu yang saya lupa sertakan, saya telah memperbarui pertanyaan saya dengannya (meskipun perhatikan bahwa meskipun ini akan menyenangkan, jika jawabannya tidak dapat menunjukkan bagaimana melakukan hal tambahan ini maka saya akan baik-baik saja dengan mendapatkan apa yang awalnya saya minta).
@Tim: Saya akan memiliki kebijakan lain yang mencegah mereka melakukan itu dan akan terus mengawasi mereka.

Jawaban:

17

Anda dapat mengkonfigurasi PAM untuk melakukan ini untuk Anda. Cukup buka /etc/pam.d/common-passworddan tambahkan use_authtokke passwordbaris pertama (yang memanggil modul pam_unix) sehingga terlihat seperti ini:

password    [success=1 default=ignore]  pam_unix.so obscure sha512 use_authtok

Sekarang tambahkan baris ini di atas baris yang dimodifikasi sebelumnya:

password    required    pam_pwhistory.so  remember=X

di mana Xjumlah kata sandi sebelumnya yang Anda ingin periksa untuk kata sandi berulang.

Di sini Xkata sandi sebelumnya akan disimpan dalam bentuk hash di lokasi/etc/security/opasswd

Jadi, Anda perlu membuat file jika dan hanya jika tidak ada dan berikan izin 600 ( -rw-------):

sudo touch /etc/security/opasswd
sudo chmod 600 /etc/security/opasswd
daltonfury42
sumber
Meskipun melakukan apa yang Anda katakan tampaknya berarti bahwa jika saya mencoba menetapkan kata sandi yang telah saya gunakan sebelumnya sebagai salah satu kata sandi X terakhir saya di pusat-gnome-kontrol, itu tidak melakukan apa-apa dan memaksa saya untuk keluar dari aplikasi secara paksa, itu tidak tampaknya bekerja dengan sangat baik ... Apa sebenarnya yang dilakukan pada 14,04? Karena saya akan berharap itu menunjukkan kepada saya jika kata sandi tidak cocok bukan hanya menggantung ketika saya memintanya untuk mengubahnya.
@ParanoidPanda Sangat menarik. Apa yang Anda dapatkan ketika Anda mencoba mengubah kata sandi menggunakan passwd? Inilah yang terjadi pada saya. Ketika saya mengganti menggunakan passwdsaya mendapatkan "Kata sandi telah digunakan. Pilih yang lain." dan ketika saya mencoba untuk mengubah kata sandi dari GUI itu tidak memungkinkan saya untuk mengubah kata sandi (tombol Ubah diklik) dan "Kata Sandi terlalu lemah" ditulis.
daltonfury42
Perlu dicatat bahwa saya melaporkan dari Ubuntu 14.04 menjalankan Unity, bukan Gnome.
daltonfury42
Saya telah mengujinya lagi, kali ini dalam instalasi Ubuntu GNOME 16.04 Beta 2 dengan GNOME 3.20 dan saya telah menemukan bahwa ia bekerja sama seperti yang telah Anda jelaskan dengan passwdperintah, tetapi tidak di gnome-control-center, ada hanya hang setelah itu memungkinkan saya untuk menekan Change. Meskipun mungkin ini adalah bug saya perlu mengajukan laporan pada ...
2
@ParanoidPanda Ini karena pemrograman yang buruk di gnome-control-center, bukan karena ini tidak berfungsi. Konfigurasi PAM jelas merupakan cara terbaik untuk melakukan ini.
Seth