ENUM B. Timms
Internet-Draft J. Reid
Intended status: Experimental Telnic
Expires: May 15, 2008 J. Schlyter
Kirei AB
November 12, 2007
IANA Registration for Encrypted ENUM
Status of this Memo
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 becomes
aware will be disclosed, in accordance with Section 6 of BCP 79.
Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF), its areas, and its working groups. Note that
other groups may also distribute working documents as Internet-
Drafts.
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."
The list of current Internet-Drafts can be accessed at
http://www.ietf.org/ietf/1id-abstracts.txt.
The list of Internet-Draft Shadow Directories can be accessed at
http://www.ietf.org/shadow.html.
This Internet-Draft will expire on May 15, 2008.
Copyright Notice
Copyright (C) The IETF Trust (2007).
Timms, et al. Expires May 15, 2008 [Page 1]
Internet-Draft ENUM Encryption November 2007
Abstract
This document requests IANA registration of the "X-Crypto"
Enumservice. This Enumservice indicates that its NAPTR holds a
Uniform Resource Identifier that carries encrypted content from the
fields of another (unpublished) Protected NAPTR, for use in E.164
Number Mapping (ENUM).
Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.1. The problem . . . . . . . . . . . . . . . . . . . . . . . 3
1.1.1. The requirements . . . . . . . . . . . . . . . . . . . 3
1.2. The solution . . . . . . . . . . . . . . . . . . . . . . . 3
1.2.1. Protected fields . . . . . . . . . . . . . . . . . . . 4
1.2.2. Protection process . . . . . . . . . . . . . . . . . . 4
2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 6
3. Enumservice Registration - X-Crypto . . . . . . . . . . . . . 7
4. Functional Specification . . . . . . . . . . . . . . . . . . . 8
4.1. Order . . . . . . . . . . . . . . . . . . . . . . . . . . 8
4.2. Preference . . . . . . . . . . . . . . . . . . . . . . . . 8
4.3. Services . . . . . . . . . . . . . . . . . . . . . . . . . 8
4.4. Regexp . . . . . . . . . . . . . . . . . . . . . . . . . . 8
4.5. Replacement . . . . . . . . . . . . . . . . . . . . . . . 8
4.6. Encrypted Payload . . . . . . . . . . . . . . . . . . . . 9
5. Ciphersuite Subtypes . . . . . . . . . . . . . . . . . . . . . 10
5.1. Crypto Algoritms . . . . . . . . . . . . . . . . . . . . . 10
5.2. Padding . . . . . . . . . . . . . . . . . . . . . . . . . 10
5.3. Hash . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
6. Example . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
7. Security Considerations . . . . . . . . . . . . . . . . . . . 13
8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 14
9. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 15
10. References . . . . . . . . . . . . . . . . . . . . . . . . . . 16
10.1. Normative References . . . . . . . . . . . . . . . . . . . 16
10.2. Informative References . . . . . . . . . . . . . . . . . . 16
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 17
Intellectual Property and Copyright Statements . . . . . . . . . . 18
Timms, et al. Expires May 15, 2008 [Page 2]
Internet-Draft ENUM Encryption November 2007
1. Introduction
1.1. The problem
DNS (RFC 1034 [6],RFC 1035 [7]) is a global system; it does not
differentiate on the data it returns. If a NAPTR [1] is published in
DNS, then by definition the same Resource Record Set (RRset) will be
returned in response to a query, regardless of the user placing that
query.
Where URIs [8] are published within DNS (inside NAPTRs), the
registrant may prefer to make these available only to groups of
individuals that he or she has selected. Given the global nature of
DNS, this can be a problem.
It is not reliably possible to return different RRset content to
different queries, depending on the user making the request. Even if
the authoritative server has been configured to discriminate based on
the source of the query, if there are any intermediary recursive
resolvers, the query may not even be passed to the authoritative
server and the response returned to the querying DNS client may not
be as the authoritative server would have chosen. It can also be
challenging to configure and maintain the authoritative server, and
this may also involve special configuration of each client that will
query for and use the data.
1.1.1. The requirements
The same content should be published in DNS and so made available to
all without discrimination. There should be no special processing
required of DNS components. This will match the distributed design
of the DNS and maintain the effectiveness of the cacheing
architecture.
However, the value of chosen content should be protected in such a
way that it is understandable only by a selected set of users.
It is important that the recipient of this data can detect
immediately that it is protected, and either process it to extract
the protected content, or immediately discard the data if it is not
interested in such protected records.
1.2. The solution
A general solution for all DNS resource records that meets these
requirements is very difficult; the performance requirements for DNS
in general are severe. NAPTRs stored in ENUM [2] domains may contain
personally identifying information, so finding a solution may be
Timms, et al. Expires May 15, 2008 [Page 3]
Internet-Draft ENUM Encryption November 2007
considered more pressing for such NAPTRs, and some restrictions or
processing costs may therefore be acceptable. Also, in the case of
NAPTRs a solution may be possible, as the problem is more restricted.
NAPTRs hold a small number of well defined fields. Not all of these
fields in a NAPTR will be sensitive and so require protection.
Those fields to be protected can be encrypted using a key known to
the intended users. Thus a "Protected" NAPTR can be processed into
two parts; the protected fields carried in a ciphertext, and the
public fields. A "Container" NAPTR can itself be used to carry this
ciphertext (inside its Regexp field content, in a URI), along with
those fields that are considered public and are not protected. These
public fields can be copied from the Protected NAPTR into this
Container NAPTR.
The Container NAPTR can be stored and retrieved in the normal way.
It will have an Enumservice that indicates that it acts as a
container and MUST be decoded before the original Protected NAPTR can
be reconstructed and processed. When an ENUM client retrieves such a
Container NAPTR, it can immediately know that this requires special
processing, and if that client is not interested in such processing,
the NAPTR can be discarded.
1.2.1. Protected fields
There is no great benefit to encrypting all of the RRDATA for a
NAPTR. The ORDER and PREFERENCE/PRIORITY fields are used to indicate
the preferred order in which the records within a returned NAPTR
RRset should be processed. Whether a particular NAPTR acts as a
container for a Protected NAPTR's content or not, the order in which
it should be processed should remain the same. Otherwise, it might
be possible for a Container NAPTR to be considered first (as it had a
low numerical order value), but, once decoded, the Protected NAPTR
content it contained was of a much lower priority, and so should not
be processed at that point.
Thus the ORDER and PREFERENCE/PRIORITY field values should be
considered public and be copied from the Protected NAPTR into the
Container NAPTR. However, all the other fields (flags, services,
regexp, and replacement) are sensitive in nature, and so would form
the plaintext that would be protected before publication in DNS.
1.2.2. Protection process
The NAPTR to be protected can have these sensitive fields placed into
a plaintext buffer. The buffer content is then encrypted using an
appropriate key to create a ciphertext. The ciphertext can then be
"armoured" into a form that can be presented in a data URI[3]. That
Timms, et al. Expires May 15, 2008 [Page 4]
Internet-Draft ENUM Encryption November 2007
URI can then be placed in a Container NAPTR, along with the "public"
ORDER and PREFERENCE/PRIORITY fields from the Protected NAPTR.
If this Container NAPTR has an appropriate Enumservice then its
nature will be immediately detectable by the recipient of that NAPTR.
If the recipient has the appropriate key to decode the URI data, then
it can decrypt the URI content to form a buffer with the plaintext
fields. These fields (in combination ORDER and PREFERENCE/PRIORITY
fields that have been copied into the Container NAPTR and have not
been encoded) can be reconstructed into the fields that would have
existed in the original Protected NAPTR. That Protected NAPTR
content can then be processed by the client in the normal way.
Timms, et al. Expires May 15, 2008 [Page 5]
Internet-Draft ENUM Encryption November 2007
2. Terminology
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 [4].
Timms, et al. Expires May 15, 2008 [Page 6]
Internet-Draft ENUM Encryption November 2007
3. Enumservice Registration - X-Crypto
The following template contains information required for the IANA
registrations of the 'X-Crypto' Enumservice, according to Section 3
of RFC 3761:
Enumservice Name: "X-Crypto"
Enumservice Type: "x-crypto"
Enumservice Subtype: "data"
Enumservice Sub-subtype: see Section 5
URI Schemes: "data"
Functional Specification: see Section 4
Security Specification: see Section 7
Intended Usage: COMMON
Author(s): Ben Timms, Jim Reid, Jakob Schlyter. (for authors contact
details see Authors' Addresses section).
Any other information that the author deems interesting: None
Timms, et al. Expires May 15, 2008 [Page 7]
Internet-Draft ENUM Encryption November 2007
4. Functional Specification
The basic concept is covered in Section 1.2 and the process is
covered in Section 1.2.2. This section describes in detail how the
each of the fields are handled.
Publication and use of a NAPTR with this Enumservice is based on two
concepts:
A Protected NAPTR that contains sensitive field values, and is not
stored and published in DNS.
A Container NAPTR with this Enumservice that holds the protected
fields in encrypted form within its Regexp field. This NAPTR
carries the "x-crypto" Enumservice
The Container NAPTR resource record fields are as follows:
4.1. Order
The value of the order field is copied in clear from the Protected
NAPTR into the Container NAPTR. It is not encoded.
4.2. Preference
The value of the preference field is copied in clear from the
Protected NAPTR to the Container NAPTR. It is not encoded.
4.3. Services
The value of the services field for the Container NAPTR is set to
"E2U+x-crypto:data:" combined with the ciphersuite sub-subtype
(Section 5).
4.4. Regexp
The encrypted payload (Section 4.6) is encoded in Base64 [5], and
transported as a data URI [3] inside the Container NAPTR.
Container NAPTR Regexp Example:
!^.*$!data:;base64,bWVrbWl0YXNkaWdvYXQK!
4.5. Replacement
The value of the Container NAPTR's replacement field MUST be set to
".".
Timms, et al. Expires May 15, 2008 [Page 8]
Internet-Draft ENUM Encryption November 2007
4.6. Encrypted Payload
The processed content consists of encrypted, optionally padded
ciphertext reflecting a portion of the Protected NAPTR's RDATA. The
Flags, Services, Regexp and Replacement fields of the Protected NAPTR
are treated as the plaintext to be processed.
Once the encrypted payload has been generated, it is further encoded
in Base64, and this is then used as the value of the Container
NAPTR's URI.
Timms, et al. Expires May 15, 2008 [Page 9]
Internet-Draft ENUM Encryption November 2007
5. Ciphersuite Subtypes
The enumservice sub-subtype carries the ciphersuite used for the
encrypted payload.
Ciphersuite sub-subtype example: RSA 1024-bit with PKCS#1.5 padding
and no hash would be encoded as 0x8210 and presented as enumservice
"E2U+x-crypto:data:8210".
5.1. Crypto Algoritms
A 1-byte field indicating the encryption algorithm used for the
encrypted payload (Section 4.6).
+-------+----------------------+
| Value | Encryption Algorithm |
+-------+----------------------+
| 0x00 | NULL |
| | |
| 0x81 | RSA-512 |
| | |
| 0x82 | RSA-1024 |
| | |
| 0x83 | RSA-1536 |
| | |
| 0x84 | RSA-2048 |
| | |
| 0x85 | RSA-3072 |
| | |
| 0x86 | RSA-4096 |
+-------+----------------------+
5.2. Padding
A 4-bit field indicating what padding algorithm is used for the
encrypted payload (Section 4.6).
+-------+-------------------+
| Value | Padding Algorithm |
+-------+-------------------+
| 0x0 | NULL |
| | |
| 0x1 | PKCS #1.5 |
| | |
| 0x2 | OAEP |
+-------+-------------------+
Timms, et al. Expires May 15, 2008 [Page 10]
Internet-Draft ENUM Encryption November 2007
A 4-bit field indicating what hash algorithm used for the encrypted
payload (Section 4.6).
+-------+----------------+
| Value | Hash Algorithm |
+-------+----------------+
| 0x0 | NULL |
| | |
| 0x1 | MD2 |
| | |
| 0x2 | MD5 |
| | |
| 0x3 | SHA-1 |
| | |
| 0x4 | SHA-224 |
| | |
| 0x5 | SHA-256 |
| | |
| 0x6 | SHA-384 |
| | |
| 0x7 | SHA-512 |
+-------+----------------+
Timms, et al. Expires May 15, 2008 [Page 11]
Internet-Draft ENUM Encryption November 2007
6. Example
Move along, nothing to see here (yet).
Timms, et al. Expires May 15, 2008 [Page 12]
Internet-Draft ENUM Encryption November 2007
7. Security Considerations
This is an Enumservice for a NAPTR intended to carry protected NAPTR
content in encrypted form. It does not discuss the means by which
the keys needed to decrypt the protected content are exchanged. For
this Enumservice registration, this is considered "out of scope".
However, the technique for key exchange is important, and must be
considered thoroughly; there is little point in using a complex
encryption scheme if the keys are available to eavesdroppers.
There are limitations on field size within DNS, so that, for example,
the Regexp field has a maximum length of 255 octets. Several of
these octets will be taken up with the sub-field delimiters, with the
ERE sub-field content, and with the URI scheme itself. There is
limited space to carry the armoured ciphertext as the data URI value,
given the armouring choice proposed here and the simple use of the
existing Regexp field to carry the protected data. This will in turn
limit the choices for encryption method, has algorithm, and any
padding.
Both of these issues mean that the environment in which NAPTRs with
this Enumservice can be used may be restricted, and further security
analysis will depend on deployment experience.
An analysis of threats specific to the dependence of ENUM on the DNS,
and the applicability of DNSSEC ("Domain Name Security") [9] to
these, is provided in [10].
Timms, et al. Expires May 15, 2008 [Page 13]
Internet-Draft ENUM Encryption November 2007
8. IANA Considerations
This document requests registration of the "X-Crypto" Enumservice
with the "x-crypto:data:<ciphersuite>" type according to the
guidelines and specifications in RFC 3761 [2] and the definitions in
this document. This Enumservice is intended for use with the "data:"
URI scheme.
Timms, et al. Expires May 15, 2008 [Page 14]
Internet-Draft ENUM Encryption November 2007
9. Acknowledgements
The authors gratefully acknowledge the contributions of Romek
Szczesniak. He helped greatly to clarify some of the issues with
deployed security schemes and current implementations. We also
acknowledge the support of Khashayar Mahdavi whose original idea this
draft embodies, and Henri Asseily for driving the development of the
environment in which this is being used.
Timms, et al. Expires May 15, 2008 [Page 15]
Internet-Draft ENUM Encryption November 2007
10. References
10.1. Normative References
[1] Mealling, M., "Dynamic Delegation Discovery System (DDDS) Part
Three: The Domain Name System (DNS) Database", RFC 3403,
October 2002.
[2] Faltstrom, P. and M. Mealling, "The E.164 to Uniform Resource
Identifiers (URI) Dynamic Delegation Discovery System (DDDS)
Application (ENUM)", RFC 3761, April 2004.
[3] Masinter, L., "The "data" URL scheme", RFC 2397, August 1998.
[4] Bradner, S., "Key words for use in RFCs to Indicate Requirement
Levels", BCP 14, RFC 2119, March 1997.
[5] Josefsson, S., "The Base16, Base32, and Base64 Data Encodings",
RFC 3548, July 2003.
10.2. Informative References
[6] Mockapetris, P., "Domain names - concepts and facilities",
STD 13, RFC 1034, November 1987.
[7] Mockapetris, P., "Domain names - implementation and
specification", STD 13, RFC 1035, November 1987.
[8] Berners-Lee, T., Fielding, R., and L. Masinter, "Uniform
Resource Identifier (URI): Generic Syntax", STD 66, RFC 3986,
January 2005.
[9] Arends, R., Austein, R., Larson, M., Massey, D., and S. Rose,
"Protocol Modifications for the DNS Security Extensions",
RFC 4035, March 2005.
[10] Atkins, D. and R. Austein, "Threat Analysis of the Domain Name
System (DNS)", RFC 3833, August 2004.
Timms, et al. Expires May 15, 2008 [Page 16]
Internet-Draft ENUM Encryption November 2007
Authors' Addresses
Ben Timms
Telnic
8 Wilfred Street
London SW1E 6PL
United Kingdom
Email: btimms@telnic.org
Jim Reid
Telnic
8 Wilfred Street
London SW1E 6PL
United Kingdom
Email: jim@telnic.org
Jakob Schlyter
Kirei AB
P.O. Box 53204
Goteborg SE-400 16
Sweden
Email: jakob@kirei.se
Timms, et al. Expires May 15, 2008 [Page 17]
Internet-Draft ENUM Encryption November 2007
Full Copyright Statement
Copyright (C) The IETF Trust (2007).
This document is subject to the rights, licenses and restrictions
contained in BCP 78, and except as set forth therein, the authors
retain all their rights.
This document and the information contained herein are provided on an
"AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS
OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY, THE IETF TRUST AND
THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS
OR IMPLIED, INCLUDING 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.
Intellectual Property
The IETF takes no position regarding the validity or scope of any
Intellectual Property Rights or other rights that might be claimed to
pertain to the implementation or use of the technology described in
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
made any independent effort to identify any such rights. Information
on the procedures with respect to rights in RFC documents can be
found in BCP 78 and BCP 79.
Copies of IPR disclosures made to the IETF Secretariat and any
assurances of licenses to be made available, or the result of an
attempt made to obtain a general license or permission for the use of
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
copyrights, patents or patent applications, or other proprietary
rights that may cover technology that may be required to implement
this standard. Please address the information to the IETF at
ietf-ipr@ietf.org.
Acknowledgment
Funding for the RFC Editor function is provided by the IETF
Administrative Support Activity (IASA).
Timms, et al. Expires May 15, 2008 [Page 18]