使用Firestore进行端到端加密

ale*_*ndm 5 firebase google-cloud-functions google-cloud-firestore

有没有推荐的方法来加密Firestore中的数据?即使Firestore默认在写入磁盘之前对数据进行加密,管理员仍然可以在控制台中读取数据.我希望只有被允许解密的用户才能使数据可读.所以它在控制台中是不可读的.

我认为可能的一种方法是使用云功能但我找不到如何在将数据保存到磁盘之前修改数据(beforeWrite hook).

小智 8

在将客户端设备上的数据写入 Firestore 之前,您需要对其进行加密。当另一台设备读取数据时,对其进行解密。

密钥管理是您需要花一些时间来实现的:两个设备上的用户都需要在本地拥有私钥和其他用户可以访问的公钥来加密消息。然后您需要创建一个数据加密密钥来加密/解密聊天室中的消息。此数据加密密钥,您将使用参与用户的公钥进行加密。和所有密钥,存储在 Firebase 中,加密。

查看以下 2 个示例应用以获取 Firestore 聊天应用示例:

大卫


Dou*_*son 7

控制对Firestore(或实时数据库)中所有数据的所有访问的唯一方法是在原始数据本身甚至传递到执行写入的客户端API或SDK 之前对其进行加密.

在实际使用云功能提交存储之前,无法挂钩写入.只有在成功写入数据后,函数才会收到事件.

另外,请记住,如果在数据到达API之前对其进行加密,您将无法使用该数据进行搜索和排序,因为它将不再以任何方式表示原始数据.您所能做的就是通过其唯一密钥访问文档/位置(假设密钥也未加密,或者加密ID通过另一个安全通道在双方之间共享(加密).

  • 不完全正确,您仍然可以通过等于运算符的加密搜索词来搜索数据 (2认同)