Как найти алгоритм хеширования, используемый для хеширования паролей?
11
У меня есть рабочий пароль и я вижу хеш (/ etc / passwd). Как найти алгоритм хеширования, используемый для хеширования пароля, не пытаясь вручную использовать разные алгоритмы, пока не найду совпадение?
Я очень удивлен , что вы можете увидеть хэш в /etc/passwd. Я думал, что все варианты Unix / Linux разделились с /etc/shadowгодами назад. (Я знаю, что такие системы по-прежнему поддерживают хеши, passwdно я не знаю ни одной утилиты, которая бы их там помещала. Возможно, встроенная система?
roaima
Это OpenWrt Backfire 10.03. Хеши все еще хранятся /etc/passwdздесь. Это, однако, не меняет сути вопроса. Является ли?
Дорин Ботан
1
Для справки: в BSD есть два файла Berkeley DB, roaima. Это все еще разделено, но это не так, /etc/shadowи у них нет файла с таким именем.
Если соль - это строка символов, начинающаяся с символов «$ id $», за которыми следует строка, необязательно оканчивающаяся на «$», тогда результат имеет вид:
$id$salt$encrypted
id определяет метод шифрования, используемый вместо DES, а затем определяет, как интерпретируется остальная часть строки пароля. Поддерживаются следующие значения id:
ID | Method
─────────────────────────────────────────────────────────
1 | MD5
2a | Blowfish (not in mainline glibc; added in some
| Linux distributions)
5 | SHA-256 (since glibc 2.7)
6 | SHA-512 (since glibc 2.7)
Blowfish, также известный как bcrypt, также определен префиксами 2, 2b, 2xи 2y(см документации PassLib в ).
Таким образом, если хешированный пароль хранится в вышеуказанном формате, вы можете найти используемый алгоритм, посмотрев на идентификатор ; в противном случае это cryptалгоритм DES по умолчанию (с 13-символьным хешем), или «большой» cryptDES (расширенный для поддержки 128-символьных паролей, с длиной до 178 символов), или BSDI с расширенным DES (с _префиксом за которым следует 19-символьный хэш).
Некоторые дистрибутивы используют libxcrypt, который поддерживает и документирует еще несколько методов:
y: yescrypt
gy: gost-yescrypt
7: scrypt
sha1: sha1crypt
md5: SunMD5
Другие платформы поддерживают другие алгоритмы, поэтому проверьте cryptстраницу руководства там. Например, OpenBSDcrypt(3) поддерживает только Blowfish, который он идентифицирует, используя идентификатор «2b».
Пароли, основанные на DES, всегда имеют длину 13 символов и состоят из буквенно-цифровых символов, а также .и /. Первые 2 символа - это соль, а остальные 11 - это хэш-значение (вроде). И это единственный из поддерживаемых алгоритмов, cryptкоторый настолько слаб, что вы не можете компенсировать это, выбрав более надежный пароль.
/etc/passwd
. Я думал, что все варианты Unix / Linux разделились с/etc/shadow
годами назад. (Я знаю, что такие системы по-прежнему поддерживают хеши,passwd
но я не знаю ни одной утилиты, которая бы их там помещала. Возможно, встроенная система?/etc/passwd
здесь. Это, однако, не меняет сути вопроса. Является ли?/etc/shadow
и у них нет файла с таким именем.Ответы:
Это отражено в
crypt(3)
«странице руководства сек , которые вы можете найти с помощьюshadow(5)
«s страница руководства , илиpasswd(5)
«s . Эти ссылки подходят для современных систем на основе Linux; описание там есть:Blowfish, также известный как
bcrypt
, также определен префиксами2
,2b
,2x
и2y
(см документации PassLib в ).Таким образом, если хешированный пароль хранится в вышеуказанном формате, вы можете найти используемый алгоритм, посмотрев на идентификатор ; в противном случае это
crypt
алгоритм DES по умолчанию (с 13-символьным хешем), или «большой»crypt
DES (расширенный для поддержки 128-символьных паролей, с длиной до 178 символов), или BSDI с расширенным DES (с_
префиксом за которым следует 19-символьный хэш).Некоторые дистрибутивы используют libxcrypt, который поддерживает и документирует еще несколько методов:
y
: yescryptgy
: gost-yescrypt7
: scryptsha1
: sha1cryptmd5
: SunMD5Другие платформы поддерживают другие алгоритмы, поэтому проверьте
crypt
страницу руководства там. Например, OpenBSDcrypt(3)
поддерживает только Blowfish, который он идентифицирует, используя идентификатор «2b».источник
.
и/
. Первые 2 символа - это соль, а остальные 11 - это хэш-значение (вроде). И это единственный из поддерживаемых алгоритмов,crypt
который настолько слаб, что вы не можете компенсировать это, выбрав более надежный пароль.