S/MIME 中的多重签名
是否可以使用 S/MIME 对 MIME 电子邮件 (RFC 2822) 进行多次签名,以便所有签名都是可验证和可检索的?
Is it possible to sign a MIME email (RFC 2822) multiple times using S/MIME, so that all signatures are verifiable and retrievable?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
S/MIME 格式支持多重签名。 S/MIME 主要是采用 Base64 编码的 CMS,以便适合文本 -只有电子邮件。在 CMS 中,只要有签名,实际上就有一些空间可以容纳任意数量的签名,所有签名都是根据主数据计算的。签名可以相互独立地验证。 CMS 还支持反签名,这是一个通过其他签名计算得出的签名(反签名实际保证的内容有些不清楚)。
但是,您可能很难找到支持该功能的电子邮件软件。图形邮件应用程序(例如 Thunderbird、Outlook Express...)只有一个“签名”按钮,不支持添加多个签名。我也不确定他们收到这样的电子邮件后有何反应。
从编程角度来说,这主要是使用 CMS 感知库的问题,该库允许您检查和创建任意 CMS 对象。显然,Bouncy Castle 就是这样一个库。
The S/MIME format supports multiple signatures. S/MIME is, mostly, CMS with Base64 encoding so that it fits in text-only emails. In CMS, whenever there is a signature, there is actually some room for an arbitrary number of signatures, all computed over the main data. Signatures can be verified independently of each other. CMS also supports counter-signatures which a signatures computed over other signatures (what counter-signatures actually guarantee is somewhat unclear).
However, you may have trouble finding an emailing software which supports that. Graphical mail application (e.g. Thunderbird, Outlook Express...) have a single "sign" button and do not support adding multiple signatures. I am not sure of how they react upon receiving such an email either.
Programmatically, this is mostly a matter of using a CMS-aware library which allows you to inspect and create arbitrary CMS objects. Apparently, Bouncy Castle is such a library.