Internet DRAFT - draft-hardie-arc-pointers

draft-hardie-arc-pointers







Network Working Group                                          T. Hardie
Internet-Draft                                          October 28, 2016
Intended status: Informational
Expires: May 1, 2017


                Alternative Context Resolution Pointers
                      draft-hardie-arc-pointers-00

Abstract

   In RFC 2826, the IAB set out the benefits of a globally unique public
   name space.  As alternative contexts of resolution emerge, such as
   those implied by RFC 7686, maintaining a single namespace for the
   Internet requires a method to indicate the context of resolution for
   a name.  This document proposes a registry for such alternative
   resolution contexts as well as a set of pointer resource record types
   useful for allowing conformant resolvers which query for the name in
   the DNS to be redirected to the appropriate alternative resolution
   context.

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 http://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 May 1, 2017.

Copyright Notice

   Copyright (c) 2016 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) in effect on the date of
   publication of this document.  Please review these documents
   carefully, as they describe your rights and restrictions with respect



Hardie                     Expires May 1, 2017                  [Page 1]

Internet-Draft                arc-pointers                  October 2016


   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.

1.  Introduction

   RFC 2826[RFC2826] begins "To remain a global network, the Internet
   requires the existence of a globally unique public name space".  At
   the time it was written, that global name space was expressed almost
   completely in the DNS, which achieves uniqueness by descent from a
   single root.

   As new naming methods have emerged, the distinction between a DNS
   name and a name in the Internet name space but not in the DNS has
   been difficult to draw.  The Special Use Names registry [RFC6761] has
   been used to note some alternative name resolution contexts, for
   example those used by TOR [RFC7686].  This registry is, however,
   problematic for this use because it permanently links a particular
   name or label with the resolution method.  It is also strongly
   focused on resolution systems which occupy a place parallel to names
   in the root zone, creating policy considerations which would not
   apply to other parts of the Internet name space.

   This document proposes a set of mechanisms to address the addition of
   alternative contexts of resolution, with the intent that this be
   possible at multiple levels of the Internet namespace.

2.  Basic Approach

   This document proposes the creation of a registry for alternative
   resolution contexts which share the Internet's global name space.
   Entry into this registry will be specification required, with the
   IESG as the approver of new entries.

   This document also proposes the creation of a subdomain under .arpa,
   arc.arpa.  Each label under arc.arpa will have an ARC resource record
   storing a URN from the IETF protocol parameter registry [RFC3553]
   that identifies the registry entry for the alternative resolution
   context.  Lastly, this document propose the creation of an ARCPOINTER
   resource recorder.

   To indicate that part of the Internet namespace uses an alternative
   resolution context, an ARCPOINTER resource record is placed at the
   appropriate label.  The ARCPOINTER resource record should be the only
   resource record for that label other than those needed to secure the
   entry.




Hardie                     Expires May 1, 2017                  [Page 2]

Internet-Draft                arc-pointers                  October 2016


   A system encountering the name first receives the ARCPOINTER resource
   record, then retrieves the ARC resource record at the domain name to
   which the ARCPOINTER record referred, if it does not have a cached
   entry.  The URN present at the ARC record is used as a stable
   identifier with which to index the name resolver's capabilities, so
   that it asks the right resolution system to provide answers for the
   name.  If it has no match for the URN, the resolution fails.

   If it does find a match, it resolves the name by presenting the
   identifier to the alternative resolution system.

   This allows alternative resolution contexts to be part of the
   Internet name space at multiple levels of the hierarchy while still
   matching the syntax expected by URIs and common Internet protocols
   like HTTP or SMTP.

3.  Example

   Imagine that a provider of names based on cryptographic identifiers,
   the Allium Identifiers Foundation, wishes to reference these names as
   part of the Internet namespace.  The provider furnishes a
   specification of how these names are dereferenced to IANA, which asks
   the IESG to review.  Upon approval, a new entry is created in the
   registry and a URN, urn:ietf:params:arc:allium, is assigned.
   Concurrently, a new label, allium.arc.arpa, is created and populated
   with an ARC resource record containing the URN.

   If example.com wishes to use Allium identifiers, it can do so by
   placing an ARCPOINTER record at the label in their portion of the
   Internet name space below which the identifiers will appear.  An
   ARCPOINTER record at secid.example.com, for example, means that the
   Internet name 88917287893.secid.example.com should be interpreted as
   being the Alium identifier 88917287893, and the Alium resolution
   context consulted rather than the DNS.

   An ARC-aware resolver presented with 8917287893.secid.example.com
   will encounter the ARCPOINTER record pointing to allium.arc.arpa upon
   attempting to iteratively resolve secid.example.com within the DNS.
   It will then use the ARC record present at allium.arc.arpa to
   retrieve the URN urn:ietf:params:arc:allium.  The ARC-aware resolver
   will then match its local capabilties against that index value (Note
   that the ARC records at a label under arc.arpa should be highly
   cacheable, so it should not need to retrieve these often).  If it has
   an allium-capable resolution method available, it will present the
   identifier in the form required by that resolution method.  In this
   case, it might present 88917287893 to the allium subsystem for
   resolution.  In other cases, the fully qualified Internet name will
   be presented to the identified alternative resolution system.



Hardie                     Expires May 1, 2017                  [Page 3]

Internet-Draft                arc-pointers                  October 2016


4.  A note on Indirection

   There is a layer of indirection in this approach that may or may not
   be needed.  It is possible to avoid creating the ARCPOINTER resource
   record and dereferencing labels under arc.arpa entirely, simply by
   placing ARC records at the same label at which this proposal places
   ARCPOINTER records.  This proposal chose this approach in order to
   ensure that ARC record entries present in the system were drawn from
   the registered set.  For the Internet name space to remain unique in
   the presence of alternative resolution systems, both elements of the
   tuple (name, alternative resolution system identifier) must remain
   unique.  This approach is based on the assumption that having a
   limited set of places to retrieve the identifiers for alternative
   resolution systems improves the odds that they will not drift over
   time.  Other methods to achieve this, such as configuring ARC-aware
   resolvers to reject values not beginning with urn:ietf:params:arc,
   may be equivalent or needed in any case.

5.  Applicability

   There is currently no way to assess the number of systems which are
   using a portion of the Internet namespace without using DNS
   resolution, and there is, therefore, an unknown risk of collision as
   the DNS portion of the namespace grows.  Providing a mechanism to
   permit alternative name resolution to be expressed within the DNS at
   multiple levels of the hierarchy may mitigate this risk, by allowing
   the name resolution to start at an arbitrary depth.

   This approach may also allow for the creation of fairly simple
   alternative resolution mechanisms.  One potential use case is the
   variant problem.  In that use case, a party controls two different
   identifiers within the Internet namespace and wishes to have them
   treated as entirely equivalent, so that a resolution request is
   indifferent to whether or one or the other is used.  Within the DNS,
   this is very difficult to achieve, requiring tight integration at the
   registries of every level of the namespace involved.  It is, however,
   a very simple alternative resolution.

   Imagine, for example, that a particular party controls both
   .colour.example and .color.example and wishes all identifiers using
   .color.example to be mapped to .colour.example on resolution.  By
   registering an alternative resolution context and placing the
   appropriate ARCPOINTER and ARC records, that party ensures that any
   ARC-aware resolver will present names like blue.ismy.favorite.color
   to an alternative resolution context, which knows to query
   blue.ismy.favorite.colour and return the answer there.





Hardie                     Expires May 1, 2017                  [Page 4]

Internet-Draft                arc-pointers                  October 2016


   The difficulty with using this for variants is that one answer comes
   from the DNS and one from an alternative resolution context, so it is
   not truly a bundled DNS name (even if implemented by consulting the
   DNS after a transformation).  Since the alternative resolution
   mechanism will have a long road to deployment equivalence with the
   DNS, this is really only useful when one variant is strongly
   preferred and the other a permitted alternative.  Two equally
   prefered variants would be hard to assign to a resolution system
   without implicitly assigning a preference.

6.  Indicating support for Alternative Resolution

   Indicating supporting for alternative resolution is one of the most
   difficult problems in constructing a multi-resolution system for
   Internet names, as deployment of end-to-end extensions to the DNS is
   very difficult.  As an initial proposal, this document suggests nodes
   test for support by sending an EDNS[RFC6891] Option Code of (TBD).  A
   resolver capable of alternative resolution should include this Option
   when sending requests, unless it has cached information which
   indicates the Internet name is within the DNS.  A responder which
   understands the option must include the Option in its reply.

   An authoritative server for a zone containing an ARCPOINTER record
   must not send that record in a response to a request from a system
   that does not speak EDNS or does not include the relevant option.
   Instead, it should send an NXDOMAIN response for any name covered by
   the ARCPOINTER record.  This answers the narrow question: "Is this
   name in the domain name system?" asked by DNS-only resolvers, rather
   than the broader question "Is this a known Internet name?" which may
   be asked by systems aware of alternative resolution mechanism.

   If an alternative-aware requester is speaking to a responder that
   does not speak EDNS or does not include this option in a reply, it
   must treat an NXDOMAIN response as a partial answer to the broader
   question above and should cache such an answer only as a narrow
   response; it should not assume that there is no such Internet name in
   any context.  It should cache NSEC-validated negative answers,
   however, as a zone maintainer for a zone containing an ARCPOINTER
   would not foster aggressive negative caching for the names covered by
   an ARCPOINTER.

   The approach laid out above allows for incremental deployment.  It
   has, however, known failure modes that mean a system aware of
   alternative resolution systems would likely have to manage
   uncertainty for a long transition.  Sending an ARCPOINTER record as
   additional data to an NXDOMAIN response might be possible, as the
   semantics of both responses are true, but support for this approach
   is harder to gauge.



Hardie                     Expires May 1, 2017                  [Page 5]

Internet-Draft                arc-pointers                  October 2016


   The author invites further discussion of this point.

7.  IANA Considerations

   This memo, if approved, asks IANA to set up a registry for resolution
   methods, populate URN parameters for those methods, as well as to
   register two new DNS resource record types and an EDNS Option.

   It also asks the IAB to create a new subdomain under .arpa, to be
   named arc.arpa.  Registration of a label under arc.arpa will be
   permitted on creation of a new entry in the registry noted above,
   with the only permitted resource records being the ARC record along
   with the records necessary to secure the entry.

7.1.  ARC Resource Record

   ===================

   TODO: Specify syntax which allows the relevant URNs and, if posible,
   disallows other options.

7.2.  ARCPOINTER Resource Record

   ===================

   TODO: Specify syntax which permits a pointer to the relevant name
   under arc.arpa and, if possible, disallows other pointers.

7.3.  ARC EDNS Option

   =====================

   TODO: Specify syntax.

8.  Security Considerations

   This method allows for a different resolution mechanism to replace
   the standard DNS mechanisms for names in the Internet name space.  An
   attacker capable of redirecting a name into an alternative resolution
   service will be able to deny name resolution or cause the wrong
   results to be returned.  Because the results must come from a
   specified alternative resolution service, this does not result in
   attacker capable of returning completely arbitrary results, but the
   effect is similar.







Hardie                     Expires May 1, 2017                  [Page 6]

Internet-Draft                arc-pointers                  October 2016


9.  Contributors {Contributors}

   This document was discussed Warren Kumari, Andrew Sullivan, and
   Suzanne Wolfe, but all errors are those of the author.

10.  References

10.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,
              <http://www.rfc-editor.org/info/rfc2119>.

   [RFC6891]  Damas, J., Graff, M., and P. Vixie, "Extension Mechanisms
              for DNS (EDNS(0))", STD 75, RFC 6891,
              DOI 10.17487/RFC6891, April 2013,
              <http://www.rfc-editor.org/info/rfc6891>.

10.2.  Informative References

   [RFC2826]  Internet Architecture Board, "IAB Technical Comment on the
              Unique DNS Root", RFC 2826, DOI 10.17487/RFC2826, May
              2000, <http://www.rfc-editor.org/info/rfc2826>.

   [RFC7686]  Appelbaum, J. and A. Muffett, "The ".onion" Special-Use
              Domain Name", RFC 7686, DOI 10.17487/RFC7686, October
              2015, <http://www.rfc-editor.org/info/rfc7686>.

   [RFC6761]  Cheshire, S. and M. Krochmal, "Special-Use Domain Names",
              RFC 6761, DOI 10.17487/RFC6761, February 2013,
              <http://www.rfc-editor.org/info/rfc6761>.

   [RFC3553]  Mealling, M., Masinter, L., Hardie, T., and G. Klyne, "An
              IETF URN Sub-namespace for Registered Protocol
              Parameters", BCP 73, RFC 3553, DOI 10.17487/RFC3553, June
              2003, <http://www.rfc-editor.org/info/rfc3553>.

Author's Address

   Ted Hardie

   Email: ted.ietf@gmail.com








Hardie                     Expires May 1, 2017                  [Page 7]