1 Internet Engineering Task Force (IETF)                          T. Reddy   
    2 Request for Comments: 8094                                         Cisco   
    3 Category: Experimental                                           D. Wing   
    4 ISSN: 2070-1721                                                            
    5                                                                 P. Patil   
    6                                                                    Cisco   
    7                                                            February 2017   
    8                                                                            
    9                                                                            
   10            DNS over Datagram Transport Layer Security (DTLS)               
   11                                                                            
   12 Abstract                                                                   
   13                                                                            
   14    DNS queries and responses are visible to network elements on the path   
   15    between the DNS client and its server.  These queries and responses     
   16    can contain privacy-sensitive information, which is valuable to         
   17    protect.                                                                
   18                                                                            
   19    This document proposes the use of Datagram Transport Layer Security     
   20    (DTLS) for DNS, to protect against passive listeners and certain        
   21    active attacks.  As latency is critical for DNS, this proposal also     
   22    discusses mechanisms to reduce DTLS round trips and reduce the DTLS     
   23    handshake size.  The proposed mechanism runs over port 853.             
   24                                                                            
   25 Status of This Memo                                                        
   26                                                                            
   27    This document is not an Internet Standards Track specification; it is   
   28    published for examination, experimental implementation, and             
   29    evaluation.                                                             
   30                                                                            
   31    This document defines an Experimental Protocol for the Internet         
   32    community.  This document is a product of the Internet Engineering      
   33    Task Force (IETF).  It represents the consensus of the IETF             
   34    community.  It has received public review and has been approved for     
   35    publication by the Internet Engineering Steering Group (IESG).  Not     
   36    all documents approved by the IESG are a candidate for any level of     
   37    Internet Standard; see Section 2 of RFC 7841.                           
   38                                                                            
   39    Information about the current status of this document, any errata,      
   40    and how to provide feedback on it may be obtained at                    
   41    http://www.rfc-editor.org/info/rfc8094.                                 
   42                                                                            
   43                                                                            
   44                                                                            
   45                                                                            
   46                                                                            
   47                                                                            
   48                                                                            
   49                                                                            
   50                                                                            
   51                                                                            
   52 Reddy, et al.                 Experimental                      [Page 1]   

   53 RFC 8094                      DNS over DTLS                February 2017   
   54                                                                            
   55                                                                            
   56 Copyright Notice                                                           
   57                                                                            
   58    Copyright (c) 2017 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 Table of Contents                                                          
   72                                                                            
   73    1. Introduction ....................................................3   
   74       1.1. Relationship to TCP Queries and to DNSSEC ..................3   
   75       1.2. Document Status ............................................4   
   76    2. Terminology .....................................................4   
   77    3. Establishing and Managing DNS over DTLS Sessions ................5   
   78       3.1. Session Initiation .........................................5   
   79       3.2. DTLS Handshake and Authentication ..........................5   
   80       3.3. Established Sessions .......................................6   
   81    4. Performance Considerations ......................................7   
   82    5. Path MTU (PMTU) Issues ..........................................7   
   83    6. Anycast .........................................................8   
   84    7. Usage ...........................................................9   
   85    8. IANA Considerations .............................................9   
   86    9. Security Considerations .........................................9   
   87    10. References ....................................................10   
   88       10.1. Normative References .....................................10   
   89       10.2. Informative References ...................................11   
   90    Acknowledgements ..................................................13   
   91    Authors' Addresses ................................................13   
   92                                                                            
   93                                                                            
   94                                                                            
   95                                                                            
   96                                                                            
   97                                                                            
   98                                                                            
   99                                                                            
  100                                                                            
  101                                                                            
  102                                                                            
  103                                                                            
  104                                                                            
  105                                                                            
  106                                                                            
  107 Reddy, et al.                 Experimental                      [Page 2]   

  108 RFC 8094                      DNS over DTLS                February 2017   
  109                                                                            
  110                                                                            
  111 1.  Introduction                                                           
  112                                                                            
  113    The Domain Name System is specified in [RFC1034] and [RFC1035].  DNS    
  114    queries and responses are normally exchanged unencrypted; thus, they    
  115    are vulnerable to eavesdropping.  Such eavesdropping can result in an   
  116    undesired entity learning domain that a host wishes to access, thus     
  117    resulting in privacy leakage.  The DNS privacy problem is further       
  118    discussed in [RFC7626].                                                 
  119                                                                            
  120    This document defines DNS over DTLS, which provides confidential DNS    
  121    communication between stub resolvers and recursive resolvers, stub      
  122    resolvers and forwarders, and forwarders and recursive resolvers.       
  123    DNS over DTLS puts an additional computational load on servers.  The    
  124    largest gain for privacy is to protect the communication between the    
  125    DNS client (the end user's machine) and its caching resolver.  DNS      
  126    over DTLS might work equally between recursive clients and              
  127    authoritative servers, but this application of the protocol is out of   
  128    scope for the DNS PRIVate Exchange (DPRIVE) working group per its       
  129    current charter.  This document does not change the format of DNS       
  130    messages.                                                               
  131                                                                            
  132    The motivations for proposing DNS over DTLS are that:                   
  133                                                                            
  134    o  TCP suffers from network head-of-line blocking, where the loss of    
  135       a packet causes all other TCP segments not to be delivered to the    
  136       application until the lost packet is retransmitted.  DNS over        
  137       DTLS, because it uses UDP, does not suffer from network head-of-     
  138       line blocking.                                                       
  139                                                                            
  140    o  DTLS session resumption consumes one round trip, whereas TLS         
  141       session resumption can start only after the TCP handshake is         
  142       complete.  However, with TCP Fast Open [RFC7413], the                
  143       implementation can achieve the same RTT efficiency as DTLS.          
  144                                                                            
  145    Note: DNS over DTLS is an experimental update to DNS, and the           
  146    experiment will be concluded when the specification is evaluated        
  147    through implementations and interoperability testing.                   
  148                                                                            
  149 1.1.  Relationship to TCP Queries and to DNSSEC                            
  150                                                                            
  151    DNS queries can be sent over UDP or TCP.  The scope of this document,   
  152    however, is only UDP.  DNS over TCP can be protected with TLS, as       
  153    described in [RFC7858].  DNS over DTLS alone cannot provide privacy     
  154    for DNS messages in all circumstances, specifically when the DTLS       
  155    record size is larger than the path MTU.  In such situations, the DNS   
  156    server will respond with a truncated response (see Section 5).          
  157                                                                            
  158                                                                            
  159                                                                            
  160                                                                            
  161                                                                            
  162 Reddy, et al.                 Experimental                      [Page 3]   

  163 RFC 8094                      DNS over DTLS                February 2017   
  164                                                                            
  165                                                                            
  166    Therefore, DNS clients and servers that implement DNS over DTLS MUST    
  167    also implement DNS over TLS in order to provide privacy for clients     
  168    that desire Strict Privacy as described in [DTLS].                      
  169                                                                            
  170    DNS Security Extensions (DNSSEC) [RFC4033] provide object integrity     
  171    of DNS resource records, allowing end users (or their resolver) to      
  172    verify the legitimacy of responses.  However, DNSSEC does not provide   
  173    privacy for DNS requests or responses.  DNS over DTLS works in          
  174    conjunction with DNSSEC, but DNS over DTLS does not replace the need    
  175    or value of DNSSEC.                                                     
  176                                                                            
  177 1.2.  Document Status                                                      
  178                                                                            
  179    This document is an Experimental RFC.  One key aspect to judge          
  180    whether the approach is usable on a large scale is by observing the     
  181    uptake, usability, and operational behavior of the protocol in large-   
  182    scale, real-life deployments.                                           
  183                                                                            
  184    This DTLS solution was considered by the DPRIVE working group as an     
  185    option to use in case the TLS-based approach specified in [RFC7858]     
  186    turns out to have some issues when deployed.  At the time of writing,   
  187    it is expected that [RFC7858] is what will be deployed, and so this     
  188    specification is mainly intended as a backup.                           
  189                                                                            
  190    The following guidelines should be considered when performance          
  191    benchmarking DNS over DTLS:                                             
  192                                                                            
  193    1.  DNS over DTLS can recover from packet loss and reordering, and      
  194        does not suffer from network head-of-line blocking.  DNS over       
  195        DTLS performance, in comparison with DNS over TLS, may be better    
  196        in lossy networks.                                                  
  197                                                                            
  198    2.  The number of round trips to send the first DNS query over DNS      
  199        over DTLS is less than the number of round trips to send the        
  200        first DNS query over TLS.  Even if TCP Fast Open is used, it only   
  201        works for subsequent TCP connections between the DNS client and     
  202        server (Section 3 in [RFC7413]).                                    
  203                                                                            
  204    3.  If the DTLS 1.3 protocol [DTLS13] is used for DNS over DTLS, it     
  205        provides critical latency improvements for connection               
  206        establishment over DTLS 1.2.                                        
  207                                                                            
  208 2.  Terminology                                                            
  209                                                                            
  210    The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",     
  211    "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and    
  212    "OPTIONAL" in this document are to be interpreted as described in       
  213    [RFC2119] .                                                             
  214                                                                            
  215                                                                            
  216                                                                            
  217 Reddy, et al.                 Experimental                      [Page 4]   

  218 RFC 8094                      DNS over DTLS                February 2017   
  219                                                                            
  220                                                                            
  221 3.  Establishing and Managing DNS over DTLS Sessions                       
  222                                                                            
  223 3.1.  Session Initiation                                                   
  224                                                                            
  225    By default, DNS over DTLS MUST run over standard UDP port 853 as        
  226    defined in Section 8, unless the DNS server has mutual agreement with   
  227    its clients to use a port other than 853 for DNS over DTLS.  In order   
  228    to use a port other than 853, both clients and servers would need a     
  229    configuration option in their software.                                 
  230                                                                            
  231    The DNS client should determine if the DNS server supports DNS over     
  232    DTLS by sending a DTLS ClientHello message to port 853 on the server,   
  233    unless it has mutual agreement with its server to use a port other      
  234    than port 853 for DNS over DTLS.  Such another port MUST NOT be port    
  235    53 but MAY be from the "first-come, first-served" port range (User      
  236    Ports [RFC6335], range 1024-49151).  This recommendation against the    
  237    use of port 53 for DNS over DTLS is to avoid complications in           
  238    selecting use or non-use of DTLS and to reduce risk of downgrade        
  239    attacks.                                                                
  240                                                                            
  241    A DNS server that does not support DNS over DTLS will not respond to    
  242    ClientHello messages sent by the client.  If no response is received    
  243    from that server, and the client has no better round-trip estimate,     
  244    the client SHOULD retransmit the DTLS ClientHello according to          
  245    Section 4.2.4.1 of [RFC6347].  After 15 seconds, it SHOULD cease        
  246    attempts to retransmit its ClientHello.  The client MAY repeat that     
  247    procedure to discover if DNS over DTLS service becomes available from   
  248    the DNS server, but such probing SHOULD NOT be done more frequently     
  249    than every 24 hours and MUST NOT be done more frequently than every     
  250    15 minutes.  This mechanism requires no additional signaling between    
  251    the client and server.                                                  
  252                                                                            
  253    DNS clients and servers MUST NOT use port 853 to transport cleartext    
  254    DNS messages.  DNS clients MUST NOT send and DNS servers MUST NOT       
  255    respond to cleartext DNS messages on any port used for DNS over DTLS    
  256    (including, for example, after a failed DTLS handshake).  There are     
  257    significant security issues in mixing protected and unprotected data;   
  258    therefore, UDP connections on a port designated by a given server for   
  259    DNS over DTLS are reserved purely for encrypted communications.         
  260                                                                            
  261 3.2.  DTLS Handshake and Authentication                                    
  262                                                                            
  263    The DNS client initiates the DTLS handshake as described in             
  264    [RFC6347], following the best practices specified in [RFC7525].         
  265    After DTLS negotiation completes, if the DTLS handshake succeeds        
  266    according to [RFC6347], the connection will be encrypted and would      
  267    then be protected from eavesdropping.                                   
  268                                                                            
  269                                                                            
  270                                                                            
  271                                                                            
  272 Reddy, et al.                 Experimental                      [Page 5]   

  273 RFC 8094                      DNS over DTLS                February 2017   
  274                                                                            
  275                                                                            
  276    DNS privacy requires encrypting the query (and response) from passive   
  277    attacks.  Such encryption typically provides integrity protection as    
  278    a side effect, which means on-path attackers cannot simply inject       
  279    bogus DNS responses.  However, to provide stronger protection from      
  280    active attackers pretending to be the server, the server itself needs   
  281    to be authenticated.  To authenticate the server providing DNS          
  282    privacy, DNS client MUST use the authentication mechanisms discussed    
  283    in [DTLS].  This document does not propose new ideas for                
  284    authentication.                                                         
  285                                                                            
  286 3.3.  Established Sessions                                                 
  287                                                                            
  288    In DTLS, all data is protected using the same record encoding and       
  289    mechanisms.  When the mechanism described in this document is in        
  290    effect, DNS messages are encrypted using the standard DTLS record       
  291    encoding.  When a DTLS user wishes to send a DNS message, the data is   
  292    delivered to the DTLS implementation as an ordinary application data    
  293    write (e.g., SSL_write()).  A single DTLS session can be used to send   
  294    multiple DNS requests and receive multiple DNS responses.               
  295                                                                            
  296    To mitigate the risk of unintentional server overload, DNS over DTLS    
  297    clients MUST take care to minimize the number of concurrent DTLS        
  298    sessions made to any individual server.  For any given client/server    
  299    interaction, it is RECOMMENDED that there be no more than one DTLS      
  300    session.  Similarly, servers MAY impose limits on the number of         
  301    concurrent DTLS sessions being handled for any particular client IP     
  302    address or subnet.  These limits SHOULD be much looser than the         
  303    client guidelines above because the server does not know, for           
  304    example, if a client IP address belongs to a single client, is          
  305    representing multiple resolvers on a single machine, or is              
  306    representing multiple clients behind a device performing Network        
  307    Address Translation (NAT).                                              
  308                                                                            
  309    In between normal DNS traffic, while the communication to the DNS       
  310    server is quiescent, the DNS client MAY want to probe the server        
  311    using DTLS heartbeat [RFC6520] to ensure it has maintained              
  312    cryptographic state.  Such probes can also keep alive firewall or NAT   
  313    bindings.  This probing reduces the frequency of needing a new          
  314    handshake when a DNS query needs to be resolved, improving the user     
  315    experience at the cost of bandwidth and processing time.                
  316                                                                            
  317    A DTLS session is terminated by the receipt of an authenticated         
  318    message that closes the connection (e.g., a DTLS fatal alert).  If      
  319    the server has lost state, a DTLS handshake needs to be initiated       
  320    with the server.  For the server, to mitigate the risk of               
  321    unintentional server overload, it is RECOMMENDED that the default DNS   
  322    over DTLS server application-level idle time be set to several          
  323    seconds and not set to less than a second, but no particular value is   
  324                                                                            
  325                                                                            
  326                                                                            
  327 Reddy, et al.                 Experimental                      [Page 6]   

  328 RFC 8094                      DNS over DTLS                February 2017   
  329                                                                            
  330                                                                            
  331    specified.  When no DNS queries have been received from the client      
  332    after idle timeout, the server MUST send a DTLS fatal alert and then    
  333    destroy its DTLS state.  The DTLS fatal alert packet indicates the      
  334    server has destroyed its state, signaling to the client that if it      
  335    wants to send a new DTLS message, it will need to re-establish          
  336    cryptographic context with the server (via full DTLS handshake or       
  337    DTLS session resumption).  In practice, the idle period can vary        
  338    dynamically, and servers MAY allow idle connections to remain open      
  339    for longer periods as resources permit.                                 
  340                                                                            
  341 4.  Performance Considerations                                             
  342                                                                            
  343    The DTLS protocol profile for DNS over DTLS is discussed in             
  344    Section 11 of [DTLS].  To reduce the number of octets of the DTLS       
  345    handshake, especially the size of the certificate in the ServerHello    
  346    (which can be several kilobytes), DNS clients and servers can use raw   
  347    public keys [RFC7250] or Cached Information Extension [RFC7924].        
  348    Cached Information Extension avoids transmitting the server's           
  349    certificate and certificate chain if the client has cached that         
  350    information from a previous TLS handshake.  TLS False Start [RFC7918]   
  351    can reduce round trips by allowing the TLS second flight of messages    
  352    (ChangeCipherSpec) to also contain the (encrypted) DNS query.           
  353                                                                            
  354    It is highly advantageous to avoid server-side DTLS state and reduce    
  355    the number of new DTLS sessions on the server that can be done with     
  356    TLS Session Resumption without server state [RFC5077].  This also       
  357    eliminates a round trip for subsequent DNS over DTLS queries, because   
  358    with [RFC5077] the DTLS session does not need to be re-established.     
  359                                                                            
  360    Since responses within a DTLS session can arrive out of order,          
  361    clients MUST match responses to outstanding queries on the same DTLS    
  362    connection using the DNS Message ID.  If the response contains a        
  363    question section, the client MUST match the QNAME, QCLASS, and QTYPE    
  364    fields.  Failure by clients to properly match responses to              
  365    outstanding queries can have serious consequences for                   
  366    interoperability (Section 7 of [RFC7766]).                              
  367                                                                            
  368 5.  Path MTU (PMTU) Issues                                                 
  369                                                                            
  370    Compared to normal DNS, DTLS adds at least 13 octets of header, plus    
  371    cipher and authentication overhead to every query and every response.   
  372    This reduces the size of the DNS payload that can be carried.  The      
  373    DNS client and server MUST support the Extension Mechanisms for DNS     
  374    (EDNS0) option defined in [RFC6891] so that the DNS client can          
  375    indicate to the DNS server the maximum DNS response size it can         
  376    reassemble and deliver in the DNS client's network stack.  If the DNS   
  377    client does set the EDNS0 option defined in [RFC6891], then the         
  378    maximum DNS response size of 512 bytes plus DTLS overhead will be       
  379                                                                            
  380                                                                            
  381                                                                            
  382 Reddy, et al.                 Experimental                      [Page 7]   

  383 RFC 8094                      DNS over DTLS                February 2017   
  384                                                                            
  385                                                                            
  386    well within the Path MTU.  If the Path MTU is not known, an IP MTU of   
  387    1280 bytes SHOULD be assumed.  The client sets its EDNS0 value as if    
  388    DTLS is not being used.  The DNS server MUST ensure that the DNS        
  389    response size does not exceed the Path MTU, i.e., each DTLS record      
  390    MUST fit within a single datagram, as required by [RFC6347].  The DNS   
  391    server must consider the amount of record expansion expected by the     
  392    DTLS processing when calculating the size of DNS response that fits     
  393    within the path MTU.  The Path MTU MUST be greater than or equal to     
  394    the DNS response size + DTLS overhead of 13 octets + padding size       
  395    ([RFC7830]) + authentication overhead of the negotiated DTLS cipher     
  396    suite + block padding (Section 4.1.1.1 of [RFC6347]).  If the DNS       
  397    server's response were to exceed that calculated value, the server      
  398    MUST send a response that does fit within that value and sets the TC    
  399    (truncated) bit.  Upon receiving a response with the TC bit set and     
  400    wanting to receive the entire response, the client behavior is          
  401    governed by the current Usage Profile [DTLS].  For Strict Privacy,      
  402    the client MUST only send a new DNS request for the same resource       
  403    record over an encrypted transport (e.g., DNS over TLS [RFC7858]).      
  404    Clients using Opportunistic Privacy SHOULD try for the best case (an    
  405    encrypted and authenticated transport) but MAY fall back to             
  406    intermediate cases and eventually the worst case scenario (clear        
  407    text) in order to obtain a response.                                    
  408                                                                            
  409 6.  Anycast                                                                
  410                                                                            
  411    DNS servers are often configured with anycast addresses.  While the     
  412    network is stable, packets transmitted from a particular source to an   
  413    anycast address will reach the same server that has the cryptographic   
  414    context from the DNS over DTLS handshake.  But, when the network        
  415    configuration or routing changes, a DNS over DTLS packet can be         
  416    received by a server that does not have the necessary cryptographic     
  417    context.  Clients using DNS over DTLS need to always be prepared to     
  418    re-initiate the DTLS handshake, and in the worst case this could even   
  419    happen immediately after re-initiating a new handshake.  To encourage   
  420    the client to initiate a new DTLS handshake, DNS servers SHOULD         
  421    generate a DTLS fatal alert message in response to receiving a DTLS     
  422    packet for which the server does not have any cryptographic context.    
  423    Upon receipt of an unauthenticated DTLS fatal alert, the DTLS client    
  424    validates the fatal alert is within the replay window                   
  425    (Section 4.1.2.6 of [RFC6347]).  It is difficult for the DTLS client    
  426    to validate that the DTLS fatal alert was generated by the DTLS         
  427    server in response to a request or was generated by an on- or off-      
  428    path attacker.  Thus, upon receipt of an in-window DTLS fatal alert,    
  429    the client SHOULD continue retransmitting the DTLS packet (in the       
  430    event the fatal alert was spoofed), and at the same time it SHOULD      
  431    initiate DTLS session resumption.  When the DTLS client receives an     
  432    authenticated DNS response from one of those DTLS sessions, the other   
  433    DTLS session should be terminated.                                      
  434                                                                            
  435                                                                            
  436                                                                            
  437 Reddy, et al.                 Experimental                      [Page 8]   

  438 RFC 8094                      DNS over DTLS                February 2017   
  439                                                                            
  440                                                                            
  441 7.  Usage                                                                  
  442                                                                            
  443    Two Usage Profiles, Strict and Opportunistic, are explained in          
  444    [DTLS].  The order of preference for DNS usage is as follows:           
  445                                                                            
  446    1.  Encrypted DNS messages with an authenticated server                 
  447                                                                            
  448    2.  Encrypted DNS messages with an unauthenticated server               
  449                                                                            
  450    3.  Plaintext DNS messages                                              
  451                                                                            
  452 8.  IANA Considerations                                                    
  453                                                                            
  454    This specification uses port 853 already allocated in the IANA port     
  455    number registry as defined in Section 6 of [RFC7858].                   
  456                                                                            
  457 9.  Security Considerations                                                
  458                                                                            
  459    The interaction between a DNS client and a DNS server requires          
  460    Datagram Transport Layer Security (DTLS) with a ciphersuite offering    
  461    confidentiality protection.  The guidance given in [RFC7525] MUST be    
  462    followed to avoid attacks on DTLS.  The DNS client SHOULD use the TLS   
  463    Certificate Status Request extension (Section 8 of [RFC6066]),          
  464    commonly called "OCSP stapling" to check the revocation status of the   
  465    public key certificate of the DNS server.  OCSP stapling, unlike OCSP   
  466    [RFC6960], does not suffer from scale and privacy issues.  DNS          
  467    clients keeping track of servers known to support DTLS enables          
  468    clients to detect downgrade attacks.  To interfere with DNS over        
  469    DTLS, an on- or off-path attacker might send an ICMP message towards    
  470    the DTLS client or DTLS server.  As these ICMP messages cannot be       
  471    authenticated, all ICMP errors should be treated as soft errors         
  472    [RFC1122].  If the DNS query was sent over DTLS, then the               
  473    corresponding DNS response MUST only be accepted if it is received      
  474    over the same DTLS connection.  This behavior mitigates all possible    
  475    attacks described in Measures for Making DNS More Resilient against     
  476    Forged Answers [RFC5452].  The security considerations in [RFC6347]     
  477    and [DTLS] are to be taken into account.                                
  478                                                                            
  479    A malicious client might attempt to perform a high number of DTLS       
  480    handshakes with a server.  As the clients are not uniquely identified   
  481    by the protocol and can be obfuscated with IPv4 address sharing and     
  482    with IPv6 temporary addresses, a server needs to mitigate the impact    
  483    of such an attack.  Such mitigation might involve rate limiting         
  484    handshakes from a certain subnet or more advanced DoS/DDoS techniques   
  485    beyond the scope of this document.                                      
  486                                                                            
  487                                                                            
  488                                                                            
  489                                                                            
  490                                                                            
  491                                                                            
  492 Reddy, et al.                 Experimental                      [Page 9]   

  493 RFC 8094                      DNS over DTLS                February 2017   
  494                                                                            
  495                                                                            
  496 10.  References                                                            
  497                                                                            
  498 10.1.  Normative References                                                
  499                                                                            
  500    [RFC1034]  Mockapetris, P., "Domain names - concepts and facilities",   
  501               STD 13, RFC 1034, DOI 10.17487/RFC1034, November 1987,       
  502               <http://www.rfc-editor.org/info/rfc1034>.                    
  503                                                                            
  504    [RFC1035]  Mockapetris, P., "Domain names - implementation and          
  505               specification", STD 13, RFC 1035, DOI 10.17487/RFC1035,      
  506               November 1987, <http://www.rfc-editor.org/info/rfc1035>.     
  507                                                                            
  508    [RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate          
  509               Requirement Levels", BCP 14, RFC 2119,                       
  510               DOI 10.17487/RFC2119, March 1997,                            
  511               <http://www.rfc-editor.org/info/rfc2119>.                    
  512                                                                            
  513    [RFC4033]  Arends, R., Austein, R., Larson, M., Massey, D., and S.      
  514               Rose, "DNS Security Introduction and Requirements",          
  515               RFC 4033, DOI 10.17487/RFC4033, March 2005,                  
  516               <http://www.rfc-editor.org/info/rfc4033>.                    
  517                                                                            
  518    [RFC5077]  Salowey, J., Zhou, H., Eronen, P., and H. Tschofenig,        
  519               "Transport Layer Security (TLS) Session Resumption without   
  520               Server-Side State", RFC 5077, DOI 10.17487/RFC5077,          
  521               January 2008, <http://www.rfc-editor.org/info/rfc5077>.      
  522                                                                            
  523    [RFC5452]  Hubert, A. and R. van Mook, "Measures for Making DNS More    
  524               Resilient against Forged Answers", RFC 5452,                 
  525               DOI 10.17487/RFC5452, January 2009,                          
  526               <http://www.rfc-editor.org/info/rfc5452>.                    
  527                                                                            
  528    [RFC6347]  Rescorla, E. and N. Modadugu, "Datagram Transport Layer      
  529               Security Version 1.2", RFC 6347, DOI 10.17487/RFC6347,       
  530               January 2012, <http://www.rfc-editor.org/info/rfc6347>.      
  531                                                                            
  532    [RFC6520]  Seggelmann, R., Tuexen, M., and M. Williams, "Transport      
  533               Layer Security (TLS) and Datagram Transport Layer Security   
  534               (DTLS) Heartbeat Extension", RFC 6520,                       
  535               DOI 10.17487/RFC6520, February 2012,                         
  536               <http://www.rfc-editor.org/info/rfc6520>.                    
  537                                                                            
  538    [RFC6891]  Damas, J., Graff, M., and P. Vixie, "Extension Mechanisms    
  539               for DNS (EDNS(0))", STD 75, RFC 6891,                        
  540               DOI 10.17487/RFC6891, April 2013,                            
  541               <http://www.rfc-editor.org/info/rfc6891>.                    
  542                                                                            
  543                                                                            
  544                                                                            
  545                                                                            
  546                                                                            
  547 Reddy, et al.                 Experimental                     [Page 10]   

  548 RFC 8094                      DNS over DTLS                February 2017   
  549                                                                            
  550                                                                            
  551    [RFC7525]  Sheffer, Y., Holz, R., and P. Saint-Andre,                   
  552               "Recommendations for Secure Use of Transport Layer           
  553               Security (TLS) and Datagram Transport Layer Security         
  554               (DTLS)", BCP 195, RFC 7525, DOI 10.17487/RFC7525, May        
  555               2015, <http://www.rfc-editor.org/info/rfc7525>.              
  556                                                                            
  557    [RFC7830]  Mayrhofer, A., "The EDNS(0) Padding Option", RFC 7830,       
  558               DOI 10.17487/RFC7830, May 2016,                              
  559               <http://www.rfc-editor.org/info/rfc7830>.                    
  560                                                                            
  561 10.2.  Informative References                                              
  562                                                                            
  563    [DTLS]     Dickinson, S., Gillmor, D., and T. Reddy, "Authentication    
  564               and (D)TLS Profile for DNS-over-(D)TLS", Work in             
  565               Progress, draft-ietf-dprive-dtls-and-tls-profiles-08,        
  566               January 2017.                                                
  567                                                                            
  568    [DTLS13]   Rescorla, E. and H. Tschofenig, "The Datagram Transport      
  569               Layer Security (DTLS) Protocol Version 1.3", Work in         
  570               Progress, draft-rescorla-tls-dtls13-00, October 2016.        
  571                                                                            
  572    [RFC1122]  Braden, R., Ed., "Requirements for Internet Hosts -          
  573               Communication Layers", STD 3, RFC 1122,                      
  574               DOI 10.17487/RFC1122, October 1989,                          
  575               <http://www.rfc-editor.org/info/rfc1122>.                    
  576                                                                            
  577    [RFC6066]  Eastlake 3rd, D., "Transport Layer Security (TLS)            
  578               Extensions: Extension Definitions", RFC 6066,                
  579               DOI 10.17487/RFC6066, January 2011,                          
  580               <http://www.rfc-editor.org/info/rfc6066>.                    
  581                                                                            
  582    [RFC6335]  Cotton, M., Eggert, L., Touch, J., Westerlund, M., and S.    
  583               Cheshire, "Internet Assigned Numbers Authority (IANA)        
  584               Procedures for the Management of the Service Name and        
  585               Transport Protocol Port Number Registry", BCP 165,           
  586               RFC 6335, DOI 10.17487/RFC6335, August 2011,                 
  587               <http://www.rfc-editor.org/info/rfc6335>.                    
  588                                                                            
  589    [RFC6960]  Santesson, S., Myers, M., Ankney, R., Malpani, A.,           
  590               Galperin, S., and C. Adams, "X.509 Internet Public Key       
  591               Infrastructure Online Certificate Status Protocol - OCSP",   
  592               RFC 6960, DOI 10.17487/RFC6960, June 2013,                   
  593               <http://www.rfc-editor.org/info/rfc6960>.                    
  594                                                                            
  595                                                                            
  596                                                                            
  597                                                                            
  598                                                                            
  599                                                                            
  600                                                                            
  601                                                                            
  602 Reddy, et al.                 Experimental                     [Page 11]   

  603 RFC 8094                      DNS over DTLS                February 2017   
  604                                                                            
  605                                                                            
  606    [RFC7250]  Wouters, P., Ed., Tschofenig, H., Ed., Gilmore, J.,          
  607               Weiler, S., and T. Kivinen, "Using Raw Public Keys in        
  608               Transport Layer Security (TLS) and Datagram Transport        
  609               Layer Security (DTLS)", RFC 7250, DOI 10.17487/RFC7250,      
  610               June 2014, <http://www.rfc-editor.org/info/rfc7250>.         
  611                                                                            
  612    [RFC7413]  Cheng, Y., Chu, J., Radhakrishnan, S., and A. Jain, "TCP     
  613               Fast Open", RFC 7413, DOI 10.17487/RFC7413, December 2014,   
  614               <http://www.rfc-editor.org/info/rfc7413>.                    
  615                                                                            
  616    [RFC7626]  Bortzmeyer, S., "DNS Privacy Considerations", RFC 7626,      
  617               DOI 10.17487/RFC7626, August 2015,                           
  618               <http://www.rfc-editor.org/info/rfc7626>.                    
  619                                                                            
  620    [RFC7766]  Dickinson, J., Dickinson, S., Bellis, R., Mankin, A., and    
  621               D. Wessels, "DNS Transport over TCP - Implementation         
  622               Requirements", RFC 7766, DOI 10.17487/RFC7766, March 2016,   
  623               <http://www.rfc-editor.org/info/rfc7766>.                    
  624                                                                            
  625    [RFC7858]  Hu, Z., Zhu, L., Heidemann, J., Mankin, A., Wessels, D.,     
  626               and P. Hoffman, "Specification for DNS over Transport        
  627               Layer Security (TLS)", RFC 7858, DOI 10.17487/RFC7858, May   
  628               2016, <http://www.rfc-editor.org/info/rfc7858>.              
  629                                                                            
  630    [RFC7918]  Langley, A., Modadugu, N., and B. Moeller, "Transport        
  631               Layer Security (TLS) False Start", RFC 7918,                 
  632               DOI 10.17487/RFC7918, August 2016,                           
  633               <http://www.rfc-editor.org/info/rfc7918>.                    
  634                                                                            
  635    [RFC7924]  Santesson, S. and H. Tschofenig, "Transport Layer Security   
  636               (TLS) Cached Information Extension", RFC 7924,               
  637               DOI 10.17487/RFC7924, July 2016,                             
  638               <http://www.rfc-editor.org/info/rfc7924>.                    
  639                                                                            
  640                                                                            
  641                                                                            
  642                                                                            
  643                                                                            
  644                                                                            
  645                                                                            
  646                                                                            
  647                                                                            
  648                                                                            
  649                                                                            
  650                                                                            
  651                                                                            
  652                                                                            
  653                                                                            
  654                                                                            
  655                                                                            
  656                                                                            
  657 Reddy, et al.                 Experimental                     [Page 12]   

  658 RFC 8094                      DNS over DTLS                February 2017   
  659                                                                            
  660                                                                            
  661 Acknowledgements                                                           
  662                                                                            
  663    Thanks to Phil Hedrick for his review comments on TCP and to Josh       
  664    Littlefield for pointing out DNS over DTLS load on busy servers (most   
  665    notably root servers).  The authors would like to thank Simon           
  666    Josefsson, Daniel Kahn Gillmor, Bob Harold, Ilari Liusvaara, Sara       
  667    Dickinson, Christian Huitema, Stephane Bortzmeyer, Alexander            
  668    Mayrhofer, Allison Mankin, Jouni Korhonen, Stephen Farrell, Mirja       
  669    Kuehlewind, Benoit Claise, and Geoff Huston for discussions and         
  670    comments on the design of DNS over DTLS.  The authors would like to     
  671    give special thanks to Sara Dickinson for her help.                     
  672                                                                            
  673 Authors' Addresses                                                         
  674                                                                            
  675    Tirumaleswar Reddy                                                      
  676    Cisco Systems, Inc.                                                     
  677    Cessna Business Park, Varthur Hobli                                     
  678    Sarjapur Marathalli Outer Ring Road                                     
  679    Bangalore, Karnataka  560103                                            
  680    India                                                                   
  681                                                                            
  682    Email: tireddy@cisco.com                                                
  683                                                                            
  684                                                                            
  685    Dan Wing                                                                
  686                                                                            
  687    Email: dwing-ietf@fuggles.com                                           
  688                                                                            
  689                                                                            
  690    Prashanth Patil                                                         
  691    Cisco Systems, Inc.                                                     
  692                                                                            
  693    Email: praspati@cisco.com                                               
  694                                                                            
  695                                                                            
  696                                                                            
  697                                                                            
  698                                                                            
  699                                                                            
  700                                                                            
  701                                                                            
  702                                                                            
  703                                                                            
  704                                                                            
  705                                                                            
  706                                                                            
  707                                                                            
  708                                                                            
  709                                                                            
  710                                                                            
  711                                                                            
  712 Reddy, et al.                 Experimental                     [Page 13]   
  713                                                                            

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.