Intereting Posts
Бэкэйн кэша скриптов в памяти в zend framework Изучение OO-кодирования с помощью PHP, статические! = Выражения, но в руководстве PHP говорится, что все, что имеет значение, является выражением, смущенным Как исправить это: «Предупреждение: mysql_num_rows () ожидает, что параметр 1 будет ресурсом, boolean задан в //"? Список всех зарегистрированных переменных в представлении Laravel Использование классов ORM непосредственно из контроллера в MVC, плохая практика? Как вызвать функцию JavaScript из PHP? Обновление php mysql IP-адреса не может работать правильно PHP – Как объединить массивы внутри массива Как передать массив в highchart ?? Форма не принимает все входные строки в моей форме (имена входных имен отсутствуют ( Простейший способ профилировать скрипт PHP Установить часовой пояс в PHP и MySQL Обнаружение сайта выхода пользователя API USPS возвращает код ошибки 80040B19, а учетная запись находится в разделе «Производство» Обновление предыдущего сеанса Array Laravel

Вопросы безопасности софта PHP и MySQL

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

О чем беспокоиться?

Solutions Collecting From Web of "Вопросы безопасности софта PHP и MySQL"

Да. Теперь хакер может напасть на них (если он знает, как на самом деле вы соленые пароли).

Больше нечего волноваться – поскольку вы используете соленые пароли, более интеллектуальные атаки (кроме грубой силы) не могут применяться.

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

Если хакер попал в вашу систему и имеет доступ к базе данных, то ее «игра над», насколько это касается ваших пользователей! У хакера есть все, что он хочет, кроме паролей пользователей, которые не дают ничего, что у него уже не было, кроме оппонента, чтобы подделать доступ пользователя ->, который он может сделать очень просто, разместив свой собственный хэш и соль в базе данных!

Так что да MD5 плюс соль – это «достаточно хорошая» безопасность в этом случае.

Чтобы увидеть соль, он должен иметь исходный код, и когда у него есть это, есть по крайней мере некоторые вещи, о которых нужно беспокоиться – он увидит механизм, ответственный за создание пароля и способ их соления.

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

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

http://pbeblog.wordpress.com/2008/02/12/secure-hashes-in-php-using-salt/

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

Я не эксперт в этом вопросе, но это мое понимание:

Учитывая соль, злоумышленник может построить так называемый «стол радуги», это в основном обратная функция хэша. С помощью этой таблицы они могут искать зашифрованное значение в таблице и возвращать пароль ввода таким образом, что hash(password + salt) = encrypted value .

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

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

Дополнительная информация и, вероятно, лучший ответ

Если вы используете только одну соль для всех паролей, хакер может предварительно вычислить соленый радужный стол, что даст ему доступ ко всем паролям довольно быстро.

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

Вы можете еще больше замедлить его, используя заведомо медленный хеш, который замедлит грубое форсирование до такой степени, что может стать неосуществимым. MD5 – худший выбор, потому что он очень быстрый (и сломанный для загрузки). Семейство SHA также было разработано так, чтобы быть быстрым, но это лучший выбор. Bcrypt или вообще * семейство рыб достойно, но поддержка среди систем и языков различна. Будьте осторожны, чтобы использовать хэш- вариант * fish, так как они также используются для шифрования (могут быть отменены).

См. http://blog.phusion.nl/2009/08/13/securely-store-passwords-with-bcrypt-ruby-now-compatible-with-jruby-and-ruby-1-9/ .