One document matched: draft-ietf-hokey-key-mgm-03.txt
Differences from draft-ietf-hokey-key-mgm-02.txt
Network Working Group M. Nakhjiri
Internet-Draft Motorola
Expires: August 28, 2008 Y. Ohba
Toshiba
February 25, 2008
Derivation, delivery and management of EAP based keys for handover and
re-authentication
draft-ietf-hokey-key-mgm-03
Status of this Memo
By submitting this Internet-Draft, each author represents that any
applicable patent or other IPR claims of which he or she is aware
have been or will be disclosed, and any of which he or she becomes
aware will be disclosed, in accordance with Section 6 of BCP 79.
Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF), its areas, and its working groups. Note that
other groups may also distribute working documents as Internet-
Drafts.
Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress."
The list of current Internet-Drafts can be accessed at
http://www.ietf.org/ietf/1id-abstracts.txt.
The list of Internet-Draft Shadow Directories can be accessed at
http://www.ietf.org/shadow.html.
This Internet-Draft will expire on August 28, 2008.
Copyright Notice
Copyright (C) The IETF Trust (2008).
Abstract
This document describes a framework and a mechanism for deliverying
usage specific root keys (USRK and DSUSRK), derived as part of an EAP
EMSK hierarchy, and delivered from a server to an intended third
party key holder. The framework description includes different
scenarios for key delivery, depending on the type of keys being
delivered. It also includes, specification of derivation of keys
Nakhjiri & Ohba Expires August 28, 2008 [Page 1]
Internet-Draft HOKEY Key Distribution Exchange February 2008
required for security protection of key requests and delivery
signaling. The mechanism description includes the definition for a
three-party key distribution exchange (KDE) protocol.
Table of Contents
1. Introduction and Problem statement . . . . . . . . . . . . . . 3
2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 4
3. Key Delivery Architecture . . . . . . . . . . . . . . . . . . 5
3.1. Three Party Key Distribution Exchange (KDE) . . . . . . . 7
3.2. Derivation of keys protecting the KDE . . . . . . . . . . 10
3.3. Specification of context and scope for distributed keys . 11
3.4. Automated key management for KIts and KCts . . . . . . . . 11
3.5. Key distribution exchange scenarios . . . . . . . . . . . 12
4. KDE Message Format . . . . . . . . . . . . . . . . . . . . . . 13
4.1. Message Syntax . . . . . . . . . . . . . . . . . . . . . . 14
4.2. Message Encoding . . . . . . . . . . . . . . . . . . . . . 17
5. Security Considerations . . . . . . . . . . . . . . . . . . . 17
5.1. Security Association between Server and Third Party . . . 17
5.2. Replay Protection . . . . . . . . . . . . . . . . . . . . 18
5.3. Distribution of Duplicate Kpt . . . . . . . . . . . . . . 18
6. IANA consideration . . . . . . . . . . . . . . . . . . . . . . 18
7. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 19
8. References . . . . . . . . . . . . . . . . . . . . . . . . . . 19
8.1. Normative References . . . . . . . . . . . . . . . . . . . 19
8.2. Informative references . . . . . . . . . . . . . . . . . . 20
Appendix A. KDE Transport . . . . . . . . . . . . . . . . . . . . 20
A.1. KDE Transport over UDP . . . . . . . . . . . . . . . . . . 20
A.2. KDE Transport over AAA . . . . . . . . . . . . . . . . . . 20
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 21
Intellectual Property and Copyright Statements . . . . . . . . . . 22
Nakhjiri & Ohba Expires August 28, 2008 [Page 2]
Internet-Draft HOKEY Key Distribution Exchange February 2008
1. Introduction and Problem statement
The ability of Extensible Authentication Protocol (EAP) framework
[RFC3748] in incorporating desired authentication methods and
generating master session keys (MSK and EMSK) [I-D.ietf-eap-keying]
has led to the idea of using MSK and/or EMSK for bootstrapping
further keys for a variety of security mechanisms. Especially, the
MSK has been widely used for bootstrapping the wireless link security
associations between the peer and the network attachment points.
Issues arising from the use of MSK and the current bootstrapping
methods when it comes to mobility performance and security are
described in [I-D.ietf-hokey-reauth-ps]. Thus new efforts are under
way to use EMSK instead of MSK for bootstrapping of keys for future
use cases [I-D.ietf-hokey-emsk-hierarchy], [I-D.ietf-hokey-erx]. For
instance [I-D.ietf-hokey-emsk-hierarchy] defines ways to create usage
specific root keys (USRK) for bootstrapping security of a specific
use case. [I-D.ietf-hokey-emsk-hierarchy] also defines ways to
create domain specific root keys for bootstrapping security of a set
of services within a domain.
Along with those lines, this document on the other hand provides a
specification of a mechanism for secure delivery of such EMSK child
keys from the EAP server, holding the EMSK, to the intended third
party destinations. This is to address the following concerns:
1. EAP authentication is a 2 party protocol executed between an EAP
peer and an EAP server and the EMSK is only generated and held at
these two parties [I-D.ietf-eap-keying], while USRK and DSUSRK
are also generated only by these two parties, but they typically
need to be stored and utilized at third party key holders (e.g.
AAA servers/entities) that are logically or even physically
separate from the EAP server or peer. For instance, handover
keying and re-authentication service requires distribution of
keys a variety of intermediaries. This would mean these root
keys need to be delivered to these third party key holders (KH)
in a secure manner, while considering the requirements stated in
[RFC4962]
2. EAP authentication and EMSK generation process is oblivious to
the service and authorization requests following the initial EAP
authentication. Thus at the time of EAP authentication, the EAP
parties do not have access to the input data required for
creation of the USRK or DSUSRK [I-D.ietf-hokey-emsk-hierarchy].
Such input data is typically acquired and delivered to a server
(the EAP server or DSR-KH) at a later stage. The server then
performs the derivation function, followed by a secure delivery
of the resulting keys to these third party key holders.
Nakhjiri & Ohba Expires August 28, 2008 [Page 3]
Internet-Draft HOKEY Key Distribution Exchange February 2008
One purpose of this document is to show how the required input data
for root key derivation can be delivered to the server, and how the
generated key material is delivered to the third party key holder in
a secure manner. The specification also includes derivation of key
material required for secure delivery and channel binding procedures
for these key materials to ensure that not only the keys are not
exposed to unintended parties during delivery, but also the scope and
usage context for the key is properly understood and agreed upon by
the initial parties.
Another purpose of this document is to provide exact syntax for a
three-party key distribution exchange (KDE) protocol, a protocol used
for delivering USRK and and DSUSRK from a server to a third-party.
2. Terminology
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in [RFC2119].
USRK: Usage Specific Root key. A root key generated from EMSK and
is used for a specific usage that is authorized for a peer,
following an EAP authentication. USRK is domain independent.
USR-KH: USRK holder. The USR-KH is responsible for receiving,
holding and protection of the USRK derived directly from EMSK.
DSRK: Domain Specific Root key. A root key generated from EMSK and
is used within a specific domain that EAP-authenticated peer is
authorized to receive services from or roam into. DSRK is usage
independent.
DSR-KH: DSRK holder. The DSRK holder is responsible for receiving,
holding and protection of the DSRK derived directly from EMSK.
DSUSRK: Domain Specific Usage Specific Root key. A root key
generated from DSRK and is used for a specific usage within a
specific domain that an EAP-authenticated peer is authorized to
receive services from. DSUSRK is both usage and domain dependent.
DSUSR-KH: DSRK holder. The DSUSRK holder is responsible for
receiving, holding and protection of the DSUSRK.
IK and CK: Integrity and cipher keys, used to protect the key
delivery signaling between the peer and the EAP server. These two
keys are some times referred to as key delivery keys.
Nakhjiri & Ohba Expires August 28, 2008 [Page 4]
Internet-Draft HOKEY Key Distribution Exchange February 2008
3. Key Delivery Architecture
The EAP server is only responsible for performing EAP authentication
and is not expected to be involved in any service authorization
decisions, neither is the EAP server aware of the future service
requests at the time of authentication. The authorization decisions
based on the user service profile and provisioning of services
including support for service security is expected to happen by third
parties, such as AAA servers or service servers. When EAP-based
keying is used, such servers will cache and use the USRKs, DSRKs or
DSUSRKs, generated from EMSK, as root keys for derivation of further
keys to secure the services they are providing. Thus they are
considered third party key holders (KH) with respect to the initial
two EAP parties (EAP peer and server). However, since EMSK cannot be
exported from EAP server, such third parties need to request the EAP
server to generate the relevant root key (USRK) from the EMSK and
deliver the requested key to them. The third party needs to provide
the required input data to be used along with the pseudo random
function (PRF) to the EAP server to generate the requested key. The
following types of top level key holders can be envisioned:
USRK holder (USR-KH): An entity acting as a recipient and then
holder of the usage specific root key (USRK). The USR-KH is
possibly responsible for derivation and distribution of any child
keys derived from USRK for that specific usage. It is possible
that this USR-KH server is not physically disjunct from the EAP
server but is simply considered as a separate logic to off-load
the EAP server from the need to handle usage specific services,
such as HOKEY service. However, to keep the security
specifications generic here, we assume that USR-KH and EAP server
are physically separate and specify the delivery of USRK from EAP
server to USR-KH accordingly.
DSRK holder (DSR-KH): An entity acting as a recipient and then
holder of the domain specific root key (DSRK). The DSR-KH is
responsible for derivation and distribution of any child keys
derived from DSRK for that specific domain. The most likely
realization of DSR-KH is a AAA server in the corresponding domain,
responsible for setting the policies for usage of DSRK within the
domain.
DSUSRK holder (DSUSR-KH): An entity acting as a recipient and then
holder of the domain specific and usage specific root key (DSUSRK)
delivered from the EAP server. The DSUSR-KH is possibly
responsible for derivation and distribution of any child keys
derived from DSUSRK for that specific domain and usage. The most
likely realization of DSUSR-KH is a AAA server in the
corresponding domain, responsible for the service offered within
Nakhjiri & Ohba Expires August 28, 2008 [Page 5]
Internet-Draft HOKEY Key Distribution Exchange February 2008
the domain for the specific usage at hand.
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| EAP server |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
/ | \
/ | \
USRK1 / | USRK2 \ USRK3
(ABC) / | (XYZ) \(DSRK1)
+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+ +-+-+-+-+-+-+-+
| USR-KH1 | | USR-KH2 | | DSR-KH1 |
| HOKEY server | | XYZ server| +-+-+-+-+-+-+-+
+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+ |
+-+-+-+-+-+-+-+
| Domain 1 |
| DSUSR-KH |
|(home domain |
|HOKEY server)|
+-+-+-+-+-+-+-+
+-+-+-+-+-+-+
| peer |
+-+-+-+-+-+-+
Figure 1: Key delivery for various EMSK child key cateories
As one can see, depending on the type of key being delivered,
different third party key holders are involved. Each of the top
level key holders (USR-KH, DSR-KH has a interface with the EAP
server, for delivering usage specific (and/or domain specific) input
data needed for root key generation (USRK, DSRK) to the EAP server
and receiving the resulting root key from the EAP server. The
DSUSR-KH is considered a second-level key holder and has an interface
with DSR-KH.
Regardless of the type of key being delivered, the model for EAP
based key derivation and delivery interface can be generalized as a 3
party key distribution model, since EAP authentication method
signaling and the following EMSK generation is performed between the
peer and the EAP server in a manner that is almost transparent to all
intermediaries, while the EMSK is used to derive the top level root
keys and deliver those to a third party key holder, such as USR-KH or
DSR-KH.
Nakhjiri & Ohba Expires August 28, 2008 [Page 6]
Internet-Draft HOKEY Key Distribution Exchange February 2008
3.1. Three Party Key Distribution Exchange (KDE)
In the following we describe the generic mechanism for a three- party
key distribution exchange (KDE), where a key is distributed from a
network server (with parent key holder) to a third party. The
following shows a generic trust model for the key distribution
mechanism to the third party. The peer (P) and a parent key holder,
called "server" (S) in this model share a parent key (Kps) and a set
of security associations (SA1) for integrity and privacy protection
of signaling between the peer and the server (KIps and KCps). The
goal of the keying solution is to use the parent key (Kps) and
generate a child key (Kpt) to be shared between the peer and the
third party intermediary (T). The peer is able to generate Kpt, but
Kpt needs to be distributed to a third party intermediary (T). The
goal of this section is to provide a the general description of the
KDE (key distribution exchange) for distribution of Kpt from S to T.
We also assume that the server (S) and the third party (T) share a
similar set security association, SA2 (KIts, KCts).
+-+-+-+-+ +-+-+-+-+-+-+-+
| | shared SA1 | |
| |------------------------------| server |
| Peer | | KH |
+-+-+-+-+ +-+-+-+-+-+-+-+
|
+-+-+-+-+-+-+ V
| 3 rd party| | SA2 (Kpt)
| KH | ----------|
+-+-+-+-+-+-+
Figure 2: Distribution of a child key from a parent key key holder to
a 3rd party child key key holder
The key distribution exchange described here meets the requirements
for such 3-party lay-out, providing channel binding and avoids the
lying intermediary scenario. The exchange proposed below is to
perform a channel binding and avoid the lying intermediary scenario.
The description below can be carried over a generic transport and
thus is independent of the exact type of protocol that is used.
The key distribution to a third-party basically consists of 1
exchange, i.e. 2 messages between the peer and the server. However,
in most scenarios each message traverses through the intermediary,
i.e. Over two logical hops (peer-third party) and (third party-
server) even though the exchange seems to consist of 4 logical
messages. It should be noted that the information in message 0 is
typically conveyed as an advertisement through other means and hence
message 0 is optional.
Nakhjiri & Ohba Expires August 28, 2008 [Page 7]
Internet-Draft HOKEY Key Distribution Exchange February 2008
peer Third party server
----- -------- -------
| KDE0*(TID, SID, DID*, KT) | |
|<----------------------------| |
| KDE1 (PRT) | KDE2 (TRT) |
|---------------------------->|------------------->|
| KDE4 (SAT) | KDE3 (TOK) |
|<----------------------------|<-------------------|
(*) optional
Figure 3: Handover using EAP-HR
KDE message 0 (optional): Third party sends its own identifier
(TID), the Server ID (SID), the Domain ID (DID) and the KT (Key
Type) to peer. These identifiers need to be recognizable by the
server S and when AAA signaling is used may be carried as AAA
attributes. KT is used for uniquely identifying the type of the
key. DID is used to create domain specific keys or to assist in
key distribution. DID is not included when the KT is other than 0
(DSRK) or 2 (DS-rRK).
KDE message 1: Peer sends a peer request token (PRT) to the third
party including the TID reported by the third party and a
freshness value. The contents of PRT are detailed below.
KDE message 2: Third party uses the PRT and creates a third party
request token (TRT) and sends it to the server. The contents of
TRT are detailed below.
KDE message 3: Server sends the Kpt to third party wrapped inside a
token called Key Token (TOK). The TOK carries a Server
Authorization Token (SAT) destined for the peer, carrying
assurance for the peer that the server has sent the key Kpt to the
properly identified third party (identified by TID).
KDE message 4: The third party extracts the SAT from the server and
forwards it to the peer. The successful receipt of message 4 by
peer means that the third party has successfully verified
integrity of message 3 and decrypted Kpt.
{X}K: X encrypted with key K
Int[K, X]: X || MIC (K, X), where MIC Message Integrity Code over X
with key K.
Nakhjiri & Ohba Expires August 28, 2008 [Page 8]
Internet-Draft HOKEY Key Distribution Exchange February 2008
PRT : Int[KIps, (SEQps, PID, TID, SID, DID*, KT, KN_KIps)]
PRT (Peer Request Token) carries a sequence number (SEQps), the
identities of the peer (PID), the server (SID), the third party
(TID) and the domain (DID), the KT (Key Type) and the name of KIps
along with the signature. The signature is called the peer
request authenticator (PRA). KIps is a symmetric key shared
between peer and Server for signing and identified by KN_KIps.
SEQps is a sequence number generated by the peer and maintained
between the peer and server. The initial sequence number starts
from one (1). When the sequence number wraps up, then SA1 MUST be
deleted and any KDE message MUST NOT be generated or processed
thereafter. DID is not included when KT is other than 0 (DSRK) or
or 2 (DS-rRK).
TRT : Int[KIts, (Nt, PID, TID, PRT)]
TRT (Third party Request Token) carries the token from the peer
along with the third party and peer IDs and a signature for
integrity protection. KIts is the shared key used for signing
purposes. Nt is a nonce generated by the third party. Providing
third party identifier both explicitly by the third party and both
implicitly through PRT allows the server to detect a lying third
party.
TOK : Int[KIts, (Nt+1, PID, TID, SID, DID*, KT, {Kpt, KN_Kpt,
KL_Kpt}KCts, SAT)]
TOK(Key Token) carries the key to be distributed to the third
party (Kpt) wrapped with an encryption key (KCts). KL_Kx is the
key lifetime for key Kx.
SAT : Int[KIps,(SEQps+1, PID, TID, SID, DID*, KN_Kpt, KL_Kpt,
KN_KIps)]
SAT (Server Authorization Token) carries assurance (in form of
signature on the incremented nonce value) for the peer that the
server has sent the key Kpt to the properly identified third party
(identified by TID). DID is not included when KT is other than 0
(DSRK) or 2 (DS-rRK).
The exchange proposed above can avoid the lying intermediary
scenario, as follows: if an intermediary decided to announce two
different identifiers to the peer versus to the server, e.g. a down
link ID to the peer (DTID) and a different uplink ID to the server
(UTID). The peer uses DTID in its token towards the server, while
the intermediary uses its UTID in its token to the server. Server
must use the UTID from PRT to calculate the MIC in TRT and if there
Nakhjiri & Ohba Expires August 28, 2008 [Page 9]
Internet-Draft HOKEY Key Distribution Exchange February 2008
is a match, then the server can verify that DTID and UTID are the
same as the TID and proceed with generating and provisioning of Kpt,
otherwise the server MUST return a failure code instead of generating
an Kpt.
3.2. Derivation of keys protecting the KDE
As shown in the generic description of the key distribution exchange,
to protect the exchange, at least one (or two) keys are required to
protect the exchange. These keys are an integrity and a cipher key.
These keys are generated from the EMSK hierarchy themselves.
However, as discussed when enumerating the various KDE use case
scenarios, the KDE can and need to be used in many different
scenarios for delivering keys. Depending on the key that is being
delivered, the integrity and cipher keys can be generated at
different levels of the key hierarchy as well. For instance to
protect the KDE performed to deliver a USRK, these two keys are
generated directly from EMSK.
KDRK
|
+----+---+
| |
CK IK
Figure 4: Key delivery keys as EMSK Child keys
Cipher key (CK) and Integrity Key (IK) are used to protect KDE for
delivery of USRKs and DSUSRKs. CK and IK are generated from KDRK
(Key Distribution Root Key) which is either EMSK or DSRK in the use
cases described in this document. When KDRK is EMSK, CK and IK are
defined as USRKs. When KDRK is DSRK, CK and IK are defined as
DSUSRKs. The lengthes of CK and IK depends on actual integrity and
encryption algorithms in use.
If KDRK is the EMSK, then CK and IK are defined using the USRK
derivation algorithm defined in [I-D.ietf-hokey-emsk-hierarchy] as
follows:
IK = USRK(usage="kde-integrity-key@ietf.org", length)
CK = USRK(usage="kde-cipher-key@ietf.org", length)
USRK(usage, length) is the USRK key derivation function with the
usage and key length specified in the first and second parameters,
respectively.
If KDRK is the DSRK for domain="example.net", then CK and IK are
Nakhjiri & Ohba Expires August 28, 2008 [Page 10]
Internet-Draft HOKEY Key Distribution Exchange February 2008
defined using the DSUSRK derivation algorithm defined in
[I-D.ietf-hokey-emsk-hierarchy] as follows:
IK = DSUSRK(usage="kde-integrity-key@ietf.org", domain, length)
CK = DSUSRK(usage="kde-cipher-key@ietf.org", domain, length)
DSUSRK(usage, domain, length) is the DSUSRK key derivation function
with the usage, domain and key length specified in the first, second
and third parameters, respectively.
If KDRK is other than the EMSK or DSRK, then CK and IK are defined
using the KDF defined in [I-D.ietf-hokey-emsk-hierarchy] as follows:
IK = KDF(KDRK, "kde-integrity-key@ietf.org" + length)
CK = KDF(KDRK, "kde-cipher-key@ietf.org" + length)
In this case, the IK and CK names are defined as SHA-1-64(KDRK-name +
"kde-integrity-key@ietf.org") and SHA-1-64(KDRK-name +
"kde-cipher@ietf.org"), respectively, where SHA-1-64 is the first 64-
octet of SHA-1.
3.3. Specification of context and scope for distributed keys
The key lifetime of each distributed key MUST NOT be greater than
that of its parent key.
The key context of each distributed key is determined by the sequence
of KTs in the key hierarchy. When a DSRK is being delivered and the
DSRK applies to only a specific set of services, the service types
may need to be carried as part of context for the key. Carrying such
a specific set of services are outside the scope of this document.
The key scope of each distributed key is determined by the sequence
of (PID, SID, TID, DID, KT)-tuples in the key hierarchy.
3.4. Automated key management for KIts and KCts
KIts and KCts require automated key management [RFC4107] since these
are long-term session keys used by more than two parties. Kerberos
[RFC4120] MAY be used as an automated key management protocol for
distributing KIts and KCts. If there is no direct trust relationship
between the third-party and the server, then inter-realm Kerberos MAY
be used to create a direct trust relationship between the third-party
and the server from a chain of trust relationships.
Note that the automated key management mechanism described above is
Nakhjiri & Ohba Expires August 28, 2008 [Page 11]
Internet-Draft HOKEY Key Distribution Exchange February 2008
not required if hop-by-hop security is used for protecting KDE
messages. See Section 5 for more discussion.
3.5. Key distribution exchange scenarios
As mentioned earlier, EMSK can be used to generate any of the USRKs,
DSRKs and DSUSRKs. The following scenarios can be envisioned for
distribution of a key to a 3rd party. All scenarios assume the peer
and the EAP server have mutually authenticated to each other using an
EAP method and have generated an EMSK. Since the EAP server
performing EAP method authentication and EMSK generation resides in
peer's home domain, for practical purposes, for the mechanisms
described in this document, the USR-KH MUST reside in this domain.
Note that other key distribution scenarios may also be possible since
the key distribution protocol is designed to be generic.
Scenario 1: EAP server to USR-KH: In this scenario, an EAP server
delivers a USRK to a USR-KH. The trigger and mechanism for key
delivery may involve a specific request from the peer and another
intermediary (such as authenticator). In the case of HOKEY re-
authentication service, a DSRK or an rRK is distributed.
Scenario 2: DSR-KH to DSUSR-KH: In this scenario, a DSR-KH in a
specific domain delivers keying material to the DSUSR-KH in the
same domain. In the case of HOKEY re-authentication service, a
DS-rRK is distributed.
The mapping between the protocol parameters in each scenario to the
protocol parameters of the KDE protocol defined in Section 3.1 is
given below, where IK_X and CK_X are IK and CK derived from key X,
respectively. The keyName-NAI is defined in [I-D.ietf-hokey-erx].
Nakhjiri & Ohba Expires August 28, 2008 [Page 12]
Internet-Draft HOKEY Key Distribution Exchange February 2008
+------------+-------------+-------------+
| KDE Param. | Scenario 1 | Scenario 2 |
+------------+-------------+-------------+
| PID | keyName-NAI |
+------------+-------------+-------------+
| SID |EAP Server ID| DSR-KH ID |
+------------+-------------+-------------+
| TID | USR-KH ID | DSUSR-KH ID |
+------------+-------------+-------------+
| Kpt | USRK | DSUSRK |
+------------+-------------+-------------+
| KIps | IK_EMSK | IK_DSRK |
+------------+-------------+-------------+
| KCps | CK_EMSK | CK_DSRK |
+------------+-------------+-------------+
| KIts | Any pre-existing key |
+------------+---------------------------+
| KCts | Any pre-existing key |
+------------+---------------------------+
The key distribution exchanges for some of the above scenarios can be
recursively combined into a single 1.5-roundtrip exchange. For
example, a combined key distribution exchange for Scenarios 1 and 2
is illustrated in Figure 5 where KDE[1-4] and KDE'[1-4] are messages
for Scenarios 1 and 2, respectively.
peer DSUSR-KH DSR-KH EAP Server
----- -------- ------- -----
| KDE1 | KDE1 | KDE2 |
| KDE1' | KDE2' | |
|------------------>|---------------->|--------------->|
| KDE4 | KDE4 | KDE3 |
| KDE4' | KDE3' | |
|<------------------|<--------------- |<---------------|
| | | |
Figure 5: Combined Message Exchange
4. KDE Message Format
The format of KDE messages is defined here in terms of Abstract
Syntax Notation One (ASN.1) [X680], which provides a syntax for
specifying both the abstract layout of protocol messages as well as
their encodings.
Nakhjiri & Ohba Expires August 28, 2008 [Page 13]
Internet-Draft HOKEY Key Distribution Exchange February 2008
4.1. Message Syntax
The syntax of KDE messages is defined here in terms of Abstract
Syntax Notation One (ASN.1) [X680], which provides a syntax for
specifying both the abstract layout of protocol messages as well as
their encodings.
-- OID for KDE
HokeyKdeV1 {
iso(1) identified-organization(3) dod(6) internet(1)
security(5) mechanisms(5) hokey(to be assigned by IANA)
kde-v1(1)
} DEFINITIONS AUTOMATIC TAGS ::= BEGIN
-- OID arc for HOKEY KDE
--
-- This OID may be used to identify HOKEY KDE messages
-- encapsulated in other protocols.
--
-- This OID also designates the OID arc for HOKEY KDE-related OIDs.
--
id-hokey-kde-v1 OBJECT IDENTIFIER ::= {
iso(1) identified-organization(3) dod(6) internet(1)
security(5) mechanisms(5) hokey(to be assigned by IANA)
kde-v1(1)
}
UInt32 ::= INTEGER (0..4294967295)
-- unsigned 32 bit values
KDE-PDU ::= SEQUENCE {
version INTEGER (1..255)
-- Version of KDE protocol (=1 in this document)
payload KDE-Payload
-- Payload of KDE message
}
-- A payload contains one or more KDE messages.
-- The payload contains one or more KDE messages. Two or more KDE
-- messsage are allowed to support combined exchange.
KDE-Payload ::= SEQUENCE OF {
CHOICE {
kde0 KDE0 -- KDE0
kde1 KDE1, -- KDE1
kde2 KDE2, -- KDE2
kde3 KDE3, -- KDE3
kde4 KDE4 -- KDE4
Nakhjiri & Ohba Expires August 28, 2008 [Page 14]
Internet-Draft HOKEY Key Distribution Exchange February 2008
}
}
KDE0 ::= SEQUENCE {
tid OCTET STRING, -- Third-party ID
sid OCTET STRING, -- Server ID
did OCTET STRING OPTIONAL, -- Domain ID
keytype INTEGER(0..255)
-- Key Type of Kpt (IANA assigned value)
}
KDE1 ::= SEQUENCE {
prt PRT -- Peer Request Token
}
KDE2 ::= SEQUENCE {
trt TRT -- Third Party Request Token
}
KDE3 ::= SEQUENCE {
tot TOT -- Key Token
}
KDE4 ::= SEQUENCE {
tot SAT -- Server Authorization Token
}
-- PRT (Peer Request Token)
PRT ::= SEQUENCE {
seq Uint32, -- Sequence Number (intial value is 1)
pid OCTET STRING, -- Peer ID
tid OCTET STRING, -- Third-party ID
sid OCTET STRING, -- Server ID
did OCTET STRING OPTIONAL,
-- Domain ID
keytype INTEGER(0..255)
-- Key Type of Kpt (IANA assigned value)
kips-name OCTET STRING, -- Key name of KIps
integrity-data IntegrityData
-- Integrity protection with KIps
}
-- TRT (Third party Request Token)
TRT ::= SEQUENCE {
tnonce Uint32 -- Third-party Nonce
pid OCTET STRING, -- Peer ID
tid OCTET STRING, -- Third-party ID
prt PRT
Nakhjiri & Ohba Expires August 28, 2008 [Page 15]
Internet-Draft HOKEY Key Distribution Exchange February 2008
}
-- TOK (Key Token)
TOK ::= SEQUENCE {
tnonce Uint32 -- Third-party Nonce+1
pid OCTET STRING, -- Peer ID
tid OCTET STRING, -- Third-party ID
sid OCTET STRING, -- Server ID
did OCTET STRING OPTIONAL,
-- Domain ID
keytype INTEGER(0..255)
-- Key Type of Kpt (IANA assigned value)
enc-kpt EnctyptedData
-- Kpt and its name and lifetime encrypted with KCts
sat SAT,
integrity-data IntegrityData
-- Integrity protection with KIts
}
-- SAT (Server Authorization Token)
SAT ::= SEQUENCE {
seq Uint32, -- Sequence Number + 1
pid OCTET STRING, -- Peer ID
tid OCTET STRING, -- Third-party ID
sid OCTET STRING, -- Server ID
did OCTET STRING OPTIONAL,
-- Domain ID
kpt-name OCTET STRING, -- Key name of Kpt
kpt-lifetime Uint32 -- Lifetime of Kpt in seconds
kps-name OCTET STRING, -- Key name of Kps
integrity-data IntegrityData
-- Integrity protection with KIps
}
-- Integrity Data
IntegrityData ::= SEQUENCE {
integrity-algorithm IntegirityAlgorithm, -- integrity algorithm
mac OCTET_STRING -- message authentication code
}
-- Encrypted Data
EncryptedData ::= SEQUENCE {
encryption-algorithm EncryptionAlgorithm, -- encryption algorithm
cipher OCTET_STRING -- encrypted data
}
-- Encryption algorithm. The data contains an IKEv2 Transform ID of
-- Transform Type 1 [RFC4306] for the encryption algorithm. All KDE
Nakhjiri & Ohba Expires August 28, 2008 [Page 16]
Internet-Draft HOKEY Key Distribution Exchange February 2008
-- implementations MUST support ENCR_AES_CBC [RFC3602]. It is allowed
-- to use null encryption (ENCR_NULL) for KDE2 and KDE3 in the case
-- where hop-by-hop security between third party and server is
-- acceptable.
EncryptionAlgorithm ::= UInt32
-- Integrith algorithm. The data contains an IKEv2 Transform ID of
-- Transform Type 3 [RFC4306] for the integrity algorithm. All KDE
-- implementations MUST support AUTH_HMAC_SHA1_160 (7) [RFC4595].
-- It is allowed to use a null integrity mechanism (NONE) for
-- for KDE2 and KDE3 in the case where hop-by-hop security between
-- third party and server is acceptable.
IntegrityAlgorithm ::= UInt32
END
4.2. Message Encoding
The default encoding of KDE protocol messages shall obey the PER
(Packed Encoding Rules) of ASN.1 as described in [X691]. A KDE
transport protocol may specify other ASN.1 encoding method.
5. Security Considerations
5.1. Security Association between Server and Third Party
The key distribution mechanism described in this document is designed
to work with both end-to-end and hop-by-hop security association
between a server and a third party.
When end-to-end security is used, the key distribution mechanism
assumes existence of a direct trust relationship between the server
and the third party key holder. When such a direct trust
relationship may be dynamically created from a chain of transitive
trust relationships with the use of inter-realm Kerberos to
distribute KIts and KCts as described in Section 3.4. Therefore, the
key distribution method described in this document eliminates the
need for hop-by-hop security associations along the transitive trust
relationship.
When hop-by-hop security is used, no integrity protection and
encryption is provided within the KDE protocol. A null encryption
algorithm (ENCR_NULL) and a null integrity protection (NONE) are
specified in KDE. In this case, underlying transport protocol
security such as IPsec and (D)TLS MUST be used instead. The use of
Nakhjiri & Ohba Expires August 28, 2008 [Page 17]
Internet-Draft HOKEY Key Distribution Exchange February 2008
hop-by-hop security implies that an intermediary on each hop can
access the distributed key material. Hence the use of hop-by-hop
security SHOULD be limited to an environment where an intermediary is
trusted not to use the distributed key material.
5.2. Replay Protection
The KDE protocol defines two freshness values to provide replay
protection. Sequence numbers generated by peer and maintained by
peer and server provide anti-replay for KDE messages 1, 2 and 4.
Nonces generated by third-party provide anti-replay for KDE message
3.
5.3. Distribution of Duplicate Kpt
If a Kpt is a USRK or a DSUSRK, it should be sufficient that
distribution of the Kpt happens only once during the lifetime of it's
root key, i.e., EMSK. Nevertheless, a peer may attempt to execute
the KDE protocol multiple times via the same third party with
specifying the same parameters in KDE message 1 except for sequence
number, for some reason such as loss of key state due to temporal
disconnection from the network. The server may accept such an
attempt and distribute a copy of the same Kpt back to the third
party, given that the lifetime of the Kpt (KL_Kpt) is recomputed such
that the key expiration time of the Kpt will not change for all
copies of the same Kpt.
6. IANA consideration
This document defines a new SMI Security for Mechanism Code for
hokey(to be assigned by IANA).
This document defines a new SMI Security for Mechanism hokey Code for
kde-v1(1).
This document defines new usage labels, such as those used in
generation of CK and IK. The corresponding labels, i.e.,
"kde-cipher-key@ietf.org" for CK and "kde-integrity-key@ietf.org" for
IK, need to be assigned numerical values by IANA.
The Key Type namespace is used to identify the type of Kpt. The range
of values 0 - 65,535 are for permanent, standard message types,
allocated by IETF Consensus [IANA]. This document defines the values
0 (DSRK), 1 (rRK) and 2 (DS-rRK).
Nakhjiri & Ohba Expires August 28, 2008 [Page 18]
Internet-Draft HOKEY Key Distribution Exchange February 2008
7. Acknowledgements
The author would like to thank Dan Harkins, Chunqiang Li, Rafael
Marin Lopez and Charles Clancy for their valuable contributions to
the formation of the KDE.
8. References
8.1. Normative References
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, March 1997.
[RFC3748] Aboba, B., Blunk, L., Vollbrecht, J., Carlson, J., and H.
Levkowetz, "Extensible Authentication Protocol (EAP)",
RFC 3748, June 2004.
[I-D.ietf-hokey-emsk-hierarchy]
Salowey, J., Dondeti, L., Narayanan, V., and M. Nakhjiri,
"Specification for the Derivation of Root Keys from an
Extended Master Session Key (EMSK)",
draft-ietf-hokey-emsk-hierarchy-04 (work in progress),
February 2008.
[I-D.ietf-hokey-erx]
Narayanan, V. and L. Dondeti, "EAP Extensions for EAP Re-
authentication Protocol (ERP)", draft-ietf-hokey-erx-12
(work in progress), February 2008.
[RFC3579] Aboba, B. and P. Calhoun, "RADIUS (Remote Authentication
Dial In User Service) Support For Extensible
Authentication Protocol (EAP)", RFC 3579, September 2003.
[RFC4072] Eronen, P., Hiller, T., and G. Zorn, "Diameter Extensible
Authentication Protocol (EAP) Application", RFC 4072,
August 2005.
[RFC4120] Neuman, C., Yu, T., Hartman, S., and K. Raeburn, "The
Kerberos Network Authentication Service (V5)", RFC 4120,
July 2005.
[RFC4962] Housley, R. and B. Aboba, "Guidance for Authentication,
Authorization, and Accounting (AAA) Key Management",
BCP 132, RFC 4962, July 2007.
[X680] "Abstract Syntax Notation One (ASN.1): Specification of
Basic Notation, ITU-T Recommendation X.680 (2002).",
Nakhjiri & Ohba Expires August 28, 2008 [Page 19]
Internet-Draft HOKEY Key Distribution Exchange February 2008
July 2002.
[X691] "Abstract Syntax Notation One (ASN.1): ASN.1 encoding
rules: Specification of Packed Encoding Rules (PER), ITU-T
Recommendation X.691 (2002).", July 2002.
[IANA] Narten, T. and H. Alvestrand, "Guidelines for Writing an
IANA Considerations Section in RFCs", BCP 26, RFC 2434,
October 1998.
8.2. Informative references
[RFC4107] Bellovin, S. and R. Housley, "Guidelines for Cryptographic
Key Management", BCP 107, RFC 4107, June 2005.
[I-D.ietf-eap-keying]
Aboba, B., Simon, D., and P. Eronen, "Extensible
Authentication Protocol (EAP) Key Management Framework",
draft-ietf-eap-keying-22 (work in progress),
November 2007.
[I-D.ietf-hokey-reauth-ps]
Clancy, C., Nakhjiri, M., Narayanan, V., and L. Dondeti,
"Handover Key Management and Re-authentication Problem
Statement", draft-ietf-hokey-reauth-ps-09 (work in
progress), February 2008.
Appendix A. KDE Transport
A.1. KDE Transport over UDP
This section defines UDP transport of KDE. A well-known port number
(to be assigned by IANA) is assigned for KDE.
For any KDE-PDU sent in response to another KDE-PDU received from the
other peer, the source port is set to the well-known port number (to
be assigned by IANA) assigned for KDE and the destination port is
copied from the source port of the received KDE-PDU. For other KDE-
PDUs, both the source and destination port numbers are set to the
well-known port number (to be assigned by IANA) assigned for KDE.
A.2. KDE Transport over AAA
When KDE messages are carried in AAA protocols, they are carried in a
RADIUS attribute or a corresponding Diameter AVP. The RADIUS
attribute for KDE is defined as follows:
Nakhjiri & Ohba Expires August 28, 2008 [Page 20]
Internet-Draft HOKEY Key Distribution Exchange February 2008
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Length | KDE-PDU ...
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 6: RADIUS Attribute for KDE
Type
IANA-TBD for KDE
Length
>=4
KDE-PDU
One KDE-PDU is included.
Authors' Addresses
Madjid Nakhjiri
Motorola
Email: madjid.nakhjiri@motorola.com
Yoshihiro Ohba
Toshiba
Email: yohba@tari.toshiba.com
Nakhjiri & Ohba Expires August 28, 2008 [Page 21]
Internet-Draft HOKEY Key Distribution Exchange February 2008
Full 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.
This document and the information contained herein are provided on an
"AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS
OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY, THE IETF TRUST AND
THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS
OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF
THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
Intellectual Property
The IETF takes no position regarding the validity or scope of any
Intellectual Property Rights or other rights that might be claimed to
pertain to the implementation or use of the technology described in
this document or the extent to which any license under such rights
might or might not be available; nor does it represent that it has
made any independent effort to identify any such rights. Information
on the procedures with respect to rights in RFC documents can be
found in BCP 78 and BCP 79.
Copies of IPR disclosures made to the IETF Secretariat and any
assurances of licenses to be made available, or the result of an
attempt made to obtain a general license or permission for the use of
such proprietary rights by implementers or users of this
specification can be obtained from the IETF on-line IPR repository at
http://www.ietf.org/ipr.
The IETF invites any interested party to bring to its attention any
copyrights, patents or patent applications, or other proprietary
rights that may cover technology that may be required to implement
this standard. Please address the information to the IETF at
ietf-ipr@ietf.org.
Acknowledgment
Funding for the RFC Editor function is provided by the IETF
Administrative Support Activity (IASA).
Nakhjiri & Ohba Expires August 28, 2008 [Page 22]
| PAFTECH AB 2003-2026 | 2026-04-23 19:10:55 |