我正在构建一个应用程序,我想有E2EE。我的问题在于私钥。我读到的大多数内容都说不要将数据存储在AWS服务器上,因为它不再是E2EE,而是一个后门。我不想创建一个后门,我希望用户只持有密钥。然而,如果用户同时从其他设备登录,他们无法检索他们的数据,因为私钥在原始设备上。
那么,有什么方法可以让用户能够从另一台设备登录,而不会在检索数据时遇到麻烦,也不会让他们的私钥有风险!
请考虑我是这个主题的新手,我正在使用Apple的cryptoKit:)谢谢!
您可以使用用户的id和密码散列(例如)来加密私钥并将其加密版本存储在服务器上。
- 使用用户id和密码(或其哈希值)在本地加密私钥
- 将此加密密钥发送到服务器以存储在那里
现在,当用户从其他设备登录时,可以使用用户的id和密码在本地检索和解密加密密钥。
因此,如果没有用户的凭据,就不可能解密和使用加密的密钥。然而,这也意味着如果用户更改了他们的密码,加密的密钥也需要用旧密码解密,然后用新密码重新加密。这是满足您要求的通常方法。