Странное значение соли в /etc/shadow

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

У меня есть встроенное устройство на базе 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 )

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

Странное значение соли в /etc/shadow: причины и решение

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

Причины изменения соли

  1. Изменение конфигурации PAM:
    Данная проблема может быть связана с обновлением конфигурации PAM (Pluggable Authentication Modules). В версиях PAM, начиная с 1.6.0, появилась возможность настройки параметров хэширования, включая количество итераций (или "раундов"). Если вы видите запись rounds=65536, это указывает на то, что система была настроена на использование более сложной и защищённой ванной.

  2. Увеличение сложности хеширования:
    Значение 65536 соответствует значению раундов хэширования, использующих алгоритм SHA-512. Эта процедура значительно увеличивает время, необходимое для подбора пароля с использованием атак методом "грубой силы". Если злоумышленник получит доступ к файлу /etc/shadow, число раундов будет определяющим фактором в сроках взлома пароля.

Как работает хэширование с использованием параметра rounds

В процессах аутентификации, функция crypt отвечает за хэширование паролей. Хеширование выполняется с учетом алгоритма, соли и числа раундов. Чем больше раундов, тем более безопасным становится хэш, но увеличивается и время, необходимое для его проверки.

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

Настройка параметров PAM

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

  1. Изменение файла /etc/login.defs:
    Убедитесь, что у вас есть соответствующая строка для параметра SHA_CRYPT_MAX_ROUNDS. Например, можно установить:

    SHA_CRYPT_MAX_ROUNDS 5000
  2. Изменение конфигурации в /etc/pam.d/passwd:
    Можно добавить строку, содержащую параметр rounds, чтобы указать желаемое значение. Например:

    password requisite pam_unix.so sha512 rounds=10000

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

Заключение

Изменение в формате записи паролей в файле /etc/shadow на rounds=65536 — это не ошибка, а, скорее всего, шаг к улучшению безопасности. Тем не менее, важно контролировать это значение, чтобы оно соответствовало возможностям вашего устройства, а также потребностям в безопасности вашей системы. Обязательно следите за обновлениями программного обеспечения и документацией, чтобы обеспечить правильную настройку и защиту ваших данных.

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

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