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
                   <draft-timms-encrypt-naptr-00.txt>

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:<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]