本文主要介绍什么是DKIM以及如何添加。
前置概念
阅读本文前,您可能需要了解如下概念:什么是DNS?
一、DKIM
DKIM(DomainKeys Identified Mail)是一种电子邮件验证方法,用于帮助检测电子邮件中的伪造和篡改行为,以此来提高邮件的安全性和信任度。这种技术允许发件人通过使用数字签名来证明邮件确实是由其声称的发件域名所发送,并且邮件的内容没有在传输过程中被篡改。
二、如何获取记录值
邮箱管理员登录管理后台,依次进入企业定制--域名管理--域名设置,点击查看配置方法。

点击复制,获取DKIM记录值。
不同域名的主机记录和记录值是不一样的,请前往后台获取自己对应域名的数据。
加密位数有1024和2048,根据不同域名管理平台要求选择适当的值,一般都支持,切换后原记录值失效,请确保使用最新记录配置到域名的DNS解析中。

触发生效条件:请切换到其他功能选项,再切换回域名管理功能,用以触发DKIM服务端加签生效。

三、如何添加
以阿里云域名解析控制台为例(其他服务商请登录对应控制台修改):
1、登录云解析DNS控制台;
2、点击域名,进入解析设置页面;
3、在解析设置页面中,点击添加记录按钮,创建TXT记录;
4、TXT记录的添加规则,主机记录为输入default._domainkey;
5、TXT记录值v=DKIM1; g=*; k=rsa; p=......(注意如下记录为一整行)。
下图为添加DKIM记录示例:
四、DKIM签名语法说明
当一封电子邮件被发送时,如果启用了DKIM,发送服务器会为邮件添加一个DKIM签名头部。这个DKIM签名包括了用于验证邮件的信息,其中关键的部分包括签名(使用私钥生成)和选择器(selector)。选择器是用来识别特定的DKIM公钥记录的一个唯一的字符串标识。
这里是一个典型的电子邮件中的DKIM签名头部示例:
DKIM-Signature: v=1; a=rsa-sha256; d=example.com; s=default; c=relaxed/relaxed;
h=from:to:subject:date:message-id; i=@example.com;
bh=...; b=...;在这个头部中:
v=1表示DKIM版本。a=rsa-sha256表示签名算法。d=example.com表示发送域。s=default表示用于签名的选择器。c=relaxed/relaxed表示规范化算法。h=from:to:subject:date:message-id表示被签名的头部字段。i=@example.com表示签名身份。bh=后面的部分是邮件正文的哈希值。b=后面的部分是签名本身。
当收信方服务器接收到这封电子邮件时,它会查看DKIM-Signature头部,找到d=(域)和s=(选择器)的值。这两个值告诉收信方服务器去哪个DNS记录中查找相应的公钥。
收信方服务器会根据发送域(d=example.com)和选择器(比如default)构造一个DNS查询,形如:
default._domainkey.example.com然后收信方服务器查询这个DNS记录,获取公钥,用这个公钥来验证签名b=的有效性。如果签名验证成功,那么可以认为这封邮件确实来自声称的域,并且在传输途中未被篡改。
如果一个域名有多个发送源,每个源都应该使用不同的选择器,这样收信方就可以通过每封邮件的DKIM-Signature头部中的选择器来找到正确的公钥。