Если я cat /etc/shadow
смогу получить зашифрованные пароли root и моего пользователя.
Эти пароли одинаковы (я знаю, плохая безопасность) для каждой учетной записи, но в /etc/shadow
них отображаются разные зашифрованные строки.
Почему? Используются ли разные алгоритмы для каждого?
Ответы:
Отдельные пользователи означают отдельный идентификатор пользователя, поэтому в алгоритм будут включены отдельные хэши.
Даже пользователь с тем же именем, тем же паролем и созданный в то же время (с почти определенной вероятностью) получит другой хеш. Есть и другие факторы, которые помогают создать шифрование.
Если вы хотите посмотреть на быстрый пример здесь может объяснить это лучше.
источник
/etc/passwd
,/etc/shadow
это имя пользователя, а не идентификатор пользователя (который даже не упоминается в/etc/shadow
).Алгоритм такой же. Современные наборы теней используют подключаемые модули аутентификации (PAM), а PAM позволяет настроить один алгоритм хеширования. Все дело в «засолке», что означает случайный выбор пароля, чтобы получить тот эффект, о котором вы спрашиваете.
Соль - противодействие атакам по словарю, когда злоумышленник со словарем известных пар «пароль / хэш» пытается выяснить, соответствует ли данное значение хеша для неизвестного пароля значению хеша для одного из известных паролей.
Salting предотвращает это, поскольку другое значение соли приводит к другому значению хеша, поэтому не имеет значения, что пароль одинаков. (Тем не менее, это плохая практика, но по другим причинам.) Чтобы атака по словарю была успешной, злоумышленник должен иметь словари для всех возможных значений соли. По-настоящему случайная соль достаточного размера сделает вероятность успеха такой атаки незначительной.
Рекомендуемое чтение: Как пароли хранятся в Linux (Понимание хэширования с помощью утилит shadow)
источник
В теневом файле вы увидите число между $$ (скажем, $ 1 $ или что-то в этом роде). Он указывает, какой алгоритм хеширования используется вашей машиной. Определите алгоритм и посмотрите, как он работает. Например, $ 6 $ - это SHA 512, который спроектирован таким образом, что, даже если 2 человека имеют одинаковый пароль, хэш-дайджест их пароля будет другим.
источник