2015-05-19 3 views
1

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

Я злонамеренный хакер, и я хочу получить доступ к банковскому счету богатого человека. Я могу получить доступ к базе данных банка, у которой есть соль и хешированная строка на виду, что является функцией пароля пользователя и соли (f (пароль + соль)). Соль составляет fsd88. Затем я получаю радужный стол от хакера в Интернете. Отлично, поэтому я готов стать богатым и переехать в Швейцарию.

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

Что не так с моей ментальной моделью соли? Спасибо за прочтение.

+0

таблицы радуги не все различные возможных солей. – Barmar

+0

Да, но что, если у меня есть радужный стол со всеми возможными паролями на 10 символов. Я могу просто посмотреть хэш и удалить соль, чтобы получить пароль. – theamateurdataanalyst

+0

Вам нужны все возможные пароли из 10 символов, хэшированные всеми возможными солями. – Barmar

ответ

0

Соль добавляется перед хэш рассчитывается следующим образом:

$password = 'secret'; 
$salt = 'kU832hNWQ2122093uiue'; 
$passwordHash = hash($password + $salt); 

В этом примере был рассчитан не хэш пароля 'secret', вместо этого он является хэш 'secretkU832hNWQ2122093uiue'. Никто никогда не создаст радуги с такими паролями, если вы найдете предварительно рассчитанный радужный стол, он будет содержать хэш 'secret'.

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

Хорошо знать, что теперь я богат, привет из швейцарии :-)