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