Skip to main content

2. Terminology and Definitions (术语和定义)

本节定义文档其余部分中使用的术语。

DKIM 旨在在 Internet Mail 服务内运行,如 [RFC5598] 中所定义。基本电子邮件术语取自该规范。

语法描述使用增强 BNF (ABNF) [RFC5234]。

本文档中的关键词 "MUST"、"MUST NOT"、"REQUIRED"、"SHALL"、"SHALL NOT"、"SHOULD"、"SHOULD NOT"、"RECOMMENDED"、"NOT RECOMMENDED"、"MAY" 和 "OPTIONAL" 应按 [RFC2119] 中所述进行解释。这些词只有在以全大写形式呈现时才具有规范性含义。

2.1. Signers (签名者)

代表域签署消息的邮件系统中的元素称为签名者。这些可以是 MUA (Mail User Agent)、MSA (Mail Submission Agent)、MTA (Mail Transfer Agent) 或其他代理(如邮件列表展开器)。一般来说,任何签名者都将以某种方式参与将消息注入消息系统。关键问题是消息必须在离开签名者的管理域之前进行签名。

2.2. Verifiers (验证者)

验证签名的邮件系统中的元素称为验证者。这些可以是 MTA、Mail Delivery Agent (MDA) 或 MUA。在大多数情况下,预期验证者将接近消息的最终用户(读者)或某些消费代理(如邮件列表展开器)。

2.3. Identity (身份)

一个人、角色或组织。在 DKIM 的上下文中,示例包括作者、作者的组织、处理路径上的 ISP、独立信任评估服务和邮件列表操作员。

2.4. Identifier (标识符)

引用身份的标签。

2.5. Signing Domain Identifier (SDID) (签名域标识符)

单个域名,是 DKIM 的必需有效负载输出,通过签名消息来引用声称对消息负有某些责任的身份。在第 3.5 节中指定。

2.6. Agent or User Identifier (AUID) (代理或用户标识符)

单个标识符,引用签名域标识符 (SDID) 代表其承担责任的代理或用户。AUID 包括域名和可选的本地部分。域名与用于 SDID 的域名相同或是其子域。对于 DKIM 处理,AUID 的域名部分仅具有基本域名语义;任何可能的所有者特定语义都超出了 DKIM 的范围。在第 3.5 节中指定。

请注意,AUID 的可接受值可以通过公钥记录中的标志进行约束(参见第 3.6.1 节)。

2.7. Identity Assessor (身份评估者)

邮件系统中消费 DKIM 有效负载的元素,该有效负载是负责任的签名域标识符 (SDID)。身份评估者专门致力于评估已传递的标识符。其他 DKIM(和非 DKIM)值也可以由身份评估者使用(如果可用)来提供更通用的消息评估过滤引擎。然而,这种额外活动超出了本规范的范围。

2.8. Whitespace (空白字符)

有三种形式的空白字符:

  • WSP 表示简单的空白字符,即空格 (ASCII 0x20) 或制表符 (ASCII 0x09) 字符。

  • LWSP 是线性空白字符,定义为 WSP 加上作为头字段折叠一部分的 CRLF (回车/换行) 序列。

  • FWS 是折叠空白字符。它允许由 CRLF 分隔的多行,后跟至少一个空白字符,被连接起来。

这些的正式 ABNF 是(WSP 和 LWSP 仅供参考):

WSP  = SP / HTAB
LWSP = *(WSP / CRLF WSP)
FWS = [*WSP CRLF] 1*WSP

FWS 的定义与 [RFC5322] 中的定义相同,除了排除了 obs-FWS。

2.9. Imported ABNF Tokens (导入的 ABNF 令牌)

以下令牌从其他 RFC 中导入,如所述。这些 RFC 应被视为权威。

以下令牌从 [RFC5321] 导入:

  • "local-part" (实现警告: 这允许引号字符串)
  • "sub-domain"

以下令牌从 [RFC5322] 导入:

  • "field-name" (头字段的名称)
  • "dot-atom-text" (在电子邮件地址的本地部分中)

以下令牌从 [RFC2045] 导入:

  • "qp-section" (引用可打印编码文本的单行)
  • "hex-octet" (引用可打印编码的八位字节)

参考说明: 请注意,[RFC2045] 中的 ABNF 不遵守 [RFC5234] 的规则,必须相应地进行解释,特别是关于大小写折叠。

本文未定义的其他令牌从 [RFC5234] 导入。这些是直观的原语,如 SP、HTAB、WSP、ALPHA、DIGIT、CRLF 等。

2.10. Common ABNF Tokens (常用 ABNF 令牌)

以下 ABNF 令牌在本文档的其他地方使用:

hyphenated-word = ALPHA [ *(ALPHA / DIGIT / "-") (ALPHA / DIGIT) ]
ALPHADIGITPS = (ALPHA / DIGIT / "+" / "/")
base64string = ALPHADIGITPS *([FWS] ALPHADIGITPS)
[ [FWS] "=" [ [FWS] "=" ] ]
hdr-name = field-name
qp-hdr-value = dkim-quoted-printable ; with "|" encoded

2.11. DKIM-Quoted-Printable (DKIM 引用可打印)

DKIM-Quoted-Printable 编码语法类似于 Quoted-Printable [RFC2045, 第 6.7 节] 中描述的: 任何字符都可以编码为 "=" 后跟来自字母 "0123456789ABCDEF" (不允许小写字符) 的两个十六进制数字,表示该字符的十六进制编码整数值。所有控制字符(值 < %x20 的字符)、8 位字符(值 > %x7F)以及字符 DEL (%x7F)、SPACE (%x20) 和分号(";",%x3B)必须编码。请注意,所有空白字符,包括 SPACE、CR 和 LF 字符,都必须编码。编码后,可以在任意位置添加 FWS 以避免过长的行;这样的空白不是值的一部分,在解码之前必须删除。不建议使用 [RFC2049] 中未列为 "mail-safe" 的字符。

ABNF:

dkim-quoted-printable = *(FWS / hex-octet / dkim-safe-char)
; hex-octet is from RFC2045
dkim-safe-char = %x21-3A / %x3C / %x3E-7E
; '!' - ':', '<<', '>>' - '\~'

参考说明: DKIM-Quoted-Printable 与 [RFC2045] 中定义的 Quoted-Printable 在几个重要方面不同:

  1. 输入文本中的空白字符(包括 CR 和 LF)必须编码。[RFC2045] 不要求这样的编码,也不允许编码作为 CRLF 换行符一部分的 CR 或 LF 字符。

  2. 编码文本中的空白字符被忽略。这是为了允许使用 DKIM-Quoted-Printable 编码的标签根据需要换行。特别是,[RFC2045] 要求输入中的换行符表示为物理换行符;这里不是这种情况。

  3. "软换行符" 语法("=" 作为行上最后一个非空白字符)不适用。

  4. DKIM-Quoted-Printable 不要求编码的行不超过 76 个字符(尽管可能有其他要求,具体取决于使用编码文本的上下文)。