Internet DRAFT - draft-schwartz-dprive-name-signal

draft-schwartz-dprive-name-signal







dprive                                                       B. Schwartz
Internet-Draft                                                 W. Kumari
Intended status: Experimental                                 Google LLC
Expires: 10 December 2021                                    8 June 2021


      Nameserver Access Modes with Encryption Held in Alphanumeric
                           Configuration Keys
                  draft-schwartz-dprive-name-signal-00

Abstract

   Some recent proposals to the DPRIVE working group rely on the use of
   SVCB records to provide instructions about how to reach an
   authoritative nameserver over an encrypted transport.  These
   proposals will be difficult to deploy until the parent domain's
   delegation software has been modified to support these records.  As
   an interim solution for these domains, this draft proposes encoding
   relevant signals in the child's NS-name.

Discussion Venues

   This note is to be removed before publishing as an RFC.

   Discussion of this document takes place on the mailing list (dns-
   privacy@ietf.org), which is archived at
   https://mailarchive.ietf.org/arch/browse/dns-privacy/.

   Source for this draft and an issue tracker can be found at
   https://github.com/wkumari/draft-schwartz-dprive-name-signal.

Status of This Memo

   This Internet-Draft is submitted in full conformance with the
   provisions of BCP 78 and BCP 79.

   Internet-Drafts are working documents of the Internet Engineering
   Task Force (IETF).  Note that other groups may also distribute
   working documents as Internet-Drafts.  The list of current Internet-
   Drafts is at https://datatracker.ietf.org/drafts/current/.

   Internet-Drafts are draft documents valid for a maximum of six months
   and may be updated, replaced, or obsoleted by other documents at any
   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 10 December 2021.




Schwartz & Kumari       Expires 10 December 2021                [Page 1]

Internet-Draft                  NAMEHACK                       June 2021


Copyright Notice

   Copyright (c) 2021 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 (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.  Conventions and Definitions . . . . . . . . . . . . . . . . .   2
   2.  Background  . . . . . . . . . . . . . . . . . . . . . . . . .   3
   3.  Proposal  . . . . . . . . . . . . . . . . . . . . . . . . . .   4
     3.1.  Flag form . . . . . . . . . . . . . . . . . . . . . . . .   4
     3.2.  Menu form . . . . . . . . . . . . . . . . . . . . . . . .   4
     3.3.  Implementation requirements . . . . . . . . . . . . . . .   5
   4.  Security Considerations . . . . . . . . . . . . . . . . . . .   5
   5.  Operational Considerations  . . . . . . . . . . . . . . . . .   5
   6.  IANA Considerations . . . . . . . . . . . . . . . . . . . . .   6
   7.  References  . . . . . . . . . . . . . . . . . . . . . . . . .   6
     7.1.  Normative References  . . . . . . . . . . . . . . . . . .   6
     7.2.  Informative References  . . . . . . . . . . . . . . . . .   7
   Appendix A.  Comparison with related designs  . . . . . . . . . .   8
     A.1.  Indicating DoT support with a name prefix . . . . . . . .   8
     A.2.  Encoding the SPKI pin in the leaf label . . . . . . . . .   8
     A.3.  Encoding the signal in an additional NS record  . . . . .   8
     A.4.  Extending the DS record . . . . . . . . . . . . . . . . .   9
     A.5.  Enabling authentication of delegation data  . . . . . . .   9
   Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . .   9
   Authors' Addresses  . . . . . . . . . . . . . . . . . . . . . . .   9

1.  Conventions and Definitions

   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 [RFC2119] [RFC8174] when, and only when, they appear in all
   capitals, as shown here.







Schwartz & Kumari       Expires 10 December 2021                [Page 2]

Internet-Draft                  NAMEHACK                       June 2021


2.  Background

   [I-D.draft-schwartz-svcb-dns] defines how to use SVCB records to
   describe the secure transport protocols supported by a DNS server.
   [I-D.draft-ietf-dprive-unauth-to-authoritative] describes the use of
   such records on the names of nameservers (the "NS name") to enable
   opportunistic encryption of recursive-to-authoritative DNS queries.
   Resolvers are permitted to fetch SVCB records asynchronously and
   cache them, resulting in "partial opportunistic encryption": even
   without an active adversary forcing a downgrade, queries will
   sometimes be sent in cleartext.  Participating authoritative
   nameservers and recursive resolvers would have to be modified to make
   use of these records.

   When the child zone is DNSSEC-signed, publishing a SVCB record of
   this kind is technically sufficient to enable authenticated
   encryption.  However, in order to support reliable authentication,
   recursive resolvers would have to query for a SVCB record on every
   signed delegation, and wait for a response before issuing their
   intended query.  We call this behavior a "synchronous binding check".

   Many validating resolvers might not be willing to enable a
   "synchronous binding check" behavior, as this would slow down
   resolution of many existing domains in order to enable a new feature
   (authenticated encryption) that is not yet used at all.  To enable
   authenticated encryption without this general performance loss,
   [I-D.draft-rescorla-dprive-adox-latest] proposes to deliver the SVCB
   records from the parent, in the delegation response.  This avoids the
   need for a binding check, at the cost of additionally requiring
   modifications to the parent nameserver, which must provide these
   extra records in delegation responses.

   Providing these additional records is sufficient to enable "full
   opportunistic encryption": the transport is always encrypted in the
   absence of an active adversary.  However, these records are not
   protected by DNSSEC, so the child can only achieve fully
   authenticated encryption if the parent also implements fully
   authenticated encryption or otherwise protects the delivery of these
   records.

   Even if this approach is standardized, many parent zones may not
   support delivery of SVCB records in delegation responses in the near
   future.  To enable the broadest use of encrypted transport, we may
   need an interim solution that can be deployed more easily.







Schwartz & Kumari       Expires 10 December 2021                [Page 3]

Internet-Draft                  NAMEHACK                       June 2021


3.  Proposal

   We propose to indicate a nameserver's support for encrypted
   transports using a signal encoded in its name.  This signal takes two
   forms: a "flag" and a "menu".

      QUESTION: Do we need both of these forms, or should we drop one?

   We note that encoding semantics in DNS labels is a hack, but believe
   that the privacy benefits outweigh the ick factor.

   In either form, the signal helps resolvers to acquire a SVCB RRSet
   for the nameserver.  Resolvers use this RRSet as specified in
   [I-D.draft-rescorla-dprive-adox-latest].

3.1.  Flag form

   If the NS name's first label is "svcb", this is regarded as a "flag".
   When contacting a flagged nameserver, participating resolvers SHOULD
   perform a synchronous binding check, and upgrade to a secure
   transport if appropriate, before issuing the query.

   The presence of this flag does not guarantee that the corresponding
   SVCB records are actually present.

3.2.  Menu form

   If the NS name's first label starts with "svcb--", the label's
   subsequent characters represent a "menu" of connection options, which
   can be decoded into a SVCB RRSet.  To decode the RRSet, each
   character is transformed into a SVCB RR with the following
   components:

   *  The owner name is the NS name plus the prefix label "_dns".

   *  The SvcPriority is the character's order in the list (starting at
      1)

   *  The TargetName is the NS name

   *  The SvcParams are indicated in the registry entry for this menu
      character (Section 6).

   For example, the name "svcb-qt.ns3.example." would be decoded to this
   RRSet:

   _dns.svcb--qt.ns3.example. IN SVCB 1 svcb--qt.ns3.example. alpn=doq
   _dns.svcb--qt.ns3.example. IN SVCB 2 svcb--qt.ns3.example. alpn=dot



Schwartz & Kumari       Expires 10 December 2021                [Page 4]

Internet-Draft                  NAMEHACK                       June 2021


   The menu characters are a-z and 0-9; all other characters are
   reserved for future use.  Upon encountering any character outside
   these ranges, parsers MUST stop and return successfully.  Parsers
   MUST ignore characters that are allowed but not recognized.

      QUESTION: Do we need more than 36 codepoints?  Is there a nice
      simple format that would give us a lot more codepoints?

      QUESTION: Should we consider a format that actually encodes the
      SvcParams in the label instead?

3.3.  Implementation requirements

   Resolvers that implement support for "menu" mode MUST also support
   the "flag" mode.  Resolvers that support either mode MUST also
   support [I-D.draft-rescorla-dprive-adox-latest], and ignore the in-
   name signal if any SVCB records are included in a delegation
   response.

   When possible, zones SHOULD use SVCB records in the delegation
   response and omit any in-name signal.

4.  Security Considerations

   NS names received during delegation are not protected by DNSSEC.
   Therefore, just like in [I-D.draft-rescorla-dprive-adox-latest], this
   scheme only enables authenticated encryption if the parent domain can
   provide authentication without DNSSEC validation, e.g. using a secure
   transport or Zone Digest [RFC8976].

      QUESTION: Do we expect to have parent zones that can provide
      authenticated NS names but cannot provide authenticated SVCB
      records in delegation responses?  (Maybe the root, with ZONEMD?)
      If not, does this proposal provide enough value?

5.  Operational Considerations

   It is possible that an existing NS name already matches the "flag"
   pattern.  Such a "false positive flag" will result in a small
   performance loss due to the unnecessary synchronous binding check,
   but will not otherwise impair functionality.

   If a pre-existing NS name contains the menu pattern, that nameserver
   will become unreachable by resolvers implementing this specification.
   The authors believe that no such nameservers are currently deployed,
   and such servers are unlikely to be deployed by accident.





Schwartz & Kumari       Expires 10 December 2021                [Page 5]

Internet-Draft                  NAMEHACK                       June 2021


6.  IANA Considerations

   IANA is requested to create a new registry entitled "Authoritative
   Server Transport In-Name Signal Characters", with the following
   fields:

   *  Character: a digit or lower-case letter

   *  SvcParams: a valid SVCB SvcParams set in presentation format

   The registry policy is *TBD*.

   The initial contents (*DO NOT USE*, subject to change) are as
   follows:

             +===========+==================================+
             | Character | SvcParams                        |
             +===========+==================================+
             | t         | alpn=dot                         |
             +-----------+----------------------------------+
             | h         | alpn=h2 dohpath=/dns-query{?dns} |
             +-----------+----------------------------------+
             | 3         | alpn=h3 dohpath=/dns-query{?dns} |
             +-----------+----------------------------------+
             | q         | alpn=doq                         |
             +-----------+----------------------------------+

                                 Table 1

7.  References

7.1.  Normative References

   [I-D.draft-schwartz-svcb-dns]
              Schwartz, B., "Service Binding Mapping for DNS Servers",
              Work in Progress, Internet-Draft, draft-schwartz-svcb-dns-
              03, 19 April 2021, <https://www.ietf.org/archive/id/draft-
              schwartz-svcb-dns-03.txt>.

   [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>.

   [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>.




Schwartz & Kumari       Expires 10 December 2021                [Page 6]

Internet-Draft                  NAMEHACK                       June 2021


7.2.  Informative References

   [I-D.draft-bretelle-dprive-dot-spki-in-ns-name]
              Bretelle, E., "Encoding DNS-over-TLS (DoT) Subject Public
              Key Info (SPKI) in Name Server name", Work in Progress,
              Internet-Draft, draft-bretelle-dprive-dot-spki-in-ns-name-
              00, 11 March 2019, <https://www.ietf.org/archive/id/draft-
              bretelle-dprive-dot-spki-in-ns-name-00.txt>.

   [I-D.draft-fujiwara-dnsop-delegation-information-signer]
              Fujiwara, K., "Delegation Information (Referrals) Signer
              for DNSSEC", Work in Progress, Internet-Draft, draft-
              fujiwara-dnsop-delegation-information-signer-00, 2
              November 2020, <https://www.ietf.org/archive/id/draft-
              fujiwara-dnsop-delegation-information-signer-00.txt>.

   [I-D.draft-ietf-dprive-unauth-to-authoritative]
              Hoffman, P. and P. V. Dijk, "Recursive to Authoritative
              DNS with Unauthenticated Encryption", Work in Progress,
              Internet-Draft, draft-ietf-dprive-unauth-to-authoritative-
              01, 19 May 2021, <https://www.ietf.org/archive/id/draft-
              ietf-dprive-unauth-to-authoritative-01.txt>.

   [I-D.draft-levine-dprive-signal-02]
              Levine, J., "Signaling That an Authoritative DNS server
              offers DoT", Work in Progress, Internet-Draft, draft-
              levine-dprive-signal-02, 17 November 2019,
              <http://www.ietf.org/internet-drafts/draft-levine-dprive-
              signal-02.txt>.

   [I-D.draft-rescorla-dprive-adox-latest]
              Pauly, T., Rescorla, E., Schinazi, D., and C. A. Wood,
              "Signaling Authoritative DNS Encryption", Work in
              Progress, Internet-Draft, draft-rescorla-dprive-adox-
              latest-00, 26 February 2021,
              <https://www.ietf.org/archive/id/draft-rescorla-dprive-
              adox-latest-00.txt>.

   [I-D.draft-vandijk-dnsop-ds-digest-verbatim]
              Dijk, P. V., "The VERBATIM Digest Algorithm for DS
              records", Work in Progress, Internet-Draft, draft-vandijk-
              dnsop-ds-digest-verbatim-00, 25 September 2020,
              <https://www.ietf.org/archive/id/draft-vandijk-dnsop-ds-
              digest-verbatim-00.txt>.

   [I-D.draft-vandijk-dprive-ds-dot-signal-and-pin]
              Dijk, P. V., Geuze, R., and E. Bretelle, "Signalling
              Authoritative DoT support in DS records, with key



Schwartz & Kumari       Expires 10 December 2021                [Page 7]

Internet-Draft                  NAMEHACK                       June 2021


              pinning", Work in Progress, Internet-Draft, draft-vandijk-
              dprive-ds-dot-signal-and-pin-01, 13 July 2020,
              <https://www.ietf.org/archive/id/draft-vandijk-dprive-ds-
              dot-signal-and-pin-01.txt>.

   [RFC8976]  Wessels, D., Barber, P., Weinberg, M., Kumari, W., and W.
              Hardaker, "Message Digest for DNS Zones", RFC 8976,
              DOI 10.17487/RFC8976, February 2021,
              <https://www.rfc-editor.org/info/rfc8976>.

Appendix A.  Comparison with related designs

   Several other designs have been proposed to encode a transport
   upgrade signal in an existing record type.

A.1.  Indicating DoT support with a name prefix

   Section 3.6 of [I-D.draft-levine-dprive-signal-02] discusses using
   the "xs-" name prefix to indicate support for DNS over TLS.  This is
   equivalent to a "svcb-t" label in this formulation.  This draft may
   be seen as an expansion of that proposal, harmonized with the SVCB-
   based discovery drafts.

A.2.  Encoding the SPKI pin in the leaf label

   [I-D.draft-bretelle-dprive-dot-spki-in-ns-name] also proposes to
   encode a signal in the leaf label.  The signal includes an SPKI pin,
   for authentication of the TLS connection.

   Including an SPKI pin allows authentication of the nameserver without
   relying on DANE or PKI validation.  However, like this draft, it does
   not achieve authenticated encryption unless the NS name can be
   delivered securely during delegation.  It may also create operational
   challenges when rotating TLS keys, due to the need to update the
   parent zone.

A.3.  Encoding the signal in an additional NS record

   It would be possible to encode the signal by adding a special NS
   record to the RRSet.  This would avoid the need to rename any
   existing nameservers.  However, this arrangement has different
   semantics: it is scoped to the entire child zone, rather than a
   specific nameserver.  It also relies heavily on existing resolvers
   having robust and performant fallback behavior, which may not be a
   safe assumption.

   (Credit: Paul Hoffman)




Schwartz & Kumari       Expires 10 December 2021                [Page 8]

Internet-Draft                  NAMEHACK                       June 2021


A.4.  Extending the DS record

   [I-D.draft-vandijk-dprive-ds-dot-signal-and-pin] encodes a signal and
   pin in a DS record by allocating a new fake "signature algorithm" and
   encoding the TLS SPKI in a DNSKEY record.  This enables fully
   authenticated encryption (only requiring that the parent zone is
   signed).  However, it has very limited flexibility for representing
   different transport configurations, and creates challenges during TLS
   key rotation.

A.5.  Enabling authentication of delegation data

   [I-D.draft-fujiwara-dnsop-delegation-information-signer] adds a DS
   record over the delegation information.  When combined with this
   draft, this would enable fully authenticated encrypted transport.
   However, this approach requires very tight coherence between the
   child and parent (e.g. when removing a nameserver) that may not be
   achievable in practice.

   [I-D.draft-vandijk-dnsop-ds-digest-verbatim] allows children to push
   arbitrary authenticated delegation data into the parent.  This could
   be used to convey SVCB RRSets for the delegation securely.  However,
   it requires parents to accept a new digest type, and bends the usual
   DS semantics even further.

Acknowledgments

   *TODO*

Authors' Addresses

   Benjamin M. Schwartz
   Google LLC

   Email: bemasc@google.com


   Warren Kumari
   Google LLC

   Email: warren@kumari.net










Schwartz & Kumari       Expires 10 December 2021                [Page 9]