Соленые орешки - почему литература считает соль известной Еве? - PullRequest
0 голосов
/ 01 июля 2011

Название говорит обо всем.Я не понимаю: почему вы не должны хранить свою соль в секрете, как парольИли я что-то не так понял?

Ответы [ 5 ]

2 голосов
/ 07 июля 2011

Соль рассматривается как общедоступная, прежде всего потому, что хранить ее в секрете не нужно.

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

Добавление соли означает, что вместо того, чтобы сделать это один раз, он имеетсделать это один раз для каждой возможной соли.Например, если вы используете 24-битную соль, он должен хэшировать каждое слово в словаре ~ 16 миллионов раз и сохранять результаты всех ~ 16 миллионов хешей.

Просто для аргументации,давайте предположим, что без соли злоумышленнику потребуется 8 часов для хеширования всех слов-кандидатов и 16 мегабайт для хранения результатов (хэши и слова, которые произвели каждое).Далее мы предположим, что хранилище поровну поделено между самими хешами и списком слов / имен / независимо от того, что их произвело.

Используя ту же 24-битную соль, это означает, что его время умножается натот же фактор ~ 16 миллионов.Его хранилище для слов, которые произвели хэши, остается тем же самым, но для самих хешей (снова) умножается на ~ 16 миллионов.По математическим расчетам они рассчитаны примерно на 15 000 лет вычислений и 128 терабайт памяти.

Короче говоря, без соли, атака по словарю доступна почти любому.Я мог легко поверить, что (например) кто-то позволил бы своему компьютеру работать всю ночь, чтобы сделать хэширование, просто чтобы натолкнуть хорошую апрельскую шутку над некоторыми из его коллег (легко поверить, потому что я видел, как это было сделано).

Когда вы приступаете к делу, это все игра чисел: атака по словарю не ставит на то, что у каждого пользователя будет пароль, который легко угадать, достаточно только будет для них найти хотя бы несколько открытых отверстий.Аналогично, обнародование соли допускает несколько более простую атаку, загружая соль для каждого хеша и выполняя отдельные атаки по словарю для каждого, используя известную соль для каждого.Предполагая, что в системе меньше пользователей, чем возможных хеш-значений, это более практичная атака.Тем не менее, он теперь настаивает на том, чтобы атаковать каждый пароль индивидуально, а не использовать один словарь не только для всей системы, но фактически для всех систем, которые он может захотеть атаковать, используя тот же алгоритм хеширования.

В заключение: соль может делать свою работу превосходно, даже если она обнародована.Одна из целей практически любой системы безопасности - минимизировать объем информации, которую необходимо хранить в секрете.Так как соль может работать, даже если она общедоступна, она обычно считается общедоступной.В практической системе вы, конечно, не пытаетесь опубликовать ее злоумышленникам, но вы не должны (в любом случае, не) полагаться на то, что она остается секретной.

1 голос
/ 02 июля 2011

Цель соли - сделать атаку на несколько зашифрованных паролей одновременно сложнее. Это не затрудняет атаку на один зашифрованный пароль.

Используя соль, злоумышленник должен проверить каждый кандидатный пароль в виде простого текста один раз для каждой другой соли.

1 голос
/ 02 июля 2011

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

0 голосов
/ 02 июля 2011

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

0 голосов
/ 01 июля 2011

Вы должны хранить свою соль в секрете по той же причине, по которой вы солите в первую очередь.

Хакеры могут и создали Радужные таблицы , с помощью которых они хешируют (md5, sha1,sha256, sha512 и т. д.) список из 1000 наиболее популярных паролей.

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

Ключ к тому, что они делают хак, - иметь эту радужную таблицу под рукой.Если вы добавили соль, их радужный стол бесполезен ... но если вы сделаете соль восточной, чтобы найти ее или поделитесь ею с другими, то хакеры могут заново построить новый радужный стол, используя вашу соль. (*)например, вы упростили им взлом.

(*) Обратите внимание, что это немного сложнее , чем описано, поскольку хакер может не знать, добавили ли вы соль в качестве префикса, суффикс, и т. д.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...