У меня есть веб-приложение, которое требует, чтобы пользователь зарегистрировался и ввел некоторые личные данные.
При регистрации генерируется мастер-ключ, который затем шифруется с использованием ключа, полученного из пароля, и сохраняется в базе данных. Когда пользователь входит в систему, мастер-ключ дешифруется и используется для дешифрования данных пользователя.
Где лучше всего хранить расшифрованный мастер-ключ, чтобы пользователю не приходилось повторно вводить пароль каждый раз, когда к его данным требуется доступ?
На данный момент я думаю об этом:
- Пользователь входит в систему и пароль, полученный для расшифровки мастер-ключа
- Новый случайный ключ, сгенерированный и используемый для шифрования главного ключа
- Сохранить вновь зашифрованный главный ключ в таблице сеансов базы данных
- Сохранять новый сгенерированный случайный ключ в файле cookie в браузере пользователя, срок действия которого истекает в конце сеанса / выхода из системы.
Веб-приложение размещено сторонней организацией, поэтому у меня нет возможности создавать зашифрованные разделы и т. Д.
Кто-нибудь может предложить лучший способ сделать это?
Спасибо