Зашифровав пароль в Spring Security, добавьте sha256ed пароль в UserDetailsImpl при входе в систему. - PullRequest
0 голосов
/ 06 сентября 2018

Что я пытаюсь сделать

Я работаю над приложением Password Manager и пытаюсь найти способ безопасного и удобного осуществления шифрования записей. У меня есть следующие мысли:

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

Моя идея

Моя идея - использовать SHA-256 пароля пользователя в качестве ключа для шифрования. Поток должен быть следующим:

  1. Пользователь входит в систему с открытым текстом.
  2. Его BCrypted пароль хранится в UserDetailsImpl.
  3. После того, как Spring удостоверится, что пароль совпадает с логином, я хочу добавить этот незашифрованный пароль с SHA-256 к зарегистрированным данным пользователя.

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

Проблема

Вот мои два вопроса:

  1. Можно ли это сделать весной (пункт 3)?
  2. Безопасен ли этот подход или, по крайней мере, не является анти-паттерном (использовать другой хеш, а не хранить пароль пользователя в памяти, когда он не нужен)?

1 Ответ

0 голосов
/ 06 сентября 2018

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

Одним из решений может быть предоставление токенов, подобных ubikey или похожих для каждого пользователя.Потеря ключа приведет к той же самой проблеме, хотя проиграть будет более непрактично!

Может быть, в конце нужно кому-то Доверять!

Здесь ссылка к вашей кодировке.

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