域名系统安全扩展
编辑域名系统安全扩展 (DNSSEC) 是一组 Internet 标准,它向域名系统 (DNS) 添加安全机制以确保数据的真实性和完整性。 DNS 参与者可以使用它来验证收到的 DNS 区域数据实际上与区域创建者授权的数据相同。 DNSSEC 是作为一种针对缓存中毒的补救措施而开发的。 它通过数字签名保护资源记录的传输。 服务器或客户端未经过身份验证。
DNSSEC 不提供机密性,因此 DNS 数据未加密。
概览
编辑DNSSEC 使用非对称密码系统。 信息的“所有者”——通常是要保护的区域所在的主服务器——使用他的密钥对每个单独的记录进行签名。 DNS 客户端可以使用所有者的公钥验证此签名,从而验证真实性和完整性。 DNSSEC 需要扩展 Extended DNS,使用它可以在 DNS 消息中传输附加参数。 EDNS 还取消了通过 UDP 的 DNS 消息的 512 字节大小限制。 传输密钥和签名需要明显更长的 DNS 消息。
工作原理
编辑信息在 DNS 的资源记录 (RR) 中提供。 DNSSEC 使用数字签名确保此信息的真实性。 DNS 信息由对信息所在区域具有权威性的主服务器拥有。 为每个要保护的区域生成一个单独的区域签名密钥(一对由公钥和私钥组成)。 区域密钥的公共部分作为 DNSKEY 资源记录包含在区域文件中。 该区域中的每个单独的 RR 都使用私钥进行数字签名。 为此提供了一种新的 RR 类型,即 RRSIG 资源记录,其中包含相关 DNS 条目的签名。
除了实际的资源记录之外,相关的 RRSIG-RR 也随每个事务一起提供。 在区域传输的情况下,从服务器接收它,在递归解析的情况下,它存储在缓存中。 最后,它结束于请求解析器。 然后可以使用公共区域密钥来验证签名。
密钥管理
为了便于密钥管理,除了用于区域签名的密钥(区域签名密钥,ZSK)之外,还定义了语法相同的密钥签名密钥(KSK)。 如果它包含的密钥用于签署区域中的资源记录集,则在 DNSKEY 记录的标志字段中设置位 7。 这适用于 KSKs 和 ZSK:DNSKEY 记录使用 KSK 签名,所有其他记录使用 ZSK 签名。 如果密钥是区域验证的起点,则设置第 15 位(安全入口点)——这适用于 KSK。 由于到目前为止还没有使用其他位,因此标志字段的值对于 ZSK 为 256,对于 KSK 为 257。
只有包含实际区域密钥的 DNSKEY 记录才会使用此 KSK 进行签名。 这样的密钥签名密钥用于形成信任链。 KSK 的哈希值存储在更高级别区域的 DNS 记录中,这确保了签名 DNSKEY 记录中区域密钥的真实性。 与频繁更新的区域密钥相比,KSK 具有较长的使用寿命。
解析器评估
编辑工作站或智能手机等终端设备上的 DNS 解析器(在 DNS 术语中称为存根解析器)通常无法验证数字签名的 DNS 记录。 根据当前占主导地位的 DNS 理念,存根解析器是结构非常简单的程序,它们依赖于递归名称服务器来进行完整的名称解析。 想要解析名称的存根解析器向本地网络或 Internet 服务提供商网络中的名称服务器发送相应的请求。 通过在 DNS 标头中设置 DO 位 (DNSSEC OK),解析器可以告诉名称服务器执行验证。 为此,存根解析器必须支持扩展 DNS 扩展,因为那里指定了 DO 位。 但是,递归名称服务器也可以配置为始终执行验证,而不管 DO 位的存在或内容如何。 如果身份验证成功,服务器会在响应中设置 AD 位(经过身份验证的数据)。 如果身份验证失败,服务器将返回一般错误。
内容由匿名用户提供,本内容不代表vibaike.com立场,内容投诉举报请联系vibaike.com客服。如若转载,请注明出处:https://vibaike.com/342200/