Изменения алгоритма хэширования паролей по умолчанию и настроек umask

Новости непосредственно затрагивающие наш дистрибутив, либо форум.
Ответить
vall
Аватара пользователя
Администрация
Сообщения: 519
Зарегистрирован: 09.08.2022

#

2023-09-22 - David Runge

С shadow>= 4.14.0, алгоритм хэширования паролей Arch Linux по умолчанию изменен с SHA512 на yescrypt [1].

Кроме того, настройки umask [2] теперь настроены в /etc/login.defs вместо того , чтобы /etc/profile.

Это не должно требовать какого-либо ручного вмешательства.

Причины Yescrypt
Функция получения ключа на основе пароля (KDF) и схема хэширования пароля yescrypt были выбраны из-за их внедрения (легко доступного в libxcrypt , который используется pam [3]) и его большей устойчивости к попыткам взлома пароля чем SHA512.

Хотя победителем конкурса по хэшированию паролей [4] стал argon2 , этот еще более устойчивый алгоритм пока недоступен в libxcrypt [5][6].

Настройка yescrypt
В YESCRYPT_COST_FACTOR установка в /etc/login.defs в настоящее время не действует, пока pam не выполнит считывание его значения [7]. Если YESCRYPT_COST_FACTOR выше (или ниже), чем необходимое значение по умолчанию ( 5), его можно установить с помощью опции rounds модуля pam_unix [8] (т.е. в /etc/pam.d/system-auth).

Общий список изменений
  • yescrypt используется в качестве алгоритма хэширования паролей по умолчанию вместо SHA512
  • pam учитывает выбранный ENCRYPT_METHOD в /etc/login.defs и больше не переопределяет выбранный метод
  • изменения в пакетах filesystem (>= 2023.09.18) и pambase (>= 20230918) гарантируют, что umask устанавливается централизованно в /etc/login.defs вместо того , чтобы быть в /etc/profile

[1] https://www.openwall.com/yescrypt/

[2] https://man.archlinux.org/man/umask.1p

[3] https://wiki.archlinux.org/title/PAM

[4] https://www.password-hashing.net/

[5] https://github.com/besser82/libxcrypt/pull/113

[6] https://github.com/besser82/libxcrypt/pull/150

[7] https://github.com/linux-pam/linux-pam/issues/607

[8] https://man.archlinux.org/man/pam_unix.8


Оригинал новости
vasek
Сообщения: 358
Зарегистрирован: 31.08.2022

#

vall:С shadow>= 4.14.0, алгоритм хэширования паролей Arch Linux по умолчанию изменен с SHA512 на yescrypt [1].
... Это не должно требовать какого-либо ручного вмешательства.
Тогда, насколько понимаю, пока не сменишь пароль то в /etc/shadow старые пароли будут хранится с sha512, а новые пароли уже будут хэшироватся с yescrypt.
Хотя смысла перехода на yescrypt не вижу … все-равно имея физический доступ к компу можно зайти как root, сгениривав свой пароль, а при выходе удалить его ... то есть для спецов разницы нет.

Ошибки не исчезают с опытом - они просто умнеют

RusWolf
Аватара пользователя
Сообщения: 151
Зарегистрирован: 16.08.2022

#

vasek: все-равно имея физический доступ к компу можно зайти как root, сгениривав свой пароль, а при выходе удалить его ... то есть для спецов разницы нет.
Если система в LUKS просто так никто, ничего не сменит.

Arch Linux x86-64 на BTRFS

vasek
Сообщения: 358
Зарегистрирован: 31.08.2022

#

RusWolf:Если система в LUKS просто так никто, ничего не сменит.
Согласен, это на много сложнее .... пароль выташить с диска можно, но вот расшифровать его проблема (на обычном компе не получится).

Ошибки не исчезают с опытом - они просто умнеют

vasek
Сообщения: 358
Зарегистрирован: 31.08.2022

#

Уже все работает автоматом ... но, как и писал, только при создании нового пароля.
Смотрим что используется
grep '^ENCRYPT_METHOD' /etc/login.defs
ENCRYPT_METHOD YESCRYPT
Проверил (перед этим скопировал /etc/shadow в другое место) - сменил пароль ... в shadow уже появился yescrypt
Вернул на место … (будете экспериментировать, не забываем reboot)

Ошибки не исчезают с опытом - они просто умнеют

Nebulosa
Аватара пользователя
Сообщения: 24
Зарегистрирован: 10.08.2022

#

vasek:в shadow уже появился yescrypt
А как это понять?

Поменял пароль у пользователя, одна тарабарщина (в /etc/shadow) заменилась на вторую)
vasek
Сообщения: 358
Зарегистрирован: 31.08.2022

#

shadow string, в части кэша пароля, в общем случае имеет 4 части: $id$param$salt$hash
- id - идентификатор схемы хеширования (отображает алгоритм)
- param - параметры сложности
- salt - соль
- hash - результат хеширования пароля и соли
Смотрим, какой id имеем для root
sudo cat /etc/shadow | grep root | cut -c 6-8
$6$
id=6 --- это старый алгоритм, sha-512
Если был бы новый, yescrypt, то имели бы $y$

Уточнение - кэш пароля для sha-512 в нашем случае имеет вид $6$salt$hash, а для yescrypt - $y$j9T$hash , где j9T=param

Ошибки не исчезают с опытом - они просто умнеют

vall
Аватара пользователя
Администрация
Сообщения: 519
Зарегистрирован: 09.08.2022

#

После обновления пересоздал пароли в системе. Теперь вот такой вывод:
sudo cat /etc/shadow | grep root | cut -c 6-8
$y$

sudo cat /etc/shadow | grep user | cut -c 6-8
:$y
На всякий случай: user подставляем своё имя в системе.
Ответить