我正在创建一个具有聊天功能的移动应用程序。由于我想让它安全,我将对消息和数据进行一些加密。我正在考虑使用端到端加密,但我遇到了一些问题。
每个用户都有私钥和公钥来加密和解密数据(非对称密钥加密),我想出了如何在它们之间交换这些密钥。这样端到端加密消息就完成了。
这是我的问题:
如果用户更换设备或重新安装应用程序,存储在客户端的私钥将丢失。我知道我可以为未来的消息创建新的密钥对,但是如何恢复旧的?
我认为将私钥存储在服务器中,但它根本不安全。我想在用用户密码加密后存储私钥,因为我不知道用户的密码,所以它会很安全,但是如果用户丢失他/她的密码并重新创建一个“丢失我的密码电子邮件”,它也会失败”。
另一个问题是,如果发生一些法律问题,我无法将聊天记录交给警方,因为我没有解密的消息,或者我不知道如何解密,因为我没有私钥。
那么,我应该如何处理这个问题呢?WhatsApp 在使用端到端加密时如何做到这一点?您可以在更换设备、更新或重新安装应用程序等后恢复 WhatsApp 中的旧消息...
我读了一些关于重新加密和重新发送来自其他用户的消息的内容。(接收者 - 发送者)但我不知道它会有多有效。
任何帮助都会很棒。感谢所有信息和帮助。