В настоящее время я работаю над проектом на PHP, и мне интересно, как сделать мою систему безопасной как можно сейчас. В настоящее время я использую password_hash
для хеш-паролей, а затем сохраняю их в своей базе данных. Что мне было интересно: пересматривает ли и повторно сохраняет новый соленый хэш в базу данных, повышая безопасность, или это просто иллюзия?Переписывает ли случайно соленый пароль при повышении безопасности входа?
ответ
Я не думаю, что это увеличит безопасность, нет. У вас есть два сценария риска:
- Крекер взломает сервер и остается там ненадолго. В этом случае пароли могут быть просто программно захвачены при входе в систему. Это требует гораздо меньших усилий, чем принудительные сильные алгоритмы хэширования.
- Крекер взломан, крадет копию базы данных, и в ответ системный администратор подключает защитное отверстие и быстро восстанавливает сервер из резервной копии.
Во втором случае взломщик имеет набор имен пользователей, адресов электронной почты и хэшированных паролей, которые они, возможно, захотят попробовать принудительно. Нет никакого преимущества, если бы эти хеши были созданы один или несколько раз.
Следует помнить, что мы пытаемся защитить здесь. Если безопасность веб-сайта была нарушена, есть эффект постукивания для пользователей, которые использовали одну и ту же комбинацию имени пользователя и пароля в других популярных сервисах. Основная причина хэширования и цель, которую злоумышленник использует в грубых паролях, - это выяснить, могут ли пользователи быть взломаны в другом месте (например, их социальные сети или банковские счета).
Именно поэтому мы рекомендуем людям не использовать пароли повторно, а вместо этого им следует использовать надежные пароли, хранящиеся в диспетчере паролей. Еще лучше, если люди могут использовать другое имя пользователя и/или другую электронную почту для каждой службы. Кстати, это удивительно простой в использовании электронной почты на обслуживание: если вы на GMail с адресом [email protected]
, просто сделать это:
[email protected]
электронной почты, конечно, должны быть сохранены в менеджере паролей - если вы забыли вы не сможете использовать функции напоминания пароля, и вы будете заблокированы, если служба не захочет принять какое-либо другое удостоверение личности. Несмотря на это, этот подход сильнее против эффекта пульсации использования службы, которая нарушена - слабая система напоминания пароля в другом месте сложнее использовать, если пользователи всегда используют разные адреса электронной почты.
Пользователи с собственным доменным именем могут сделать что-то похожее - настройте учетную запись электронной почты, чтобы «поймать все», а затем используйте любые псевдонимы, которые вам нравятся.
не говоря уже о том, что они могут отправлять фальшивые электронные письма с сбросом пароля, когда люди нажимают на вредоносную ссылку. – Tschallacka
Хорошая точка @ Майкл, в этот момент это скорее игра! – halfer
Я всегда думаю о самом простом решении, и на самом деле самым простым решением является просто попросить людей их пароли. 37% людей просто передадут свои пароли по телефону, если вы притворитесь, что работаете в компании, которой они являются. И в вашем сценарии вы знаете веб-сайт, брендинг и автоматический формат электронной почты, который компания отправляет ... так что давайте упростим для клиентов, зарегистрируем подобный домен для чтения, чтобы обманывать его, отправлять клиентов там в одном окружении и перенаправить их на исходный сайт с данными входа в систему. так просто ... – Tschallacka
Расчет нового хеша с новой солью каждый раз, когда пользователь входит в систему, будет не улучшить безопасность вашей системы.
Поскольку пароль будет таким же, и только соль будет изменена, взломщик с доступом к хешам может использовать грубую силу с одинаковой стоимостью. Изменение соли не улучшит безопасность, соль не секрет, она полностью выполняет свою работу, даже если она известна. Скрытие или изменение не добавляет никакой ценности (скрытие затруднено и есть лучшие методы, чтобы добавить секрет, чем скрыть соль).
Прежде всего, я не специалист по криптографии. У меня был класс криптографии в университете, но это не делает меня экспертом.
Причина соли заключается в том, что словарная атака против хэша не будет работать. Поскольку один и тот же пароль можно комбинировать со многими различными солями, существует много разных хэшей. Таким образом, невозможно иметь простой хеш для таблицы паролей, что было бы возможно без соли.
Таким образом, нет никакой дополнительной выгоды от переименования пароля с другой солью. Новая соль должна быть столь же случайной, как и старая соль, и поэтому так же безопасна.
Однако, если пароль не изменяется в течение длительного времени, он может быть хэширован с использованием алгоритма хеширования, который был хорош во время хэширования, но сейчас он беден. PHP has built-in functions especially for password hashing since PHP 5.5.
Рекомендуемый способ работы объясняется на веб-сайте PHP, но это сводится к следующему: используйте password_verify
для проверки пароля, используйте password_hash
для шифрования пароля. Используйте password_needs_rehash
, чтобы проверить, не зашифрован ли пароль с помощью безопасного хэша. Если это не так, переигрывайте или попросите пользователя изменить его (в зависимости от политики безопасности).
- 1. Как сравнить этот соленый пароль при входе пользователя в систему?
- 2. Переписывает ли GRANTPRIVILEGES существующего пользователя и пароль?
- 3. Проверьте имя пользователя и пароль соленый
- 4. гарантия безопасности Thread в повышении :: интрузивная
- 5. ClassCastException при повышении рейтинга
- 6. как зашифровать пароль на стороне клиента при реализации MD5halsh соленый алгоритм на стороне сервера
- 7. Соленый пароль Хеширование. Я делаю это правильно в среде ASP.NET?
- 8. Как хранить соленый хешированный пароль в базе данных
- 9. засоленный пароль безопасности
- 10. Как убрать соленый пароль из базы данных и пользователя auth?
- 11. пароль вопрос безопасности
- 12. Пароль сброса флака-безопасности
- 13. Пароль безопасности в сеансах
- 14. Страница входа в AngularJs - Возможные опасности безопасности
- 15. Php, обновите пароль без входа?
- 16. Записывает ли пароль для входа в систему asp.net пароль?
- 17. Пользовательский пароль hashed и соленый, пытаясь позволить пользователю сменить пароль на лицевой стороне?
- 18. Вход для входа в систему TYPO3 создает зашифрованный пароль
- 19. Сохраняет ли пароль для входа и пароля в сеансе?
- 20. Переписывает ли AutoMapper конфигурацию?
- 21. Весна безопасности пароль хэш + соль
- 22. Является ли соленый пароль и mySQL AES_ENCRYPT достаточным для хранения конфиденциальной информации?
- 23. Форма входа/пароль
- 24. Подтверждение входа и пароль
- 25. удаление/и т.д./пароль, libc.so случайно
- 26. Сайт Пароль безопасности и PHPbb3
- 27. Весенняя аутентификация безопасности, игнорирующая пароль
- 28. API входа в Google: принудительно введите пароль?
- 29. Права безопасности для входа пользователя
- 30. Пароль Изменение с одного места и безопасности
Да, это так. Зачем? Посмотрите, например, здесь: https://crackstation.net/hashing-security.htm – syck
Благодарим вас за отзыв, я обязательно его реализую! –
@syck: в какой части этой статьи вы ссылаетесь на людей? – halfer