当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] Exchange 服务器和 Exchange Online 中的 DNSSEC 和 DANE 支持

作者:精品下载站 日期:2024-12-14 07:10:47 浏览:14 分类:玩电脑

Exchange 服务器和 Exchange Online 中的 DNSSEC 和 DANE 支持


过去我曾写过有关在 Exchange 服务器中使用 SPF、DKIM 和 DMARC 进行电子邮件身份验证以提高电子邮件安全性的文章。提高安全性的其他主题包括安全 DNS (DNSSEC) 和基于 DNS 的命名实体身份验证 (DANE)。 SPF、DKIM 和 DMARC 更关注电子邮件及其来源的发送主机,而 DANE 更关注在邮件服务器之间建立 TLS 连接。 DANE 依赖于 DNSSEC,但由于我的重点是 Exchange 和 Exchange Online,因此我不会讨论 DNSSEC 并将其留给我的提供商(DANE 仅在启用 DNSSEC 时起作用)。

当两个邮件服务器建立连接时,它们会协商一个通用的 TLS 协议,并且这种所谓的握手是未加密的。因此,这种握手很容易受到中间人或降级攻击。

DANE 使用特殊的 DNS 记录(TLSA 记录,传输层安全身份验证),组织可以在其中发布有关邮件服务器上的证书的信息,从而发布可用的 TLS 选项。

我自己的域的 TLSA 记录如下例所示:

_25._tcp.smtphost.exchangelabs.nl IN TLSA 3 1 1 50167c478a2f536a88ee9ec232b14b0d223c2d5bdc837451eee104c153376cbe

当邮件服务器想要将电子邮件发送到我的 Exchange 环境时,它首先检索 MX 记录,即 smtphost.exchangelabs.nl(这是 Exchange 2019 边缘传输服务器,具有与服务器名称匹配的 Digicert 证书)。当收件人域未使用 DNSSEC 时,将使用机会性 TLS。当在收件人域中使用 DNSSEC 时,支持 DANE 的邮件服务器将检查 TLSA 记录。

当找到并检索 TLSA 记录时,发送服务器会与接收服务器建立 TLS 连接,接收服务器又返回证书的指纹。发送服务器将指纹与 DNS 中找到的信息进行比较,当匹配时,将建立连接并继续两个服务器之间的通信,然后发送电子邮件。

那么,如何创建 TLSA 记录?有可以创建 TLSA 记录的公开网络服务器。 Shumon Huque 是华盛顿特区的一名软件工程师和技术专家,他拥有一个可以生成 TLSA 记录的网站。作为奖励,他的网站还可以检查 TLSA 记录。

要生成新的 TLSA 记录,请导航到其网站 https://www.huque.com/bin/gen_tlsa 并填写必要的信息,如以下屏幕截图所示:

[玩转系统] Exchange 服务器和 Exchange Online 中的 DNSSEC 和 DANE 支持

创建 PEM 格式 X.509 证书的最简单方法是使用 MMC 证书管理单元。选择您的证书并将其导出。选择“否,不导出私钥”选项,选择“Base-64 编码的 X.509 (CER)”选项并导出证书。您可以使用记事本打开证书导出,并将其复制并粘贴到 PEM 格式的 X.509 文本框中。

选择端口号 (25)、协议(TCP,而非 SMTP)并输入域名。这是接收服务器的 FQDN,因此在我的示例中为 smtphost.exchangelabs.nl,然后单击生成

它将显示生成的 TLSA 记录,包括证书信息,如下图所示:

[玩转系统] Exchange 服务器和 Exchange Online 中的 DNSSEC 和 DANE 支持

对于我的域,生成以下 TLSA 记录:

_25._tcp.smtphost.exchangelabs.nl. IN TLSA 3 1 1 a63d74fc7ec1acad702017d13479a1b60b36f234ccb96b90f97c9619ba2c91ab

此 TLSA 记录的结构如何?

TCP 端口 25 和服务器的 FQDN 构成了此 TLSA 记录的第一部分。

TLSA 文本后的第一个数字是服务器上的证书验证证书使用情况,该数字可以有 4 个值:

  • 0 - CA 约束。建立 TLS 连接时提供的证书必须由列出的根 CA 或其中间证书颁发机构之一颁发。
  • 1 - 服务证书约束。 - 使用的证书必须与 TLSA 记录匹配,并且还必须通过可信根 CA 的证书路径验证。
  • 2 - 信任锚断言。 TLSA 记录必须与根 CA 的证书或邮件服务器使用的证书的中间 CA 之一匹配。
  • 3 - 域颁发的证书。 TLSA 记录与所使用的证书本身匹配。该证书不需要由其他方签名,因此可以使用自签名证书(这在 Exchange 服务器上很有趣)。

在我的 TLSA 记录中,证书使用情况使用值 3,因此 TLSA 记录必须与 Exchange 2019 服务器上的证书匹配。

使用的第二个数字是选择器。选择器可以有两个值:

  • 0 - 使用整个证书进行匹配。
  • 1 - 仅使用证书的公钥进行匹配。

在我的 TLSA 记录中,选择器的值为 1,因此仅使用公钥。

使用的第三个数字是匹配类型。匹配类型可以有三个值:

  • 0 - 整个信息选择存在于证书关联数据中(TLSA 记录中的最后一个文本字符串)
  • 1 - 证书公钥的 SHA-256 哈希必须与证书关联数据匹配。
  • 2 - 证书公钥的 SHA-512 哈希必须与证书关联数据匹配。

在我的 TLSA 记录中,值 1 用于匹配,Exchange 服务器证书的公钥的 SHA-256 必须与 TLSA 记录中的数据匹配。

下一步是在 DNS 中添加生成的 TLSA 记录,并在添加后检查 TLSA 记录。

您可以使用同一站点(https://www.huque.com/bin/danecheck-smtp)检查 TLSA 记录。该站点查询您的域的 MX 记录并检查随附的 TLSA 记录。结果如下图所示:

[玩转系统] Exchange 服务器和 Exchange Online 中的 DNSSEC 和 DANE 支持

但还有更多网站可以检查您的 TLSA 记录。例如,Mailhardener (https://www.mailhardener.com/tools/dane-validator) 可以执行与以下屏幕截图所示相同的操作:

[玩转系统] Exchange 服务器和 Exchange Online 中的 DNSSEC 和 DANE 支持

在这篇博客中,我讨论的是用于邮件服务器的 DANE,但它也可用于其他服务。对于网站,TLSA 记录可以是:

_443._tcp.www.exchangelabs.nl. IN TLSA 3 1 1 a63d74fc7ec1acad702017d13479a1b60b36f234ccb96b90f97c9619ba2c91ab

或者对于 IMAP 可以是:

_995._tcp.mail.exchangelabs.nl. IN TLSA 3 1 1 a63d74fc7ec1acad702017d13479a1b60b36f234ccb96b90f97c9619ba2c91ab

丑陋的部分是 Exchange 2019 不支持开箱即用的 DANE。对于传入邮件,您可以根据 Exchange(边缘传输)服务器上安装的证书配置 TLSA 记录。支持 DANE 的邮件服务器会自动检查 TLSA 记录,并在可用时使用该记录来设置 TLS 连接。

另一方面,在撰写本文时,Exchange Online 仅支持 DANE 进行出站连接。作为 Exchange Online 客户,您无需进行任何配置,它可供所有人使用。用于入站邮件的 DANE 将来将可用,但具体时间尚不清楚。根据微软的说法,这是“不久的将来”,但不幸的是这种情况已经存在相当长一段时间了。

最后(也是非常重要的)结束语:当您为(入站)Exchange 服务器配置了 TLSA 记录后,您必须在续订 Exchange 证书时更新您的 TLSA 记录。当 Exchange 服务器用于混合配置时,您还必须执行此操作,因为 Exchange Online 将检查 TLSA 记录。从 Exchange Online 到 Exchange 2019 的邮件流将停止,并且 Exchange Online 邮件跟踪中显示以下错误消息:

Reason: [{LED=450 4.7.323 tlsa-invalid: The domain failed DANE validation [Message=450 4.7.323 tlsa-invalid: The domain failed DANE validation] [LastAttemptedServerName=smtphost.exchangelabs.nl] [LastAttemptedIP=185.116.41.45:25] [SmtpSecurity=11;-1] [HE1EUR01FT069.eop-EUR01.prod.protection.outlook.com 2023-06-06T10:23:06.0. OutboundProxyTargetIP: 185.116.41.45. OutboundProxyTargetHostName: smtphost.exchangelabs.nl

当生成新的 TLSA 记录并在 DNS 中发布时,此问题即可解决。

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯