如何安全地提供私钥以便以后解密?

时间:2016-04-28 13:45:56

标签: email security encryption openpgp smime

我正在开发一组应用程序,它们可以使用电子邮件消息在多个用户之间读取加密数据。

这很难......如果要通过单一服务器将电子邮件消息与实时聊天(IM)进行比较(对于实时聊天,我只需要使用TLS进行聊天)。因为我需要解密刚刚保存在远程服务器上的消息。

另外,由于我认为安全服务器不能保留私钥,因为用户想要确定,该事件供应方(后端)无法解密内容。私钥必须存储在某些东西上,比如智能卡(只有用户才有)。

对于电子邮件,我发现了两个选项:

  • S / MIME
  • OpenPGP的

所以......主要问题(对我而言)是如何分发私人数据,这将允许为收到加密电子邮件消息的用户解密电子邮件消息。

所以,问题是关于私钥的正确分发,现在我无法想象如何以安全的方式提供它。

2 个答案:

答案 0 :(得分:0)

私钥是私有。你不想转移他们。的从不。

相反,在向另一个方向分发 public 键方面重新考虑问题。那么你不必担心窃听(但你会想要关注真实性)。

答案 1 :(得分:-1)

正确的方法是使用非对称加密来保护数据。在这种情况下,您的用户会相互发送他们的公钥,他们可以以任何方式执行此操作。私钥仍保留在用户端。发件人使用收件人的公钥加密数据,收件人使用私钥解密数据。

如果您绝对必须使用对称算法和密钥来加密数据,那么您仍然可以使用非对称加密技术以加密形式提供对称密钥(实际上,这就是S / MIME和OpenPGP会为您做的事情)。

注意:当我谈论使用公钥加密时,我的意思是混合方案,当数据使用对称会话密钥加密时,然后使用公钥加密。在不采用对称算法的情况下,数据几乎不会直接使用非对称加密进行加密。