У нас есть облачное приложение, работающее на серверах AWS, и мы ищем способ хранить там очень конфиденциальные пользовательские данные, не давая AWS возможности раскрывать наши данные правительству США (облачный акт). Поэтому мы не хотим использовать принадлежащие AWS сервисы для шифрования/дешифрования, такие как KMS или HSM. Мы хотим всегда иметь полный контроль над ключами, которые шифруют/расшифровывают данные.
Поэтому нам нужно зашифровать каждый ввод формы, который отправляется на сервер, прежде чем он достигнет сервера, а также расшифровать зашифрованные данные, поступающие с сервера, в браузере пользователя, использующего наше приложение. Мы говорим о входных данных формы, а также PDF-файлах и файлах изображений, которые будут загружены.Чтобы сделать его более сложным, мы также хотим иметь возможность «общаться» внутри приложения друг с другом в системе каналов в стиле slack. Все записи (и загрузки) также должны быть зашифрованы, прежде чем они попадут на сервер в США.
Мы обсудили обмен открытыми ключами, такой как PGP, с использованием токенов на основе сеанса и методов получения ключей, при которых главный ключ хранится на нашем собственном сервере.
Есть ли у вас какие-нибудь интересные намеки или мысли по этому поводу? Как бы вы шифровали/расшифровывали особо конфиденциальные данные приложений, живущих в облаках США? Как бы вы боролись с проблемой производительности здесь?
Спасибо за помощь!