什么是DKIM?如何添加?

本文主要介绍什么是DKIM以及如何添加。

前置概念

阅读本文前,您可能需要了解如下概念:什么是DNS?

一、DKIM

DKIM(DomainKeys Identified Mail)是一种电子邮件验证方法,用于帮助检测电子邮件中的伪造和篡改行为,以此来提高邮件的安全性和信任度。这种技术允许发件人通过使用数字签名来证明邮件确实是由其声称的发件域名所发送,并且邮件的内容没有在传输过程中被篡改。

二、如何获取记录值

邮箱管理员登录管理后台,依次进入企业定制--域名管理--域名设置,点击查看配置方法

image

点击复制,获取DKIM记录值。

说明

不同域名的主机记录和记录值是不一样的,请前往后台获取自己对应域名的数据。

image

三、如何添加

重要

DKIM通过DNS中的TXT记录配置实现,所以TXT需要首先生效。

此TXT记录中具体的“主机记录”和“记录值”均需要您联系您的邮件提供商提供,如下操作步骤内容仅供参考。

操作步骤示例

1、登录云解析DNS控制台

2、点击域名,进入解析设置页面;

3、在解析设置页面中,点击添加记录按钮,创建TXT记录;

4、TXT记录的添加规则,主机记录为输入default._domainkey;

5、TXT记录值v=DKIM1; g=*; k=rsa; p=......(注意如下记录为一整行)。DKIM下图为添加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头部中的选择器来找到正确的公钥。