Преимущества безопасности заключаются во втором мнении, есть ли в моем плане недостатки хеширования и использования пользовательских паролей с помощью postgresql? - PullRequest
0 голосов
/ 14 апреля 2010

Вот мой план и цели:

Голы:

  • Безопасность с определенной степенью простоты и переносимости из базы данных в базу данных, потому что я не эксперт и могу все испортить, и мне не нужно просить многих пользователей сбрасывать свои пароли.
  • Легко стирать пароли для публикации "стертых" данных из тестовых данных. (например, я хотел бы иметь возможность использовать оператор postgresql для простого сброса всех паролей на что-то простое, чтобы тестировщики могли использовать эти данные тестирования для себя).

План:

Хеширование паролей

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

  • Используется глобальная соль, например, "90fb16b6901dfceb73781ba4d8585f0503ac9391".
  • Используется специальная учетная запись, с которой был создан исходный адрес электронной почты, например, "My.account@example.com".
  • Используется пароль пользователя, например, "password123" (я буду предупреждать против слабых паролей в форме регистрации)

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

Хеш сохраняется в базе данных.

Восстановление учетной записи

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

Дефекты

Есть ли какие-то недостатки с этим, которые мне нужно устранить? И есть ли лучшие практики для полного хеширования в postgresql?

1 Ответ

3 голосов
/ 15 апреля 2010

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

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