ietf
[Top] [All Lists]

Review: draft-iab-dns-applications-07

2013-03-15 05:58:40

Review of:    Architectural Considerations on Application Features in
              the DNS

I-D:          draft-iab-dns-applications-07

Reviewed by:  D. Crocker

Review date:  15 March 2013



Summary:

This review follows the one I provided for the -01 draft, on 20 April 2011 and recorded in:

     http://trac.tools.ietf.org/group/iab/trac/ticket/35

I recently received a note closing the ticket, with an extended commentary (contained in the above ticket citation). It asserted that the concerns of the previous review have been resolved.

   The current review was a fresh re-reading of the document.

   The current Abstract declares the purpose of the document to be:

   This document explores the architectural
   consequences of using the DNS to implement certain application
   features, and provides guidance to future application designers as to
   the limitations of the DNS as a substrate and the situations in which
   alternative designs should be considered.


Alas, the -07 version of the document remains fundamentally flawed in purpose, basic technical details, and writing style. After two years and 6 rounds of revision, a document that remains so deeply problematic needs very different handling than it has been getting.

For the Detailed Comments section of a review, I normally delete any extended passages that have no comments. Given the extent of problems with this document, I'm leaving in all the text, to ensure proper context for the comments.

I terminated the review on page 11. It simply is not productive to provide more detailed review, as I believe the included comments will make abundantly clear.

My best guess is that the only way to bring this document to a level of reasonable competence is to start over, with much, much greater care, starting with much greater clarity about the document's purpose and how to achieve it.


Detailed Comments:


Abstract

   A number of Internet applications rely on the Domain Name System
   (DNS) to support their operations.  Many applications use the DNS to
   locate services for a domain; some for example transform identifiers
   other than domain names into formats that the DNS can process, and
   then fetch application data or service location data from the DNS.

The text after the semi-colon is completely independent of the DNS. It's an app function that occurs before the DNS is involved. Given that the title of the document says "/in/ the DNS" the text actually distracting to refer to it here.

The phrasing before the semi-colon seems to be trying to say something distinctive, by virtue of asserting a scope as being "to locate services" but nothing that follows is really about 'locating'. That word is a term of art in the IETF and does not refer to a service provided by the DNS.

In addition, phrasing such as "into formats that the DNS can process" is clunky, at best, and more likely confusing. If it is meant to mean "into a domain name" then just say that. If it is meant to mean something else, I can't even guess what it is. A DNS query is a domain name. That's a pretty simple, clean and invariable point.

It seems that the text is merely trying to say:

Many applications use the DNS in a context that goes beyond simply mapping a domain name to an IP Address if a server that supports the application. Some applications include DNS access to obtain other, parametric information or as part of a more elaborate location mechanism.


   Proposals incorporating sophisticated application behavior using DNS
   as a substrate have raised questions about the role of the DNS as an

The proposals have not raised questions; the questions are not /in/ the proposals. It's possible that you mean that the proposal prompted others to raise questions. (Yes, I'm hassling you about awkward sentence construction. The document needs to be very careful about its assignments of responsibility.)

More generally, this language continues the underlying tone of suspicion and fear that I noted about the earlier draft.

The document will benefit from simply deleting this sentence. It adds nothing useful.


   application platform.  This document explores the architectural
   consequences of using the DNS to implement certain application

Actually, it doesn't. It says almost nothing about architectural consequences. It attempts quite a bit of pedagogy about existing DNS features, but that's quite a different task.

For the most part, the features discussed in this document are not 'implemented' in the DNS. They are implemented /above/ the DNS. The document still needs to be significantly more careful with this distinction. The text explaining the closed tracking ticket item for my review declared that this distinction was now made in the document; I still don't see it.


   features, and provides guidance to future application designers as to
   the limitations of the DNS as a substrate and the situations in which
   alternative designs should be considered.



Table of Contents

   1.  Motivation . . . . . . . . . . . . . . . . . . . . . . . . . .  4
   2.  Overview of DNS Application Usages . . . . . . . . . . . . . .  6
     2.1.  Locating Services in a Domain  . . . . . . . . . . . . . .  6
     2.2.  NAPTR and DDDS . . . . . . . . . . . . . . . . . . . . . .  8
     2.3.  Arbitrary Data in the DNS  . . . . . . . . . . . . . . . .  9
   3.  Challenges for the DNS . . . . . . . . . . . . . . . . . . . . 12
     3.1.  Compound Queries . . . . . . . . . . . . . . . . . . . . . 12
       3.1.1.  Responses Tailored to the Originator . . . . . . . . . 14
     3.2.  Using DNS as a Generic Database  . . . . . . . . . . . . . 16
       3.2.1.  Large Data in the DNS  . . . . . . . . . . . . . . . . 16
     3.3.  Administrative Structures Misaligned with the DNS  . . . . 18
       3.3.1.  Metadata about Tree Structure  . . . . . . . . . . . . 19
     3.4.  Domain Redirection . . . . . . . . . . . . . . . . . . . . 21
   4.  Private DNS and Split Horizon  . . . . . . . . . . . . . . . . 24
   5.  Principles and Guidance  . . . . . . . . . . . . . . . . . . . 27
   6.  Security Considerations  . . . . . . . . . . . . . . . . . . . 29
   7.  IANA Considerations  . . . . . . . . . . . . . . . . . . . . . 30
   8.  IAB Members at Time of Approval  . . . . . . . . . . . . . . . 31
   9.  Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 32
   10. Informative References . . . . . . . . . . . . . . . . . . . . 33
   Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 37




























Peterson, et al.         Expires August 30, 2013                [Page 3]

Internet-Draft         Application Features in DNS         February 2013


1.  Motivation

   The Domain Name System (DNS) has long provided a general means of
   translating domain names into Internet Protocol addresses, which
   makes the Internet easier to use by providing a valuable layer of
   indirection between names and lower-layer protocol elements.

This is oddly phrased. For one thing, it seems to imply that there were domain names before there was the DNS, which of course is incorrect. I think you mean to be saying:

The DNS provides a basic mechanism for mapping domain names to Internet Addresses, which makes the Internet easier to use. The names are considerably more human-friendly than IP Addresses.


   [RFC0974] documented a further use of the DNS: to manage application

'manage'?  not really.  Few, if any, "uses of the DNS" manage applications.

This sentence appears to be saying that this added email to the use; and of course, it didn't.


   services operating in a domain with the Mail Exchange (MX) resource
   record, which helped email addressed to the domain to find a mail
   service for the domain sanctioned by the zone administrator.

Again, not quite correct.

So perhaps:

[RFC0974] added special semantics when mapping from a domain name to an IP Address, by indicating a specific service supported at the host, namely email, through the use of a purpose-built RR, the Mail Exchange (MX) resource record.


   The seminal MX record served as a prototype for other DNS resource
   records that supported applications associated with a domain name.

MX is a direct prototype for SRV. I do not understand how it qualifies as a prototype for the other RRs that followed, since they have no semantic or structural similarity.


   The SRV resource record [RFC2052] provided a more general mechanism

   provided -> provides

It's still in use.


   for locating services in a domain, complete with a weighting system

Generally, "locating" is probably not a very good vocabulary choice, since it tends to be taken to mean 'searching', which of course the DNS doesn't do. Again, "mapping to" is the more careful and typical language for describing the DNS' basic function.

For reference, the tutorial nature of this document and the audiences that are likely to need to read this really do warrant considerably more care in the document's language.


   and selection among transports.  The Naming Authority Pointer (NAPTR,
   originally [RFC2168]) resource record, especially as it evolved into
   the more general Dynamic Delegation Discovery System (DDDS,
   [RFC3401]) framework, added a generic mechanism for storing
   application data in the DNS.  Primarily, this involved a client-side
   algorithm for transforming a string into a domain name, which might
   then be resolved by the DNS to find NAPTR records.  This enabled the
   resolution of identifiers that do not have traditional host
   components through the DNS; the best-known examples of this are
   telephone numbers, as resolved by the DDDS application ENUM.  Recent
   work such as Domain Keys Identified Mail (DKIM, [RFC6376]) has
   enabled security features of applications to be advertised through
   the DNS, via the TXT resource record.

   The scope of application usage of the DNS has thus increased over
   time.  Applications in many environments require features such as
   confidentiality, and as the contexts in which applications rely on
   the DNS have increased, some application protocols have looked to

oh? This needs a citation and an explanation for the type of confidentiality that was proposed, relative to the DNS, making clear how it would have modified the DNS.


   extend the DNS to include these sorts of capabilities.  However, some
   proposed usages of, and extensions to, the DNS have become misaligned

'become'?  The proposals underwent a change?

Worse is that this goes back to the tone of fear and criticism. Given the nature of this document, it should provide careful documentation of inappropriate proposals and explanations that justify claiming they were/are inappropriate.

What is especially important is to distinguish between stray crazy ideas from random people, versus serious efforts that were problematic. The former are mere noise and should be ignored; they do not justify the tone of suspicion in this document. The latter are (potentially) the real danger, if any can be documented.


   with both the DNS architecture and the DNS protocol.  Taking the
   example of confidentiality: In the global public DNS, the resolution
   of domain names to IP addresses is public information with no
   expectation of confidentiality, and thus the underlying query/
   response protocol has no encryption mechanism - typically, any
   security required by an application or service is invoked after the
   DNS query, when the resolved service has been contacted.  Only in
   private DNS environments (including split horizon DNS) where the
   identity of the querier is assured through some external policy can
   the DNS maintain confidential records, by providing distinct answers
   to the private and public users of the DNS.  In support of load
   balancing or other optimizations, a DNS server may return different
   addresses in response to queries from different sources, or even no



Peterson, et al.         Expires August 30, 2013                [Page 4]

Internet-Draft         Application Features in DNS         February 2013


   response at all, which is discussed further in Section 3.1.1.

The above paragraph offers confidentiality as an example, presumably as an inappropriate goal for the DNS, but then the text merely says that's not what's typically done. There's no real substance in the text for this purported example.

For example, would it be inappropriate to have the resolver/server DNS exchange be encrypted against wiretapping (for some types of traffic analysis)? If yes, why? Is it inappropriate to consider /any/ security mechanisms for client/server DNS exchanges? What about server/server? Why?

For load balancing, there really is literally no substance provided here. No sense of how it qualifies as problematic, or whatever the point that is intended; and I can't tell what that point is.


   This document provides guidance to application designers, and
   application protocol designers, looking to use the DNS to support
   features in their applications.  It provides an overview of past
   application usage of the DNS, as well as reviewing proposed new
   usages.  It identifies concerns and trade-offs and provides guidance
   on the question, "Should I store this information in the DNS, or use
   some other means?" when that question arises during protocol
   development.  These guidelines remind application protocol designers
   of the strengths and weaknesses of the DNS in order to make it easier
   for designers to decide what features the DNS should provide for
   their application.

   The guidance in this document complements the guidance on extending
   the DNS given in [RFC5507].  Whereas [RFC5507] considers the
   preferred ways to add new information to the underlying syntax of the
   DNS (such as defining new resource records or adding prefixes or
   suffixes to labels), the current document considers broader
   implications of applications that rely on the DNS for the
   implementation of certain features, be it through extending the DNS
   or simply reusing existing protocol capabilities - implications that
   may concern the invocation of the resolver by applications, the
   behavior of name servers, resolvers or caches, extensions to the
   underlying DNS protocol, the operational responsibilities of zone
   administrators, security, or the overall architecture of names.  When

The purpose of the above sentence looks good. The sentence itself doesn't. Too long and convoluted. Break a sequence of shorter, simpler sentences.


   existing DNS protocol fields are used in ways that their designers
   did not intend to handle new applications, those applications may
   demand further changes and extensions that are fundamentally at odds
   with the strengths of the DNS.

Remove the silliness about intent. Nevermind that you probably are wrong, it doesn't matter. Again, the tone of the above sentence is focused on the fear rather than on any concrete technical or operational substance.

The technical reality is that the DNS design permits a range of extensibilities, albeit within constraints. The other reality is that the modern DNS is used in a variety of application contexts. A document like this needs to use these technical and operational realities as its starting point.

With respect to cautions, what matters is distortions of the DNS that actually break functionality, performance or administration. For example, things like overloading a field have classic risks, since they create ambiguity.























Peterson, et al.         Expires August 30, 2013                [Page 5]

Internet-Draft         Application Features in DNS         February 2013


2.  Overview of DNS Application Usages

   [RFC0882] identifies the original and fundamental connection between

   identifies the original and fundamental -> specifies the

{ it's inventing something, not uncovering it }


   the DNS and applications.  It begins by describing how the
   interdomain scope of applications creates "formidable problems when

Hmmm. RFC882 doesn't use the term "interdomain". It also doesn't use the word "scope".

Given the actual language in the RFC that precedes the portion quoted here, I suggest:

It establishes its basis by noting the scale and diversity of resources on the network, which creates "...


   we wish to create consistent methods for referencing particular
   resources that are similar but scattered throughout the environment."
   This motivated transitioning the "mapping between host names... and
   ARPA Internet addresses" from a global table (the original "hosts"
   file) to a "distributed database that performs the same function."
   [RFC0882] also envisioned some ways to find the resources associated
   with mailboxes in a domain: without these extensions, a user trying
   to send mail to a foreign domain lacked a discovery mechanism to
   locate the right host in the remote domain to which to connect.

   While a special-purpose service discovery mechanism could be built
   for each such application protocol that needed this functionality,
   the universal support for the DNS encourages installing these
   features into its public tree rather than inventing something new.
   Thus, over time, several other applications leveraged DNS resource
   records for locating services in a domain or for storing application
   data associated with a domain in the DNS.  This section gives
   examples of various types of DNS usage by applications to date.

2.1.  Locating Services in a Domain

   The MX resource record provides the simplest example of an
   application advertising its domain-level resources in the Domain Name
   System.  The MX resource record contains the domain name of a server
   that receives mail on behalf of the administrative domain in
   question; that domain name must itself be resolved to one or more IP
   addresses through the DNS in order to reach the mail server.  While
   naming conventions for applications might serve a similar purpose (a
   host might be named "mail.example.com" for example), approaching
   service location through the creation of a new resource record yields
   important benefits.  For example, one can put multiple MX records
   under the same name, in order to designate backup resources or to
   load balance across several such servers (see [RFC1794]); these
   properties could not easily be captured by naming conventions (see
   [RFC4367], though more recently, DNS-SD
   ([I-D.cheshire-dnsext-dns-sd]) codifies service instance naming
   conventions for use across applications to locate services in a
   domain).

   While the MX record represents a substantial improvement over naming
   conventions as a means of service location, it remains specific to a

   it remains -> it is

There have been no forces attempting to change it.


   single application.  Thus, the general approach of the MX record was
   adapted to fit a broader class of applications through the Service



Peterson, et al.         Expires August 30, 2013                [Page 6]

Internet-Draft         Application Features in DNS         February 2013


   (SRV) resource record (originally [RFC2052]).  The SRV record allows
   DNS resolvers to query for particular services and underlying
   transports (for example, HTTP running over TLS, see [RFC2818]) and to
   learn a host name and port where that service resides in a given
   domain.  It also provides a weighting mechanism to allow load
   balancing across several instances of a service.

   The reliance of applications on the existence of MX and SRV records
   has important implications for the way that applications manage
   identifiers, and the way that applications pass domain names to

This is an interesting observation. I was under the impression that applications pass domain names to resolvers in a consistent manner that does not depend on the type or nature of RR being sought. Please document this odd bit of contingent API behavior.


   resolvers.  Email identifiers of the form "user@domain" rely on MX

'A' records are still legal and still used for routing to email servers. MX might dominate but is not required. The language here implies that only MX is used.

In addition, email addresses don't 'rely' on anything other than uniqueness and validity of their two fields. And they can be resolved to addresses without the DNS, such as internal configuration tables. My point is that this paragraph is entirely muddled in terms of premise and technical details.


   records to provide the convenience of simply specifying a "domain"
   component rather than requiring an application to guess which
   particular host handles mail on behalf of the domain.  While for

The idea that a host would do guessing about IP Addresses, or that they ever have, is silly and it's counterproductive to offer such statements.


   applications like web browsing, naming conventions continue to abound

For what other applications do naming conventions 'abound'? I'm not asking whether "some" configurations use such naming conventions, but where they "abound".


   ("www.example.com"), SRV records allow applications to query for an

   to query for an -> query for support of an


   application-specific protocol and transport in the domain.  For LDAP,
   the SRV service name corresponds to the URL scheme of the identifier
   invoked by the application (e.g., when "ldap://example.com"; is the
   identifier, the SRV query passed to the resolver is for
   "_ldap._tcp.example.com"); for other applications, the SRV service
   name that the application passes to the resolver may be implicit in

huh?  What does this mean and how does it work?


   the identifier rather than explicit.  In either case, the application
   delivers the service name to the DNS to find the location of the host

1.  The resolver delivers the name to the DNS

2. In terms of DNS semantics, it is not delivering a service name to the DNS. Rather, an overlay convention encodes service name in the DNS name, transparently to the DNS.

This is not a small point of quibbling; it's fundamental to the nature of these kinds of enhancements. The current language could easily lead a reader to believe that DNS query semantics are tailored to service name.

Everything being discussed here is specific to the internals of the SRV record and the conventions of its use, not any other aspect of the DNS. The text should make sure that the reader understands this difference and should attribute the semantics being discussed to the details of the SRV RR specification.


   of that service for the domain, the port where the service resides on
   that host, additional locations or ports for load balancing and fault
   tolerance, and related application features.

   Locating specific services for a domain was the first major function
   for which applications started using the DNS beyond simple name
   resolution.  SRV broadened and generalized the precedent of MX to
   make service location available to any application, rather than just
   to mail.  As applications that acquire MX (or SRV) records might need
   to perform further queries or transformations in order to arrive at
   an eventual domain name that will resolve to the IP addresses for the
   service, [RFC1034] allowed that the Additional Data section of DNS

   allowed -> allows.

It still allows it!

This text implies that the additional data feature is restricted to MX and SRV. It isn't.


   responses may contain the corresponding address records for the names

   responses may contain the corresponding
   ->
   response.  These can contain information, such as the corresponding


   of services designated by the MX record; this optimization, which

   record; this optimization, which
   ->
   record.  This efficiency mechanism, which requires


   requires support in the authoritative server and the resolver, is an
   initial example of how support for application features requires
   changes to DNS operation.  At the same time this is an example of an
   extension of the DNS that cannot be universally relied on: Many DNS
   resolver implementations will ignore the addresses in the additional
   section of the DNS answers because of the trustworthiness issues
   described in [RFC2181].

However the cost of non-support is merely additional queries.







Peterson, et al.         Expires August 30, 2013                [Page 7]

Internet-Draft         Application Features in DNS         February 2013


2.2.  NAPTR and DDDS

   The NAPTR resource record evolved to fulfill a need in the transition
   from Uniform Resource Locators (URLs) to the more mature URI
   [RFC3986] framework, which incorporated Uniform Resource Names

I thought the RR was core to URN support in the DNS, and is not dependent on a transition process. That is, "a need in transition" seems to focus on a frankly irrelevant point.


   (URNs).  Unlike URLs, URNs typically do not convey enough semantics
   internally to resolve them through the DNS, and consequently a
   separate URI-transformation mechanism is required to convert these
   types of URIs into domain names.  This allows identifiers with no
   recognizable domain component to be treated as domain names for the
   purpose of name resolution.  Once these transformations result in a
   domain name, applications can retrieve NAPTR records under that name
   in the DNS.  NAPTR records contain a far more rich and complex
   structure than MX or SRV resource records.  A NAPTR record contains
   two different weighting mechanisms ("order" and "preference"), a
   "service" field to designate the application that the NAPTR record
   describes, and then two fields that can contain translations: a
   "replacement" or "regular expression" field, only one of which
   appears in given NAPTR record.  A "replacement," like NAPTR's
   ancestor the PTR record, simply designates another domain name where
   one would look for records associated with this service in the
   domain.  The "regexp," on the other hand, allows regular expression
   transformations on the original URI intended to turn it into an
   identifier that the DNS can resolve.

This is missing an "architectural" technical summary, such as:

So, URI support represents an integrated design consisting partly of an overlay to the DNS and partly a new RR, but no change to basic DNS mechanisms. The overlay performs mapping between a URI name and a domain name, and the retrieved RR then provides a rich encoding environment for specifying the "meaning" of the URI.

{ I might have the "meaning" phrasing wrong. }


   As the Abstract of [RFC2915] says, "This allows the DNS to be used to
   lookup services for a wide variety of resource names (including URIs)
   which are not in domain name syntax."  Any sort of hierarchical
   identifier can potentially be encoded as a domain name, and thus
   historically the DNS has often been used to resolve identifiers that
   were never devised as a name for an Internet host.  A prominent early
   example is found in the in-addr domain [RFC0882], in which IPv4
   addresses are encoded as domain names by applying a string
   preparation algorithm that required reversing the octets and treating
   each individual octet as a label in a domain name - thus, for
   example, the address 192.0.2.1 became 1.2.0.192.in-addr.arpa.  This
   allowed resolvers to query the DNS to learn name(s) associated with
   an IPv4 address.  The same mechanism has been applied to IPv6
   addresses [RFC3596] and other sorts of identifiers that lack a domain
   component.  Eventually, this idea connected with activities to create
   a system for resolving telephone numbers on the Internet, which
   became known as ENUM (originally [RFC2916]).  ENUM borrowed from an
   earlier proposal, the "tpc.int" domain [RFC1530], which provided a
   means for encoding telephone numbers as domain names by applying a
   string preparation algorithm that required reversing the digits and
   treating each individual digit as a label in a domain name - thus,
   for example, the number +15714345400 became
   0.0.4.5.4.3.4.1.7.5.1.tpc.int.  In the ENUM system, in place of



Peterson, et al.         Expires August 30, 2013                [Page 8]

Internet-Draft         Application Features in DNS         February 2013


   "tpc.int" the special domain "e164.arpa" was reserved for use.

   In the more mature form of the NAPTR standard, in the Dynamic

In what way is it "more mature"? What does that mean? It's more complex. It might even be more powerful. But more "mature"???


   Delegation and Discovery Service (DDDS) ([RFC3401] passim) framework,
   the initial transformation of an identifier (such as a telephone
   number) to a domain name was called the "First Well Known Rule."  The
   capability to define a "First Well Known Rule" for each application
   of NAPTR generalizes the address-reversing mechanism used in-
   addr.arpa.  Its flexibility has inspired a number of proposals beyond
   ENUM to encode and resolve unorthodox identifiers in the DNS.

"unorthodox"?  I think you just mean "other" identifiers into domain names.

     in the DNS -> into domain names


   Provided that the identifiers transformed by the "First Well Known
   Rule" have some meaningful structure and are not overly lengthy,
   virtually anything can serve as an input for the DDDS structure: for

This flexibility in naming is not specific to DDDS usage. That's the important lesson of the TPC/ENum approach. The language here is unnecessarily tied to DDDS.


   example, civic addresses.  Though [RFC3402] stipulates of the
   identifier that "the lexical structure of this string must imply a
   unique delegation path," there is no requirement that the identifier
   be hierarchical, nor that the points of delegation in the domain name
   created by the "First Well Known Rule" correspond to any points of
   administrative delegation inherent in the structure of the
   identifier.

So?  It sounds like an important point.  Explain it and/or its implications.


   While this ability to look up names "which are not in the domain name
   syntax" does not change the underlying DNS protocol - the names
   generated by the DDDS algorithm are still just domain names - it does
   change the context in which applications pass name to resolvers, and
   can potentially require very different operational practices of zone
   administrators (see Section 3.3).  In terms of the results of a DNS

???? If that section contains statements specific to the point being made here, refer to them explicitly. If it doesn't, then explain the concern here.

In it current general form, this raises yet another vague fear without making it concrete enough to be actionable.


   query, the presence of the "regexp" field of NAPTR records enabled

It still enables.


   unprecedented flexibility in the types of identifiers that

Drop 'unprecedented'.  Again, it's unnecessarily dramatic.

But generally this sentence seems to be redundant with earlier statements.


   applications could resolve with the DNS.  Since the output of the
   regular expression frequently took the form of a URI (in ENUM

Took?  Past tense?  It doesn't work anymore?


   resolution, for example, a telephone number might be converted into a
   SIP URI [RFC3261]), anything that could be encoded as a URI might be
   the result of resolving a NAPTR record - which, as the next section
   explores, essentially means arbitrary data.

Very awkward sentence form.



2.3.  Arbitrary Data in the DNS

   URI encoding has ways of encapsulating basically arbitrary data: the
   most extreme example is data URL [RFC2397].  Thus, resolving a NAPTR

Domain names are resolved.  The returned RR is not.  Therefore:

     Thus, resolving a NAPTR
     record might result in an output other than an identifier that would
     ->
Thus, the returned NAPTR record might be interpreted to produce output other than a domain name that ...


   record might result in an output other than an identifier that would
   subsequently be resolved to IP addresses and contacted for a
   particular application - it could give a literal result which would

This two-sentence sequence appears to be a non-sequitor, since the syntactic issue of 'encapsulation', in the first sentence, is quite a different issue from data semantics, stated in the second.


   be consumed by the application.  Originally, in [RFC2168], the
   intended applicability of the regular expression field in NAPTR was
   narrower: the regexp field contained a "substitution expression that
   is applied to the original URI in order to construct the next domain
   name to lookup," in order to "change the host that is contacted to



Peterson, et al.         Expires August 30, 2013                [Page 9]

Internet-Draft         Application Features in DNS         February 2013


   resolve a URI" or as a way of "changing the path or host once the URL
   has been assigned."  The regular expression tools available to NAPTR
   record authors, however, grant much broader powers to alter the input

I doubt that author tools grant the power. I suspect that the NAPTR specification document grants the power... The tools might exploit that power, but that's a very different matter.


   string, and thus applications began to rely on NAPTR to perform more
   radical transformations that did not serve any of those
   aforementioned needs.  By [RFC3402], the output of DDDS is wholly

DDDS is an overlay capability. NAPTR is a DNS RR. The text here moves between the layers without distinguishing where actual changes have taken place. My guess is that the intended meaning is that the DDDS overlay service was specified to exploit the underlying power of NAPTR, with application-specific conventions.


   application-specific: "the Application must determine what the
   expected output of the Terminal Rule should be," and the example
   given in the document is one of identifying automobile parts by
   inputting a part number and receiving at the end of the process
   information about the manufacturer.

   Historically speaking, NAPTR did not pioneer the storage of arbitrary
   data in the DNS.  At the start, [RFC0882] observed that "it is
   unlikely that all users of domain names will be able to agree on the
   set of resources or resource information that names will be used to
   retrieve," and consequently places little restriction on the
   information that DNS records might carry: it might be "host
   addresses, mailbox data, and other as yet undetermined information."

FWIW, note that this makes clear that the author of the DNS did not 'intend' only name-to-address mapping, as was earlier clamed, and that he did envision a broader range of uses...


   [RFC1035] defined the TXT record, a means to store arbitrary strings
   in the DNS; [RFC1034] specifically stipulates that a TXT contains
   "descriptive text" and that "the semantics of the text depends on the
   domain where it is found."  The existence of TXT records has long
   provided new applications with a rapid way of storing data associated
   with a domain name in the DNS, as adding data in this fashion
   requires no registration process.  [RFC1464] experimented with a
   means of incorporating name/value pairs to the TXT record structure,
   which allowed applications to differentiate different chunks of data
   stored in a TXT record - surely not just "descriptive text" as the
   TXT originally specified.  In this fashion, an application that wants
   to store additional data in the DNS can do so without registering a
   new resource record type - though [RFC5507] points out that it is
   "difficult to reliably distinguish one application's record from
   others, and for its parser to avoid problems when it encounters other
   TXT records."

   While open policies surrounding the use of the TXT record have
   resulted in a checkered past for standardizing application usage of
   TXT, TXT has been used as a technical solution for many applications,

It's not the vague drama of a "checkered past" but the inherent, technical ambiguity created by overloading the record with multiple, uncoordinated uses that can't be readily distinguished.


   most recently for DKIM [RFC6376] to store necessary information about
   the security of email in DNS, though within a narrow naming
   convention (records stored under "_domainkey" subdomains).  Storing

This phrasing entirely misses the way that the underscore name component restricts the TXT record to an unambiguous usage.

I suggest:

many applications. Recently a number of applications, such as DKIM [RFC6376], have resolved the problem of TXT ambiguity by storing it under a specialized DNS naming structure that includes the component ("_domainkeys"), which serves to restrict the scope of the TXT solely to DKIM use.


   keys in the DNS became the preferred solution for DKIM for several
   reasons: notably, because email applications already queried the DNS
   in their ordinary operations, because the public keys associated with
   email required wide public distribution, and because email
   identifiers contain a domain component that applications can easily
   use to consult the DNS.  If the application had to negotiate support

This implies that there have been other solutions.  There hasn't.

Hence:

For DKIM, the choice of storing keys in the DNS, rather than specifying a new and independent key distribution service, takes advantage of the existing, Internet-wide installed base of DNS software and operations. Email applications already queried the DNS in their ordinary operations and the public keys associated with email require wide public distribution.

The last clause: "and email identifiers contain a domain component that applications can easily use to consult the DNS" doesn't make much sense to me and doesn't appear relevant to the reasons I am aware of for choosing the DNS as a key distribution mechanism. Given that I've been involved with DKIM since the Yahoo Domainkeys effort, I'd have expected to hear of that reason...


        If the application had to negotiate support
   for the DKIM mechanism with mail servers, it would give rise to bid-
   down attacks (where attackers misrepresent that DKIM is unsupported
   in the domain) that are not possible if the DNS delivers the keys

I'm pretty sure that this analysis is wrong. DKIM is a cooperative service. It requires that the signer and the verifier cooperate to achieve a validated identifier. A receiving server can simply choose to ignore DKIM if it wants. It doesn't need to play games. A sending server can do the same.

So what is the exact scenario that is is being hypothesized here?


   (provided that DNSSEC [RFC4033] guarantees authenticity of the data).

The benefit of using DNSSEC is that the DNS response cannot be spoofed. That's entirely different from -- or, at least, much broader than -- a bid-down attack.

And DKIM does not rely on the presence of DNSSEC. If DNSSec is to be cited with DKIM, it needs to be as a combinatorial enhancement that goes beyond either mechanism independently. And it needs to be made clear that it is a future benefit, since it does not yet have extensive deployment. It's an appealing combination and will no doubt eventually dominate as DNSSec use grows, but it hasn't happened yet and DKIM has never relied on its happening, except in very generic terms, by way of deferring reasonable concerns that the storage of DKIM keys could be compromised.


   However, there are potential issues with storing large data in the

This raises a valid point, but in a confusing manner.  Perhaps:

The size of public keys, encoded as text, along with other parameters used by DKIM, pushes towards the maximum number of characters that can be stored in a TXT RR, as discussed in Section 3.2.1. In addition, the domain naming convention used by DKIM and other services limits the ability to use DNS wildcards.

(For reference, the DKIM does not 'prevent' the use of wildcards; it limits their utility and can introduce some other surprises. But wildcards are sometimes still possible to use effectively.)


   DNS, as discussed in Section 3.2.1 as well as with the DKIM namespace
   conventions that prevent the use of DNS wildcards (as discussed in
   section 6.1.2 of [RFC6376] and in more general terms in [RFC5507]).
   If prefixes are used to identify TXT records used by an application,
   potentially the use of wildcards may furthermore cause leakages that
   other applications will need to detect.

Huh? What 'leakages' are you talking about? I have no idea what this bit of fear is about.








































Peterson, et al.         Expires August 30, 2013               [Page 11]

Internet-Draft         Application Features in DNS         February 2013


3.  Challenges for the DNS

   The methods discussed in the previous section for transforming
   arbitrary identifiers into domain names, and for returning arbitrary
   data in response to DNS queries, both represent significant
   departures from the basic function of translating host names to IP

Sorry, but this persists in confusing dominant use with basic architecture, even with the ending clause of the sentence.

The "basic function" of the DNS doesn't know or care that some RRs carry IP Addresses and others don't, and it never has. And TXT records have been used for rather too long a time to refer to them as a "departure"...


   addresses, yet neither fundamentally alters the underlying semantics

Does it alter it a little bit? No. So the implication of "fundamentally" is wrong.


   of the DNS.  When we consider, however, that the URIs returned by
   DDDS might be base 64 encoded binary data in a data URL, the DNS

What is a "data" URL?  Do you mean RFC 2397?  If so, cite it.


   could effectively implement the entire application feature set of any
   simple query-response protocol.  Effectively, the DDDS framework
   considers the DNS a generic database - indeed, the DDDS framework was

No it doesn't. It considers it an indexed storage engine. That's rather simpler than a "database", which implies richer functionality, such as searching and content-based indexes that the DNS doesn't have.

It's frankly surprising that an IAB draft would refer to the DNS as a database...

{review terminated }

d/
--
 Dave Crocker
 Brandenburg InternetWorking
 bbiw.net

--
 Dave Crocker
 Brandenburg InternetWorking
 bbiw.net

<Prev in Thread] Current Thread [Next in Thread>