为什么我会为DKIM选择简单而轻松的规范化?

时间:2011-12-28 19:25:34

标签: email dkim

DKIM支持两种规范化方案:轻松和简单。前者更宽松,允许中介邮寄者在有限的程度上修改电子邮件。

我能找到的唯一数据是survey of implementations,它显示绝大多数电子邮件发件人都使用标准和正文的轻松规范化。 (明显少用于身体的放松,但它仍然是绝对多数。)

DKIM规范说,如果支持DKIM,所有客户都必须支持规范化表单,因此这似乎不是一个主要因素。两种方案都允许中间人添加标题。我能说的唯一区别是处理标题名称(不是值)的情况和标题中的空白。鉴于此,似乎放松总是至少具有良好的可传递性,这是DKIM的目标。

(当然,如果我想实际上签署我的电子邮件来证明他们的内容,我会使用S / MIME和证书.DKIM严格来说是关于可传递性的,对吗?)

3 个答案:

答案 0 :(得分:9)

我认为简单的规范化可用作希望采用计算密集度较低的签名方法的发件人的选择,但可能会牺牲一些可传递性。复杂性的差异并不大,但它可能会对大型发件人产生明显的影响。

答案 1 :(得分:3)

  

“良好的可传递性,这是DKIM的目标...... DKIM严格关于可传递性,对吧?”

你似乎有一个错误的前提。 DKIM并非严格意义上的可传递性。 DKIM的目的是验证发件人DKIM RFC解释得非常好:

  

DomainKeys Identified Mail(DKIM)定义域级别   使用公钥加密和电子邮件的电子邮件身份验证框架   密钥服务器技术,以允许验证源和   邮件传输代理(MTA)或邮件的邮件内容   用户代理(MUA)。

DKIM消息通常不会比未签名消息更多或更少。例如,SpamAssassin为有效DKIM签名消息提供与未签名消息相同的消息。如果消息未通过DKIM验证,那么正如您所期望的那样,它得分会更差。

DKIM提供的是能够可靠地确定声称来自美国银行的信息是否真实存在的能力。如果它声称如此,但消息中的DKIM签名未通过验证,那么我可以知道该消息是伪造的,或者是被篡改的合法消息。在任何一种情况下,都不应该交付。

现在,我是否想要从该DKIM经过身份验证的域接收消息,以及消息中的内容是否可取是一个完全不同的问题,这对DK04的传送能力产生了更深远的影响。< / p>

答案 2 :(得分:0)

我认为差异与CPU负载没有太大关系-与通过SMTP生成,签名和发送消息所需的时间相比,差异将是微不足道的;无论如何,您都必须这样做;没有逃避阿姆达尔定律的情况。

relaxed规范化的最大收获在于健壮性。使用simple规范化,最微小的差异(即使那些不影响内容的差异)也可能导致验证失败。例如:

  • 使用LF而不是CRLF的邮件客户端(例如,就像Linux上的PHP的mail()函数一样)通过另一台服务器,将其转换为CRLF(应该如此)。
  • 一个中间邮件服务器,它将邮件头重新折叠为不同的行长
  • 垃圾邮件过滤器,可更改邮件标题标签的大小写,例如Content-Type-> content-type

这些都不会导致relaxed规范化的验证问题。因此,我想说的是,使用simple规范化保存不会使您做什么,而是通过{{ 1}}规范化,这就是为什么它更受欢迎的原因。