Подтвердите пароль + соль с другой солью - PullRequest
1 голос
/ 24 ноября 2011

Я храню учетные данные пользователя в базе данных с закодированным паролем: sha1 (pw + salt) и salt. Когда я пытаюсь войти в систему из клиентского приложения, я делаю то же самое только с другим значением соли, поэтому отправляю sha1 (pw + another_salt) и another_salt для авторизации.

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

1 Ответ

3 голосов
/ 24 ноября 2011

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

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

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

Как войти в систему от пользователя (пароль которого «безопасный пароль» + «жесткий» => sha1 («безопасный пароль»)), отправив что-то + «мягкий»(а затем протестируйте с помощью sha1 (что-то + "soft")).

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

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