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