Можно ли сохранить соль пользователя в той же таблице, что и хеш пароля?

Все в порядке и не бесполезно? Его можно сохранить в другой таблице или даже в другой базе данных.

Как вы думаете?

P.S. Для большей безопасности у меня есть постоянная соль "арахис". Это постоянное значение сохраняется в файле конфигурации (не в базе данных). Поэтому, если хакер хочет как-то взломать пароль, ему также нужен доступ к файловому серверу и базе данных.

Ответ 1

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

Если вы используете пароль salt + peanuts + password для создания хэша паролей, то я бы сказал, что ваш дизайн более безопасен, чем 80% систем там - то есть, достаточно безопасно, не выходя за борт с паранойей.


Обратите внимание, что если вы действительно храните пароль в восстановимой форме (зашифрованном или незашифрованном тексте), вы выбрасываете любую защиту из окна - весь смысл солей и хеширования заключается в том, что вы не сохраняя пароль в восстанавливаемой форме. Если вы храните пароль, это самое слабое звено вашей системы, которое тогда совершенно небезопасно. Чтобы все было ясно: таблица пользователя должна содержать только соль и хеш соли + арахис + пароль, никогда сам пароль. p >

Ответ 2

Вы хотите сохранить 1) соль для каждого пользователя и 2) результат пароля хеширования + соль). Вы не хотите хранить сам пароль.