当前位置: 首页 > 知识库问答 >
问题:

使用Firebase身份验证时,加密密钥是否可以存储在用户的Google帐户中?

宋奇希
2023-03-14

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

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

AES加密似乎是最好的解决方案,但通常的问题是将密钥存储在哪里。

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

虽然我理解要求对该理论进行分析与编程无关,这是一个有点开放性的问题,但我至少想了解该解决方案的可行性,以及它是否可能在编程方面实现。

非常感谢。

共有1个答案

徐阳炎
2023-03-14

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

通过请求<代码>https://www.googleapis.com/auth/drive.appdatascope在OAuth期间,应用程序可以在用户的Google驱动器内创建应用程序数据文件夹。用户数据的加密密钥似乎可以存储在那里,而不会被用户看到/篡改,至少是在用户拥有的情况下。

 类似资料:
  • 像这个问题,Google Photos API-身份验证,我对Google Photos API的身份验证很好奇。问题的一个答案说 您需要配置OAuth2.0凭据(客户端ID和机密),而不是API密钥。更多详细信息请参阅以下开发人员文档:https://developers.google.com/photos/library/guides/get-start#request-id Google P

  • 我正在使用C#的“Google. Apis. Bigquery. v2客户端库”。 我授权使用“服务帐户”搜索BigQuery(请参阅http://www.afterlogic.com/mailbee-net/docs/OAuth2GoogleServiceAccounts.html). 要创建X509证书,我使用Google开发者控制台中的p12密钥。然而,现在json键是默认的。我可以用它来代

  • 是否可以在Flatter中使用用户名和密码(而不是电子邮件和密码)实现Firebase身份验证?有没有办法用Firebase Auth插件来实现这一点?

  • 我的团队目前正在开发一个应用程序,使用Admin SDK在GCP中列出公司的域用户,用于入职和非入职目的。 我们使用一个服务帐户来完成这个任务,并且在Google Admin's advanced settings中添加了 作用域。管理SDK API被激活,我们可以在凭据区域中看到服务帐户。 当我们使用参数 和 调用https://www.googleapis.com/admin/director

  • 在Firebase中,我可以使用电子邮件、电话号码等创建一个帐户。但是,只使用ID和密码创建帐户是不可能的。有什么方法可以做到吗? 我尝试做的是: 允许用户使用电子邮件创建帐户- 这种方式的缺点:很难(或者可能不可能)设置Firest的规则。所以,我认为一些黑客可以读取或更改数据。 缺点:就我而言,我无法设置数据库的规则,所以我担心黑客会更改ID和密码等数据

  • 我们试图更好地保护API密钥(想想用来验证客户端到endpoint的令牌)。这将全部在我们的内部网络上,但我们仍然希望确定只有我们的移动客户端可以调用endpoint。 我想我们可以将API键放入Firebase远程配置参数中(在应用程序中内置一个无效的默认值)。但是,远程配置的Firebase文档说: 不要将机密数据存储在远程配置参数键或参数值中。可以解码存储在项目远程配置设置中的任何参数键或值