Надежно хранить ключ шифрования в сеансе? - PullRequest
0 голосов
/ 26 марта 2019

У меня есть веб-приложение, которое требует, чтобы пользователь зарегистрировался и ввел некоторые личные данные.

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

Где лучше всего хранить расшифрованный мастер-ключ, чтобы пользователю не приходилось повторно вводить пароль каждый раз, когда к его данным требуется доступ?

На данный момент я думаю об этом:

  1. Пользователь входит в систему и пароль, полученный для расшифровки мастер-ключа
  2. Новый случайный ключ, сгенерированный и используемый для шифрования главного ключа
  3. Сохранить вновь зашифрованный главный ключ в таблице сеансов базы данных
  4. Сохранять новый сгенерированный случайный ключ в файле cookie в браузере пользователя, срок действия которого истекает в конце сеанса / выхода из системы.

Веб-приложение размещено сторонней организацией, поэтому у меня нет возможности создавать зашифрованные разделы и т. Д.

Кто-нибудь может предложить лучший способ сделать это?

Спасибо

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