Хранение байтов хешированного пароля вместо символов

Мои последние разработки привели меня в мир безопасности хранения паролей, функций хеширования, ...

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

Есть ли у этой практики недостатки? Особенно с точки зрения безопасности.

+----+---------+--------------+--------------+---------------+------------+
| id | login   | password     | salt         | name          | lname      |
+----+---------+--------------+--------------+---------------+------------+
|  1 | myadmin | 0x8B624d85B1 | 0x248f1706f0 | Administrador | do Sistema |
+----+---------+--------------+--------------+---------------+------------+

person Lucas Noetzold    schedule 06.09.2018    source источник


Ответы (1)


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

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

person Eric Petroelje    schedule 06.09.2018
comment
Argon2, эта таблица носит иллюстративный характер. Я читал, что Argon2 слишком новый и поэтому не так безопасен, но я пытаюсь. - person Lucas Noetzold; 06.09.2018
comment
+1 за использование Argon2 (какой вариант? 2d? 2id ?. Он появился недавно, но он также был довольно подробно рассмотрен в рамках конкурса по хешированию паролей. - person Royce Williams; 06.09.2018
comment
2d, я запускаю целую кучу приложений на одном сервере, поэтому атака на мой сервер практически невозможна. - person Lucas Noetzold; 06.09.2018
comment
@LucasNoetzold - В будущем может стать труднее перейти на новый алгоритм. Формат строки обычно включает всю необходимую информацию, такую ​​как соль, коэффициент стоимости и подпись алгоритма, вам также придется сохранить эту информацию. Встроенные функции в основном обратно совместимы, что означает, что они могут проверять пароль, даже если они были рассчитаны с помощью более старого алгоритма. - person martinstoeckli; 07.09.2018