Root и мой пароль одинаковы

8

Если я cat /etc/shadowсмогу получить зашифрованные пароли root и моего пользователя.

Эти пароли одинаковы (я знаю, плохая безопасность) для каждой учетной записи, но в /etc/shadowних отображаются разные зашифрованные строки.

Почему? Используются ли разные алгоритмы для каждого?

user75027
источник
Я рекомендовал бы прочитать это как хорошую отправную точку. Короткий ответ: хэши засолены, а хеш без соли вовсе не хеш.
Борис Паук

Ответы:

10

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

Даже пользователь с тем же именем, тем же паролем и созданный в то же время (с почти определенной вероятностью) получит другой хеш. Есть и другие факторы, которые помогают создать шифрование.

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

Нет времени
источник
17
Просто упомянуть слово здесь: это называется солить хэш.
Ульрих Шварц
1
Отдельные пользователи не обязательно означают отдельные идентификаторы пользователей. Идентификаторы пользователей не имеют к этому никакого отношения. Первичный ключ /etc/passwd, /etc/shadowэто имя пользователя, а не идентификатор пользователя (который даже не упоминается в /etc/shadow).
Стефан Шазелас
Объяснение не совсем отвечает на вопрос. При чем тут вообще идентификатор пользователя? Кроме того, URL не проливает свет на ответ на вопрос.
контрмод
@ StéphaneChazelas Нет, отдельные пользователи означают отдельные идентификаторы пользователей. В базе данных пользователя может быть несколько записей с разными именами пользователей для одного и того же идентификатора пользователя, но все они являются одним и тем же пользователем, имеют общий контекст безопасности (владение файлом, сигналы и т. Д.) И отличаются только методами входа в систему ( например разные пароли и разные оболочки, но ведущие к одной и той же учетной записи).
Жиль "ТАК - перестань быть злым"
@ Жиль, я не согласен. У вас могут быть разные пользователи с одинаковым uid, но разными gid и дополнительными gid (посмотрите, как на членов в / etc / group ссылаются по имени, а не uid), разные параметры входа ... Это все реже и реже, особенно если учесть, что как sudo не очень хорошо с этим работает.
Стефан Шазелас
2

Алгоритм такой же. Современные наборы теней используют подключаемые модули аутентификации (PAM), а PAM позволяет настроить один алгоритм хеширования. Все дело в «засолке», что означает случайный выбор пароля, чтобы получить тот эффект, о котором вы спрашиваете.

Соль - противодействие атакам по словарю, когда злоумышленник со словарем известных пар «пароль / хэш» пытается выяснить, соответствует ли данное значение хеша для неизвестного пароля значению хеша для одного из известных паролей.

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

Рекомендуемое чтение: Как пароли хранятся в Linux (Понимание хэширования с помощью утилит shadow)

countermode
источник
0

В теневом файле вы увидите число между $$ (скажем, $ 1 $ или что-то в этом роде). Он указывает, какой алгоритм хеширования используется вашей машиной. Определите алгоритм и посмотрите, как он работает. Например, $ 6 $ - это SHA 512, который спроектирован таким образом, что, даже если 2 человека имеют одинаковый пароль, хэш-дайджест их пароля будет другим.

RNJ
источник