dpriveInternet Engineering Task Force (IETF) S. DickinsonInternet-DraftRequest for Comments: 8310 Sinodun Updates: 7858(if approved)D. GillmorIntended status:Category: Standards Track ACLUExpires: March 15, 2018ISSN: 2070-1721 T. Reddy McAfeeSeptember 11, 2017March 2018 Usageand (D)TLSProfiles forDNS-over-(D)TLS draft-ietf-dprive-dtls-and-tls-profiles-11DNS over TLS and DNS over DTLS Abstract This document discussesUsage Profiles,usage profiles, based on one or more authentication mechanisms, which can be used for DNS over Transport Layer Security (TLS) or Datagram TLS (DTLS). These profiles can increase the privacy of DNS transactions compared to using onlyclear textcleartext DNS. This document also specifies new authentication mechanisms--- it describes several ways that a DNS client can use an authentication domain name to authenticate a (D)TLS connection to a DNS server. Additionally, it defines (D)TLS protocol profiles for DNS clients and servers implementingDNS-over-(D)TLS.DNS over (D)TLS. This document updates RFC 7858. Status of This Memo ThisInternet-Draftissubmitted in full conformance with the provisions of BCP 78 and BCP 79. Internet-Drafts are working documentsan Internet Standards Track document. This document is a product of the Internet Engineering Task Force (IETF).Note that other groups may also distribute working documents as Internet-Drafts. The listIt represents the consensus ofcurrent Internet- Drafts is at http://datatracker.ietf.org/drafts/current/. Internet-Drafts are draft documents validthe IETF community. It has received public review and has been approved fora maximumpublication by the Internet Engineering Steering Group (IESG). Further information on Internet Standards is available in Section 2 ofsix monthsRFC 7841. Information about the current status of this document, any errata, and how to provide feedback on it may beupdated, replaced, or obsoleted by other documentsobtained atany time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress." This Internet-Draft will expire on March 15, 2018.https://www.rfc-editor.org/info/rfc8310. Copyright Notice Copyright (c)20172018 IETF Trust and the persons identified as the document authors. All rights reserved. This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents(http://trustee.ietf.org/license-info)(https://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Simplified BSD License. Table of Contents 1. Introduction. . . . . . . . . . . . . . . . . . . . . . . . 3....................................................4 2. Terminology. . . . . . . . . . . . . . . . . . . . . . . . . 5.....................................................6 3. Scope. . . . . . . . . . . . . . . . . . . . . . . . . . . . 6...........................................................7 4. Discussion. . . . . . . . . . . . . . . . . . . . . . . . . 7......................................................8 5. Usage Profiles. . . . . . . . . . . . . . . . . . . . . . . 7..................................................8 5.1. DNS Resolution. . . . . . . . . . . . . . . . . . . . . 10............................................11 6. Authentication inDNS-over(D)TLS . . . . . . . . . . . . . . 10DNS over (D)TLS ..............................11 6.1. DNS-over-(D)TLS Startup Configuration Problems. . . . . 10............11 6.2. Credential Verification. . . . . . . . . . . . . . . . . 11...................................12 6.3. Summary of Authentication Mechanisms. . . . . . . . . . 11......................12 6.4. Combining Authentication Mechanisms. . . . . . . . . . . 14.......................15 6.5. Authentication in Opportunistic Privacy. . . . . . . . . 14...................15 6.6. Authentication in Strict Privacy. . . . . . . . . . . . 15..........................16 6.7. Implementationguidance . . . . . . . . . . . . . . . . . 15Guidance ...................................16 7. Sources of Authentication Domain Names. . . . . . . . . . . 15.........................17 7.1. Fulldirect configuration . . . . . . . . . . . . . . . . 15Direct Configuration .................................17 7.2. DirectconfigurationConfiguration of ADNonly . . . . . . . . . . . . 16Only ..........................17 7.3. DynamicdiscoveryDiscovery of ADN. . . . . . . . . . . . . . . . 16..................................17 7.3.1. DHCP. . . . . . . . . . . . . . . . . . . . . . . . 16...............................................18 8. Credential Verification Based on Authentication Domain Namebased Credential Verification . . 17....18 8.1. Authentication Based on PKIX CertificateBased Authentication . . . . . . . . . . 17..................18 8.2. DANE. . . . . . . . . . . . . . . . . . . . . . . . . . 17......................................................19 8.2.1. Direct DNSLookup . . . . . . . . . . . . . . . . . . 18Meta-Queries ............................20 8.2.2. TLS DNSSEC Chainextension . . . . . . . . . . . . . 18Extension .........................20 9. (D)TLS Protocol Profile. . . . . . . . . . . . . . . . . . . 19........................................20 10. IANA Considerations. . . . . . . . . . . . . . . . . . . . . 20...........................................21 11. Security Considerations. . . . . . . . . . . . . . . . . . . 20.......................................21 11.1.Counter-measuresCountermeasures to DNS Traffic Analysis. . . . . . . . 20..................22 12.Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 21 13.References. . . . . . . . . . . . . . . . . . . . . . . . . 21 13.1.....................................................22 12.1. Normative References. . . . . . . . . . . . . . . . . . 21 13.2......................................22 12.2. Informative References. . . . . . . . . . . . . . . . . 23...................................24 Appendix A. Servercapability probingCapability Probing andcachingCaching by DNSclients 24 Appendix B. Changes between revisions . . . . . . . . . . . . . 24 B.1. -11 version . . . . . . . . . . . . . . . . . . . . . . . 25 B.2. -10 version . . . . . . . . . . . . . . . . . . . . . . . 25 B.3. -09 version . . . . . . . . . . . . . . . . . . . . . . . 26 B.4. -08 version . . . . . . . . . . . . . . . . . . . . . . . 26 B.5. -07 version . . . . . . . . . . . . . . . . . . . . . . . 26 B.6. -06 version . . . . . . . . . . . . . . . . . . . . . . . 26 B.7. -05 version . . . . . . . . . . . . . . . . . . . . . . . 27 B.8. -04 version . . . . . . . . . . . . . . . . . . . . . . . 27 B.9. -03 version . . . . . . . . . . . . . . . . . . . . . . . 27 B.10. -02 version . . . . . . . . . . . . . . . . . . . . . . . 27 B.11. -01 version . . . . . . . . . . . . . . . . . . . . . . . 28 B.12. draft-ietf-dprive-dtls-and-tls-profiles-00 . . . . . . . 28Clients ..26 Acknowledgments ...................................................27 Authors' Addresses. . . . . . . . . . . . . . . . . . . . . . . 28................................................27 1. Introduction DNSPrivacyprivacy issues are discussed in [RFC7626]. The specific issues describedtherein [RFC7626] that are most relevant to this document are o Passive attackswhichthat eavesdrop onclear textcleartext DNS transactions on the wire (Section2.4)2.4 of [RFC7626]) and o Active attackswhichthat redirect clients to rogue servers to monitor DNS traffic (Section2.5.3).2.5.3 of [RFC7626]). Mitigatingagainstthese attacks increases the privacy of DNStransactions, howevertransactions; however, many of the other issues raised in [RFC7626] still apply. Two documents that provide ways to increase DNS privacy between DNS clients and DNS serversare:are oSpecification"Specification for DNS over Transport Layer Security(TLS)(TLS)" [RFC7858], referred to here as simply'DNS-over-TLS'"DNS over TLS". oDNS"DNS over Datagram Transport Layer Security(DTLS)(DTLS)" [RFC8094], referred to heresimplyas'DNS-over-DTLS'.simply "DNS over DTLS". Note thatthis document has the Category of Experimental.[RFC8094] is an Experimental specification. Both documents are limited in scope to communications between stub clients and recursiveresolversresolvers, and the same scope is applied to this document (seeSectionSections 2 andSection3). The proposals here might be adapted or extended in future to be used for recursive clients and authoritative servers, but this application was out of scope for the DNS PRIVate Exchange (dprive) Working Group charter at the time this document wasfinished.published. This document specifies twoUsage Profilesusage profiles (Strict Privacy andOpportunistic)Opportunistic Privacy) for DTLS [RFC6347] and TLS [RFC5246]whichthat provide improved levels of mitigationagainstfor the attacks described above compared to using onlyclear textcleartext DNS. Section 5 presents a generalized discussion ofUsage Profilesusage profiles by separating theUsage Profile,usage profile, which is based purely on the security properties it offers the user, from the specificmechanism(s)mechanism or mechanisms that are used for DNS server authentication. TheProfilesprofiles describedare:are o A StrictProfile thatPrivacy profile, which requires an encrypted connection and successful authentication of the DNSserver whichserver; this mitigates both passive eavesdropping and clientre-directionredirection (at the expense of providing no DNS service ifthisan encrypted, authenticated connection is not available). o An OpportunisticProfile thatPrivacy profile, which will attempt, but does not require, encryption and successful authentication; it therefore provides limited or no mitigationagainstfor such attacks butoffers maximummaximizes the chance of DNS service. The aboveUsage Profilesusage profiles attempt authentication of the server using at least one authentication mechanism. Section 6.4 discusses how to combine authentication mechanisms to determine the overall authentication result. Depending on that overall authentication result (and whether encryption isavailable)available), theUsage Profileusage profile will determine if the connection should proceed,fallbackfall back, or fail. One authentication mechanism is already described in [RFC7858].That document[RFC7858] specifiesaan authentication mechanism for DNS over TLS that is based on Subject Public Key Info (SPKI)based authentication mechanism for DNS-over-TLSin the context of a specific case of a StrictUsage ProfilePrivacy profile using that single authentication mechanism.ThereforeTherefore, the"Out-of-band Key-pinned Privacy Profile""out-of-band key-pinned privacy profile" described in [RFC7858] would qualify as a "StrictUsage Profile"Privacy profile" that used SPKI pinning for authentication. This document extends the use ofSPKI pinset basedauthentication based on SPKI pin sets, so that it is considered a general authentication mechanism that can be used with either DNS-over-(D)TLSUsage Profile.usage profile. That is, theSPKI pinsetmechanism for SPKI pin sets as described in [RFC7858] MAY be used withDNS- over-(D)TLS.DNS over (D)TLS. This document also describes a number of additional authenticationmechanismsmechanisms, all of which specify how a DNS client should authenticate a DNS server based on an'authentication"authentication domainname'.name". In particular, the followingistopics are described: o How a DNS client can obtain the combination of an authentication domain name and IP address for a DNS server. See Section 7. o Whatare theacceptable credentials a DNS server can present to prove its identity for (D)TLS authentication based on a given authentication domain name. See Section 8. o How a DNS client can verify that any given credential matches the authentication domain name obtained for a DNS server. See Section 8.In Section 9 thisThis document defines a (D)TLS protocol profile for use withDNS.DNS; see Section 9. This profile defines the configuration options and protocol extensions required of both parties to (1) optimize connection establishment and session resumption for transportingDNS,DNS andto(2) support all currently specified authentication mechanisms. 2. Terminology The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in[RFC2119].BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all capitals, as shown here. Several terms are used specifically in the context of thisdraft:document: o DNS client:aA DNS stub resolver or forwarder. In the case of a forwarder, the term "DNS client" is used to discuss the side that sends queries. o DNS server:aA DNS recursive resolver or forwarder. In the case of a forwarder, the term "DNS server" is used to discuss the side that responds to queries.For emphasis,Note that, as used in thisdocument thedocument, this term does not apply to authoritative servers. o Privacy-enabling DNS server: A DNS server that implementsDNS- over-TLSDNS over TLS [RFC7858] and may optionally implementDNS-over-DTLSDNS over DTLS [RFC8094]. The server should also offer at least one of the credentials described in Section 8 and implement the (D)TLS profile described in Section 9. o (D)TLS:For brevity this term is usedUsed forstatements that applybrevity; refers to both Transport Layer Security [RFC5246] and Datagram Transport Layer Security [RFC6347]. Specific terms will be used for anystatementtext that applies to either protocol alone. oDNS-over-(D)TLS: For brevity this term is usedDNS over (D)TLS: Used forstatements that applybrevity; refers to bothDNS-over-TLSDNS over TLS [RFC7858] andDNS-over-DTLSDNS over DTLS [RFC8094]. Specific terms will be used for anystatementtext that applies to either protocol alone. o Authentication domain name: A domain name that can be used to authenticate a privacy-enabling DNS server. Sources of authentication domain names are discussed in Section 7. o SPKIPinsets:pin sets: [RFC7858] describes the use of cryptographic digests to "pin" public key information in a manner similar to HTTP Public Key Pinning[RFC7469] (HPKP).(HPKP) [RFC7469]. An SPKIpinsetpin set is a collection of these pins that constrains a DNS server. o Authentication information: Information a DNS client may use as the basis of an authentication mechanism. In thiscontext thatcontext, this information can be eithera:*aan SPKIpinsetpin set or * an authentication domain name o ReferenceIdentifier: a Reference Identifieridentifier: A reference identifier as described in [RFC6125], constructed by the DNS client when performing TLS authentication of a DNS server. o Credential: Information available for a DNS serverwhichthat proves its identity for authentication purposes. Credentials discussed hereinclude:include * a PKIX certificate *DNSSEC validateda DNSSEC-validated chain to a TLSA record but may also include SPKIpinsets.pin sets. 3. Scope This document is limited to describing o UsageProfilesprofiles based on general authenticationmechanismsmechanisms. o The details ofdomain name baseddomain-name-based authentication of DNS servers by DNS clients (as defined inthe terminology section)Section 2). o The (D)TLS profiles needed to support authentication inDNS- over-(D)TLS.DNS over (D)TLS. As such, the followingthingstopics are out ofscope:scope for this document: o Authentication of authoritative servers by recursive resolvers. o Authentication of DNS clients by DNS servers. o The details of how to performSPKI-pinset-based authentication.authentication based on SPKI pin sets. This is defined in [RFC7858]. o Any server identifier other than domain names, including IP addresses, organizational names, country of origin, etc. 4. Discussion One way to mitigateagainst passive attackerseavesdropping onclear textcleartext DNS transactions by passive attackers is to encrypt the query (and response). Such encryption typically provides integrity protection as aside-effect, whichside effect; this means that on-path attackers cannot simply inject bogus DNS responses. To also mitigateagainstactive attackers pretending to be the server, the client must authenticate the (D)TLS connection to the server. This document discussesUsage Profiles,usage profiles, which provide differing levels of attack mitigation to DNS clients, based on the requirements for authentication and encryption, regardless of the context (for example, which network the client is connected to). AUsage Profileusage profile is adistinctconcepttodistinct from a usage policy or usagemodel, whichmodel; a usage policy or usage model might dictate whichProfileprofile should be used in a particular context (enterprisevsvs. coffee shop), with a particular set of DNSServersservers or with reference to other external factors. A description of the variety of usage policies is out of scopeoffor thisdocument,document but may be the subject of future work. The term'privacy-enabling"privacy-enabling DNSserver'server" is used throughout this document. This is a DNS serverthat:that o MUST implementDNS-over-TLSDNS over TLS [RFC7858]. o MAY implementDNS-over-DTLSDNS over DTLS [RFC8094]. o SHOULD offer at least one of the credentials described in Section 8. o Implements the (D)TLS profile described in Section 9. 5. Usage Profiles A DNS client has a choice ofUsage Profilesusage profiles available to increase the privacy of DNS transactions. This choice is briefly discussed in both [RFC7858] and [RFC8094]. TheseUsage Profiles are:usage profiles are o Strict Privacy profile:theThe DNS client requires both an encrypted and authenticated connection to a privacy-enabling DNSServer.server. A hard failure occurs if this is not available. This requires the client to securely obtain authentication information it can use to authenticate the server. This profile mitigatesagainstboth passive and activeattacksattacks, thereby providing the client with the best available privacy for DNS. ThisProfileprofile is discussed in detail in Section 6.6. o OpportunisticPrivacy: thePrivacy profile: The DNS client uses Opportunistic Security as described in[RFC7435][RFC7435]. * "... the use of cleartext as the baseline communication security policy, with encryption and authentication negotiated and applied to the communication when available." As described in[RFC7435][RFC7435], it might result in * an encrypted and authenticated connection * an encrypted connection * aclear textcleartext connection depending on the fallback logic of the client, the available authenticationinformationinformation, and the capabilities of the DNSServer.server. In all thesecasescases, the DNS client is willing to continue with a connection to the DNSServerserver and perform resolution of queries. The use of Opportunistic Privacy is intended to support incremental deployment of increased privacy with a view to widespread adoption of the Strict Privacy profile. It should be employed when the DNS client might otherwise settle for cleartext; it provides the maximum protectionavailableavailable, depending on the combination of factors described above. If all the configured DNSServersservers are DNSPrivacy serversprivacy servers, then itprovidescan provide protection against passive attacksbut notand might protect against active ones. Both profiles can include an initialmeta querymeta-query (performed usinganOpportunisticlookup)Privacy) to obtain the IP address for the privacy- enabling DNS server to which the DNS client will subsequently connect. The rationale for permitting this for the Strict Privacy profile is that requiring suchmeta queriesmeta-queries to also be performed using the Strict Privacy profile would introduce significant deployment obstacles. However, it should be noted that in this scenario an active attackis possibleon themeta query.meta-query is possible. Such an attack could result in a Strict Privacy profile client connecting to a server it cannot authenticateand so(and therefore not obtaining DNSservice,service) or an Opportunistic Privacy client connecting to a server controlled by the attacker. DNSSEC validation can detect the attack on themeta query and resultsmeta-query, which may result in the client not obtaining DNS service (for bothUsage profiles) because it will not proceed to connect to the server in question (seeusage profiles), depending on its DNSSEC validation policy. See Section7.2)7.2 for more discussion. To compare the twoUsage profiles the tableusage profiles, Table 1 below shows a successful Strict Privacy profilealong sidealongside the3three possible outcomes of an Opportunistic Privacy profile. In thebest casebest-case scenario for the Opportunistic Privacy profile (an authenticated and encryptedconnection)connection), it is equivalent to the Strict Privacy profile. In theworst case scenarioworst-case scenario, it is equivalent toclear text.cleartext. Clients using the Opportunistic Privacy profile SHOULD try for the best case but MAYfallbackfall back to the intermediate caseand eventuallyand, eventually, theworstworst- casescenarioscenario, in order to obtain a response. One reason tofallbackfall back without trying every available privacy-enabling DNS server is if latency is more important than attackmitigation,mitigation; see Appendix A. The Opportunistic Privacy profile therefore provides varyingprotectionprotection, depending on what kind of connection is actuallyusedused, including no attack mitigation at all. Note that there is no requirement in Opportunistic Security to notify the user regarding what type of connection is actuallyused,used; the'detection'"detection" described below is only possible if such connection information is available. However, if it is available and the user is informed that an unencrypted connection was used to connect to aserverserver, then the user should assume (detect) that the connection is subject to both active and passiveattackattacks, since the DNS queries are sent inclear text.cleartext. This might be particularly useful if a new connection to a certain server is unencrypted when all previous connections were encrypted.SimilarlySimilarly, if the user is informed that an encrypted but unauthenticated connection wasusedused, then the user can detect that the connection may be subject to activeattack.attacks. In otherwordswords, for the cases where no protection is provided against an attacker(N)(N), it is possible to detect that an attack might be happening (D). This is discussed in Section 6.5. +---------------+------------+------------------+-----------------+ | Usage Profile | Connection | Passive Attacker | Active Attacker | +---------------+------------+------------------+-----------------+ | Strict | A, E | P | P | | Opportunistic | A, E | P | P | | Opportunistic | E | P | N, D | | Opportunistic | | N, D | N, D | +---------------+------------+------------------+-----------------+ P == Protection; N == No protection; D == Detection is possible; A == Authenticated connection; E == Encrypted connection Table 1: AttackprotectionProtection by Usage Profile andtypeType ofattackerAttacker The Strict Privacy profile provides the best attack mitigation and therefore SHOULD always be implemented in DNS clients that implement the OpportunisticPrivacy.Privacy profile. A DNS client that implementsDNS-over-(D)TLSDNS over (D)TLS SHOULD NOT be configured by default to use onlyclear text.cleartext. The choice between the two profiles depends on a number offactorsfactors, including which is more important to the particular client: o DNSserviceservice, at the cost of no attack mitigation(Opportunistic)(Opportunistic Privacy) or obestBest available attackmitigationmitigation, at the potential cost of no DNS service(Strict). Additionally(Strict Privacy). Additionally, the two profiles require varying levels of configuration (or a trusted relationship with a provider) and DNS servercapabilities, thereforecapabilities; therefore, DNS clients will need to carefully select which profile to use based on their communication needs. A DNS server that implementsDNS-over-(D)TLSDNS over (D)TLS SHOULD provide at least one credential (Section 2) so that those DNS clients that wish todo so are able touse the Strict Privacy profile(see Section 2).are able to do so. 5.1. DNS Resolution A DNS client SHOULD select a particularUsage Profileusage profile when resolving a query. A DNS client MUST NOTfallbackfall back from Strict Privacy to Opportunistic Privacy during the resolution of a givenqueryquery, as this could invalidate the protection offered against attackers. It is anticipated that DNS clients will use a particularUsage Profileusage profile for all queries to all configured servers until an operational issue or policy update dictates a change in the profile used. 6. Authentication inDNS-over(D)TLSDNS over (D)TLS This section describes authentication mechanisms and how they can be used in either Strict or Opportunistic Privacy forDNS-over-(D)TLS.DNS over (D)TLS. 6.1. DNS-over-(D)TLS Startup Configuration Problems Many (D)TLS clients use PKIX authentication [RFC6125] based on an authentication domain name for the server they are contacting. These clients typically first look up the server's network address in the DNS before making this connection. Such a DNS client therefore has a bootstrap problem, as it will typically only know the IP address of its DNS server. In this case, before connecting to a DNS server, a DNS client needs to learn the authentication domain name it should associate with the IP address of a DNS server for authentication purposes. Sources of authentication domain names are discussed in Section 7. One advantage of thisdomain name baseddomain-name-based approach is that it encourages the association of stable,human recognizablehuman-recognizable identifiers with secure DNS service providers. 6.2. Credential VerificationThe useVerification of SPKIpinset verificationpin sets is discussed in [RFC7858]. In terms ofdomain name baseddomain-name-based verification, once an authentication domain name is known for a DNSserverserver, a choice of authentication mechanisms can be used for credential verification. Section 8 discusses these mechanismsin detail, namely-- namely, PKIXcertificate basedcertificate-based authentication andDANE.DNS-Based Authentication of Named Entities (DANE) -- in detail. Note that the use of DANE adds requirements on the ability of the client to get validated DNSSEC results. This is discussed in more detail in Section 8.2. 6.3. Summary of Authentication Mechanisms This section provides an overview of the various authentication mechanisms.The tableTable 2 below indicates how the DNS client obtains information to use for authentication for eachoption;option: either statically via direct configuration or dynamically. Of course, the OpportunisticUsage ProfilePrivacy profile does not requireauthenticationauthentication, and so a client using that profile may choose to connect to a privacy-enabling DNS server on the basis of just an IP address. +---+------------+-------------+------------------------------------+ | # | Static | Dynamically | Short name: Description | | | Config | Obtained | | +---+------------+-------------+------------------------------------+ | 1 | SPKI + IP | | SPKI: SPKIpinset(s)pin set(s) and IP | | | | | address obtained out of band | | | | | [RFC7858] | | | | | | | 2 | ADN + IP | | ADN: ADN and IP address obtained | | | | | out of band (see Section 7.1) | | | | | | | 3 | ADN | IP | ADN only: Opportunisticlookups toPrivacy | | | | | meta-queries to a NP DNS serverfor A/AAAA (see| | | | | for A/AAAA (see Section 7.2) | | | | | | | 4 | | ADN + IP | DHCP: DHCP configuration only (see | | | | | Section 7.3.1) | | | | | | | 5 | [ADN + IP] | [ADN + IP] | DANE: DNSSEC chain obtained via | | | | TLSA record | Opportunisticlookups to NP DNSPrivacy meta-queries | | | | | to NP DNS server (see Section | | | | | 8.2.1) | | | | | | | 6 | [ADN + IP] | [ADN + IP] | TLS extension: DNSSEC chain | | | | TLSA record | provided by PE DNS server in TLS | | | | | DNSSEC chain extension (see | | | | | Section 8.2.2) | +---+------------+-------------+------------------------------------+ SPKI == SPKIpinset(s),pin set(s); IP == IPAddress,Address; ADN == Authentication DomainName,Name; NP ==Network provided,Network-Provided; PE ==Privacy-enabling,Privacy-Enabling; [ ] == Data may be obtained either statically or dynamically Table 2: Overview of Authentication Mechanisms The following summary attempts to present some key attributes of each of the mechanisms (using the'Short name'"Short name" from Table 2), indicating attractive attributes with a'+'"+" and undesirable attributes with a'-'."-". 1. SPKI + Minimal leakage(Note(note that the ADN is always leaked in the Server Name Indication (SNI) field in theClient HelloClientHello in TLS when communicating with a privacy-enabling DNS server) - Overhead ofon-goingongoing key management required 2. ADN + Minimal leakage + One-off direct configuration only 3. ADN only + Minimal one-off directconfiguration,configuration; only ahuman recognizablehuman-recognizable domain name needed - A/AAAAmeta queriesmeta-queries leaked tonetwork providednetwork-provided DNS server that may be subject to active attack (attack can be mitigated by DNSSECvalidation).validation) 4. DHCP + No static config - Requires a non-standard or future DHCP option in order to provide the ADN - Requires secure and trustworthy connection to DHCP server if used with a StrictUsagePrivacy profile 5. DANE The ADN and/or IP may be obtained statically ordynamicallydynamically, and the relevant attributes of that methodapplyapply. + DANE options (e.g., matching on entire certificate) - Requires aDNSSEC validatingDNSSEC-validating stub implementation(deployment(the deployment of which is limited at the time of this writing) - DNSSEC chainmeta queriesmeta-queries leaked tonetwork providednetwork-provided DNS server that may be subject to active attack 6. TLS extension The ADN and/or IP may be obtained statically ordynamicallydynamically, and the relevant attributes of that methodapplyapply. + Reduced latency compared with'DANE'DANE + Nonetwork providednetwork-provided DNS server required if ADN and IP statically configured + DANE options (e.g., matching on entire certificate) - Requires aDNSSEC validatingDNSSEC-validating stub implementation 6.4. Combining Authentication Mechanisms Thisdraftdocument does not make explicit recommendations about how anSPKI pinset basedauthentication mechanism based on SPKI pin sets should be combined with adomain baseddomain-based mechanism from an operator perspective.HoweverHowever, it can be envisaged that a DNS server operator may wish to make both an SPKIpinsetpin set and an authentication domain name available to allow clients to choose which mechanism to use. Therefore, the followingistext provides guidance on how clients ought to behave if they choose to configure both, as is possible in HPKP [RFC7469]. A DNS client that is configured with both an authentication domain name andaan SPKIpinsetpin set for a DNS server SHOULD match on both a valid credential for the authentication domain name and a valid SPKIpinsetpin set (if both are available) when connecting to that DNS server. In thiscasecase, the client SHOULD treattheindividual SPKIpinpins as specified in Section 2.6 of [RFC7469] with regard touser defineduser-defined trust anchors. The overall authentication result SHOULD only be considered successful if both authentication mechanisms are successful. 6.5. Authentication in Opportunistic Privacy An Opportunistic Privacy Profile (based on Opportunistic Security[RFC7435] profile is described in [RFC7858] which[RFC7435]) that MAY be used forDNS-over-(D)TLS.DNS over (D)TLS is described in [RFC7858] and is further specified in this document. DNS clientsissuingthat issue queries under anopportunisticOpportunistic Privacy profile andwhichthat know authentication information for a given privacy-enabling DNS server SHOULD try to authenticate the server using the mechanisms described here. This is useful for detecting (but not preventing) activeattack,attacks, since the fact that authentication information is available indicates that the server in question is a privacy-enabling DNS server to which it should be possible to establish an authenticated and encrypted connection. In this case, whilst a client cannot know the reason for an authentication failure, from a security standpoint the client should consider an active attack in progress and proceed under that assumption. For example, a client that implements a nameserver selection algorithm that preferentially uses nameserverswhichthat successfully authenticated (see Section 5) might not continue to use the failing server if there were alternative servers available. Attempting authentication is also useful for debugging or diagnostic purposes if there are means to report the result. This information can provide a basis for a DNS client to switch to (preferred) Strict Privacy where it isviable e.g,viable, e.g., where all the configured servers supportDNS-over-(D)TLSDNS over (D)TLS and successfully authenticate. 6.6. Authentication in Strict Privacy To authenticate a privacy-enabling DNS server, a DNS client needs to know authentication information for each server it is willing to contact. This is necessary to protect against active attackswhichthat attempt tore-directredirect clients to rogue DNS servers. A DNS client requiring Strict Privacy MUSTeitheruse either (1) one of the sources listed in Section77, to obtain an authentication domain name for the server itcontacts,contacts oruse(2) an SPKIpinsetpin set as described in [RFC7858]. A DNS client requiring Strict Privacy MUST only attempt to connect to DNS servers for which at least one piece of authentication information is known. The client MUST use the available verification mechanisms described in Section 8 to authenticate theserver,server and MUST abort connections to a server when no verification mechanism succeeds. With Strict Privacy, the DNS client MUST NOT commence sending DNS queries until at least one of the privacy-enabling DNS servers becomes available. A privacy-enabling DNS server may be temporarily unavailable when configuring a network. For example, for clients on networks that require registration through web-based login (a.k.a. "captive portals"), such registration may rely on DNS interception and spoofing. Techniques such as those used byDNSSEC-triggerdnssec-trigger [dnssec-trigger] MAY be used during network configuration, with the intent to transition to the designated privacy-enabling DNS servers aftercaptive portalcaptive-portal registration. If using a StrictUsage profilePrivacy profile, the system MUST alert by some means that the DNS is not private during suchbootstrap.a bootstrap operation. 6.7. ImplementationguidanceGuidance Section 9 describes the (D)TLS profile forDNS-over(D)TLS.DNS over (D)TLS. Additional considerations relating to general implementation guidelines are discussed in both Section 11 andinAppendix A. 7. Sources of Authentication Domain Names 7.1. Fulldirect configurationDirect Configuration DNS clients may be directly and securely provisioned with the authentication domain name of each privacy-enabling DNSserver. Forserver -- for example, using aclient specificclient-specific configuration file or API. In this case, direct configuration for a DNS client would consist of both an IP address and an authentication domain name for each DNSserver.server that were obtained via an out-of-band mechanism. 7.2. DirectconfigurationConfiguration of ADNonlyOnly A DNS client may be configured directly and securely with only the authentication domain name of each of its privacy-enabling DNSservers. Forservers -- for example, using aclient specificclient-specific configuration file or API. A DNS client might learn of a default recursive DNS resolver from an untrusted source (such as DHCP's DNSserverRecursive Name Server option [RFC3646]). It can then use meta-queries performed using an OpportunisticDNS connectionsPrivacy profile to an untrusted recursive DNS resolver to establish the IP address of the intendedprivacy- enablingprivacy-enabling DNS resolver by doing a lookup of A/AAAA records.Such recordsA DNSSEC-validating client SHOULDbeapply the same validation policy to the A/AAAA meta-queries as it does to other queries. A client that does not validate DNSSECvalidated when using a Strict Usage profile and MUST be validated when using Opportunistic Privacy.SHOULD apply the same policy (if any) to the A/AAAA meta-queries as it does to other queries. Private DNS resolution can now be done by the DNS client against thepre- configured privacy-enablingpre-configured privacy- enabling DNS resolver, using the IP addressgatheredobtained from the untrusted DNS resolver. A DNS client so configured that successfully connects to a privacy- enabling DNS server MAY choose to locally cache the server host IP addresses in order to not have to repeat theopportunistic lookup.meta-query. 7.3. DynamicdiscoveryDiscovery of ADN This section discusses the general case of a DNS client discovering both the authentication domain name and IP address dynamically.This is not possible atAt the time ofwritingthis writing, this is not possible by any standard means.HoweverHowever, since, for example, a future DHCP extension could (in principle) provide thismechanismmechanism, the required security properties of such mechanisms are outlined here. When using a StrictprofilePrivacy profile, the dynamic discovery technique used as a source of authentication domain names MUST be considered secure and trustworthy. This requirement does not apply when using an OpportunisticprofilePrivacy profile, given the security expectation of that profile. 7.3.1. DHCP In the typical case today, a DHCP server [RFC2131] [RFC3315] provides a list of IP addresses for DNS resolvers (see Section 3.8 of[RFC2132]),[RFC2132]) but does not provide an authentication domain name for the DNS resolver, thus preventing the use of most of the authentication methods described here (all of those that are based on a mechanism withADN inADN; see Table 2). This document does not specify or request any DHCP extension to provide authentication domain names. However, if one is developed in futureworkwork, the issues outlined in Section 8 of [RFC7227] should be taken intoaccountaccount, as should theSecurity Considerationssecurity considerations discussed in Section 23 of[RFC3315]).[RFC3315]. This document does not attempt to describe secured and trusted relationships to DHCP servers,whichas this isapurely a DHCP issue(still(and still open, at the time ofwriting.)this writing). Whilst some implementation work is in progress to secure IPv6 connections for DHCP, IPv4 connections have received littletoor no implementation attention in this area. 8. Credential Verification Based on Authentication Domain Namebased Credential Verification8.1. Authentication Based on PKIX CertificateBased AuthenticationWhen a DNS client configured with an authentication domain name connects to its configured DNS server over (D)TLS, the server may present it with a PKIX certificate. In order to ensure proper authentication, DNS clients MUST verify the entire certification path per [RFC5280]. The DNS client additionally uses[RFC6125]validation techniques as described in [RFC6125] to compare the domain name to the certificate provided. A DNS client constructs oneReference Identifierreference identifier for the server based on the authentication domain name:A DNS-IDa DNS-ID, which is simply the authentication domain name itself. If theReference Identifierreference identifier is found (as described in Section 6 of [RFC6125]) in the PKIX certificate's subjectAltNameextension as described in section 6 of [RFC6125],extension, the DNS client should accept the certificate for the server. A compliant DNS client MUST only inspect the certificate's subjectAltName extension for theReference Identifier.reference identifier. In particular, it MUST NOT inspect the Subject field itself. 8.2. DANE DANE [RFC6698] provides various mechanisms using DNSSEC to anchorcertificatetrust for certificates and raw publickey trust with DNSSEC. Howeverkeys. However, this requires the DNS client to have an authentication domain namefor the DNS Privacy Server which(which must be obtained via a trustedsource.source) for the DNS privacy server. This section assumes a solid understanding of both DANE [RFC6698] and DANEOperationsoperations [RFC7671]. A few pertinent issues covered in these documents are outlined here as useful pointers, but familiarity with both of these documents in their entirety is expected.It is notedNote that [RFC6698] says"ClientsClients that validate the DNSSEC signatures themselves MUST use standard DNSSEC validation procedures. Clients that rely on another entity to perform the DNSSEC signature validation MUST use a secure mechanism between themselves and thevalidator." It is notedvalidator. Note that [RFC7671] covers the following topics: oSection 4.1: OpportunisticSections 4.1 ("Opportunistic Security and PKIXUsagesUsages") andSection 14: Security Considerations,14 ("Security Considerations") of [RFC7671], which both discuss the use ofTrust Anchor and End Entity basedschemes based on trust anchors and end entities (PKIX-TA(0) andPKIX- EE(1)PKIX-EE(1), respectively) for Opportunistic Security. o Section5: Certificate-Usage-Specific5 ("Certificate-Usage-Specific DANE Updates andGuidelines. SpecificallyGuidelines") of [RFC7671] -- specifically, Section 5.1 of [RFC7671], which outlines the combination ofCertificate Usagecertificate usage DANE-EE(3) andSelector Usageselector SPKI(1) withRaw Public Keysraw public keys [RFC7250]. Section 5.1 of [RFC7671] also discusses the security implications of thismode,mode; for example, it discusses key lifetimes and specifies that validity period enforcement is based solely on the TLSA RRset properties for this case. o Section13: Operational Considerations,13 ("Operational Considerations") of [RFC7671], which discusses TLSA TTLs and signature validity periods. The specific DANE record for a DNSPrivacy Serverprivacy server would take theform:form _853._tcp.[authentication-domain-name] for TLS _853._udp.[authentication-domain-name] for DTLS 8.2.1. Direct DNSLookupMeta-Queries The DNS client MAY choose to perform the DNSlookupsmeta-queries to retrieve the required DANE records itself. The DNSqueriesmeta-queries for such DANE records MAY use the OpportunisticencryptionPrivacy profile or be in the clear to avoid trust recursion. The records MUST be validated using DNSSEC as describedabovein [RFC6698]. 8.2.2. TLS DNSSEC ChainextensionExtension The DNS client MAY offer the TLS extension described in[I-D.ietf-tls-dnssec-chain-extension].[TLS-DNSSEC-Chain-Ext]. If the DNS server supports this extension, it can provide the full chain to the client in the handshake. If the DNS client offers the TLS DNSSECChainchain extension, it MUST be capable of validating the full DNSSEC authentication chain down to the leaf. If the supplied DNSSEC chain does not validate, the client MUST ignore the DNSSEC chain and validate only via other supplied credentials. 9. (D)TLS Protocol Profile This section defines the (D)TLS protocol profile ofDNS-over-(D)TLS.DNS over (D)TLS. Clients and servers MUST adhere to the (D)TLS implementation recommendations and security considerations of[RFC7525][RFC7525], except with respect to the (D)TLS version. Since encryption of DNS using (D)TLS is agreen-field deploymentgreenfield deployment, DNS clients and servers MUST implement only (D)TLS 1.2 or later. For example, implementingTLS(D)TLS 1.3[I-D.ietf-tls-tls13][TLS-1.3] [DTLS-1.3] is also an option. Implementations MUST NOT offer or provide TLS compression, since compression can leak significant amounts of information, especially to a network observer capable of forcing the user to do an arbitrary DNS lookup in the style of theCRIMECompression Ratio Info-leak Made Easy (CRIME) attacks [CRIME]. Implementations compliant with this profile MUST implementall ofthe following items: o TLS session resumption without server-side state[RFC5077][RFC5077], which eliminates the need for the server to retain cryptographic state for longer thannecessarynecessary. (This statement updates[RFC7858]).[RFC7858].) o Raw public keys[RFC7250][RFC7250], which reduce the size of theServerHello,ServerHello and can be used by servers that cannot obtain certificates (e.g., DNS servers on private networks). A client MUST only indicate support for raw public keys if it has an SPKIpinsetpin set pre-configured (for interoperability reasons). Implementations compliant with this profile SHOULD implementall ofthe following items: o TLS False Start[RFC7918][RFC7918], which reducesround-tripsround trips by allowing the TLS second flight of messages (ChangeCipherSpec) to also contain the (encrypted) DNS query. o The Cached Information Extension[RFC7924][RFC7924], which avoids transmitting the server's certificate and certificate chain if the client has cached that information from a previous TLS handshake. Guidance specific to TLS is provided in[RFC7858][RFC7858], andthatguidance specific to DTLSitis provided in [RFC8094]. 10. IANA Considerations Thismemo includes no request to IANA.document does not require any IANA actions. 11. Security Considerations Security considerations discussed in [RFC7525],[RFC8094][RFC8094], and [RFC7858] apply to this document. DNSClientsclients SHOULD implement (1) support for the mechanisms described in Section 8.2 and (2) offering a configuration optionwhichthat limits authentication to using only those mechanisms (i.e., with no fallback to purePKIX basedPKIX-based authentication) such that authenticating solely via the PKIX infrastructure can be avoided. 11.1.Counter-measuresCountermeasures to DNS Traffic Analysis This section makes suggestions for measures that can reduce the ability of attackers to infer information pertaining to encrypted client queries by other means (e.g., via an analysis of encrypted trafficsize,size or via monitoring of the unencrypted traffic from a DNS recursive resolver to an authoritativetraffic).server). DNS-over-(D)TLS clients and servers SHOULD implement the following relevant DNSextensionsextensions: oEDNS(0)Extension Mechanisms for DNS (EDNS(0)) padding [RFC7830], which allows encrypted queries and responses to hide theirsizesize, making analysis of encrypted traffic harder. Guidance on padding policies for EDNS(0) is provided in[I-D.ietf-dprive-padding-policy][EDNS0-Pad-Policies]. DNS-over-(D)TLS clients SHOULD implement the following relevant DNSextensionsextensions: o PrivacyElection using Clientelection per [RFC7871] ("Client Subnet in DNSQueries [RFC7871].Queries"). If a DNS client does not include an edns-client-subnet EDNS0Client Subnet Optionoption withaSOURCE PREFIX-LENGTH set to 0 in a query, the DNS server may potentially leak client address information to the upstream authoritative DNS servers. A DNS client ought to be able to inform the DNSResolverresolver that it does not want any address information leaked, and the DNSResolverresolver should honor that request.13.12. References13.1.12.1. Normative References [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, DOI 10.17487/RFC2119, March 1997,<https://www.rfc- editor.org/info/rfc2119>.<https://www.rfc-editor.org/info/rfc2119>. [RFC5077] Salowey, J., Zhou, H., Eronen, P., and H. Tschofenig, "Transport Layer Security (TLS) Session Resumption without Server-Side State", RFC 5077, DOI 10.17487/RFC5077, January 2008, <https://www.rfc-editor.org/info/rfc5077>. [RFC5246] Dierks, T. and E. Rescorla, "The Transport Layer Security (TLS) Protocol Version 1.2", RFC 5246, DOI 10.17487/RFC5246, August 2008,<https://www.rfc- editor.org/info/rfc5246>.<https://www.rfc-editor.org/info/rfc5246>. [RFC5280] Cooper, D., Santesson, S., Farrell, S., Boeyen, S., Housley, R., and W. Polk, "Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile", RFC 5280, DOI 10.17487/RFC5280, May 2008, <https://www.rfc-editor.org/info/rfc5280>. [RFC6125] Saint-Andre, P. and J. Hodges, "Representation and Verification of Domain-Based Application Service Identity within Internet Public Key Infrastructure Using X.509 (PKIX) Certificates in the Context of Transport Layer Security (TLS)", RFC 6125, DOI 10.17487/RFC6125, March 2011, <https://www.rfc-editor.org/info/rfc6125>. [RFC6347] Rescorla, E. and N. Modadugu, "Datagram Transport Layer Security Version 1.2", RFC 6347, DOI 10.17487/RFC6347, January 2012, <https://www.rfc-editor.org/info/rfc6347>. [RFC6698] Hoffman, P. and J. Schlyter, "The DNS-Based Authentication of Named Entities (DANE) Transport Layer Security (TLS) Protocol: TLSA", RFC 6698, DOI 10.17487/RFC6698, August 2012, <https://www.rfc-editor.org/info/rfc6698>. [RFC7250] Wouters, P., Ed., Tschofenig, H., Ed., Gilmore, J., Weiler, S., and T. Kivinen, "Using Raw Public Keys in Transport Layer Security (TLS) and Datagram Transport Layer Security (DTLS)", RFC 7250, DOI 10.17487/RFC7250, June 2014, <https://www.rfc-editor.org/info/rfc7250>. [RFC7525] Sheffer, Y., Holz, R., and P. Saint-Andre, "Recommendations for Secure Use of Transport Layer Security (TLS) and Datagram Transport Layer Security (DTLS)", BCP 195, RFC 7525, DOI 10.17487/RFC7525, May 2015, <https://www.rfc-editor.org/info/rfc7525>. [RFC7671] Dukhovni, V. and W. Hardaker, "The DNS-Based Authentication of Named Entities (DANE) Protocol: Updates and Operational Guidance", RFC 7671, DOI 10.17487/RFC7671, October 2015, <https://www.rfc-editor.org/info/rfc7671>. [RFC7830] Mayrhofer, A., "The EDNS(0) Padding Option", RFC 7830, DOI 10.17487/RFC7830, May 2016,<https://www.rfc- editor.org/info/rfc7830>.<https://www.rfc-editor.org/info/rfc7830>. [RFC7858] Hu, Z., Zhu, L., Heidemann, J., Mankin, A., Wessels, D., and P. Hoffman, "Specification for DNS over Transport Layer Security (TLS)", RFC 7858, DOI 10.17487/RFC7858, May 2016, <https://www.rfc-editor.org/info/rfc7858>. [RFC7918] Langley, A., Modadugu, N., and B. Moeller, "Transport Layer Security (TLS) False Start", RFC 7918, DOI 10.17487/RFC7918, August 2016,<https://www.rfc- editor.org/info/rfc7918>.<https://www.rfc-editor.org/info/rfc7918>. [RFC7924] Santesson, S. and H. Tschofenig, "Transport Layer Security (TLS) Cached Information Extension", RFC 7924, DOI 10.17487/RFC7924, July 2016,<https://www.rfc- editor.org/info/rfc7924>.<https://www.rfc-editor.org/info/rfc7924>. [RFC8094] Reddy, T., Wing, D., and P. Patil, "DNS over Datagram Transport Layer Security (DTLS)", RFC 8094, DOI 10.17487/RFC8094, February 2017,<https://www.rfc- editor.org/info/rfc8094>. 13.2.<https://www.rfc-editor.org/info/rfc8094>. [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, May 2017, <https://www.rfc-editor.org/info/rfc8174>. 12.2. Informative References [CRIME] Rizzo, J. and T. Duong, "The CRIME Attack",2012.Ekoparty Security Conference, 2012, <https://www.ekoparty.org/archivo/2012/eko8-CRIME.pdf>. [dnssec-trigger] NLnetLabs, "Dnssec-Trigger",May 2014,December 2017, <https://www.nlnetlabs.nl/projects/dnssec-trigger/>.[I-D.ietf-dprive-padding-policy] Mayrhofer, A., "Padding Policy for EDNS(0)", draft-ietf- dprive-padding-policy-01 (work in progress), July 2017. [I-D.ietf-tls-dnssec-chain-extension] Shore, M., Barnes, R., Huque, S., and W. Toorop, "A DANE Record and DNSSEC Authentication Chain Extension for TLS", draft-ietf-tls-dnssec-chain-extension-04 (work in progress), June 2017. [I-D.ietf-tls-tls13][DTLS-1.3] Rescorla, E., Tschofenig, H., and N. Modadugu, "The Datagram Transport Layer Security(TLS)(DTLS) Protocol Version 1.3",draft-ietf-tls-tls13-21 (workWork inprogress), July 2017.Progress, draft-ietf-tls-dtls13-26, March 2018. [EDNS0-Pad-Policies] Mayrhofer, A., "Padding Policy for EDNS(0)", Work in Progress, draft-ietf-dprive-padding-policy-04, February 2018. [RFC2131] Droms, R., "Dynamic Host Configuration Protocol", RFC 2131, DOI 10.17487/RFC2131, March 1997, <https://www.rfc-editor.org/info/rfc2131>. [RFC2132] Alexander, S. and R. Droms, "DHCP Options and BOOTP Vendor Extensions", RFC 2132, DOI 10.17487/RFC2132, March 1997, <https://www.rfc-editor.org/info/rfc2132>. [RFC3315] Droms, R., Ed., Bound, J., Volz, B., Lemon, T., Perkins, C., and M. Carney, "Dynamic Host Configuration Protocol for IPv6 (DHCPv6)", RFC 3315, DOI 10.17487/RFC3315, July 2003, <https://www.rfc-editor.org/info/rfc3315>. [RFC3646] Droms, R., Ed., "DNS Configuration options for Dynamic Host Configuration Protocol for IPv6 (DHCPv6)", RFC 3646, DOI 10.17487/RFC3646, December 2003,<https://www.rfc- editor.org/info/rfc3646>.<https://www.rfc-editor.org/info/rfc3646>. [RFC7227] Hankins, D., Mrugalski, T., Siodelski, M., Jiang, S., and S. Krishnan, "Guidelines for Creating New DHCPv6 Options", BCP 187, RFC 7227, DOI 10.17487/RFC7227, May 2014, <https://www.rfc-editor.org/info/rfc7227>. [RFC7435] Dukhovni, V., "Opportunistic Security: Some Protection Most of the Time", RFC 7435, DOI 10.17487/RFC7435, December 2014, <https://www.rfc-editor.org/info/rfc7435>. [RFC7469] Evans, C., Palmer, C., and R. Sleevi, "Public Key Pinning Extension for HTTP", RFC 7469, DOI 10.17487/RFC7469, April 2015, <https://www.rfc-editor.org/info/rfc7469>. [RFC7626] Bortzmeyer, S., "DNS Privacy Considerations", RFC 7626, DOI 10.17487/RFC7626, August 2015,<https://www.rfc- editor.org/info/rfc7626>.<https://www.rfc-editor.org/info/rfc7626>. [RFC7871] Contavalli, C., van der Gaast, W., Lawrence, D., and W. Kumari, "Client Subnet in DNS Queries", RFC 7871, DOI 10.17487/RFC7871, May 2016,<https://www.rfc- editor.org/info/rfc7871>.<https://www.rfc-editor.org/info/rfc7871>. [TLS-1.3] Rescorla, E., "The Transport Layer Security (TLS) Protocol Version 1.3", Work in Progress, draft-ietf-tls-tls13-27, March 2018. [TLS-DNSSEC-Chain-Ext] Shore, M., Barnes, R., Huque, S., and W. Toorop, "A DANE Record and DNSSEC Authentication Chain Extension for TLS", Work in Progress, draft-ietf-tls-dnssec-chain- extension-06, January 2018. Appendix A. Servercapability probingCapability Probing andcachingCaching by DNSclientsClients This section presents a non-normative discussion of how DNS clients might probeforfor, and cache capabilitiesofof, privacy-enabling DNS servers. Deployment of bothDNS-over-TLSDNS over TLS andDNS-over-DTLSDNS over DTLS will be gradual. Not all servers will support one or both of theseprotocolsprotocols, and the well-known port might be blocked by some middleboxes. Clients will be expected to keep track of servers that supportDNS-over-TLSDNS over TLS and/orDNS-over-DTLS, andDNS over DTLS, as well as those that have been previously authenticated. If no server capability information isavailableavailable, then (unless otherwise specified by the configuration of the DNS client) DNS clients that implement both TLS and DTLS should try to authenticate using both protocols before failing or falling back toaan unauthenticated orclear text connections.cleartext connection. DNS clients using an OpportunisticUsagePrivacy profile should try all available servers (possibly in parallel) in order to obtain an authenticated and encrypted connection before falling back. (RATIONALE: This approach can increase latency while discovering server capabilities but maximizes the chance of sending the query over an authenticated and encrypted connection.)12.Acknowledgments Thanks to the authors of both [RFC8094] and [RFC7858] for laying theground work thatgroundwork for thisdraft builds ondocument and for reviewing the contents. The authors would also like to thank John Dickinson, Shumon Huque, Melinda Shore, Gowri Visweswaran, Ray Bellis, Stephane Bortzmeyer, Jinmei Tatuya, Paul Hoffman, ChristianHuitemaHuitema, and John Levine for review and discussion of the ideas presented here. Authors' Addresses Sara Dickinson Sinodun Internet Technologies Magdalen Centre Oxford Science Park Oxford OX4 4GAUKUnited Kingdom Email: sara@sinodun.com URI:http://sinodun.comhttps://www.sinodun.com/ Daniel Kahn Gillmor ACLU 125 Broad Street, 18th Floor NewYorkYork, NY 10004USAUnited States of America Email: dkg@fifthhorseman.net Tirumaleswar Reddy McAfee, Inc. Embassy Golf Link Business Park Bangalore, Karnataka 560071 India Email: TirumaleswarReddy_Konda@McAfee.com