Почему BCrypt особенно эффективен против радужных столов? - PullRequest
0 голосов
/ 13 июня 2018

Если у кого-то есть функции шифрования от BCrypt, он шифрует словарь паролей и сохраняет их на компакт-диске.Получает доступ к хешированным паролям в базе данных, разве они не могут?

Я надеюсь, что ответ - нет.Если так, то почему бы и нет?

1 Ответ

0 голосов
/ 13 июня 2018

Bcrypt, как и другие функции PBKDF, включает посолку и растяжение.Соление означает, что он добавляет некоторые дополнительные случайные данные с паролем.Соль публичная.Так, например, если моя соль - «f588d29a», а мой пароль - «пароль», то, на самом деле, я собираюсь хэшировать - «f588d29apassword» (это не совсем то, как это делает bcrypt, но это эквивалентно).

После засолки у вас будет хеш (больше за секунду), и будет вывод: "f588d29a, хеш ".Так что соль и хэш известны всем.Но теперь ваша радужная таблица с паролем не имеет смысла.Вам нужен "f588d29apassword", а также "aaaaaaaapassword", а также "aaaaaaabpassword", а также ... хэшированные пароли lot .Так что это значительно увеличивает количество времени и места, которое вам нужно.И более длинные соли могут сделать это произвольно тяжелым для атакующего за очень небольшую цену для защитника.Это та часть, которая делает радужные столы практически бесполезными.Даже если я найду несколько людей с одним и тем же паролем, их хэши будут отличаться, поэтому моя таблица не поможет.

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

...