【问题标题】:Can encryption keys be stored in a user's Google account when using Firebase Auth?使用 Firebase 身份验证时,加密密钥可以存储在用户的 Google 帐户中吗?
【发布时间】:2019-02-20 19:36:57
【问题描述】:

我有一个在 Firebase 网络上运行的应用,它使用实时数据库,并使用 Google 作为唯一的身份验证提供者进行身份验证。我希望数据只能由用户读取,因此虽然我了解实时数据库提供安全传输和服务器存储,但我不希望自己也能够在我的 Firebase 控制台中查看用户信息。

在用户设备上存储密钥的端到端加密并不是一个理想的解决方案,因为我希望用户能够跨多个设备访问数据。

AES 加密似乎是最好的解决方案,但通常的问题是密钥的存储位置。

我的理论

如果每个用户都有一个单独的数据加密密钥,我可以将其存储在他们帐户的一些“网络应用程序数据”部分,我可以将他们的密钥(加密)存储在他们的帐户中。因此,我的应用程序和服务器不存储他们的密钥,用户不需要明确存储或记住任何内容,但密钥仍然完全由他们拥有(通过他们拥有他们的 Google 帐户)。不过,我将负责存储密钥以解密我的数据库的密钥。

我的问题

虽然我理解要求对该理论进行分析并不是严格与编程相关并且是一个有点开放式的问题,但我至少想了解该解决方案的可行性,以及是否可以编程-明智的。

谢谢!

【问题讨论】:

    标签: firebase security encryption firebase-realtime-database firebase-authentication


    【解决方案1】:

    Google Drive App Data 似乎提供了一种潜在的解决方案,使其成为一种可行的方法。 https://developers.google.com/drive/api/v3/appdata

    通过在 OAuth 期间请求 https://www.googleapis.com/auth/drive.appdata 范围,应用可以在用户的​​ Google 云端硬盘中创建应用数据文件夹。用户数据的加密密钥似乎可以存储在那里,而不会被用户看到/篡改,至少在他们拥有的情况下。

    【讨论】:

      猜你喜欢
      • 2019-04-14
      • 1970-01-01
      • 2019-08-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-04-18
      • 2020-07-23
      相关资源
      最近更新 更多