One document matched: draft-ietf-smime-ibearch-04.txt
Differences from draft-ietf-smime-ibearch-03.txt
G. Appenzeller
L. Martin
S/MIME Working Group Voltage Security
Internet Draft M. Schertler
Expires: January 2008 Tumbleweed Communications
July 2007
Identity-based Encryption Architecture
<draft-ietf-smime-ibearch-04.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 the security architecture required to
implement identity-based encryption, a public-key encryption
technology that uses a user's identity to generate their public
key.
Appenzeller, et al. Expires January 2008 [Page 1]
Internet-Draft IBE Architecture July 2007
Table of Contents
1. Introduction 3
1.1. Terminology 3
2. Identity-based Encryption 3
2.1. Overview 3
2.2. Sending a Message that is Encrypted Using IBE 4
2.2.1. Sender Obtains Recipient's Public Parameters 5
2.2.2. Construct and Send IBE-encrypts Message 6
2.3. Receiving and Viewing an IBE-encrypted Message 6
2.3.1. Recipient Obtains Public Parameters from PPS 7
2.3.2. Recipient Obtains IBE Private Key from PKG 8
2.3.3. Recipient Decrypts IBE-encrypted Message 8
3. Public Parameter Lookup 9
3.1. Request Method 10
3.2. Parameter and Policy Format 10
4. Private Key Request Protocol 13
4.1. Overview 13
4.2. Private Key Request 13
4.3. Request Structure 14
4.4. Authentication 15
4.5. Server Response Format 15
4.6. Response Containing a Private Key 16
4.7. Responses Containing a Redirect 17
4.8. Responses Indicating an Error 17
5. Security Considerations 18
5.1. Attacks that are outside the scope of this document 18
5.2. Attacks that are within the scope of this document 19
5.2.1. Attacks to which the protocols defined in this
document are susceptible 19
6. IANA Considerations 20
7. References 21
7.1. Normative References 21
Authors' Addresses 23
Intellectual Property Statement 23
Disclaimer of Validity 24
Copyright Statement 24
Acknowledgment 24
Appenzeller, et al. Expires January 2008 [Page 2]
Internet-Draft IBE Architecture July 2007
1. Introduction
This document describes the security architecture required to
implement identity-based encryption, a public-key encryption
technology that uses a user's identity as a public key.
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 [KEY].
2. Identity-based Encryption
2.1. Overview
Identity-based encryption (IBE) is a public-key encryption
technology that allows a public key to be calculated from an
identity and the corresponding private key to be calculated
from the public key. A public key can be calculated by anyone
who has the necessary mathematical parameters that are needed
for the calculation; a cryptographic secret is needed to
calculate a private key, and the calculation can only be
performed by a trusted server which has this secret.
Calculation of both the public and private keys in an IBE-
based system can occur as needed, resulting in just-in-time
key material. This contrasts with other public-key systems
[P1363], in which keys are generated randomly and distributed
prior to secure communication commencing. The ability to
calculate a recipient's public key, in particular, eliminates
the need for the sender and receiver in an IBE-based messaging
system to interact with each other, either directly or through
a proxy such as a directory server, before sending secure
messages.
This document describes an IBE-based messaging system and how
the components of the system work together. The components
required for a complete IBE messaging system are the
following:
Appenzeller, et al. Expires January 2008 [Page 3]
Internet-Draft IBE Architecture July 2007
o A Private-key Generator (PKG). The PKG contains the
cryptographic material, known as a master secret, for
generating an individual's IBE private key. A PKG
accepts an IBE user's private key request and after
successfully authenticating them in some way returns
the IBE private key.
o A Public Parameter Server (PPS). IBE System
Parameters include publicly sharable cryptographic
material, known as IBE public parameters, and policy
information for the PKG. A PPS provides a well-known
location for secure distribution of IBE public
parameters and policy information for the IBE PKG.
A logical architecture would be to have a PKG/PPS per a name
space, such as a DNS zone. The organization that controls the
DNS zone would also control the PKG/PPS and thus the
determination of which PKG/PSS to use when creating public and
private keys for the organization's members. In this case the
PPS URI can be uniquely created by the form of the identity
that it supports. This architecture would make it clear which
set of public parameters to use and where to retrieve them for
a given identity (i.e. an RFC822 address).
IBE encrypted messages can use standard message formats, such
as the Cryptographic Message Syntax [CMS]. How to use IBE with
CMS is defined in [IBECMS]. Unless explicitly noted otherwise,
all ASN.1 [DER] structures in this document are defined in the
ASN.1 module of [IBECMS].
Note that IBE algorithms are used only for encryption, so if
digital signatures are required they will need to be provided
by an additional mechanism.
2.2. Sending a Message that is Encrypted Using IBE
In order to send an encrypted message, an IBE user must
perform the following steps:
1. Obtain the recipient's public parameters
The recipient's IBE public parameters allow the creation
of unique public and private keys. A user of an IBE
system is capable of calculating the public key of a
recipient after he obtains the public parameters for
their IBE system. Once the public parameters are
obtained, IBE-encrypted messages can be sent.
Appenzeller, et al. Expires January 2008 [Page 4]
Internet-Draft IBE Architecture July 2007
2. Construct and Send IBE-encrypted Message
All that is needed, in addition to the IBE public
parameters, is the recipient's identity in order to
generate their public key for use in encrypting messages
to them. When this identity is the same as the identity
that a message would be addressed to, then no more
information is needed from a user to send someone a
secure message then is needed to send them an unsecured
message. This is one of the major benefits of an IBE-
based secure messaging system. Examples of identities
can be an individual, group, or role identifiers.
2.2.1. Sender Obtains Recipient's Public Parameters
The sender of a message obtains the IBE public parameters that
he needs for calculating the IBE public key of the recipient
from a PPS that is hosted at a well-known URI. The IBE public
parameters contain all of the information that the sender
needs to create an IBE-encrypted message except for the
identity of the recipient. Section 3 of this document
describes the URI where a PPS is located, the format of IBE
public parameters, and how to obtain them. The URI from which
users obtain IBE public parameters MUST be authenticated in
some way; PPS servers MUST support TLS 1.1 [TLS] to satisfy
this requirement. Section 3 also describes the way in which
identity formats are defined and a minimum interoperable
format that all PPSs and PKGs MUST support. This step is shown
below in Figure 1.
IBE Public Parameter Request
----------------------------->
Sender PPS
<-----------------------------
IBE Public Parameters
Figure 1 Requesting IBE Public Parameters
Appenzeller, et al. Expires January 2008 [Page 5]
Internet-Draft IBE Architecture July 2007
The sender of an IBE-encrypted message selects the PPS and
corresponding PKG based on his local security policy.
Different PPSs may provide public parameters that specify
different IBE algorithms or different key strengths, for
example, or require the use of PKGs that require different
levels of authentication before granting IBE private keys.
2.2.2. Construct and Send IBE-encrypts Message
To IBE-encrypt a message, the sender chooses a content-
encryption key key (CEK) and uses it to encrypt his message
and then encrypts the CEK with the recipient's IBE public key
as described in [CMS]. This operation is shown below in Figure
2. [IBCS] describes the algorithms needed to implement two
forms of IBE and [IBECMS] describes how to use the
Cryptographic Message Syntax (CMS) to encapsulate the
encrypted message along with the IBE information that the
recipient needs to decrypt the message.
CEK ----> Sender ----> IBE-encrypted CEK
^
|
|
Recipient's Identity
and IBE Public Parameters
Figure 2 Using an IBE Public-key Algorithm to Encrypt
2.3. Receiving and Viewing an IBE-encrypted Message
In order to read an encrypted message, a recipient of an IBE-
encrypted message parses the message as described in [IBECMS].
This gives him the URI he needs to obtain the IBE public
parameters required to perform IBE calculations as well as the
identity that was used to encrypt the message. Next the
recipient must carry out the following steps:
1. Obtain the recipient's public parameters
An IBE system's public parameters allow it to uniquely
create public and private keys. The recipient of an IBE-
encrypted message can decrypt an IBE-encrypted message
if he has both the IBE public parameters and the
necessary IBE private key. The PPS can also provide the
Appenzeller, et al. Expires January 2008 [Page 6]
Internet-Draft IBE Architecture July 2007
URI of the PKG where the recipient of an IBE-encrypted
message can obtain the IBE private keys.
2. Obtain the IBE private key from the PKG
To decrypt an IBE-encrypted message, in addition to the
IBE public parameters the recipient needs to obtain the
private key that corresponds to the public key that the
sender used. The IBE private key is obtained after
successfully authenticating to a private key generator
(PKG), a trusted third party that calculates private
keys for users. The recipient receives the IBE private
key over an HTTPS connection.
3. Decrypt IBE-encrypted message
The IBE private key decrypts the CEK (see section
2.2.2). The CEK is then used to decrypt encrypted
message.
The PKG may allow users other than the intended recipient to
receive some IBE private keys. Giving a mail filtering
appliance permission to obtain IBE private keys on behalf of
users, for example, can allow the appliance to decrypt and
scan encrypted messages for viruses or other malicious
features.
2.3.1. Recipient Obtains Public Parameters from PPS
Before he can perform any IBE calculations related to the
message that he has received, the recipient of an IBE-
encrypted message needs to obtain the IBE public parameters
that were used in the encryption operation. This operation is
shown below in Figure 3. The comments in Section 2.2.1 also
apply to this operation.
IBE Public Parameter Request
----------------------------->
Recipient PPS
<-----------------------------
IBE Public Parameters
Figure 3 Requesting IBE Public Parameters
Appenzeller, et al. Expires January 2008 [Page 7]
Internet-Draft IBE Architecture July 2007
2.3.2. Recipient Obtains IBE Private Key from PKG
To obtain an IBE private key, the recipient of an IBE-
encrypted message provides the IBE public key used to encrypt
the message and their authentication credentials to a PKG and
requests the private key that corresponds to the IBE public
key. Section 4 of this document defines the protocol for
communicating with a PKG as well as a minimum interoperable
way to authenticate to a PKG that all IBE implementations MUST
support. Because the security of IBE private keys is vital to
the overall security of an IBE system, IBE private keys MUST
be transported to recipients over a secure protocol. PKGs MUST
support TLS 1.1 [TLS] or its successors, using the latest
version supported by both parties, for transport of IBE
private keys. This operation is shown below in Figure 4.
IBE Private Key Request
---------------------------->
Recipient PKG
<----------------------------
IBE Private Key
Figure 4 Obtaining an IBE Private Key
2.3.3. Recipient Decrypts IBE-encrypted Message
After obtaining the necessary IBE private key, the recipient
uses that IBE private key and the corresponding IBE public
parameters to decrypt the CEK. This operation is shown below
in Figure 5. He then uses the CEK to decrypt the encrypted
message content as specified in [IBECMS].
IBE-encrypted CEK ----> Recipient ----> CEK
^
|
|
IBE Private Key
and IBE Public Parameters
Figure 5 Using an IBE Public-key Algorithm to Decrypt
Appenzeller, et al. Expires January 2008 [Page 8]
Internet-Draft IBE Architecture July 2007
3. Public Parameter Lookup
For an identity-based encryption (IBE) system to operate, the
sender, receiver and the private key generator (PKG) must
agree on a number of parameters, specifically:
1. The Public Parameters of the PKG. The public parameters
are part of the encryption (and in some cases decryption)
operation of the IBE system. Generation of public
parameters and the master secret, as well as the
mathematical structure of the public parameters for the
BF and BB1 algorithms are described in [IBCS].
2. The URI of the PKG. Knowledge of this URI allows
recipients to request a private key as described in
Section 4 of this document.
3. The schema to format the identity strings. When issuing a
private key, the PKG often wants to limit who can obtain
private keys. For example for an identity string that
contains "bob@example.com", only the owner of the
identity string should be able to request the private
key. To ensure that the PKG can interpret the identity
string for which a private key is requested, the
encryption engine and the PKG have to use the same schema
for identity strings. Identity schemas are described in
[IBECMS]
This section specifies how a component of an IBE system can
retrieve these parameters. A sending or receiving client MUST
allow configuration of these parameters manually, e.g. through
editing a configuration file. However for simplified
configuration a client MAY also implement the PP URI request
method described in this document to fetch the system
parameters based on a configured URI. This is especially
useful for federating between IBE systems. By specifying a
single URI a client can be configured to fetch all the
relevant parameters for a remote PKG. These public parameters
can then be used to encrypt messages to recipients who
authenticate to and retrieve private keys from that PKG.
The following section outlines the URI request method to
retrieve a parameter block and describes the structure of the
parameter block itself.
Appenzeller, et al. Expires January 2008 [Page 9]
Internet-Draft IBE Architecture July 2007
3.1. Request Method
The configuration URI SHOULD be an HTTPS URI [HTTP] of the
format:
http_URI = "https:" "//" host [ ":" port ] [ abs_path ]
An example URI for ibe system parameters is
https://ibe-0000.example.com/example.com.pp
To retrieve the IBE system parameters, the client SHOULD use
the HTTP GET method as defined in [HTTP]. The request MUST
happen over a secure protocol. The requesting client MUST
support TLS 1.1 [TLS] or its successors and SHOULD use the
latest version supported by both parties. When requesting the
URI the client MUST only accept the system parameter block if
the server identity was verified successfully by TLS 1.1 [TLS]
or its successors.
A successful GET request returns in its body the Base64
encoding of the DER-encoded [DER] IBESysParams structure that
is described in the next section. This structure MUST be
served as an application/octet-stream MIME type [RFC2046].
3.2. Parameter and Policy Format
The IBE System parameters are a set of
IBESysParams ::= SEQUENCE {
version INTEGER { v2(2) },
districtName UTF8String,
districtSerial INTEGER,
validity ValidityPeriod,
ibePublicParameters IBEPublicParameters,
ibeIdentitySchema OBJECT IDENTIFIER,
ibeParamExtensions IBEParamExtensions OPTIONAL
}
The version specifies the version of the IBESysParams format.
For the format described in this document it MUST be set to 2.
The district name is an UTF8String that MUST be a valid domain
name as defined by [DOM]. The districtSerial is a serial
number that represents a unique set of IBE public parameters.
If new parameters are published for a district, it MUST be
increased to a number greater than the previously-used serial
number.
Appenzeller, et al. Expires January 2008 [Page 10]
Internet-Draft IBE Architecture July 2007
The validity period or lifetime of a specific instance of the
IBESysParams is defined as follows:
ValidityPeriod ::= SEQUENCE {
notBefore GeneralizedTime,
notAfter GeneralizedTime
}
A client MUST verify that the date on which it utilizes the
IBE system parameters falls between the notBefore time and the
notAfter times of the IBE system parameters and SHOULD not use
the parameters if they do not.
IBE system parameters MUST be regenerated and republished
whenever the ibePublicParameters, ibeIdentitySchema, or
ibeParamExtensions change for a district. A client SHOULD
refetch the IBE system parameters at an application
configurable interval to ensure that it has the most current
version on the IBE system parameters.
It is possible to create identities for use in IBE that have a
time component, as described in [IBECMS]. If such an identity
is used, the time component of the identity MUST fall between
the notBefore time and the notAfter times of the IBE system
parameters.
IBEPublicParameters is a set of public parameters that
correspond to IBE algorithms that the PKG associated with this
district understands.
IBEPublicParameters ::= SEQUENCE (1..MAX) OF
IBEPublicParameter
IBEPublicParameter ::= SEQUENCE {
ibeAlgorithm OBJECT IDENTIFIER,
publicParameterData OCTET STRING
}
The ibeAlgorithm OID specifies an IBE algorithm. The
publicParameterData is a DER-encoded [DER] ASN.1 structure
that contains the actual cryptographic parameters. Its
specific structure depends on the algorithm. The OIDs for two
IBE algorithms, the Boneh-Franklin and Boneh-Boyen algorithms
and their publicParameterData structures are defined in
[IBCS].
Appenzeller, et al. Expires January 2008 [Page 11]
Internet-Draft IBE Architecture July 2007
The IBESysParams of a district MUST contain at least one
algorithm and MAY contain several algorithms. It MUST NOT
contain two or more IBEPublicParameter entries with the same
algorithm. A client that wants to use IBESysParams can chose
any of the algorithms specified in the publicParameterData
structure. A client MUST implement at least the Boneh-Franklin
algorithm and MAY implement the Boneh-Boyen and other
algorithms. If a client does not support any of the supported
algorithms it MUST generate an error message and fail.
ibeIdentitySchema is an OID that defines the type of
identities that are used with this district. The OIDs and the
required and optional fields for each OID are described in
[IBECMS].
IBEParamExtensions is a set of extensions that can be used to
define additional parameters that particular implementations
may require.
IBEParamExtensions ::= SEQUENCE OF IBEParamExtension
IBEParamExtension ::= SEQUENCE {
ibeParamExtensionOID OBJECT IDENTIFIER,
ibeParamExtensionValue OCTET STRING
}
The contents of the octet string are defined by the specific
extension type. The System Parameters of a district MAY have
any number of extensions, including zero.
The IBEParamExtension pkgURI defines the URI of the Private
Key Generator of the district. If the PKG is publicly
accessible, this extension SHOULD be present to allow the
automatic retrieval of private keys for recipients of
encrypted messages. For this extension the OCTET STRING
contains a UTF8String with the URI of the key server.
Appenzeller, et al. Expires January 2008 [Page 12]
Internet-Draft IBE Architecture July 2007
ibeParamExt OBJECT IDENTIFIER ::= {
ibcs ibcs3(3) parameter-extensions(2)
}
pkgURI OBJECT IDENTIFIER ::= { ibeParamExt pkgURI(1) }
4. Private Key Request Protocol
4.1. 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 for which it is requesting a key
2. Authentication credentials for the individual requesting
the key
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 section 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 URI of the
PKG. This can be done from hints included in the IBE message
format [IBECMS] and the system parameters of the IBE system.
4.2. Private Key Request
To request a private key, a client performs a HTTP POST method
as defined in [HTTP]. The request MUST happen over a secure
protocol. The requesting client MUST support TLS 1.1 [TLS] or
its successors, using the latest version supported by both the
client and the PKG. When requesting the URI the client MUST
verify the server certificate [RFC2818], and MUST abort the
key request if the server certificate verification of the TLS
Appenzeller, et al. Expires January 2008 [Page 13]
Internet-Draft IBE Architecture July 2007
connection fails. 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.
4.3. Request Structure
The POST method contains in its body the following XML
structure that MUST be encoded as an application/xhtml+xml
MIME type [RFC3236]:
<ibe:request xmlns:ibe="urn:ietf:params:xml:ns:ibe">
<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>
A <ibe:request> SHOULD include a <ibe:clientID> element, an
ASCII string 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 [DER] of the ASN.1 structure
IBEIdentityInfo as defined in [IBECMS].
A key request MUST contain a <ibe:algorithmOID> element that
contains a XER [XER] encoded ASN.1 OBJECT IDENTIFIER [DER]
that identifies the 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.
Appenzeller, et al. Expires January 2008 [Page 14]
Internet-Draft IBE Architecture July 2007
4.4. 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 [AUTH]. A client and
server SHOULD also support HTTP Digest Auth as defined in
[AUTH].
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.5. Server Response Format
The key server replies to the HTTP request with an HTTP
response. If the response contains a 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 that MUST be encoded as an
application/xhtml+xml MIME type [RFC3236]:
<ibe:response xmlns:ibe="urn:ietf:params:xml:ns:ibe">
<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:
Appenzeller, et al. Expires January 2008 [Page 15]
Internet-Draft IBE Architecture July 2007
100 KEY_FOLLOWS
101 RESERVED
201 FOLLOW_ENROLL_URI
300 SYSTEM_ERROR
301 INVALID_REQUEST
303 CLIENT_OBSOLETE
304 AUTHORIZATION DENIED
4.6. 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:ibe="urn:ietf:params:xml:ns:ibe">
<ibe:responseType value="100"/>
<ibe:body>
<ibe:privateKey>
privateKey
</ibe:privateKey>
</ibe:body>
</ibe:response>
The privateKey is the Base64 [B64] encoding of the DER
encoding [DER] 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.
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 an ASN.1 [DER] structure that contains the
actual private key. Private-key formats for the BB and BF
algorithms are defined in [IBCS].
Appenzeller, et al. Expires January 2008 [Page 16]
Internet-Draft IBE Architecture July 2007
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.7. 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 URI of the
authentication mechanism. Such a response MUST be encoded as
an application/xhtml+xml MIME type [RFC3236]. An example of
such a response is shown below.
<ibe:response xmlns:ibe="urn:ietf:params:xml:ns:ibe">
<ibe:responseType value="201"/>
<ibe:body>
<ibe:location URI="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 credentials contained in the
request.
4.8. 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.
304 - The key request was processed correctly, but the
authentication credentials provided by the user were invalid,
Appenzeller, et al. Expires January 2008 [Page 17]
Internet-Draft IBE Architecture July 2007
could not be verified, or do not allow access to keys for this
identity.
5. Security Considerations
5.1. Attacks that are outside the scope of this document
Attacks on the cryptographic algorithms that are used to
implement IBE are outside the scope of this document. Such
attacks are detailed in [IBCS], which defines parameters that
give 80-bit, 112-bit and 128-bit encryption strength. We
assume that capable administrators of an IBE system will
select parameters that provide a sufficient resistance to
cryptanalytic attacks by adversaries.
Attacks that give an adversary the ability to access or change
the information on a PPS or PKG, especially the cryptographic
material (referred to in this document as the master secret),
will defeat the security of an IBE system. In particular, if
the cryptographic material is compromised the adversary will
have the ability to recreate any user's private key and
therefore decrypt all messages protected with the
corresponding public key. To address this concern, it is
highly RECOMMENDED that best practices for physical and
operational security for PPS and PKG servers be followed and
that these servers be configured (sometimes known as hardened)
in accordance with best current practices [NIST]. An IBE
system SHOULD be operated in an environment where illicit
access is infeasible for attackers to obtain.
Attacks that require administrative or IBE user equivalent
access to machines used by either the client or the server
components defined in this document are also outside the scope
of this document.
We also assume that all administrators of a system
implementing the protocols that are defined in this document
are trustworthy and will not abuse their authority to bypass
the security provided by an IBE system. Similarly, we assume
that users of an IBE system will behave responsibly, not
sharing their authentication credentials with others. Thus
attacks that require such assumptions are outside the scope of
this document.
Appenzeller, et al. Expires January 2008 [Page 18]
Internet-Draft IBE Architecture July 2007
5.2. Attacks that are within the scope of this document
Attacks within the scope of this document are those that allow
an adversary to:
o passively monitor information transmitted between
users of an IBE system and the PPS and PKG
o masquerade as a PPS or PKG
o perform a DOS attack on a PPS or PKG
o easily guess an IBE users authentication credential
5.2.1. Attacks to which the protocols defined in this document
are susceptible
All communications between users of an IBE system and the PPS
or PKG are protected using TLS 1.1 [TLS]. The IBE system
defined in this document provides no additional security
protections for the communications between IBE users and the
PPS or PKG. Therefore the described IBE system is completely
dependent on the TLS security mechanisms for authentication of
the PKG or PPS server and for confidentiality and integrity of
the communications. Should there be a compromise of the TLS
security mechanisms, the integrity of all communications
between an IBE user and the PPS or PKG will be suspect.
The protocols defined in this document do not explicitly
defend against an attacker masquerading as a legitimate IBE
PPS or PKG. The protocols rely on the server authentication
mechanism of TLS [TLS]. In addition to the TLS server
authentication mechanism IBE client software can provide
protection against this possibility by providing user
interface capabilities that allows users to visually determine
that a connection to PPS and PKG servers is legitimate. This
additional capability can help ensure that users cannot easily
be tricked into providing valid authorization credentials to
an attacker.
The protocols defined in this document are also vulnerable to
attacks against an IBE PPS or PKG. Denial of service attacks
against either component can result in users unable to encrypt
or decrypt using IBE, and users of an IBE system SHOULD take
the appropriate countermeasures [RFC2827, RFC3882] that their
use of IBE requires.
Appenzeller, et al. Expires January 2008 [Page 19]
Internet-Draft IBE Architecture July 2007
The IBE user authentication method selected by an IBE PKG
SHOULD be of sufficient strength to prevent attackers from
easily guessing the IBE user's authentication credentials
through trial and error.
6. IANA Considerations
The XML defined in this document will be registered with the
IANA per the instructions in RFC 3688, The IETF XML Registry.
URI:
urn:ietf:params:xml:ns:ibe
Registrant Contact:
Luther Martin
Voltage Security
1070 Arastradero Rd Suite 100
Palo Alto CA 94304
Phone: +1 650 543 1280
Email: martin@voltage.com
XML:
Appenzeller, et al. Expires January 2008 [Page 20]
Internet-Draft IBE Architecture July 2007
BEGIN
<ibe:request xmlns:ibe="urn:ietf:params:xml:ns:ibe">
<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>
<ibe:response xmlns:ibe="urn:ietf:params:xml:ns:ibe">
<ibe:responseType value="responseCode"/>
<ibe:body>
bodyTags
</ibe:body>
</ibe:response>
END
7. References
7.1. Normative References
[AUTH] J. Franks, et al., "HTTP Authentication: Basic and
Digest Access Authentication", RFC 2617, June 1999.
[B64] N. Freed and N. Borenstein, Multipurpose Internet Mail
Extensions(MIME) Part One: Format of Internet Message
Bodies," RFC 2045, November 1996.
[CMS] R. Housley, "Cryptographic Message Syntax," RFC 3369,
August 2002.
[DER] ITU-T Recommendation X.680: Information Technology -
Abstract Syntax Notation One, 1997.
[DOM] P. Mockapetris, "Domain Names - Implementation and
Specification," RFC 1035, November 1987.
[HTTP] R. Fielding, et al., "Hypertext Transfer Protocol --
HTTP/1.1", RFC 2616, June 1999.
Appenzeller, et al. Expires January 2008 [Page 21]
Internet-Draft IBE Architecture July 2007
[IBCS] X. Boyen and L. Martin, "Identity-Based Cryptography
Standard (IBCS) #1: Supersingular Curve Implementations
of the BF and BB1 Cryptosystems," draft-ietf-martin-
ibcs-00.txt, September 2006.
[IBECMS] L. Martin and M. Schertler, "Using the Boneh-Franklin
identity-based encryption algorithm with the
Cryptographic Message Syntax (CMS)," draft-ietf-smime-
bfibecms-01.txt, September 2006.
[KEY] S. Brander, "Key Words for Use in RFCs to Indicate
Requirement Levels," BCP 14, RFC 2119, March 1997.
[NIST] M. Souppaya, J. Wack and K. Kent, "Security
Configuration Checklist Program for IT Products -
Guidance for Checklist Users and Developers," NIST
Special Publication SP 800-70, May 2005.
[P1363] IEEE P1363, "Standards Specifications for Public-Key
Cryptography," 2001.
[RFC2046] N. Freed and N. Borenstein, "Multipurpose Internet
Mail Extensions (MIME) Part Two: Media Types," RFC 2046,
November 1996.
[RFC2818] E. Rescorla, "HTTP over TLS," RFC 2818, May 2000.
[RFC2827] P. Ferguson and D. Senie, "Network Ingress
Filtering: Defeating Denial of Service Attacks which
employ IP Source Address Spoofing," RFC 2827, BCP 38,
May 2000.
[RFC3236] M. Baker and P. Stark, "The 'application/xhtml+xml'
Media Type," RFC 3236, January 2002.
[RFC3882] D. Turk, "Configuring BGP to Block Denial-of-Service
Attacks," RFC 3882, September 2004.
[TLS] T. Dierks and E. Rescorla, "The Transport Layer Security
(TLS) Protocol Version 1.1," RFC 4346, April 2006.
[URI] T. Berners-Lee, R. Fielding, and L. Masinter, "Uniform
Resource Identifiers (URI): Generic Syntax", RFC 2396,
August 1998.
Appenzeller, et al. Expires January 2008 [Page 22]
Internet-Draft IBE Architecture July 2007
[XER] ITU-T Recommendation X.693 - Information Technology -
ASN.1 Encoding Rules - XML Encoding Rules (XER),
December 2001.
Authors' Addresses
Guido Appenzeller
Voltage Security
1070 Arastradero Rd Suite 100
Palo Alto CA 94304
Phone: +1 650 543 1280
Email: guido@voltage.com
Luther Martin
Voltage Security
1070 Arastradero Rd Suite 100
Palo Alto CA 94304
Phone: +1 650 543 1280
Email: martin@voltage.com
Mark Schertler
Tumbleweed Communications
700 Saginaw Dr
Redwood City CA 94063
Phone: +1 650 216 2039
Email: mark.schertler@tumbleweed.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
Appenzeller, et al. Expires January 2008 [Page 23]
Internet-Draft IBE Architecture July 2007
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.
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, 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.
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.
Acknowledgment
Funding for the RFC Editor function is currently provided by
the Internet Society.
Appenzeller, et al. Expires January 2008 [Page 24]
| PAFTECH AB 2003-2026 | 2026-04-23 20:30:25 |