AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

    • 主页
    • 系统&网络
    • Ubuntu
    • Unix
    • DBA
    • Computer
    • Coding
    • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 1074377
Accepted
Noob
Noob
Asked: 2021-08-13 08:59:37 +0800 CST2021-08-13 08:59:37 +0800 CST 2021-08-13 08:59:37 +0800 CST

DNSSEC 有用吗?

  • 772

DNSSEC 验证和验证区域数据的目的是确保无论 DNS 结果如何,这些都是真实的。

  1. 即使 DNS 解析器验证权威名称服务器已发送正确的未篡改数据,我们如何防止 DNS 解析器向 DNS 客户端发送篡改的 DNS 响应?

  2. 如果 DNS 解析器不支持 DNSSEC,它是否仍可以将 DNS 查询发送到为其区域启用了 DNSSEC 的权威名称服务器?

谢谢

domain-name-system dnssec dns-zone
  • 2 2 个回答
  • 273 Views

2 个回答

  • Voted
  1. Best Answer
    Patrick Mevzek
    2021-08-13T12:21:12+08:002021-08-13T12:21:12+08:00

    DNSSEC 有用吗?

    在您开始针对您想要捍卫的内容进行描述之前,这是无法回答的(对于您在该句子中使用的任何词而不是“DNSSEC”)。

    当您拥有想要保护自己的风险/漏洞/威胁列表时,您可以找出存在哪些解决方案并确定每个解决方案的有用与否。

    DNSSEC对某些 DNS 问题很有用,但并非对所有问题都有用。它给自己带来了新问题(签名和密钥的持续维护)以及新功能(NXDOMAIN如果 DNSSEC 正确验证,则对 a 以下的所有内容进行积极缓存)。

    即使 DNS 解析器验证权威名称服务器已发送正确的未篡改数据 - 我们如何防止 DNS 解析器向 DNS 客户端发送篡改的 DNS 响应?

    这与今天没有什么不同:如果您使用任何公共 DNS 解析器(仅举几例),您当然完全有可能向您发送垃圾数​​据8.8.8.8。这是一个权衡。DoH/DoT 在这里不会解决任何问题,因为它只会保护您与此解析器之间的内容传输,而不是内容本身。只要您正在查询的域名受 DNSSEC 保护,哪些内容受 DNSSEC “保护”(这是您在问题中忘记的一部分,实际上使 DNSSEC 变得困难:域名所有者必须启用它和DNS解析器必须使用新签名并进行验证;如果这 2 个变量等式的一部分不存在,DNSSEC 就没有用,因为它无法工作)1.1.1.19.9.9.9

    所以问题更多地围绕着:使用哪个递归名称服务器,以及它应该在哪里运行。当然,为了最大限度地控制,您希望解析器在您的机器上运行。它仍然可以在那里使用外部资源和 DNS 解析器,但最终的 DNSSEC 验证应该发生在您的名称服务器上,而不是其他服务器上。当然,这不仅仅是依靠任何其他资源为您“免费”完成所有 DNSSEC 工作。

    如果 DNS 解析器不支持 DNSSEC,它是否仍然可以将 DNS 查询发送到为其区域设置了 DNSSEC 的权威名称服务器?

    是的。想要获得 DNSSEC 数据的解析器必须在其请求中切换“DO”标志。

    从dig文档:

            +[no]dnssec
             This option requests that DNSSEC records be sent by setting the DNSSEC OK (DO) bit in the OPT record in the additional section of the query.
    

    你可以这样看:

    $ dig +dnssec example.com
    
    ; <<>> DiG 9.16.18 <<>> +dnssec example.com
    ;; global options: +cmd
    ;; Sending:
    ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 40492
    ;; flags: rd ad; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1
    
    ;; OPT PSEUDOSECTION:
    ; EDNS: version: 0, flags: do; udp: 4096
                               ^^
    

    或者来自 RFC 4035 的§3.2.1:

    3.2.1。DO位

    安全感知递归名称服务器的解析器端必须在发送请求时设置 DO 位,无论名称服务器端接收到的发起请求中 DO 位的状态如何。如果初始查询中的 DO 位未设置,名称服务器端必须从响应中去除任何认证 DNSSEC RR,但不得去除初始查询明确请求的任何 DNSSEC RR 类型。

    如果 DNS 客户端(递归解析器)这样做,并且如果被查询的权威名称服务器启用了 DNSSEC(因此RRSIG//区域NSEC中NSEC3的记录类型),那么解析器将获取这些记录,然后可以进行 DNSSEC 验证。

    当您(不是解析器的 DNS 存根/客户端)查询递归解析器时,您可以选择使用CD标志,定义如下:

            +[no]cdflag
            This option sets [or does not set] the CD (checking disabled) bit in the query. This requests the server to not perform DNSSEC validation of responses.
    

    (注意可能的双重否定)。

    如果客户端不使用CD,则 DNSSEC 验证未被禁用,因此它被启用并且删除服务器将提供最终答案(如果为记录启用 DNSSEC 并且验证成功),或者NXDOMAIN如果 DNSSEC将回复验证失败。该标志AD将被设置为表示所有记录都被验证为安全,如果是这种情况(如果查询来自递归名称服务器,则该标志不能来自权威的,因为您需要来自 IANA 根的完整 DNSSEC 链验证任何给定的记录)

    • 2
  2. Håkan Lindqvist
    2021-08-13T12:21:16+08:002021-08-13T12:21:16+08:00
    1. 理想情况下,您在客户端上进行本地验证(今天不是很常见,但远未闻所未闻),或者依靠可以弥合从客户端到受信任的验证解析器的差距的安全网络路径。
      这种安全的网络路径可能意味着 DNS-over-TLS、DNS-over-HTTPS、DNSCrypt 或在某种程度上是本地网络(较弱的信任级别,但对于部分攻击场景仍然有用)。
    2. 是的
    • 1

相关问题

  • Solaris DNS

  • resolv.conf 在经过一段时间后被更改

  • 为什么有些网站的网址中没有“www”就无法显示?[关闭]

  • 为本地网络中的名称解析添加自定义 dns 条目

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助
subwaysurfers
my femboy roommate

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve