2015-10-04 3 views
0

Я знаю, что новая функция хеширования PHP 5.5 не должна использовать указанную пользователем соль, но повысит ли она безопасность? Я делаю немного чтения и, насколько я понимаю, функция хэширования использует случайную соль каждый раз, когда она может извлекать из хеш-значения, когда приходит время проверить хэш. Но может ли быть какое-то преимущество для создания собственных солей и их использования? Любой ущерб?Повышает ли безопасность соли с помощью хеширования PHP 5.5

+0

Создание соли по своему усмотрению не принесет пользы. Что вы можете сделать, так это шифрование хэша с помощью серверного ключа, это может быть преимуществом в определенных ситуациях. Посмотрите на конец моего [учебника] (http://www.martinstoeckli.ch/hash/en/index.php), если вы заинтересованы. – martinstoeckli

ответ

2

Я знаю, что новая функция хеширования PHP 5.5 не должна использовать указанную пользователем соль, но увеличит ли она безопасность?

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

Без ущерба, кроме того, что больше кода = больше сложности = больше вероятности ошибок.

+0

Спасибо! Это помогает – Chris

+0

Я хотел бы добавить, что возможность указать свою соль была устаревшей в PHP 7, потому что мы не нашли ни одного случая, когда это могло бы быть полезно, но во многих случаях, когда людям удалось сломать вещи эффектно, используя это , – NikiC

+0

@NikiC - Приятно слышать, я думаю, что это очень мудрое решение. – martinstoeckli

0

У вас здесь несколько недоразумений.

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

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

Недостаток попыток быть умным и использовать собственный хэш - это осознание того, что вы, вероятно, не так умны, как эксперты по безопасности, которые написали доступные вам API. Серьезно, когда дело доходит до безопасности, вы не можете использовать это против своего ума. Человеческий мозг склонен к ошибкам; поэтому мы работаем в командах. И команда экспертов сделала для вас случайные хэш-генераторы. Серьезно, используйте их.

+0

Я должен быть немного более конкретным. Как функция PHP 5.5 проверяет пароли, если для каждого хэша используется случайная соль? – Chris

+0

Конечно, вы должны знать соль, чтобы выполнить проверку, она хранит открытый текст в хэш-значении. – martinstoeckli

+0

@martinstoeckli Итак, хеш просто имеет соль с текстом в тексте? Так что, возможно, это не совпадение, я когда-то видел слово «спам» в моем хэш-лоле. Если бы кто-то получил доступ к вашей базе данных, не могли ли они взять хэш, поместить его на свою страницу и попытаться переустановить его с помощью пароля_шиба? – Chris

Смежные вопросы