Как Crypt и Salt более безопасны, чем MD5, против атаки грубой силой? - PullRequest
5 голосов
/ 27 декабря 2011

Я прочитал на PHP.net, что MD5 бесполезен, и они предлагают использовать crypt + salt.

Итак, я пошел к описанию их функций и прочитал

<?php
$password = crypt('mypassword'); // let the salt be automatically generated

/* You should pass the entire results of crypt() as the salt for comparing a
   password, to avoid problems when different hashing algorithms are used. (As
   it says above, standard DES-based password hashing uses a 2-character salt,
   but MD5-based hashing uses 12.) */
if (crypt($user_input, $password) == $password) {
   echo "Password verified!";
}
?>

или в моемслучай примерно такой:

$stored_password=fetch_password($user);
if (crypt($_REQUEST['password'],$stored_password)===$stored_password) {
// ok
}

Итак, когда я вижу, что соль хранится в хешированном пароле и что вы используете этот хешированный пароль в качестве соли, я думаю, что Crypt + Salt не является более защищенным от грубой силына выходе (хакеры, которым удалось украсть хешированные пароли).Является ли он более безопасным?

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

Ответы [ 3 ]

2 голосов
/ 27 декабря 2011

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

MD5 - неисправный алгоритм из-за его уязвимостей столкновения .

0 голосов
/ 27 декабря 2011

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

Для пароля и MD5 злоумышленник может использовать предварительно вычисленные таблицы для MD5 PLUS, которые имеют преимущество MD5 в том, что он очень быстрый.

Для пароля и подсоленной крипты предварительно вычисленные таблицы были бы бесполезны, ПЛЮС крипта требует больше лошадиных сил, чем MD5

Существуют специально разработанные алгоритмы (Google bcrypt), у которых преднамеренно высокая вычислительная стоимость, чтобы продвинуться в этом еще дальше.

0 голосов
/ 27 декабря 2011

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

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

Это не поможет против традиционной атаки грубой силы.

...