我可以为加密电子邮件的其他收件人获取证书吗?

我可以为加密电子邮件的其他收件人获取证书吗?

我在使用 Outlook 工作时经常遇到此问题。有一个电子邮件线程正在进行,有人决定加密他们对群组的回复(有时合理,有时不合理)。现在我想回复所有人以继续对话,但我没有一半收件人的证书。

有没有办法获取加密电子邮件中所有收件人的公共证书,或者这根本不可能?显然,发件人需要所有证书来加密第一封电子邮件,但我不知道这些公共证书是否也包含在内,并且对所有其他收件人都可见。

答案1

该消息不携带收件人的实际证书——它仅包含足够的信息以允许他们识别自己是收件人,但很可能没有足够的信息供您或其他人下载它们。

例如,在 S/MIME 中,“RecipientInfo”字段仅包含证书的颁发者 + 序列号,或者证书的“主题密钥标识符”(公钥哈希值),但不是实际的公钥,更不用说实际的证书了。(见这里这里

(在理想的 OSI 世界中,颁发者 + 序列号足以通过 X.500 或 LDAP 从“目录”检索证书,但实际上并非如此。尽管如果收件人在同一个 Active Directory 系统中,他们的证书可以存储在他们的 AD 用户帐户对象中。

同样,在 OpenPGP 中,“公钥加密会话密钥”数据包仅包含特定加密子密钥这是解密消息所必需的——甚至不需要完整的指纹。

可以在各种公共密钥服务器上搜索密钥 ID,尽管它太短而无法用于严格验证(现在可以选择 64 位密钥 ID 来生成密钥)。

答案2

要将加密信息发送给一个或多个收件人,必须将每个收件人的公钥存储在其联系信息中。

您可以通过以下方式在 Outlook 中保存任何联系人的公钥:

  • 要求联系人向您发送一封签名的电子邮件。电子邮件上会出现一个指示符,表明该电子邮件已签名。

  • 右键单击发件人姓名,然后单击“添加到 Outlook 联系人”(即使他已经是联系人)

  • 输入新联系人的详细信息,然后单击“保存”。如果是现有联系人,请选择“是”以更新联系人详细信息。

注意:当您直接从签名的电子邮件中添加或更新联系人时,Outlook 将提取发件人的公钥并将其与联系人详细信息关联。现在,当您发送加密电子邮件时,它将知道要为收件人使用什么证书。

答案3

这取决于公钥/私钥对的所有者,每个人都可以自己选择如何分发公钥(参见这里)这里没有普遍的答案。

最坏的情况是公钥尚未公开发布,那么您必须向发件人索要他的/她的公钥。我过去常常将我的公钥附加在我的消息中 - 这有点(非常)不安全,因为它为不同类型的攻击留下了相当大的空间。因此,我不认为此选项用作自动密钥交换,但我不能 100% 确定。

我假设 Outlook 只会向知道公钥的人发送加密消息,而向其他人发送未加密消息(您可能可以通过某种设置告诉 Outlook 要做什么)。但我猜我从未使用过 Outlook 的这个功能。

注意:如果是工作环境,公钥可能由服务器处理,并集成到 Exchange 服务器中,从而集成到 Outlook 中,您可能需要咨询 IT 部门。或者直接询问发送加密电子邮件的人他们是如何做到的。

注2:假设你收到的邮件实际上是一封多密钥加密邮件(一些背景信息这里这里) - 如果没有注释的话就不是 100% 清楚了(也可能是共享私钥)

该答案根据评论中的新信息进行了编辑。

相关内容