什么是 DKIM 以及它如何提高您的电子邮件安全?
已发表: 2023-08-18您是否曾经收到过来自可信来源的电子邮件,结果却是恶意网络钓鱼诈骗?
这就像收到一封看起来像是来自您的银行的信件,但这是一个巧妙的伪造,试图欺骗您放弃您的个人信息。 这就是域名密钥识别邮件 (DKIM)的用武之地。
就像信用卡上的全息印章或货币上的水印一样,DKIM 是一种电子邮件身份验证协议,可验证发件人的合法性并确保消息未被篡改。
借助基于域的消息身份验证、报告和一致性 (DMARC) 软件来保护您的电子邮件通信,有助于阻止可疑电子邮件活动并提高安全性。 DMARC 软件可帮助根据 DKIM 和发件人策略框架 (SPF) 标准对电子邮件进行身份验证。
什么是 DKIM?
DKIM 是一种电子邮件身份验证方法,旨在增强电子邮件安全性并帮助防止电子邮件欺骗和网络钓鱼攻击。 它使发件人能够使用私有加密密钥对电子邮件进行签名,从而将唯一的 DKIM 签名添加到电子邮件的标头中。 然后,收件人的电子邮件服务器通过域名系统 (DNS) 查找发件人的公钥来验证签名。
此过程有助于确保电子邮件的真实性和完整性,因为签名证明电子邮件在传输过程中没有被篡改,并且源自与所声称的发件人关联的 IP 地址。
DKIM 是现代电子邮件基础设施的重要组成部分。 当与 SPF 和DMARC等其他身份验证方法结合使用时,它有助于确保更安全、更值得信赖的电子邮件体验。
为什么 DKIM 很重要?
DKIM 是一种重要的电子邮件身份验证方法,可为最终用户提供与电子邮件安全相关的多种优势。
- 电子邮件真实性: DKIM 使用加密签名来验证发件人的域,使收件人的电子邮件系统能够验证发件人的身份并信任电子邮件内容。 这有助于防止未经授权的各方伪造电子邮件并代表域发送电子邮件。
- 电子邮件完整性: DKIM 机制通过对电子邮件的选定部分进行签名,确保电子邮件在传输过程中不被篡改。 然后,收件人的电子邮件系统能够验证签名部分的内容自离开发件人系统以来没有被更改。 这有助于保持电子邮件通信的可靠性。
- 电子邮件送达率:通过验证电子邮件并证明其完整性,DKIM 帮助电子邮件收件人区分合法电子邮件与垃圾邮件和网络钓鱼电子邮件。 这可以带来更好的邮箱过滤算法并提高合法发件人的投递能力。 具有有效 DKIM 签名的电子邮件更有可能进入收件人的收件箱,而不是被标记为垃圾邮件或被拒绝。
- 减少垃圾邮件和网络钓鱼攻击:实施 DKIM 作为电子邮件安全策略的一部分可以帮助收件人更有效地识别和阻止恶意电子邮件,从而降低垃圾邮件和网络钓鱼攻击的成功率。
- 与 SPF 和 DMARC 结合使用: DKIM 可以与其他电子邮件身份验证标准(例如 SPF 记录和 DMARC)一起使用,以创建全面的电子邮件安全生态系统。 这进一步增强了发件人的域声誉和电子邮件送达率。
总之,DKIM 至关重要,因为它有助于确保电子邮件的真实性和完整性,同时提高合法发件人的送达率并降低垃圾邮件和网络钓鱼攻击的有效性。
DKIM 的工作原理
DKIM 使用加密数字签名来验证发件人的域并确保电子邮件的完整性。 加密数字签名用于验证数据的真实性。 它的工作原理是使用收件人电子邮件服务器验证的数字签名来签署外发电子邮件。 此外,DKIM 会验证邮件在传输过程中尚未被修改。
以下是 DKIM 工作原理的分步概述:
- 发件人的电子邮件系统(邮件传输代理)为每封外发电子邮件生成唯一的 DKIM 签名。 这是通过以下方式完成的:
- 选择要签名的电子邮件标头和正文。
- 使用加密哈希函数对所选部分进行哈希处理。
- 使用发送者的域特定私钥对哈希进行加密。
- 生成的 DKIM 签名将添加到电子邮件标头,并将电子邮件发送给收件人。
- 当收件人的电子邮件系统收到电子邮件时,它会检查电子邮件标头中的 DKIM 签名。
- 如果存在 DKIM 签名,收件人的电子邮件系统将使用发件人的公钥(从发件人的 DNS 记录中获取)对其进行解密。
- 然后,收件人的电子邮件系统重新散列所选部分,并将新散列与从 DKIM 签名中提取的散列进行比较。
- 如果哈希值匹配,则表示电子邮件未被篡改并且源自发件人的域。 该电子邮件被认为是真实的,收件人的系统将继续发送。
- 如果哈希值不匹配或 DKIM 签名丢失,则电子邮件可能会被标记为可疑或根据收件人的电子邮件系统安全策略进行处理。
通过利用加密散列和公钥-私钥加密的组合,DKIM 提供了一种可靠的方法来验证发件人的域并维护电子邮件的完整性。
需要注意的是,用户必须将 DKIM 与其他电子邮件身份验证方法结合使用,以增强整体电子邮件安全性,并通过提供验证电子邮件真实性的方法来确保可信的电子邮件通信。
如何为您的域设置 DKIM
要为您的自定义域设置 DKIM,您可以按照以下常规步骤操作:
- 生成公钥-私钥对。 首先,使用您选择的工具(例如 OpenSSL)生成公钥-私钥对。
- 配置您的域的 DNS。 为您的域创建新的 TXT DNS 记录并在其中发布公钥。
- 启用 DKIM 签名。 在您的电子邮件软件中,启用 DKIM 签名并输入选择器(TXT 记录的前缀)和私钥文件的位置。
请务必注意,具体步骤和命令可能会有所不同,具体取决于您的电子邮件服务提供商和软件/平台。 有关更详细的说明,请参阅提供商提供的文档或遵循特定教程。
什么是 DKIM 记录?
DKIM 记录是在发件人域的 DNS 中创建的 TXT 记录。 它充当用于在电子邮件标头中生成 DKIM 签名的私钥的公钥副本。
DKIM 记录的主要用途是使收件人的电子邮件系统能够检索发件人的公钥,以解密和验证收到的电子邮件中的 DKIM 签名。
DKIM 记录通常具有以下结构:
- 领域。 链接到 DKIM 记录的域,通常采用 selector._domainkey.example.com 格式,其中“selector”是域所有者选择的用于区分多个 DKIM 密钥的标识符,“example.com”是发件人的域。
- 类型。 始终将 DKIM 记录设置为 TXT。
- 价值。 DKIM 记录的值包含 DKIM 密钥信息,包括版本、密钥类型、算法、公钥和其他可选元素。
通过在发件人的 DNS 中提供 DKIM 记录,收件人的电子邮件系统可以执行 DKIM 检查并验证收到的电子邮件的真实性和完整性,最终有助于提高电子邮件安全性并减少电子邮件欺骗和网络钓鱼攻击。
如何设置 DKIM 记录
设置 DKIM 记录很大程度上取决于您使用的电子邮件系统和 DNS 提供商。 不过,一般步骤如下:
- 生成 DKIM 密钥。 第一步是生成一对 DKIM 密钥(私钥和公钥)。 您通常在电子邮件系统上执行此操作,其中通常有用于 DKIM 密钥生成的工具或选项。 当您生成这些密钥时,私钥将安装在您的电子邮件服务器上,而公钥则用于在您的 DNS 中创建 DKIM 记录。
- 创建 DKIM 记录。 获取公钥后,您必须在域的 DNS 中创建 DKIM 记录。 DKIM 记录是 TXT 记录。 创建记录时,您必须指定选择器(密钥的标识符)和公钥。
DKIM 记录的格式通常如下所示:
Selector._domainkey.yourdomain.com ,其中选择器是您选择的标识符, _domainkey是记录的常量部分,yourdomain.com 是您的域。
TXT 记录的值包括 DKIM 版本、密钥类型和实际公钥,格式如下:
v=DKIM1; k=rsa; p=你的公钥
您在显示your_public_key 的位置插入实际的公钥部分。 - 发布 DKIM 记录。 使用正确的值完成记录设置后,您需要发布它。 这通常涉及保存记录或单击 DNS 系统中的“发布”按钮。
- 验证您的 DKIM 记录。 为了确保 DKIM 记录正常工作,DKIM 验证是关键。 许多电子邮件系统提供验证工具,您可以在其中检查 DKIM 记录的状态。
请记住,具体步骤和工具可能会有所不同,具体取决于您的电子邮件系统(如 Office 365、Google Workspace、Microsoft 等)和 DNS 提供商。 如果您遇到任何问题,最好参阅系统的具体文档或联系他们的支持人员。
什么是 DKIM 记录检查?
DKIM 记录检查是验证域是否设置了正确的 DKIM 记录的过程。 DKIM 记录的目的是存储用于验证私钥签名的消息的公钥。 大多数提供 DKIM 记录检查的在线工具都会验证域名、公钥的语法以及在相应域上设置的 DNS 条目。
MxToolbox提供的DKIM记录检查工具示例 针对域名和有效已发布 DKIM 密钥记录的选择器执行 DKIM 测试。 它通过允许签名域声明对传输中的消息的责任来测试电子邮件的域级数字签名身份验证框架。
总体而言,运行 DKIM 记录检查可以帮助识别电子邮件身份验证设置中的潜在问题,并帮助确保您的邮件安全地传递给收件人。 安全电子邮件网关软件 还可用于过滤垃圾邮件并防止恶意垃圾邮件发送者攻击最终用户。
什么是 DKIM 选择器?
DKIM 选择器是一个字符串,发送邮件服务器使用它来查找私钥以对电子邮件进行签名,接收邮件服务器使用它来查找 DNS 中的公钥以验证电子邮件的完整性。
选择器是域 DKIM 记录的一部分,由 DKIM-Signature 标头字段中的“s=”标记指定。 选择器有助于支持单个域的多个 DKIM 密钥记录,并且是有助于 DKIM 公钥识别过程的任意字符串。
什么是 DKIM 身份验证?
DKIM 使用一对加密密钥(一个公钥和一个私钥)来签署外发电子邮件。 公钥在组织的 DNS 记录中作为 TXT 记录发布,私钥由发送者保密。
使用 DKIM 发送电子邮件时,它会在邮件标头中包含数字签名。 接收电子邮件服务器可以使用发件人的公共 DKIM 密钥来验证签名。 如果签名不匹配,则意味着消息在传输过程中被修改或不是由合法发件人发送的。
用更专业的术语来说,DKIM 使用哈希函数生成电子邮件正文和标头特定部分的加密摘要,然后使用发件人的私钥对其进行签名。 然后将摘要和发件人的域名添加到消息标头中作为数字签名。
接收服务器可以从 DNS 记录中检索发件人域的公钥,并使用它来验证数字签名。 如果签名与摘要匹配,则电子邮件消息经过身份验证并且值得信赖。
通过验证传入电子邮件的 DKIM 签名,组织可以确保其域发送的电子邮件成功送达,并防止电子邮件网络钓鱼和欺骗攻击。
什么是 DKIM 签名?
DKIM 签名是发件人的电子邮件系统在 DKIM 电子邮件身份验证过程中创建的唯一的加密字符串。 签名的主要功能是验证发件人的域并确保电子邮件在发件人和收件人之间传输过程中的完整性。
使用 DKIM 发送电子邮件时,发件人的电子邮件服务器会在邮件中附加数字签名。 该签名是使用加密算法和发件人域唯一的私钥生成的。 与该私钥对应的公钥被存储为 DNS 记录。
当收件人的电子邮件服务器收到电子邮件时,它会通过从发件人的 DNS 记录中检索相应的公钥来检查 DKIM 签名。 然后,服务器使用该公钥来解密签名并验证其真实性。 如果签名匹配,则意味着电子邮件自发送以来未被更改或篡改。 DKIM 签名还提供有关发送电子邮件的域的信息。
总之,DKIM 签名是验证电子邮件的真实性和完整性的数字签名。 它有助于防止电子邮件篡改并确保电子邮件确实是由所声明的域发送的。
如何验证电子邮件签名
要验证 DKIM 签名,接收电子邮件服务器需要遵循以下常规步骤:- 检索 DKIM 公钥:电子邮件服务器使用传入电子邮件中 DKIM 签名标头中指定的选择器从 DNS 记录中检索发件人的 DKIM 公钥。
- 检索邮件标头和正文:电子邮件服务器从传入电子邮件中提取邮件标头和正文。
- 重新计算摘要:电子邮件服务器使用 DKIM-Signature 标头中指定的哈希算法计算邮件正文的哈希值。
- 验证签名:电子邮件服务器通过使用检索到的公钥解密签名并将结果与重新计算的摘要进行比较来验证签名。 如果匹配,则该电子邮件被认为是真实且值得信赖的; 否则,它可能表明它在传输过程中被修改或由未经授权的发件人发送。
请务必注意,用于验证 DKIM 签名的特定命令和库可能会有所不同,具体取决于您使用的编程语言和平台。 您可以找到用于验证 DKIM 签名的库和工具,例如适用于 Python 的 DKIMpy 和适用于 .NET 的 DKIMVerifier。
此外,建议检查其他电子邮件身份验证机制,例如 SPF 和 DMARC,以提供更全面的电子邮件安全方法。
DKIM 与 SPF 与 DMARC
DKIM 和 SPF 是两种类型的电子邮件身份验证协议。
DKIM在电子邮件中添加数字签名,以验证邮件不仅是从声称的域发送的,而且邮件本身在传输过程中没有被更改。
另一方面, SPF的工作原理是根据给定域的授权发送服务器列表来验证发送邮件服务器。 如果服务器未经授权,接收服务器有几个选项来处理可疑电子邮件。
另一方面, DMARC用于利用 DKIM(以及 SPF)执行的验证过程,并允许电子邮件发件人指导电子邮件收件人如何处理身份验证失败的消息。 具体来说,DMARC 策略定义电子邮件接收者应如何根据既定的身份验证标准(例如 DKIM 和 SPF)评估传入邮件,以及如果电子邮件未通过这些检查则应采取哪些操作。
因此,虽然 DKIM 主要用于发件人身份验证,但 DMARC 允许域所有者指定收件人应如何处理身份验证失败的电子邮件,从而提供额外的安全层。 通过部署 DKIM 和 DMARC,域所有者可以显着降低其域被用于网络钓鱼和欺骗攻击的风险,并提高电子邮件的送达率。
前 5 名 DMARC 软件
DMARC 是一种技术规范和电子邮件身份验证协议,旨在使电子邮件域所有者能够保护其域免受未经授权的使用,例如电子邮件网络钓鱼和欺骗攻击。
要启用 DMARC,域所有者在其 DNS 记录中发布 DMARC 策略,指示应使用哪些身份验证方法(例如 SPF 和/或 DKIM)来验证传入电子邮件,以及电子邮件接收者应如何处理未通过验证的邮件。验证检查。
有多种可用的 DMARC 软件解决方案(付费和免费),可帮助组织实施 DMARC 策略并提供有关各个电子邮件提供商的电子邮件真实性的详细报告。
5 大 DMARC 软件解决方案
- DMARC 报告
- 瓦利邮件
- 易DMARC
- DMARC上
- 自动SPF
*这些是 G2 2023 年夏季网格报告中排名前 5 的 DMARC 软件解决方案。
DKIM:常见问题
问:我可以有多个 DKIM 记录吗?
答:是的。 用户可以在 DNS 中拥有多个 DKIM 记录。 每个 DKIM 密钥都与添加到签名中的不同 DKIM 选择器相关联。 这使得接收者能够了解哪些密钥用于验证。
问:什么是 Gappssmtp?
答: Gmail 简单邮件传输协议 (SMTP) 或 Gappssmtp 是 Google 提供的电子邮件发送协议。 它是通过互联网共享电子邮件的标准协议。 Gappssmtp 帮助配置电子邮件应用程序或服务器设置,以确保电子邮件可以通过 Gmail 服务器发送,同时保留“发件人”地址作为发件人的域。
Gappssmtp 确保安全性和可靠性,无需单独的服务器。 使用以下内容设置服务器:
SMTP 服务器:smtp.gmail.com SMTP 端口:587 加密:TLS(传输层安全)
撰写电子邮件时,您可以将“发件人”地址设置为您自己的域(例如,[email protected])。 当收件人收到电子邮件时,尽管它是通过 Gmail 服务器发送的,但看起来就像是直接从您的域发送的一样。
问:运行 DKIM 是否需要证书?
答:不需要。运行 DKIM 不需要证书。 它为用户提供了一种快速创建、设置或销毁密钥的方法。
问:如何测试 DKIM 是否配置正确?
答:添加 DKIM 后,必须使用在线 DKIM 分析器对其进行验证。 在线提供各种免费的 DKIM 分析器。 检查验证的另一种方法是将测试电子邮件发送到 Gmail 或 Yahoo,以验证电子邮件是否带有 DKIM 签名。
为此,请单击发件人姓名下方的三角形图标来展开电子邮件标题。 如果域名显示为“发送者”和“签名者”,则电子邮件配置正确。
问:DKIM 是否确保电子邮件具有端到端加密?
答:DKIM 更多地充当调解者,以确保电子邮件在传输到收件人服务器的过程中没有被篡改。 它不确保端到端加密。
问:DKIM 标头是什么样的?
答:典型的 DKIM 标头如下所示:
DKIM 签名:v=1; a=rsa-sha256;
c=轻松/简单;
d=example.com; s=选择器1;
h=发件人:收件人:主题:日期:消息 ID;
bh=加密的_body_hash;
b=dkim_signature_value;
让我们分解一下 DKIM 标头的各个部分:
- DKIM 签名:标识 DKIM 标头的开头。
- v:正在使用的 DKIM 签名的版本。
- a:用于签署电子邮件的算法(例如,rsa-sha256)。
- c:用于准备签名消息的规范化算法。
- d:与 DKIM 记录关联的域名。
- s: DKIM 选择器,指定用于签名的密钥。
- h:签名中包含的标头。
- bh:电子邮件正文的加密哈希值。
- b:实际的 DKIM 签名值。
请注意,实际的 DKIM 标头可能会有所不同,具体取决于所使用的特定电子邮件服务或软件。
告别电子邮件欺骗
DKIM 是这个难题中的一小部分。 它通过加密签名验证发件人的域和电子邮件的完整性,帮助打击电子邮件伪造、欺骗和篡改。 通过采用 DKIM 和其他此类电子邮件安全措施,您将迈向安全、值得信赖且富有成效的电子邮件通信和身份验证环境。
对电子邮件送达实践的轻微改变可以为您的电子邮件策略带来非凡的结果。 了解更多!