Internet DRAFT - draft-ietf-smime-ibepkg
draft-ietf-smime-ibepkg
S/MIME Working Group G. Appenzeller
Internet Draft Voltage Security
Expires: December 2006 June 2006
Identity-based Encryption
Private Key Request Protocol
<draft-ietf-smime-ibepkg-00.txt>
Status of this Document
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
Abstract
This document describes a protocol to request private keys from a
Private Key Generator (PKG) for an identity-based encryption system.
Table of Contents
1. Introduction...................................................2
1.1. Terminology...............................................2
2. Overview.......................................................2
3. Private Key Request............................................3
3.1. Request Structure.........................................3
3.2. Authentication............................................4
Appenzeller Expires December 2006 [Page 1]
Internet-Draft IBE Private Key Request June 2006
4. Server Response Format.........................................4
4.1. Response containing a Private Key.........................5
4.2. Responses containing a Redirect...........................6
4.3. Responses indicating an Error.............................6
5. ASN.1 Module...................................................8
6. Security Considerations........................................9
7. IANA Considerations............................................9
8. References.....................................................9
8.1. Normative References......................................9
Author's Address.................................................10
Intellectual Property Statement..................................10
Disclaimer of Validity...........................................11
Copyright Statement..............................................11
Acknowledgment...................................................11
1. Introduction
An identity-based encryption system [IBEARCH] allows the encryption
of messages using a user’s identity plus a set of public parameters.
For decryption users need a private key that is generated by a
private key generator. This document defines a protocol to retrieve
private keys from the private key generator (PKG) of an IBE system.
This document does not describe the actual algorithms used for
encryption or the mathematical structure of the public parameters,
they are described in [IBCS]. It also does not describe the
communication protocol to retrieve public parameters, it is described
in [IBEPPS].
1.1. 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 [KEY].
2. Overview
In an identity-based encryption (IBE) system messages are encrypted
using a public key that is locally calculated from public parameters
and a user’s identity and decrypted using a private key that
corresponds to the user’s public key. These private keys are
generated by a private key generator (PKG) based on a global secret
called a master secret.
When requesting a private key, a client has to transmit two
parameters:
1. The identity it is requesting a key for
Appenzeller Expires December 2006 [Page 2]
Internet-Draft IBE Private Key Request June 2006
2. Authentication credentials
These two are often not the same as a single user may have access to
multiple aliases. For example an email user may have access to the
keys that correspond to two different email addresses, e.g.
bob@example.com and bob.smith@example.com.
This document defines the protocol to request private keys, a minimum
user authentication method for interoperability, and how to pass
authentication credentials to the server. It assumes that a client
has already determined the URL of the PKG. This can be done from
hints included in the IBE message format [IBCMS] and the system
parameters of the IBE system [IBEPPS].
3. Private Key Request
To request a private key, a client performs a HTTP POST method as
defined in [RFC2616]. The request MUST happen over a secure protocol.
The requesting client MUST support either SSL v 3.0 [SSL3] protocol
or TLS v 1.1 [TLS]. When requesting the URL the client MUST abort the
key request if the server certificate verification of the SSL or TLS
connection fails [RFC2618]. Doing so is critical to protect the
authentication credentials and the private key against man-in-the-
middle attacks when it is transmitted from the key server to the
client.
3.1. Request Structure
The POST method contains in its body the following XML structure:
<ibe:request xmlns:ibe=\"http://www.ietf.org/tbd/ibepkg\">
<ibe:header>
<ibe:client version="clientID"/>
</ibe:header>
<ibe:body>
<ibe:keyRequest>
<ibe:algorithm>
<oid> algorithmOID </oid>
</ibe:algorithm>
<ibe:id>
ibeIdentityInfo
</ibe:id>
</ibe:keyRequest>
</ibe:body>
</ibe:request>
Appenzeller Expires December 2006 [Page 3]
Internet-Draft IBE Private Key Request June 2006
A <ibe:request> SHOULD include a <ibe:clientID> element that
identifies the client type and client version.
A key request MUST contain a valid ibeIdentityInfo that the private
key is requested for. This identity is the BASE64 encoding of the DER
encoding of the ASN.1 structure IBEIdentityInfo as defined in
[IBECMS].
A key request MUST contain a <ibe:algorithm> element that contains a
XER encoded ASN.1 OBJECT IDENTIFIER that identifies algorithm for
which a key is requested. OIDs for the BB1 and BF algorithms are
listed in [IBCS].
A client MAY include optional additional XML elements in the
<ibe:body> part of the key request.
3.2. Authentication
When a client requests a key from a PKG, the PKG SHOULD authenticate
the client before issuing the key. Authentication may either be done
through the key request structure or as part of the secure transport
protocol.
A client or server implementing the request protocol MUST support
HTTP Basic Auth as described in [RFC2617]. A client and server SHOULD
also support HTTP Digest Auth as defined in [RFC2617].
For authentication methods that are not done by the transport
protocol, a client MAY include additional authentication information
in xml elements in the body part of the key request. If a client does
not know how to authenticate to a server, the client MAY send a key
request without authentication information. If the key server
requires the client to authenticate externally, it MAY reply with a
201 response code as defined below to redirect the client to the
correct authentication mechanism.
4. Server Response Format
The key server replies to the HTTP request with an HTTP response. If
the response has a redirect, client error or server error status
code, the client MUST abort the key request and fail.
If the PKG replies with a HTTP response that has a status code
indicating success, the body of the reply MUST contain the following
XML structure:
Appenzeller Expires December 2006 [Page 4]
Internet-Draft IBE Private Key Request June 2006
<ibe:response xmlns:ic="http://www.ietf.org/tbd/icsip">
<ibe:responseType value="responseCode"/>
<ibe:body>
bodyTags
</ibe:body>
</ibe:response>
The responseCode describes the type of response from the key server.
The list of currently defined response codes is:
100 KEY_FOLLOWS
101 RESERVED
201 FOLLOW_ENROLL_URL
300 SYSTEM_ERROR
301 INVALID_REQUEST
303 CLIENT_OBSOLETE
304 AUTHORIZATION DENIED
4.1. Response containing a Private Key
If the key request was successful, the key server responds with KEY
FOLLOWS, and the <ibe:body> must contain a <ibe:privateKey> tag with
a valid private key. An example of this is shown below.
<ibe:response xmlns:ic=" http://www.ietf.org/tbd/icsip">
<ibe:responseType value="100"/>
<ibe:body>
<ibe:privateKey>
privateKey
</ibe:privateKey>
</ibe:body>
</ibe:response>
The privateKey is the Base64 encoding of the DER encoding of the
following ASN.1 structure:
IBEPrivateKeyReply ::= SEQUENCE {
pkgIdentity IBEIdentityInfo,
pgkAlgorithm OBJECT IDENTIFIER
pkgKeyData OCTET STRING
pkgOptions SEQUENCE OF Extensions
}
The pkgIdentity is an IBEIdentityInfo structure as defined in
[IBECMS]. It MUST be identical to the IBEIdentityInfo structure that
was sent in the key request.
Appenzeller Expires December 2006 [Page 5]
Internet-Draft IBE Private Key Request June 2006
The pkgAlgorithm is an OID that identifies the algorithm of the
returned private key. The OIDs for the BB and BF algorithms are
defined in [IBCS].
The pkgKeyData is a ASN.1 structure that contains the actual private
key. Private key formats for the BB and BF algorithms are defined in
[IBCS].
A server MAY pass back additional information to a client in the
pkgOptions structure. The contents of the structure are defined in
the ASN.1 module below.
4.2. Responses containing a Redirect
A Key Server MAY support authenticating user to external
authentication mechanism. If this is the case, the server replies to
the client with response code 201 and the body MUST contain a
<ibe:location> element that specifies the URL of the authentication
mechanism. An example is shown below.
<ibe:response xmlns:ic=" http://www.ietf.org/tbd/icsip">
<ibe:responseType value="201"/>
<ibe:body>
<ibe:location url="http://www.example.com/enroll.asp"/>
</ibe:body>
</ibe:response>
The client can now contact the authentication mechanism to obtain
authentication credentials. Once the client has obtained the
credential, it sends a new key request to the PKG with the correct
authentication token contained in the request.
4.3. Responses indicating an Error
If the server replies with a 3xx error code, the client MUST abort
the request and discard any data that is part of the response.
The meaning of the response codes for errors is as follows:
300 – This indicates an internal server error of the PKG.
301 – The request to the server is invalid or the server is not able
to fulfill this type of request.
303 – The server is not able to serve key requests for this type of
client. A client with a newer version of the protocol is required.
Appenzeller Expires December 2006 [Page 6]
Internet-Draft IBE Private Key Request June 2006
304 – The key request was processed correctly, but the authentication
credentials provided by the user were invalid, could not be verified,
or do not allow access to keys for this identity.
Appenzeller Expires December 2006 [Page 7]
Internet-Draft IBE Private Key Request June 2006
5. ASN.1 Module
This section defines the ASN.1 module for the encodings discussed in
section 4.
IBEPKG { joint-iso-itu(2) country(16) us(840) organization(1)
identicrypt(114334) ibcs(1) ibcs2(2) pks(1) module (5) version(1)
}
DEFINITIONS IMPLICIT TAGS ::= BEGIN
IMPORTS IBEIdentityInfo
FROM BFCMS
{ joint-iso-itu(2) country(16) us(840) organization(1)
identicrypt(114334) ibcs(1) cms(4) module(5) version(1)
};
ibcs OBJECT IDENTIFIER ::= { joint-iso-itu(2) country(16)
us(840) organization(1) identicrypt(114334) ibcs(1)
}
-- Private Key Format
IBEPrivateKeyReply ::= SEQUENCE {
pkgIdentity IBEIdentityInfo,
pgkKeyType OBJECT IDENTIFIER,
pkgKeyData OCTET STRING,
pkgOptions Extensions
}
Extensions ::= SEQUENCE OF Extension
Extension ::= SEQUENCE {
id OBJECT IDENTIFIER,
value OCTET STRING
}
ibeParamExt OBJECT IDENTIFIER ::= {
ibcs ibcs2(2) pks(1) extensions(2)
}
END
Appenzeller Expires December 2006 [Page 8]
Internet-Draft IBE Private Key Request June 2006
6. Security Considerations
This entire document relates to security considerations.
7. IANA Considerations
No further action by the IANA is necessary for the protocols
described in this document.
8. References
8.1. Normative References
[CMS] R. Housley, “Cryptographic Message Syntax,” RFC 3369, August
2002.
[KEY] S. Brander, “Key Words for Use in RFCs to Indicate Requirement
Levels,” BCP 14, RFC 2119, March 1997.
[P1363] IEEE P1363.3, “Standards Specifications for Public-Key
Cryptography,” 2001.
[SSL3] A. Frier, P. Karlton, and P. Kocher, "The SSL 3.0 Protocol",
Netscape Communications Corp., Nov 18, 1996.
[TLS] T. Dierks, E. Rescorla, “The Transport Layer Security Protocol
Version 1.1,” RFC 4346, April 2006.
[X509] ITU-T Recommendation X.509 (1997 E): Information Technology -
Open Systems Interconnection - The Directory: Authentication
Framework, June 1997.
[IBEARCH] L. Martin, M. Schertler, “Identity-based encryption
architecture,” draft-ietf-smime-ibearch-00.txt.
[IBCS] X. Boyen, L. Martin, “Identity-based cryptography standard
(IBCS) #1: supersingular curve implementations of the BF and
BB1 cryptosystems,” draft-ietf-smime-ibcs-00.txt.
[IBECMS] M. Schertler, L. Martin, “Using the Boneh-Franklin identity-
based encryption algorithm with the Cryptographic Message
Syntax (CMS),” draft-ietf-smime-bfibecms-01.txt.
[IBEPPS] G. Appenzeller, “Parameter and policy lookup for identity-
based encryption,” draft-ietf-smime-ibepkg-00.txt.
Appenzeller Expires December 2006 [Page 9]
Internet-Draft IBE Private Key Request June 2006
[RFC2396] Berners-Lee, T., Fielding, R., and L. Masinter, "Uniform
Resource Identifiers (URI): Generic Syntax", RFC 2396, August
1998.Author's Address
[RFC2616] Fielding, R., Gettys, J., Mogul, J., Frysyk, H., Masinter,
L., Leach, P. and T. Berners-Lee, "Hypertext Transfer Protocol
-- HTTP/1.1", RFC 2616, June 1999.
[RFC2617] Franks, J., Hallam-Baker, P., Hostetler, J., Lawrence, S.,
Leach, P., Luotonen, A., Sink, E. and L. Stewart, "HTTP
Authentication: Basic and Digest Access Authentication", RFC
2617, June 1999. [jg646]
Author's Address
Guido Appenzeller
Voltage Security
1070 Arastradero Rd Suite 100
Palo Alto CA 94304
Phone: +1 650 543 1280
Email: guido@voltage.com
Intellectual Property Statement
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.
Appenzeller Expires December 2006 [Page 10]
Internet-Draft IBE Private Key Request June 2006
Disclaimer of Validity
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 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.
Copyright Statement
Copyright (C) The Internet Society (2006).
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.
Acknowledgment
Funding for the RFC Editor function is currently provided by the
Internet Society.
Appenzeller Expires December 2006 [Page 11]