Encoding DNS-over-TLS (DoT) Subject Public Key Info (SPKI) in Name Server nameFacebookchantra@fb.com
Internet
Network Working GroupInternet-DraftThis document describes a mechanism to exchange the Subject Public Key Info
(SPKI) ( Section 4.1.2.7) fingerprint associated with a DNS-over-TLS
(DoT ) authoritative server by encoding it as part of its name.
The fingerprint can thereafter be used to validate the certificate received
from the DoT server as well as being able to discover support for DoT on the
server.This document describes a mechanism to exchange the Subject Public Key Info
(SPKI) ( Section 4.1.2.7) fingerprint associated with a DNS-over-TLS
(DoT ) authoritative server by encoding it as part of its name.
The fingerprint can thereafter be used to validate the certificate received
from the DoT server as well as being able to discover support for DoT on the
server.A server that supports DNS-over-TLS is called a “DoT server” to differentiate
it from a “DNS Server” (one that provides DNS service over any other protocol),
likewise, a client that supports this protocol is called a “DoT client”The key words “MUST”, “MUST NOT”, “REQUIRED”, “SHALL”, “SHALL NOT”,
“SHOULD”, “SHOULD NOT”, “RECOMMENDED”, “NOT RECOMMENDED”, “MAY”,
and “OPTIONAL” in this document are to be interpreted as described in
BCP 14 when, and only when, they
appear in all capitals, as shown here.While DoT provides protection against eavesdropping and on-path tampering of
the DNS queries exchanged with an authoritative server, a recursive server that
is talking to a remote DoT server needs a mechanism to authenticate that the
name server it is communicating with is indeed the one that the authority of the
zone manages or has delegated responsibility to.A common mechanism is to have TLS certificates issued by “Certification
Authorities” (CAs), those CA public keys are used as trust anchors, and through
a chain of trust, a leaf TLS certificate can be validated. Any CA is able to
issue a certificate for any domain, which can have its drawbacks
( Section 1.1).Another method is to leverage DANE/TLSA (), in which case
a recursive resolver would be provided the certificate or SPKI hash over DNS
and validate it using DNSSEC (, , and ).This document describes a mechanism to signal to a recursive resolver that DoT
is supported by the authoritative name server as well as providing a fingerprint
of the SPKI to expect from the name server, this is done by formatting a special
first label for the name servers. Recursive servers that understand the naming
convention detailed in this document will be able to upgrade their connection to
the authoritative server to TLS, while the ones that don’t will transparently
use the name servers as a standard UDP/53 and TCP/53 servers.
This format is heavily inspired from .A label is limited to a maximum of 63 octets ( Section 2.3.4) and has a
limited set of characters that can be used ( Section 2.3.1), limiting
both the amount of data that can be embedded in a label as well as the encoding
format.The set of character used by Base32 encoding ( Section 6), without
padding character, is suitable to be used in a label. Base32 encodes a 5-bit
group into 1 byte which allows to encode up to 39 bytes within the 63 bytes
space of a label.While this limits what can be encoded in a label, there is enough space to store
the hash produced by sha256 which requires 32 bytes, leaving 7 bytes to spare.The formatting of a name server is defined as follow:For the zone example.com, having 2 name servers, one at IPv4 192.0.2.1 and one
at IPv6 2001:DB8::1, both of them providing DoT support and using certificate
cert.pem, the <b32-spki-fingerprint> can be generated using the following
command line:To generate the full label, dot- get prefixed to the base32 encoded
fingerprint.When a recursive server gets the list of authoritative servers serving a
specific zone, it gets a list of name of hosts.If:the first label is 56 bytes longAND the first 4 bytes matches dot-AND the remaining 52 bytes can be base32-decodedthe recursive server will attempt to connect to the name server using TLS over
port 853 and validate that the SHA256 hash of the SPKI in the certificate
provided by the name server matches what was previously decoded.If the TLS session fail to establish, either unavailability of the service on
port 853, TLS authentication failure, the behaviour of the recursive server
depends on whether it is operating in strict or opportunistic mode ().In strict mode, the resolver MUST stop using this authoritative name server, and
MUST try other servers of the DNS zone. In opportunistic mode, the resolver
MUST use the authoritative name server despite the failure. It MAY
try other name servers of the zone before, in the hope they will
accept TLS and be authenticated.A server not supporting this specification will be unaware of anything special
with this name server and consider it like any other name servers.TODO SecurityTODO: This document requires IANA actions (new RR type).Domain names - implementation and specificationThis RFC is the revised specification of the protocol and format used in the implementation of the Domain Name System. It obsoletes RFC-883. This memo documents the details of the domain name client - server communication.Key words for use in RFCs to Indicate Requirement LevelsIn many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.DNS Security Introduction and RequirementsThe Domain Name System Security Extensions (DNSSEC) add data origin authentication and data integrity to the Domain Name System. This document introduces these extensions and describes their capabilities and limitations. This document also discusses the services that the DNS security extensions do and do not provide. Last, this document describes the interrelationships between the documents that collectively describe DNSSEC. [STANDARDS-TRACK]Resource Records for the DNS Security ExtensionsThis document is part of a family of documents that describe the DNS Security Extensions (DNSSEC). The DNS Security Extensions are a collection of resource records and protocol modifications that provide source authentication for the DNS. This document defines the public key (DNSKEY), delegation signer (DS), resource record digital signature (RRSIG), and authenticated denial of existence (NSEC) resource records. The purpose and format of each resource record is described in detail, and an example of each resource record is given. This document obsoletes RFC 2535 and incorporates changes from all updates to RFC 2535. [STANDARDS-TRACK]Protocol Modifications for the DNS Security ExtensionsThis document is part of a family of documents that describe the DNS Security Extensions (DNSSEC). The DNS Security Extensions are a collection of new resource records and protocol modifications that add data origin authentication and data integrity to the DNS. This document describes the DNSSEC protocol modifications. This document defines the concept of a signed zone, along with the requirements for serving and resolving by using DNSSEC. These techniques allow a security-aware resolver to authenticate both DNS resource records and authoritative DNS error indications. This document obsoletes RFC 2535 and incorporates changes from all updates to RFC 2535. [STANDARDS-TRACK]The Base16, Base32, and Base64 Data EncodingsThis document describes the commonly used base 64, base 32, and base 16 encoding schemes. It also discusses the use of line-feeds in encoded data, use of padding in encoded data, use of non-alphabet characters in encoded data, use of different encoding alphabets, and canonical encodings. [STANDARDS-TRACK]Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) ProfileThis memo profiles the X.509 v3 certificate and X.509 v2 certificate revocation list (CRL) for use in the Internet. An overview of this approach and model is provided as an introduction. The X.509 v3 certificate format is described in detail, with additional information regarding the format and semantics of Internet name forms. Standard certificate extensions are described and two Internet-specific extensions are defined. A set of required certificate extensions is specified. The X.509 v2 CRL format is described in detail along with standard and Internet-specific extensions. An algorithm for X.509 certification path validation is described. An ASN.1 module and examples are provided in the appendices. [STANDARDS-TRACK]The DNS-Based Authentication of Named Entities (DANE) Transport Layer Security (TLS) Protocol: TLSAEncrypted communication on the Internet often uses Transport Layer Security (TLS), which depends on third parties to certify the keys used. This document improves on that situation by enabling the administrators of domain names to specify the keys used in that domain's TLS servers. This requires matching improvements in TLS client software, but no change in TLS server software. [STANDARDS-TRACK]Specification for DNS over Transport Layer Security (TLS)This document describes the use of Transport Layer Security (TLS) to provide privacy for DNS. Encryption provided by TLS eliminates opportunities for eavesdropping and on-path tampering with DNS queries in the network, such as discussed in RFC 7626. In addition, this document specifies two usage profiles for DNS over TLS and provides advice on performance considerations to minimize overhead from using TCP and TLS with DNS.This document focuses on securing stub-to-recursive traffic, as per the charter of the DPRIVE Working Group. It does not prevent future applications of the protocol to recursive-to-authoritative traffic.Ambiguity of Uppercase vs Lowercase in RFC 2119 Key WordsRFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.Usage and (D)TLS Profiles for DNS-over-(D)TLSThis document discusses 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 only clear text DNS. This document also specifies new authentication mechanisms - it describes several ways 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 implementing DNS-over-(D)TLS. This document updates RFC 7858.DNSCurveTODO acknowledge.