idnits 2.17.1 draft-bretelle-dprive-dot-spki-in-ns-name-00.txt: Checking boilerplate required by RFC 5378 and the IETF Trust (see https://trustee.ietf.org/license-info): ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/1id-guidelines.txt: ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/checklist : ---------------------------------------------------------------------------- ** There are 4 instances of too long lines in the document, the longest one being 34 characters in excess of 72. ** The abstract seems to contain references ([RFC7858], [RFC5280]), which it shouldn't. Please replace those with straight textual mentions of the documents in question. Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year -- The document date (March 11, 2019) is 1873 days in the past. Is this intentional? Checking references for intended status: Proposed Standard ---------------------------------------------------------------------------- (See RFCs 3967 and 4897 for information about using normative references to lower-maturity documents in RFCs) No issues found here. Summary: 2 errors (**), 0 flaws (~~), 1 warning (==), 1 comment (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 Network Working Group M. Bretelle 3 Internet-Draft Facebook 4 Intended status: Standards Track March 11, 2019 5 Expires: September 12, 2019 7 Encoding DNS-over-TLS (DoT) Subject Public Key Info (SPKI) in Name 8 Server name 9 draft-bretelle-dprive-dot-spki-in-ns-name-00 11 Abstract 13 This document describes a mechanism to exchange the Subject Public 14 Key Info (SPKI) ([RFC5280] Section 4.1.2.7) fingerprint associated 15 with a DNS-over-TLS (DoT [RFC7858]) authoritative server by encoding 16 it as part of its name. The fingerprint can thereafter be used to 17 validate the certificate received from the DoT server as well as 18 being able to discover support for DoT on the server. 20 Status of This Memo 22 This Internet-Draft is submitted in full conformance with the 23 provisions of BCP 78 and BCP 79. 25 Internet-Drafts are working documents of the Internet Engineering 26 Task Force (IETF). Note that other groups may also distribute 27 working documents as Internet-Drafts. The list of current Internet- 28 Drafts is at https://datatracker.ietf.org/drafts/current/. 30 Internet-Drafts are draft documents valid for a maximum of six months 31 and may be updated, replaced, or obsoleted by other documents at any 32 time. It is inappropriate to use Internet-Drafts as reference 33 material or to cite them other than as "work in progress." 35 This Internet-Draft will expire on September 12, 2019. 37 Copyright Notice 39 Copyright (c) 2019 IETF Trust and the persons identified as the 40 document authors. All rights reserved. 42 This document is subject to BCP 78 and the IETF Trust's Legal 43 Provisions Relating to IETF Documents 44 (https://trustee.ietf.org/license-info) in effect on the date of 45 publication of this document. Please review these documents 46 carefully, as they describe your rights and restrictions with respect 47 to this document. Code Components extracted from this document must 48 include Simplified BSD License text as described in Section 4.e of 49 the Trust Legal Provisions and are provided without warranty as 50 described in the Simplified BSD License. 52 Table of Contents 54 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 55 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 2 56 3. Validating a remote DoT server . . . . . . . . . . . . . . . 3 57 4. Encoding data in a domain name label . . . . . . . . . . . . 3 58 4.1. Formatting DoT SPKI in name server name. . . . . . . . . 4 59 4.1.1. Example . . . . . . . . . . . . . . . . . . . . . . . 4 60 4.2. Handling by the recursive servers . . . . . . . . . . . . 4 61 4.2.1. Servers supporting this specification . . . . . . . . 4 62 4.2.2. Servers not supporting this specification . . . . . . 5 63 5. Security Considerations . . . . . . . . . . . . . . . . . . . 5 64 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 5 65 7. References . . . . . . . . . . . . . . . . . . . . . . . . . 5 66 7.1. Normative References . . . . . . . . . . . . . . . . . . 5 67 7.2. Informative References . . . . . . . . . . . . . . . . . 7 68 Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . 7 69 Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 7 71 1. Introduction 73 This document describes a mechanism to exchange the Subject Public 74 Key Info (SPKI) ([RFC5280] Section 4.1.2.7) fingerprint associated 75 with a DNS-over-TLS (DoT [RFC7858]) authoritative server by encoding 76 it as part of its name. The fingerprint can thereafter be used to 77 validate the certificate received from the DoT server as well as 78 being able to discover support for DoT on the server. 80 2. Terminology 82 A server that supports DNS-over-TLS is called a "DoT server" to 83 differentiate it from a "DNS Server" (one that provides DNS service 84 over any other protocol), likewise, a client that supports this 85 protocol is called a "DoT client" 87 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 88 "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and 89 "OPTIONAL" in this document are to be interpreted as described in BCP 90 14 [RFC2119] [RFC8174] when, and only when, they appear in all 91 capitals, as shown here. 93 3. Validating a remote DoT server 95 While DoT provides protection against eavesdropping and on-path 96 tampering of the DNS queries exchanged with an authoritative server, 97 a recursive server that is talking to a remote DoT server needs a 98 mechanism to authenticate that the name server it is communicating 99 with is indeed the one that the authority of the zone manages or has 100 delegated responsibility to. 102 A common mechanism is to have TLS certificates issued by 103 "Certification Authorities" (CAs), those CA public keys are used as 104 trust anchors, and through a chain of trust, a leaf TLS certificate 105 can be validated. Any CA is able to issue a certificate for any 106 domain, which can have its drawbacks ([RFC6698] Section 1.1). 108 Another method is to leverage DANE/TLSA ([RFC6698]), in which case a 109 recursive resolver would be provided the certificate or SPKI hash 110 over DNS and validate it using DNSSEC ([RFC4033], [RFC4034], and 111 [RFC4035]). 113 This document describes a mechanism to signal to a recursive resolver 114 that DoT is supported by the authoritative name server as well as 115 providing a fingerprint of the SPKI to expect from the name server, 116 this is done by formatting a special first label for the name 117 servers. Recursive servers that understand the naming convention 118 detailed in this document will be able to upgrade their connection to 119 the authoritative server to TLS, while the ones that don't will 120 transparently use the name servers as a standard UDP/53 and TCP/53 121 servers. This format is heavily inspired from [dnscurve]. 123 4. Encoding data in a domain name label 125 A label is limited to a maximum of 63 octets ([RFC1035] 126 Section 2.3.4) and has a limited set of characters that can be used 127 ([RFC1035] Section 2.3.1), limiting both the amount of data that can 128 be embedded in a label as well as the encoding format. 130 The set of character used by Base32 encoding ([RFC4648] Section 6), 131 without padding character, is suitable to be used in a label. Base32 132 encodes a 5-bit group into 1 byte which allows to encode up to 39 133 bytes within the 63 bytes space of a label. 135 floor(63 * 5 / 8) 137 While this limits what can be encoded in a label, there is enough 138 space to store the hash produced by sha256 which requires 32 bytes, 139 leaving 7 bytes to spare. 141 4.1. Formatting DoT SPKI in name server name. 143 The formatting of a name server is defined as follow: 145