it-swarm-id.com

Mengapa ada penundaan besar setelah memasukkan kata sandi yang salah?

Saya perhatikan hal aneh (well, menurut saya) tentang kata sandi. Misalnya, jika saya mengetikkan kata sandi yang salah saat login, akan ada penundaan beberapa detik sebelum sistem memberi tahu saya demikian. Ketika saya mencoba Sudo dengan kata sandi yang salah saya juga harus menunggu sebelum Shell mengatakan "Maaf, coba lagi".

Saya heran mengapa perlu waktu lama untuk "mengenali" kata sandi yang salah? Ini telah terlihat pada beberapa distribusi yang saya gunakan (dan bahkan OSX), jadi saya pikir itu bukan distribusi yang spesifik.

93
phunehehe

Ini adalah masalah keamanan, sebenarnya tidak butuh waktu lama untuk menyadarinya. 2 kerentanan ini diselesaikan:

  1. ini menghambat upaya masuk, yang berarti seseorang tidak dapat menggebrak sistem secepat itu bisa mencoba memecahkannya (1M mencoba sebentar? Saya tidak tahu).

  2. Jika melakukannya segera setelah itu memverifikasi kredensial Anda salah, Anda dapat menggunakan jumlah waktu yang dibutuhkan untuk membatalkan kredensial Anda untuk membantu menebak jika bagian dari kredensial Anda benar, secara dramatis mengurangi waktu tebakan.

untuk mencegah 2 hal ini, sistem hanya membutuhkan waktu tertentu untuk melakukannya, saya pikir Anda dapat mengkonfigurasi waktu tunggu dengan PAM ( Lihat jawaban Michaels ).

Rekayasa Keamanan ( 2ed, Amazon | 1ed, gratis ) memberikan penjelasan yang jauh lebih baik tentang masalah ini.

94
xenoterracide

Ini disengaja, untuk mencoba dan membatasi kekerasan. Anda biasanya dapat memodifikasinya dengan mencari FAIL_DELAY entri konfigurasi dalam /etc/login.defs dan mengubah nilainya (milik saya adalah 3 detik secara default), meskipun komentar dalam file itu membuatnya terdengar seperti PAM akan memberlakukan setidaknya 2 penundaan kedua tidak peduli apa

42
Michael Mrozek

Pada sistem linux modern, alasannya adalah pam_unix.so memaksakan penundaan seperti itu. Seperti yang dilaporkan sebelumnya, ini dapat dikonfigurasikan ke dua detik dengan mengubah FAIL_DELAY Di /etc/login.defs. Jika Anda ingin mengurangi penundaan lebih lanjut, Anda harus memberikan pam_unix.so opsi "nodelay". Misalnya, di sistem saya, jika Anda melacak menyertakan mulai dari /etc/pam.d/Sudo, Anda harus mengedit baris /etc/pam.d/system-auth Berikut:

auth      required  pam_unix.so     try_first_pass nullok

dan ubah ke ini:

auth      required  pam_unix.so     try_first_pass nullok nodelay

Sayangnya, cara distro linux saya (Arch) mengkonfigurasi hal-hal, file system-auth Yang sama akan dimasukkan oleh system-remote-login, Yang digunakan oleh sshd.

Meskipun aman untuk menghilangkan penundaan pada Sudo, karena itu dicatat, hanya digunakan oleh pengguna lokal, dan bisa dilewati oleh penyerang lokal, Anda mungkin tidak ingin menghilangkan penundaan ini untuk login jarak jauh. Tentu saja Anda dapat memperbaikinya dengan menulis Sudo khusus yang tidak hanya menyertakan file auth sistem bersama.

Secara pribadi, saya pikir keterlambatan Sudo (dan mengabaikan SIGINT) adalah kesalahan besar. Ini berarti pengguna yang tahu bahwa mereka salah mengetik kata sandi tidak dapat menghentikan proses dan menjadi frustrasi. Tentu saja, Anda masih dapat menghentikan Sudo dengan Ctrl-Z, karena Sudo tidak menangkap SIGTSTP, dan setelah menghentikannya Anda dapat membunuhnya dengan kill -9 (SIGKILL). Itu hanya menjengkelkan untuk dilakukan. Jadi itu berarti serangan otomatis dapat menembakkan sudo pada terminal semu dengan kecepatan super tinggi. Tetapi penundaan itu membuat frustrasi pengguna yang sah dan mendorong mereka untuk menangguhkan shell root mereka alih-alih keluar dari mereka untuk menghindari keharusan ke Sudo lagi.

12
user3188445