Хеширование + рассол электронной почты, используемые при аутентификации - хорошая или плохая практика? - PullRequest
0 голосов
/ 26 марта 2019

Является ли хеширование + подсчет адресов электронной почты и имен пользователей обычным делом? Как и в случае взлома данных, вы не сможете узнать, кто зарегистрирован в службе, поскольку каждое поле хэшировано + засолено? Есть ли в этом какие-то минусы, так как в интернете мало что из этого?

Ответы [ 2 ]

1 голос
/ 27 марта 2019

Это , а не стандартная практика - подсортировать и хэшировать имена пользователей / адреса электронной почты.

Это правда, что злоумышленник не сможет идентифицировать сохраненные имена пользователей / адреса электронной почты, если они были засолены и хэшированы перед хранением. Фактически, никто не сможет получить доступ к именам пользователей / электронным письмам (включая авторизованных пользователей, таких как системный администратор).

  • Звучит безопасно, так почему это проблема?

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

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

Кроме того, если вы солите имена пользователей, как вы будете предотвращать дублирование?

Имена пользователей должны быть уникальными. Если вы солите имя пользователя, у вас не будет возможности помешать нескольким пользователям использовать одно и то же имя пользователя.

  • Какие еще методы могут использовать разработчики для защиты информации?

Наиболее очевидным решением является шифрование базы данных. Хотя это немного выходит за рамки вашего вопроса, В Википедии есть хорошая статья на эту тему.

0 голосов
/ 26 марта 2019

Хэш и солит имена пользователей и адреса электронной почты не распространены по нескольким причинам:

Удобство использования

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

Безопасность

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

...