本文主要介绍什么是DKIM以及如何添加。
前置概念
阅读本文前,您可能需要了解如下概念:什么是DNS?
DKIM(DomainKeys Identified Mail)是一种电子邮件验证方法,用于帮助检测电子邮件中的伪造和篡改行为,以此来提高邮件的安全性和信任度。这种技术允许发件人通过使用数字签名来证明邮件确实是由其声称的发件域名所发送,并且邮件的内容没有在传输过程中被篡改。
邮箱管理员登录管理后台,依次进入企业定制--域名管理--域名设置,点击查看配置方法。
点击复制,获取DKIM记录值。
操作步骤示例:
1、登录云解析DNS控制台;
2、点击域名,进入解析设置页面;
3、在解析设置页面中,点击添加记录按钮,创建TXT记录;
4、TXT记录的添加规则,主机记录为输入default._domainkey;
5、TXT记录值v=DKIM1; g=*; k=rsa; p=......(注意如下记录为一整行)。下图为添加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
头部中的选择器来找到正确的公钥。