[DNSOP] How does NSEC record(s) prove the Name Error?
Joey Deng <qiaoyu_deng@apple.com> Wed, 27 October 2021 05:21 UTC
Return-Path: <qiaoyu_deng@apple.com>
X-Original-To: dnsop@ietfa.amsl.com
Delivered-To: dnsop@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 73BF83A0A3E for <dnsop@ietfa.amsl.com>; Tue, 26 Oct 2021 22:21:37 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.101
X-Spam-Level:
X-Spam-Status: No, score=-1.101 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, HK_RANDOM_ENVFROM=0.001, HK_RANDOM_FROM=0.999, HTML_MESSAGE=0.001, RCVD_IN_MSPIKE_H2=-0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=no autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=apple.com
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id lvcNGsuArMzp for <dnsop@ietfa.amsl.com>; Tue, 26 Oct 2021 22:21:33 -0700 (PDT)
Received: from ma1-aaemail-dr-lapp02.apple.com (ma1-aaemail-dr-lapp02.apple.com [17.171.2.68]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id F13BC3A0A3D for <dnsop@ietf.org>; Tue, 26 Oct 2021 22:21:32 -0700 (PDT)
Received: from pps.filterd (ma1-aaemail-dr-lapp02.apple.com [127.0.0.1]) by ma1-aaemail-dr-lapp02.apple.com (8.16.0.42/8.16.0.42) with SMTP id 19R5CWX4041996 for <dnsop@ietf.org>; Tue, 26 Oct 2021 22:21:31 -0700
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=apple.com; h=from : content-type : mime-version : subject : message-id : date : to; s=20180706; bh=0cZQXk/qK7l+vEuT5PK8ZWCN89NtDnxu8fp4pit3SOI=; b=uGljFhky4a2hAEWhCjTUPoz5mtBuT2/+v0L0+akMsfobHDMmeNJtf89ucKfj1BVrLUWV 7i/y9xp4+r4Ry3e5CO7xKbsi84xJlLiLT89FIRvyc/lCBBwpVFvZY329FIub89YDDj3u ljUEOKfvYU7lrmFPMHQGNz/A/zKVfX9l8Svc/268TsFhRNRQ14eqbxrpQQ6vWAYNcvzo rO2xNUyMLgJ8GKHvuu08Pkg5bkUi3TLtcYnFLucVbLXWdJdYLvusLXmqTHT0PdZLnbJc E9NYFnYajjtYmemxHRiuKOsGCuBZ/BoHPjBY1Eu9HEBti8kbht1y6sSUh6H+2LRICV4x vA==
Received: from rn-mailsvcp-mta-lapp02.rno.apple.com (rn-mailsvcp-mta-lapp02.rno.apple.com [10.225.203.150]) by ma1-aaemail-dr-lapp02.apple.com with ESMTP id 3bx4hu5b1u-2 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NO) for <dnsop@ietf.org>; Tue, 26 Oct 2021 22:21:31 -0700
Received: from rn-mailsvcp-mmp-lapp02.rno.apple.com (rn-mailsvcp-mmp-lapp02.rno.apple.com [17.179.253.15]) by rn-mailsvcp-mta-lapp02.rno.apple.com (Oracle Communications Messaging Server 8.1.0.12.20210903 64bit (built Sep 3 2021)) with ESMTPS id <0R1M00OU9EVUY520@rn-mailsvcp-mta-lapp02.rno.apple.com> for dnsop@ietf.org; Tue, 26 Oct 2021 22:21:30 -0700 (PDT)
Received: from process_milters-daemon.rn-mailsvcp-mmp-lapp02.rno.apple.com by rn-mailsvcp-mmp-lapp02.rno.apple.com (Oracle Communications Messaging Server 8.1.0.12.20210903 64bit (built Sep 3 2021)) id <0R1M00700EV1WZ00@rn-mailsvcp-mmp-lapp02.rno.apple.com> for dnsop@ietf.org; Tue, 26 Oct 2021 22:21:30 -0700 (PDT)
X-Va-A:
X-Va-T-CD: f4439a1f3baad66c778bad7f442511f1
X-Va-E-CD: 50d2e85d37f45cc1cafdf96b58642bc7
X-Va-R-CD: f25382d650a28ae388dca400bf8dc584
X-Va-CD: 0
X-Va-ID: 6c4a2395-c124-46da-988f-f1d8a04c6cca
X-V-A:
X-V-T-CD: f4439a1f3baad66c778bad7f442511f1
X-V-E-CD: 50d2e85d37f45cc1cafdf96b58642bc7
X-V-R-CD: f25382d650a28ae388dca400bf8dc584
X-V-CD: 0
X-V-ID: 1165bcad-a715-440a-8048-bfd90c90fbaa
X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.425, 18.0.790 definitions=2021-10-27_01:2021-10-26, 2021-10-27 signatures=0
Received: from smtpclient.apple (unknown [17.192.170.224]) by rn-mailsvcp-mmp-lapp02.rno.apple.com (Oracle Communications Messaging Server 8.1.0.12.20210903 64bit (built Sep 3 2021)) with ESMTPSA id <0R1M00LDJEVU7800@rn-mailsvcp-mmp-lapp02.rno.apple.com> for dnsop@ietf.org; Tue, 26 Oct 2021 22:21:30 -0700 (PDT)
From: Joey Deng <qiaoyu_deng@apple.com>
Content-type: multipart/alternative; boundary="Apple-Mail=_4C0E1216-297F-419B-AEC8-57AFD6B89EE2"
MIME-version: 1.0 (Mac OS X Mail 15.0 \(3693.0.1.1.13\))
Message-id: <A28D84C7-FB84-4A3B-A041-04ADB799C0BC@apple.com>
Date: Tue, 26 Oct 2021 22:21:29 -0700
To: dnsop@ietf.org
X-Mailer: Apple Mail (2.3693.0.1.1.13)
X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.425, 18.0.790 definitions=2021-10-27_01:2021-10-26, 2021-10-27 signatures=0
Archived-At: <https://mailarchive.ietf.org/arch/msg/dnsop/XHaxxeCs0fz110JZxkysc43iZo8>
Subject: [DNSOP] How does NSEC record(s) prove the Name Error?
X-BeenThere: dnsop@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: IETF DNSOP WG mailing list <dnsop.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/dnsop>, <mailto:dnsop-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/dnsop/>
List-Post: <mailto:dnsop@ietf.org>
List-Help: <mailto:dnsop-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/dnsop>, <mailto:dnsop-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 27 Oct 2021 05:21:38 -0000
Hi Folks, I have a very basic question about NSEC record in DNSSEC validation: How does NSEC record(s) prove the Name Error? In [RFC 4035 5.4. Authenticated Denial of Existence](https://datatracker.ietf.org/doc/html/rfc4035#section-5.4), it says: > o If the requested RR name matches the owner name of an > authenticated NSEC RR, then the NSEC RR's type bit map field lists > all RR types present at that owner name, and a resolver can prove > that the requested RR type does not exist by checking for the RR > type in the bit map. If the number of labels in an authenticated > NSEC RR's owner name equals the Labels field of the covering RRSIG > RR, then the existence of the NSEC RR proves that wildcard > expansion could not have been used to match the request. > > o If the requested RR name would appear after an authenticated NSEC > RR's owner name and before the name listed in that NSEC RR's Next > Domain Name field according to the canonical DNS name order > defined in [RFC4034 <https://datatracker.ietf.org/doc/html/rfc4034>], then no RRsets with the requested name exist > in the zone. However, it is possible that a wildcard could be > used to match the requested RR owner name and type, so proving > that the requested RRset does not exist also requires proving that > no possible wildcard RRset exists that could have been used to > generate a positive response. > I can understand the first point, because it is an exact name matching. However, what makes me feel confused is the second one: If the question name appears in-between the current owner name and the next owner name of the NSEC record, which means that there is no exact name matching: We should prove that > no possible wildcard RRset exists that could have been used to generate a positive response. But it does not describe how to prove it, What are possible wildcard RRsets for a given name? My understanding about possible wildcard RRsets for a given name are all the possible sources of synthesis. For example, the possible wildcard RRsets that can be used to answer question wwww.ietf.org <http://wwwwww.ietf.org/> AAAA are: *.ietf.org <http://ietf.org/> *.org * (but I think root can never be a wildcard, so this is impossible) Is my understanding correct? ———————————————————————————————————————————————————————————————————————— For example, if I send a DNS query for wwww.ietf.org <http://wwwwww.ietf.org/> with DO/CD bit set, there will be two NSEC records returned: ``` $ dig "wwww.ietf.org" AAAA +dnssec +cdflag +tcp @1.1.1.1 ; <<>> DiG 9.10.6 <<>> wwww.ietf.org AAAA +dnssec +cdflag +tcp @1.1.1.1 ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 34013 ;; flags: qr rd ra ad; QUERY: 1, ANSWER: 0, AUTHORITY: 6, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags: do; udp: 1232 ;; QUESTION SECTION: ;wwww.ietf.org. IN AAAA ;; AUTHORITY SECTION: ietf.org. 1800 IN SOA ns0.amsl.com. glen.amsl.com. 1200000537 1800 1800 604800 1800 ietf.org. 1800 IN RRSIG SOA 5 2 1800 20221019014909 20211019005139 40452 ietf.org. GUaWdfXoPWOjb+/1w5Dtn8VoeemBYXdDIQui365JuuIBkEC4YKFLb+m+ u8YJ+cbnTzDb768HkTX8AbWaupZVR2FLn2r06hf6YruVi5jRjzExYLQ6 22Rn8TCvNpNRBZ7fyEcBd9m3aacGr+2iBXgYL9QRXag0tSAAW5oxjI8H CcQLLylwGKDvQv2sNIQLxZlkYFXa+swBOuFQdT8MmymOKjV1d+p3s+S0 1HdUb7JAR2vTK/UVib5zfyXGiQcpD6F3XOQNVTY2dgc2ywAqoudANVmz Rm9rql12MALn2hu5HwrfC0djzXxo6Ry8I0KLmRtAsDoz4ie95Oh1Bnt4 qUhJLA== wwwtest.ietf.org. 1800 IN NSEC xml2rfc.ietf.org. CNAME RRSIG NSEC wwwtest.ietf.org. 1800 IN RRSIG NSEC 5 3 1800 20221019015021 20211019005139 40452 ietf.org. regwKawm6O9BAaHVyBICHjPlGiwDWoXO8OaqH4zJOOgAglrAMXajbEmx XHJsbq3DVEVGkU8NSQJxmGYjklyKzmMbIBpt7+RaXKT7WIGd/zRjSlnI gWSztB6gWTMQq98vQKeFgrt5X8a10p6C36gtJh5sGFq8FpiAvKoKuGO8 tyWKxux7pEQhlhTySr7ipRe8qmGDpy4H+8bkGqvJ7UJ0f3A366bZyD2Q XLdTG4DUrNWt8wKK0FiL2851PegU8FdQb0IXOlBHNF6qXiKCIhBLbK4W 3O3UYKsNLhYPBYuWNGZQ2mlEsfgUC9ddBU1trmMEObm3E+1tR/jemSYA uF+S7Q== ietf.org. 1800 IN NSEC _dmarc.ietf.org. A NS SOA MX TXT AAAA RRSIG NSEC DNSKEY SPF ietf.org. 1800 IN RRSIG NSEC 5 2 1800 20221019015032 20211019005139 40452 ietf.org. PiCNEGBSBbC/ALNR5ebDwk1wQGMH/l6MtV5ZAGYl9M1wf43NrqHapDlU AP2E07FsPIyo9PcWui67PidLgVA4e0rRJbyHK2B92tEeprZbxSOCeIFi NWiLl1oCZt+IQCCnFlzJkbwk2MWOVRYxUdQfmWk0QZZZtRr1c/i4VwPU MAVqCORkGpc6W6LLiTITLphe7X0NHb7e41n8J06tPh1a6GmRYRJCy41c F26Bf6GcEJBpNTvlNuirimbhvjL4Ax+FHBe5MA/Tjp4K1AeUIA0ibBVI 20o14zUqSsph67/Snz9fdpJ/dsvP9QwTNLTKR6Jxofi/ArWEBEheXsm+ pkZTRA== ``` The two returned NSEC records are: wwwtest.ietf.org. -> xml2rfc.ietf.org. ietf.org. -> _dmarc.ietf.org. If we follow the steps described by [RFC 4035 5.4. Authenticated Denial of Existence](https://datatracker.ietf.org/doc/html/rfc4035#section-5.4), we will find that: wwwtest.ietf.org. -> xml2rfc.ietf.org. tells us that the exact name match for wwww.ietf.org does not exist, since it appears in-between the two names. Therefore, the remaining ietf.org. -> _dmarc.ietf.org. NSEC should be used to prove that “no possible wildcard RRset exists that could have been used to generate a positive response” for the name wwww.ietf.org <http://wwww.ietf.org/>. Therefore, my question is: How can ietf.org. -> _dmarc.ietf.org NSEC be used to prove that there is no wildcard record for the name wwww.ietf.org? Do we need to prove that all the possible sources of synthesis for wwww.ietf.org <http://wwww.ietf.org/> appear in-between ietf.org. and _dmarc.ietf.org <http://dmarc.ietf.org/>? Or do we only need to prove that *.ietf.org <http://ietf.org/> appears in-between ietf.org. and _dmarc.ietf.org <http://dmarc.ietf.org/>? If so why do we choose *.ietf.org <http://ietf.org/> instead of *.org or *? Thanks. -- Joey Deng
- Re: [DNSOP] How does NSEC record(s) prove the Nam… Mark Andrews
- Re: [DNSOP] How does NSEC record(s) prove the Nam… Matthijs Mekking
- Re: [DNSOP] How does NSEC record(s) prove the Nam… Viktor Dukhovni
- [DNSOP] How does NSEC record(s) prove the Name Er… Joey Deng
- Re: [DNSOP] How does NSEC record(s) prove the Nam… Mark Andrews
- Re: [DNSOP] How does NSEC record(s) prove the Nam… Viktor Dukhovni