我正在开发一组应用程序,它们可以使用电子邮件消息在多个用户之间读取加密数据。
这很难......如果要通过单一服务器将电子邮件消息与实时聊天(IM)进行比较(对于实时聊天,我只需要使用TLS进行聊天)。因为我需要解密刚刚保存在远程服务器上的消息。
另外,由于我认为安全服务器不能保留私钥,因为用户想要确定,该事件供应方(后端)无法解密内容。私钥必须存储在某些东西上,比如智能卡(只有用户才有)。
对于电子邮件,我发现了两个选项:
所以......主要问题(对我而言)是如何分发私人数据,这将允许为收到加密电子邮件消息的用户解密电子邮件消息。
所以,问题是关于私钥的正确分发,现在我无法想象如何以安全的方式提供它。
答案 0 :(得分:0)
私钥是私有。你不想转移他们。的从不。强>
相反,在向另一个方向分发 public 键方面重新考虑问题。那么你不必担心窃听(但你会想要关注真实性)。
答案 1 :(得分:-1)
正确的方法是使用非对称加密来保护数据。在这种情况下,您的用户会相互发送他们的公钥,他们可以以任何方式执行此操作。私钥仍保留在用户端。发件人使用收件人的公钥加密数据,收件人使用私钥解密数据。
如果您绝对必须使用对称算法和密钥来加密数据,那么您仍然可以使用非对称加密技术以加密形式提供对称密钥(实际上,这就是S / MIME和OpenPGP会为您做的事情)。
注意:当我谈论使用公钥加密时,我的意思是混合方案,当数据使用对称会话密钥加密时,然后使用公钥加密。在不采用对称算法的情况下,数据几乎不会直接使用非对称加密进行加密。