Zeros Are Heroes: NSEC3 Parameter Settings in the Wild

About

Domain Name System Security Extensions (DNSSEC) enhanced the security of conventional DNS by providing data integrity and origin authentication, but enabled zone walking as a side effect. To address this issue, the Next Secure (NSEC3) resource record provides an authenticated denial of existence mechanism based on hashes of domain names. However, an improper selection of the NSEC3 parameters may significantly degrade the performance of resolvers and authoritative name servers alike. RFC 9276 (Guidance for NSEC3 Parameter Settings) imposes additional constraints on hash computation parameters, crucial in light of emerging security threats such as CPU resource exhaustion attacks. Despite this guideline, our analysis of over 302 million registered domain names reveals that 87.8% of 15.5 million NSEC3-enabled domains fail to adhere to RFC 9276 with a dozen using 500 additional hash iterations. Furthermore, 78.3% of 114 million open and closed validating resolvers impose the RFC's additional constraints on hash iterations with 18.4% returning SERVFAIL, possibly rendering non-compliant domains unreachable.

Paper

We describe our findings in greater details in our paper. Please use the below citation to refer to it:

                
                
                @inproceedings{daniluk2024imc,
                    author = {Daniluk, Cordian A. and Nosyk, Yevheniya and KorczyƄski, Maciej and Duda, Andrzej},
                    title = {Zeros Are Heroes: NSEC3 Parameter Settings in the Wild},
                    year = {2024},
                    publisher = {Association for Computing Machinery},
                    address = {New York, NY, USA},
                    url = {https://doi.org/10.1145/3646547.3689017},
                    doi = {10.1145/3646547.3689017},
                    booktitle = {Proceedings of the 2024 ACM Internet Measurement Conference},
                    location = {Madrid, Spain},
                    series = {IMC '24}
                }
                
            

Testing Infrastructure

This (rfc9276-in-the-wild.com) domain name has the following subdomains. Each one implements RFC 5155 with no salt and a certain number of additional iterations that is also indicated in the domain name. Feel free to query any subdomain of these subdomains to check how your recursive resolver behaves when faced with NSEC3 records with the corresponding number of additional iterations.

Subdomain Configuration
validA correctly configured domain using RFC 5155 with no salt and no additional iterations
expiredNo salt and no additional iterations; all signatures are expired
it-1No salt and 1 additional iterations
it-2No salt and 2 additional iterations
it-3No salt and 3 additional iterations
it-4No salt and 4 additional iterations
it-5No salt and 5 additional iterations
it-6No salt and 6 additional iterations
it-7No salt and 7 additional iterations
it-8No salt and 8 additional iterations
it-9No salt and 9 additional iterations
it-10No salt and 10 additional iterations
it-11No salt and 11 additional iterations
it-12No salt and 12 additional iterations
it-13No salt and 13 additional iterations
it-14No salt and 14 additional iterations
it-15No salt and 15 additional iterations
it-16No salt and 16 additional iterations
it-17No salt and 17 additional iterations
it-18No salt and 18 additional iterations
it-19No salt and 19 additional iterations
it-20No salt and 20 additional iterations
it-21No salt and 21 additional iterations
it-22No salt and 22 additional iterations
it-23No salt and 23 additional iterations
it-24No salt and 24 additional iterations
it-25No salt and 25 additional iterations
it-50No salt and 50 additional iterations
it-51No salt and 51 additional iterations
it-75No salt and 75 additional iterations
it-100No salt and 100 additional iterations
it-101No salt and 101 additional iterations
it-125No salt and 125 additional iterations
it-150No salt and 150 additional iterations
it-151No salt and 151 additional iterations
it-175No salt and 175 additional iterations
it-200No salt and 200 additional iterations
it-225No salt and 225 additional iterations
it-250No salt and 250 additional iterations
it-275No salt and 275 additional iterations
it-300No salt and 300 additional iterations
it-325No salt and 325 additional iterations
it-350No salt and 350 additional iterations
it-375No salt and 375 additional iterations
it-400No salt and 400 additional iterations
it-425No salt and 425 additional iterations
it-450No salt and 450 additional iterations
it-475No salt and 475 additional iterations
it-500No salt and 500 additional iterations
it-501No salt and 501 additional iterations
it-2500No salt and 2500 additional iterations
it-2501No salt and 2501 additional iterations
it-2501-expiredNo salt and 2501 additional iterations; in addition, the signature on the NSEC3 RRset is expired

Contact Us

If you want to find out more about this project, contact us at yevheniya.nosyk@korlabs.io.