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

#security #encryption

#Безопасность #шифрование

Вопрос:

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

Кроме того, инвесторы не разбираются в технологиях, и им нельзя предоставить ключ для использования, кроме имени пользователя и пароля.

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

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

Комментарии:

1. Предполагая, что вы используете ключ для шифрования содержимого вашей базы данных, вы могли бы хранить этот ключ для каждого пользователя в зашифрованном виде с использованием ключа, полученного из пароля пользователя (например, с использованием PBKDF2). Единственным недостатком было бы то, что сброс пароля больше не был бы возможен.

2. Отделите авторизации (возможность просмотра данных) от шифрования (преобразование данных). Вы никогда не сможете полностью защитить данные в этом случае; Администраторы и [вероятно] разработчики всегда будут иметь доступ. Нет технологии, которую вы могли бы использовать для решения проблемы. Вот почему АНБ решило сократить число администраторов на 90% после утечки Сноудена.