【发布时间】:2019-05-01 15:43:51
【问题描述】:
我刚刚讨论了 S/MIME 和 PGP 的完整性。我想知道不同的部分(例如附件和正文)是分别签名/散列/指纹还是仅适用于生成的容器?我检查了一些 RFC 和网站,看起来哈希/签名仅适用于整个消息,对吗?
例如:如果从 smime.p7m 文件中提取了多个附件中的一个,是否会检查此特定文件的完整性(例如哈希码)还是签名和哈希仅涵盖完整的消息?
这对于 S/MIME 和 PGP 有什么不同吗?
最后,是否有一个很好的资源(除了需要阅读的 RFC 之外)可以显示这一点?
谢谢!
【问题讨论】:
-
在电子邮件中,您显然是在说,通常是邮件正文(作为一个洞)被签名,而不是每个附件。尽管在技术上是可行的,但我从未遇到过其他变体。但是,当然可以在任何文件附加到邮件之前对其进行签名,但这可能不是您所要求的。
-
是的,我说的是电子邮件。可以肯定的是,标准并没有预见到内容的每个部分都有一些单独的签名或散列?你是对的,在撰写信息之前进行一些手动唱歌不是我想要的。是否有任何来源可以证明单个附件或部分未单独签名/散列? PGP 怎么样?
-
有 RFC 5751 for S/MIME 3.2 和 RFC 4880 for the OpenPGP message format,但这些是您不想阅读的 RFC - 我可以理解,它们很痛苦。 RFC 5751 谈到了已签名和/或加密的 MIME 实体,因此据我了解,理论上,消息的某些部分可以单独签名,但我从未见过这样的实现。也许这仅仅是因为它没有多大意义。你心目中的要求是什么?
-
感谢@not2savvy,这是我在 RFC 中没有找到的。真的很难读。你的回答已经在帮助我了。关键是我实现了一个类似的容器文件,它最终被散列和签名。一位客户提到的问题是里面的文件没有单独散列。从我的角度来看,这对于诚信来说是没有意义的。它只会防止您的加密/解密或压缩功能出现错误。但这是一项 QA 工作(自动输入/输出测试)。我需要在 S/MIME 或 PGP 等众所周知的标准中找到类似的处理方式。也是为了证明我的观点。
-
如果您对容器进行签名,则无需单独签名。你是对的,这样做没有意义。我很确定这通常是 S/MIME 和 PGP/MIME 客户端倾向于签署整个消息而不是单个部分的原因。对于内联 PGP,他们只对消息文本进行签名,因为他们无法对整个消息进行签名,否则会破坏 MIME。
标签: digital-signature pgp smime