Рейтинг:0

Существуют ли какие-либо передовые практики/рекомендации за/против использования хеширования паролей на стороне клиента?

флаг tk

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

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

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

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

Maarten Bodewes avatar
флаг in
Пользователь также может поместить свой пароль для всеобщего обозрения на заметку. Вы не можете защититься от пользователей, которые преднамеренно нарушают безопасность, за которую они сами несут ответственность; вы можете только попытаться убедить их не делать этого.

Ответить или комментировать

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