Почему не хранятся оригинальные пароли? - PullRequest
6 голосов
/ 24 июня 2010

Я новичок в веб-разработке.Могу ли я хранить оригинальные пароли пользователей?Я знаю, что хорошей практикой является хранение хешированного пароля с использованием соли, но почему бы нам не сохранить оригинальный пароль?

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

Ответы [ 5 ]

18 голосов
/ 24 июня 2010

Законность зависит от страны, в которой вы живете. Но есть и лучшие практики. И наилучшей практикой является шифрование паролей пользователей. Таким образом, если кто-то проникнет в вашу базу данных, он не сможет получить длинный список паролей и попробовать каждый из них в ebay, yahoo mail и gmail. Пользователи обычно используют одну и ту же пару имени пользователя и пароля для многих сайтов.

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

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

Обычно вы хотите хешировать пароли, а не шифровать их: это не нужно, и это сложнее в настройке. Вы также не должны восстанавливать пароль: вы просто восстановите их.

1 голос
/ 24 июня 2010

Я не знаю, законно ли это, но, тем не менее, я бы посоветовал против этого как минимум по трем причинам:

  1. Речь идет не только о том, как хакеры получают доступ к вашим паролям. Пользователи часто имеют один и тот же пароль для нескольких учетных записей (также они не должны иметь). Так кто сказал, что мы можем доверять вам или другим людям, которые имеют законный доступ к этим данным?
  2. Неважно, насколько безопасен ваш сервер. Абсолютной безопасности для сервера не существует. Вы должны учитывать, что это может быть взломано в конце концов. И не верь, что этого никогда не случится. Надежда на лучшее, но всегда планы на худшее!
  3. Я бы использовал любую простую и дешевую защиту, которую смогу получить, чтобы защитить не только свои данные, но и данные пользователей. И метод использования соли + хеша дешев. Это будет стоить вам 2 строки кода. Он
1 голос
/ 24 июня 2010

Представьте, что если Facebook взломали, он не зашифровал пароли пользователей.Сам Facebook имеет около 200 миллионов (?) Пользователей

Что если все 200 миллионов паролей были просочены в какую-то злую организацию?Многие пользователи используют тот же пароль, что и их письма или любые другие конфиденциальные онлайн-сервисы, такие как учет в банках.

Facebook никогда не будет в безопасности.Вы бы зарегистрировали там аккаунт?

0 голосов
/ 24 июня 2010

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

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

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

0 голосов
/ 24 июня 2010

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...