我被困在使用Firebase Firestore实现端到端加密的设计水平上。
假设我将用户的私钥存储在他的设备上,当用户决定卸载应用程序并在以后安装它或丢失设备时,我该怎么办?
鉴于他的加密密钥仅存储在他的设备上,所有内容都丢失了,我是否只是创建新的私有密钥并将其先前的数据“标记”为不可访问?
我能想到的简单解决方案是将用户的私钥存储在数据库中,但这并不是真正的目标。
答案 0 :(得分:2)
如果用户丢失了私钥,则有两种选择:
这两个都是有效的选项,但是到目前为止,#2似乎是最常见的基于云的数据存储服务。
如果将恢复密钥和私有密钥存储在同一数据库中,则对数据库具有物理访问权限的任何人也都可以访问解密数据所需的密钥。所以这是一个坏习惯。
恢复服务最重要的一点是,您不要将私钥和恢复密钥与用户数据存储在同一位置。您可以使用完整的独立数据库(建议您完全考虑其他提供商),也可以使用任何其他物理上独立的机制。
答案 1 :(得分:1)
Here是您可能要参考的keybase.io解决方案。
简而言之