G. Appenzeller
Stanford University
S/MIME Working Group L. Martin
Internet Draft Voltage Security
Intended status: Standards Track M. Schertler
Expires: April 2009 Tumbleweed Communications
October 2008
Identity-based Encryption Architecture and Supporting Data
Structures
<draft-ietf-smime-ibearch-09.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 as a public key. It
also defines data structures that can be used to implement the
technology.
Appenzeller, et al. Expires April 2009 [Page 1]
Internet-Draft IBE Architecture October 2008
Table of Contents
1. Introduction.........................................4
1.1. Terminology.....................................4
2. Identity-based Encryption............................4
2.1. Overview........................................4
2.2. Sending a Message that is IBE-encrypted.........6
2.2.1. Sender Obtains Public Parameters...........6
2.2.2. Construct and Send IBE-encrypted Message...7
2.3. Receiving and Viewing an IBE-encrypted Message..8
2.3.1. Recipient Obtains Public Parameters........9
2.3.2. Recipient Obtains IBE Private Key..........9
2.3.3. Recipient Decrypts IBE-encrypted Message..10
3. Identity Format.....................................10
4. Public Parameter Lookup.............................11
4.1. Request Method.................................12
4.2. Parameter and Policy Format....................12
4.3. The application/ibe-pp-data MIME type..........16
5. Private Key Request Protocol........................17
5.1. Overview.......................................17
5.2. Private Key Request............................18
5.3. Request Structure..............................18
5.4. The application/ibe-key-request+xml MIME type..20
5.5. Authentication.................................21
5.6. Server Response Format.........................21
5.6.1. The IBE100 responseCode...................22
5.6.2. The IBE101 responseCode...................23
5.6.3. The IBE201 responseCode...................23
5.6.4. The IBE300 responseCode...................24
5.6.5. The IBE301 responseCode...................24
5.6.6. The IBE303 responseCode...................25
5.6.7. The IBE304 responseCode...................25
5.7. The application/ibe-pkg-reply+xml MIME type....25
6. ASN.1 Module........................................26
7. Security Considerations.............................28
7.1. Attacks outside the scope of this document.....28
7.2. Attacks within the scope of this document......29
7.2.1. Attacks on the protocols defined in this
document.........................................29
8. IANA Considerations.................................30
8.1. Media types....................................30
8.2. XML namespace..................................30
9. References..........................................32
9.1. Normative References...........................32
9.2. Informative References.........................33
Authors' Addresses.....................................34
Appenzeller, et al. Expires April 2009 [Page 2]
Internet-Draft IBE Architecture October 2008
Intellectual Property Statement........................34
Disclaimer of Validity.................................35
Copyright Statement....................................35
Acknowledgment.........................................35
Appenzeller, et al. Expires April 2009 [Page 3]
Internet-Draft IBE Architecture October 2008
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. It also defines data structures that are
required to implement the technology. Objects used in this
implementation are defined using ASN.1 [ASN1] and XML
[XML].
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 a set of public mathematical parameters and
for the corresponding private key to be calculated from an
identity, a set of public mathematical parameters and a
domain-wide secret value. An IBE public key can be
calculated by anyone who has the necessary public
parameters; a cryptographic secret is needed to calculate
an IBE 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
system can occur as needed, resulting in just-in-time
creation of both public and private keys. This contrasts
with other public-key systems [P1363], in which keys are
generated randomly and distributed prior to secure
communication commencing, and in which private encryption
keys need to be securely archived to allow for their
recovery if they are lost or destroyed. The ability to
calculate a recipient's public key, in particular,
eliminates the need for the sender and receiver to interact
with each other, either directly or through a proxy such as
a directory server, before sending secure messages.
A characteristic of IBE systems that differentiates them
from other server-based cryptographic systems is that once
Appenzeller, et al. Expires April 2009 [Page 4]
Internet-Draft IBE Architecture October 2008
a set of public parameters is fetched, encryption is
possible with no further communication with a server during
the validity period of the public parameters. Other server-
based systems may require a connection to a server for each
encryption operation.
This document describes an IBE-based messaging system, how
the components of such a system work together, and defines
data structures that support the operation of such a
system. The server components required for such a system
are the following:
o A Public Parameter Server (PPS). IBE Public
parameters include publicly-sharable cryptographic
material, known as IBE public parameters, and
policy information for an associated PKG. A PPS
provides a well-known location for secure
distribution of IBE public parameters and policy
information that describe the operation of a PKG.
Section 4 of this document describes the protocol
that a client uses to communicate with a PPS.
o A Private-key Generator (PKG). The PKG stores and
uses cryptographic material, known as a master
secret, which is used for generating a user's IBE
private key. A PKG accepts an IBE user's private
key request, and after successfully authenticating
them in some way, returns their IBE private key.
Section 5 of this document describes the protocol
that a client uses to communicate with a PKG.
A logical architecture of such an IBE system would be to
have a PKG and PPS per name space, such as a DNS zone. The
organization that controls the DNS zone would also control
the PKG and PPS and thus the determination of which PKG or
PSS to use when creating public and private keys for the
organization's members. In this case the PPS URI/IRI can be
uniquely created from a user-friendly name for the form of
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 (for example, an RFC
2821 address [SMTP]).
IBE-encrypted messages can use standard message formats,
such as the Cryptographic Message Syntax [CMS]. How to use
IBE with the CMS to encrypt e-mail messages is defined in
[IBECMS].
Appenzeller, et al. Expires April 2009 [Page 5]
Internet-Draft IBE Architecture October 2008
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.
Section 3 of this document describes the identity format
that all PPS and PKG servers MUST support.
2.2. Sending a Message that is IBE-encrypted
In order to send an encrypted message, an IBE user must
perform the following steps:
1. Obtain the recipient's public parameters
The public parameters of the recipient's system are
needed to perform IBE operations. Once a user obtains
these public parameters, he can perform IBE
encryption operations. These public parameters may be
available at a PPS that is operated by the user's
organization, one that is operated by the sender's
organization, or by a different organization
entirely.
2. Construct and Send IBE-encrypted Message
In addition to the IBE public parameters, all that is
needed to construct an IBE-encrypted message is the
recipient's identity, the form of which is defined by
the public parameters. 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 them an encrypted message then is needed to send
them an unencrypted 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 Public Parameters
The sender of a message obtains the IBE public parameters
that he needs from a PPS that is hosted at a well-known URI
or IRI. 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 4 of this document describes the URI [URI] or IRI
[IRI] of a PPS, the format of IBE public parameters, and
how to obtain them from a PPS. The URI or IRI from which
Appenzeller, et al. Expires April 2009 [Page 6]
Internet-Draft IBE Architecture October 2008
users obtain IBE public parameters MUST be authenticated in
some way. PPS servers MUST support TLS 1.1 [TLS] to satisfy
this requirement and SHOULD support its successors. This
step is shown below in Figure 1.
IBE Public Parameter Request
----------------------------->
Sender PPS
<-----------------------------
IBE Public Parameters
Figure 1 Requesting IBE Public Parameters
The sender of an IBE-encrypted message selects the PPS and
corresponding PKG based on his local security policy.
Different PPS servers may provide public parameters that
specify different IBE algorithms or different key
strengths, for example, or require the use of PKG servers
that require different levels of authentication before
granting IBE private keys.
2.2.2. Construct and Send IBE-encrypted Message
To IBE-encrypt a message, the sender chooses a content-
encryption 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. The document [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 an e-mail
message.
CEK ----> Sender ----> IBE-encrypted CEK
^
|
|
Recipient's Identity
and IBE Public Parameters
Figure 2 Using an IBE Public-key Algorithm to Encrypt
Appenzeller, et al. Expires April 2009 [Page 7]
Internet-Draft IBE Architecture October 2008
2.3. Receiving and Viewing an IBE-encrypted Message
In order to read an IBE-encrypted message, a recipient of
such a message parses the message to find the URI or IRI he
needs to obtain the IBE public parameters that are required
to perform IBE calculations as well as a component of the
identity that was used to encrypt the message. Next the
recipient carries out the following steps:
1. Obtain the IBE 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
public parameters also provide the URI or IRI 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
then receives the IBE private key over a secure
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.
It may be useful for a PKG to 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.
Appenzeller, et al. Expires April 2009 [Page 8]
Internet-Draft IBE Architecture October 2008
2.3.1. Recipient Obtains Public Parameters
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. Because the use of the correct
public parameters is vital to the overall security of an
IBE system, IBE public parameters MUST be transported to
recipients over a secure protocol. PPS servers MUST support
TLS 1.1 [TLS] or its successors, using the latest version
supported by both parties, for transport of IBE public
parameters. In addition, users MUST verify that the subject
name in the server certificate matches the URI/IRI of the
PPS. 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
2.3.2. Recipient Obtains IBE Private Key
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 5 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. PKG servers 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.
Appenzeller, et al. Expires April 2009 [Page 9]
Internet-Draft IBE Architecture October 2008
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. An example of how to do this
with e-mail messages is given in [IBECMS].
IBE-encrypted CEK ----> Recipient ----> CEK
^
|
|
IBE Private Key
and IBE Public Parameters
Figure 5 Using an IBE Public-key Algorithm to Decrypt
3. Identity Format
An IBEIdentityInfo type MUST be used to represent the
identity of a recipient. This is defined to be the
following:
IBEIdentityInfo ::= SEQUENCE {
district IA5String,
serial INTEGER,
identityType OBJECT IDENTIFIER,
identityData OCTET STRING
}
An IBEIdentityInfo type is used to calculate public and
private IBE keys. Because of this, such a structure is
typically DER-encoded [DER].
Appenzeller, et al. Expires April 2009 [Page 10]
Internet-Draft IBE Architecture October 2008
The fields of an IBEIdentityInfo structure have the
following meanings.
The district is an IA5String that represents the URI [URI]
or IRI [IRI] where the recipient of an IBE-encrypted
message can retrieve the IBE public parameters needed to
encrypt or decrypt a message encrypted for this identity.
Applications MUST support the method described in Section 4
for doing this and MAY support other methods. IRIs MUST be
handled according to the procedures specified in Section
7.4 of [PKIX].
The serial is an INTEGER that defines a unique set of IBE
public parameters in the event that more than one set of
parameters is used by a single district.
identityType is an OBJECT IDENTIFIER that defines the
format that the identityData field is encoded with.
An example of a useful IBEIdentityInfo type is given in
[IBECMS]. This example is tailored to the use of IBE in
encrypting e-mail. Because the information that comprises
an identity is very dependent on the application, this
document does not define an identityType that all
applications MUST support.
4. Public Parameter Lookup
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, for
example, through editing a configuration file. However for
simplified configuration a client SHOULD also implement the
public parameter URI/IRI request method described in this
document to fetch the public parameters based on a
configured URI/IRI. This is especially useful for
federating between IBE systems. By specifying a single
URI/IRI, 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/IRI request method
to retrieve a parameter block and describes the structure
of the parameter block itself. The technique for fetching
IBE public parameters using the process defined in this
Appenzeller, et al. Expires April 2009 [Page 11]
Internet-Draft IBE Architecture October 2008
section is indicated by the OBJECT IDENTIFIER uriPPSOID,
which is defined to be the following:
uriPPSOID OBJECT IDENTIFIER ::= {
joint-iso-itu-t(2) country(16) us(840)
organization(1) identicrypt(114334)
pps-schemas(3) ic-schemas(1) pps-uri(1) version(1)
}
4.1. Request Method
The configuration URI/IRI SHOULD be an HTTPS URI [HTTP] and
MAY additionally support IRIs [IRI] for this purpose. To
retrieve the IBE public 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/IRI 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
[B64] encoding of the DER-encoded [DER] IBESysParams
structure that is described in the next section. This
structure MUST be encoded as an application/ibe-pp-data
MIME type.
4.2. Parameter and Policy Format
The IBE Public parameters are a structure of the form
IBESysParams ::= SEQUENCE {
version INTEGER { v2(2) },
districtName IA5String,
districtSerial INTEGER,
validity ValidityPeriod,
ibePublicParameters IBEPublicParameters,
ibeIdentityType OBJECT IDENTIFIER,
ibeParamExtensions IBEParamExtensions OPTIONAL
}
The fields of an IBESysParams structure have the following
meanings.
Appenzeller, et al. Expires April 2009 [Page 12]
Internet-Draft IBE Architecture October 2008
The version field specifies the version of the IBESysParams
format. For the format described in this document, this
MUST be set to 2.
The districtName field is an IA5String that MUST be an
encoding of an URI [URI] or IRI [IRI]. IRIs MUST be handled
according to the procedures specified in Section 7.4 of
[PKIX].
The districtSerial field is an integer that represents a
unique set of IBE public parameters that are available at
the URI or IRI defined by the districtName. If new
parameters are published for a districtName, the
districtSerial MUST be increased to a number greater than
the previously-used districtSerial.
The validity field defines lifetime of a specific instance
of the IBESysParams and is defined to be the following:
ValidityPeriod ::= SEQUENCE {
notBefore GeneralizedTime,
notAfter GeneralizedTime
}
The values of notBefore and netAfter MUST be expressed in
Greenwich Mean Time(Zulu), MUST include seconds (i.e. times
are always YYYYMMDDHHMMSSZ), even where the number of
seconds is equal to zero and MUST be expressed to the
nearest second.
A client MUST verify that the date on which it uses the IBE
public parameters falls between the notBefore time and the
notAfter time of the IBE public parameters and MUST NOT use
the parameters for IBE encryption operations if they do
not.
IBE public parameters MUST be regenerated and republished
whenever the values of ibePublicParameters,
ibeIdentityType, or ibeParamExtensions change for a
district. A client SHOULD refetch the IBE public parameters
at an application-configurable interval to ensure that it
has the most current version on the IBE public parameters.
It is possible to create identities for use in IBE that
have a time component, as described in [IBECMS], for
example. If such an identity is used, the time component of
Appenzeller, et al. Expires April 2009 [Page 13]
Internet-Draft IBE Architecture October 2008
the identity MUST fall between the notBefore time and the
notAfter times of the IBE public parameters.
IBEPublicParameters is a structure containing public
parameters that correspond to IBE algorithms that the PKG
supports. This structure is defined to be following:
IBEPublicParameters ::= SEQUENCE (1..MAX) OF
IBEPublicParameter
IBEPublicParameter ::= SEQUENCE {
ibeAlgorithm OBJECT IDENTIFIER,
publicParameterData OCTET STRING
}
The ibeAlgorithm OBJECT IDENTIFIER specifies an IBE
algorithm. The OIDs for two IBE algorithms, the Boneh-
Franklin and Boneh-Boyen algorithms and their
publicParameterData structures are defined in [IBCS].
The publicParameterData is a DER-encoded [DER] structure
that contains the actual cryptographic parameters. Its
specific structure depends on the algorithm.
The IBESysParams of a district MUST contain an OID that
identifies at least one algorithm and MAY contain OIDs that
identify more than one algorithm. 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 [IBCS] and MAY implement the Boneh-Boyen
[IBCS] and other algorithms. If a client does not support
any of the supported algorithms it MUST generate an error
message and fail.
ibeIdentityType 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
application dependent. An example of this is given in
[IBECMS], which defines an identity format suitable for use
in encrypting e-mail.
IBEParamExtensions is a set of extensions that can be used
to define additional parameters that particular
implementations may require. This structure is defined as
follows:
Appenzeller, et al. Expires April 2009 [Page 14]
Internet-Draft IBE Architecture October 2008
IBEParamExtensions ::= SEQUENCE OF IBEParamExtension
IBEParamExtension ::= SEQUENCE {
ibeParamExtensionOID OBJECT IDENTIFIER,
ibeParamExtensionValue OCTET STRING
}
The contents of the octet string ibeParamExtensionValue are
defined by the specific ibeParamExtensionOID. The
IBEParamExtensions of a district MAY have any number of
extensions, including zero. One example of extensions that
have been used in practice is to provide a URI where an
encrypted message can be decrypted and viewed by users of
webmail systems. Another example is to provide commercial
branding information, so that a bank can provide a
different user interface for customers of different lines
of business.
If a client receives Public parameters that contain an
extension that it is unable to process, it MUST NOT use the
values in the IBESysParams structure for any cryptographic
operations. Clients MUST be able to process an IBESysParams
structure that contains no IBEParamExtensions.
The pkgURI OBJECT IDENTIFIER that is defined below defines
an IBEParamExtensions structure that contains the URI or
IRI of a Private Key Generator. The presence of this OBJECT
IDENTIFIER in an IBEParamExtension indicates that clients
MUST use the protocol defined in Section 5 of this document
to obtain IBE private keys from the PKG and do so using the
URI/IRI that is defined by the value defined by the
ibeParamExtensionValue in the IBEParamExtension.
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 ibeParamExtensionValue OCTET STRING is an IA5String
containing the URI [URI] or IRI [IRI] of the PKG where IBE
private keys can be obtained. IRIs MUST be handled
according to the procedures specified in Section 7.4 of
[PKIX].
Appenzeller, et al. Expires April 2009 [Page 15]
Internet-Draft IBE Architecture October 2008
ibeParamExt OBJECT IDENTIFIER ::= {
ibcs ibcs3(3) parameter-extensions(2)
}
pkgURI OBJECT IDENTIFIER ::= { ibeParamExt pkgURI(1) }
4.3. The application/ibe-pp-data MIME type
The following summarizes the properties of the
application/ibe-pp-data MIME type.
MIME media type name: application
MIME subtype name: ibe-pp-data
Mandatory parameters: none
Optional parameters: none
Encoding considerations: This media type MUST be encoded as
7bit (us-ascii text [ASCII]).
Security considerations: The data conveyed as this media
type are the public parameters needed for the operation of
a cryptographic system. To ensure that the parameters can
be trusted, the request for these parameters must take
place over a secure protocol, TLS 1.1 or its successors. To
ensure the validity of the server, the client MUST verify
the server certificate and MUST abort the parameter request
if the verification of the server certificate of the TLS
connection fails. This media type contains no active
content and does not use compression.
Interoperability considerations: There are no known
interoperability considerations for this media type.
Applications that use this media type: Applications that
implement IBE in compliance with this specification will
use this media type. The most commonly-used of these
applications are encrypted email and file encryption.
Additional information: none
Person and email address for further information: Luther
Martin, martin@voltage.com.
Intended usage: COMMON
Appenzeller, et al. Expires April 2009 [Page 16]
Internet-Draft IBE Architecture October 2008
Author/Change controller: Luther Martin,
martin@voltage.com.
5. Private Key Request Protocol
5.1. Overview
When requesting a private key, a client has to transmit
three parameters:
1. The IBE algorithm for which the key is being
requested
2. The identity for which it is requesting a key
3. 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/IRI
of the PKG. This can be done from information included in
the IBE message format and the public parameters of the IBE
system.
The technique for fetching an IBE private key using the
process defined in this section is indicated by the OBJECT
IDENTIFIER pkgURI, which is defined to be the following:
Appenzeller, et al. Expires April 2009 [Page 17]
Internet-Draft IBE Architecture October 2008
ibcs OBJECT IDENTIFIER ::= {
joint-iso-itu-t(2) country(16) us(840)
organization(1) identicrypt(114334) ibcs(1)
}
ibeParamExt OBJECT IDENTIFIER ::= {
ibcs ibcs3(3) parameter-extensions(2)
}
pkgURI OBJECT IDENTIFIER ::= { ibeParamExt pkgURI(1) }
5.2. Private Key Request
To request a private key, a client MUST perform a HTTP POST
method as defined in [HTTP]. The request MUST take place
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/IRI the client MUST verify the server certificate
[HTTPTLS], and MUST abort the key request if the server
certificate verification of the TLS 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.
5.3. Request Structure
The POST method contains in its body the following XML
structure that MUST be encoded as an application/ibe-key-
request+xml MIME type:
Appenzeller, et al. Expires April 2009 [Page 18]
Internet-Draft IBE Architecture October 2008
<ibe:request xmlns:ibe="urn:ietf:params:xml:ns:ibe">
<ibe:header>
<ibe:client version="clientID"/>
</ibe:header>
<ibe:body>
<ibe:keyRequest>
<ibe:algorithm>
algorithmOID
</ibe:algorithm>
<ibe:id>
ibeIdentityInfo
</ibe:id>
</ibe:keyRequest>
<ibe:authData>
ibeAuthData
</ibe:authData>
</ibe:body>
</ibe:request>
A <ibe:request> SHOULD include an <ibe:client> element in
the <ibe:header> part of a key request that contains an
ASCII string that identifies the client type and client
version.
A key request MUST contain an <ibe:oid> element that
contains the base64 [B64] encoding of a DER-encoded [DER]
object identifier that identifies the algorithm for which a
key is requested. OIDs for the BB1 and BF algorithms are
listed in [IBCS].
A key request MUST contain an <ibe:id> element that
contains the identity that the private key is being
requested for. This identity is the base64 [B64] encoding
of a DER-encoded [DER] ASN.1 structure. This structure
defines a user's identity in a way appropriate for the
application. An example of such a structure that is
appropriate for use in encrypting e-mail is defined in
[IBECMS].
A key request MAY contain an <ibe:authData> element. This
element contains authentication information that the PKG
can use to determine whether or not a request for a
particular IBE private key should be granted.
A client MAY include optional additional XML elements in
the <ibe:body> part of the key request. A PKG MUST be able
Appenzeller, et al. Expires April 2009 [Page 19]
Internet-Draft IBE Architecture October 2008
to process key requests that contain no such optional
elements.
5.4. The application/ibe-key-request+xml MIME type
The following summarizes the properties of the application/
ibe-key-request+xml MIME type.
MIME media type name: application
MIME subtype name: ibe-key-request+xml
Mandatory parameters: none
Optional parameters: none
Encoding considerations: This media type MUST be encoded as
us-ascii [ASCII].
Security considerations: The data conveyed in this media
type may contain authentication credentials. Because of
this, its confidentiality and integrity is extremely
important. To ensure this, the request for an IBE private
key must take place over a secure protocol, TLS 1.1 or its
successors. To ensure the validity of the server, the
client MUST verify the server certificate and MUST abort
the key request if the verification of the server
certificate of the TLS connection fails. This media type
contains no active content and does not use compression.
Interoperability considerations: There are no known
interoperability considerations for this media type.
Applications that use this media type: Applications that
implement IBE in compliance with this specification will
use this media type. The most commonly-used of these
applications are encrypted email and file encryption.
Additional information: none
Person and email address for further information: Luther
Martin, martin@voltage.com.
Intended usage: COMMON
Author/Change controller: Luther Martin,
martin@voltage.com.
Appenzeller, et al. Expires April 2009 [Page 20]
Internet-Draft IBE Architecture October 2008
5.5. Authentication
When a client requests a key from a PKG, the PKG MUST
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 [AUTH] and SHOULD also support HTTP
Digest Auth [AUTH]. Applications MAY also use other means
of authentication that are appropriate for the application.
An e-mail application, for example, might rely on deployed
e-mail infrastructure for this, for example.
For authentication methods that are not done by the
transport protocol, a client MAY include additional
authentication information in XML elements in the
<ibe:authData> element of a 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 an IBE201 responseCode as
defined below to redirect the client to the correct
authentication mechanism. After receiving an authentication
credential from this external mechanism, a client can then
use the credential to form a key request that contains the
additional authentication data.
5.6. 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 an 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/ibe-pkg-reply+xml MIME type:
<ibe:response xmlns:ibe="urn:ietf:params:xml:ns:ibe">
<ibe:responseType value="responseCode"/>
<ibe:body>
bodyTags
</ibe:body>
</ibe:response>
Appenzeller, et al. Expires April 2009 [Page 21]
Internet-Draft IBE Architecture October 2008
The responseCode attribute contains an ASCII string that
describes the type of response from the key server. The
list of currently-defined responseCodes and their
associated meanings is:
IBE100 KEY_FOLLOWS
IBE101 RESERVED
IBE201 FOLLOW_ENROLL_URI
IBE300 SYSTEM_ERROR
IBE301 INVALID_REQUEST
IBE303 CLIENT_OBSOLETE
IBE304 AUTHORIZATION DENIED
5.6.1. The IBE100 responseCode
If the key request was successful, the key server responds
with a responseCode of IBE100, and the <ibe:body> MUST
contain a <ibe:privateKey> element that contains a valid
private key. An example of this is shown below.
<ibe:response xmlns:ibe="urn:ietf:params:xml:ns:ibe">
<ibe:responseType value="IBE100"/>
<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 structure:
IBEPrivateKeyReply ::= SEQUENCE {
pkgIdentity IBEIdentityInfo,
pgkAlgorithm OBJECT IDENTIFIER,
pkgKeyData OCTET STRING,
pkgOptions SEQUENCE SIZE (1..MAX) OF PKGOption
}
PKGOption ::= SEQUENCE {
optionID OBJECT IDENTIFIER,
optionValue OCTET STRING
}
The pkgIdentity is an IBEIdentityInfo structure that MUST
be identical to the IBEIdentityInfo structure that was sent
in the key request.
Appenzeller, et al. Expires April 2009 [Page 22]
Internet-Draft IBE Architecture October 2008
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 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. A client that receives a
IBEPrivateKeyReply from a PKG that contains information in
a pkgOptions structure that it is unable process MUST NOT
use the IBE private key in the IBEPrivateKeyReply structure
for any cryptographic operations. A client MUST be able to
process an IBEPrivateKeyReply that contains no PKGOptions
structure.
5.6.2. The IBE101 responseCode
The responseCode IBE101 is reserved to ensure
interoperability with earlier versions of the protocol that
is described in this document. An example of such a
response is shown below. A response with the IBE101
responseCode SHOULD contain no body. If information is
contained in the body of such a response, the client
receiving the response MUST discard any data that is
contained in the body.
<ibe:response xmlns:ibe="urn:ietf:params:xml:ns:ibe">
<ibe:responseType value="IBE101"/>
<ibe:body>
This message must be discarded by the recipient
</ibe:body
</ibe:response>
5.6.3. The IBE201 responseCode
A PKG MAY support authenticating users to external
authentication mechanisms. If this is the case, the server
replies to the client with responseCode IBE201 and the body
of the response MUST contain a <ibe:location> element that
specifies the URI of the authentication mechanism. An
example of such a response is shown below.
Appenzeller, et al. Expires April 2009 [Page 23]
Internet-Draft IBE Architecture October 2008
<ibe:response xmlns:ibe="urn:ietf:params:xml:ns:ibe">
<ibe:responseType value="IBE201"/>
<ibe:body>
<ibe:location
URI="http://www.example.com/enroll.asp"/>
</ibe:body>
</ibe:response>
The client can now contact the URI returned in such a
response using the same mechanisms as defined in Section
4.2 to obtain an authentication credential. Once the client
has obtained the credential from the authentication
mechanism at this URI, it sends a new key request to the
PKG with the correct authentication credentials contained
in the request, placing the authentication credential in
the <ibe:authData> element of a key request as described in
Section 4.4.
5.6.4. The IBE300 responseCode
The IBE300 responseCode indicates that an internal server
error has occurred. Information that may help diagnose the
error MAY be included in the body of such a response. An
example of such a response is shown below. Upon receiving a
IBE300 responseCode, the client MUST abort the key request
and discard any data that was included in the body of the
response.
<ibe:response xmlns:ibe="urn:ietf:params:xml:ns:ibe">
<ibe:responseType value="IBE300"/>
<ibe:body>
Widget phlebotomy failure
</ibe:body>
</ibe:response>
5.6.5. The IBE301 responseCode
The IBE303 responseCode indicates that an invalid key
request has been received by the server. Information that
may help diagnose the error MAY be included in the body of
such a response. An example of such a response is shown
below. Upon receiving an IBE301 responseCode, the client
MUST abort the key request and discard any data that was
included in the body of the response.
Appenzeller, et al. Expires April 2009 [Page 24]
Internet-Draft IBE Architecture October 2008
<ibe:response xmlns:ibe="urn:ietf:params:xml:ns:ibe">
<ibe:responseType value="IBE301"/>
<ibe:body>
Some additional stuff
</ibe:body>
</ibe:response>
5.6.6. The IBE303 responseCode
The IBE303 responseCode indicates that the server is unable
to correctly process the request because the version of the
request is no longer supported by the server. Information
that may help diagnose the error MAY be included in the
body of such a response. An example of such a response is
shown below. Upon receiving an IBE303 responseCode, the
client MUST abort the key request and discard any data that
was included in the body of the response.
<ibe:response xmlns:ibe="urn:ietf:params:xml:ns:ibe">
<ibe:responseType value="IBE303"/>
<ibe:body>
Version 3.3 or later needed
</ibe:body>
</ibe:response>
5.6.7. The IBE304 responseCode
The IBE304 responseCode indicates that a valid key request
has been received by the server but the authentication
credentials provided were invalid. Information that may
help diagnose the error MAY be included in the body of such
a response. An example of such a response is shown below.
Upon receiving an IBE304 responseCode, the client MUST
abort the key request and discard any data that was
included in the body of the response.
<ibe:response xmlns:ibe="urn:ietf:params:xml:ns:ibe">
<ibe:responseType value="IBE304"/>
<ibe:body>
Helpful error message
</ibe:body>
</ibe:response>
5.7. The application/ibe-pkg-reply+xml MIME type
The following summarizes the properties of the
application/ibe-pkg-reply+xml MIME type.
Appenzeller, et al. Expires April 2009 [Page 25]
Internet-Draft IBE Architecture October 2008
MIME media type name: application
MIME subtype name: ibe-pkg-reply+xml
Mandatory parameters: none
Optional parameters: none
Encoding considerations: This media type MUST be encoded as
us-ascii [ASCII].
Security considerations: The data conveyed as this media
type is an IBE private key, so its confidentiality and
integrity is extremely important. To ensure this, the
response from the server that contains an IBE private key
must take place over a secure protocol, TLS 1.1 or its
successors. To ensure the validity of the server, the
client MUST verify the server certificate and MUST abort
the key request if the verification of the server
certificate of the TLS connection fails. This media type
contains no active content and does not use compression.
Interoperability considerations: There are no known
interoperability considerations for this media type.
Applications that use this media type: Applications that
implement IBE in compliance with this specification will
use this media type. The most commonly-used of these
applications are encrypted email and file encryption.
Additional information: none
Person and email address for further information: Luther
Martin, martin@voltage.com.
Intended usage: COMMON
Author/Change controller: Luther Martin,
martin@voltage.com.
6. ASN.1 Module
The following ASN.1 module summarizes the ASN.1 definitions
discussed in this document.
Appenzeller, et al. Expires April 2009 [Page 26]
Internet-Draft IBE Architecture October 2008
IBEARCH-module { joint-iso-itu-t(2) country(16) us(840)
organization(1) identicrypt(114334) ibcs(1) ibearch(5)
module(5) version(1)
}
DEFINITIONS IMPLICIT TAGS ::= BEGIN
IBESysParams ::= SEQUENCE {
version INTEGER { v2(2) },
districtName IA5String,
districtSerial INTEGER,
validity ValidityPeriod,
ibePublicParameters IBEPublicParameters,
ibeIdentityType OBJECT IDENTIFIER,
ibeParamExtensions IBEParamExtensions OPTIONAL
}
ValidityPeriod ::= SEQUENCE {
notBefore GeneralizedTime,
notAfter GeneralizedTime
}
IBEPublicParameters ::= SEQUENCE (1..MAX) OF
IBEPublicParameter
IBEPublicParameter ::= SEQUENCE {
ibeAlgorithm OBJECT IDENTIFIER,
publicParameterData OCTET STRING
}
IBEParamExtensions ::= SEQUENCE OF IBEParamExtension
IBEParamExtension ::= SEQUENCE {
ibeParamExtensionOID OBJECT IDENTIFIER,
ibeParamExtensionValue OCTET STRING
}
ibcs OBJECT IDENTIFIER ::= {
joint-iso-itu-t(2) country(16) us(840)
organization(1) identicrypt(114334) ibcs(1)
}
ibeParamExt OBJECT IDENTIFIER ::= {
ibcs ibcs3(3) parameter-extensions(2)
}
pkgURI OBJECT IDENTIFIER ::= { ibeParamExt pkgURI(1) }
Appenzeller, et al. Expires April 2009 [Page 27]
Internet-Draft IBE Architecture October 2008
IBEPrivateKeyReply ::= SEQUENCE {
pkgIdentity IBEIdentityInfo,
pgkAlgorithm OBJECT IDENTIFIER,
pkgKeyData OCTET STRING,
pkgOptions SEQUENCE SIZE (1..MAX) OF PKGOption
}
PKGOption ::= SEQUENCE {
optionID OBJECT IDENTIFIER,
optionValue OCTET STRING
}
uriPPSOID OBJECT IDENTIFIER ::= {
joint-iso-itu-t(2) country(16) us(840)
organization(1) identicrypt(114334)
pps-schemas(3) ic-schemas(1) pps-uri(1) version(1)
}
IBEIdentityInfo ::= SEQUENCE {
district IA5String,
serial INTEGER,
identityType OBJECT IDENTIFIER,
identityData OCTET STRING
}
END
7. Security Considerations
7.1. Attacks 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
Appenzeller, et al. Expires April 2009 [Page 28]
Internet-Draft IBE Architecture October 2008
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.
7.2. Attacks 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
7.2.1. Attacks on the protocols defined in this document
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
Appenzeller, et al. Expires April 2009 [Page 29]
Internet-Draft IBE Architecture October 2008
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 [DOS, BGPDOS]
that their use of IBE requires.
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.
8. IANA Considerations
8.1. Media types
This specification proposes the registration of three media
types in the standard registration tree. These are
application/ibe-pp-data, application/ibe-key-request+xml,
and application/ibe-pkg-reply+xml. The media type
application/ibe-pp-data is defined in Section 4.3 of this
document. The media type application/ibe-key-request+xml is
defined in Section 5.4 of this document. The media type
application/ibe-pkg-reply+xml is defined in Section 5.7 of
this document.
8.2. XML namespace
The IANA is requested to register the following namespace
identifier:
Appenzeller, et al. Expires April 2009 [Page 30]
Internet-Draft IBE Architecture October 2008
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 April 2009 [Page 31]
Internet-Draft IBE Architecture October 2008
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>
algorithmOID
</ibe:algorithm>
<ibe:id>
ibeIdentityInfo
</ibe:id>
</ibe:keyRequest>
<ibe:authData>
ibeAuthData
</ibe:authData>
</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
9. References
9.1. Normative References
[ASCII] ISO/IEC 646:1991 - Information Technology - ISO 7-
bit Coded Character Set for Information Exchange
[ASN1] ITU-T Recommendation X.680: Information Technology -
Abstract Syntax Notation One, 1997.
[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 (CMS)," RFC
3852, July 2004.
Appenzeller, et al. Expires April 2009 [Page 32]
Internet-Draft IBE Architecture October 2008
[DER] ITU-T Recommendation X.690: OSI Networking and System
Aspects: Abstract Syntax Notation One (ASN.1), July
2002.
[DOS] 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.
[HTTP] R. Fielding, et al., "Hypertext Transfer Protocol --
HTTP/1.1", RFC 2616, June 1999.
[HTTPTLS] E. Rescorla, "HTTP over TLS," RFC 2818, May 2000.
[IBCS] X. Boyen and L. Martin, "Identity-Based Cryptography
Standard (IBCS) #1: Supersingular Curve
Implementations of the BF and BB1 Cryptosystems," RFC
5091, December 2007.
[IRI] M. Deurst and M. Suignard, "Internationalized
Resource Identifiers (IRIs)," RFC 3987, January 2005.
[KEY] S. Brander, "Key Words for Use in RFCs to Indicate
Requirement Levels," BCP 14, RFC 2119, March 1997.
[PKIX] D. Cooper, et al., "Internet X.509 Public Key
Infrastructure Certificate and Certificate Revocation
List (CRL) Profile," RFC 5280, May 2008
[SMTP] J. Klensin, "Simple Mail Transfer Protocol," RFC
5321, October 2008.
[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 Identifier (URI): Generic Syntax",
STD 66, RFC 3986, January 2005.
[XML] W3C, Extensible Markup Language (XML) 1.0 (Fourth
Edition), September 2006.
9.2. Informative References
[BGPDOS] D. Turk, "Configuring BGP to Block Denial-of-
Service Attacks," RFC 3882, September 2004.
Appenzeller, et al. Expires April 2009 [Page 33]
Internet-Draft IBE Architecture October 2008
[IBECMS] L. Martin and M. Schertler, "Using the Boneh-
Franklin identity-based encryption algorithm with the
Cryptographic Message Syntax (CMS)," draft-ietf-
smime-bfibecms-10.txt, July 2008.
[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, "Standard Specifications for Public-Key
Cryptography," 2001.
Authors' Addresses
Guido Appenzeller
Stanford University
Gates Building 3A
Stanford, CA 94305
Phone: +1 650 732 2273
Email: appenz@cs.stanford.edu
Luther Martin
Voltage Security
1070 Arastradero Rd Suite 100
Palo Alto CA 94304
USA
Phone: +1 650 543 1280
Email: martin@voltage.com
Mark Schertler
Tumbleweed Communications
700 Saginaw Dr
Redwood City CA 94063
USA
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
Appenzeller, et al. Expires April 2009 [Page 34]
Internet-Draft IBE Architecture October 2008
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.
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 (2008).
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 April 2009 [Page 35]
Internet-Draft IBE Architecture October 2008
Appenzeller, et al. Expires April 2009 [Page 36]