IETF A. Sullivan Internet-Draft Dyn, Inc. Intended status: Standards Track J. Hodges Expires:September 5, 2014August 21, 2016 PayPalMarch 4, 2014February 18, 2016 Asserting DNS Administrative Boundaries Within DNS Zonesdraft-sullivan-domain-policy-authority-01draft-sullivan-domain-policy-authority-02 Abstract SomeInternet cliententities on the Internet make inferences about the administrative relationships amongservices on theInternet services based on the domain names at whichtheythose services are offered. At present, it is not possible to ascertain organizational administrative boundaries in theDNS,DNS; therefore such inferences can beerroneous in various ways.erroneous. Mitigation strategies deployed so far will not scale.The solution offered in thisThis memois to provideprovides a means to make explicit assertions regardingthecertain kinds of administrative relationships between domain names. 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 onSeptember 5, 2014.August 21, 2016. Copyright Notice Copyright (c)20142016 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 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. Introduction and Motivation . . . . . . . . . . . . . . . . .2 2. Prerequisites, Terminology, and3 1.1. Organization ofthisThis Memo . .5 3. Use Cases. . . . . . . . . . . . . . 3 2. Terminology . . . . . . . . . . . . . .5 4.. . . . . . . . . . . 3 3. Overview of Start Of Policy Authority (SOPA) . . . . . . . .6 4.1.4 3.1. Identifying a Target Name for Policy Authority . . . . . . . . . . . . . . . . . . . . . . . . 6 4. Use Cases . . . . . . . . . . . . . . . . . . . . . . . . . . 6 4.1. Where SOPA Works Well . . . . . . . . . . . . . . . . . . 7 4.2. Where SOPA Works Less Well . . . . . . . . . . . . . . . 8 5. The SOPA Resource Record . . . . . . . . . . . . . . . . . .78 5.1. The Relation Field . . . . . . . . . . . . . . . . . . .89 5.2. The Target Field . . . . . . . . . . . . . . . . . . . .89 6. Expressing Different Policies with the SOPA RRTYPE . . . . .910 6.1. The Exclusion Relation . . . . . . . . . . . . . . . . .911 6.2. The Inclusion Relation . . . . . . . . . . . . . . . . .1011 6.3. Interpreting DNS Responses . . . . . . . . . . . . . . .1012 6.4. Wildcards in Targets . . . . . . . . . . . . . . . . . .1112 6.5. TTLs and SOPA RRs . . . . . . . . . . . . . . . . . . . .1214 7. What Can be Done With a SOPA RR . . . . . . . . . . . . . . .1214 7.1. Exclusion has Priority . . . . . . . . . . . . . . . . .1214 8. An Example Case . . . . . . . . . . . . . . . . . . . . . . .1315 8.1. Examples of Using the SOPA Record for Determining Boundaries . . . . . . . . . . . . . . . . . . . . . . .1416 8.1.1. Declaring a Public Suffix . . . . . . . . . . . . . .1416 8.1.2. One Delegation, Eight Administrative Realms, Wildcard Exclusions . . . . . . . . . . . . .1416 8.1.3. One Delegation, Eight Administrative Realms, Exclusion Wildcards . . . . . . . . . . . . .1517 9. Limitations of the approach and other considerations . . . .1517 9.1. Handling truncation . . . . . . . . . . . . . . . . . . .1618 10. Security Considerations . . . . . . . . . . . . . . . . . . .1618 11. Internationalization Considerations . . . . . . . . . . . . . 19 12. IANA Considerations . . . . . . . . . . . . . . . . . . . . .17 12.19 13. Acknowledgements . . . . . . . . . . . . . . . . . . . . . .17 13. Informative19 14. References . . . . . . . . . . . . . . . . . . .17. . . . . . 19 14.1. Normative References . . . . . . . . . . . . . . . . . . 19 14.2. Informative References . . . . . . . . . . . . . . . . . 19 Appendix A. Discussion Venue . . . . . . . . . . . . . . . . . .1922 Appendix B. Change History . . . . . . . . . . . . . . . . . . .1922 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . .2024 1. Introduction and Motivation Many Internet resources and services, especially at the application layer, are identified primarily byDNSdomain names [RFC1034]. As a result, domain names have become fundamental elements in building security policies and also in affecting user agent behaviour.For example, domain names are used for defining the scope of HTTP state management "cookies" [RFC6265]. Another example is a user interface convention that purports to display an "actual domain name" differently from other parts of a fully-qualified domain name, in an effort to decrease the success of phishing attacks. In this strategy, for instance, a domain name like "www.bank.example.com.attackersite.tld" is formatted to highlight that the actual domain name ends in "attackersite.tld", in the hope of reducing user's potential impressionDiscussion ofvisiting "www.bank.example.com". Issuersseveral ofX.509 certificates make judgements about administrative boundaries around domains when issuing the certificates. Forthese uses, and somediscussionof therelationship between domain names and X.509 certificates, see [RFC6125]. The simplest policy, and the one most likely to work, is to treat each different domain name distinctly. Under this approach, foo.example.org, bar.example.org, and baz.example.org are all just different domains. Unfortunately, this approach is too naive toassociated issues can beuseful. Often, the real policy control is the samefound inseveral names (in this example, example.org and its children). Therefore, clients have attempted to make more sophisticated policies around some idea of such shared control. We call such an area of shared control a "policy realm", and the control held by the administrator the "policy authority".[I-D.sullivan-dbound-problem-statement]. Historically,policies were sometimes based on the DNS tree. Early policies made a firm distinction between top-level domains and everything else; but this was also too naive, and laterattemptswere based on inferences from the domain names themselves. That did not work well, because there is no way in the DNStodiscoverbuild theboundaries of policy control around domain names. Somesecurity policies haveattempted to userelied on theboundary of zone cuts (i.e.public suffix list (see discussion in [I-D.sullivan-dbound-problem-statement]). We proceed from thelocationview that some uses of thezone's apex, which is at the SOA record; see [RFC1034] and [RFC1035]). That boundary is neither necessary nor sufficient for these purposes: it is possible for a large sitepublic-suffix list never were going tohave many, administratively distinct subdomain-named sites without inserting an SOA record,achieve their goal, andit is also possiblethatan administrative entity (likethe public/private distinction may be acompany) might divide its domain up into different zonespoor proxy foradministrative reasons unrelated tothenames inkinds of relationships thatdomain. It was also, prior toare actually needed. At theadvent of DNSSEC, difficultsame time, it will be necessary tofind zone cuts. Regardless, the location ofcontinue to use something like azone cut is an administrative matterpublic suffix list for some important classes of behaviour (both todoachieve acceptable performance characteristics and to deal with deployed software). Therefore, theoperation of the DNS itself, andproposal below does notuseful for determining relationships among services offered at names in the DNS. These different issues often appear to be different kinds of problems. The issue of whether two names may set cookies for one another appearsattempt tobe a different matter from whether two names get the same highlighting in a browser'saddressbar, or whether a particular name "owns" all the names underneath it. But the problemsallboil down tothesame fundamental problem, which is that of determining whether two different namesissues inthe DNS are under the control of the same entity and ought to be treated as having an important administrative relationship to one another. What appears to be needed is[I-D.sullivan-dbound-problem-statement], but offers amechanismway todetermine policy boundaries in the DNS. That is, given two domain names,solve oneneeds to be able to answer whether the first and the second are underimportant class of problems -- thesame administrative control and same administrative"orphan type" policies.We may call this state1.1. Organization ofaffairs "being within the same policy realm". We may suppose that, ifThis Memo [[CREF1: I find thisinformation were to be available, it would be possible to make useful decisions based on the information. A particularly important distinction for security purposes is the one between names that are mostly used to contain other domains, as compared to those that are mostly used to operate services. The former are often "delegation-centric" domains, delegating parts of their name space to others, and are frequently called "public suffix" domains or "effective TLDs". The term "public suffix" comes from a site, [publicsuffix.org], that publishes a list of domains -- whichsection awkward here. Ditch it? --ajs@anvilwalrusden.com]] Necessary terminology isalso known as the "effective TLD (eTLD) list", and henceforthestablished inthis specification as the "public suffix list" -- that are used to contain other domains. Not all, but most, delegation-centric domains are public suffix domains; and not all public suffix domains need to do DNS delegation, although mostSection 2. Section 3 provides an overview ofthem do. The reason forwhat thepublic suffix listmechanism is supposed tomakedo. Then, Section 4 discusses thedistinction between names that must never be treated as being inconditions where thesame policy realm as another, and those that mighttechnique outlined here may beso treated. For instance, if "com" is on the public suffix list, that means that "example.com" lies in a policy realm distinct fromuseful, and notes some cases thatof com. Unfortunately,thepublic suffix list has several inherent limitations. To begin with, it is a list thattechnique isseparately maintained from the listnot intended solve. A definition ofDNS delegations. Asaresult,new RRTYPE to support thedatatechnique is in Section 5. There is some discussion of thepublic suffix list can diverge from the actualuse of theDNS. Second, because its semantics are not the same as those ofRRTYPE in Section 6. Section 7 attempts to show how theDNS, it does not capture unusual featuresmechanism is generally useful. Then, Section 8 offers an example portion ofthe DNS that areaconsequence of its structure (see [RFC1034] for background on that structure). Third, asDNS tree in an effort to illustrate how thesizemechanism can be useful in certain example scenarios. Section 9 notes some limitations of theroot zone grows, keeping the list both accurate and synchronized withmechanism. Section 10 outlines how theexpanding services will become difficultmechanism might be used securely, andunreliable. Perhaps most importantly, it puts the power of assertion about the operational policies of a domain outsideSection 11 addresses thecontrolinternationalization consequences of theoperators of that domain, and inSOPA record. Finally, Section 12 includes thecontrol of a third party possibly unrelatedrequests tothose operators. There have been suggestionsIANA forimprovements of the public suffix list, most notably in [I-D.pettersen-subtld-structure]. It is unclear the extent to which those improvements would help, because they represent improvements on the fundamental mechanism of keeping metadata about the DNS tree apart from the DNS tree itself.registration. 2.Prerequisites, Terminology, and Organization of this MemoTerminology The reader is assumed to be familiar with the DNS ([RFC1034] [RFC1035]) and theomainDomain Name System Security Extensions (DNSSEC) ([RFC4033] [RFC4034] [RFC4035] [RFC5155]). A number of DNS terms can be found in [RFC7719]. The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described inRFC 2119[RFC2119].To begin, Section 3 discusses the cases where this technique might be useful. Section 4 describes the mechanism in general terms. A definition of the new RRTYPE isThe terms "policy realm" and "policy authority" are defined inSection 5. There is some discussion of[I-D.sullivan-dbound-problem-statement]. For theusepurposes ofthe RRTYPEdiscussion here, it isin Section 6. Section 7 attempts to show how the mechanism can address the use cases in general terms. Then, Section 8 offers an example portion of a DNS tree that can be used to understand the ways in which the mechanism can be usedimportant todraw inferences about administrative relationships. Section 9 notes some limitations of the mechanism. Section 10 outlines how the mechanism might be used securely. 3. Use Cases In the most general sense, this memo presents a mechanismremember thatcan be used either asit is areplacementmatter ofthe public suffix list [publicsuffix.org], or elsefact asa waytobuild and maintain such a list.whether two domains lie in the same policy realm. The point of the mechanismoutlinedhere isexplicitly restrictednot tonames having ancestor-descendant or sibling relationships,create such facts, butonly as a practical matter; nothing about the mechanism makes that restriction a requirement. HTTP state management cookiesmerely to expose them. Themechanism can be usedterms "inheritance type" and "orphan type" are also defined in [I-D.sullivan-dbound-problem-statement]. The text below attempts todetermineapply thescope for data sharingcategories when they seem useful. 3. Overview ofHTTP state management cookies [RFC6265]. Using this mechansim, itStart Of Policy Authority (SOPA) When an application ispossibleattempting todetermine whether a service at one name may be permittedmake security decisions based on domain names, it needs toset a cookie for a service at a different name. (Other protocols use cookies, too, andanswer questions about the relation between thoseapproaches could benefit similarly.) User interface indicators User interfaces sometimes attempt to indicatenames. Suppose that the"real"question to be answered is, "Given any two domainnamenames, do they lie in the same policy realm appropriate for a givendomain name. A common use isapplication?" In order tohighlight the portionanswer this, there are two pieces of information needed: first, does thedomain name believed to be the "real" name -- usually the rightmost threeapplication need an inheritance orfour labelsorphan type of policy? Second do the two names lie ina domain name string. Settingthedocument.domain property The DOM same-originsame policymight be helped by being ablerealm? For orphan types of policy, the best way toidentify a commondetermine whether two names lie in the same policyrealm. Email authentication mechanisms Mail authentication mechanisms such as DMARC [I-D.kucherawy-dmarc-base] need to be ablerealm is tofind policy documentslook fora givenassertions about the two domainname given a subdomain. SSL and TLS certificates Certificate authorities need to be able to discover delegation-centric domains in ordernames. A good place toavoid issuance of certificates at or above those domains. HSTS and Public Key Pinning with includeSubDomains flag set Linking domains togetherlook forreporting purposes 4. Overview of Start Of Policy Authority (SOPA)assertions about domain names is in the DNS. This memo presents a way to assert that two domains lie in the same policy realm by placing a resource record (RR) at the affected domainnames.names in the DNS. The mechanism requires a new resource record type(RRTYPE) to enable these assertions,(RRTYPE). It is calledSOPA (forSOPA, for "Start Of PolicyAuthority ,Authority" and echoing the Start Of Authority or SOArecord).record. While there are reported difficulties in deploying new RRTYPEs, the only RRTYPE that could be used to express all the necessary variables is the TXT record, and it is unsuitable because it can also be used for otherpurposes.purposes (so it needs to be covered itself). The use of this mechanism does not require "underscore labels" to scope the interpretation of the RR, in order to make it possible to use the mechanism where the underscore label convention is already in use. The SOPA RRTYPE is class-independent. The use of SOPA records can do one of two things: it can confirm that two names are in the same policy realm, or it can refute a claim that they are. In order to learn whether a.long.example.com and b.example.com are in the same policy realm, perform a DNS query for the SOPA record for a.long.example.com. If the answer's RDATA contains b.example.com, that is an assertion from the nameservers for a.long.example.com that it is in the same policy realm as b.example.com. Next, make a DNS query for the SOPA record for b.example.com. If the answer's RDATA contains a.long.example.com, then the two names are in the same policy realm. A positive policy realm relationship ought to be symmetric: if example.com is in the same policy realm as example.net, then example.net should be (it would seem) in the same policy realm as example.com. In principle, then, if a SOPA RR at a.long.example.com provides a target at b.example.com, there should be a complementary SOPA RR at b.example.com with a target of a.long.example.com. Because of the distributed nature of the DNS, and because other DNS administrative divisions need not be congruent to policy realms, the only way to know whether two domain names are in the same policy realm is to query at each domain name, and to correlate the responses. If any of the forgoing conditions fails, then the two names are not in the same policy realm. [[CREF2: Something that could be useful here is a transitivity bit in the SOPA record. That would allow SOPAs between a.example.com and example.com, and b.example.com and example.com, to mean that a.example.com and b.example.com are also in the same realm (but you could shut it off by clearing the bit). I'm leery of this because of the potential for abuse and also because I doubt it saves very much. Might be useful for administrative saving, but it won't save lookups. --ajs@anvilwalrusden.com]] It is also possible for a SOPA record to contain the explicit statement that other names do not lie in the same policy authority as it. This negative assertion permits processing to stop. If the assertion is about all other names, then the capability is functionally equivalent to declaring a name to be a public suffix. In operation where latency is an important consideration (such as in a web browser), it is anticipated that the above correlations could happen in advance of the user connection (that is, roughly the way the existing public suffix list is compiled), and then additional queries could be undertaken opportunistically. This would allow the detection of changes in operational policy and make maintenance of the installed list somewhat easier, but not require additional DNS lookups while a user is waiting for interaction. While many policies of the sort discussed inSection 1[I-D.sullivan-dbound-problem-statement] appear to be based on domain names, they are actually often only partly based on them. Often, there are implicit rules that stem from associated components of composite names such as URIs [RFC3986], e.g., the destination port [RFC6335] or URI scheme [RFC4395] (or both). It is possible to make those assumptions explicit, but at the cost of expressing in the resulting resource record a tighter relationship between the DNS and the services offered at domain names. SRV [RFC2782] records offer a mechanism for expressing such relationships, and a SOPA record in conjunction with an SRV record appears to provide the necessary mechanism to express such relationships. (SRV records use underscore labels, and this is an example of why underscore labels themselves need to beavailable forcoverable by SOPA records.)It is worth observing that a positive policy realm relationship ought to be symmetric: if example.com is in the same policy realm as example.net, then example.net should be (it would seem) in the same policy realm as example.com. In principle, then, if a SOPA RR at a.example.com provides a target at b.example.com, there should be a complementary SOPA RR at b.example.com with a target of a.example.com. Because of the distributed nature of the DNS, and because other DNS administrative divisions need not be congruent to policy realms, the only way to know whether two domain names are in the same policy realm is to query at each domain name, and to correlate the responses. 4.1.3.1. Identifying a Target Name for Policy Authority The RDATA of a SOPA RR contains a "targetname", lyingname" that either lies in the same policy realm as the owner name of the RR, or that lies outside of that policy realm. The SOPA record is therefore an assertion, on the part of the authoritative DNS server for the given owner name, that there is some policy relationship between the owner name and the target name. If a giventargetowner name lies in the same policy realm as several other target names, an additional RR is necessary for each such relationship, with one exception. It is not uncommon fortwo different namesa name to have policy relationshipsamongwith all the children beneaththem.it. Using the SOPA RR, it is possible to specify that the policy target is all the names beneath a given owner name, by using a wildcard target. 4. Use Cases In the most general sense, this memo presents a mechanism that can be used either as a replacement of the public suffix list <publicsuffix.org>, or else as a way to build and maintain such a list. Performance characteristics may make the mechanism impractical as a full replacement, in which case a list will likely need to be built and maintained. In the latter case, this mechanism is still preferable because it aligns the policy assertions with the operation of the domains themselves, and allows maintenance to be distributed in much the way the operation of the DNS is (instead of being centralized). It is worth noting that the mechanism outlined here could be used for names that are not along the same branch of the DNS tree (i.e. it could permit the statement that the policy authority of some.example.com and some.other.example.net is the same). Such uses are unlikely to work in practice and probably should not be used for general purposes. Most deployed code implicitly uses ancestor- descendent relations as part of understanding the policy, and such code will undoubtedly ignore cross-tree dependencies. [[CREF3: This relaxes a restriction that was in previous versions, which officially specified the use only for ancestor-descendent uses. It seems better to make that a deployment consideration so that the restriction could be relaxed in some circumstances where it would be appropriate. --ajs@anvilwalrusden.com]] By and large, the mechanism is best suited to "orphan" types of policy. Where inheritance types of policy can use this, it is mostly by treating the mechanism as a generator for public suffix boundaries. 4.1. Where SOPA Works Well HTTP state management cookies The mechanism can be used to determine the scope for data sharing of HTTP state management cookies [RFC6265]. Using this mechanism, it is possible to determine whether a service at one name may be permitted to set a cookie for a service at a different name. (Other protocols use cookies, too, and those approaches could benefit similarly.) Because handling of state management cookies often happens during user interaction, this use case probably requires a cached copy of the relevant list. In that case, the mechanism can be used to maintain the list. User interface indicators User interfaces sometimes attempt to indicate the "real" domain name in a given domain name. A common use is to highlight the portion of the domain name believed to be the "real" name -- usually the rightmost three or four labels in a domain name string. This has similar performance needs as HTTP state management cookies. Setting the document.domain property The DOM same-origin policy might be helped by being able to identify a common policy realm. This case again has a need for speedy determination of the appropriate policy and would benefit from a cached list. It is likely that the SOPA record on its own is inadequate for this case, but the combination of SOPA and SRV records might be helpful. SSL and TLS certificates Certificate authorities need to be able to discover delegation-centric domains in order to avoid issuance of certificates at or above those domains. More generally, a CA needs to decide whether, given a request, it should sign a particular domain. This can be especially tricky in the case of wildcards. HSTS and Public Key Pinning with includeSubDomains flag set Clients that are using HSTS and public key pinning using includeSubDomains need to be able to determine whether a subdomain is properly within the policy realm of the parent. An application performing this operation must answer the question, "Should I accept the rules for using X as valid for Y.X?" This use case sounds like an inheritance type, but it is in fact an orphan type. Linking domains together for reporting purposes It can be useful when preparing reports to be able to count different domains as "the same thing". This is an example where special use of SOPA even across the DNS tree could be helpful. 4.2. Where SOPA Works Less Well Email authentication mechanisms Mail authentication mechanisms such as DMARC [RFC7489] need to be able to find policy documents for a domain name given a subdomain. This use case is an inheritance type. Because the point of mechanisms like DMARC is to prevent abuse, it is not possible to rely on the candidate owner name to report accurately its policy relationships. But some ancestor is possibly willing to make assertions about the policy under which that ancestor permits names in the name space. This sort of case can only use SOPA indirectly, via a static list that is composed over time by SOPA queries. Other mechanisms will likely better satisfy this need. 5. The SOPA Resource Record The SOPA resource record, type number [TBD1], contains two fields in its RDATA: Relation: A one-octet field used to indicate the relationship between the owner name and the target. Target: A field used to contain a fully-qualified domainname, relative to the root,name that is in some relationship with the owner name. This field is a maximum of 255 octets long, to match the possible length of a fully-qualified domain name. 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 3 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Relation | / +-+-+-+-+-+-+-+-+ / / Target / / / / / +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Figure 1 5.1. The Relation Field The relation field is REQUIRED and contains an indicator of the relationship between the owner name and the target name. This memo specifies two possible values: +-------+----------+------------------------------------------------+ | Value | Setting | Meaning | +-------+----------+------------------------------------------------+ |10 | Excluded | The target is not in the same policy realm as | | | | the owner name | |21 | Included | The target is in the same policy realm as the | | | | owner name | +-------+----------+------------------------------------------------+ Table 1 Additional values may be defined in future, according to the rules set out in Section 12. 5.2. The Target Field The target field contains a(fully-qualified)fully-qualified domain name, and is REQUIRED to be populated. The name MUST be a domain name according to the rules in [RFC1034] and [RFC1035], except that theleft-mostany label of the target MAY be the wildcard character("*").("*"; further discussion of wildcards is in Section 6.4). The target MUST be sent in uncompressed form[RFC1035][RFC1035], [RFC3597]. The target MUST NOT be an alias [RFC2181], such as the owner name of a CNAME RR [RFC1034], DNAME RR [RFC6672], or other similar such resource records. Note that this is a fully-qualified domain name, so the trailing null label is required. [[CREF4: This is a change from previous versions; previously, the target was a root-relative domain name. So it's now example.com. and used to be example.com (no trailing dot) when in presentation format. The new form makes this a domain name, whereas before it could really have been a text field. Not sure which is better. --ajs@anvilwalrusden.com]] The target nameMUSTSHOULD be either an ancestor, a descendent, or a sibling of the owner name in the record. This requirement is intended to limit the applicability of the SOPA RR to names in the same DNS hierarchy, thereby avoiding possible negative side effects of unbounded linkages across disparate DNS subtrees, including those subtrees rooted close to, or immediately below, the DNS root. In special uses, however, it may be desirable to link across the DNS tree. General-purpose clients MAY ignore target names that are neither an ancestor, nor a descendent, nor a sibling of the owner name in the record (and abort processing) in order to avoid the aforementioned negative side-effects. Targets MAY contain any series of octets, in order to accommodate labels other than LDH labels [RFC6365]. No processing of labels prior to matching targets is to be expected, however, and therefore internationalized domain name targets use whatever form they appear in the DNS. In particular, IDNA labels [RFC5890], [RFC5891], [RFC5892], [RFC5893], [RFC5894] SHOULD appear in A-label form. A SOPA-using client that receives a target containing octets outside LDH MUST NOT treat the affected labels as U-labels, because there is no way to discover whether the affected label is encoded as UTF-8 or something else. 6. Expressing Different Policies with the SOPA RRTYPE A SOPA RR has one of three different functions. The first is to claim that two domain names are not in the same policy realm ("exclusion"). The second is to claim that two domain names are in the same policy realm ("inclusion"). In both of these cases, it is possible to make the assertion over groups of DNS names. The third function describes a portion of the tree that would be covered by targets containing a wildcard, but where the policy is the opposite of that expressed with the wildcard. This is expressed simply by including the relevant specific exception. For example, all the subdomains under example.com could be indicated in a target "*.example.com". To express a different policy for exception.example.com than for the rest of the names under example.com requires two SOPA RRs, one with the target "*.example.com" andhethe other with the target "exception.example.com". The most-specific match to a target always wins. Is is important to note thatany given fully-qualifiedthe default setting is "exclusion". A domain name does not lie in anygivenother name's policy realm unless there is an explicit statement by appropriate SOPA resource record(s) to the contrary. If a candidatetargetname does not appear in the target of any SOPA record for some owner name, then that candidate target does not lie in the same policy realm as that owner name. It is acceptable for there to be more than one SOPA resource record per owner name in a response. Eachdomain name,RR in theRDATA of eachreturnedSOPA record,RRset is treated as a separate policy statement about the originalQNAME (query name).queried name (QNAME). Note, however, that the QNAMEfrom the querymight not be the owner name of the SOPA RR: if theoriginalQNAMEwasis an alias, then the actual SOPA owner name in the DNS database will bedifferent.different than the QNAME. In other words, even though a SOPA targetnamefield is not allowed to be an an alias,statements about an aliaswhen resolving the SOPA RR aliases arefollowedfollowed; and SOPA records are accepted transitively from thealiascanonical name back to thecanonical name.QNAME. 6.1. The Exclusion Relation A SOPA recordwith awhere the relation fieldwithhas value10 states that the owner name and the target name are not in the same policy realm. While thiswouldmight seemnot to be obviously usefuluseless (giventhat positive declarations are required for two names to be inthesame policy realm),default of exclude), a SOPA record with a relation field value of10 can be useful in combination with a long TTL field, in order to ensure long term caching of the policy. In addition, an important function of SOPA is to enable the explicit assertion that no other name lies in the same policy realm as the owner name (or, what is equivalent, that the owner name should be treated as a public suffix). In order to achieve this, the operator of the zone may use a wildcard target together with a relation field value of1.0. See Section 6.4. In addition, anexclusion relationmore-specific target can be used to override a more generalinclusion relationtarget (i.e. with a wildcard in the target) at the same owner name. For example, example.tld 86400 IN SOPA20 *.example.tldwww.example.tldexample.tld 86400 IN SOPA 1example.tldwww.example.tld A SOPA-using client that receives a SOPAresouceresource record with a relation value of10 MUST treat the owner name and the target name as lying in different policy realms. 6.2. The Inclusion Relation A SOPA record with a relation field set to21 is an indicator that the target name lies in the same policy realm as the owner name. In order to limit the scope of security implications, the target name and the owner nameMUSTSHOULD stand in someancestor-decendantancestor-descendant or sibling relationship to one another. A SOPA-using client that is not prepared for inclusion relationships outside the same branch of the DNS MAY ignore such relationships and treat them as though they did not exist. The left-most label of a target may be a wildcard record, in order to indicate that all descendant or sibling names lie in the same policy realm as the owner name. See Section 6.4. A SOPA-using client that receives a SOPAresouceresource record where relation is set to21 SHOULD treat the owner name and the target name as lying in the same policy realm. If a client does not, it is likely to experience unexpected failures because the client's policy expectations are not aligned with those of the service operator. 6.3. Interpreting DNS Responses There are three possible responses to a query for the SOPA RRTYPE at an owner name that are relevant to determining the policy realm. The first is Name Error (RCODE=3, also known as NXDOMAIN). In this case, the owner name itself does not exist, and no further processing is needed. The second is a No Data response [RFC2308] of any type. The No Data response means that the owner name in the QNAME does not recognize any other name as part of a common policy realm. That is, a No Data response is to be interpreted as though there were a SOPA resource record with relation value10 and a wildcard target. The TTL on the policy in this case is the negative TTL from the SOA record, in case it is available. The final is a response with one or more SOPA resource records in the Answer section. Each SOPA resource record asserts a relationship between the owner name and the target name, according to the functions of the SOPA RRTYPE outlined above. Any other response is no different from any other sort of response from the DNS, and is not in itself meaningful for determining the policy realm of a name (though it might be meaningful for finding the SOPA record). 6.4. Wildcards in Targets The special character "*" in the target field is used to match any label, but not according to the wildcard label rules in section 4.3.3 of [RFC1034]. Note that, because of the way wildcards work in the DNS, is it not possible to place a restriction to the left of a wildcard; so, for instance,example.*.example.comexample.*.example.com. does not work. In a SOPA target, it is possible to place such a restriction. In such use, a wildcard label matches exactly one label: example.*.example.com. matches the target example.foo.example.com. and example.bar.example.com., but not example.foo.bar.example.com. To match the latter, it would be necessary also to include example.*.*.example.com, which is also permitted in a target. This use of the wildcard is consistent with the use in <https://publicsuffix.org/list/>. If a SOPA target's first label is a wildcard label, the wildcard then matches any number of labels. Therefore, a target of *.example.com. matches both onelabel.example.com. and two.labels.example.com.; the second match would not be a match in the DNS. This use of the wildcard label does not match the public suffix list, but is included for brevity of RRsets for certain presumed-common cases. This rule is subject to more-specific matching (as discussed in Section 6.1 and Section 6.2). To simplify implementation, more-specific matches cannot have internal wildcards as described above. Theeffectreason for these differences in wildcard-character handling is because of the purpose of the wildcard character. In DNS matching, processing happens label by label proceeding down the tree, and the goal ismaintainedto find a match. But inthis memo.the case of SOPA, the candidate match is presumed available, because the application would not perform a SOPA look up if there were not a different target domain at hand. Therefore, strict conformance with the DNS semantics of the wildcard is not necessary. It is useful to be able to express potential matches as briefly as possible, to keep DNS response sizes small. Multiple leading wildcard labels (e.g. *.*.example.com.) is an error. An authoritative name server SHOULD NOT serve a SOPA RR with erroneous wildcards when it is possible to suppress them, and clients receiving such a SOPA RR MUST discard the RR. If the discarded RR is the last RR in the answer section of the response, then the response is treated as a No Data response. It is possible for the wildcard label to be the only label in the target name. In this case, the target is "every name". This makes it trivial for an owner name to assert that there are no other names in its policy realm. Because it would be absurd for there to be more than one SOPA RR with the samewildcardtarget (including wildcard target) in a SOPA RRset, a server encountering more than one suchwildcardtarget SHOULD only serve the RR for the exclusion relation, discarding others when possible. Discarding other RRs in the RRset is not possible when serving a signed RRset. A client receiving multiple wildcard targets in the RRset MUST use only the RR with relation set to1. When0. As already noted, when a SOPA RR with a wildcard target appears in the same RRset as a SOPA RR with a target that would be covered by the wildcard, the specific (non-wildcard) RR expresses the policy for that specific owner name/target pair. This way, exceptions to a generic policy can be expressed. 6.5. TTLs and SOPA RRs The TTL field in the DNS is used to indicate the period (in seconds) during which an RRset may be cached after first encountering it (see [RFC1034]). As is noted in Section3,4, however, SOPA RRs could be used to build something like the public suffix list, and that list would later be used by clients that might not themselves have access to SOPA DNS RRsets. In order to support that use as reliably as possible, a SOPA RR MAY continue to be used even after the TTL on the RRset has passed, until the next time that a SOPA RRset from the DNS for the owner name (or a No Data response) is available. It is preferable to fetch the more-current data in the DNS, and therefore if such DNS responses are available, a SOPA-aware client SHOULD use them. Note that the extension of the TTL when DNS records are not available does not extend to the use of the negative TTL field from No Data responses. 7. What Can be Done With a SOPA RR Use of a SOPA RR enables a site administrator to assert or deny relationships between names. By the same token, it permits a a consuming client to detect these assertions and denials. The use of SOPA RRs could either replace the public suffix list or(more(often more likely due to some limitations -- see Section 9) simplify and automate the management of the public suffix list. A client could use the responses to SOPA queries to refine its determinations about http cookie Domain attributes. In the absence of SOPA RRs at both owner names, a client might treat a Domain attribute as though it were omitted. More generally, SOPA RRs would permit additional steps similar to steps 4 and 5 in [RFC6265]. SOPA RRs might be valuable for certificate authorities when issuing certificates, because it would allow them to check whether two names are related in the way the party requesting the certificate claims they are. 7.1. Exclusion has Priority In order to minimize the chance of policy associations where none exist, this memo always assumes exclusion unless there is an explicit policy for inclusion. Therefore, a client processing SOPA records can stop as soon as it encounters an exclusion record: if a parent record excludes a child record, it makes no difference whether the child includes the parent in the policy realm, and conversely. By the same token, an inclusion SOPA record that specifies a target, where the target does not publish a corresponding inclusion SOPA record, is not effective. 8. An Example Case For the purposes of discussion, it will be useful to imagine a portion of the DNS, using the domain example.tld. A diagram of the tree of this portion is in Figure 2. In the example, the domain example.tld includes several other names: www.example.tld, account.example.tld, cust1.example.tld, cust2.example.tld, test.example.tld, cust1.test.example.tld, and cust2.test.example.tld. tld | | ------example ----- / / | \ \ / / | \ \ / www account \ cust2 test \ / \ cust1 cust1 cust2 Figure 2 In the example, the domain tld delegates the domain example.tld. There are other possible cut points in the example, and depending on whether the cuts exist there may be implications for the use of the examples. See Section 8.1, below. The (admittedly artificial) example permits us to distinguish a number of different roles. To begin with, there are three parties involved in the operation of services: o OperatorV, the operator of example.tld; o Operator1, the operator of cust1.example.tld; o Operator2, the operator of cust2.example.tld. Since there are three parties, there are likely three administrative boundaries as well; but the example contains some others. For instance, the names www.example.tld and example.tld are in this case in the same policy realm. By way of contrast, account.example.tld might be treated as completely separate, because OperatorV might wish to ensure that the accounts system is never permitted to share anything with any other name. By the same token, the names underneath test.example.tld are actually the test-instance sites for customers. So cust1.test.example.tld might be in the same policy realm as cust1.example.tld, but test.example.tld is certainly not in the same administrative realm as www.example.tld. Finally, supposing that Operator1 and Operator2 merge their operations, it seems that it would be useful for cust1.example.tld and cust2.example.tld to lie in the same policy realm, without including everything else in example.tld. 8.1. Examples of Using the SOPA Record for Determining Boundaries This section provides some examples of different configurations of the example tree in Section 8, above. The examples are not exhaustive, but may provide an indication of what might be done with the mechanism. 8.1.1. Declaring a Public Suffix Perhaps the most important function of the SOPA RR is to identify public suffixes. In this example, the operator of TLD publishes a single SOPA record: tld. 86400 IN SOPA1 *0 *. 8.1.2. One Delegation, Eight Administrative Realms, Wildcard Exclusions In this scenario, the example portion of the domain name space contains all and only the following SOPA records: example.tld. 86400 IN SOPA2 www.example.tld1 www.example.tld. www.example.tld. 86400 IN SOPA2 example.tld1 example.tld. Tld is the top-level domain, and has delegated example.tld. The operator of example.tld makes no delegations. There are four operators involved: the operator of tld; OperatorV; Operator1, the operator of the services at cust1.example.tld and cust1.test.example.tld; and Operator2, the operator of the services at cust2.example.tld and cust2.test.example.tld. In this arrangement, example.tld and www.example.tld positively claim to be within the same policy realm. Every other name stands alone. A query for an SOPA record at any of those other names will result in a No Data response, which means that none of them include any other name in the same policy realm. As a result, there are eight separate policy realms in this case: tld, {example.tld and www.example.tld}, test.example.tld, cust1.test.example.tld, cust2.test.example.tld, account.example.tld, cust1.example.tld, and cust2.example.tld. 8.1.3. One Delegation, Eight Administrative Realms, Exclusion Wildcards This example mostly works the same way as the one in Section Section 8.1.2, but there is a slight difference. In this case, in addition to the records listed in Section 8.1.2, both tld and test.example.tld publish exclusion of all names in their SOPA records: tld. 86400 IN SOPA1 *0 *. test.example.tld. 86400 IN SOPA1 *0 *. The practical effect of this is largely the same as the previous example, except that these expressions of policy last (at least) 86,400 seconds instead of the length of time on the negative TTL in the relevant SOA for the zone. Many zones have short negative TTLs because of expectations that newly-added records will show up quickly. This mechanism permits such names to express their administrative isolation for predictable minimum periods of time.Moreover,In addition, because clients are permitted to retain these records during periods when DNS service is not available, a client could go offline for several weeks, and return to service with the presumption that test.example.tld is still not in any policy realm with any other name. 9. Limitations of the approach and other considerations There are four significant problems with this proposal, all of which are related to using DNS to deliver the data. The first is that new DNS RRTYPEs are difficult to deploy. While adding a new RRTYPE is straightforward, many provisioning systems do not have the necessary support and some firewalls and other edge systems continue to filter RRTYPEs they do not know. This is yet another reason why this mechanism is likely to be initially more useful for constructing and maintaining the public suffix list than for real-time queries. The second is that it is difficult for an application to obtain data from the DNS. The TTL on an RRset, in particular, is usually not available to an application, even if the application uses the facilities of the operating system to deliver other parts of an unknown RRTYPE. The third, which is mostly a consequence of the above two, is that there is a significant barrier to adoption: until browsers have mostly all implemented this, operations need to proceed as though nobody has. But browsers will need to support two mechanisms for some period of time if they are to implement this mechanism at all, and they are unlikely to want to do that. This may mean that there is no reason to implement, which also means no reason to deploy. This is made worse because, to be safe, the mechanism really needs DNSSEC, and performing DNSSEC validation at end points is still an unusual thing to do. This limitation may not be as severe for use- cases that are directed higher in the network (such as using this mechanism as an automatic feed to keep the public suffix list updated, or for the use of CAs when issuing certificates). This limitation could be reduced by using SOPA records to maintain something like the current public suffix list in an automatic fashion. Fourth, in many environments the system hosting the application has only proxied access to the Internet, and cannot query the DNS directly. It is not clear how such clients could ever possibly retrieve the SOPA record for a name. 9.1. Handling truncation It is possible to put enough SOPA records into a zone such that the resulting response will exceed DNS or UDP protocol limits. In such cases, a UDP DNS response will arrive with the TC (truncation) bit set. A SOPA response with the TC bit must be queried again in order to retrieve a complete response, generally using TCP. This increases the cost of the query, increases the time to being able to use the answer, and may not work at all in networks where administrators mistakenly block port 53 using TCP. 10. Security Considerations This mechanism enables publication of assertions about administrative relationships of different DNS-named systems on the Internet. If such assertions are accepted without checking that both sides agree to the assertion, it would be possible for one site to become an illegitimate source for data to be consumed in some other site. In general, assertions about another name should never be accepted without querying the other name for agreement. Undertaking any of the inferences suggested in this draft without the use of the DNS Security Extensions exposes the user to the possibility of forged DNS responses. 11. Internationalization Considerations There is some discussion of how to treat targets that appear to have internationalized data in Section 5.2. Otherwise, this memo raises no internationalization considerations. 12. IANA Considerations IANA will be requested to register the SOPA RRTYPE if this proceeds.12.IANA will be requested to create a SOPA relation registry if this proceeds. The initial values are to be found in the table in Section 5.1. Registration rules should require a high bar, because it's a one-octet field. Maybe RFC required? 13. Acknowledgements The authors thank Adam Barth, Dave Crocker, Brian Dickson, Phillip Hallam-Baker, John Klensin, Murray Kucherawy, John Levine, Gervase Markham, Patrick McManus, Henrik Nordstrom, Yngve N. Pettersen, Eric Rescorla, Thomas Roessler, Peter Saint-Andre, and Maciej Stachowiak for helpful comments.13. Informative14. References[I-D.kucherawy-dmarc-base] Kucherawy, M., "Domain-based Message Authentication, Reporting and Conformance (DMARC)", draft-kucherawy-dmarc- base-00 (work14.1. Normative References [RFC2119] Bradner, S., "Key words for use inprogress),RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, DOI 10.17487/RFC2119, March2013. [I-D.pettersen-subtld-structure] Pettersen, Y., "The Public Suffix Structure file format1997, <http://www.rfc-editor.org/info/rfc2119>. 14.2. Informative References [I-D.sullivan-dbound-problem-statement] Sullivan, A., Hodges, J., andits use for Cookie domain validation",J. Levine, "DBOUND: DNS Administrative Boundaries Problem Statement", draft-pettersen-subtld-structure-09sullivan-dbound-problem-statement-01 (work in progress),March 2012.July 2015. [RFC1034] Mockapetris, P., "Domain names - concepts and facilities", STD 13, RFC 1034, DOI 10.17487/RFC1034, November1987.1987, <http://www.rfc-editor.org/info/rfc1034>. [RFC1035] Mockapetris, P., "Domain names - implementation and specification", STD 13, RFC 1035, DOI 10.17487/RFC1035, November1987. [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997.1987, <http://www.rfc-editor.org/info/rfc1035>. [RFC2181] Elz, R. and R. Bush, "Clarifications to the DNS Specification", RFC 2181, DOI 10.17487/RFC2181, July1997.1997, <http://www.rfc-editor.org/info/rfc2181>. [RFC2308] Andrews, M., "Negative Caching of DNS Queries (DNS NCACHE)", RFC 2308, DOI 10.17487/RFC2308, March1998.1998, <http://www.rfc-editor.org/info/rfc2308>. [RFC2782] Gulbrandsen, A., Vixie, P., and L. Esibov, "A DNS RR for specifying the location of services (DNS SRV)", RFC 2782, DOI 10.17487/RFC2782, February2000.2000, <http://www.rfc-editor.org/info/rfc2782>. [RFC3597] Gustafsson, A., "Handling of Unknown DNS Resource Record (RR) Types", RFC 3597, DOI 10.17487/RFC3597, September2003.2003, <http://www.rfc-editor.org/info/rfc3597>. [RFC3986] Berners-Lee, T., Fielding, R., and L. Masinter, "Uniform Resource Identifier (URI): Generic Syntax", STD 66, RFC 3986, DOI 10.17487/RFC3986, January2005.2005, <http://www.rfc-editor.org/info/rfc3986>. [RFC4033] Arends, R., Austein, R., Larson, M., Massey, D., and S. Rose, "DNS Security Introduction and Requirements", RFC 4033, DOI 10.17487/RFC4033, March2005.2005, <http://www.rfc-editor.org/info/rfc4033>. [RFC4034] Arends, R., Austein, R., Larson, M., Massey, D., and S. Rose, "Resource Records for the DNS Security Extensions", RFC 4034, DOI 10.17487/RFC4034, March2005.2005, <http://www.rfc-editor.org/info/rfc4034>. [RFC4035] Arends, R., Austein, R., Larson, M., Massey, D., and S. Rose, "Protocol Modifications for the DNS Security Extensions", RFC 4035, DOI 10.17487/RFC4035, March2005.2005, <http://www.rfc-editor.org/info/rfc4035>. [RFC4395] Hansen, T., Hardie, T., and L. Masinter, "Guidelines and Registration Procedures for New URI Schemes",BCP 35,RFC 4395, DOI 10.17487/RFC4395, February2006.2006, <http://www.rfc-editor.org/info/rfc4395>. [RFC5155] Laurie, B., Sisson, G., Arends, R., and D. Blacka, "DNS Security (DNSSEC) Hashed Authenticated Denial of Existence", RFC 5155, DOI 10.17487/RFC5155, March2008. [RFC6125] Saint-Andre, P. and J. Hodges, "Representation2008, <http://www.rfc-editor.org/info/rfc5155>. [RFC5890] Klensin, J., "Internationalized Domain Names for Applications (IDNA): Definitions andVerification of Domain-Based Application Service Identity within Internet Public Key Infrastructure Using X.509 (PKIX) CertificatesDocument Framework", RFC 5890, DOI 10.17487/RFC5890, August 2010, <http://www.rfc-editor.org/info/rfc5890>. [RFC5891] Klensin, J., "Internationalized Domain Names inthe Context of Transport Layer Security (TLS)",Applications (IDNA): Protocol", RFC6125, March 2011.5891, DOI 10.17487/RFC5891, August 2010, <http://www.rfc-editor.org/info/rfc5891>. [RFC5892] Faltstrom, P., Ed., "The Unicode Code Points and Internationalized Domain Names for Applications (IDNA)", RFC 5892, DOI 10.17487/RFC5892, August 2010, <http://www.rfc-editor.org/info/rfc5892>. [RFC5893] Alvestrand, H., Ed. and C. Karp, "Right-to-Left Scripts for Internationalized Domain Names for Applications (IDNA)", RFC 5893, DOI 10.17487/RFC5893, August 2010, <http://www.rfc-editor.org/info/rfc5893>. [RFC5894] Klensin, J., "Internationalized Domain Names for Applications (IDNA): Background, Explanation, and Rationale", RFC 5894, DOI 10.17487/RFC5894, August 2010, <http://www.rfc-editor.org/info/rfc5894>. [RFC6265] Barth, A., "HTTP State Management Mechanism", RFC 6265, DOI 10.17487/RFC6265, April2011.2011, <http://www.rfc-editor.org/info/rfc6265>. [RFC6335] Cotton, M., Eggert, L., Touch, J., Westerlund, M., and S. Cheshire, "Internet Assigned Numbers Authority (IANA) Procedures for the Management of the Service Name and Transport Protocol Port Number Registry", BCP 165, RFC 6335, DOI 10.17487/RFC6335, August2011.2011, <http://www.rfc-editor.org/info/rfc6335>. [RFC6365] Hoffman, P. and J. Klensin, "Terminology Used in Internationalization in the IETF", BCP 166, RFC 6365, DOI 10.17487/RFC6365, September 2011, <http://www.rfc-editor.org/info/rfc6365>. [RFC6672] Rose, S. and W. Wijngaards, "DNAME Redirection in the DNS", RFC 6672, DOI 10.17487/RFC6672, June2012. [publicsuffix.org] Mozilla Foundation, "Public Suffix List", also known as: Effective TLD (eTLD) List, .2012, <http://www.rfc-editor.org/info/rfc6672>. [RFC7489] Kucherawy, M., Ed. and E. Zwicky, Ed., "Domain-based Message Authentication, Reporting, and Conformance (DMARC)", RFC 7489, DOI 10.17487/RFC7489, March 2015, <http://www.rfc-editor.org/info/rfc7489>. [RFC7719] Hoffman, P., Sullivan, A., and K. Fujiwara, "DNS Terminology", RFC 7719, DOI 10.17487/RFC7719, December 2015, <http://www.rfc-editor.org/info/rfc7719>. Appendix A. Discussion Venue This Internet-Draft is discussedonin theapplications areadbound workinggroup mailing list: apps-discuss@ietf.org.group: dbound@ietf.org. Appendix B. Change History 00 to 01: * Changed the mnemonic from BOUND to AREALM * Added ports and scheme to the RRTYPE * Added some motivating text and suggestions about what can be done with the new RRTYPE * Removed use of "origin" term, because it was confusing. The document filename preserves "origin" in the name in order that the tracker doesn't lose the change history, but that's just a vestige. * Removed references to cross-document information sharing and ECMAScript. I don't understand the issues there, but Maciej Stachowiak convinced me that they're different enough that this mechanism probably won't work. * Attempted to respond to all comments received. Thanks to the commenters; omissions and errors are mine. 01 to 02: * Changed mnemonic again, from AREALM to SOPA. This in response to observation by John Klensin that anything using "administrative" risks confusion with the standard administrative boundary language of zone cuts. * Add discussion of two strategies: name-only or scheme-and-port. * Increase prominence of utility to CAs. This use emerged in last IETF meeting. 02 to 03: * Removed discussion of scheme-and-port, which was confusing. * Add inclusion/exclusion/exception approach in response to comment by Phill H-B. * Change mechanism for indicating "no others" to a wildcard mechanism. * Added better discussion of use cases 03 to 00: * Renamed file to get rid of "origin", which caused confusion. * Added Jeff as co-author * Remove exception relation; instead, more than one RR is allowed. * Added discussion of SRV records 00 to 01: * Failed to include change control entry * Modest rearrangement of text, little improvement 01 to 02: * Significant rearrangement of sections * Large removal of text (moved to problem statement document) * Considerably more detail in specification, including more rigorous description of RRTYPE * Altered handling of wildcard targets * Attempt to improve overview to make it plainer what the system does * Clarify what use cases really work * Reversion to permit cross-tree use, with deployment warnings that it won't be useful Authors' Addresses Andrew Sullivan Dyn, Inc. 150 Dow St Manchester, NH 03101 U.S.A. Email: asullivan@dyn.com Jeff Hodges PayPal 2211 North First Street San Jose, California 95131 US Email: Jeff.Hodges@PayPal.com