本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
为域配置 DNSSEC
攻击者有时会通过拦截 DNS 查询并向 DNS 解析程序返回自己的 IP 地址而不是 Internet 端点的实际 IP 地址来劫持发往这些端点的流量。然后,系统会将用户路由到攻击者在虚假响应中提供的 IP 地址,例如虚假网站。
您可以通过配置域名系统安全扩展 (DNSSEC)(一种保护 DNS 流量的协议)来保护您的域名免受此类 man-in-the-middle攻击(称为 DNS 欺骗或攻击)。
重要
Amazon Route 53 支持将 DNSSEC 签名和 DNSSEC 用于域注册。如果要为使用 Route 53 注册的域配置 DNSSEC 签名,请参阅 在 Amazon Route 53 中配置 DNSSEC 签名。
DNSSEC 如何保护域的概览
当您为域配置 DNSSEC 时,DNS 解析程序将为来自中间解析程序的响应建立信任链。该信任链从域 (您的域的父区域) 的 TLD 注册机构开始,至 DNS 服务提供商的授权名称服务器结束。并非所有 DNS 解析程序都支持 DNSSEC。仅支持 DNSSEC 的解析程序将执行任何签名或真实性验证。
为清晰起见,下面简要介绍如何为向 Amazon Route 53 注册的域配置 DNSSEC,以保护您的互联网主机免遭 DNS 欺骗:
使用 DNS 服务提供商提供的方法通过非对称密钥对中的私有密钥 来签署 托管区域内的记录。
重要
Route 53 支持将 DNSSEC 签名和 DNSSEC 用于域注册。要了解更多信息,请参阅 在 Amazon Route 53 中配置 DNSSEC 签名。
向域注册商提供密钥对中的公有密钥,并指定用于生成密钥对的算法。域注册商会将公有密钥和算法转发给顶级域 (TLD) 的注册机构。
有关如何为向 Route 53 注册的域执行此步骤的信息,请参阅 为域添加公有密钥。
在配置 DNSSEC 后,下面介绍如何保护您的域免受 DNS 欺骗:
提交 DNS 查询,例如通过浏览网站或发送电子邮件消息。
将请求路由到 DNS 解析程序。解析程序负责根据请求向客户端返回相应的值,例如,运行 Web 服务器或电子邮件服务器的主机的 IP 地址。
-
如果该 IP 地址已在 DNS 解析程序中缓存(因为其他人已提交过相同的 DNS 查询且解析程序已获得该值),解析程序会将该 IP 地址返回给提交请求的客户端。然后,客户端将使用该 IP 地址来访问主机。
如果该 IP 地址未在 DNS 解析程序中进行缓存,解析程序将向您的域的父区域发送请求,在 TLD 注册机构该操作会返回两个值:
Delegation Signer (DS) 记录,这是与用于签署记录的私有密钥对应的公有密钥。
域的授权名称服务器的 IP 地址。
DNS 解析程序将原始请求发送至另一个 DNS 解析程序。如果该解析程序没有此 IP 地址,它将重复该过程,直至解析程序将请求发送到位于您的 DNS 服务提供商的名称服务器。该名称服务器将返回两个值:
域的记录,如 example.com。其中通常包含主机的 IP 地址。
您在配置 DNSSEC 时创建的记录的签名。
DNS 解析程序将使用您向域注册商提供的公有密钥(注册商又将其转发给 TLD 注册机构)来执行以下两项操作:
建立信任链。
确认来自 DNS 服务提供商的签名响应合法,并且未被来自攻击者的错误响应替换。
如果响应是真实的,解析程序会将该值返回给提交请求的客户端。
如果无法对响应进行验证,解析程序将向用户返回错误。
如果域的 TLD 注册机构没有用于域的公有密钥,解析程序将使用它从 DNS 服务提供商处获得的响应来响应 DNS 查询。
为域配置 DNSSEC 的先决条件和最大数量
要为域配置 DNSSEC,您的域和 DNS 服务提供商必须满足以下先决条件:
TLD 的注册机构必须支持 DNSSEC。要确定 TLD 注册机构是否支持 DNSSEC,请参阅可向 Amazon Route 53 注册的域。
域的 DNS 服务提供商必须支持 DNSSEC。
重要
Route 53 支持将 DNSSEC 签名和 DNSSEC 用于域注册。要了解更多信息,请参阅 在 Amazon Route 53 中配置 DNSSEC 签名。
您必须使用域的 DNS 服务提供商配置 DNSSEC,然后才能将域的公有密钥添加至 Route 53。
可以添加到域的公有密钥的数量取决于该域的 TLD:
.com 和 .net 域 — 最多 13 个密钥
所有其它域 — 最多 4 个密钥
为域添加公有密钥
您在轮换密钥或为域启用 DNSSEC 时,请在用域的 DNS 服务提供商配置 DNSSEC 之后执行以下步骤。
为域添加公有密钥
如果您尚未用 DNS 服务提供商配置 DNSSEC,请使用服务提供商提供的方法来配置 DNSSEC。
登录 AWS Management Console 并打开 Route 53 控制台,网址为https://console.aws.amazon.com/route53/
。 在导航窗格中,选择 Registered domains。
选择要为其添加密钥的域的名称。
在 DNSSEC 密钥选项卡中,选择添加密钥。
指定以下值:
- 密钥类型
选择您要上传密钥签名密钥 (KSK) 还是区域签名密钥 (ZSK)。
- 算法
选择您用来为托管区域签署记录的算法。
- 公有密钥
指定您在使用 DNS 服务提供商配置 DNSSEC 时所使用的非对称密钥对中的公有密钥。
请注意以下几点:
指定公有密钥,而不是摘要。
您必须以 base64 格式指定密钥。
选择 添加。
注意
一次只能添加一个公有密钥。如果您需要添加更多密钥,请等待,直至收到来自 Route 53 的确认电子邮件。
当 Route 53 收到来自注册机构的响应时,我们会向域的注册联系人发送电子邮件。该电子邮件将确认已将公有密钥添加到注册结构的域或解释无法添加密钥的原因。
删除域的公有密钥
您在轮换密钥或为域禁用 DNSSEC 时,请使用以下步骤删除公有密钥,然后再用 DNS 服务提供商禁用 DNSSEC。请注意以下几点:
如果您要轮换公有密钥,我们建议您在添加新公有密钥之后最多等待 3 天,再删除旧私有密钥。
如果您要禁用 DNSSEC,请先删除域的公有密钥。我们建议您最多等待 3 天,再用域的 DNS 服务禁用 DNSSEC。
重要
如果已为域启用 DNSSEC 并用 DNS 服务禁用 DNSSEC,则支持 DNSSEC 的 DNS 解析程序将向客户端返回 SERVFAIL
错误,客户端将无法访问与该域关联的端点。
删除域的公有密钥
登录 AWS Management Console 并打开 Route 53 控制台,网址为https://console.aws.amazon.com/route53/
。 在导航窗格中,选择 Registered domains。
选择要从中删除密钥的域的名称。
在 DNSSEC 密钥选项卡中,选择您要删除的密钥旁边的单选按钮,然后选择删除密钥。
在删除 DNSSEC 密钥对话框中,在文本框中输入 delete 以确认要删除密钥,然后选择删除。
注意
一次只能删除一个公有密钥。如果您需要删除更多密钥,请等待,直至收到来自 Amazon Route 53 的确认电子邮件。
当 Route 53 收到来自注册机构的响应时,我们会向域的注册联系人发送电子邮件。该电子邮件将确认已将公有密钥从注册结构的域中删除或解释无法删除密钥的原因。