【问题标题】:How to deliver private keys for later decryption safely?如何安全地传递私钥以供以后解密?
【发布时间】:2016-08-23 07:58:24
【问题描述】:

我正在开发一组应用程序,它提供了使用电子邮件在多个用户之间读取加密数据的可能性。

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

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

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

  • S/MIME
  • OpenPGP

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

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

【问题讨论】:

  • 我投票结束这个问题,因为这不是一个直接的开发问题,而是更多关于安全系统的一般架构的问题。 security.SE 可能更适合,但一些关于公钥/私钥和混合密码系统的基本阅读可能是一个好的开始。
  • 无论如何:通常,您不会创建私钥并分发它们。相反,客户端(客户端应用程序)执行并分发其公钥。
  • @JensErat 我记得由于 Diffie-Hellman 和其他相关工作。有一个不对称+对称的工作。客户端 A 和客户端 B 在它们之间交换某种随机数字,基于这些数字,他们创建一个公钥来加密通道通信。之后,客户端 A 对文件进行加密,并在消息中组合私钥 + 加密文件,然后用公钥加密消息。传输时,MiT 无法解密,之后客户端 B 用公钥解密数据,然后获取客户端 A 的私钥并解密文件。我说的对吗?
  • Diffie-Hellman 解决了另一个问题,如果只有服务器拥有私钥并且客户端只知道(受信任的)公钥/证书,则建立安全连接(对称/会话密钥)。 Diffie Hellmann 与异步消息传递无关(“稍后解密”)。
  • @JensErat 我明白了,谢谢。我真的需要更多的知识。

标签: email security encryption openpgp smime


【解决方案1】:

私钥是,private。您不想转移它们。 从不。

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

【讨论】:

    【解决方案2】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-09
      • 2016-10-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多