为域配置 DNSSEC - Amazon Route 53
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

为域配置 DNSSEC

攻击者有时会通过拦截 DNS 查询并向 DNS 解析程序返回自己的 IP 地址而不是 Internet 终端节点的实际 IP 地址来劫持发往这些终端节点的流量。然后,系统会将用户路由到攻击者在虚假响应中提供的 IP 地址,例如虚假网站。

可以通过配置用于确保 DNS 流量安全的协议 – 域名系统安全扩展 (DNSSEC) 来保护您的域免受此类攻击,即 DNS 欺骗或中间人攻击。

重要

Amazon Route 53 支持将 DNSSEC 用于域注册。但是,Route 53 不支持将 DNSSEC 用于 DNS 服务,无论是否向 Route 53 注册了域都是如此。如果要为向 Route 53 注册的域配置 DNSSEC,则必须使用其他 DNS 服务提供商或设置您自己的 DNS 服务器。

DNSSEC 如何保护域的概述

当您为域配置 DNSSEC 时,DNS 解析程序将为来自中间解析程序的响应建立信任链。该信任链从域 (您的域的父区域) 的 TLD 注册机构开始,至 DNS 服务提供商的授权名称服务器结束。并非所有 DNS 解析程序都支持 DNSSEC;不支持 DNSSEC 的解析程序将不执行任何签名或真实性验证。

为清晰起见,下面简要介绍如何为向 Amazon Route 53 注册的域配置 DNSSEC,以保护您的 Internet 主机免遭 DNS 欺骗:

  1. 使用 DNS 服务提供商提供的方法通过非对称密钥对中的私有密钥签署 托管区域内的记录。

    重要

    Route 53 支持将 DNSSEC 用于域注册,但不支持将 DNSSEC 用于 DNS 服务。如果要为向 Route 53 注册的域配置 DNSSEC,则必须使用其他 DNS 服务提供商或设置您自己的 DNS 服务器。

  2. 向域注册商提供密钥对中的公有密钥,并指定用于生成密钥对的算法。域注册商会将公有密钥和算法转发给顶级域 (TLD) 的注册机构。

    有关如何为向 Route 53 注册的域执行此步骤的信息,请参阅为域添加公有密钥

在配置 DNSSEC 后,下面介绍如何保护您的域免受 DNS 欺骗:

  1. 提交 DNS 查询,例如通过浏览网站或发送电子邮件消息。

  2. 将请求路由到 DNS 解析程序。解析程序负责根据请求向客户端返回相应的值,例如,运行 Web 服务器或电子邮件服务器的主机的 IP 地址。

  3. 如果该 IP 地址已在 DNS 解析程序中缓存 (因为其他人已提交过相同的 DNS 查询且解析程序已获得该值),解析程序会将该 IP 地址返回给提交请求的客户端。然后,客户端将使用该 IP 地址来访问主机。

    如果该 IP 地址未在 DNS 解析程序中进行缓存,解析程序将向您的域的父区域发送请求,在 TLD 注册机构该操作会返回两个值:

    • Delegation Signer (DS) 记录,这是与用于签署记录的私有密钥对应的公有密钥。

    • 域的授权名称服务器的 IP 地址。

  4. DNS 解析程序将原始请求发送至另一个 DNS 解析程序。如果该解析程序没有此 IP 地址,它将重复该过程,直至解析程序将请求发送到位于您的 DNS 服务提供商的名称服务器。该名称服务器将返回两个值:

    • 域的记录,如 example.com。其中通常包含主机的 IP 地址。

    • 您在配置 DNSSEC 时创建的记录的签名。

  5. DNS 解析程序将使用您向域注册商提供的公有密钥 (注册商又将其转发给 TLD 注册机构) 来执行以下操作:

    • 建立信任链。

    • 确认来自 DNS 服务提供商的签名响应合法,并且未被来自攻击者的错误响应替换。

  6. 如果响应是真实的,解析程序会将该值返回给提交请求的客户端。

    如果无法对响应进行验证,解析程序将向用户返回错误。

    如果域的 TLD 注册机构没有用于域的公有密钥,解析程序将使用它从 DNS 服务提供商处获得的响应来响应 DNS 查询。

为域配置 DNSSEC 的先决条件和最大数量

要为域配置 DNSSEC,您的域和 DNS 服务提供商必须满足以下先决条件:

  • TLD 的注册机构必须支持 DNSSEC。要确定 TLD 注册机构是否支持 DNSSEC,请参阅可在 Amazon Route 53 注册的域

  • 域的 DNS 服务提供商必须支持 DNSSEC。

    重要

    Route 53 支持将 DNSSEC 用于域注册,但不支持将 DNSSEC 用于 DNS 服务。如果要为向 Route 53 注册的域配置 DNSSEC,则必须使用其他 DNS 服务提供商或设置您自己的 DNS 服务器。

  • 您必须使用域的 DNS 服务提供商配置 DNSSEC,然后才能将域的公有密钥添加至 Route 53。

  • 可以添加到域的公有密钥的数量取决于该域的 TLD:

    • .com 和 .net 域 – 最多 13 个密钥

    • 所有其他域 – 最多 4 个密钥

为域添加公有密钥

您在轮换密钥或为域启用 DNSSEC 时,请在用域的 DNS 服务提供商配置 DNSSEC 之后执行以下步骤。

为域添加公有密钥

  1. 如果您尚未用 DNS 服务提供商配置 DNSSEC,请使用服务提供商提供的方法来配置 DNSSEC。

  2. 登录 AWS 管理控制台并通过以下网址打开 Route 53 控制台:https://console.amazonaws.cn/route53/

  3. 在导航窗格中,选择 Registered domains

  4. 选择要为其添加密钥的域的名称。

  5. DNSSEC status 字段中选择 Manage keys

  6. 指定以下值:

    Key type

    选择您要上传密钥签名密钥 (KSK) 还是区域签名密钥 (ZSK)。

    Algorithm

    选择您用来为托管区域签署记录的算法。

    Public key

    指定您在使用 DNS 服务提供商配置 DNSSEC 时所使用的非对称密钥对中的公有密钥。

    请注意以下几点:

    • 指定公有密钥,而不是摘要。

    • 您必须以 base64 格式指定密钥。

  7. 选择 Add

    注意

    一次只能添加一个公有密钥。如果您需要添加更多密钥,请等待,直至收到来自 Route 53 的确认电子邮件。

  8. 当 Route 53 收到来自注册机构的响应时,我们会向域的注册联系人发送电子邮件。该电子邮件将确认已将公有密钥添加到注册结构的域或解释无法添加密钥的原因。

删除域的公有密钥

您在轮换密钥或为域禁用 DNSSEC 时,请使用以下步骤删除公有密钥,然后再用 DNS 服务提供商禁用 DNSSEC。我们建议您在轮换密钥或用 DNS 服务提供商禁用 DNSSEC 之后最多等待三天,再删除公有密钥。请注意以下几点:

  • 如果您要轮换公有密钥,我们建议您在添加新公有密钥之后最多等待 3 天,再删除旧私有密钥。

  • 如果您要禁用 DNSSEC,请先删除域的公有密钥。我们建议您最多等待 3 天,再用域的 DNS 服务禁用 DNSSEC。

重要

如果已为域启用 DNSSEC 并用 DNS 服务禁用 DNSSEC,则支持 DNSSEC 的 DNS 解析程序将向客户端返回 SERVFAIL 错误,客户端将无法访问与该域关联的终端节点。

删除域的公有密钥

  1. 登录 AWS 管理控制台并通过以下网址打开 Route 53 控制台:https://console.amazonaws.cn/route53/

  2. 在导航窗格中,选择 Registered domains

  3. 选择要从中删除密钥的域的名称。

  4. DNSSEC status 字段中选择 Manage keys

  5. 找到您要删除的密钥,然后选择 Delete

    注意

    一次只能删除一个公有密钥。如果您需要删除更多密钥,请等待,直至收到来自 Amazon Route 53 的确认电子邮件。

  6. 当 Route 53 收到来自注册机构的响应时,我们会向域的注册联系人发送电子邮件。该电子邮件将确认已将公有密钥从注册结构的域中删除或解释无法删除密钥的原因。