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.
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} }
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 |
---|---|
valid | A correctly configured domain using RFC 5155 with no salt and no additional iterations |
expired | No salt and no additional iterations; all signatures are expired |
it-1 | No salt and 1 additional iterations |
it-2 | No salt and 2 additional iterations |
it-3 | No salt and 3 additional iterations |
it-4 | No salt and 4 additional iterations |
it-5 | No salt and 5 additional iterations |
it-6 | No salt and 6 additional iterations |
it-7 | No salt and 7 additional iterations |
it-8 | No salt and 8 additional iterations |
it-9 | No salt and 9 additional iterations |
it-10 | No salt and 10 additional iterations |
it-11 | No salt and 11 additional iterations |
it-12 | No salt and 12 additional iterations |
it-13 | No salt and 13 additional iterations |
it-14 | No salt and 14 additional iterations |
it-15 | No salt and 15 additional iterations |
it-16 | No salt and 16 additional iterations |
it-17 | No salt and 17 additional iterations |
it-18 | No salt and 18 additional iterations |
it-19 | No salt and 19 additional iterations |
it-20 | No salt and 20 additional iterations |
it-21 | No salt and 21 additional iterations |
it-22 | No salt and 22 additional iterations |
it-23 | No salt and 23 additional iterations |
it-24 | No salt and 24 additional iterations |
it-25 | No salt and 25 additional iterations |
it-50 | No salt and 50 additional iterations |
it-51 | No salt and 51 additional iterations |
it-75 | No salt and 75 additional iterations |
it-100 | No salt and 100 additional iterations |
it-101 | No salt and 101 additional iterations |
it-125 | No salt and 125 additional iterations |
it-150 | No salt and 150 additional iterations |
it-151 | No salt and 151 additional iterations |
it-175 | No salt and 175 additional iterations |
it-200 | No salt and 200 additional iterations |
it-225 | No salt and 225 additional iterations |
it-250 | No salt and 250 additional iterations |
it-275 | No salt and 275 additional iterations |
it-300 | No salt and 300 additional iterations |
it-325 | No salt and 325 additional iterations |
it-350 | No salt and 350 additional iterations |
it-375 | No salt and 375 additional iterations |
it-400 | No salt and 400 additional iterations |
it-425 | No salt and 425 additional iterations |
it-450 | No salt and 450 additional iterations |
it-475 | No salt and 475 additional iterations |
it-500 | No salt and 500 additional iterations |
it-501 | No salt and 501 additional iterations |
it-2500 | No salt and 2500 additional iterations |
it-2501 | No salt and 2501 additional iterations |
it-2501-expired | No salt and 2501 additional iterations; in addition, the signature on the NSEC3 RRset is expired |
If you want to find out more about this project, contact us at yevheniya.nosyk@korlabs.io.