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 5.3. Hash 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:" 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]