Нужно ли хранить соль пароля в своем собственном поле в базе данных? - PullRequest
5 голосов
/ 20 декабря 2010

Я провел много исследований, чтобы определить лучшие практики для хранения паролей для системы, которую я сейчас разрабатываю.До сих пор я решил, что собираюсь использовать хеш SHA512 с ГСЧ для генерации соли для каждого пароля (очевидно, лучшая практика для таблиц Rainbow и т. Д.).

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

Будет ли это вообще "помогать"?

Ответы [ 2 ]

5 голосов
/ 20 декабря 2010

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

Относительно соли; Вы можете захотеть сделать его достаточно длинным, чтобы предотвратить атаки радужного стола:

3 голосов
/ 20 декабря 2010

Храните отдельно.

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

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

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