Почему значение соли в /etc/shadow говорит “rounds=…”?

Вопрос или проблема

У меня есть встроенное устройство на базе Linux с довольно современным ядром Linux. Однако с последним обновлением произошла странная вещь: когда пароль изменяется с помощью passwd для любого пользователя, значение соли в /etc/shadow заменяется на rounds=65536, так что запись будет выглядеть как root:$6$rounds=65536$6mA.... Я подозреваю, что это делает PAM. Есть ли у кого-то идеи, какая проблема с PAM может вызывать такое поведение?

Ваше обновление, вероятно, изменило конфигурацию PAM для усиления безопасности хешей паролей в вашем файле shadow. Также посмотрите этот справочник по усилению безопасности и документацию функции crypt:

Если злоумышленник получит доступ к файлу shadow, он может попытаться восстановить пароль из соли и хеша методом грубой силы, но это стало примерно в 13 раз сложнее, чем по умолчанию при 5000 раундах.

Эта информация должна храниться вместе с алгоритмом, солью и хешем, чтобы функция входа могла узнать, как в будущем проверить пароль этой учетной записи.

Число 65536 должно соответствовать вычислительной мощности вашего встроенного устройства; если оно слишком высоко, это займет много времени для проверки пароля, если слишком низко, какой-либо злоумышленник с большой вычислительной мощностью (например, ASIC) сможет легко подбирать хеш для поиска пароля.

Обновление:

С версии pam 1.6.0 опция раундов SHA-512 может быть настроена либо редактированием файла /etc/login.defs и установкой значения для параметра SHA_CRYPT_MAX_ROUNDS, либо редактированием /etc/pam.d/passwd и добавлением rounds с соответствующим значением. (Источник: https://wiki.archlinux.org/title/SHA_hashes – они также упоминают 65535, но его происхождение неясно, для получения дополнительной информации см. также связанную концепцию Функций производных ключей на основе пароля: https://en.wikipedia.org/wiki/PBKDF2 )

Ответ или решение

Вопрос о наличии значения "rounds=65536" в файле /etc/shadow касается механизма хеширования паролей в современных версиях Linux. Это значение указывает на количество раундов хеширования, используемого для преобразования пароля в хеш. Рассмотрим подробно, почему это значение может быть установлено на 65536 и как это связано с настройкой PAM.

Почему используется параметр "rounds=…"

  1. Усиление безопасности паролей:
    В современных системах безопасности сильное хеширование паролей стало критически важным для защиты учетных записей от атак. При увеличении числа раундов хеширования сложность подбора пароля возрастает. В данном случае 65536 раундов значительно усложняют возможность восстановления пароля для злоумышленника.

  2. Требования к аппаратным ресурсам:
    Параметр "rounds" определяет число итераций, которое функция хеширования выполнит над паролем. Чем больше раундов, тем больше времени требуется для вычисления хеша, что непосредственно влияет на скорость проверки пароля. 65536 раундов могут быть выбраны с учетом вычислительных возможностей устройства, чтобы обеспечить баланс между безопасностью и производительностью.

Как PAM влияет на хеширование

  1. Конфигурация PAM:
    Подсистема PAM (Pluggable Authentication Modules) отвечает за управление аутентификацией в Linux. Изменение конфигурации PAM или версии модуля PAM может автоматически "настроить" параметры хеширования, что и произошло после обновления системы.

  2. Параметры настройки:
    Начиная с версии PAM 1.6.0, в файле /etc/login.defs можно задать максимальное количество раундов для SHA-512, используя параметр SHA_CRYPT_MAX_ROUNDS. Также есть возможность настроить его, редактируя файл /etc/pam.d/passwd. Установка значения на 65536 может происходить как из-за изменений в этих конфигурационных файлах, так и по умолчанию, если модуль PAM был обновлен.

Преимущества использования "rounds=65536"

  • Устойчивость к атакам: Увеличив число раундов до 65536, система значительно затрудняет криптоанализ паролей. Это осложняет атаки с использованием обычной вычислительной техники и ASIC.

  • Совместимость с новыми стандартами: Современные рекомендации по безопасности требуют использования хеширования с множеством раундов, что делает конфигурацию с rounds=65536 наиболее актуальной.

Заключение

Наличие параметра "rounds=65536" в файле /etc/shadow связано с необходимостью повышения уровня безопасности паролей на вашем устройстве на базе Linux. Это изменение могло быть вызвано обновлением системы или изменениями в конфигурации PAM. Это подчеркивает важность адаптации системы к современным угрозам, обеспечивая при этом сбалансированное использование ресурсов устройства.

Если вы хотите настроить это значение дополнительно или откатить его, вам следует проверить конфигурацию PAM в соответствующих файлах и, при необходимости, внести изменения в настройки хеширования.

Оцените материал
Добавить комментарий

Капча загружается...