2016-05-11 3 views
0

Я использовал пароль_hash ($ pwd, PASSWORD_BCRYPT), чтобы создать хэш и сохранить в таблице пользователя. Он будет использоваться для проверки входа.Использование такого же хеша пароля для активации учетной записи

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

ответ

0

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

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

Этот подход довольно прост и уменьшает риск отправки хеша пароля напрямую.

Смежные вопросы