【发布时间】:2019-02-20 19:36:57
【问题描述】:
我有一个在 Firebase 网络上运行的应用,它使用实时数据库,并使用 Google 作为唯一的身份验证提供者进行身份验证。我希望数据只能由用户读取,因此虽然我了解实时数据库提供安全传输和服务器存储,但我不希望自己也能够在我的 Firebase 控制台中查看用户信息。
在用户设备上存储密钥的端到端加密并不是一个理想的解决方案,因为我希望用户能够跨多个设备访问数据。
AES 加密似乎是最好的解决方案,但通常的问题是密钥的存储位置。
我的理论
如果每个用户都有一个单独的数据加密密钥,我可以将其存储在他们帐户的一些“网络应用程序数据”部分,我可以将他们的密钥(加密)存储在他们的帐户中。因此,我的应用程序和服务器不存储他们的密钥,用户不需要明确存储或记住任何内容,但密钥仍然完全由他们拥有(通过他们拥有他们的 Google 帐户)。不过,我将负责存储密钥以解密我的数据库的密钥。
我的问题
虽然我理解要求对该理论进行分析并不是严格与编程相关并且是一个有点开放式的问题,但我至少想了解该解决方案的可行性,以及是否可以编程-明智的。
谢谢!
【问题讨论】:
标签: firebase security encryption firebase-realtime-database firebase-authentication