1 Internet Engineering Task Force (IETF)                    S. Weiler, Ed.   
    2 Request for Comments: 6840                                  SPARTA, Inc.   
    3 Updates: 4033, 4034, 4035, 5155                           D. Blacka, Ed.   
    4 Category: Standards Track                                 Verisign, Inc.   
    5 ISSN: 2070-1721                                            February 2013   
    6                                                                            
    7                                                                            
    8    Clarifications and Implementation Notes for DNS Security (DNSSEC)       
    9                                                                            
   10 Abstract                                                                   
   11                                                                            
   12    This document is a collection of technical clarifications to the DNS    
   13    Security (DNSSEC) document set.  It is meant to serve as a resource     
   14    to implementors as well as a collection of DNSSEC errata that existed   
   15    at the time of writing.                                                 
   16                                                                            
   17    This document updates the core DNSSEC documents (RFC 4033, RFC 4034,    
   18    and RFC 4035) as well as the NSEC3 specification (RFC 5155).  It also   
   19    defines NSEC3 and SHA-2 (RFC 4509 and RFC 5702) as core parts of the    
   20    DNSSEC specification.                                                   
   21                                                                            
   22 Status of This Memo                                                        
   23                                                                            
   24    This is an Internet Standards Track document.                           
   25                                                                            
   26    This document is a product of the Internet Engineering Task Force       
   27    (IETF).  It represents the consensus of the IETF community.  It has     
   28    received public review and has been approved for publication by the     
   29    Internet Engineering Steering Group (IESG).  Further information on     
   30    Internet Standards is available in Section 2 of RFC 5741.               
   31                                                                            
   32    Information about the current status of this document, any errata,      
   33    and how to provide feedback on it may be obtained at                    
   34    http://www.rfc-editor.org/info/rfc6840.                                 
   35                                                                            
   36                                                                            
   37                                                                            
   38                                                                            
   39                                                                            
   40                                                                            
   41                                                                            
   42                                                                            
   43                                                                            
   44                                                                            
   45                                                                            
   46                                                                            
   47                                                                            
   48                                                                            
   49                                                                            
   50                                                                            
   51                                                                            
   52 Weiler & Blacka              Standards Track                    [Page 1]   

   53 RFC 6840               DNSSEC Implementation Notes         February 2013   
   54                                                                            
   55                                                                            
   56 Copyright Notice                                                           
   57                                                                            
   58    Copyright (c) 2013 IETF Trust and the persons identified as the         
   59    document authors.  All rights reserved.                                 
   60                                                                            
   61    This document is subject to BCP 78 and the IETF Trust's Legal           
   62    Provisions Relating to IETF Documents                                   
   63    (http://trustee.ietf.org/license-info) in effect on the date of         
   64    publication of this document.  Please review these documents            
   65    carefully, as they describe your rights and restrictions with respect   
   66    to this document.  Code Components extracted from this document must    
   67    include Simplified BSD License text as described in Section 4.e of      
   68    the Trust Legal Provisions and are provided without warranty as         
   69    described in the Simplified BSD License.                                
   70                                                                            
   71    This document may contain material from IETF Documents or IETF          
   72    Contributions published or made publicly available before November      
   73    10, 2008.  The person(s) controlling the copyright in some of this      
   74    material may not have granted the IETF Trust the right to allow         
   75    modifications of such material outside the IETF Standards Process.      
   76    Without obtaining an adequate license from the person(s) controlling    
   77    the copyright in such materials, this document may not be modified      
   78    outside the IETF Standards Process, and derivative works of it may      
   79    not be created outside the IETF Standards Process, except to format     
   80    it for publication as an RFC or to translate it into languages other    
   81    than English.                                                           
   82                                                                            
   83                                                                            
   84                                                                            
   85                                                                            
   86                                                                            
   87                                                                            
   88                                                                            
   89                                                                            
   90                                                                            
   91                                                                            
   92                                                                            
   93                                                                            
   94                                                                            
   95                                                                            
   96                                                                            
   97                                                                            
   98                                                                            
   99                                                                            
  100                                                                            
  101                                                                            
  102                                                                            
  103                                                                            
  104                                                                            
  105                                                                            
  106                                                                            
  107 Weiler & Blacka              Standards Track                    [Page 2]   

  108 RFC 6840               DNSSEC Implementation Notes         February 2013   
  109                                                                            
  110                                                                            
  111 Table of Contents                                                          
  112                                                                            
  113    1. Introduction and Terminology ....................................4   
  114       1.1. Structure of This Document .................................4   
  115       1.2. Terminology ................................................4   
  116    2. Important Additions to DNSSEC ...................................4   
  117       2.1. NSEC3 Support ..............................................4   
  118       2.2. SHA-2 Support ..............................................5   
  119    3. Scaling Concerns ................................................5   
  120       3.1. Implement a BAD Cache ......................................5   
  121    4. Security Concerns ...............................................5   
  122       4.1. Clarifications on Nonexistence Proofs ......................5   
  123       4.2. Validating Responses to an ANY Query .......................6   
  124       4.3. Check for CNAME ............................................6   
  125       4.4. Insecure Delegation Proofs .................................7   
  126    5. Interoperability Concerns .......................................7   
  127       5.1. Errors in Canonical Form Type Code List ....................7   
  128       5.2. Unknown DS Message Digest Algorithms .......................7   
  129       5.3. Private Algorithms .........................................8   
  130       5.4. Caution about Local Policy and Multiple RRSIGs .............9   
  131       5.5. Key Tag Calculation ........................................9   
  132       5.6. Setting the DO Bit on Replies ..............................9   
  133       5.7. Setting the AD Bit on Queries .............................10   
  134       5.8. Setting the AD Bit on Replies .............................10   
  135       5.9. Always Set the CD Bit on Queries ..........................10   
  136       5.10. Nested Trust Anchors .....................................11   
  137       5.11. Mandatory Algorithm Rules ................................11   
  138       5.12. Ignore Extra Signatures from Unknown Keys ................12   
  139    6. Minor Corrections and Clarifications ...........................12   
  140       6.1. Finding Zone Cuts .........................................12   
  141       6.2. Clarifications on DNSKEY Usage ............................12   
  142       6.3. Errors in Examples ........................................13   
  143       6.4. Errors in RFC 5155 ........................................13   
  144    7. Security Considerations ........................................13   
  145    8. References .....................................................14   
  146       8.1. Normative References ......................................14   
  147       8.2. Informative References ....................................15   
  148    Appendix A. Acknowledgments .......................................16   
  149    Appendix B. Discussion of Setting the CD Bit ......................16   
  150    Appendix C. Discussion of Trust Anchor Preference Options .........19   
  151       C.1. Closest Encloser ..........................................19   
  152       C.2. Accept Any Success ........................................20   
  153       C.3. Preference Based on Source ................................20   
  154                                                                            
  155                                                                            
  156                                                                            
  157                                                                            
  158                                                                            
  159                                                                            
  160                                                                            
  161                                                                            
  162 Weiler & Blacka              Standards Track                    [Page 3]   

  163 RFC 6840               DNSSEC Implementation Notes         February 2013   
  164                                                                            
  165                                                                            
  166 1.  Introduction and Terminology                                           
  167                                                                            
  168    This document lists some additions, clarifications, and corrections     
  169    to the core DNSSEC specification, as originally described in            
  170    [RFC4033], [RFC4034], and [RFC4035], and later amended by [RFC5155].    
  171    (See Section 2 for more recent additions to that core document set.)    
  172                                                                            
  173    It is intended to serve as a resource for implementors and as a         
  174    repository of items existing at the time of writing that need to be     
  175    addressed when advancing the DNSSEC documents along the Standards       
  176    Track.                                                                  
  177                                                                            
  178 1.1.  Structure of This Document                                           
  179                                                                            
  180    The clarifications and changes to DNSSEC are sorted according to        
  181    their importance, starting with ones which could, if ignored, lead to   
  182    security problems and progressing down to clarifications that are       
  183    expected to have little operational impact.                             
  184                                                                            
  185 1.2.  Terminology                                                          
  186                                                                            
  187    The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",     
  188    "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and    
  189    "OPTIONAL" in this document are to be interpreted as described in       
  190    [RFC2119].                                                              
  191                                                                            
  192 2.  Important Additions to DNSSEC                                          
  193                                                                            
  194    This section lists some documents that are now considered core DNSSEC   
  195    protocol documents in addition to those originally specified in         
  196    Section 10 of [RFC4033].                                                
  197                                                                            
  198 2.1.  NSEC3 Support                                                        
  199                                                                            
  200    [RFC5155] describes the use and behavior of the NSEC3 and NSEC3PARAM    
  201    records for hashed denial of existence.  Validator implementations      
  202    are strongly encouraged to include support for NSEC3 because a number   
  203    of highly visible zones use it.  Validators that do not support         
  204    validation of responses using NSEC3 will be hampered in validating      
  205    large portions of the DNS space.                                        
  206                                                                            
  207    [RFC5155] is now considered part of the DNS Security Document Family    
  208    as described by Section 10 of [RFC4033].                                
  209                                                                            
  210                                                                            
  211                                                                            
  212                                                                            
  213                                                                            
  214                                                                            
  215                                                                            
  216                                                                            
  217 Weiler & Blacka              Standards Track                    [Page 4]   

  218 RFC 6840               DNSSEC Implementation Notes         February 2013   
  219                                                                            
  220                                                                            
  221    Note that the algorithm identifiers defined in [RFC5155] (DSA-NSEC3-    
  222    SHA1 and RSASHA1-NSEC3-SHA1) and [RFC5702] (RSASHA256 and RSASHA512)    
  223    signal that a zone might be using NSEC3, rather than NSEC.  The zone    
  224    may be using either, and validators supporting these algorithms MUST    
  225    support both NSEC3 and NSEC responses.                                  
  226                                                                            
  227 2.2.  SHA-2 Support                                                        
  228                                                                            
  229    [RFC4509] describes the use of SHA-256 as a digest algorithm in         
  230    Delegation Signer (DS) RRs.  [RFC5702] describes the use of the         
  231    RSASHA256 and RSASHA512 algorithms in DNSKEY and RRSIG RRs.             
  232    Validator implementations are strongly encouraged to include support    
  233    for these algorithms for DS, DNSKEY, and RRSIG records.                 
  234                                                                            
  235    Both [RFC4509] and [RFC5702] are now considered part of the DNS         
  236    Security Document Family as described by Section 10 of [RFC4033].       
  237                                                                            
  238 3.  Scaling Concerns                                                       
  239                                                                            
  240 3.1.  Implement a BAD Cache                                                
  241                                                                            
  242    Section 4.7 of [RFC4035] permits security-aware resolvers to            
  243    implement a BAD cache.  That guidance has changed: security-aware       
  244    resolvers SHOULD implement a BAD cache as described in [RFC4035].       
  245                                                                            
  246    This change in guidance is based on operational experience with         
  247    DNSSEC administrative errors leading to significant increases in DNS    
  248    traffic, with an accompanying realization that such events are more     
  249    likely and more damaging than originally supposed.  An example of one   
  250    such event is documented in "Rolling Over DNSSEC Keys" [Huston].        
  251                                                                            
  252 4.  Security Concerns                                                      
  253                                                                            
  254    This section provides clarifications that, if overlooked, could lead    
  255    to security issues.                                                     
  256                                                                            
  257 4.1.  Clarifications on Nonexistence Proofs                                
  258                                                                            
  259    Section 5.4 of [RFC4035] under-specifies the algorithm for checking     
  260    nonexistence proofs.  In particular, the algorithm as presented would   
  261    allow a validator to interpret an NSEC or NSEC3 RR from an ancestor     
  262    zone as proving the nonexistence of an RR in a child zone.              
  263                                                                            
  264    An "ancestor delegation" NSEC RR (or NSEC3 RR) is one with:             
  265                                                                            
  266    o  the NS bit set,                                                      
  267                                                                            
  268    o  the Start of Authority (SOA) bit clear, and                          
  269                                                                            
  270                                                                            
  271                                                                            
  272 Weiler & Blacka              Standards Track                    [Page 5]   

  273 RFC 6840               DNSSEC Implementation Notes         February 2013   
  274                                                                            
  275                                                                            
  276    o  a signer field that is shorter than the owner name of the NSEC RR,   
  277       or the original owner name for the NSEC3 RR.                         
  278                                                                            
  279    Ancestor delegation NSEC or NSEC3 RRs MUST NOT be used to assume        
  280    nonexistence of any RRs below that zone cut, which include all RRs at   
  281    that (original) owner name other than DS RRs, and all RRs below that    
  282    owner name regardless of type.                                          
  283                                                                            
  284    Similarly, the algorithm would also allow an NSEC RR at the same        
  285    owner name as a DNAME RR, or an NSEC3 RR at the same original owner     
  286    name as a DNAME, to prove the nonexistence of names beneath that        
  287    DNAME.  An NSEC or NSEC3 RR with the DNAME bit set MUST NOT be used     
  288    to assume the nonexistence of any subdomain of that NSEC/NSEC3 RR's     
  289    (original) owner name.                                                  
  290                                                                            
  291 4.2.  Validating Responses to an ANY Query                                 
  292                                                                            
  293    [RFC4035] does not address how to validate responses when QTYPE=*.      
  294    As described in Section 6.2.2 of [RFC1034], a proper response to        
  295    QTYPE=* may include a subset of the RRsets at a given name.  That is,   
  296    it is not necessary to include all RRsets at the QNAME in the           
  297    response.                                                               
  298                                                                            
  299    When validating a response to QTYPE=*, all received RRsets that match   
  300    QNAME and QCLASS MUST be validated.  If any of those RRsets fail        
  301    validation, the answer is considered Bogus.  If there are no RRsets     
  302    matching QNAME and QCLASS, that fact MUST be validated according to     
  303    the rules in Section 5.4 of [RFC4035] (as clarified in this             
  304    document).  To be clear, a validator must not expect to receive all     
  305    records at the QNAME in response to QTYPE=*.                            
  306                                                                            
  307 4.3.  Check for CNAME                                                      
  308                                                                            
  309    Section 5 of [RFC4035] says nothing explicit about validating           
  310    responses based on (or that should be based on) CNAMEs.  When           
  311    validating a NOERROR/NODATA response, validators MUST check the CNAME   
  312    bit in the matching NSEC or NSEC3 RR's type bitmap in addition to the   
  313    bit for the query type.                                                 
  314                                                                            
  315    Without this check, an attacker could successfully transform a          
  316    positive CNAME response into a NOERROR/NODATA response by (for          
  317    example) simply stripping the CNAME RRset from the response.  A naive   
  318    validator would then note that the QTYPE was not present in the         
  319    matching NSEC/NSEC3 RR, but fail to notice that the CNAME bit was       
  320    set; thus, the response should have been a positive CNAME response.     
  321                                                                            
  322                                                                            
  323                                                                            
  324                                                                            
  325                                                                            
  326                                                                            
  327 Weiler & Blacka              Standards Track                    [Page 6]   

  328 RFC 6840               DNSSEC Implementation Notes         February 2013   
  329                                                                            
  330                                                                            
  331 4.4.  Insecure Delegation Proofs                                           
  332                                                                            
  333    Section 5.2 of [RFC4035] specifies that a validator, when proving a     
  334    delegation is not secure, needs to check for the absence of the DS      
  335    and SOA bits in the NSEC (or NSEC3) type bitmap.  The validator also    
  336    MUST check for the presence of the NS bit in the matching NSEC (or      
  337    NSEC3) RR (proving that there is, indeed, a delegation), or             
  338    alternately make sure that the delegation is covered by an NSEC3 RR     
  339    with the Opt-Out flag set.                                              
  340                                                                            
  341    Without this check, an attacker could reuse an NSEC or NSEC3 RR         
  342    matching a non-delegation name to spoof an unsigned delegation at       
  343    that name.  This would claim that an existing signed RRset (or set of   
  344    signed RRsets) is below an unsigned delegation, thus not signed and     
  345    vulnerable to further attack.                                           
  346                                                                            
  347 5.  Interoperability Concerns                                              
  348                                                                            
  349 5.1.  Errors in Canonical Form Type Code List                              
  350                                                                            
  351    When canonicalizing DNS names (for both ordering and signing), DNS      
  352    names in the RDATA section of NSEC resource records are not converted   
  353    to lowercase.  DNS names in the RDATA section of RRSIG resource         
  354    records are converted to lowercase.                                     
  355                                                                            
  356    The guidance in the above paragraph differs from what has been          
  357    published before but is consistent with current common practice.        
  358    Item 3 of Section 6.2 of [RFC4034] says that names in both of these     
  359    RR types should be converted to lowercase.  The earlier [RFC3755]       
  360    says that they should not.  Current practice follows neither document   
  361    fully.                                                                  
  362                                                                            
  363    Section 6.2 of [RFC4034] also erroneously lists HINFO as a record       
  364    that needs conversion to lowercase, and twice at that.  Since HINFO     
  365    records contain no domain names, they are not subject to case           
  366    conversion.                                                             
  367                                                                            
  368 5.2.  Unknown DS Message Digest Algorithms                                 
  369                                                                            
  370    Section 5.2 of [RFC4035] includes rules for how to handle delegations   
  371    to zones that are signed with entirely unsupported public key           
  372    algorithms, as indicated by the key algorithms shown in those zones'    
  373    DS RRsets.  It does not explicitly address how to handle DS records     
  374    that use unsupported message digest algorithms.  In brief, DS records   
  375    using unknown or unsupported message digest algorithms MUST be          
  376    treated the same way as DS records referring to DNSKEY RRs of unknown   
  377    or unsupported public key algorithms.                                   
  378                                                                            
  379                                                                            
  380                                                                            
  381                                                                            
  382 Weiler & Blacka              Standards Track                    [Page 7]   

  383 RFC 6840               DNSSEC Implementation Notes         February 2013   
  384                                                                            
  385                                                                            
  386    The existing text says:                                                 
  387                                                                            
  388       If the validator does not support any of the algorithms listed in    
  389       an authenticated DS RRset, then the resolver has no supported        
  390       authentication path leading from the parent to the child.  The       
  391       resolver should treat this case as it would the case of an           
  392       authenticated NSEC RRset proving that no DS RRset exists, as         
  393       described above.                                                     
  394                                                                            
  395    In other words, when determining the security status of a zone, a       
  396    validator disregards any authenticated DS records that specify          
  397    unknown or unsupported DNSKEY algorithms.  If none are left, the zone   
  398    is treated as if it were unsigned.                                      
  399                                                                            
  400    This document modifies the above text to additionally disregard         
  401    authenticated DS records using unknown or unsupported message digest    
  402    algorithms.                                                             
  403                                                                            
  404 5.3.  Private Algorithms                                                   
  405                                                                            
  406    As discussed above, Section 5.2 of [RFC4035] requires that validators   
  407    make decisions about the security status of zones based on the public   
  408    key algorithms shown in the DS records for those zones.  In the case    
  409    of private algorithms, as described in Appendix A.1.1 of [RFC4034],     
  410    the eight-bit algorithm field in the DS RR is not conclusive about      
  411    what algorithm(s) is actually in use.                                   
  412                                                                            
  413    If no private algorithms appear in the DS RRset, or if any supported    
  414    algorithm appears in the DS RRset, no special processing is needed.     
  415    Furthermore, if the validator implementation does not support any       
  416    private algorithms, or only supports private algorithms using an        
  417    algorithm number not present in the DS RRset, no special processing     
  418    is needed.                                                              
  419                                                                            
  420    In the remaining cases, the security status of the zone depends on      
  421    whether or not the resolver supports any of the private algorithms in   
  422    use (provided that these DS records use supported message digest        
  423    algorithms, as discussed in Section 5.2 of this document).  In these    
  424    cases, the resolver MUST retrieve the corresponding DNSKEY for each     
  425    private algorithm DS record and examine the public key field to         
  426    determine the algorithm in use.  The security-aware resolver MUST       
  427    ensure that the hash of the DNSKEY RR's owner name and RDATA matches    
  428    the digest in the DS RR as described in Section 5.2 of [RFC4035],       
  429    authenticating the DNSKEY.  If all of the retrieved and authenticated   
  430    DNSKEY RRs use unknown or unsupported private algorithms, then the      
  431    zone is treated as if it were unsigned.                                 
  432                                                                            
  433                                                                            
  434                                                                            
  435                                                                            
  436                                                                            
  437 Weiler & Blacka              Standards Track                    [Page 8]   

  438 RFC 6840               DNSSEC Implementation Notes         February 2013   
  439                                                                            
  440                                                                            
  441    Note that if none of the private algorithm DS RRs can be securely       
  442    matched to DNSKEY RRs and no other DS establishes that the zone is      
  443    secure, the referral should be considered Bogus data as discussed in    
  444    [RFC4035].                                                              
  445                                                                            
  446    This clarification facilitates the broader use of private algorithms,   
  447    as suggested by [RFC4955].                                              
  448                                                                            
  449 5.4.  Caution about Local Policy and Multiple RRSIGs                       
  450                                                                            
  451    When multiple RRSIGs cover a given RRset, Section 5.3.3 of [RFC4035]    
  452    suggests that "the local resolver security policy determines whether    
  453    the resolver also has to test these RRSIG RRs and how to resolve        
  454    conflicts if these RRSIG RRs lead to differing results".                
  455                                                                            
  456    This document specifies that a resolver SHOULD accept any valid RRSIG   
  457    as sufficient, and only determine that an RRset is Bogus if all         
  458    RRSIGs fail validation.                                                 
  459                                                                            
  460    If a resolver adopts a more restrictive policy, there's a danger that   
  461    properly signed data might unnecessarily fail validation due to cache   
  462    timing issues.  Furthermore, certain zone management techniques, like   
  463    the Double Signature Zone Signing Key Rollover method described in      
  464    Section 4.2.1.2 of [RFC6781], will not work reliably.  Such a           
  465    resolver is also vulnerable to malicious insertion of gibberish         
  466    signatures.                                                             
  467                                                                            
  468 5.5.  Key Tag Calculation                                                  
  469                                                                            
  470    Appendix B.1 of [RFC4034] incorrectly defines the Key Tag field         
  471    calculation for algorithm 1.  It correctly says that the Key Tag is     
  472    the most significant 16 of the least significant 24 bits of the         
  473    public key modulus.  However, [RFC4034] then goes on to incorrectly     
  474    say that this is fourth-to-last and third-to-last octets of the         
  475    public key modulus.  It is, in fact, the third-to-last and second-to-   
  476    last octets.                                                            
  477                                                                            
  478 5.6.  Setting the DO Bit on Replies                                        
  479                                                                            
  480    As stated in Section 3 of [RFC3225], the DNSSEC OK (DO) bit of the      
  481    query MUST be copied in the response.  However, in order to             
  482    interoperate with implementations that ignore this rule on sending,     
  483    resolvers MUST ignore the DO bit in responses.                          
  484                                                                            
  485                                                                            
  486                                                                            
  487                                                                            
  488                                                                            
  489                                                                            
  490                                                                            
  491                                                                            
  492 Weiler & Blacka              Standards Track                    [Page 9]   

  493 RFC 6840               DNSSEC Implementation Notes         February 2013   
  494                                                                            
  495                                                                            
  496 5.7.  Setting the AD Bit on Queries                                        
  497                                                                            
  498    The semantics of the Authentic Data (AD) bit in the query were          
  499    previously undefined.  Section 4.6 of [RFC4035] instructed resolvers    
  500    to always clear the AD bit when composing queries.                      
  501                                                                            
  502    This document defines setting the AD bit in a query as a signal         
  503    indicating that the requester understands and is interested in the      
  504    value of the AD bit in the response.  This allows a requester to        
  505    indicate that it understands the AD bit without also requesting         
  506    DNSSEC data via the DO bit.                                             
  507                                                                            
  508 5.8.  Setting the AD Bit on Replies                                        
  509                                                                            
  510    Section 3.2.3 of [RFC4035] describes under which conditions a           
  511    validating resolver should set or clear the AD bit in a response.  In   
  512    order to interoperate with legacy stub resolvers and middleboxes that   
  513    neither understand nor ignore the AD bit, validating resolvers SHOULD   
  514    only set the AD bit when a response both meets the conditions listed    
  515    in Section 3.2.3 of [RFC4035], and the request contained either a set   
  516    DO bit or a set AD bit.                                                 
  517                                                                            

The IETF is responsible for the creation and maintenance of the DNS RFCs. The ICANN DNS RFC annotation project provides a forum for collecting community annotations on these RFCs as an aid to understanding for implementers and any interested parties. The annotations displayed here are not the result of the IETF consensus process.

This RFC is included in the DNS RFCs annotation project whose home page is here.

GLOBAL Petr Špaček(Technical Erratum #4927) [Verified]
based on outdated version
(This document specifies no IANA Actions.)
It should say:
(Add following text:)
This document adds an additional reference for CD bit in the DNS
Parameters - DNS Header Flags registry.

RFC6840 introduces new requirements for validating resolvers. This should be reflected in the DNS Header Flags registry otherwise it is likely DNS Implementors will overlook the new behaviour.
GLOBAL Petr Špaček(Technical Erratum #4928) [Verified]
based on outdated version
(This document specifies no IANA Actions.)
It should say:
(Add following text:)
This document adds an additional reference for DO bit in the DNS
Parameters - DNS Header Flags registry.

RFC6840 introduces new behaviour for DO bit in replies. This should be reflected in the DNS Header Flags registry otherwise it is likely DNS Implementors will overlook the new behaviour.
GLOBAL Mark Andrews(Technical Erratum #4924) [Verified]
based on outdated version
This document specifies no IANA Actions.
It should say:
Add this document as an additional reference for AD in the
DNS Parameters - DNS Header Flags registry.

RFC6840 introduces new behaviour for AD in requests. This should be reflected in the DNS Header Flags registry otherwise it is likely DNS Implementors will overlook the new behaviour.
  518 5.9.  Always Set the CD Bit on Queries                                     
  519                                                                            
  520    When processing a request with the Checking Disabled (CD) bit set, a    
  521    resolver SHOULD attempt to return all response data, even data that     
  522    has failed DNSSEC validation.  Section 3.2.2 of [RFC4035] requires a    
  523    resolver processing a request with the CD bit set to set the CD bit     
  524    on its upstream queries.                                                
  525                                                                            
  526    This document further specifies that validating resolvers SHOULD set    
  527    the CD bit on every upstream query.  This is regardless of whether      
  528    the CD bit was set on the incoming query or whether it has a trust      
  529    anchor at or above the QNAME.                                           
  530                                                                            
  531    [RFC4035] is ambiguous about what to do when a cached response was      
  532    obtained with the CD bit unset, a case that only arises when the        
  533    resolver chooses not to set the CD bit on all upstream queries, as      
  534    specified above.  In the typical case, no new query is required, nor    
  535    does the cache need to track the state of the CD bit used to make a     
  536    given query.  The problem arises when the cached response is a server   
  537    failure (RCODE 2), which may indicate that the requested data failed    
  538    DNSSEC validation at an upstream validating resolver.  ([RFC2308]       
  539    permits caching of server failures for up to five minutes.)  In these   
  540    cases, a new query with the CD bit set is required.                     
  541                                                                            
  542    Appendix B discusses more of the logic behind the recommendation        
  543    presented in this section.                                              
  544                                                                            
  545                                                                            
  546                                                                            
  547 Weiler & Blacka              Standards Track                   [Page 10]   

  548 RFC 6840               DNSSEC Implementation Notes         February 2013   
  549                                                                            
  550                                                                            
  551 5.10.  Nested Trust Anchors                                                
  552                                                                            
  553    A DNSSEC validator may be configured such that, for a given response,   
  554    more than one trust anchor could be used to validate the chain of       
  555    trust to the response zone.  For example, imagine a validator           
  556    configured with trust anchors for "example." and "zone.example."        
  557    When the validator is asked to validate a response to                   
  558    "www.sub.zone.example.", either trust anchor could apply.               
  559                                                                            
  560    When presented with this situation, DNSSEC validators have a choice     
  561    of which trust anchor(s) to use.  Which to use is a matter of           
  562    implementation choice.  Appendix C discusses several possible           
  563    algorithms.                                                             
  564                                                                            
  565    It is possible and advisable to expose the choice of policy as a        
  566    configuration option.  As a default, it is suggested that validators    
  567    implement the "Accept Any Success" policy described in Appendix C.2     
  568    while exposing other policies as configuration options.                 
  569                                                                            
  570    The "Accept Any Success" policy is to try all applicable trust          
  571    anchors until one gives a validation result of Secure, in which case    
  572    the final validation result is Secure.  If and only if all applicable   
  573    trust anchors give a result of Insecure, the final validation result    
  574    is Insecure.  If one or more trust anchors lead to a Bogus result and   
  575    there is no Secure result, then the final validation result is Bogus.   
  576                                                                            
section-5.9 V. Risk, ISC.orgBIND 9 implementation note2022-08-15

<p>Section 5.9 - Always set CD=1 on queries. This is not done, as it prevents DNSSEC from working correctly through another recursive server. When talking to a recursive server, the best algorithm is to send CD=0 and then send CD=1 iff SERVFAIL is returned, in case the recursive server has a bad clock and/or bad trust anchor. Alternatively, one can send CD=1 then CD=0 on validation failure, in case the recursive server is under attack or there is stale/bogus authoritative data.</p>

  577 5.11.  Mandatory Algorithm Rules                                           
  578                                                                            
  579    The last paragraph of Section 2.2 of [RFC4035] includes rules           
  580    describing which algorithms must be used to sign a zone.  Since these   
  581    rules have been confusing, they are restated using different language   
  582    here:                                                                   
  583                                                                            
  584       The DS RRset and DNSKEY RRset are used to signal which algorithms    
  585       are used to sign a zone.  The presence of an algorithm in either a   
  586       zone's DS or DNSKEY RRset signals that that algorithm is used to     
  587       sign the entire zone.                                                
  588                                                                            
  589       A signed zone MUST include a DNSKEY for each algorithm present in    
  590       the zone's DS RRset and expected trust anchors for the zone.  The    
  591       zone MUST also be signed with each algorithm (though not each key)   
  592       present in the DNSKEY RRset.  It is possible to add algorithms at    
  593       the DNSKEY that aren't in the DS record, but not vice versa.  If     
  594       more than one key of the same algorithm is in the DNSKEY RRset, it   
  595       is sufficient to sign each RRset with any subset of these DNSKEYs.   
  596       It is acceptable to sign some RRsets with one subset of keys (or     
  597       key) and other RRsets with a different subset, so long as at least   
  598                                                                            
  599                                                                            
  600                                                                            
  601                                                                            
  602 Weiler & Blacka              Standards Track                   [Page 11]   

  603 RFC 6840               DNSSEC Implementation Notes         February 2013   
  604                                                                            
  605                                                                            
  606       one DNSKEY of each algorithm is used to sign each RRset.             
  607       Likewise, if there are DS records for multiple keys of the same      
  608       algorithm, any subset of those may appear in the DNSKEY RRset.       
  609                                                                            
  610    This requirement applies to servers, not validators.  Validators        
  611    SHOULD accept any single valid path.  They SHOULD NOT insist that all   
  612    algorithms signaled in the DS RRset work, and they MUST NOT insist      
  613    that all algorithms signaled in the DNSKEY RRset work.  A validator     
  614    MAY have a configuration option to perform a signature completeness     
  615    test to support troubleshooting.                                        
  616                                                                            
  617 5.12.  Ignore Extra Signatures from Unknown Keys                           
  618                                                                            
  619    Validating resolvers MUST disregard RRSIGs in a zone that do not        
  620    (currently) have a corresponding DNSKEY in the zone.  Similarly, a      
  621    validating resolver MUST disregard RRSIGs with algorithm types that     
  622    don't exist in the DNSKEY RRset.                                        
  623                                                                            
  624    Good key rollover and algorithm rollover practices, as discussed in     
  625    RFC 6781 and its successor documents and as suggested by the rules in   
  626    the previous section, may require that such RRSIGs be present in a      
  627    zone.                                                                   
  628                                                                            
  629 6.  Minor Corrections and Clarifications                                   
  630                                                                            
  631 6.1.  Finding Zone Cuts                                                    
  632                                                                            
  633    Appendix C.8 of [RFC4035] discusses sending DS queries to the servers   
  634    for a parent zone but does not state how to find those servers.         
  635    Specific instructions can be found in Section 4.2 of [RFC4035].         
  636                                                                            
  637 6.2.  Clarifications on DNSKEY Usage                                       
  638                                                                            
  639    It is possible to use different DNSKEYs to sign different subsets of    
  640    a zone, constrained only by the rules in Section 5.11.  It is even      
  641    possible to use a different DNSKEY for each RRset in a zone, subject    
  642    only to practical limits on the size of the DNSKEY RRset and the        
  643    above rules.  However, be aware that there is no way to tell            
  644    resolvers what a particular DNSKEY is supposed to be used for -- any    
  645    DNSKEY in the zone's signed DNSKEY RRset may be used to authenticate    
  646    any RRset in the zone.  For example, if a weaker or less trusted        
  647    DNSKEY is being used to authenticate NSEC RRsets or all dynamically     
  648    updated records, that same DNSKEY can also be used to sign any other    
  649    RRsets from the zone.                                                   
  650                                                                            
  651    Furthermore, note that the SEP bit setting has no effect on how a       
  652    DNSKEY may be used -- the validation process is specifically            
  653    prohibited from using that bit by Section 2.1.2 of [RFC4034].  It is    
  654                                                                            
  655                                                                            
  656                                                                            
  657 Weiler & Blacka              Standards Track                   [Page 12]   

  658 RFC 6840               DNSSEC Implementation Notes         February 2013   
  659                                                                            
  660                                                                            
  661    possible to use a DNSKEY without the SEP bit set as the sole secure     
  662    entry point to the zone, yet use a DNSKEY with the SEP bit set to       
  663    sign all RRsets in the zone (other than the DNSKEY RRset).  It is       
  664    also possible to use a single DNSKEY, with or without the SEP bit       
  665    set, to sign the entire zone, including the DNSKEY RRset itself.        
  666                                                                            
  667 6.3.  Errors in Examples                                                   
  668                                                                            
  669    The text in Appendix C.1 of [RFC4035] refers to the examples in         
  670    Appendix B.1 as "x.w.example.com" while B.1 uses "x.w.example".  This   
  671    is painfully obvious in the second paragraph where it states that the   
  672    RRSIG labels field value of 3 indicates that the answer was not the     
  673    result of wildcard expansion.  This is true for "x.w.example" but not   
  674    for "x.w.example.com", which of course has a label count of 4           
  675    (antithetically, a label count of 3 would imply the answer was the      
  676    result of a wildcard expansion).                                        
  677                                                                            
  678    The first paragraph of Appendix C.6 of [RFC4035] also has a minor       
  679    error: the reference to "a.z.w.w.example" should instead be             
  680    "a.z.w.example", as in the previous line.                               
  681                                                                            
  682 6.4.  Errors in RFC 5155                                                   
  683                                                                            
  684    An NSEC3 record that matches an Empty Non-Terminal effectively has no   
  685    type associated with it.  This NSEC3 record has an empty type bit       
  686    map.  Section 3.2.1 of [RFC5155] contains the statement:                
  687                                                                            
  688       Blocks with no types present MUST NOT be included.                   
  689                                                                            
  690    However, the same section contains a regular expression:                
  691                                                                            
  692       Type Bit Maps Field = ( Window Block # | Bitmap Length | Bitmap )+   
  693                                                                            
  694    The plus sign in the regular expression indicates that there is one     
  695    or more of the preceding element.  This means that there must be at     
  696    least one window block.  If this window block has no types, it          
  697    contradicts with the first statement.  Therefore, the correct text in   
  698    Section 3.2.1 of [RFC5155] should be:                                   
  699                                                                            
  700       Type Bit Maps Field = ( Window Block # | Bitmap Length | Bitmap )*   
  701                                                                            
  702 7.  Security Considerations                                                
  703                                                                            
  704    This document adds SHA-2 and NSEC3 support to the core DNSSEC           
  705    protocol.  Security considerations for those features are discussed     
  706    in the documents defining them.  Additionally, this document            
  707    addresses some ambiguities and omissions in the core DNSSEC documents   
  708    that, if not recognized and addressed in implementations, could lead    
  709                                                                            
  710                                                                            
  711                                                                            
  712 Weiler & Blacka              Standards Track                   [Page 13]   

  713 RFC 6840               DNSSEC Implementation Notes         February 2013   
  714                                                                            
  715                                                                            
  716    to security failures.  In particular, the validation algorithm          
  717    clarifications in Section 4 are critical for preserving the security    
  718    properties DNSSEC offers.  Furthermore, failure to address some of      
  719    the interoperability concerns in Section 5 could limit the ability to   
  720    later change or expand DNSSEC, including adding new algorithms.         
  721                                                                            
  722    The recommendation in Section 5.9 to always set the CD bit has          
  723    security implications.  By setting the CD bit, a resolver will not      
  724    benefit from more stringent validation rules or a more complete set     
  725    of trust anchors at an upstream validator.                              
  726                                                                            
  727 8.  References                                                             
  728                                                                            
  729 8.1.  Normative References                                                 
  730                                                                            
  731    [RFC1034]  Mockapetris, P., "Domain names - concepts and facilities",   
  732               STD 13, RFC 1034, November 1987.                             
  733                                                                            
  734    [RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate          
  735               Requirement Levels", BCP 14, RFC 2119, March 1997.           
  736                                                                            
  737    [RFC3225]  Conrad, D., "Indicating Resolver Support of DNSSEC",         
  738               RFC 3225, December 2001.                                     
  739                                                                            
  740    [RFC4033]  Arends, R., Austein, R., Larson, M., Massey, D., and S.      
  741               Rose, "DNS Security Introduction and Requirements",          
  742               RFC 4033, March 2005.                                        
  743                                                                            
  744    [RFC4034]  Arends, R., Austein, R., Larson, M., Massey, D., and S.      
  745               Rose, "Resource Records for the DNS Security Extensions",    
  746               RFC 4034, March 2005.                                        
  747                                                                            
  748    [RFC4035]  Arends, R., Austein, R., Larson, M., Massey, D., and S.      
  749               Rose, "Protocol Modifications for the DNS Security           
  750               Extensions", RFC 4035, March 2005.                           
  751                                                                            
  752    [RFC4509]  Hardaker, W., "Use of SHA-256 in DNSSEC Delegation Signer    
  753               (DS) Resource Records (RRs)", RFC 4509, May 2006.            
  754                                                                            
  755    [RFC5155]  Laurie, B., Sisson, G., Arends, R., and D. Blacka, "DNS      
  756               Security (DNSSEC) Hashed Authenticated Denial of             
  757               Existence", RFC 5155, March 2008.                            
  758                                                                            
  759    [RFC5702]  Jansen, J., "Use of SHA-2 Algorithms with RSA in DNSKEY      
  760               and RRSIG Resource Records for DNSSEC", RFC 5702,            
  761               October 2009.                                                
  762                                                                            
  763                                                                            
  764                                                                            
  765                                                                            
  766                                                                            
  767 Weiler & Blacka              Standards Track                   [Page 14]   

  768 RFC 6840               DNSSEC Implementation Notes         February 2013   
  769                                                                            
  770                                                                            
  771 8.2.  Informative References                                               
  772                                                                            
  773    [Huston]   Michaelson, G., Wallstrom, P., Arends, R., and G. Huston,    
  774               "Rolling Over DNSSEC Keys", Internet Protocol                
  775               Journal, Vol. 13, No.1, pp. 2-16, March 2010.                
  776                                                                            
  777    [RFC2308]  Andrews, M., "Negative Caching of DNS Queries (DNS           
  778               NCACHE)", RFC 2308, March 1998.                              
  779                                                                            
  780    [RFC3755]  Weiler, S., "Legacy Resolver Compatibility for Delegation    
  781               Signer (DS)", RFC 3755, May 2004.                            
  782                                                                            
  783    [RFC4955]  Blacka, D., "DNS Security (DNSSEC) Experiments", RFC 4955,   
  784               July 2007.                                                   
  785                                                                            
  786    [RFC5011]  StJohns, M., "Automated Updates of DNS Security (DNSSEC)     
  787               Trust Anchors", STD 74, RFC 5011, September 2007.            
  788                                                                            
  789    [RFC5074]  Weiler, S., "DNSSEC Lookaside Validation (DLV)", RFC 5074,   
  790               November 2007.                                               
  791                                                                            
  792    [RFC6781]  Kolkman, O., Mekking, W., and R. Gieben, "DNSSEC             
  793               Operational Practices, Version 2", RFC 6781,                 
  794               December 2012.                                               
  795                                                                            
  796                                                                            
  797                                                                            
  798                                                                            
  799                                                                            
  800                                                                            
  801                                                                            
  802                                                                            
  803                                                                            
  804                                                                            
  805                                                                            
  806                                                                            
  807                                                                            
  808                                                                            
  809                                                                            
  810                                                                            
  811                                                                            
  812                                                                            
  813                                                                            
  814                                                                            
  815                                                                            
  816                                                                            
  817                                                                            
  818                                                                            
  819                                                                            
  820                                                                            
  821                                                                            
  822 Weiler & Blacka              Standards Track                   [Page 15]   

  823 RFC 6840               DNSSEC Implementation Notes         February 2013   
  824                                                                            
  825                                                                            
  826 Appendix A.  Acknowledgments                                               
  827                                                                            
  828    The editors would like the thank Rob Austein for his previous work as   
  829    an editor of this document.                                             
  830                                                                            
  831    The editors are extremely grateful to those who, in addition to         
  832    finding errors and omissions in the DNSSEC document set, have           
  833    provided text suitable for inclusion in this document.                  
  834                                                                            
  835    The lack of specificity about handling private algorithms, as           
  836    described in Section 5.3, and the lack of specificity in handling ANY   
  837    queries, as described in Section 4.2, were discovered by David          
  838    Blacka.                                                                 
  839                                                                            
  840    The error in algorithm 1 key tag calculation, as described in           
  841    Section 5.5, was found by Abhijit Hayatnagarkar.  Donald Eastlake       
  842    contributed text for Section 5.5.                                       
  843                                                                            
  844    The bug relating to delegation NSEC RR's in Section 4.1 was found by    
  845    Roy Badami.  Roy Arends found the related problem with DNAME.           
  846                                                                            
  847    The errors in the [RFC4035] examples were found by Roy Arends, who      
  848    also contributed text for Section 6.3 of this document.                 
  849                                                                            
  850    Text on the mandatory algorithm rules was derived from suggestions by   
  851    Matthijs Mekking and Ed Lewis.                                          
  852                                                                            
  853    The CD bit logic was analyzed in depth by David Blacka, Olafur          
  854    Gudmundsson, Mike St. Johns, and Andrew Sullivan.                       
  855                                                                            
  856    The editors would like to thank Alfred Hoenes, Ed Lewis, Danny Mayer,   
  857    Olafur Gudmundsson, Suzanne Woolf, Rickard Bellgrim, Mike St. Johns,    
  858    Mark Andrews, Wouter Wijngaards, Matthijs Mekking, Andrew Sullivan,     
  859    Jeremy Reed, Paul Hoffman, Mohan Parthasarathy, Florian Weimer,         
  860    Warren Kumari and Scott Rose for their contributions to this            
  861    document.                                                               
  862                                                                            
  863 Appendix B.  Discussion of Setting the CD Bit                              
  864                                                                            
  865    [RFC4035] may be read as relying on the implicit assumption that        
  866    there is at most one validating system between the stub resolver and    
  867    the authoritative server for a given zone.  It is entirely possible,    
  868    however, for more than one validator to exist between a stub resolver   
  869    and an authoritative server.  If these different validators have        
  870    disjoint trust anchors configured, then it is possible that each        
  871    would be able to validate some portion of the DNS tree, but neither     
  872                                                                            
  873                                                                            
  874                                                                            
  875                                                                            
  876                                                                            
  877 Weiler & Blacka              Standards Track                   [Page 16]   

  878 RFC 6840               DNSSEC Implementation Notes         February 2013   
  879                                                                            
  880                                                                            
  881    is able to validate all of it.  Accordingly, it might be argued that    
  882    it is desirable not to set the CD bit on upstream queries, because      
  883    that allows for maximal validation.                                     
  884                                                                            
  885    In Section 5.9 of this document, it is recommended to set the CD bit    
  886    on an upstream query even when the incoming query arrives with CD=0.    
  887    This is for two reasons: it encourages a more predictable validation    
  888    experience as only one validator is always doing the validation, and    
  889    it ensures that all DNSSEC data that exists may be available from the   
  890    local cache should a query with CD=1 arrive.                            
  891                                                                            
  892    As a matter of policy, it is possible to set the CD bit differently     
  893    than suggested in Section 5.9.  A different choice will, of course,     
  894    not always yield the benefits listed above.  It is beyond the scope     
  895    of this document to outline all of the considerations and counter       
  896    considerations for all possible policies.  Nevertheless, it is          
  897    possible to describe three approaches and their underlying philosophy   
  898    of operation.  These are laid out in the tables below.                  
  899                                                                            
  900    The table that describes each model has five columns.  The first        
  901    column indicates the value of the CD bit that the resolver receives     
  902    (for instance, on the name server side in an iterative resolver, or     
  903    as local policy or from the API in the case of a stub).  The second     
  904    column indicates whether the query needs to be forwarded for            
  905    resolution (F) or can be satisfied from a local cache (C).  The third   
  906    column is a line number, so that it can be referred to later in the     
  907    table.  The fourth column indicates any relevant conditions at the      
  908    resolver, for example, whether the resolver has a covering trust        
  909    anchor, and so on.  If there are no parameters here, the column is      
  910    empty.  The fifth and final column indicates what action the resolver   
  911    takes.                                                                  
  912                                                                            
  913    The tables differentiate between "cached data" and "cached RCODE=2".    
  914    This is a shorthand; the point is that one has to treat RCODE=2         
  915    (server failure) as special, because it might indicate a validation     
  916    failure somewhere upstream.  The distinction is really between          
  917    "cached RCODE=2" and "cached everything else".                          
  918                                                                            
  919    The tables are probably easiest to think of in terms of describing      
  920    what happens when a stub resolver sends a query to an intermediate      
  921    resolver, but they are perfectly general and can be applied to any      
  922    validating resolver.                                                    
  923                                                                            
  924    Model 1: "always set"                                                   
  925                                                                            
  926    This model is so named because the validating resolver sets the CD      
  927    bit on queries it makes regardless of whether it has a covering trust   
  928    anchor for the query.  The general philosophy represented by this       
  929                                                                            
  930                                                                            
  931                                                                            
  932 Weiler & Blacka              Standards Track                   [Page 17]   

  933 RFC 6840               DNSSEC Implementation Notes         February 2013   
  934                                                                            
  935                                                                            
  936    table is that only one resolver should be responsible for validation    
  937    irrespective of the possibility that an upstream resolver may be        
  938    present with trust anchors that cover different or additional QNAMEs.   
  939    It is the model recommended in Section 5.9 of this document.            
  940                                                                            
  941     CD F/C    line      conditions            action                       
  942     ====================================================================   
  943     1   F      A1                             Set CD=1 on upstream query   
  944     0   F      A2                             Set CD=1 on upstream query   
  945     1   C      A3                             Return the cache contents    
  946                                                (data or RCODE=2)           
  947     0   C      A4       no covering TA        Return cache contents        
  948                                                (data or RCODE=2)           
  949     0   C      A5       covering TA           Validate cached result and   
  950                                                return it                   
  951                                                                            
  952    Model 2: "never set when receiving CD=0"                                
  953                                                                            
  954    This model is so named because it sets CD=0 on upstream queries for     
  955    all received CD=0 queries, even if it has a covering trust anchor.      
  956    The general philosophy represented by this table is that more than      
  957    one resolver may take responsibility for validating a QNAME and that    
  958    a validation failure for a QNAME by any resolver in the chain is a      
  959    validation failure for the query.  Using this model is NOT              
  960    RECOMMENDED.                                                            
  961                                                                            
  962     CD F/C    line       conditions           action                       
  963     ====================================================================   
  964     1  F      N1                              Set CD=1 on upstream query   
  965     0  F      N2                              Set CD=0 on upstream query   
  966     1  C      N3         cached data          Return cached data           
  967     1  C      N4         cached RCODE=2       Treat as line N1             
  968     0  C      N5         no covering TA       Return cache contents        
  969                                                (data or RCODE=2)           
  970     0  C      N6         covering TA &        Treat as line N2             
  971                           cached data was                                  
  972                           generated with CD=1                              
  973     0  C      N7         covering TA &        Validate and return          
  974                           cached data was                                  
  975                           generated with CD=0                              
  976                                                                            
  977                                                                            
  978    Model 3: "sometimes set"                                                
  979                                                                            
  980    This model is so named because it sets the CD bit on upstream queries   
  981    triggered by received CD=0 queries, based on whether the validator      
  982    has a trust anchor configured that covers the query.  If there is no    
  983    covering trust anchor, the resolver clears the CD bit in the upstream   
  984                                                                            
  985                                                                            
  986                                                                            
  987 Weiler & Blacka              Standards Track                   [Page 18]   

  988 RFC 6840               DNSSEC Implementation Notes         February 2013   
  989                                                                            
  990                                                                            
  991    query.  If there is a covering trust anchor, the resolver sets CD=1     
  992    and performs validation itself.  The general philosophy represented     
  993    by this table is that a resolver should try and validate QNAMEs for     
  994    which it has trust anchors and should not preclude validation by        
  995    other resolvers for QNAMEs for which it does not have covering trust    
  996    anchors.  Using this model is NOT RECOMMENDED.                          
  997                                                                            
  998     CD F/C    line       conditions         action                         
  999     ====================================================================   
 1000     1  F      S1                            Set CD=1 on upstream query     
 1001     0  F      S2         covering TA        Set CD=1 on upstream query     
 1002     0  F      S3         no covering TA     Set CD=0 on upstream query     
 1003     1  C      S4         cached data        Return cached data             
 1004     1  C      S5         cached RCODE=2     Treat as line S1               
 1005     0  C      S6         cached data was    Return cache contents          
 1006                           generated with                                   
 1007                           CD=0                                             
 1008     0  C      S7         cached data was    Validate & return cache        
 1009                           generated with     contents                      
 1010                           CD=1 &                                           
 1011                           covering TA                                      
 1012     0  C      S8         cached RCODE=2     Return cache contents          
 1013     0  C      S9         cached data        Treat as line S3               
 1014                           was generated                                    
 1015                           with CD=1 &                                      
 1016                           no covering                                      
 1017                           TA                                               
 1018                                                                            
 1019                                                                            
 1020 Appendix C.  Discussion of Trust Anchor Preference Options                 
 1021                                                                            
 1022    This section presents several different policies for validating         
 1023    resolvers to use when they have a choice of trust anchors available     
 1024    for validating a given answer.                                          
 1025                                                                            
 1026 C.1.  Closest Encloser                                                     
 1027                                                                            
 1028    One policy is to choose the trust anchor closest to the QNAME of the    
 1029    response.  For example, consider a validator configured with trust      
 1030    anchors for "example." and "zone.example."  When asked to validate a    
 1031    response for "www.sub.zone.example.", a validator using the "Closest    
 1032    Encloser" policy would choose the "zone.example." trust anchor.         
 1033                                                                            
 1034    This policy has the advantage of allowing the operator to trivially     
 1035    override a parent zone's trust anchor with one that the operator can    
 1036    validate in a stronger way, perhaps because the resolver operator is    
 1037                                                                            
 1038                                                                            
 1039                                                                            
 1040                                                                            
 1041                                                                            
 1042 Weiler & Blacka              Standards Track                   [Page 19]   

 1043 RFC 6840               DNSSEC Implementation Notes         February 2013   
 1044                                                                            
 1045                                                                            
 1046    affiliated with the zone in question.  This policy also minimizes the   
 1047    number of public key operations needed, which is of benefit in          
 1048    resource-constrained environments.                                      
 1049                                                                            
 1050    This policy has the disadvantage of giving the user some unexpected     
 1051    and unnecessary validation failures when sub-zone trust anchors are     
 1052    neglected.  As a concrete example, consider a validator that            
 1053    configured a trust anchor for "zone.example." in 2009 and one for       
 1054    "example." in 2011.  In 2012, "zone.example." rolls its Key Signing     
 1055    Key (KSK) and updates its DS records, but the validator operator        
 1056    doesn't update its trust anchor.  With the "Closest Encloser" policy,   
 1057    the validator gets validation failures.                                 
 1058                                                                            
 1059 C.2.  Accept Any Success                                                   
 1060                                                                            
 1061    Another policy is to try all applicable trust anchors until one gives   
 1062    a validation result of Secure, in which case the final validation       
 1063    result is Secure.  If and only if all applicable trust anchors give a   
 1064    result of Insecure, the final validation result is Insecure.  If one    
 1065    or more trust anchors lead to a Bogus result and there is no Secure     
 1066    result, then the final validation result is Bogus.                      
 1067                                                                            
 1068    This has the advantage of causing the fewest validation failures,       
 1069    which may deliver a better user experience.  If one trust anchor is     
 1070    out of date (as in our above example), the user may still be able to    
 1071    get a Secure validation result (and see DNS responses).                 
 1072                                                                            
 1073    This policy has the disadvantage of making the validator subject to     
 1074    the compromise of the weakest of these trust anchors, while making it   
 1075    relatively painless to keep old trust anchors configured in             
 1076    perpetuity.                                                             
 1077                                                                            
section-5.11 Edward Lewis(Editorial Erratum #4191) [Rejected]
based on outdated version
...

A signed zone MUST include a DNSKEY for each algorithm present in
      the zone's DS RRset and expected trust anchors for the zone.  The
      zone MUST also be signed with each algorithm (though not each key)
      present in the DNSKEY RRset.  
It should say:
A signed zone MUST include a DNSKEY for each algorithm present in
      the zone's DS RRset and expected trust anchors for the zone.  Each
      authoritative RRset in the zone MUST be signed with each 
      algorithm (though not each key) present in the DNSKEY RRset.  

Zones aren't signed (per se), the data sets within them are.  But not
cut point (NS) and glue.
--VERIFIER NOTES--
This erratum is being rejected as the nomenclature being updated is
understood within the community and is used in other DNSSEC
specifications.
 1078 C.3.  Preference Based on Source                                           
 1079                                                                            
 1080    When the trust anchors have come from different sources (e.g.,          
 1081    automated updates ([RFC5011]), one or more DNSSEC Lookaside             
 1082    Validation (DLV) registries ([RFC5074]), and manual configuration), a   
 1083    validator may wish to choose between them based on the perceived        
 1084    reliability of those sources.  The order of precedence might be         
 1085    exposed as a configuration option.                                      
 1086                                                                            
 1087    For example, a validator might choose to prefer trust anchors found     
 1088    in a DLV registry over those manually configured on the theory that     
 1089    the manually configured ones will not be as aggressively maintained.    
 1090                                                                            
 1091                                                                            
 1092                                                                            
 1093                                                                            
 1094                                                                            
 1095                                                                            
 1096                                                                            
 1097 Weiler & Blacka              Standards Track                   [Page 20]   

 1098 RFC 6840               DNSSEC Implementation Notes         February 2013   
 1099                                                                            
 1100                                                                            
 1101    Conversely, a validator might choose to prefer manually configured      
 1102    trust anchors over those obtained from a DLV registry on the theory     
 1103    that the manually configured ones have been more carefully              
 1104    authenticated.                                                          
 1105                                                                            
 1106    Or the validator might do something more complex: prefer a sub-set of   
 1107    manually configured trust anchors (based on a configuration option),    
 1108    then trust anchors that have been updated using the mechanism in        
 1109    [RFC5011], then trust anchors from one DLV registry, then trust         
 1110    anchors from a different DLV registry, then the rest of the manually    
 1111    configured trust anchors.                                               
 1112                                                                            
 1113 Authors' Addresses                                                         
 1114                                                                            
 1115    Samuel Weiler (editor)                                                  
 1116    SPARTA, Inc.                                                            
 1117    7110 Samuel Morse Drive                                                 
 1118    Columbia, MD  21046                                                     
 1119    US                                                                      
 1120                                                                            
 1121    EMail: weiler@tislabs.com                                               
 1122                                                                            
 1123                                                                            
 1124    David Blacka (editor)                                                   
 1125    Verisign, Inc.                                                          
 1126    12061 Bluemont Way                                                      
 1127    Reston, VA  20190                                                       
 1128    US                                                                      
 1129                                                                            
 1130    EMail: davidb@verisign.com                                              
 1131                                                                            
 1132                                                                            
 1133                                                                            
 1134                                                                            
 1135                                                                            
 1136                                                                            
 1137                                                                            
 1138                                                                            
 1139                                                                            
 1140                                                                            
 1141                                                                            
 1142                                                                            
 1143                                                                            
 1144                                                                            
 1145                                                                            
 1146                                                                            
 1147                                                                            
 1148                                                                            
 1149                                                                            
 1150                                                                            
 1151                                                                            
 1152 Weiler & Blacka              Standards Track                   [Page 21]   
 1153                                                                            
appendix-C.3 P. Hoffman, ICANNRFC 8749

The abstrct of RFC8749 says:
"Furthermore, this document ... updates RFC 6840 by excluding the DLV registries from the trust anchor selection."

Section 4.1.2.2 of RFC8749 says:

RFC 6840 ("Clarifications and Implementation Notes for DNS Security (DNSSEC)")
[RFC6840] states that when trust anchors come from different sources, a
validator may choose between them based on the perceived reliability of those
sources. But in reality, this does not happen in validators (both BIND 9 and
Unbound have an option for a DLV trust anchor that can be used solely as a
fallback).

This document updates RFC 6840 [RFC6840] to exclude the DLV registries from the trust anchor selection.