【发布时间】:2019-07-09 08:55:50
【问题描述】:
我正在制作一个应用程序,其中聊天也是我使用 firebase 实时数据库的一项功能。尽管存储在 firebase 中的所有数据都是通过 SSL 进行的,但我希望即使是管理人员也无法看到这些消息。 我想通过使用公钥和私钥架构来实现端到端加密,但是将私钥存储在设备上并不好,因为在卸载手机时甚至在应用程序时都会创建新的私钥在其他设备中使用,以前的消息也不会被解密。
我也想过,如果新消息可以在生成时用新的私钥加密,并将以前的聊天记录存储在 google drive 或 iCloud 中作为备份,但由于这不完全是一个聊天应用程序,我认为这赢了不可行。
http://www.geero.net/2017/05/how-to-encrypt-a-google-firebase-realtime-database/
我也阅读了这篇文章,但关键还是在管理部门。
我应该如何进行?
【问题讨论】:
-
在设备上使用 AES 加密和解密消息。
-
谢谢。但这不会与其他设备同步。而且密钥必须发送给其他用户,如果我使用的是 firebase,我将不得不再次将其存储在数据库中。
-
我不懂
But that won't be in sync with other devices,您可以使用任何特定的密钥进行加密和解密。所以不需要存储在 Firebase 上 -
您可以使用Android keystore 来保存您的密钥,并且在逆向工程的情况下不会受到攻击
-
使用一个安全密钥的问题仅在于我作为开发人员以及管理人员将知道该密钥,因此也许将来有人可能会成为坏人。而且,如果我制作用户特定的密钥,那么最终我将不得不将它发送给我正在与之聊天的用户来解密它。现在,如果我必须发送它,我将不得不将它写入数据库。现在还假设我在解密该消息后删除了密钥,那么当用户再次安装应用程序时,我将如何解密整个聊天记录。
标签: android firebase encryption firebase-realtime-database