Вопрос о сохранении паролей в базе данных - PullRequest
3 голосов
/ 11 августа 2011

Я сейчас читаю книгу по PHP / MySQL.В основном меня интересует хеширование паролей.Открытый текст преобразуется в «бред» с помощью md5 / sha1 или некоторой хэш-функции и сохраняется в базе данных.Хорошо, я понимаю это.Хакеры, даже если они получают доступ к базе данных, все еще сталкиваются с проблемой поиска открытого текста.

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

Ответы [ 6 ]

1 голос
/ 11 августа 2011

В тех случаях, когда пароль может быть отправлен вам обратно, он не хешируется - он (, надеюсь! ) зашифрован.Хеширование не является обратимым действием в широком смысле.После хеширования единственный способ сравнить что-либо с ним - это хешировать что-то таким же образом и посмотреть, является ли хеш-код одинаковым.Вы никогда не сможете «распаковать» его.

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

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

Лучший способ сохранить пароль в базе данных

Тревожная история:

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

0 голосов
/ 11 августа 2011

Вы НЕ БУДЕТЕ хранить любой пароль в виде обычного текста или любой другой формы симметрично зашифрованного пароля, если только вы не планируете быть столь же популярным, как SONY.

Первое:

http://www.engadget.com/2011/04/26/sony-provides-psn-update-confirms-a-compromise-of-personal-inf/

Тогда:

Как мне сохранить мой пароль?

ТАКЖЕ:

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

0 голосов
/ 11 августа 2011

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

Если пользователь забывает свой пароль, тогда предоставьте ему возможность сбросить свой пароль. И, конечно же, прежде чем дать ему такую ​​возможность, сначала убедитесь, что он подтвердил свою личность (возможно, секретные вопросы).

0 голосов
/ 11 августа 2011

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

0 голосов
/ 11 августа 2011

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

0 голосов
/ 11 августа 2011

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

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

...