是否有任何建议的方法来加密Firestore中的数据?即使Firestore默认加密数据before it writes to the disk,管理员仍然可以在控制台中读取数据。我希望只有被允许解密的用户才能使数据可读。所以它在控制台中是不可读的。
我认为可能的一种方法是使用云功能但我无法找到如何在将数据保存到磁盘之前修改数据(beforeWrite hook)。
答案 0 :(得分:6)
控制Firestore(或实时数据库)中所有数据的所有访问权限的唯一方法是在之前对原始数据执行加密,甚至将其传递给客户端API或SDK执行写作。
在实际使用云功能提交存储之前,无法挂钩写入。只有在成功写入数据后,函数才会收到事件。
另外,请记住,如果您在数据到达API之前对其进行加密,您将无法使用该数据进行搜索和排序,因为它将不再以任何方式表示原始数据。您所能做的就是通过其唯一密钥访问文档/位置(假设密钥也未加密,或者加密ID通过另一个安全通道在双方之间共享(加密)。
答案 1 :(得分:3)
在将数据写入Firestore之前,您需要对客户端设备上的数据进行加密。当其他设备读取数据时,将其解密。
密钥管理是您需要花费一些时间来实现的:两台设备上的用户都需要在本地拥有私钥,其他用户可以使用公钥来加密消息。然后,您需要创建一个数据加密密钥来加密/解密聊天室中的消息。此数据加密密钥,您将使用参与用户的公钥进行加密。并且存储在Firebase中的所有密钥都已加密。
查看这两个示例应用以获取Firestore聊天应用示例:
大卫