<?xml version="1.0" encoding="UTF-8"?>
  <?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
  <!-- generated by https://github.com/cabo/kramdown-rfc2629 version 1.3.32 -->

<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
]>

<?rfc toc="yes"?>
<?rfc sortrefs="yes"?>
<?rfc symrefs="yes"?>
<?rfc docmapping="yes"?>

<rfc ipr="trust200902" docName="draft-hardaker-dnsop-nsec3-guidance-03" category="bcp">

  <front>
    <title abbrev="title">Guidance for NSEC3 parameter settings</title>

    <author initials="W." surname="Hardaker" fullname="Wes Hardaker">
      <organization>USC/ISI</organization>
      <address>
        <email>ietf@hardakers.net</email>
      </address>
    </author>
    <author initials="V." surname="Dukhovni" fullname="Viktor Dukhovni">
      <organization>Bloomberg, L.P.</organization>
      <address>
        <email>ietf-dane@dukhovni.org</email>
      </address>
    </author>

    <date year="2021" month="May" day="06"/>

    
    
    

    <abstract>


<t>NSEC3 is a DNSSEC mechanism providing proof of non-existence by
promising there are no names that exist between two domainnames within
a zone.  Unlike its counterpart NSEC, NSEC3 avoids directly disclosing
the bounding domainname pairs.  This document provides guidance on
setting NSEC3 parameters based on recent operational deployment
experience.</t>



    </abstract>


  </front>

  <middle>


<section anchor="introduction" title="Introduction">

<t>As with NSEC <xref target="RFC4035"/>, NSEC3 <xref target="RFC5155"/> provides proof of
non-existence that consists of signed DNS records establishing the
non-existence of a given name or associated Resource Record Type
(RRTYPE) in a DNSSEC <xref target="RFC4035"/> signed zone.  In the case of NSEC3,
however, the names of valid nodes in the zone are obfuscated through
(possibly multiple iterations of) hashing via SHA-1. (currently only
SHA-1 is in use within the Internet).</t>

<t>NSEC3 also provides “opt-out support”, allowing for blocks of unsigned
delegations to be covered by a single NSEC3 record.  Use of the
opt-out feature allow large registries to only sign as many NSEC3
records as there are signed DS or other RRsets in the zone – with
opt-out, unsigned delegations don’t require additional NSEC3 records.
This sacrifices the tamper-resistance proof of non-existence offered
by NSEC3 in order to reduce memory and CPU overheads.</t>

<t>NSEC3 records have a number of tunable parameters that are specified
via an NSEC3PARAM record at the zone apex.  These parameters are the
Hash Algorithm, processing Flags, the number of hash Iterations and
the Salt.  Each of these has security and operational considerations
that impact both zone owners and validating resolvers.  This document
provides some best-practice recommendations for setting the NSEC3
parameters.</t>

<section anchor="requirements-notation" title="Requirements notation">

<t>The key words “MUST”, “MUST NOT”, “REQUIRED”, “SHALL”, “SHALL NOT”,
   “SHOULD”, “SHOULD NOT”, “RECOMMENDED”, “NOT RECOMMENDED”, “MAY”,
   and “OPTIONAL” in this document are to be interpreted as described
   in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they appear
   in all capitals, as shown here.</t>

</section>
</section>
<section anchor="recommendation-for-zone-publishers" title="Recommendation for zone publishers">

<t>The following sections describe recommendations for setting parameters
for NSEC3 and NSEC3PARAM.</t>

<section anchor="algorithms" title="Algorithms">

<t>The algorithm field is not discussed by this document.</t>

</section>
<section anchor="flags" title="Flags">

<t>The NSEC3PARAM flags field currently contains no flags, but individual NSEC3
records contain the “Opt-Out” flag <xref target="RFC5155"/>, which specifies whether or not that NSEC3
record provides proof of non-existence or not.  In general, NSEC3 with
the Opt-Out flag enabled should only be used in large, highly dynamic
zones with a small percentage of signed delegations.  Operationally,
this allows for fewer signature creations when new delegations are
inserted into a zone.  This is typically only necessary for extremely
large registration points providing zone updates faster than
real-time signing allows.  Smaller zones, or large but relatively
static zones, are encouraged to use a Flags value of 0 (zero) and take
advantage of DNSSEC’s proof-of-non-existence support.</t>

</section>
<section anchor="iterations" title="Iterations">

<t>NSEC3 records are created by first hashing the input domain and then
repeating that hashing algorithm a number of times based on the
iterations parameter in the NSEC3PARM and NSEC3 records.  The first
hash is typically sufficient to discourage zone enumeration performed
by “zone walking” an NSEC or NSEC3 chain.  Only determined parties
with significant resources are likely to try and uncover hashed
values, regardless of the number of additional iterations performed.
If an adversary really wants to expend significant CPU resources to
mount an offline dictionary attack on a zone’s NSEC3 chain, they’ll
likely be able to find most of the “guessable” names despite any
level of additional hashing iterations.</t>

<t>Most names published in the DNS are rarely secret or unpredictable.
They are published to be memorable, used and consumed by humans.  They
are often recorded in many other network logs such as email logs,
certificate transparency logs, web page links, intrusion detection
systems, malware scanners, email archives, etc.  Many times a simple
dictionary of commonly used domain names prefixes (www, ftp, mail,
imap, login, database, etc) can be used to quickly reveal a large
number of labels within a zone.  Because of this, there are increasing
performance costs yet diminishing returns associated with applying
additional hash iterations beyond the first.</t>

<t>Although Section 10.3 of <xref target="RFC5155"/> specifies upper bounds for the
number of hash iterations to use, there is no published guidance for
zone owners about good values to select.  Because hashing provides
only moderate protection, as shown recently in academic studies of
NSEC3 protected zones <xref target="GPUNSEC3"/><xref target="ZONEENUM"/>, this document
recommends that zone owners SHOULD use an iteration value of 0 (zero),
indicating that only the initial hash value should be placed into a
DNS zone’s NSEC3 records.</t>

<t>TODO: discuss the authoritative overhead of needing to find the right
range for new random strings coming in.  Note white-lies online
signing differences.</t>

</section>
<section anchor="salt" title="Salt">

<t>Salts add yet another layer of protection against offline, stored
dictionary attacks by combining the value to be hashed (in our case, a
DNS domainname) with a randomly generated value.  This prevents
adversaries from building up and remembering a dictionary of values
that can translate a hash output back to the value that it derived from.</t>

<t>In the case of DNS, it should be noted the hashed names placed in
NSEC3 records already include the fully-qualified domain name from
each zone.  Thus, no single pre-computed table works to speed up
dictionary attacks against multiple target zones.  An attacker is
required to compute a complete dictionary per zone, which is expensive
in both storage and CPU time.</t>

<t>To protect against a dictionary being built and used for a target
zone, an additional salt field can be included and changed on a
regular basis, forcing a would-be attacker to repeatedly compute a new
dictionary (or just do trial and error without the benefits of
precomputation).</t>

<t>Changing a zone’s salt value requires the construction of a complete
new NSEC3 chain.  This is true both when resigning the entire zone at
once, or incrementally signing it in the background where the new salt
is only activated once every name in the chain has been completed.</t>

<t>Most users of NSEC3 publish static salt values that never change.
This provides no added security benefit (because the complete fully
qualified domain name is already unique).  If no rotation is planned,
operators are encouraged to forgo the salt entirely by using a
zero-length salt value instead (represented as a “-“ in the 
presentation format).</t>

</section>
</section>
<section anchor="best-practice-for-zone-publishers" title="Best-practice for zone publishers">

<t>In short, for all zones, the recommended NSEC3 parameters are as
shown below:</t>

<figure><artwork><![CDATA[
; SHA-1, no extra iterations, empty salt:
;
bcp.example. IN NSEC3PARAM 1 0 0 -
]]></artwork></figure>

<t>For small zones, the use of opt-out based NSEC3 records is NOT
RECOMMENDED.</t>

<t>For very large and sparsely signed zones, where the majority of the
records are insecure delegations, opt-out MAY be used.</t>

</section>
<section anchor="recommendation-for-validating-resolvers" title="Recommendation for validating resolvers">

<t>Because there has been a large growth of open (public) DNSSEC
validating resolvers that are subject to compute resource constraints
when handling requests from anonymous clients, this document
recommends that validating resolvers should change their behavior with
respect to large iteration values.  Validating resolvers SHOULD return
an insecure response when processing NSEC3 records with iterations
larger than 100.  Validating resolvers MAY return SERVFAIL when
processing NSEC3 records with iterations larger than 500.  Note that
this significantly decreases the requirements originally specified in
Section 10.3 of <xref target="RFC5155"/>.</t>

<t>Note that a validating resolver MUST still validate the signature over
the NSEC3 record to ensure the iteration count was not altered since
record publication (see <xref target="RFC5155"/> section 10.3).</t>

<t>Validating resolvers returning an insecure or SERVFAIL answer in this
situation SHOULD return an Extended DNS Error (EDE) {RFC8914} EDNS0
option of value [TBD].</t>

</section>
<section anchor="security-considerations" title="Security Considerations">

<t>This entire document discusses security considerations with various
parameters selections of NSEC3 and NSEC3PARAM fields.</t>

</section>
<section anchor="operational-considerations" title="Operational Considerations">

<t>This entire document discusses operational considerations with various
parameters selections of NSEC3 and NSEC3PARAM fields.</t>

</section>
<section anchor="iana-considerations" title="IANA Considerations">

<t>This document requests a new allocation in the “Extended DNS Error
Codes” of the “Domain Name System (DNS) Parameters” registration
table with the following characteristics:</t>

<t><list style="symbols">
  <t>INFO-CODE: TBD</t>
  <t>Purpose: Unsupported NSEC3 iterations value</t>
  <t>Reference: this document</t>
</list></t>

</section>


  </middle>

  <back>

    <references title='Normative References'>





<reference  anchor="RFC2119" target='https://www.rfc-editor.org/info/rfc2119'>
<front>
<title>Key words for use in RFCs to Indicate Requirement Levels</title>
<author initials='S.' surname='Bradner' fullname='S. Bradner'><organization /></author>
<date year='1997' month='March' />
<abstract><t>In many standards track documents several words are used to signify the requirements in the specification.  These words are often capitalized. This document defines these words as they should be interpreted in IETF documents.  This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t></abstract>
</front>
<seriesInfo name='BCP' value='14'/>
<seriesInfo name='RFC' value='2119'/>
<seriesInfo name='DOI' value='10.17487/RFC2119'/>
</reference>



<reference  anchor="RFC5155" target='https://www.rfc-editor.org/info/rfc5155'>
<front>
<title>DNS Security (DNSSEC) Hashed Authenticated Denial of Existence</title>
<author initials='B.' surname='Laurie' fullname='B. Laurie'><organization /></author>
<author initials='G.' surname='Sisson' fullname='G. Sisson'><organization /></author>
<author initials='R.' surname='Arends' fullname='R. Arends'><organization /></author>
<author initials='D.' surname='Blacka' fullname='D. Blacka'><organization /></author>
<date year='2008' month='March' />
<abstract><t>The Domain Name System Security (DNSSEC) Extensions introduced the NSEC resource record (RR) for authenticated denial of existence. This document introduces an alternative resource record, NSEC3, which similarly provides authenticated denial of existence.  However, it also provides measures against zone enumeration and permits gradual expansion of delegation-centric zones.  [STANDARDS-TRACK]</t></abstract>
</front>
<seriesInfo name='RFC' value='5155'/>
<seriesInfo name='DOI' value='10.17487/RFC5155'/>
</reference>



<reference  anchor="RFC4035" target='https://www.rfc-editor.org/info/rfc4035'>
<front>
<title>Protocol Modifications for the DNS Security Extensions</title>
<author initials='R.' surname='Arends' fullname='R. Arends'><organization /></author>
<author initials='R.' surname='Austein' fullname='R. Austein'><organization /></author>
<author initials='M.' surname='Larson' fullname='M. Larson'><organization /></author>
<author initials='D.' surname='Massey' fullname='D. Massey'><organization /></author>
<author initials='S.' surname='Rose' fullname='S. Rose'><organization /></author>
<date year='2005' month='March' />
<abstract><t>This document is part of a family of documents that describe the DNS Security Extensions (DNSSEC).  The DNS Security Extensions are a collection of new resource records and protocol modifications that add data origin authentication and data integrity to the DNS.  This document describes the DNSSEC protocol modifications.  This document defines the concept of a signed zone, along with the requirements for serving and resolving by using DNSSEC.  These techniques allow a security-aware resolver to authenticate both DNS resource records and authoritative DNS error indications. </t><t> This document obsoletes RFC 2535 and incorporates changes from all updates to RFC 2535.  [STANDARDS-TRACK]</t></abstract>
</front>
<seriesInfo name='RFC' value='4035'/>
<seriesInfo name='DOI' value='10.17487/RFC4035'/>
</reference>




    </references>

    <references title='Informative References'>

<reference anchor="GPUNSEC3" >
  <front>
    <title>GPU-Based NSEC3 Hash Breaking</title>
    <author initials="M." surname="Wander" fullname="M. Wander">
      <organization></organization>
    </author>
    <author initials="L." surname="Schwittmann" fullname="L. Schwittmann">
      <organization></organization>
    </author>
    <author initials="C." surname="Boelmann" fullname="C. Boelmann">
      <organization></organization>
    </author>
    <author initials="T." surname="Weis" fullname="T. Weis">
      <organization></organization>
    </author>
    <date year="2014"/>
  </front>
  <seriesInfo name="DOI" value="10.1109/NCA.2014.27"/>
</reference>
<reference anchor="ZONEENUM" >
  <front>
    <title>An efficient DNSSEC zone enumeration algorithm</title>
    <author initials="Z." surname="Wang" fullname="Zheng Wang">
      <organization></organization>
    </author>
    <author initials="L." surname="Xiao" fullname="Liyuan Xiao">
      <organization></organization>
    </author>
    <author initials="R." surname="Wang" fullname="Rui Wang">
      <organization></organization>
    </author>
    <date year="n.d."/>
  </front>
</reference>




<reference  anchor="RFC8174" target='https://www.rfc-editor.org/info/rfc8174'>
<front>
<title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
<author initials='B.' surname='Leiba' fullname='B. Leiba'><organization /></author>
<date year='2017' month='May' />
<abstract><t>RFC 2119 specifies common key words that may be used in protocol  specifications.  This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the  defined special meanings.</t></abstract>
</front>
<seriesInfo name='BCP' value='14'/>
<seriesInfo name='RFC' value='8174'/>
<seriesInfo name='DOI' value='10.17487/RFC8174'/>
</reference>




    </references>


<section anchor="acknowledgments" title="Acknowledgments">

<t>dns-operations discussion participants</t>

</section>
<section anchor="github-version-of-this-document" title="Github Version of this document">

<t>While this document is under development, it can be viewed, tracked,
issued, pushed with PRs, … here:</t>

<t>https://github.com/hardaker/draft-hardaker-dnsop-nsec3-guidance</t>

</section>


  </back>

<!-- ##markdown-source:
H4sIAIRjlGAAA61abXPbRpL+Pr9iiv4QqZakJdup3XA/3MqSnKjKejm9OJds
bV0NgSE5EQggmAFprsv//Z7ungFAWtnbq7qUY1MgMNPT/fTTTzc0mUxUcKGw
Mz36sXW5KTOrF1Wjbx4uz9/q2jRmbYNttLchuHLpR8rM543dzDQ/pvIqK3HL
TOeNWYTJyjS5ebbNJC99VU9Kb7O3k2VceHLyVmUm2GXV7GZ6ntXK1Q0Walof
3pyc/HDyRikfTJn/tymqEmvurFe1m+m/hyoba181obELj0+7tXzA7mtT1zDs
H0qZNqyqZqa0nuB/rV3pZ/rnqf4p2sQXxdifrd+/XDXLmX56OH999XDFF+za
uGKmnQ2Lv6VD+Wlpw/7yn6b6on1eVZvSDZb/5J4DfLj3De/wvqiq9dw2y7H+
OL2bHu40gZvs3/L42BSPKFVWzdoEt7F0sPsP529OT3+IH78//f77+PHdyVt8
VK5cDG//8e6J4zjjjWKccXHy3nibxxj/ZPxKv2+seYYb+cbekfTfJP4bT3w9
1T8jRNFv/ZkPrx889nGqH7LV1oWwNmV58OyLXx4scD7V7ytbvPD0t98cPPoI
06zzB48Nr+ZA5Uy/OTl9xz962zjryZnJCRe3VzN9ejI9PT354fXN+dmU7p2+
+TO+/vX25vLy5ul6z8lnpbaLhcucLYO+uHmAp/U/gWlty3ZtG0SoKrUpkAku
rNYveV3vn+FXdu/y4Ay/rmy5HH5x+Bg8+1/OVIf+drvWlMNvDp+7f3G7+9bJ
ZaUmk4k2cx8akwWlBEnOa5MOu7bZypTOr3XdVBuXA1v0qVpo/CmrcmI/Ox8s
0c18p/DN2nm6J6xsY7XB/2XFu3pcMkHz7Xpuw9baUodthdxH4pRyC6CzcqUy
7OOp1k9l4Z6tdsHrrGpLEBiYLDDgxxH2ZlO53OvcNTYLxQ4ffFZUZIOCDXqO
x9jofhuwoQMHaP24wklBPYgkoivngxGJ5nRVqkiXhzTq9ZwzD8HHtvR0VUc0
mELnti6qHS2q7OeaMIjVpuLrtctz0K16pa/K0FR5m9FDSp3J4Xkj/eVLpIKv
X9Mx+RIRxdevvaUpEGo/EOzorCo9LniKk3fLEtYipGRu1cBfFgQ9L5xfxWAd
LIGHjF6CfkoOHlhPG++rzCHBcn1vfdU2uO2eV9OPu9qqo/v7x1/uLo8BvB4+
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
8SF4JwAA

-->

</rfc>

