Network Working Group A. Sullivan
Internet-Draft Dyn, Inc.
Intended status: Informational July 16, 2012
Expires: January 17, 2013
Asserting DNS Administrative Boundaries Within DNS Zones
draft-sullivan-domain-origin-assert-01
Abstract
Some clients on the Internet make inferences about the administrative
relationships among servers on the Internet based on the domain names
of those servers. Perhaps unfortunately, it is not currently
possible to detect the real administrative boundaries in the DNS, and
therefore such inferences can go wrong in several ways. Mitigation
strategies deployed so far will not scale. The solution to this is
to provide a way to make an explicit assertion about the
relationships between services provided at different 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 on January 17, 2013.
Copyright Notice
Copyright (c) 2012 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
Sullivan Expires January 17, 2013 [Page 1]
Internet-Draft Asserting DNS Boundaries July 2012
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. Motivation . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2. Background, terminology, and organization of this memo . . . . 5
3. Overview of mechanism . . . . . . . . . . . . . . . . . . . . 5
4. The AREALM Resource Record . . . . . . . . . . . . . . . . . . 6
5. Use of the AREALM RRTYPE . . . . . . . . . . . . . . . . . . . 6
5.1. Special target labels . . . . . . . . . . . . . . . . . . 8
5.1.1. The root target . . . . . . . . . . . . . . . . . . . 8
5.1.2. Wildcards in targets . . . . . . . . . . . . . . . . . 8
5.2. What can be done with an AREALM RR . . . . . . . . . . . . 8
6. An example case . . . . . . . . . . . . . . . . . . . . . . . 9
6.1. Examples of using the AREALM record for determining
boundaries . . . . . . . . . . . . . . . . . . . . . . . . 10
6.1.1. One delegation, eight administrative realms, no
root target . . . . . . . . . . . . . . . . . . . . . 10
6.1.2. One delegation, eight administrative realms, root
targets . . . . . . . . . . . . . . . . . . . . . . . 11
6.1.3. Two delegations, seven or eight administrative
realms, root targets . . . . . . . . . . . . . . . . . 11
7. Limitations of the approach and other considerations . . . . . 12
7.1. Handling truncation . . . . . . . . . . . . . . . . . . . 13
8. Security Considerations . . . . . . . . . . . . . . . . . . . 13
9. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 13
10. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 13
11. References . . . . . . . . . . . . . . . . . . . . . . . . . . 14
11.1. Normative References . . . . . . . . . . . . . . . . . . . 14
11.2. Informative References . . . . . . . . . . . . . . . . . . 14
Appendix A. Discussion Venue . . . . . . . . . . . . . . . . . . 15
Appendix B. Change History . . . . . . . . . . . . . . . . . . . 15
Author's Address . . . . . . . . . . . . . . . . . . . . . . . . . 16
Sullivan Expires January 17, 2013 [Page 2]
Internet-Draft Asserting DNS Boundaries July 2012
1. Motivation
Many network resources are accessed primarily by name. DNS names
make up the bulk of those names. As a result, DNS names have become
fundamental elements in building security policies and user agent
behaviour. For example, domain names are used in attempts to
determine the scope for data sharing of HTTP state management cookies
[RFC6265] . The idea is to foil the attempts of attackers in (for
example) attackersite.co.tld from setting cookies for everyone in
co.tld.
Another example policy is a user interface convention that purports
to display the "real" domain name differently from other parts of the
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 name is inside "attackersite.tld", in the hope of thereby
reducing the user's impression of visiting "www.bank.example.com".
Issuers of X.509 certificates make judgements about administrative
boundaries around domains when issuing the certificates. For some
discussion of the relationship between DNS names and X.509
certificates, see [RFC6125].
One way to build a reasonable policy 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.
Such an approach can be awkward, however, when (as is often the case)
the real administrative boundary is a shared one (in this example,
example.org). Therefore, clients have attempted to make more
sophisticated policies.
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 too naive, and later attempts were
based on inferences from the DNS names themselves. That did not work
well, because there is no way in the DNS to discover the boundaries
of administrative control around domain names.
Some have attempted to use the boundary of zone cuts (i.e. the
location of the zone's apex, which is at the SOA record; see
[RFC1034] and [RFC1035]). Unfortunately, that boundary is neither
necessary nor sufficient for these purposes: it is possible for a
large site to have many, administratively distinct subdomain-named
sites without inserting an SOA record, and it is also possible that
an administrative entity (like a company) might divide its domain up
into different zones for administrative reasons unrelated to the
purposes of sites named in that domain. It was also, prior to the
Sullivan Expires January 17, 2013 [Page 3]
Internet-Draft Asserting DNS Boundaries July 2012
advent of DNSSEC, difficult to find zone cuts. Regardless, the
location of a zone cut is an administrative matter to do with the
operation of the DNS itself, and not useful for determining
relationships among services offered at names in the DNS.
What appears to be needed is a mechanism to determine administrative
boundaries in the DNS. That is, given services at two domain names,
one needs to be able to answer whether the first and the second are
under the same administrative control and same administrative
policies. We may call this state of affairs "lying within the same
administrative realm". We may suppose that, if this information 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 (henceforth,
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 most of them do. The reason for the public suffix list is
to make the distinction between names that must never be treated as
being in the same administrative realm as another, and those that
might be so treated. For instance, if "com" is on the public suffix
list, that means that "example.com" lies in an administrative realm
distinct from that of .com.
Unfortunately, the public suffix list has several inherent
limitations. To begin with, it is a list that is separately
maintained from the list of DNS delegations. As a result, the data
in the public suffix list can diverge from the actual use of the DNS.
Second, because its semantics are not the same as those of the DNS,
it does not capture unusual features of the DNS that are a
consequence of its structure (see [RFC1034] for background on that
structure). Third, as the size of the root zone grows, keeping the
list both accurate and synchronized with the expanding services will
become difficult and unreliable. Perhaps most importantly, it puts
the power of assertion about the operational policies of a domain
outside the control of the operators of that domain, and in the
control of a third party possibly unrelated to those operators.
There have been suggestions for improvements 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
Sullivan Expires January 17, 2013 [Page 4]
Internet-Draft Asserting DNS Boundaries July 2012
they represent improvements on the fundamental mechanism of keeping
metadata about the DNS tree apart from the DNS tree itself.
2. Background, terminology, and organization of this memo
The reader is assumed to be familiar with the DNS ([RFC1034]
[RFC1035]) and DNSSEC ([RFC4033] [RFC4034] [RFC4035] [RFC5155]).
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 in RFC 2119 [RFC2119].
Section 3 describes the mechanism in general terms. The formal
definition of the new RRTYPE is in Section 4, and some general
discussion of the use of the RRTYPE is in Section 5. Then, Section 6
offers an example portion of a DNS tree that can be used to
understand the ways in which the mechanism can be used to draw
inferences about administrative relationships. Section 7 notes some
limitations of the mechanism. Section 8 outlines how the mechanism
might be used securely.
3. Overview of mechanism
This memo presents a way to assert a common administrative realm by
placing a resource record (RR) at DNS names within the administrative
realm. The mechanism requires a new resource record type (RRTYPE) to
enable these assertions, called AREALM (for Administrative REALM).
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 other purposes. 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 AREALM RRTYPE is class-
independent.
While many policies of the sort discussed in Section 1 appear to be
based on domain names, they are actually only partly based on them.
Usually, there are implicit rules that come from the destination port
[RFC6335] or scheme [RFC4395] (or both) in use. The mechanism
described in this memo makes those assumptions explicit. It provides
a way to cover ranges of ports with a single resource record, and to
cover all schemes and ports with a single resource record. It does
not, however, permit arbitrary combinations of destination point and
schemes without using more than one RR.
Sullivan Expires January 17, 2013 [Page 5]
Internet-Draft Asserting DNS Boundaries July 2012
4. The AREALM Resource Record
The AREALM resource record, type number [TBD1], includes the
following fields:
Name: The owner name of the RR.
TTL: The time to live for the RR.
Class: The CLASS for the RR. As of this writing, on the
contemporary Internet this is almost always "IN", but the AREALM
RR is class-independent.
AREALM: The RRTYPE field.
Starting port: The port number that begins the range to which this
AREALM RR applies. This is a 16 bit unsigned integer in network
byte order. The range is 0-65535.
Ending port: The port number that ends the range for which this
AREALM RR applies. This is a 16 bit unsigned integer in network
byte order. The range is 0-65535.
Scheme: The scheme to which the AREALM RR applies. The scheme
SHOULD be listed in the IANA Uniform Resource Identifier (URI)
Schemes registry [1]. [[anchor2: This is "SHOULD" right now, but I
think it should be "MUST". I can't think of a reason why not to
make it MUST. --ajs@anvilwalrusden.com]] Alternatively, the field
may contain the special value "*", in which case the AREALM RR
applies to all schemes, with a limitation: some clients use
certain schemes only for internal operations, and regardless of
whether those schemes are included in an AREALM RR, they MAY be
ignored.
Target: A DNS name relative to the root that is in the same
administrative realm as the AREALM RR's owner name. The name MUST
be a DNS name according to the rules in [RFC1034] and [RFC1035],
except that the left-most label of the target MAY be the wildcard
character ("*"). In addition, the target may be "."; in that
case, the RR asserts that there are no other names in the same
administrative realm. For further discussion, see Section 5.1.
The target MUST NOT be an alias [RFC2181], such as the owner name
of a CNAME [RFC1034], DNAME [RFC6672], or other similar such
resource records.
The AREALM RRTYPE's wire format is as follows:
[[anchor3: To follow if this idea turns out worth pursuing. It can
be derived from above, however. --ajs@anvilwalrusden.com]]
5. Use of the AREALM RRTYPE
AREALM RRs have, in effect, three different functions. The simplest
is to make an assertion that two DNS names are in the same
administrative realm. If the Starting Port is 0, the Ending Port is
Sullivan Expires January 17, 2013 [Page 6]
Internet-Draft Asserting DNS Boundaries July 2012
65535, the Scheme is "*", and the Target is anything other than ".",
then the AREALM record makes a claim that the owner name and the
target name are in the same administrative realm in every case.
The second is to make an assertion that two DNS names are in the same
administrative realm, but only for some subset of ports or schemes or
both. There is a 1:1 port mapping presumed in the way the AREALM RR
is structured, such that it is not possible to say that port N at the
owner name is related to port M at the target name. This is an
expedient for simplicity. For the same reasons of simplicity, the
AREALM RR permits linking all schemes between names, or else one
scheme; a given RR does not permit listing more than one scheme
without using the wildcard selector.
The third function is to make an assertion that no other name lies in
the same administrative realm as the owner name. If there are names
beneath that owner name, this is a way for a DNS operator to assert
that the owner name is a public suffix. For more details, see
Section 5.1.
There could be more than one AREALM resource record per owner name in
a response. Each domain name in the RDATA is treated as a part of
the same administrative realm as the owner name in the original
QNAME, subject to the qualifications of scheme and port contained in
the AREALM RR. The QNAME from the query might not be the owner name
of the AREALM RR: if the original QNAME was an alias, then the AREALM
owner name will be different.
There are three possible responses to a query for the AREALM RRTYPE
at an owner name that are relevant to determining the administrative
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 administrative realm.
The final is a response with one or more AREALM resource records in
the Answer section. Each AREALM resource record asserts a
relationship between the owner name and the target name, according to
the functions of the AREALM 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
administrative realm of a name (though it might be meaningful for
finding the AREALM record).
Sullivan Expires January 17, 2013 [Page 7]
Internet-Draft Asserting DNS Boundaries July 2012
5.1. Special target labels
5.1.1. The root target
An AREALM resource record with the single character "." (called the
"root target") in the RDATA is a positive assertion that no other
domain name falls inside the administrative realm of the owner name.
The record has a special use: it may be used to bootstrap operation.
A client that has encountered the root target may remember the
existence of the root target even after the expiry of the TTL on the
RRset, until such time as a new query for the owner name may be made
successfully. This rule permits implementations to cache positive
statements of administrative isolation during disconnected periods,
thereby starting a subsequent session with the values of prior
affirmed policy. Apart from this bootstrapping use, and the ability
of such an RR to have a TTL independent of the negative TTL value for
the zone, this mechanism is semantically equivalent to a No Data
response.
It would be absurd for the root target for any given schema to exist
with any other AREALM resource record at that owner name. An
authoritative name server MAY refuse to serve a zone containing such
an inconsistency, MAY refuse to load a zone containing such an
inconsistency, or MAY suppress every AREALM RR at an owner name and
schema except that containing the root target. The name server side
of a recursive resolver MAY discard every AREALM RR at an owner name
except that containing the root target. Conforming servers MUST NOT
serve the root target and any other AREALM RR at the same owner name.
Clients receiving a AREALM RRset that includes the root target MUST
accept that RR, and discard any other RR in the RRset.
5.1.2. Wildcards in targets
The special character "*" in the Target field is used to match any
label, 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.com does not work. The effect is
maintained in this memo. An authoritative name server MUST NOT serve
an AREALM RR with erroneous wildcards, and clients receiving such an
AREALM 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.
5.2. What can be done with an AREALM RR
Use of an AREALM RR enables a site administrator to assert or deny
relationships between names. By the same token, it permits a a
Sullivan Expires January 17, 2013 [Page 8]
Internet-Draft Asserting DNS Boundaries July 2012
consuming client to detect these assertions and denials.
Some of these relationships are currently impossible to indicate in
the DNS. For example, IDN character variants (see [RFC4290]) result
in situations where multiple labels are sometimes intended to be
treated as though they are the same. Without a mechanism for binding
the names together even loosely, such a goal cannot be achieved.
The use of AREALM RRs could either replace the public suffix list or
(more likely due to some limitations -- see Section 7) simplify and
automate the management of the public suffix list. A client could
use the responses to AREALM queries to refine its determinations
about http cookie Domain attributes. In the absence of AREALM RRs at
both owner names, a client might treat a Domain attribute as though
it were omitted. More generally, AREALM RRs would permit additional
steps similar to steps 4 and 5 in [RFC6265].
6. 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 1. 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 1
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 6.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:
Sullivan Expires January 17, 2013 [Page 9]
Internet-Draft Asserting DNS Boundaries July 2012
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 administrative 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
administrative 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 administrative realm,
without including everything else in example.tld.
6.1. Examples of using the AREALM record for determining boundaries
This section provides some examples of different configurations of
the example tree in Section 6, above. The examples are not
exhaustive, but may provide an indication of what might be done with
the mechanism. [[anchor4: This needs to have examples of using the
ports and scheme added to it. Suggestions welcome. Also, I think
some examples could be made longer to make them clearer. Maybe
complete zone files in presentation form in an appendix?
--ajs@anvilwalrusden.com]]
6.1.1. One delegation, eight administrative realms, no root target
In this scenario, the example portion of the DNS name space contains
all and only the following AREALM records:
example.tld 86400 IN AREALM 0 65535 * www.example.tld
www.example.tld 86400 IN AREALM 0 65535 * 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
Sullivan Expires January 17, 2013 [Page 10]
Internet-Draft Asserting DNS Boundaries July 2012
to be within the same administrative realm. Every other name stands
alone. A query for an AREALM 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 administrative realm. As a result, there
are eight separate administrative 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.
6.1.2. One delegation, eight administrative realms, root targets
This example mostly works the same way as the one in Section
Section 6.1.1, but there is a slight difference. In this case, in
addition to the records listed in Section 6.1.1, both tld and
test.example.tld publish root targets in their AREALM records:
tld 86400 0 65535 * IN AREALM .
test.example.tld 86400 0 65535 * IN AREALM .
The practical effect of this is largely the same, except that these
expressions of policy last 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
periods of time. Moreover, 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
administrative realm with any other name.
6.1.3. Two delegations, seven or eight administrative realms, root
targets
In this scenario, example.tld delegates the name test.example.tld.
In this case, in addition to the AREALM record at test.example.tld,
there is an SOA record for test.example.tld. So, there are the same
AREALM records as in Section 6.1.2. The addition of the SOA record
for test.example.tld does not affect the relationship between
test.example.tld and example.tld. At this point, there are eight
administrative realms.
Next, the Operator1 determines that it is safe to treat the test
instance and production instance as being in the same administrative
realm. To begin with, Operator1 asks OperatorV to add the following
record to the test.example.tld zone:
Sullivan Expires January 17, 2013 [Page 11]
Internet-Draft Asserting DNS Boundaries July 2012
cust1.test.example.tld 86400 IN AREALM 0 65535 * cust1.example.tld
This arrangement is not complete yet. Until a record is also added
at cust1.example.tld, Operator1's intention is only half fulfilled.
The service at cust1.test.example.tld treats cust1.example.tld as
part of a common administrative realm, but the converse is not the
case. [[anchor5: I can't decide whether there's anything useful in
this configuration. Thoughts? I also can't decide whether this is
still 8 admin realms, 7 admin realms but broken, or 7 admin realms
from one perspective and 8 from another. --ajs@anvilwalrusden.com]]
To complete the process, Operator1 asks OperatorV to add the
following record to the example.tld zone:
cust1.example.tld 86400 IN AREALM 0 65535 * cust1.test.example.tld
Once this is complete, both names treat the other as part of the same
administrative realm. In the end, the example segment of the DNS
expresses the following seven administrative realms: tld,
{example.tld, www.example.tld}, test.example.tld,
{cust1.test.example.tld, cust1.example.tld}, cust2.example.tld,
account.example.tld, cust2.test.example.tld.
7. 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.
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.
Sullivan Expires January 17, 2013 [Page 12]
Internet-Draft Asserting DNS Boundaries July 2012
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.
Finally, 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 AREALM record for a name.
7.1. Handling truncation
It is possible to put enough AREALM 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. An AREALM response with the TC bit must be queried again in
order to retrieve a complete response, in order to ensure that there
is no missing root target (see Section 5.1.1).
8. 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.
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.
9. IANA Considerations
IANA will be requested to register the AREALM RRTYPE if this
proceeds.
10. Acknowledgements
The author thanks Adam Barth, Dave Crocker, Jeff Hodges, Murray
Kucherawy, Gervase Markham, Patrick McManus, Henrik Nordstrom, Yngve
N. Pettersen, Eric Rescorla, Thomas Roessler, Peter Saint-Andre, and
Maciej Stachowiak for helpful comments.
11. References
Sullivan Expires January 17, 2013 [Page 13]
Internet-Draft Asserting DNS Boundaries July 2012
11.1. Normative References
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, March 1997.
[RFC4033] Arends, R., Austein, R., Larson, M., Massey, D., and S.
Rose, "DNS Security Introduction and Requirements",
RFC 4033, March 2005.
[RFC4034] Arends, R., Austein, R., Larson, M., Massey, D., and S.
Rose, "Resource Records for the DNS Security Extensions",
RFC 4034, March 2005.
[RFC4035] Arends, R., Austein, R., Larson, M., Massey, D., and S.
Rose, "Protocol Modifications for the DNS Security
Extensions", RFC 4035, March 2005.
[RFC5155] Laurie, B., Sisson, G., Arends, R., and D. Blacka, "DNS
Security (DNSSEC) Hashed Authenticated Denial of
Existence", RFC 5155, March 2008.
11.2. Informative References
[I-D.pettersen-subtld-structure]
Pettersen, Y., "The Public Suffix Structure file format
and its use for Cookie domain validation",
draft-pettersen-subtld-structure-09 (work in progress),
March 2012.
[RFC1034] Mockapetris, P., "Domain names - concepts and facilities",
STD 13, RFC 1034, November 1987.
[RFC1035] Mockapetris, P., "Domain names - implementation and
specification", STD 13, RFC 1035, November 1987.
[RFC2181] Elz, R. and R. Bush, "Clarifications to the DNS
Specification", RFC 2181, July 1997.
[RFC2308] Andrews, M., "Negative Caching of DNS Queries (DNS
NCACHE)", RFC 2308, March 1998.
[RFC4290] Klensin, J., "Suggested Practices for Registration of
Internationalized Domain Names (IDN)", RFC 4290,
December 2005.
[RFC4395] Hansen, T., Hardie, T., and L. Masinter, "Guidelines and
Registration Procedures for New URI Schemes", BCP 35,
RFC 4395, February 2006.
Sullivan Expires January 17, 2013 [Page 14]
Internet-Draft Asserting DNS Boundaries July 2012
[RFC6125] Saint-Andre, P. and J. Hodges, "Representation and
Verification of Domain-Based Application Service Identity
within Internet Public Key Infrastructure Using X.509
(PKIX) Certificates in the Context of Transport Layer
Security (TLS)", RFC 6125, March 2011.
[RFC6265] Barth, A., "HTTP State Management Mechanism", RFC 6265,
April 2011.
[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, August 2011.
[RFC6672] Rose, S. and W. Wijngaards, "DNAME Redirection in the
DNS", RFC 6672, June 2012.
URIs
[1] <http://www.iana.org/assignments/uri-schemes.html>
Appendix A. Discussion Venue
This Internet-Draft is discussed on the applications area working
group mailing list: apps-discuss@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.
Sullivan Expires January 17, 2013 [Page 15]
Internet-Draft Asserting DNS Boundaries July 2012
Author's Address
Andrew Sullivan
Dyn, Inc.
150 Dow St
Manchester, NH 03101
U.S.A.
Email: asullivan@dyn.com
Sullivan Expires January 17, 2013 [Page 16]