Какие методы используются для шифрования паролей в / etc / passwd и / etc / shadow?

19

Тщательное изучение из /etc/passwdи /etc/shadowфайлов показывают , что пароли хранятся хэшируются с помощью той или иной форме хэш - функции.

Быстрый поиск в Google показывает, что по умолчанию пароли зашифрованы с использованием DES . Если запись начинается с $, то это означает, что использовалась какая-то другая функция хеширования.

Например, некоторые записи на моей машине с Ubuntu начинаются с $6$...

Что представляют различные цифры?

Натан Осман
источник

Ответы:

28

Полный список находится в man 3 crypt( веб-версия ):

          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 может быть $2$или $2a$согласно крипте Википедии (Unix) .)

Так $6$значит SHA-512.

Какой из них использует ваша система, определяется любыми опциями, передаваемыми в модуль PAM pam_unix .

По умолчанию в последней версии Ubuntu установлено в /etc/pam.d/common-password:

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

Это означает, что в следующий раз, когда вы смените свой пароль, он будет хеширован с использованием SHA-512, при условии, что ваша учетная запись является локальной, а не NIS / LDAP / Kerberos и т. д.

Смотрите также:

Mikel
источник
Быстрая двойная проверка моих /etc/shadowпоказывает 2 записи, которые начинаются с $6$.
Натан Осман
Обратите внимание, что SHA-256 и SHA-512 являются частью набора хэш-функций SHA-2.
Mattdm
4
Обратите внимание, что криптографические хэши, основанные на SHA-2, не являются простыми SHA-2, что было бы плохо, поскольку обычный SHA-2 слаб по отношению к атакам по словарю. Схемы шифрования SHA-2 используют простые хеши в качестве строительного блока, но добавляют переменный рабочий фактор (для замедления атак по словарю) и соль.
CodesInChaos
На моей машине с Ubuntu пароль root имеет символ восклицательного знака ( !). Чтение man shadowозначает, что пароль заблокирован, поэтому вы не можете войти в систему напрямую, используя пароль Unix. Это связано с тем, что Ubuntu по умолчанию отключила учетную запись root.
Akronix