什么是 DNS DKIM 记录?
DKIM 记录是专门的 DNS TXT 记录,存储用于验证电子邮件真实性的公钥。
什么是 DKIM?
域名密钥识别邮件 (DKIM) 是一种电子邮件验证方法,有助于防止垃圾邮件发送者和其他恶意方冒充合法域名。
所有电子邮件地址都有一个 域名 ,即地址中“@”符号之后的部分。垃圾邮件发送者和攻击者在发送电子邮件时可能试图冒充域名,以进行网络钓鱼攻击或其他骗局。
假设 Chuck 想欺骗为 example.com 工作的 Alice,让她给他发送公司的机密信息。他可以给她发送一封看似来自“bob@example.com”的电子邮件,以骗取她的信任,让她以为他也在为 example.com 工作。
DKIM 与发送方策略框架 (SPF) 和基于域的消息身份验证、报告和一致性 (DMARC) 一起,使得攻击者以这种方式冒充域名的难度大大增加。没有通过 DKIM 和 SPF 的电子邮件会被标记为“垃圾邮件”,或者不被电子邮件服务器投递。如果 example.com 为其域名设置了 DKIM、SPF 和 DMARC,那么 Alice 甚至可能永远不会看到 Chuck 的恶意电子邮件,因为它要么进入了她的垃圾邮件文件夹,要么被电子邮件服务器完全拒绝。
DKIM 是如何工作的?
DKIM 有两个主要方面:DKIM 记录,它存储在域的 Domain Name System (DNS) 记录中,以及 DKIM 标头,它附加在所有来自该域的电子邮件中。
DKIM 使用基于公钥加密的数字签名方案,以验证电子邮件的来源,即它确实来自于从该域发送电子邮件的服务器。使用一对加密密钥:发件人用于签署邮件的私钥,以及接收者用于验证签名的公钥。接收者不能使用公钥来签署邮件,反之亦然。
电子邮件提供商生成公钥和私钥。他们将公钥交给域名所有者,后者将公钥存储在一个公开的 DNS 记录中,即 DKIM 记录。
所有从该域名发送的电子邮件都包含一个 DKIM 标头,其中包含一段使用私钥签署的数据:这被称为“数字签名”。电子邮件服务器可以查看 DKIM DNS 记录,获得公钥,并使用公钥来验证数字签名。
这个过程也确保了电子邮件在传输过程中没有被更改。如果电子邮件的标题或邮件正文被更改,数字签名将无法验证——就像药罐上的防伪封条。
什么是 DKIM 记录?
DKIM 记录存储了 DKIM 公钥,这是一串随机字符,用于验证使用私钥签署的任何内容。电子邮件服务器查询域名的 DNS 记录,以查看 DKIM 记录和其中的公钥。
DKIM 记录实际上是 DNS TXT(“文本”)记录。TXT 记录可以用来存储域名管理员想要与他们的域名相关联的任何文本。DKIM 是该类型 DNS 记录的多种用途之一。
下面是一个 DKIM DNS TXT 记录的示例:
名称 | 在提示下键入 | 内容 | TTL |
---|---|---|---|
big-email._domainkey.example.com
|
TXT
|
v=DKIM1; p=76E629F05F70
|
6000
|
名称
与大多数 DNS TXT 记录不同,DKIM 记录被存储在一个专门的名称下,而不仅仅是域名的名称。DKIM 记录名称遵循以下格式:
[selector]._domainkey.[domain]
selector
是由域名使用的电子邮件服务提供商发布的专门值。它包含在 DKIM 标头中,使电子邮件服务器能够在 DNS 中执行所需的 DKIM 查找。domain
是电子邮件域名。._domainkey.
包含在所有 DKIM 记录名称中。
为了查询 DKIM 记录,电子邮件服务器使用电子邮件服务提供商提供的 DKIM 选择器,而不仅仅是域名。假设 example.com 使用 Big Email 作为他们的电子邮件服务提供商,并且假设 Big Email 使用 DKIM 选择器 big-email
。example.com 的大部分 DNS 记录将被命名为 example.com
,但他们的 DKIM DNS 记录名称将为 big-email._domainkey.example.com
,这已在上面的示例中列出。
内容
这是列出公钥的 DKIM DNS 记录的部分。在上面的示例中,v=DKIM1
表示这个 TXT 记录应当被解释为 DKIM,公钥则是 p=
之后的内容。
记录类型和 TTL
这些是 DNS 记录中的标准字段。TXT
表示这是一个 DNS TXT 记录。“TTL”代表生存时间(以秒为单位),它表示该记录在需要刷新之前被视为有效的时长。DKIM 记录的 TTL 一般为几分钟。
什么是 DKIM 标头?DKIM 签名是如何工作的?
发送电子邮件的服务器使用电子邮件标题、电子邮件正文(实际上是电子邮件正文的哈希值——请阅读下文了解更多信息)和私钥来创建其数字签名。该数字签名作为 DKIM 标头的一部分附加在电子邮件中。
DKIM 标头是附加在电子邮件中的多个标头之一。大多数电子邮件应用程序在显示电子邮件时不会显示标头,除非用户选择某些选项。以 Gmail 为例,用户可以通过点击电子邮件右上方的三个垂直点,然后点击“显示原文”来查看电子邮件的标头。
下面是一个 DKIM 标头的示例:
v=1; a=rsa-sha256; d=example.com; s=big-email;h=from:to:subject;bh=uMixy0BsCqhbru4fqPZQdeZY5Pq865sNAnOAxNgUS0s=;b=LiIvJeRyqMo0gngiCygwpiKphJjYezb5kXBKCNj8DqRVcCk7obK6OUg4o+EufEbB tRYQfQhgIkx5m70IqA6dP+DBZUcsJyS9C+vm2xRK7qyHi2hUFpYS5pkeiNVoQk/Wk4w ZG4tu/g+OA49mS7VX+64FXr79MPwOMRRmJ3lNwJU=
v=
显示正在使用哪个版本的 DKIM。d=
是发件人的域名。s=
是选择器,接收服务器应使用它来查找 DNS 记录。h=
列出了用于创建数字签名 (b
) 的标头字段。在本示例中,使用的是发件人、收件人和主题标头。如果 Bob 使用 example.com 域名向 Alice 发送电子邮件,主题行是“Recipe for cheesecake”,这里使用的内容将是“bob@example.com” +“alice@example.com” +“Recipe for cheesecake” 。(该内容也将规范化,即形成标准化的格式。)bh=
是电子邮件正文的哈希值。哈希值是一个专门的数学函数的结果,称为哈希函数。包含该值是为了使接收电子邮件的服务器能够在整个电子邮件正文加载之前计算签名,因为电子邮件正文可能是任何长度,在某些情况下加载可能需要很长的时间。a=
是用于计算数字签名 (b
) 以及生成电子邮件正文哈希值 (bh
) 的算法。在这个示例中,使用的是 RSA-SHA-256(RSA 使用 SHA-256 作为数字签名的哈希函数,并使用 SHA-256 用于正文哈希)。b=
是数字签名,由h
和bh
产生,并使用私钥签名。
数字签名 (b=
) 允许接收服务器:1. 对发送服务器进行验证;2.确保完整性,即电子邮件没有被篡改。
接收服务器通过使用 h=
中列出的相同内容加上正文哈希值 (bh=
) 以及 DKIM 记录中的公钥来检查数字签名是否有效。如果使用了正确的私钥,并且内容(标题和正文)没有被改变,那么该电子邮件就通过了 DKIM 检查。
DKIM 与 DMARC 有什么关系?
DMARC 是一种建立在 DKIM 和 SPF 之上的电子邮件验证方法。DMARC 描述了如何处理未通过 SPF 和 DKIM 的电子邮件。SPF、DKIM 和 DMARC 结合起来,帮助防止垃圾邮件和电子邮件欺骗。与 DKIM 记录一样,DMARC 政策以 DNS TXT 记录的形式存储。
什么是 DNS DKIM 记录?相关推荐
- 邮件服务器DNS设置-----MX、SPF、DKIM记录详解
邮件服务器的DNS设置 为大家介绍两个验证spf记录的网站: http://www.kitterman.com/spf/validate.html http://www.microsoft.com/ ...
- 什么是 DNS SPF 记录?
SPF 记录是一种常用于电子邮件认证的 DNS TXT 记录.SPF 记录包括一个获授权从该域发送电子邮件的 IP 地址和域的列表. 发送方策略框架(SPF)记录是一种 DNS TXT 记录,其中列出 ...
- 什么是 DNS TXT 记录?
TXT 记录让域管理员能够在 DNS 服务器上留下注释. 什么是 DNS TXT 记录? DNS"文本"(TXT) 记录允许域管理员将文本输入到域名系统 (DNS) 中.TXT 记 ...
- 什么是 DNS DMARC 记录?
DMARC 是电子邮件安全的一个重要部分.DMARC 政策存储在 DNS TXT 记录中. 什么是 DMARC? 基于域的消息身份验证.报告和一致性 (DMARC) 是一种验证电子邮件的方法.DMAR ...
- DNS MX记录一定要放在A记录之前
DNS MX记录一定要放在A记录之前,否则和邮件后缀相匹配的域名没有指向邮件服务器,很有可能邮件服务器收不到邮件. DNS MX记录一定要放在A记录之前,否则和邮件后缀相匹配的域名没有指向邮件服务器, ...
- DNS常用记录类型和服务发现(DNS解析)
DNS DNS(domain name system)主要用来把人类可识别的域名解析成网络层的IP地址.这个过程中负责查询的组件称之为DNS Resolver,它会查询本地cache和远程的DNS s ...
- 加速更新DNS解析记录的方法
0x01 问题 之前域名使用国外免费CDN(Cloudflare)进行内容分发,后由于速度不佳,遂删除. 然后把腾讯云的域名DNS改回国内之后,还是不能生效. 但是! 删除之后CDN仍然存在,无论是从 ...
- 每日分享:DNS解析记录
每日分享:DNS解析记录 1.SOA记录(起始授权记录) 包含内容: 2.NS记录(标明的是当前DNS服务器) 包含内容: 3.A记录(IPV4的正向解析记录) 包含内容: 4.AAAA记录 (IPV ...
- 清除DNS 缓存记录
original link http://www.linuxfly.org/post/543/ 为了提高DNS 解析的记录,很多操作系统都会提供缓存DNS 记录的功能,但是,这可能会为测试DNS 服务 ...
最新文章
- 网站ui的配色有哪些需要注意的?
- js判断数据类型是哪种
- Python 学习 —— Numpy 、Pandas 傻傻分不清楚
- 一起来用Websocket(一)开篇 Websocket!Socket在HTML5复活
- 数据类型不匹配_笔记 | 自学Python 06:数据类型之列表
- 性能优化8--内存泄露
- JavaScript代码片段
- 怎么查找电脑中的流氓软件_玻璃丝网印刷过程中油墨出现问题怎么查找原因解决问题?...
- 翻译 - 元编程动态方法之public_send
- BZOJ 2821: 作诗(Poetize) [分块]
- Codeforces Round #FF (Div. 2):Problem A - DZY Loves Hash
- Android View onVisibilityChanged onAttachedToWindow onDetachedFromWindow
- C#局域网聊天软件 适合公司内部聊天 类qq旺旺 可实时监控桌面 商用
- qtdesigner设计表格_Qt Designer下的一些基础操作
- 我与计算机1000字大学,计算机系大学生助学金申请书(1000字)
- iOS 5 故事板进阶(3)
- echarts图表入门级教程(An introductory chart tutorial)
- win10 远程桌面和向日葵远控哪个好用
- Java Rest path_java – 具有多种类型的REST PathParam
- 单片机读取EEPROM(AT24C64)值为0xff问题解决方法
热门文章
- go html5 游戏,《CS:GO》Aleksib:现在选择换人将会毁掉我们
- CIFAR-10 数据集简介
- 2020.10.03读 Robust 6D Object Pose Estimation by Learning RGB_D Features
- web安全之暴力破解漏洞02
- CS3K.com Google面试题| 原子计数
- 衡量微型计算机内存性能指标,计算机性能指标看什么?
- php 公众号内h5支付宝支付宝支付宝支付宝支付,微信浏览器中支付宝wap支付和微信JSAPI公众号支付...
- Windows下的dvwa登录失败问题
- c语言中timers的用法,jQuery定时器使用方法,jQuery Timers
- java 策略模式和工厂模式区别_策略模式和工厂模式的区别