draft-josefsson-dns-url-09.txt | draft-josefsson-dns-url-10.txt | |||
---|---|---|---|---|
Network Working Group S. Josefsson | Network Working Group S. Josefsson | |||
Expires: April 25, 2004 | Expires: March 3, 2005 | |||
Domain Name System Uniform Resource Identifiers | Domain Name System Uniform Resource Identifiers | |||
draft-josefsson-dns-url-09 | draft-josefsson-dns-url-10 | |||
Status of this Memo | Status of this Memo | |||
This document is an Internet-Draft and is in full conformance with | This document is an Internet-Draft and is subject to all provisions | |||
all provisions of Section 10 of RFC2026. | of section 3 of RFC 3667. By submitting this Internet-Draft, each | |||
author represents that any applicable patent or other IPR claims of | ||||
which he or she is aware have been or will be disclosed, and any of | ||||
which he or she become aware will be disclosed, in accordance with | ||||
RFC 3668. | ||||
Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
Task Force (IETF), its areas, and its working groups. Note that other | Task Force (IETF), its areas, and its working groups. Note that | |||
groups may also distribute working documents as Internet-Drafts. | other groups may also distribute working documents as | |||
Internet-Drafts. | ||||
Internet-Drafts are draft documents valid for a maximum of six months | Internet-Drafts are draft documents valid for a maximum of six months | |||
and may be updated, replaced, or obsoleted by other documents at any | and may be updated, replaced, or obsoleted by other documents at any | |||
time. It is inappropriate to use Internet-Drafts as reference | time. It is inappropriate to use Internet-Drafts as reference | |||
material or to cite them other than as "work in progress." | material or to cite them other than as "work in progress." | |||
The list of current Internet-Drafts can be accessed at http:// | The list of current Internet-Drafts can be accessed at | |||
www.ietf.org/ietf/1id-abstracts.txt. | http://www.ietf.org/ietf/1id-abstracts.txt. | |||
The list of Internet-Draft Shadow Directories can be accessed at | The list of Internet-Draft Shadow Directories can be accessed at | |||
http://www.ietf.org/shadow.html. | http://www.ietf.org/shadow.html. | |||
This Internet-Draft will expire on April 25, 2004. | This Internet-Draft will expire on March 3, 2005. | |||
Copyright Notice | Copyright Notice | |||
Copyright (C) The Internet Society (2003). All Rights Reserved. | Copyright (C) The Internet Society (2004). | |||
Abstract | Abstract | |||
This document define Uniform Resource Identifiers for Domain Name | This document define Uniform Resource Identifiers for Domain Name | |||
System resources. | System resources. | |||
Table of Contents | Table of Contents | |||
1. Introduction and Background . . . . . . . . . . . . . . . . . 3 | 1. Introduction and Background . . . . . . . . . . . . . . . . . 3 | |||
2. DNS URI Registration . . . . . . . . . . . . . . . . . . . . . 4 | 2. DNS URI Registration . . . . . . . . . . . . . . . . . . . . . 4 | |||
3. Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 | 3. Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 | |||
4. Security Considerations . . . . . . . . . . . . . . . . . . . 8 | 4. Security Considerations . . . . . . . . . . . . . . . . . . . 8 | |||
5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 8 | 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 8 | |||
Normative References . . . . . . . . . . . . . . . . . . . . . 9 | 6. References . . . . . . . . . . . . . . . . . . . . . . . . . . 9 | |||
Informative References . . . . . . . . . . . . . . . . . . . . 9 | 6.1 Normative References . . . . . . . . . . . . . . . . . . . . 9 | |||
6.2 Informative References . . . . . . . . . . . . . . . . . . . 9 | ||||
Author's Address . . . . . . . . . . . . . . . . . . . . . . . 10 | Author's Address . . . . . . . . . . . . . . . . . . . . . . . 10 | |||
A. Revision Changes . . . . . . . . . . . . . . . . . . . . . . . 10 | A. Revision Changes . . . . . . . . . . . . . . . . . . . . . . . 10 | |||
A.1 Changes since -06 . . . . . . . . . . . . . . . . . . . . . . 10 | A.1 Changes since -06 . . . . . . . . . . . . . . . . . . . . 10 | |||
A.2 Changes since -07 . . . . . . . . . . . . . . . . . . . . . . 10 | A.2 Changes since -07 . . . . . . . . . . . . . . . . . . . . 10 | |||
A.3 Changes since -08 . . . . . . . . . . . . . . . . . . . . . . 10 | A.3 Changes since -08 . . . . . . . . . . . . . . . . . . . . 11 | |||
A.4 Changes since -09 . . . . . . . . . . . . . . . . . . . . 11 | ||||
Intellectual Property and Copyright Statements . . . . . . . . 12 | Intellectual Property and Copyright Statements . . . . . . . . 12 | |||
1. Introduction and Background | 1. Introduction and Background | |||
The Domain Name System (DNS) [1][2] is a widely deployed system used | The Domain Name System (DNS) [1][2] is a widely deployed system used | |||
to, among other things, translate host names into IP addresses. | to, among other things, translate host names into IP addresses. | |||
Recent work has added support for storing certificates and | Recent work has added support for storing certificates and | |||
certificate revocation lists in the DNS [10]. | certificate revocation lists (CRLs) in the DNS [9]. Several | |||
protocols use Uniform Resource Locators (URLs) to point at | ||||
The primary motivation behind defining a Uniform Resource Identifier | certificates and CRLs. By defining a Uniform Resource Identifier | |||
(URI) for DNS resources, instead of using another non-URI syntax that | (URI) scheme for DNS resources, such protocols can reference | |||
embed the domain, type value and class value, is that applications | certificates and CRLs stored in the DNS. | |||
that stores or retrieve certificates today uses URIs for this | ||||
purpose. Thus, defining a URI scheme for DNS resources allows these | ||||
existing protocols to be used with certificates in the DNS without | ||||
having to add DNS specific modifications to said protocols. In order | ||||
to not introduce interoperability or security considerations, | ||||
protocols that uses these URIs naturally must have been written to | ||||
allow for future, as of writing yet undefined, URIs to be used. | ||||
A few examples of protocols that may utilize DNS URIs: | A few examples of protocols that may utilize DNS URIs: | |||
o The OpenPGP Message Format [8], where an end-user may indicate the | o The OpenPGP Message Format [7], where an end-user may indicate the | |||
location of a copy of any updates to her key, using the "preferred | location of a copy of any updates to her key, using the "preferred | |||
key server" field. | key server" field. | |||
o The X.509 Online Certificate Status Protocol [11], where the OCSP | o The X.509 Online Certificate Status Protocol [10], where the OCSP | |||
responder can indicate where a CRL is found, using the | responder can indicate where a CRL is found, using the | |||
id-pkix-ocsp-crl extension. | id-pkix-ocsp-crl extension. | |||
The DNS URI scheme defined here can, of course, be used to reference | The DNS URI scheme defined here can be used to reference any data | |||
any DNS data, and is not limited to only certificates. The purpose | stored in the DNS, and is not limited to certificates or CRLs. The | |||
of this specification is to define a generic DNS URI, not a specific | purpose of this specification is to define a generic DNS URI, not to | |||
DNS solution for certificates stored in the DNS. Browsers may | specify a solution only for certificates stored in the DNS. | |||
implement support for DNS URIs by forming DNS queries and render DNS | ||||
responses using HTML [14], similar to what is done for the FTP [5]. | ||||
The core part of this document is the URI Registration Template | Data browsers may support DNS URIs by forming DNS queries and render | |||
according to [13]. | DNS responses using HTML [13], similar to what is commonly done for | |||
FTP [5] resources. | ||||
The core part of this document is the URI Registration Template in | ||||
accordance with [12]. | ||||
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | |||
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this | "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this | |||
document are to be interpreted as described in RFC 2119 [6]. | document are to be interpreted as described in RFC 2119 [6]. | |||
2. DNS URI Registration | 2. DNS URI Registration | |||
URL scheme name: "dns". | URL scheme name: "dns". | |||
URL scheme syntax: A DNS URI designates a DNS resource record set | URL scheme syntax: A DNS URI designate a DNS resource record set, | |||
that can be referenced by domain name, type, class and optionally the | referenced by domain name, class, type and optionally the authority. | |||
authority. The DNS URI follows the generic syntax from RFC 2396 [4], | The DNS URI follows the generic syntax from RFC 2396 [4], and is | |||
and is described using ABNF [3]. Strings are not case sensitive and | described using ABNF [3]. Strings are not case sensitive and free | |||
free insertion of linear-white-space is not permitted. | insertion of linear-white-space is not permitted. | |||
dnsurl = "dns:" [ "//" dnsauthority "/" ] dnsname ["?" dnsquery] | dnsurl = "dns:" [ "//" dnsauthority "/" ] dnsname ["?" dnsquery] | |||
dnsauthority = hostport | dnsauthority = hostport | |||
; See RFC 2396 for "hostport" definition. | ; See RFC 2396 for "hostport" definition. | |||
dnsname = *pchar | dnsname = *pchar | |||
; See RFC 2396 for "pchar" definition. | ; See RFC 2396 for "pchar" definition. | |||
; NB! Can be empty. | ||||
; The "dnsname" field may be a "relative" | ||||
; or "absolute" name, as per RFC 1034 | ||||
; section 3.1. | ||||
; Note further that an empty "dnsname" | ||||
; value is to be interpreted as the | ||||
; root itself. See below on relative | ||||
; dnsname's. | ||||
dnsquery = dnsqueryelement [";" dnsquery] | dnsquery = dnsqueryelement [";" dnsquery] | |||
; First matching element MUST be used. | ||||
; E.g., dns:host.example.org?TYPE=A;TYPE=TXT | ||||
; means type A. | ||||
dnsqueryelement = ( "CLASS=" dnsclassval ) / ( "TYPE=" dnstypeval ) / | dnsqueryelement = ( "CLASS=" dnsclassval ) / ( "TYPE=" dnstypeval ) | |||
( 1*alphanum "=" 1*alphanum ) | ; Each clause MUST NOT be used more than | |||
; once. | ||||
dnsclassval = 1*digit / "IN" / "CH" / ... | dnsclassval = 1*digit / "IN" / "CH" / ... | |||
; Any IANA registered DNS class expressed as | ; Any IANA registered DNS class expressed | |||
; mnemonic or as decimal integer. | ; as mnemonic or as decimal integer. | |||
dnstypeval = 1*digit / "A" / "NS" / "MD" / ... | dnstypeval = 1*digit / "A" / "NS" / "MD" / ... | |||
; Any IANA registered DNS type expressed as | ; Any IANA registered DNS type expressed | |||
; mnemonic or as decimal integer. | ; as mnemonic or as decimal integer. | |||
Unless specified in the URI, the authority ("dnsauthority") is | ||||
assumed to be locally known, the class ("dnsclassval") to be the | ||||
Internet class ("IN"), and the type ("dnstypeval") to be the Address | ||||
type ("A"). These default values match the typical use of DNS; to | ||||
look up addresses for host names. | ||||
A dnsquery element MUST NOT contain more than one occurance of the | ||||
"CLASS" and "TYPE" fields. For example, both | ||||
"dns:example?TYPE=A;TYPE=TXT" and "dns:example?TYPE=A;TYPE=A" are | ||||
invalid. However, the fields may occur in any order, so that both | ||||
"dns:example?TYPE=A;CLASS=IN" and "dns:example?CLASS=IN;TYPE=A" are | ||||
valid. | ||||
The digit representation of types and classes MAY be used when a | The digit representation of types and classes MAY be used when a | |||
mnemonic for the corresponding value is not well known (e.g., for | mnemonic for the corresponding value is not well known (e.g., for | |||
newly introduced types or classes), but SHOULD NOT be used for the | newly introduced types or classes), but SHOULD NOT be used for the | |||
types or classes defined in the DNS specification [2]. All | types or classes defined in the DNS specification [2]. All | |||
implementations MUST recognize the mnemonics defined in [2]. | implementations MUST recognize the mnemonics defined in [2]. | |||
Unless specified in the URI, the authority ("dnsauthority") is | To avoid ambiguity, relative "dnsname" values (i.e., those not ending | |||
assumed to be locally known, "dnsclassval" to be the Internet class | with ".") are assumed to be relative to the root. For example, | |||
("IN"), and "dnstypeval" to be the Address type ("A"). | "dns:host.example" and "dns:host.example." both refer to the same | |||
owner name, namely "host.example.". Further, an empty "dnsname" | ||||
value is considered to be a degenerative form of a relative name, | ||||
which refer to the root ("."). | ||||
To resolve a DNS URI using the DNS protocol [2] a query is formed by | To resolve a DNS URI using the DNS protocol [2] a query is created, | |||
using the dnsname, dnsclassval and dnstypeval from the URI string (or | using as input the dnsname, dnsclassval and dnstypeval from the URI | |||
the previously mentioned default values if some value missing from | string (or the appropriate default values). If an authority | |||
the string). If authority ("dnsauthority") is given in the URI | ("dnsauthority") is given in the URI string, this indicate the server | |||
string, this indicate the server that should receive the DNS query, | that should receive the DNS query, otherwise the default DNS server | |||
otherwise the default DNS server should receive it. (Note that DNS | should receive it. | |||
URIs could be resolved by other protocols than the DNS protocol. DNS | ||||
URIs does not require the use of the DNS protocol, although it is | Note that DNS URIs could be resolved by other protocols than the DNS | |||
expected to be the typical usage. This paragraph only illustrate how | protocol, or by using the DNS protocol in some other way than as | |||
DNS URIs are resolved using the DNS protocol.) | described above (e.g., multicast DNS). DNS URIs do not require the | |||
use of the DNS protocol, although it is expected to be the typical | ||||
usage. The previous paragraph only illustrate how DNS URIs are | ||||
resolved using the DNS protocol. | ||||
A client MAY want to check that it understands the dnsclassval and | A client MAY want to check that it understands the dnsclassval and | |||
dnstypeval before sending a query, so that it is able to correctly | dnstypeval before sending a query, so that it will be able to | |||
parse the answer. A typical example of a client that would not need | understand the response. However, a typical example of a client that | |||
to check dnsclassval and dnstypeval would be a proxy that just treat | would not need to check dnsclassval and dnstypeval would be a proxy, | |||
the answer as opaque data. | that would just treat the received answer as opaque data. | |||
Character encoding considerations: The characters are encoded as per | Character encoding considerations: The characters are encoded as per | |||
the "URI Generic Syntax" RFC [4]. The DNS protocol do not consider | the "URI Generic Syntax" RFC [4]. The DNS protocol do not consider | |||
character sets, it simply transports opaque data. In particular, the | character sets, it simply transports opaque data. In particular, the | |||
"dnsname" field of the DNS URI is to be considered an | "dnsname" field of the DNS URI is to be considered an | |||
internationalized domain name (IDN) unaware domain name slot, in the | internationalized domain name (IDN) unaware domain name slot, in the | |||
terminology of [16]. (The reason for this is that making these fields | terminology of [15]. The considerations for "hostport" are discussed | |||
be IDN aware by, e.g., specifying that they are UTF-8 [7] strings, | in [4] | |||
would require further encoding mechanisms to be able to express all | ||||
valid DNS domain names. This is because the DNS allows all octet | ||||
sequences to be used as domain labels, so UTF-8 strings do not cover | ||||
all possibilities. Instead of defining further encoding mechanisms, | ||||
we point applications with internationalization needs at the ASCII | ||||
encoding described in [16] which should be satisfactory.) The | ||||
considerations for "hostport" are discussed in [4] | ||||
To encode a "." that is part of a DNS label the "escaped" encoding | Because "." is used as the DNS label separator, an escaping mechanism | |||
MUST be used, and a label delimiter MUST be encoded as ".". That is, | is required to encode a "." that is part of a DNS label. The | |||
the only way to encode a label delimiter is ".", and the only way to | escaping mechanism is described in section 5.1 of RFC 1035. For | |||
encode a "." as part of label is "%2e". This approach was chosen to | example, a DNS label of "exa.mple" can be escaped as "exa\.mple" or | |||
minimize the modifications users will have to do when manually | "exa\046mple". However, the URI specification disallow the "\" | |||
translating a domain name string into the URI form. | character from occuring directly in URIs, so it must be escaped as | |||
"%5c". The single DNS label "exa.mple" is thus encoded as | ||||
"exa%5c.mple". The same mechanism can be used to encode other | ||||
characters, for example "?" and ";". Note that "." and "%2e" are | ||||
equivalent within dnsname, and are interchangable. | ||||
This URI specification allows all possible domain names to be encoded | This URI specification allows all possible domain names to be encoded | |||
(of course following the encoding rules of [4]), however certain | (of course following the encoding rules of [4]), however certain | |||
applications may restrict the set of valid characters and care should | applications may restrict the set of valid characters and care should | |||
be taken so that invalid characters in these contexts does not cause | be taken so that invalid characters in these contexts does not cause | |||
harm. In particular, host names in the DNS have certain | harm. In particular, host names in the DNS have certain | |||
restrictions. It is up to these application to limit this subset, | restrictions. It is up to these application to limit this subset, | |||
this URI scheme places no restrictions. | this URI scheme places no restrictions. | |||
Intended usage: Whenever DNS resources are useful to reference by | Intended usage: Whenever DNS resources are useful to reference by | |||
protocol independent identifiers, often when the data is more | protocol independent identifiers, often when the data is more | |||
important than the access method. Since software in general has | important than the access method. Since software in general has | |||
coped without this so far, it is not anticipated to be implemented | coped without this so far, it is not anticipated to be implemented | |||
widely, nor migrated to by existing systems, but specific solutions | widely, nor migrated to by existing systems, but specific solutions | |||
(especially security related) may find this appropriate. | (especially security related) may find this appropriate. | |||
Applications and/or protocols which use this scheme: Security related | Applications and/or protocols which use this scheme: Security related | |||
software. It may be of interest to auxilliary DNS related software | software. DNS administration tools. Network programming packages. | |||
too. | ||||
Interoperability considerations: The data referenced by this URI | Interoperability considerations: The data referenced by this URI | |||
scheme might be transferred by protocols that are not URI aware (such | scheme might be transferred by protocols that are not URI aware (such | |||
as the DNS protocol). This is not anticipated to have any serious | as the DNS protocol). This is not anticipated to have any serious | |||
interoperability impact though. | interoperability impact though. | |||
Interoperability problems may occur if one entity understands a new | Interoperability problems may occur if one entity understands a new | |||
DNS type or class mnemonic but another entity do not understand it. | DNS class/type mnemonic and another entity do not understand it. | |||
This is an interoperability problem for DNS software in general, | This is an interoperability problem for DNS software in general, | |||
although it is not a major practical problem as the DNS types and | although it is not a major practical problem as the DNS types and | |||
classes are fairly static. To guarantee interoperability | classes are fairly static. To guarantee interoperability | |||
implementations could use integers for all mnemonics not defined in | implementations can use integers for all mnemonics not defined in | |||
[2]. | [2]. | |||
Interaction with Binary Labels [12], or other extended label types, | Interaction with Binary Labels [11], or other extended label types, | |||
has not been analyzed. However, they appear to be infrequently used | has not been analyzed. However, they appear to be infrequently used | |||
in practice. | in practice. | |||
Security considerations: See below. | ||||
Contact: simon@josefsson.org | Contact: simon@josefsson.org | |||
Author/Change Controller: simon@josefsson.org | Author/Change Controller: simon@josefsson.org | |||
3. Examples | 3. Examples | |||
A DNS URI is of the following general form. This is intended to | A DNS URI is of the following general form. This is intended to | |||
illustrate, not define, the scheme. | illustrate, not define, the scheme. | |||
dns:[//authority/]domain[?type=TYPE;class=CLASS] | dns:[//authority/]domain[?CLASS=class;TYPE=type] | |||
The following illustrate a URI for a resource with the name | The following illustrate a URI for a resource with the absolute name | |||
"www.example.org", the Internet (IN) class and the Address (A) type: | "www.example.org.", the Internet (IN) class and the Address (A) type: | |||
dns:www.example.org?class=IN;type=A | dns:www.example.org.?clAsS=IN;tYpE=A | |||
Since the default class is IN, and the default type is A, the same | Since the default class is IN, and the default type is A, the same | |||
resource can be identified by a shorter URI: | resource can be identified by a shorter URI, using a relative name: | |||
dns:www.example.org | dns:www.example.org | |||
The following illustrate a URI for a resource with the name | The following illustrate a URI for a resource with the name | |||
"simon.example.org", for the CERT type, in the Internet (IN) class: | "simon.example.org", for the CERT type, in the Internet (IN) class: | |||
dns:simon.example.org?type=CERT | dns:simon.example.org?type=CERT | |||
The following illustrate a URI for a resource with the name | The following illustrate a URI for a resource with the name | |||
"ftp.example.org", in the Internet (IN) class and the address (A) | "ftp.example.org", in the Internet (IN) class and the address (A) | |||
type, but from the DNS authority 192.168.1.1 instead of the default | type, but from the DNS authority 192.168.1.1 instead of the default | |||
authority (i.e., when DNS is used, the query is sent to that server): | authority: | |||
dns://192.168.1.1/ftp.example.org?type=A | dns://192.168.1.1/ftp.example.org?type=A | |||
The following illustrate a strange, albeit valid, DNS resource. Note | The following illustrate various escaping techniques. The owner name | |||
the encoding of "." and 0x00, and the use of a named dnsauthority: | would be "world wide web.example\.domain.org" where "\." denote the | |||
character "." as part of a label, and "." denote the label separator: | ||||
dns://internal-dns.example.org/*.%3f%20%00%2e%25+?type=TXT | dns:world%20wide%20web.example%5c.domain.example?TYPE=TXT | |||
The following illustrate a strange, but valid, DNS resource: | ||||
dns://fw.example.org/*.%20%00.example?type=TXT | ||||
4. Security Considerations | 4. Security Considerations | |||
If a DNS URI references domains in the Internet DNS environment, both | If a DNS URI references domains in the Internet DNS environment, both | |||
the URI itself and the information referenced by the URI is public | the URI itself and the information referenced by the URI is public | |||
information. If a DNS URI is used within an "internal" DNS | information. If a DNS URI is used within an "internal" DNS | |||
environment, both the DNS URI and the data is referenced should be | environment, both the DNS URI and the data is referenced should be | |||
handled using the same considerations that apply to DNS data in the | handled using the same considerations that apply to DNS data in the | |||
environment. | environment. | |||
If information referenced by DNS URIs are used to make security | If information referenced by DNS URIs are used to make security | |||
decisions (examples of such data include, but is not limited to, | decisions (examples of such data include, but is not limited to, | |||
certificates stored in the DNS), implementations may need to employ | certificates stored in the DNS), implementations may need to employ | |||
security techniques such as Secure DNS [9], or even CMS [15] or | security techniques such as Secure DNS [8], or even CMS [14] or | |||
OpenPGP [8], to protect the data during transport. How to implement | OpenPGP [7], to protect the data during transport. How to implement | |||
this will depend on the usage scenario, and it is not up to this URI | this will depend on the usage scenario, and it is not up to this URI | |||
scheme to define how the data referenced by DNS URIs should be | scheme to define how the data referenced by DNS URIs should be | |||
protected. | protected. | |||
If applications accept unknown dnsqueryelement values (e.g., accepts | If applications accept unknown dnsqueryelement values (e.g., accepts | |||
the URI "dns:www.example.org?secret=value" without knowing what the | the URI "dns:www.example.org?secret=value" without knowing what the | |||
"secret=value" dnsqueryelement means), a covert channel used to | "secret=value" dnsqueryelement means), a covert channel used to | |||
"leak" information may be enabled. The implications of covert | "leak" information may be enabled. The implications of covert | |||
channels should be understood by applications that accepts unknown | channels should be understood by applications that accepts unknown | |||
dnsqueryelement values. | dnsqueryelement values. | |||
This draft does not modify the security considerations related to the | Slight variations, such as difference between upper and lower case in | |||
DNS or URIs in general. | the dnsname field, can be used as a covert channel to leak | |||
information. | ||||
5. IANA Considerations | 5. IANA Considerations | |||
The IANA is asked to register the DNS URI scheme, using the template | The IANA is asked to register the DNS URI scheme, using the template | |||
in section 2, in accordance with RFC 2717 [13]. | in section 2, in accordance with RFC 2717 [12]. | |||
Acknowledgments | Acknowledgments | |||
Thanks to Stuart Cheshire, Donald Eastlake, Pasi Eronen, Ted Hardie, | Thanks to Stuart Cheshire, Donald Eastlake, Pasi Eronen, Ted Hardie, | |||
Peter Koch, Andrew Main, Larry Masinter, Michael Mealling, Steve | Peter Koch, Andrew Main, Larry Masinter, Michael Mealling, Steve | |||
Mattson, and Paul Vixie for comments and suggestions. The author | Mattson, and Paul Vixie for comments and suggestions. The author | |||
acknowledges the RSA Laboratories for supporting the work that led to | acknowledges the RSA Laboratories for supporting the work that led to | |||
this document. | this document. | |||
Normative References | 6. References | |||
6.1 Normative References | ||||
[1] Mockapetris, P., "Domain names - concepts and facilities", STD | [1] Mockapetris, P., "Domain names - concepts and facilities", STD | |||
13, RFC 1034, November 1987. | 13, RFC 1034, November 1987. | |||
[2] Mockapetris, P., "Domain names - implementation and | [2] Mockapetris, P., "Domain names - implementation and | |||
specification", STD 13, RFC 1035, November 1987. | specification", STD 13, RFC 1035, November 1987. | |||
[3] Crocker, D. and P. Overell, "Augmented BNF for Syntax | [3] Crocker, D. and P. Overell, "Augmented BNF for Syntax | |||
Specifications: ABNF", RFC 2234, November 1997. | Specifications: ABNF", RFC 2234, November 1997. | |||
[4] Berners-Lee, T., Fielding, R. and L. Masinter, "Uniform Resource | [4] Berners-Lee, T., Fielding, R. and L. Masinter, "Uniform Resource | |||
Identifiers (URI): Generic Syntax", RFC 2396, August 1998. | Identifiers (URI): Generic Syntax", RFC 2396, August 1998. | |||
Informative References | 6.2 Informative References | |||
[5] Postel, J. and J. Reynolds, "File Transfer Protocol", STD 9, | [5] Postel, J. and J. Reynolds, "File Transfer Protocol", STD 9, | |||
RFC 959, October 1985. | RFC 959, October 1985. | |||
[6] Bradner, S., "Key words for use in RFCs to Indicate Requirement | [6] Bradner, S., "Key words for use in RFCs to Indicate Requirement | |||
Levels", BCP 14, RFC 2119, March 1997. | Levels", BCP 14, RFC 2119, March 1997. | |||
[7] Yergeau, F., "UTF-8, a transformation format of ISO 10646", RFC | [7] Callas, J., Donnerhacke, L., Finney, H. and R. Thayer, "OpenPGP | |||
2279, January 1998. | ||||
[8] Callas, J., Donnerhacke, L., Finney, H. and R. Thayer, "OpenPGP | ||||
Message Format", RFC 2440, November 1998. | Message Format", RFC 2440, November 1998. | |||
[9] Eastlake, D., "Domain Name System Security Extensions", RFC | [8] Eastlake, D., "Domain Name System Security Extensions", RFC | |||
2535, March 1999. | 2535, March 1999. | |||
[10] Eastlake, D. and O. Gudmundsson, "Storing Certificates in the | [9] Eastlake, D. and O. Gudmundsson, "Storing Certificates in the | |||
Domain Name System (DNS)", RFC 2538, March 1999. | Domain Name System (DNS)", RFC 2538, March 1999. | |||
[11] Myers, M., Ankney, R., Malpani, A., Galperin, S. and C. Adams, | [10] Myers, M., Ankney, R., Malpani, A., Galperin, S. and C. Adams, | |||
"X.509 Internet Public Key Infrastructure Online Certificate | "X.509 Internet Public Key Infrastructure Online Certificate | |||
Status Protocol - OCSP", RFC 2560, June 1999. | Status Protocol - OCSP", RFC 2560, June 1999. | |||
[12] Crawford, M., "Binary Labels in the Domain Name System", RFC | [11] Crawford, M., "Binary Labels in the Domain Name System", RFC | |||
2673, August 1999. | 2673, August 1999. | |||
[13] Petke, R. and I. King, "Registration Procedures for URL Scheme | [12] Petke, R. and I. King, "Registration Procedures for URL Scheme | |||
Names", BCP 35, RFC 2717, November 1999. | Names", BCP 35, RFC 2717, November 1999. | |||
[14] Connolly, D. and L. Masinter, "The 'text/html' Media Type", RFC | [13] Connolly, D. and L. Masinter, "The 'text/html' Media Type", RFC | |||
2854, June 2000. | 2854, June 2000. | |||
[15] Housley, R., "Cryptographic Message Syntax (CMS)", RFC 3369, | [14] Housley, R., "Cryptographic Message Syntax (CMS)", RFC 3369, | |||
August 2002. | August 2002. | |||
[16] Faltstrom, P., Hoffman, P. and A. Costello, "Internationalizing | [15] Faltstrom, P., Hoffman, P. and A. Costello, "Internationalizing | |||
Domain Names in Applications (IDNA)", RFC 3490, March 2003. | Domain Names in Applications (IDNA)", RFC 3490, March 2003. | |||
[16] Yergeau, F., "UTF-8, a transformation format of ISO 10646", STD | ||||
63, RFC 3629, November 2003. | ||||
Author's Address | Author's Address | |||
Simon Josefsson | Simon Josefsson | |||
EMail: simon@josefsson.org | EMail: simon@josefsson.org | |||
Appendix A. Revision Changes | Appendix A. Revision Changes | |||
Note to RFC editor: This appendix is to be removed on publication. | Note to RFC editor: Remove this appendix before publication. | |||
A.1 Changes since -06 | A.1 Changes since -06 | |||
The MIME registration templates for text/dns and application/dns was | The MIME registration templates for text/dns and application/dns was | |||
removed, and will be defined in separate documents. | removed, and will be defined in separate documents. | |||
Improved discussion related to which mnemonics that must be | Improved discussion related to which mnemonics that must be | |||
supported. The interoperability problem that provoked the | supported. The interoperability problem that provoked the | |||
clarification is also mentioned. | clarification is also mentioned. | |||
skipping to change at page 11, line 8 | skipping to change at page 11, line 14 | |||
A.3 Changes since -08 | A.3 Changes since -08 | |||
Modifications derived from Last-Call comments: Made more clear that | Modifications derived from Last-Call comments: Made more clear that | |||
DNS URIs does not imply use of the DNS protocol, but the issue is not | DNS URIs does not imply use of the DNS protocol, but the issue is not | |||
stressed because of the apparent inflamatory state of affairs. Added | stressed because of the apparent inflamatory state of affairs. Added | |||
informative references to HTML and FTP. Clarified that dnsname can | informative references to HTML and FTP. Clarified that dnsname can | |||
be empty. Clarified that first dnsqueryelement "win" in case of | be empty. Clarified that first dnsqueryelement "win" in case of | |||
ambiguity. Clarified security consideration with respect to unknown | ambiguity. Clarified security consideration with respect to unknown | |||
dnsqueryelements. Use "authority" instead of "server". Say "IANA | dnsqueryelements. Use "authority" instead of "server". Say "IANA | |||
registered" instead of "standard". Interoperability note about binary | registered" instead of "standard". Interoperability note about | |||
DNS labels. Typos. | binary DNS labels. Typos. | |||
A.4 Changes since -09 | ||||
Use legal texts from RFC 3667. Update UTF-8 reference to RFC 3629. | ||||
Simplified introduction. Discuss relative and absolute dnsname's. | ||||
Clarify that empty dnsname correspond to the root. Change so that | ||||
dns:foo?TYPE=A;TYPE=TXT is invalid, instead of meaning TYPE=A. The | ||||
underspecified extension mechanism was dropped; now only TYPE= and | ||||
CLASS= are permitted. Remove background discussion of why the | ||||
dnsname field is made a IDN unaware domain name slot. Use standard | ||||
DNS escaping (i.e, "\." for ".") instead of broken approach that | ||||
violated the URI specification. Improve examples. Add security | ||||
considerations. | ||||
Intellectual Property Statement | Intellectual Property Statement | |||
The IETF takes no position regarding the validity or scope of any | The IETF takes no position regarding the validity or scope of any | |||
intellectual property or other rights that might be claimed to | Intellectual Property Rights or other rights that might be claimed to | |||
pertain to the implementation or use of the technology described in | pertain to the implementation or use of the technology described in | |||
this document or the extent to which any license under such rights | this document or the extent to which any license under such rights | |||
might or might not be available; neither does it represent that it | might or might not be available; nor does it represent that it has | |||
has made any effort to identify any such rights. Information on the | made any independent effort to identify any such rights. Information | |||
IETF's procedures with respect to rights in standards-track and | on the procedures with respect to rights in RFC documents can be | |||
standards-related documentation can be found in BCP-11. Copies of | found in BCP 78 and BCP 79. | |||
claims of rights made available for publication and any assurances of | ||||
licenses to be made available, or the result of an attempt made to | Copies of IPR disclosures made to the IETF Secretariat and any | |||
obtain a general license or permission for the use of such | assurances of licenses to be made available, or the result of an | |||
proprietary rights by implementors or users of this specification can | attempt made to obtain a general license or permission for the use of | |||
be obtained from the IETF Secretariat. | such proprietary rights by implementers or users of this | |||
specification can be obtained from the IETF on-line IPR repository at | ||||
http://www.ietf.org/ipr. | ||||
The IETF invites any interested party to bring to its attention any | The IETF invites any interested party to bring to its attention any | |||
copyrights, patents or patent applications, or other proprietary | copyrights, patents or patent applications, or other proprietary | |||
rights which may cover technology that may be required to practice | rights that may cover technology that may be required to implement | |||
this standard. Please address the information to the IETF Executive | this standard. Please address the information to the IETF at | |||
Director. | ietf-ipr@ietf.org. | |||
Full Copyright Statement | ||||
Copyright (C) The Internet Society (2003). All Rights Reserved. | Disclaimer of Validity | |||
This document and translations of it may be copied and furnished to | This document and the information contained herein are provided on an | |||
others, and derivative works that comment on or otherwise explain it | "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS | |||
or assist in its implementation may be prepared, copied, published | OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET | |||
and distributed, in whole or in part, without restriction of any | ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED, | |||
kind, provided that the above copyright notice and this paragraph are | INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE | |||
included on all such copies and derivative works. However, this | INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED | |||
document itself may not be modified in any way, such as by removing | WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. | |||
the copyright notice or references to the Internet Society or other | ||||
Internet organizations, except as needed for the purpose of | ||||
developing Internet standards in which case the procedures for | ||||
copyrights defined in the Internet Standards process must be | ||||
followed, or as required to translate it into languages other than | ||||
English. | ||||
The limited permissions granted above are perpetual and will not be | Copyright Statement | |||
revoked by the Internet Society or its successors or assignees. | ||||
This document and the information contained herein is provided on an | Copyright (C) The Internet Society (2004). This document is subject | |||
"AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING | to the rights, licenses and restrictions contained in BCP 78, and | |||
TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING | except as set forth therein, the authors retain all their rights. | |||
BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION | ||||
HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF | ||||
MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. | ||||
Acknowledgment | Acknowledgment | |||
Funding for the RFC Editor function is currently provided by the | Funding for the RFC Editor function is currently provided by the | |||
Internet Society. | Internet Society. | |||
End of changes. | ||||
This html diff was produced by rfcdiff 1.23, available from http://www.levkowetz.com/ietf/tools/rfcdiff/ |