draft-josefsson-dns-url-12.txt   draft-josefsson-dns-url.txt 
Network Working Group S. Josefsson Network Working Group S. Josefsson
Expires: November 26, 2005 Expires: February 6, 2006
Domain Name System Uniform Resource Identifiers Domain Name System Uniform Resource Identifiers
draft-josefsson-dns-url-12 draft-josefsson-dns-url-13
Status of this Memo Status of this Memo
By submitting this Internet-Draft, each author represents that any By submitting this Internet-Draft, each author represents that any
applicable patent or other IPR claims of which he or she is aware 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 becomes have been or will be disclosed, and any of which he or she becomes
aware will be disclosed, in accordance with Section 6 of BCP 79. aware will be disclosed, in accordance with Section 6 of BCP 79.
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 Task Force (IETF), its areas, and its working groups. Note that
skipping to change at page 1, line 33 skipping to change at page 1, line 33
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 The list of current Internet-Drafts can be accessed at
http://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 November 26, 2005. This Internet-Draft will expire on February 6, 2006.
Copyright Notice Copyright Notice
Copyright (C) The Internet Society (2005). Copyright (C) The Internet Society (2005).
Abstract Abstract
This document define Uniform Resource Identifiers for Domain Name This document define Uniform Resource Identifiers for Domain Name
System resources. System resources.
skipping to change at page 2, line 26 skipping to change at page 2, line 26
9.1 Normative References . . . . . . . . . . . . . . . . . . . 10 9.1 Normative References . . . . . . . . . . . . . . . . . . . 10
9.2 Informative References . . . . . . . . . . . . . . . . . . 10 9.2 Informative References . . . . . . . . . . . . . . . . . . 10
Author's Address . . . . . . . . . . . . . . . . . . . . . . . 11 Author's Address . . . . . . . . . . . . . . . . . . . . . . . 11
A. Revision Changes . . . . . . . . . . . . . . . . . . . . . . . 11 A. Revision Changes . . . . . . . . . . . . . . . . . . . . . . . 11
A.1 Changes since -06 . . . . . . . . . . . . . . . . . . . . 11 A.1 Changes since -06 . . . . . . . . . . . . . . . . . . . . 11
A.2 Changes since -07 . . . . . . . . . . . . . . . . . . . . 12 A.2 Changes since -07 . . . . . . . . . . . . . . . . . . . . 12
A.3 Changes since -08 . . . . . . . . . . . . . . . . . . . . 12 A.3 Changes since -08 . . . . . . . . . . . . . . . . . . . . 12
A.4 Changes since -09 . . . . . . . . . . . . . . . . . . . . 12 A.4 Changes since -09 . . . . . . . . . . . . . . . . . . . . 12
A.5 Changes since -10 . . . . . . . . . . . . . . . . . . . . 12 A.5 Changes since -10 . . . . . . . . . . . . . . . . . . . . 12
A.6 Changes since -11 . . . . . . . . . . . . . . . . . . . . 12 A.6 Changes since -11 . . . . . . . . . . . . . . . . . . . . 12
Intellectual Property and Copyright Statements . . . . . . . . 13 A.7 Changes since -12 . . . . . . . . . . . . . . . . . . . . 13
Intellectual Property and Copyright Statements . . . . . . . . 14
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 Several protocols are using Uniform Resource Identifier (URI) to
certificate revocation lists (CRLs) in the DNS [9]. Several refer to data. By defining a URI scheme for DNS data, the gap
protocols use Uniform Resource Locators (URLs) to point at between these two worlds are bridged. The DNS URI scheme defined
certificates and CRLs. By defining a Uniform Resource Identifier here can be used to reference any data stored in the DNS.
(URI) scheme for DNS resources, such protocols can reference
certificates and CRLs stored in the DNS.
Two examples of data structures that may embed DNS URIs:
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
key server" field.
o The Internet X.509 Public Key Infrastructure [14] format, where
the issuer may use a DNS URI in a CRL Distribution Point
certificate extension field.
The DNS URI scheme defined here can be used to reference any data
stored in the DNS, and is not limited to certificates or CRLs. The
purpose of this specification is to define a generic DNS URI, not to
specify a solution only for certificates stored in the DNS.
Data browsers may support DNS URIs by forming DNS queries and render Data browsers may support DNS URIs by forming DNS queries and render
DNS responses using HTML [13], similar to what is commonly done for DNS responses using HTML [14], similar to what is commonly done for
FTP [6] resources. FTP [6] resources. Applications that are Multipurpose Internet Mail
Extension (MIME) [7] aware may tag DNS data retrieve using this
scheme with the text/dns or application/dns types as specified in
[18].
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 [3]. document are to be interpreted as described in RFC 2119 [3].
2. Usage Model 2. Usage Model
The reader is referred to section 1 of [5] for an in-depth discussion The reader is referred to section 1 of [5] for an in-depth discussion
of URI classifications. In particular, the reader is assumed to be of URI classifications. In particular, the reader is assumed to be
familiar with the "name" vs "locator" distinction. This section familiar with the "name" vs "locator" distinction. This section
skipping to change at page 5, line 8 skipping to change at page 5, line 8
certain applications, a more detailed URI syntax that map more certain applications, a more detailed URI syntax that map more
closely to the DNS protocol may be required. However, such an URI closely to the DNS protocol may be required. However, such an URI
definition is not included in this document. This document specify a definition is not included in this document. This document specify a
URI that is primarily intended to name DNS resources, but it can also URI that is primarily intended to name DNS resources, but it can also
be used to locate said resources for simple (but common) be used to locate said resources for simple (but common)
applications. applications.
3. DNS URI Registration 3. DNS URI Registration
The section contain the registration template for the DNS URI scheme The section contain the registration template for the DNS URI scheme
in accordance with [12]. in accordance with [13].
URL scheme name: "dns". URL scheme name: "dns".
URL scheme syntax: A DNS URI designate a DNS resource record set, URL scheme syntax: A DNS URI designate a DNS resource record set,
referenced by domain name, class, type and optionally the authority. referenced by domain name, class, type and optionally the authority.
The DNS URI follows the generic syntax from RFC 3986 [5], and is The DNS URI follows the generic syntax from RFC 3986 [5], and is
described using ABNF [4]. Strings are not case sensitive and free described using ABNF [4]. Strings are not case sensitive and free
insertion of linear-white-space is not permitted. insertion of linear-white-space is not permitted.
dnsurl = "dns:" [ "//" dnsauthority "/" ] dnsurl = "dns:" [ "//" dnsauthority "/" ]
skipping to change at page 7, line 46 skipping to change at page 7, line 46
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 class/type mnemonic and 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 can use integers for all mnemonics not defined in implementations can use integers for all mnemonics not defined in
[2]. [2].
Interaction with Binary Labels [11], or other extended label types, Interaction with Binary Labels [12], 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.
Contact: [email protected] Contact: [email protected]
Author/Change Controller: [email protected] Author/Change Controller: [email protected]
4. Examples 4. 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.
skipping to change at page 9, line 24 skipping to change at page 9, line 24
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 [10]), implementations may need to
security techniques such as Secure DNS [8], or even CMS [15] or employ security techniques such as Secure DNS [9], or even CMS [15]
OpenPGP [7], to protect the data during transport. How to implement or OpenPGP [8], to protect the data during transport. How to
this will depend on the usage scenario, and it is not up to this URI implement this will depend on the usage scenario, and it is not up to
scheme to define how the data referenced by DNS URIs should be this URI scheme to define how the data referenced by DNS URIs should
protected. be 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.
Slight variations, such as difference between upper and lower case in Slight variations, such as difference between upper and lower case in
the dnsname field, can be used as a covert channel to leak the dnsname field, can be used as a covert channel to leak
information. information.
7. IANA Considerations 7. 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 3, in accordance with RFC 2717 [12]. in section 3, in accordance with RFC 2717 [13].
8. Copying conditions 8. Copying conditions
Copyright (c) 2000, 2001, 2002, 2003, 2004, 2005 Simon Josefsson Copyright (c) 2000, 2001, 2002, 2003, 2004, 2005 Simon Josefsson
Regarding this entire document or any portion of it, the author makes Regarding this entire document or any portion of it, the author makes
no guarantees and is not responsible for any damage resulting from no guarantees and is not responsible for any damage resulting from
its use. The author grants irrevocable permission to anyone to use, its use. The author grants irrevocable permission to anyone to use,
modify, and distribute it in any way that does not diminish the modify, and distribute it in any way that does not diminish the
rights of anyone else to use, modify, and distribute it, provided rights of anyone else to use, modify, and distribute it, provided
skipping to change at page 10, line 43 skipping to change at page 10, line 43
[5] Berners-Lee, T., Fielding, R., and L. Masinter, "Uniform [5] Berners-Lee, T., Fielding, R., and L. Masinter, "Uniform
Resource Identifier (URI): Generic Syntax", STD 66, RFC 3986, Resource Identifier (URI): Generic Syntax", STD 66, RFC 3986,
January 2005. January 2005.
9.2 Informative References 9.2 Informative References
[6] Postel, J. and J. Reynolds, "File Transfer Protocol", STD 9, [6] Postel, J. and J. Reynolds, "File Transfer Protocol", STD 9,
RFC 959, October 1985. RFC 959, October 1985.
[7] Callas, J., Donnerhacke, L., Finney, H., and R. Thayer, [7] Freed, N., Klensin, J., and J. Postel, "Multipurpose Internet
Mail Extensions (MIME) Part Four: Registration Procedures",
BCP 13, RFC 2048, November 1996.
[8] Callas, J., Donnerhacke, L., Finney, H., and R. Thayer,
"OpenPGP Message Format", RFC 2440, November 1998. "OpenPGP Message Format", RFC 2440, November 1998.
[8] Eastlake, D., "Domain Name System Security Extensions", [9] Eastlake, D., "Domain Name System Security Extensions",
RFC 2535, March 1999. RFC 2535, March 1999.
[9] Eastlake, D. and O. Gudmundsson, "Storing Certificates in the [10] 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.
[10] Myers, M., Ankney, R., Malpani, A., Galperin, S., and C. Adams, [11] 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.
[11] Crawford, M., "Binary Labels in the Domain Name System", [12] Crawford, M., "Binary Labels in the Domain Name System",
RFC 2673, August 1999. RFC 2673, August 1999.
[12] Petke, R. and I. King, "Registration Procedures for URL Scheme [13] Petke, R. and I. King, "Registration Procedures for URL Scheme
Names", BCP 35, RFC 2717, November 1999. Names", BCP 35, RFC 2717, November 1999.
[13] Connolly, D. and L. Masinter, "The 'text/html' Media Type", [14] Connolly, D. and L. Masinter, "The 'text/html' Media Type",
RFC 2854, June 2000. RFC 2854, June 2000.
[14] Housley, R., Polk, W., Ford, W., and D. Solo, "Internet X.509
Public Key Infrastructure Certificate and Certificate
Revocation List (CRL) Profile", RFC 3280, April 2002.
[15] Housley, R., "Cryptographic Message Syntax (CMS)", RFC 3369, [15] Housley, R., "Cryptographic Message Syntax (CMS)", RFC 3369,
August 2002. August 2002.
[16] Faltstrom, P., Hoffman, P., and A. Costello, [16] Faltstrom, P., Hoffman, P., and A. Costello,
"Internationalizing Domain Names in Applications (IDNA)", "Internationalizing Domain Names in Applications (IDNA)",
RFC 3490, March 2003. RFC 3490, March 2003.
[17] Yergeau, F., "UTF-8, a transformation format of ISO 10646", [17] Yergeau, F., "UTF-8, a transformation format of ISO 10646",
STD 63, RFC 3629, November 2003. STD 63, RFC 3629, November 2003.
[18] Josefsson, S., "Domain Name System Media Types", RFC 4027,
April 2005.
Author's Address Author's Address
Simon Josefsson Simon Josefsson
Email: [email protected] Email: [email protected]
Appendix A. Revision Changes Appendix A. Revision Changes
Note to RFC editor: Remove this appendix before publication. Note to RFC editor: Remove this appendix before publication.
skipping to change at page 13, line 5 skipping to change at page 13, line 5
Add section "Usage Model". Move acknowledgements, as per rfc2223bis. Add section "Usage Model". Move acknowledgements, as per rfc2223bis.
Add permissive copying condition. Updates to align with RFC 3986. Add permissive copying condition. Updates to align with RFC 3986.
A.6 Changes since -11 A.6 Changes since -11
Fix typos. IESG feedback: Move RFC2119 reference to normative Fix typos. IESG feedback: Move RFC2119 reference to normative
section. Replace OCSP example with X.509 CRL Distribution Point section. Replace OCSP example with X.509 CRL Distribution Point
extension. Fix ABNF not to use "...". extension. Fix ABNF not to use "...".
A.7 Changes since -12
Reference MIME and RFC 4027. IESG feedback: Do not mention OpenPGP/
X.509 as illustrative examples in the introduction section.
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 Rights 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; nor does it represent that it has might or might not be available; nor does it represent that it has
made any independent effort to identify any such rights. Information made any independent effort to identify any such rights. Information
on the procedures with respect to rights in RFC documents can be on the procedures with respect to rights in RFC documents can be
found in BCP 78 and BCP 79. found in BCP 78 and BCP 79.
 End of changes. 

This html diff was produced by rfcdiff 1.23, available from http://www.levkowetz.com/ietf/tools/rfcdiff/