Привет (извините за многословный пост)
Я работаю над веб-приложением, в котором будут храниться некоторые личные данные пользователей.
Я рассмотрел различные способы шифрования данных, чтобы защитить их от вторжений, если база данных или веб-сервер были скомпрометированы, и считаю, что создание и хранение уникального «мастер-ключа», зашифрованного с помощью пароля, полученного для каждого пользователя, - лучший путь для моей установки.
Единственная проблема, которую я вижу, - это забытые пароли. В настоящее время пользователи могут сбросить забытый пароль, получив электронное письмо, содержащее ссылку с уникальным токеном, которая затем переходит в форму сброса пароля.
Моя идея состоит в том, чтобы добавить вопросы безопасности на страницу регистрации, которая будет использоваться для создания второго производного ключа, и использовать его для шифрования главного ключа пользователя. Ответы не будут храниться в базе данных, только ключ, полученный из них. Вопросы будут в большей степени основаны на мнении, чем личные или фактические.
Это будет означать, что существует две зашифрованные версии «мастер-ключа».
Эти вопросы будут добавлены в существующую форму сброса пароля и ответы, используемые для воссоздания производного ключа и расшифровки главного ключа. Это будет означать, что исходный мастер-ключ может быть зашифрован с использованием нового пароля.
Я прочитал много постов о том, как вопросы безопасности не должны использоваться для сброса паролей, но в этом случае это выглядит как дополнительный уровень безопасности.
Кто-нибудь видит какие-либо потенциальные проблемы с этим подходом или есть другие предложения?
Спасибо