17:37 Соль (криптография) | |
В криптографии , А соль представляет случайные данные, используемые в качестве дополнительного входа к односторонней функции , что хэши данные , A пароль или ключевая фраза . Соли используются для защиты паролей в хранилище. Исторически пароль хранился в незашифрованном виде в системе, но со временем были разработаны дополнительные меры безопасности для защиты пароля пользователя от чтения из системы. Соль является одним из тех методов. Новая соль генерируется случайным образом для каждого пароля. В типичном случае соль и пароль (или его версия после растяжения ключа ) объединяются и обрабатываются криптографической хэш-функцией , а полученный результат (но не исходный пароль) сохраняется с солью в базе данных. Хеширование допускает последующую аутентификацию без сохранения и, следовательно, риска раскрытия незашифрованного пароля в случае взлома хранилища данных аутентификации. Соли защищают от заранее вычисленной хэш-атаки. Поскольку соли не должны запоминаться людьми, они могут сделать размер хеш-таблицы, необходимый для успешной атаки, чрезмерно большим, не обременяя пользователей. Поскольку соли различны в каждом случае, они также защищают часто используемые пароли или тех пользователей, которые используют один и тот же пароль на нескольких сайтах, так как все экземпляры соленых хэшей для одного и того же пароля отличаются друг от друга. Криптографические соли широко используются во многих современных компьютерных системах, от учетных данных системы Unix до безопасности в Интернете . Соли тесно связаны с понятием криптографического одноразового номера . Повторное использование соли Фиксированная соль - это когда программист использует одну и ту же соль для каждого хешированного пароля. Хотя это сделает текущие радужные таблицы бесполезными (если соль выбрана правильно), если соль жестко закодирована в популярный продукт, соль может быть извлечена, и с помощью этой соли можно создать новый радужный стол. Использование одной фиксированной соли также означает, что каждый пользователь, который вводит один и тот же пароль, будет иметь одинаковый хэш (если хеш пароля также не зависит от имени пользователя). Это облегчает атаку нескольких пользователей, взламывая только один хеш. Короткая соль Если соль слишком короткая, злоумышленнику будет легко создать радужную таблицу, состоящую из каждой возможной соли, добавленной к каждому вероятному паролю. Использование длинной соли гарантирует, что радужная таблица для базы данных будет чрезмерно большой. Чтобы понять разницу между взломом одного пароля и его набора, рассмотрим один файл паролей, который содержит сотни имен пользователей и хэшированных паролей. Без соли злоумышленник может вычислить хеш (попытка [0]), а затем проверить, появляется ли этот хеш где-нибудь в файле. Вероятность совпадения, т. Е. Взлома одного из паролей с этой попыткой, увеличивается с увеличением количества паролей в файле. Если присутствуют соли, то злоумышленник должен будет вычислить хеш (соль [a], попытка [0]), сравнить с записью A, затем хеш (соль [b], попытка [0]), сравнить с записью B и скоро. Это побеждает «повторное использование» хэшей в попытках взломать несколько паролей. Соли также борются с использованием хеш-таблиц и радужных таблиц для взлома паролей. [3]Хеш-таблица - это большой список предварительно вычисленных хешей для часто используемых паролей. Для файла паролей без символов злоумышленник может просмотреть каждую запись и найти хешированный пароль в хэш-таблице или радужной таблице. Если поиск выполняется значительно быстрее, чем хеш-функция (как это часто бывает), это значительно ускорит взлом файла. Однако, если файл паролей солен, то хеш-таблица или радужная таблица должны содержать предварительно хеш-код «salt. Password». Если соль достаточно длинная и достаточно случайная, это маловероятно. Несоленые пароли, выбранные людьми, как правило, уязвимы для атак по словарю, поскольку они должны быть как короткими, так и достаточно значимыми, чтобы их можно было запомнить. Даже небольшой словарь (или его хешированный эквивалент, хеш-таблица) является значительной помощью для взлома наиболее часто используемых паролей. С технической точки зрения соли защищают от хеш-таблиц и радужных таблиц, поскольку, по сути, увеличивают длину и, возможно, сложность пароля. Если у радужных таблиц нет паролей, соответствующих длине (например, 8-байтовый пароль и 2-байтовая соль, фактически является 10-байтовым паролем) и сложности (не алфавитно-цифровая соль увеличивает сложность строго буквенно-цифровых паролей) соленый пароль, тогда пароль не будет найден. Если найдено, нужно будет удалить соль из пароля, прежде чем его можно будет использовать. Современная система теневых паролей , в которой хеши паролей и другие данные безопасности хранятся в непубличном файле, несколько смягчает эти проблемы. Однако они остаются актуальными в многосерверных установках, которые используют централизованные системы управления паролями для передачи паролей или хэшей паролей в несколько систем. В таких установках учетная запись root в каждой отдельной системе может рассматриваться как менее надежная, чем у администраторов централизованной системы паролей, поэтому стоит позаботиться о том, чтобы безопасность алгоритма хеширования паролей, включая генерацию уникальных солт-значений, была адекватны Веб-приложение обычно хранит в базе данных хэш-значение пароля пользователя. Без соли успешная атака SQL-инъекции может привести к легко взламываемым паролям. Поскольку многие пользователи повторно используют пароли для нескольких сайтов, использование соли является важным компонентом общей безопасности веб-приложений . Некоторые дополнительные ссылки на использование соли для защиты хэшей паролей на определенных языках (PHP, .NET и т. Д.) Можно найти в разделе внешних ссылок ниже. | |
|
Всього коментарів: 0 | |