Какой алгоритм хеширования паролей в Linux?
Все мы занем что в /etc/shadow хранится хеш sudo паролей. Если я захочу брутфоросом "подобрать" пароль с таким же хешем, то это займет много времени потому, что есть некоторая задержка по ответу в теорминал при вводе неправильного пароля. Выходит, что нужно искать другие лазейки - и первым шагом можно рассматривать алгоритм хеширования. Подскажите какой используется в linux-е и какие у него есть "особенности"(слабые места)?
Ответы (1 шт):
Спасибо @Mike за комментарий.
Действительно, алгоритм указан в самом хеше.
Хеш имеет несколько "полей":
пусть хеш такой : kaktus:$1$jbdsfj$ewryh4hferf444f3w:213:3:123:6:8:17:
kaktus это имя пользователя
сам хеш $1$jbdsfj$ewryh4hferf444f3w - делится на несколько секторов, разделяемых $ таким образом : $id$salt$hashed. Id описывает алгоритм хеширования:
$1$ это MD5,
$2a$ это Blowfish,
$2y$ это Blowfish,
$5$ это SHA-256,
$6$ это SHA-512,
salt - соль, подробнее : https://andreyex.ru/linux/kriptograficheskie-hesh-funktsii/
hashed - выходное значение хеш функции
Далее 213 это дата последнего изменения пароля (в днях с 1 января 1970 )
Далее 3 минимально допустимое кол-во дней между сменами пароля
Далее 123 максимально допустимое кол-во дней между сменами пароля(через такое кол-во дней с момента установки пароля его необходимо обязательно сменить)
Далее 6 Кол-во дней, за которое пользователь получит предупреждение о смене пароля(см. предыдущий пункт)
Далее 8 Кол-во дней, в течение которых после истечения срока действия пароля учетная запись будет отключена.
Далее 17 Дата истечения срока действия учетной записи, выраженная в количестве дней с 1 января 1970 года.
Поправьте меня, если я где-то ошибся
Источники :
- комментарий Mike
- cyberciti.biz/faq/understanding-etcshadow-file