Metode apa yang digunakan untuk mengenkripsi kata sandi di / etc / passwd dan / etc / shadow?

19

Pemeriksaan yang cermat terhadap /etc/passwddan /etc/shadowfile mengungkapkan bahwa kata sandi yang disimpan hash menggunakan beberapa bentuk fungsi hashing.

Pencarian Google cepat mengungkapkan bahwa secara default, kata sandi dienkripsi menggunakan DES . Jika sebuah entri dimulai dengan $, maka itu menunjukkan bahwa beberapa fungsi hashing lain digunakan.

Misalnya, beberapa entri di mesin Ubuntu saya mulai dengan $6$...

Apa yang mewakili berbagai angka?

Nathan Osman
sumber

Jawaban:

28

Daftar lengkapnya ada di man 3 crypt( versi web ):

          ID  | Method
          -------------------------------------------------
          1   | MD5
          2a  | Blowfish (on some Linux distributions)
          5   | SHA-256 (since glibc 2.7)
          6   | SHA-512 (since glibc 2.7)

(Blowfish dapat berupa $2$atau $2a$menurut Wikipedia Crypt (Unix) .)

Jadi $6$artinya SHA-512.

Yang mana yang digunakan sistem Anda diatur oleh opsi apa pun yang diteruskan ke modul PAM pam_unix .

Default pada versi terbaru Ubuntu diatur dalam /etc/pam.d/common-password:

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

yang berarti bahwa lain kali Anda mengubah kata sandi Anda, itu akan di hash menggunakan SHA-512, dengan anggapan akun Anda bersifat lokal, bukan NIS / LDAP / Kerberos, dll.

Lihat juga:

Mikel
sumber
Pemeriksaan ganda cepat /etc/shadowpada entri saya menunjukkan 2 entri yang dimulai dengan $6$.
Nathan Osman
Perhatikan bahwa SHA-256 dan SHA-512 adalah bagian dari rangkaian fungsi hash SHA-2.
mattdm
4
Perhatikan bahwa hash crypt berdasarkan pada SHA-2 bukan SHA-2 biasa, yang akan menjadi buruk karena SHA-2 polos lemah terhadap serangan kamus. Skema crypt SHA-2 menggunakan hash polos sebagai blok bangunan, tetapi menambahkan variabel-faktor kerja (untuk memperlambat serangan kamus) dan garam.
CodesInChaos
Di mesin Ubuntu saya, kata sandi root memiliki simbol tanda seru ( !). Membaca man shadow, itu berarti kata sandi terkunci, sehingga Anda tidak dapat masuk secara langsung menggunakan kata sandi unix. Itu ada hubungannya dengan Ubuntu mengatur akun root dinonaktifkan secara default.
Akronix