我可以configuration邮递员,以便它不会破坏S / MIME数字签名?

我们目前使用Mailman作为邮件列表pipe理器。 邮递员修改邮件的内容。 问题是,我们的一些用户正在发送数字签名的消息,修改使签名中断。 我已经看到了与Apple Mail,Outlook和Thunderbird的这种行为。

问题似乎是这样的:S / MIME签名的消息是通过Content-Type: multipart/signed; MIME内容types。 Mailman将其封装在Content-Type: multipart/mixed MIME Con​​tent-Type中。 没有一个邮件阅读器在里面mixed内部signed

我们将无法获得固定的客户。 有无论如何修改邮差,以便它没有这种行为?

Mailman可能被configuration为为每条消息添加一个页眉或页脚。 检查msg-headermsg-footer参数,这些参数可以在[Non-digest options]页面上访问。

确保pass_mime_types包含application/pkcs7-signature作为[Content filtering]部分中允许的types之一也很重要。

Mailmanconfiguration为添加页眉或页脚时,它通过创build一个新的MIME部分并将其与原始邮件的根部分连接来修改该邮件。 这个行为的推理在Mailman wiki (wiki.list.org)上有更完整的解释。

虽然原始的签名邮件仍然完好无损,但如果multipart / signed是根MIME部分,则似乎大多数邮件客户端只能正确解释SMIME签名。 作为一个testing,我从其中一个testing消息中删除了由邮递员插入的额外的MIME部分,并将其重新发送,并且签名被我的邮件客户端正确validation。

问题不在于缺乏电子邮件客户端的“智能”。

相反,这是一个安全问题。 请参阅错误578295 – S / MIME签名未在嵌套的MIME消息中显示/validation

引用:

如果邮件只有部分签名,则邮件不会被签名。 特别是在Thunderbird的情况下,如果我们声称只有部分签名的消息被签名,攻击者可以将签名内容附加到从未显示的消息,并在UI中显示签名消息。

因此,对于电子邮件客户端来说,对于部分签名的多部分消息,不显示或签名无效是正确的。