From 4bfd864f10b68b71482b35c818559068ef8d5797 Mon Sep 17 00:00:00 2001 From: Thomas Voss Date: Wed, 27 Nov 2024 20:54:24 +0100 Subject: doc: Add RFC documents --- doc/rfc/rfc4763.txt | 2579 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 2579 insertions(+) create mode 100644 doc/rfc/rfc4763.txt (limited to 'doc/rfc/rfc4763.txt') diff --git a/doc/rfc/rfc4763.txt b/doc/rfc/rfc4763.txt new file mode 100644 index 0000000..a72db85 --- /dev/null +++ b/doc/rfc/rfc4763.txt @@ -0,0 +1,2579 @@ + + + + + + +Network Working Group M. Vanderveen +Request for Comments: 4763 H. Soliman +Category: Informational Qualcomm Flarion Technologies + November 2006 + + + Extensible Authentication Protocol Method for + Shared-secret Authentication and Key Establishment (EAP-SAKE) + +Status of This Memo + + This memo provides information for the Internet community. It does + not specify an Internet standard of any kind. Distribution of this + memo is unlimited. + +Copyright Notice + + Copyright (C) The IETF Trust (2006). + +IESG Note + + This RFC is not a candidate for any level of Internet Standard. The + IETF disclaims any knowledge of the fitness of this RFC for any + purpose and in particular notes that the decision to publish is not + based on IETF review for such things as security, congestion control, + or inappropriate interaction with deployed protocols. The RFC Editor + has chosen to publish this document at its discretion. Readers of + this document should exercise caution in evaluating its value for + implementation and deployment. See RFC 3932 for more information. + +Abstract + + This document specifies an Extensible Authentication Protocol (EAP) + mechanism for Shared-secret Authentication and Key Establishment + (SAKE). This RFC is published as documentation for the IANA + assignment of an EAP Type for a vendor's EAP method per RFC 3748. + The specification has passed Designated Expert review for this IANA + assignment. + + + + + + + + + + + + + +Vanderveen & Soliman Informational [Page 1] + +RFC 4763 EAP-SAKE November 2006 + + +Table of Contents + + 1. Introduction ....................................................3 + 2. Terminology .....................................................3 + 3. Protocol Description ............................................4 + 3.1. Overview and Motivation of EAP-SAKE ........................4 + 3.2. Protocol Operation .........................................5 + 3.2.1. Successful Exchange .................................5 + 3.2.2. Authentication Failure ..............................7 + 3.2.3. Identity Management ................................11 + 3.2.4. Obtaining Peer Identity ............................11 + 3.2.5. Key Hierarchy ......................................13 + 3.2.6. Key Derivation .....................................15 + 3.2.7. Ciphersuite Negotiation ............................17 + 3.2.8. Message Integrity and Encryption ...................17 + 3.2.9. Fragmentation ......................................21 + 3.2.10. Error Cases .......................................21 + 3.3. Message Formats ...........................................22 + 3.3.1. Message Format Summary .............................22 + 3.3.2. Attribute Format ...................................23 + 3.3.3. Use of AT_ENCR_DATA Attribute ......................25 + 3.3.4. EAP.Request/SAKE/Challenge Format ..................26 + 3.3.5. EAP.Response/SAKE/Challenge Format .................28 + 3.3.6. EAP.Request/SAKE/Confirm Format ....................30 + 3.3.7. EAP.Response/SAKE/Confirm Format ...................32 + 3.3.8. EAP.Response/SAKE/Auth-Reject Format ...............33 + 3.3.9. EAP.Request/SAKE/Identity Format ...................34 + 3.3.10. EAP.Response/SAKE/Identity Format .................36 + 3.3.11. Other EAP Messages Formats ........................37 + 4. IANA Considerations ............................................37 + 5. Security Considerations ........................................38 + 5.1. Denial-of-Service Attacks .................................38 + 5.2. Root Secret Considerations ................................38 + 5.3. Mutual Authentication .....................................39 + 5.4. Integrity Protection ......................................39 + 5.5. Replay Protection .........................................39 + 5.6. Confidentiality ...........................................40 + 5.7. Key Derivation, Strength ..................................40 + 5.8. Dictionary Attacks ........................................41 + 5.9. Man-in-the-Middle Attacks .................................41 + 5.10. Result Indication Protection .............................41 + 5.11. Cryptographic Separation of Keys .........................41 + 5.12. Session Independence .....................................41 + 5.13. Identity Protection ......................................42 + 5.14. Channel Binding ..........................................42 + 5.15. Ciphersuite Negotiation ..................................42 + 5.16. Random Number Generation .................................43 + 6. Security Claims ................................................43 + + + +Vanderveen & Soliman Informational [Page 2] + +RFC 4763 EAP-SAKE November 2006 + + + 7. Acknowledgements ...............................................44 + 8. References .....................................................44 + 8.1. Normative References ......................................44 + 8.2. Informative References ....................................45 + +1. Introduction + + The Extensible Authentication Protocol (EAP), described in [EAP], + provides a standard mechanism for support of multiple authentication + methods. EAP is also used within IEEE 802 networks through the IEEE + 802.11i [IEEE802.11i] framework. + + EAP supports several authentication schemes, including smart cards, + Kerberos, Public Key, One Time Passwords, TLS, and others. This + document defines an authentication scheme, called the EAP-SAKE. + EAP-SAKE supports mutual authentication and session key derivation, + based on a static pre-shared secret data. This RFC is published as + documentation for the IANA assignment of an EAP Type for a vendor's + EAP method per RFC 3748. The specification has passed Designated + Expert review for this IANA assignment. + +2. Terminology + + In this document, several words are used to signify the requirements + of the specification. These words are often capitalized. The key + words "MUST", "MUST NOT", "REQUIRED", "MUST", "MUST NOT", "SHOULD", + "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document + are to be interpreted as described in BCP 14 [KEYWORDS]. + + In addition to the terms used in [EAP], this document frequently uses + the following terms and abbreviations: + + MIC Message Integrity Check + + SMS SAKE Master Secret + + NAI Network Access Identifier + + + + + + + + + + + + + + +Vanderveen & Soliman Informational [Page 3] + +RFC 4763 EAP-SAKE November 2006 + + +3. Protocol Description + +3.1. Overview and Motivation of EAP-SAKE + + The EAP-SAKE authentication protocol is a native EAP authentication + method. That is, a stand-alone version of EAP-SAKE outside of EAP is + not defined. EAP-SAKE is designed to enable mutual authentication, + based on pre-shared keys and well-known public cryptographic + algorithms. This method is ideal for subscription-based public + access networks, e.g., cellular networks. + + EAP-SAKE assumes a long-term or pre-shared secret known only to the + Peer and the Server. This pre-shared secret is called the Root + Secret. The Root Secret consists of a 16-byte part Root-Secret-A, + and 16-byte part Root-Secret-B. The Root-Secret-A secret is reserved + for use local to the EAP-SAKE method, i.e., to mutually authenticate + the EAP Peer and EAP Server. The Root-Secret-B secret is used to + derive other quantities such as the Master Session Key (MSK) and + Extended Master Session Key (EMSK). Root-Secret-B and Root-Secret-A + MUST be cryptographically separate. + + When a Backend Authentication Server is used, the Server typically + communicates with the Authenticator using an AAA protocol. The AAA + communications are outside the scope of this document. + + Some of the advantages of EAP-SAKE are as follows: + + o It is based on well-established Bellare-Rogaway mutual + authentication protocol. + + o It supports key derivation for local EAP method use and for export + to other third parties to use them independently of EAP. + + o It employs only two request/response exchanges. + + o It relies on the (corrected) IEEE 802.11i function for key + derivation and message integrity. This way a device implementing a + lower-layer secure association protocol compliant with IEEE 802.11i + standard will not need additional cryptographic code. + + o Its encryption algorithm is securely negotiated (with no extra + messages), yet encryption use is optional. + + o Keys used for authentication and those used for encryption are + cryptographically separate. + + o User identity anonymity can be optionally supported. + + + + +Vanderveen & Soliman Informational [Page 4] + +RFC 4763 EAP-SAKE November 2006 + + + o No synchronization (e.g., of counters) needed between server and + peer. + + o There is no one-time key pre-processing step. + +3.2. Protocol Operation + + EAP-SAKE uses four messages consisting of two EAP request/response + exchanges. The EAP.Success and EAP.Failure messages shown in the + figures are not part of the EAP-SAKE method. As a convention, method + attributes are named AT_XX, where XX is the name of the parameter the + attribute value is set to. + +3.2.1. Successful Exchange + + A successful EAP-SAKE authentication exchange is depicted in Figure + 1. The following steps take place: + + Peer Server + | | + | EAP.Request/SAKE/Challenge | + | (AT_RAND_S, AT_SERVERID) | + 1 |<---------------------------------------------------------| + | | + | EAP.Response/SAKE/Challenge | + | (AT_RAND_P, AT_PEERID, AT_SPI_P, AT_MIC_P) | + 2 |--------------------------------------------------------->| + | | + | EAP.Request/SAKE/Confirm | + | (AT_SPI_S, AT_ENCR_DATA, AT_MIC_S)| + 3 |<---------------------------------------------------------| + | | + | EAP.Response/SAKE/Confirm | + | (AT_MIC_P) | + 4 |--------------------------------------------------------->| + | | + | | + | EAP-Success | + 5 |<---------------------------------------------------------| + | | + + Figure 1. EAP-SAKE Authentication Procedure (with ciphersuite + negotiation) + + 1. The EAP server sends the first message of the EAP-SAKE exchange. + This message is an EAP.Request message of type SAKE and subtype + Challenge. The EAP.Request/SAKE/Challenge message contains the + attributes: AT_RAND_S, whose value is a nonce freshly generated + + + +Vanderveen & Soliman Informational [Page 5] + +RFC 4763 EAP-SAKE November 2006 + + + by the Server; and AT_SERVERID, which carries an identifier of + the Server (a fully qualified domain name, such as the realm of + the user NAI [NAI]). The AT_SERVERID attribute is OPTIONAL but + SHOULD be included in this message. The purpose of the + AT_SERVERID is to aid the Peer in selecting the correct security + association (i.e., Root-Secret, PEERID, and SERVERID) to use + during this EAP phase. + + 2. The Peer responds by sending an EAP.Response message of type SAKE + and subtype Challenge. The EAP.Response/SAKE/Challenge message + contains the attributes: AT_RAND_P, which carries a nonce freshly + generated by the Peer; AT_PEERID, which carries a Peer + identifier; AT_SPI_P, which carries a list of one or more + ciphersuites supported by the Peer; and AT_MIC_P, containing a + message integrity check. The AT_SPI_P and AT_PEERID attributes + are OPTIONAL. The AT_PEERID attribute SHOULD be included, in + order to cover the case of multi-homed hosts. A supported + ciphersuite is represented by a value local to the EAP-SAKE + method, or "Security Parameter Index", see section 3.2.8.3. The + Peer uses both nonces, along with the Root-Secret-A key, to + derive a SAKE Master Secret (SMS) and Temporary EAP Keys (TEKs), + which also include the TEK-Auth and TEK-Cipher keys. The MIC_P + value is computed based on both nonces RAND_S and RAND_P, and the + entire EAP packet, using the key TEK-Auth, see Section 3.2.6. + + 3. Upon receipt of the EAP.Response/SAKE/Challenge message, the + Server uses both nonces RAND_S and RAND_P, along with the Root- + Secret-A key, to compute the SMS and TEK in exactly the same way + the Peer did. Following that, the Server computes the Peer's + MIC_P in exactly the same way the Peer did. The Server then + compares the computed MIC_P with the MIC_P it received from the + Peer. If they match, the Server considers the Peer + authenticated. If encryption is needed, the Server selects the + strongest ciphersuite from the Peer's ciphersuite list SPI_P, or + a suitable ciphersuite if the Peer did not include the AT_SPI_P + attribute. The Server sends an EAP.Request message of type SAKE + and subtype Confirm, containing the attributes: AT_SPI_S, + carrying the ciphersuite chosen by the Server; AT_ENCR_DATA, + containing encrypted data; and AT_MIC_S, carrying a message + integrity check. The AT_SPI_S and AT_ENCR_DATA are OPTIONAL + attributes, included if confidentiality and/or user identity + anonymity is desired. Other OPTIONAL attributes that MAY be + included are AT_NEXT_TMPID, and AT_MSK_LIFE. As before, the + MIC_S value is computed using both nonces RAND_S and RAND_P, and + the entire EAP packet, using the key TEK-Auth. + + + + + + +Vanderveen & Soliman Informational [Page 6] + +RFC 4763 EAP-SAKE November 2006 + + + 4. If the Peer receives the EAP.Request/SAKE/Confirm message + indicating successful authentication by the Server, the Peer + computes the MIC_S in the same manner as the Server did. The + Peer then compares the received MIC_S with the MIC_S it computed. + If they match, the Peer considers the Server authenticated, and + it sends an EAP.Response message of type SAKE and subtype + Confirm, with the attribute AT_MIC_P containing a message + integrity check, computed in the same manner as before. + + 5. After a successful EAP-SAKE exchange, the Server concludes the + EAP conversation by sending an EAP.Success message to the Peer. + + All EAP-SAKE messages contain a Session ID, which is chosen by the + Server, sent in the first message, and replicated in subsequent + messages until an EAP.Success or EAP.Failure is sent. Upon receipt + of an EAP-SAKE message, both Peer and Server MUST check the format of + the message to ensure that it is well-formed and contains a valid + Session ID. + + Note that the Session ID is introduced mainly for replay protection + purposes, as it helps uniquely identify a session between a Peer and + a Server. In most cases, there is a one-to-one relationship between + the Session ID and the Peer/Server pair. + + The parameters used by the EAP-SAKE method are summarized in the + table below: + + Name Length (bytes) Description + ---------+---------------+------------- + RAND_P 16 Peer nonce + RAND_S 16 Server nonce + MIC_P 16 Peer MIC + MIC_S 16 Server MIC + SPI_P variable Peer ciphersuite preference(s) + SPI_S variable Server chosen ciphersuite + PEERID variable Peer identifier + SERVERID variable Server identifier (FQDN) + +3.2.2. Authentication Failure + + If the Authenticator receives an EAP.Failure message from the Server, + the Authenticator MUST terminate the connection with the Peer + immediately. + + The Server considers the Peer to have failed authentication if either + of the two received MIC_P values does not match the computed MIC_P. + + + + + +Vanderveen & Soliman Informational [Page 7] + +RFC 4763 EAP-SAKE November 2006 + + + The Server SHOULD deny authorization for a Peer that does not + advertise any of the ciphersuites that are considered acceptable + (e.g., by local system policy) and send an EAP.Failure message. + + In case of authentication failure, the Server MUST send an + EAP.Failure message to the Peer as in Figure 2. The following steps + take place: + + Peer Server + | | + | EAP.Request/SAKE/Challenge | + | (AT_RAND_S, AT_SERVERID) | + 1 |<---------------------------------------------------------| + | | + | EAP.Response/SAKE/Challenge | + | (AT_RAND_P, AT_PEERID, AT_SPI_P, AT_MIC_P) | + 2 |--------------------------------------------------------->| + | | + | +-------------------------------------------+ + | | Server finds MIC_P invalid. | + | +-------------------------------------------+ + | | + | EAP-Failure | + 3 |<---------------------------------------------------------| + + Figure 2. EAP-SAKE Authentication Procedure, Peer Fails + Authentication + + 1. As in step 1 of Figure 1. + + 2. As in step 2 of Figure 1. + + 3. Upon receipt of the EAP.Response/SAKE/Challenge message, the + Server uses both nonces RAND_S and RAND_P, along with the Root- + Secret-A key, to compute the SMS and TEK in exactly the same way + the Peer did. Following that, the Server computes the Peer's MIC + in exactly the same way the Peer did. The Server then compares + the computed MIC_P with the MIC_P it received from the Peer. + Since they do not match, the Server considers the Peer to have + failed authentication and sends an EAP.Failure message back to + the Peer. + + + + + + + + + + +Vanderveen & Soliman Informational [Page 8] + +RFC 4763 EAP-SAKE November 2006 + + + If the AT_SPI_S attribute does not contain one of the SPI values that + the Peer listed in the previous message, or if the Peer did not + include an AT_SPI_P attribute yet does not accept the ciphersuite the + Server has chosen, then the Peer SHOULD silently discard this + message. Alternatively, the Peer MAY send a SAKE/Auth-Reject message + back to the Server; in response to this message, the Server MUST send + an EAP.Failure message to the Peer. + + The AT_SPI_S attribute MUST be included if encryption is to be used. + The Server knows whether or not encryption is to be used, as it is + usually the Server that needs to protect some data intended for the + Peer (e.g., temporary ID, group keys, etc). If the Peer receives an + AT_SPI_S attribute yet there is no AT_ENCR_DATA attribute, the Peer + SHOULD process the message and skip the AT_SPI_S attribute. + + The Peer considers the Server to have failed authentication if the + received and the computed MIC_S values do not match. In this case, + the Peer MUST send to the Server an EAP.Response message of type SAKE + and subtype Auth-Reject, indicating an authentication failure. In + this case, the Server MUST send an EAP.Failure message to the Peer as + in Figure 3. The following steps take place: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Vanderveen & Soliman Informational [Page 9] + +RFC 4763 EAP-SAKE November 2006 + + + Peer Server + | | + | EAP.Request/SAKE/Challenge | + | (AT_RAND_S, AT_SERVERID) | + 1 |<---------------------------------------------------------| + | | + | EAP.Response/SAKE/Challenge | + | (AT_RAND_P, AT_PEERID, AT_SPI_P, AT_MIC_P) | + 2 |--------------------------------------------------------->| + | | + | EAP.Request/SAKE/Confirm | + | (AT_SPI_S, AT_ENCR_DATA, AT_MIC_S)| + 3 |<---------------------------------------------------------| + | | + +-----------------------------------------------+ | + | Peer finds MIC_S invalid. | | + +-----------------------------------------------+ | + | | + | EAP.Response/SAKE/Auth-Reject | + 4 |--------------------------------------------------------->| + | | + | EAP-Failure | + 5 |<---------------------------------------------------------| + | | + + Figure 3. EAP-SAKE Authentication Procedure, Server Fails + Authentication + + 1. As in step 1 of Figure 1. + + 2. As in step 2 of Figure 1. + + 3. As in step 3 of Figure 1. + + 4. The Peer receives a EAP.Request/SAKE/Confirm message indicating + successful authentication by the Server. The Peer computes the + MIC_S in the same manner as the Server did. The Peer then + compares the received MIC_S with the MIC_S it computed. Since + they do not match, the Peer considers the Server to have failed + authentication. In this case, the Peer responds with an + EAP.Response message of type SAKE and subtype Auth-Reject, + indicating authentication failure. + + 5. Upon receipt of a EAP.Response/SAKE/Auth-Reject message, the + Server sends an EAP.Failure message back to the Peer. + + + + + + +Vanderveen & Soliman Informational [Page 10] + +RFC 4763 EAP-SAKE November 2006 + + +3.2.3. Identity Management + + It may be advisable to assign a temporary identifier (TempID) to a + Peer when user anonymity is desired. The TempID is delivered to the + Peer in the EAP.Request/SAKE/Confirm message. The TempID follows the + format of any NAI [NAI] and is generated by the EAP Server that + engages in the EAP-SAKE authentication task with the Peer. EAP + servers SHOULD be configurable with TempID spaces that can be + distinguished from the permanent identity space. For instance, a + specific realm could be assigned for TempIDs (e.g., tmp.example.biz). + + A TempID is not assigned an explicit lifetime. The TempID is valid + until the Server requests the permanent identifier, or the Peer + triggers the start of a new EAP session by sending in its permanent + identifier. A Peer MUST be able to trigger an EAP session at any + time using its permanent identifier. A new TempID assigned during a + successful EAP session MUST replace the existing TempID for future + transactions between the Peer and the Server. + + Note that the delivery of a TempID does not imply that the Server + considers the Peer authenticated; the Server still has to check the + MIC in the EAP.Response/SAKE/Confirm message. In case the EAP phase + ends with an EAP.Failure message, then the Server and the Peer MUST + consider the TempID that was just delivered as invalid. Hence, the + Peer MUST NOT use this TempID the next time it tries to authenticate + with the Server. + +3.2.4. Obtaining Peer Identity + + The types of identities that a Peer may possess are permanent and + temporary identities, referred to as PermID and TempID, respectively. + A PermID can be an NAI associated with the Root Secret, and is long- + lived. A TempID is an identifier generated through the EAP method + and that the Peer can use to identify itself during subsequent EAP + sessions with the Server. The purpose of the TempID is to allow for + user anonymity support. The use of TempIDs is optional in the EAP- + SAKE method. + + The Server MAY request the Peer ID via the EAP.Request/SAKE/Identity + message, as shown in Figure 4. This case may happen if, for example, + the Server wishes to initiate an EAP-SAKE session for a Peer it does + not have a subscriber identifier for. The following steps take + place: + + + + + + + + +Vanderveen & Soliman Informational [Page 11] + +RFC 4763 EAP-SAKE November 2006 + + + Peer Server + | | + | +---------------------------------+ + | | Server wishes to initiate | + | | an EAP-SAKE session | + | | | + | +---------------------------------+ + | | + | EAP.Request/SAKE/Identity | + | (AT_ANY_ID_REQ, AT_SERVERID) | + 1 |<---------------------------------------------------------| + | | + | EAP.Response/SAKE/Identity | + | (AT_PEERID) | + 2 |--------------------------------------------------------->| + | | + +--------------------------------------------------------------+ + | If identity found, normal EAP-SAKE authentication follows. | + +--------------------------------------------------------------+ + + Figure 4. Server Requests Peer Identity + + 1. The Server sends an EAP.Request message of type SAKE and subtype + Identity, with the attribute AT_ANY_ID_REQ, indicating a request + for any Peer identifier. + + 2. The Peer constructs an EAP.Response message of type SAKE and + subtype Identity, with the attribute AT_PEER_ID containing any + Peer identifier (PermID or TempID). + + If the Server cannot find the Peer identity reported in the + EAP.Response/SAKE/Identity message, or if it does not recognize the + format of the Peer identifier, the Server MAY send an EAP.Failure + message to the Peer. + + If the Server is unable to look up a Peer by its TempID, or if policy + dictates that the Peer should now use its permanent id, then the + Server may specifically ask for the permanent identifier, as in + Figure 5. The following steps occur: + + + + + + + + + + + + +Vanderveen & Soliman Informational [Page 12] + +RFC 4763 EAP-SAKE November 2006 + + + Peer Server + | | + | +---------------------------------+ + 1 | | Server obtains TempID but | + | | requires PermID | + | +---------------------------------+ + | | + | EAP.Request/SAKE/Identity | + | (AT_PERM_ID_REQ, AT_SERVERID) | + 2 |<---------------------------------------------------------| + | | + | EAP.Response/SAKE/Identity | + | (AT_PEERID) | + 3 |--------------------------------------------------------->| + | | + | +---------------------------------+ + | | Server finds and uses | + | | Peer PermID to start a | + | | EAP-SAKE authentication phase | + | +---------------------------------+ + | + +---------------------------------------------------------------+ + | Normal EAP-SAKE authentication follows. | + +---------------------------------------------------------------+ + + Figure 5. Server Is Given a TempID as Peer Identity; Server + Requires a PermID + + 1. The Peer (or the Authenticator on behalf of the Peer) sends an + EAP.Request message of type Identity and includes the TempID. + + 2. The Server requires a PermID instead, so it sends an EAP.Request + message of type SAKE and subtype Identity with attributes + AT_PERM_ID_REQ and AT_SERVERID. + + 3. The Peer sends an EAP.Response message of type SAKE and subtype + Identity containing the attribute AT_PEERID carrying the Peer + PermID. + +3.2.5. Key Hierarchy + + EAP-SAKE uses a three-level key hierarchy. + + Level 1 contains the pre-shared secret called Root Secret. This is a + 32-byte high-entropy string partitioned into the Root-Secret-A part + (16 bytes) and the Root-Secret-B part (16 bytes). + + + + + +Vanderveen & Soliman Informational [Page 13] + +RFC 4763 EAP-SAKE November 2006 + + + Level 2 contains the key derivation key called the SAKE Master Secret + (SMS). SMS-A is derived from the Root-Secret-A key and the Peer and + Server nonces using the EAP-SAKE Key-Derivation Function (KDF), and + similarly for SMS-B. The SMS is known only to the Peer and Server + and is not made known to other parties. + + Level 3 contains session keys, such as Transient EAP Keys (TEK), + Master Session Key (MSK), and Extended MSK (EMSK). TEKs are keys for + use local to the EAP method only. They are derived from the SMS-A + and the nonces using the EAP-SAKE KDF. They are partitioned into a + 16-byte TEK-Auth, used to compute the MICs, and a 16-byte TEK-Cipher, + used to encrypt selected attributes. Since the SMS is fresh, so are + the derived TEKs. + + +--------------------+ +--------------------+ + | Root-Secret-A | | Root-Secret-B | + | (pre-shared secret)| | (pre-shared secret)| + +--------------------+ +--------------------+ + | | + V V + +-------------------+ +--------------------+ + | SAKE Master Secret|<---RAND_S------------->| SAKE Master Secret | + | (SMS-A) | | | (SMS-B) | + | |<-------]---RAND_P----->| | + +-------------------+ | | +--------------------+ + | | | | + V | | V + +--------------------+ | | +--------------------+ + | Transient EAP Keys |<------+-----+-------->| Session Keys: | + | TEK-Auth,TEK-Cipher|<------------+-------->| MSK, EMSK | + +--------------------+ +--------------------+ + + Figure 6. Key Hierarchy for the EAP-SAKE Method + + On another branch of level 3 of the key hierarchy are the MSK and + EMSK, each mandated to be 64 bytes long. They are derived from the + SMS-B and the nonces using the EAP-SAKE KDF. Again, since the SMS is + fresh, so are the derived MSK/EMSK. The MSK is meant to be exported + and relayed to other parties. The EMSK is reserved for future use, + such as derivation of application-specific keys, and is not shared + with other parties. + + + + + + + + + + +Vanderveen & Soliman Informational [Page 14] + +RFC 4763 EAP-SAKE November 2006 + + + The EAP-SAKE key material is summarized in the table below. + + =================================================================== + Key Size Scope Lifetime Use + (bytes) + =================================================================== + Root-Secret-A 16 Peer, Server Device Derive TEK + -------------------------------------------------------------------- + Root-Secret-B 16 Peer, Server Device Derive MSK, EMSK + -------------------------------------------------------------------- + TEK-Auth 16 Peer, Server MSK Life Compute MICs + -------------------------------------------------------------------- + TEK-Cipher 16 Peer, Server MSK Life Encrypt attribute + -------------------------------------------------------------------- + MSK 64 Peer, Server, MSK Life Derive keys for + Authenticator lower-layer use + -------------------------------------------------------------------- + EMSK 64 Peer, Server MSK Life Reserved + -------------------------------------------------------------------- + + A key name format is not provided in this version. + + Since this version of EAP-SAKE does not support fast re- + authentication, the lifetime of the TEKs is to extend only until the + next EAP mutual authentication. The MSK lifetime dictates when the + next mutual authentication is to take place. The Server MAY convey + the MSK lifetime to the Peer in the AT_MSK_LIFE attribute. Note that + EAP-SAKE does not support key lifetime negotiation. + + The EAP-SAKE Method-Id is the contents of the RAND_S field from the + AT_RAND_S attribute, followed by the contents of the RAND_P field in + the AT_RAND_P attribute. + +3.2.6. Key Derivation + +3.2.6.1. Key-Derivation Function + + For the rest of this document, KDF-X denotes the EAP-SAKE Key- + Derivation Function whose output is X bytes. This function is the + pseudo-random function of [IEEE802.11i]. + + The function takes three strings of bytes of arbitrary lengths: a + Key, a Label, and a Msg, and outputs a string Out of length X bytes + as follows: + + Out = KDF-X (Key, Label, Msg) + + + + + +Vanderveen & Soliman Informational [Page 15] + +RFC 4763 EAP-SAKE November 2006 + + + The KDF is a keyed hash function with key "Key" and operating on + input "Label | Msg". The convention followed herein is that + concatenation is denoted by |, FLOOR denotes the floor function, and + [x...y] denotes bytes x through y. + + The label is an ASCII character string. It is included in the exact + form it is given without a length byte or trailing null character. + + Below, "Length" denotes a single unsigned octet with values between 0 + and 255 (bytes). The following functions are defined (see [HMAC], + [SHA1]): + + H-SHA1(Key, Label, Msg, Length) := HMAC-SHA1(Key, Label|Y|Msg|Length) + where Y := 0x00 + KDF-16(Key, Label, Msg) := KDF(Key, Label, Msg, 16) + KDF-32(Key, Label, Msg) := KDF(Key, Label, Msg, 32) + KDF-128(Key, Label, Msg) := KDF(Key, Label, Msg, 128) + + KDF(Key, Label, Msg, Length) + R := [] ;; null string + for i := 0 to FLOOR(Length/20)-1 do + R := R | H-SHA1(Key, Label, Msg, i) + return R[0...(Length-1)] + +3.2.6.2. Transient EAP Keys Derivation + + The Peer and Server derive the SMS and then the TEK as follows: + + SMS-A = KDF-16 (Root-Secret-A, "SAKE Master Secret A", RAND_P|RAND_S) + TEK = KDF-32 (SMS-A, "Transient EAP Key", RAND_S | RAND_P) + TEK-Auth = TEK[0...15] + TEK-Cipher = TEK[16...31] + +3.2.6.3. Extended/Master Session Key Derivation + + The Peer and the Server derive the MSK/EMSK, as follows: + + SMS-B = KDF-16 (Root-Secret-B, "SAKE Master Secret B", RAND_P|RAND_S) + Session-Key-Block=KDF-128(SMS-B, "Master Session Key", RAND_S|RAND_P) + MSK = Session-Key-Block[0...63] + EMSK = Session-Key-Block[64...127] + + The derivation above affords the required cryptographic separation + between the MSK and EMSK. That is, knowledge of the EMSK does not + immediately lead to knowledge of the MSK, nor does knowledge of the + MSK immediately lead to knowledge of the EMSK. + + + + + +Vanderveen & Soliman Informational [Page 16] + +RFC 4763 EAP-SAKE November 2006 + + +3.2.7. Ciphersuite Negotiation + + A ciphersuite is identified by a numeric value called the Security + Parameter Index (SPI). The SPI is used here in the EAP-SAKE method + in order to negotiate a ciphersuite between the Peer and the Server + for EAP data protection only. Obviously, this ciphersuite can only + be used late in the EAP conversation, after it has been agreed upon + by both the Peer and the Server. + + The EAP method may or may not need to use this ciphersuite, since + attribute encryption is optional. For example, if the temporary + identifier needs to be delivered to the Peer and needs to be + encrypted, then the negotiated ciphersuite will be used for this + task. If there are no attributes that need encryption as they are + passed to the Peer, then this ciphersuite is never used. + + As with most other methods employing ciphersuite negotiation, the + following exchange is employed: the Peer sends an ordered list of one + or more supported ciphersuites, starting with the most preferred one, + in a field SPI_P. The Server then sends back the one ciphersuite + chosen in a field SPI_S. The Server SHOULD choose the strongest + ciphersuite supported by both of them. + + Ciphersuite negotiation for data protection is achieved via SAKE + Signaling as follows. In the EAP.Response/SAKE/Challenge, the Peer + sends a list of supported ciphersuites, SPI_P, and protects that with + a MIC. In the EAP.Request/SAKE/Confirm, the Server sends one + selected ciphersuite, SPI_S, and signs that with a MIC. Finally, the + Peer confirms the selected ciphersuite and readiness to use it in a + signed EAP.Response/SAKE/Confirm message. The negotiation is secure + because of the Message Integrity Checks that cover the entire EAP + message. + +3.2.8. Message Integrity and Encryption + + This section specifies the EAP/SAKE attributes used for message + integrity and attribute encryption: AT_MIC_S, AT_MIC_P, AT_IV, + AT_ENCR_DATA, and AT_PADDING. Only the AT_MIC_S and AT_MIC_P are + mandatory to use during the EAP-SAKE exchange. + + Because the TEKs necessary for protection of the attributes and for + message authentication are derived using the nonces RAND_S and + RAND_P, the AT_MIC_S and AT_MIC_P attributes can only be used in the + EAP.Response/SAKE/Challenge message and any messages sent thereafter. + + + + + + + +Vanderveen & Soliman Informational [Page 17] + +RFC 4763 EAP-SAKE November 2006 + + +3.2.8.1. The AT_MIC_S and AT_MIC_P Attributes + + The AT_MIC_S and AT_MIC_P attributes are used for EAP-SAKE message + integrity. The AT_MIC_S attribute MUST be included in all EAP-SAKE + packets that the Server sends whenever key material (TEK) has been + derived. That is, the AT_MIC_S attribute MUST be included in the + EAP.Request/SAKE/Confirm message. The AT_MIC_S MUST NOT be included + in EAP.Request/SAKE/Challenge messages, or EAP.Request/SAKE/Identity + messages. + + The AT_MIC_P attribute MUST be included in all EAP-SAKE packets the + Peer sends whenever key material (TEK) has been derived. That is, + the AT_MIC_P attribute MUST be included in the + EAP.Response/SAKE/Challenge and EAP.Response/SAKE/Confirm messages. + + The AT_MIC_P attribute MUST NOT be included in the + EAP.Response/SAKE/Auth-Reject message since the Peer has not + confirmed that it has the same TEK as the Server. + + Messages that do not meet the conditions specified above MUST be + silently discarded upon reception. + + The value field of the AT_MIC_S and AT_MIC_P attributes contain a + message integrity check (MIC). The MIC is calculated over the entire + EAP packet, prepended with the Server nonce and identifier and the + Peer nonce and identifier. The value field of the MIC attribute is + set to zero when calculating the MIC. Including the Server and Peer + nonces and identifiers aids in detecting replay and man-in-the-middle + attacks. + + The Peer computes its MIC as follows: + + MIC_P = KDF-16 (TEK-Auth, "Peer MIC", RAND_S | RAND_P | + PEERID | 0x00 | SERVERID | 0x00 | ), + + while the Server computes its MIC as + + MIC_S = KDF-16 (TEK-Auth, "Server MIC", RAND_P |RAND_S | + SERVERID | 0x00 | PEERID | 0x00 | ). + + Here, denotes the entire EAP packet, used as a string of + bytes, the MIC value field set to zero. 0x00 denotes a single octet + value used to delimit SERVERID and PEERID. The PEERID and SERVERID, + respectively, are the ones carried in the corresponding attributes in + the SAKE/Challenge messages. + + + + + + +Vanderveen & Soliman Informational [Page 18] + +RFC 4763 EAP-SAKE November 2006 + + + In case the SAKE/Challenge exchange was preceded by an + EAP.Request/SAKE/Identity message containing the AT_SERVERID + Attribute, then the SERVERID value in the MIC_P and MIC_S computation + MUST be set to the value of this attribute. + + If the AT_SERVERID was not included in either the SAKE/Challenge + message or the SAKE/Identity message, then the value of the SERVERID + used in the computation of MIC_P and MIC_S MUST be empty. If the + AT_PEERID was not included in the SAKE/Challenge message, and there + was no EAP.Response/SAKE/Identity message preceding the + SAKE/Challenge messages, then the value of the PEERID used in the + computation of MIC_P and MIC_S MUST be empty. + + The Server and Peer identity are included in the computation of the + signed responses so that the Peer and Server can verify each other's + identities, and the possession of a common secret, the TEK-Auth. + However, since the AT_SERVERID is not explicitly signed with a MIC by + the Server, EAP-SAKE does not claim channel binding. + +3.2.8.2. The AT_IV, AT_ENCR_DATA, and AT_PADDING Attributes + + The AT_IV and AT_ENCR_DATA attributes can be used to transmit + encrypted information between the Server and the Peer. The value + field of AT_IV contains an initialization vector (IV) if one is + required by the encryption algorithm used. It is not mandatory that + the AT_IV attribute be included whenever the AT_ENCR_DATA attribute + is. + + However, the AT_IV attribute MUST NOT be included unless the + AT_ENCR_DATA is included. Messages that do not meet this condition + MUST be silently discarded. + + Attributes can be encrypted only after a ciphersuite has been agreed + on, i.e., in any message starting with the Server's + EAP.Request/SAKE/Confirm message. The attributes MUST be encrypted + using algorithms corresponding to the SPI value specified by the + AT_SPI_S attribute. The attributes MUST be encrypted using the TEK- + Cipher key, whose derivation is specified in Section 3.2.6.2. + + If an IV is required by the encryption algorithm, then the sender of + the AT_IV attribute MUST NOT reuse the IV value from previous EAP- + SAKE packets. The sender MUST choose a new value for each AT_IV + attribute. The sender SHOULD use a good random number generator to + generate the initialization vector (see [RFC4086] for guidelines). + + + + + + + +Vanderveen & Soliman Informational [Page 19] + +RFC 4763 EAP-SAKE November 2006 + + + The value field of the AT_ENCR_DATA attribute consists of bytes + encrypted using the ciphersuite specified in the AT_SPI_S attribute. + The encryption key is the TEK-Cipher, and the plaintext consists of + one or more concatenated EAP-SAKE attributes. + + The default encryption algorithm, as described in Section 3.2.8.3, + requires the length of the plaintext to be a multiple of 16 bytes. + The sender MAY need to include the AT_PADDING attribute as the last + attribute within the value field of the AT_ENCR_DATA attribute. The + length of the padding is chosen so that the length of the value field + of the AT_ENCR_DATA attribute becomes a multiple of 16 bytes. The + AT_PADDING attribute SHOULD NOT be included if the total length of + other attributes present within the AT_ENCR_DATA attribute is a + multiple of 16 bytes. The length of the AT_PADDING attribute + includes the Attribute Type and Attribute Length fields. The actual + pad bytes in the value field are set to zero (0x00) on sending. The + recipient of the message MUST verify that the pad bytes are zero + after decryption and MUST silently discard the message otherwise. + + The MIC computed on the entire EAP message can be used to obviate the + need for special integrity protection or message authentication of + the encrypted attributes. + + An example of the AT_ENCR_DATA attribute is shown in Section 3.3.3. + +3.2.8.3. Security Parameter Index (SPI) Considerations + + An SPI value is a variable-length string identifying at least an + encryption algorithm and possibly a "security association". EAP-SAKE + does not mandate the format of the SPI; it only mandates that the + default encryption algorithm be supported if encryption is supported. + That is, if an implementation compliant with this document supports + encryption, then it MUST support the AES-CBC cipher. + + The default encryption algorithm AES-CBC involves the AES block + cipher [AES] in the Cipher-Block-Chaining (CBC) mode of operation + [CBC]. + + The Peer in the EAP-SAKE method can send up to four SPI values in its + SPI_P field. Because the length of the AT_SPI_P and AT_SPI_S + attributes must each be a multiple of 2 bytes, the sender pads the + value field with zero bytes when necessary (the AT_PADDING attribute + is not used here). For example, the value field of the AT_SPI_S + contains one byte with the chosen SPI, followed by one byte of zeros. + + + + + + + +Vanderveen & Soliman Informational [Page 20] + +RFC 4763 EAP-SAKE November 2006 + + +3.2.9. Fragmentation + + The EAP-SAKE method does not require fragmentation, as the messages + do not get excessively long. That is, EAP packets are well within + the limit of the maximum transmission unit of other layers (link, + network). The only variable fields are those carrying NAIs, which + are limited by their length field to 256 bytes. + +3.2.10. Error Cases + + Malformed messages: As a general rule, if a Peer or Server receives + an EAP-SAKE packet that contains an error, the implementation SHOULD + silently discard this packet, not change state, and not send any EAP + messages to the other party. Examples of such errors include a + missing mandatory attribute, an attribute that is not allowed in this + type of message, and unrecognized subtypes or attributes. + + Non-matching Session Id: If a Peer or Server receives an EAP-SAKE + packet with a Session Id field not matching the Session Id from the + previous packet in this session, that entity SHOULD silently discard + this packet (not applicable for the first message of an EAP-SAKE + session). + + Peer Authorization Failure: It may be possible that a Peer is not + authorized for services, such as when the terminal device is reported + stolen. In that case, the Server SHOULD send an EAP.Failure message. + + Unexpected EAP.Success: A Server MUST NOT send an EAP-Success message + before the SAKE/Challenge and SAKE/Confirm rounds. The Peer MUST + silently discard any EAP.Success packets before the Peer has + successfully authenticated the Server via the + EAP.Response/SAKE/Confirm packet. + + The Peer and Server SHOULD log all error cases. + + + + + + + + + + + + + + + + + +Vanderveen & Soliman Informational [Page 21] + +RFC 4763 EAP-SAKE November 2006 + + +3.3. Message Formats + +3.3.1. Message Format Summary + + A summary of the EAP packet format [EAP] is shown below for + convenience. The fields are transmitted from left to right. + + 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 + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Code | Identifier | Length | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + |Type=EAP-SAKE | Version=2 | Session ID | Subtype | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + + Code + + 1 - Request + + 2 - Response + + Identifier + + The identifier field is one octet and aids in matching responses + with requests. + + Length + + The Length field is two octets and indicates the number of octets + in an EAP message including the Code, Identifier, Length, Type, + and Data fields. + + Type + + To be assigned. + + Version + + The EAP-SAKE method as described herein is version 2. + + Session ID + + The Session ID is a 1-byte random number that MUST be freshly + generated by the Server that must match all EAP messages in a + particular EAP conversation. + + + + + + +Vanderveen & Soliman Informational [Page 22] + +RFC 4763 EAP-SAKE November 2006 + + + Subtype + + EAP-SAKE subtype: SAKE/Challenge, SAKE/Confirm, SAKE/Auth-Reject, + and SAKE/Identity. All messages of type "EAP-SAKE" that are not + of these subtypes MUST silently discarded. + + Message Name Subtype Value (decimal) + ============================================= + SAKE/Challenge 1 + SAKE/Confirm 2 + SAKE/Auth-Reject 3 + SAKE/Identity 4 + +3.3.2. Attribute Format + + The EAP-SAKE attributes that are part of the EAP-SAKE packet follow + the Type-Length-Value format with 1-byte Type, 1-byte Length, and + variable-length Value (up to 255 bytes). The Length field is in + octets and includes the length of the Type and Length fields. The + EAP-SAKE attribute format is as follows: + + 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 | Value... | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + + Type + + 1-byte unsigned integer; see Table below. + + Length + + The total number of octets in the attribute, including Type and + Length. + + Value + + Attribute-specific. + + + + + + + + + + + + +Vanderveen & Soliman Informational [Page 23] + +RFC 4763 EAP-SAKE November 2006 + + + The following attribute types are allocated. + + ----------------------------------------------------------------- + Attr. Name Length + (bytes) Skippable Description + ----------------------------------------------------------------- + AT_RAND_S 18 No Server Nonce RAND_S + AT_RAND_P 18 No Peer Nonce RAND_P + AT_MIC_S 10 No Server MIC + AT_MIC_P 10 No Peer MIC + AT_SERVERID variable No Server FQDN + AT_PEERID variable No Peer NAI (tmp, perm) + AT_SPI_S variable No Server chosen SPI SPI_S + AT_SPI_P variable No Peer SPI list SPI_P + AT_ANY_ID_REQ 4 No Requires any Peer Id (tmp, perm) + AT_PERM_ID_REQ 4 No Requires Peer's permanent Id/NAI + AT_ENCR_DATA Variable Yes Contains encrypted attributes + AT_IV Variable Yes IV for encrypted attributes + AT_PADDING 2 to 18 Yes Padding for encrypted attributes + AT_NEXT_TMPID variable Yes TempID for next EAP-SAKE phase + + AT_MSK_LIFE 6 Yes MSK Lifetime in seconds + ----------------------------------------------------------------- + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Vanderveen & Soliman Informational [Page 24] + +RFC 4763 EAP-SAKE November 2006 + + +3.3.3. Use of AT_ENCR_DATA Attribute + + An example of the AT_ENCR_DATA attribute, as used in the + EAP.Request/SAKE/Confirm message, is shown below: + + 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 + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | AT_IV | Length = 18 | | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | + | | + | Initialization Vector | + | | + | |-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | |AT_ENCR_DATA | Length | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+}e + | AT_NEXT_TMPID | Length | |}n + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |}c + | |}r + . Peer TempID |}y + . |}p + . |}t + | |}e + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+}d + | AT_MIC_S | Length = 10 | | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | + | MIC_S | + + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-| + | |AT_PADDING | Length=2 | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + + + + + + + + + + + + + + + + + + + + + +Vanderveen & Soliman Informational [Page 25] + +RFC 4763 EAP-SAKE November 2006 + + +3.3.4. EAP.Request/SAKE/Challenge Format + + The format of the EAP.Request/SAKE/Challenge packet is shown below. + + 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 + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Code | Identifier | Length | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + |Type=EAP-SAKE | Version=2 | Session ID | Subtype=1 | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | AT_RAND_S | Length = 18 | | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | + | | + | RAND_S | + | | + | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-| + | | AT_SERVERID | Length | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | | + : : + | Server ID | + | | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + + The semantics of the fields is described below: + + Code + + 1 for Request + + Identifier + + A random number. See [EAP]. + + Length + + The length of the entire EAP packet in octets. + + Type + + EAP-SAKE + + Version + + 2 + + + + + +Vanderveen & Soliman Informational [Page 26] + +RFC 4763 EAP-SAKE November 2006 + + + Session ID + + A random number chosen by the server to identify this EAP-Session. + + Subtype + + 1 for SAKE/Challenge + + AT_RAND_S + + The value field of this attribute contains the Server nonce RAND_S + parameter. The RAND_S attribute MUST be present in + EAP.Request/SAKE/Challenge. + + AT_SERVERID + + The value field of this attribute contains the Server identifier + (e.g., a non-null terminated string). The AT_SERVERID attribute + SHOULD be present in EAP.Request/SAKE Challenge. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Vanderveen & Soliman Informational [Page 27] + +RFC 4763 EAP-SAKE November 2006 + + +3.3.5. EAP.Response/SAKE/Challenge Format + + The format of the EAP.Response/SAKE/Challenge packet is shown below. + + 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 + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Code | Identifier | Length | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + |Type=EAP-SAKE | Version=2 | Session ID | Subtype=1 | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | AT_RAND_P | Length = 18 | | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | + | | + | RAND_P | + | | + | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-| + | | AT_PEERID | Length | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | | + : Peer NAI : + | | + | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-| + | | AT_SPI_P | Length | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | SPIP | AT_MIC_P | Length = 18 | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | | + | MIC_P | + | | + | | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + + The semantics of the fields is described below: + + Code + + 2 for Response + + Identifier + + A number that MUST match the Identifier field from the + corresponding Request. + + Length + + The length of the entire EAP packet in octets. + + + + +Vanderveen & Soliman Informational [Page 28] + +RFC 4763 EAP-SAKE November 2006 + + + Type + + EAP-SAKE + + Version + + 2 + + Session ID + + A number matching all other EAP messages in this EAP session. + + Subtype + + 1 for SAKE/Challenge + + AT_RAND_P + + The value field of this attribute contains the Peer nonce RAND_P + parameter. The AT_RAND_P attribute MUST be present in the + EAP.Response/SAKE/Challenge. + + AT_PEERID + + The value field of this attribute contains the NAI of the Peer. + The Peer identity follows the same Network Access Identifier + format that is used in EAP.Response/Identity, i.e., including the + NAI realm portion. The identity is the permanent identity, or a + temporary identity. The identity does not include any terminating + null characters. The AT_PEERID attribute is optional in the + EAP.Response/SAKE/Challenge. + + AT_SPI_P + + The value field of this attribute contains the Peer's ciphersuite + list SPI_P parameter. The AT_SPI_P attribute is optional in the + EAP.Response/SAKE/Challenge. + + AT_MIC_P + + The value field of this attribute contains the Peer MIC_P + parameter. The AT_MIC_P attribute MUST be present in the + EAP.Response/SAKE/Challenge. + + + + + + + + +Vanderveen & Soliman Informational [Page 29] + +RFC 4763 EAP-SAKE November 2006 + + +3.3.6. EAP.Request/SAKE/Confirm Format + + The format of the EAP.Request/SAKE/Confirm packet is shown below. + + 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 + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Code | Identifier | Length | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + |Type=EAP-SAKE | Version=2 | Session ID | Subtype=2 | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | AT_SPI_S | Length | SPI_S | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | AT_IV | Length | Initialization Vector ... | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ : + | | + + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | | AT_ENCR_DATA | Length | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Encrypted Data... | + | | + | | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | AT_MSK_LIFE | Length=6 | MSK Lifetime... | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | | AT_MIC_S | Length=18 | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | | + | MIC_S | + | | + | | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + + The semantics of the fields is described below: + + Code + + 1 for Request + + Identifier + + A random number. See [EAP]. + + Length + + The length of the entire EAP packet in octets. + + + + +Vanderveen & Soliman Informational [Page 30] + +RFC 4763 EAP-SAKE November 2006 + + + Type + + EAP-SAKE + + Version + + 2 + + Session ID + + A number matching all other EAP messages in this EAP session. + + Subtype + + 2 for SAKE Confirm + + AT_SPI_S + + The value field of this attribute contains the Server chosen + ciphersuite SPI_S parameter. The AT_SPI_S attribute is optional + in the EAP.Request/SAKE/Confirm. + + AT_IV + + This attribute is optional to use in this message. The value + field of this attribute contains the Initialization Vector that is + used with the encrypted data following. + + AT_ENCR_DATA + + This attribute is optional to use in this message. The encrypted + data, if present, may contain an attribute AT_NEXT_TMPID, + containing the NAI the Peer should use in the next EAP + authentication. + + AT_MSK_LIFE + + This attribute is optional to use in this message. The value + field of this attribute contains the MSK Lifetime in seconds. + + AT_MIC_S + + The value field of this attribute contains the Server MIC_S + parameter. The AT_MIC_S attribute MUST be present in the + EAP.Request/SAKE/Confirm. + + + + + + +Vanderveen & Soliman Informational [Page 31] + +RFC 4763 EAP-SAKE November 2006 + + +3.3.7. EAP.Response/SAKE/Confirm Format + + The format of the EAP.Response/SAKE/Confirm packet is shown below. + + 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 + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Code | Identifier | Length | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + |Type=EAP-SAKE | Version=2 | Session ID | Subtype=2 | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | AT_MIC_P | Length = 18 | | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | + | MIC_P | + | | + | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | | AT_PADDING | Length = 2 | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + + The semantics of the fields is described below: + + Code + + 2 for Response + + Identifier + + A number that MUST match the Identifier field from the + corresponding Request. + + Length + + The length of the entire EAP packet in octets. + + Type + + EAP-SAKE + + Version + + 2 + + Session ID + + A number matching all other EAP messages in this EAP session. + + + + + + +Vanderveen & Soliman Informational [Page 32] + +RFC 4763 EAP-SAKE November 2006 + + + Subtype + + 2 for SAKE Confirm + + AT_MIC_P + + The value field of this attribute contains the Peer's MIC_P + parameter. The AT_MIC_P attribute MUST be present in the + EAP.Response/SAKE/Confirm. + + AT_PADDING + + The value field is set to zero. Added to achieve 32-bit alignment + of the EAP-SAKE packet. + +3.3.8. EAP.Response/SAKE/Auth-Reject Format + + The format of the EAP.Response/SAKE/Auth-Reject packet is shown + below. + + 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 + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Code | Identifier | Length | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + |Type=EAP-SAKE | Version=2 | Session ID | Subtype=3 | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + + The semantics of the fields is described below: + + Code + + 2 for Response + + Identifier + + A number that MUST match the Identifier field from the + corresponding Request. + + Length + + The length of the entire EAP packet in octets. + + Type + + EAP-SAKE + + + + + +Vanderveen & Soliman Informational [Page 33] + +RFC 4763 EAP-SAKE November 2006 + + + Version + + 2 + + Session ID + + A number matching all other EAP messages in this EAP session. + + Subtype + + 3 for SAKE/Auth-Reject + +3.3.9. EAP.Request/SAKE/Identity Format + + The format of the EAP.Request/SAKE/Identity is shown below. + + 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 + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Code | Identifier | Length | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + |Type=EAP-SAKE | Version=2 | Session ID | Subtype=4 | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + |AT_PERM_ID_REQ | Length = 4 | Reserved | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + |AT_ANY_ID_REQ | Length = 4 | Reserved | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + |AT_SERVERID | Length | | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ : + | Server ID | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + + The semantics of the fields is described below: + + Code + + 1 for Request + + Identifier + + A random number. See [EAP]. + + Length + + The length of the entire EAP packet in octets. + + + + + + +Vanderveen & Soliman Informational [Page 34] + +RFC 4763 EAP-SAKE November 2006 + + + Type + + EAP-SAKE + + Version + + 2 + + Session ID + + A number matching all other EAP messages in this EAP session. + + Subtype + + 4 for SAKE/Identity + + AT_PERM_ID_REQ + + The AT_PERM_ID_REQ attribute is optional, to be included in cases + where the Server requires the Peer to give its permanent + identifier (i.e., PermID). The AT_PERM_ID_REQ MUST NOT be + included if the AT_ANY_ID_REQ attribute is included. The value + field only contains two reserved bytes, which are set to zero on + sending and ignored on reception. + + AT_ANY_ID_REQ + + The AT_ANY_ID_REQ attribute is optional, to be included in cases + where the Server requires the Peer to send any identifier (e.g., + PermID, TempID). The AT_ANY_ID_REQ MUST NOT be included if + AT_PERM_ID_REQ is included. The value field only contains two + reserved bytes, which are set to zero on sending and ignored on + reception. One of the AT_PERM_ID_REQ and AT_ANY_ID_REQ MUST be + included. + + AT_SERVERID + + The value field of this attribute contains the identifier/realm of + the Server. The AT_SERVERID attribute is optional but RECOMMENDED + to include in the EAP.Request/SAKE/Identity. + + + + + + + + + + + +Vanderveen & Soliman Informational [Page 35] + +RFC 4763 EAP-SAKE November 2006 + + +3.3.10. EAP.Response/SAKE/Identity Format + + The format of the EAP.Response/SAKE/Identity is shown below: + + 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 + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Code | Identifier | Length | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + |Type=EAP-SAKE | Version=2 | Session ID | Subtype=4 | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | AT_PEERID | Length | | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ : + | Peer NAI | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + + The semantics of the fields is described below: + + Code + + 2 for Response + + Identifier + + A number that MUST match the Identifier field from the + corresponding Request. + + Length + + The length of the entire EAP packet. + + Type + + EAP-SAKE + + Version + + 2 + + Session ID + + A number matching all other EAP messages in this EAP session. + + Subtype + + 4 for SAKE/Identity + + + + + +Vanderveen & Soliman Informational [Page 36] + +RFC 4763 EAP-SAKE November 2006 + + + AT_PEERID + + The value field of this attribute contains the NAI of the Peer. + The AT_PEERID attribute MUST be present in + EAP.Response/SAKE/Identity. + +3.3.11. Other EAP Messages Formats + + The format of the EAP.Request/Identity and EAP.Response/Identity + packets is described in [EAP]. The user ID (e.g., NAI) SHOULD be + present in this packet. + + The format of the EAP-Success and EAP-Failure packet is also shown in + [EAP]. + +4. IANA Considerations + + IANA allocated a new EAP Type for EAP-SAKE. + + EAP-SAKE messages include an 8-bit Subtype field. The Subtype is a + new numbering space for which IANA administration is required. The + following subtypes are specified in this memo: + + SAKE/Challenge.................1 + SAKE/Confirm...................2 + SAKE/Auth-Reject...............3 + SAKE/Identity..................4 + + The Subtype-specific data is composed of attributes, which have an + 8-bit type number. Attributes numbered within the range 0 through + 127 are called non-skippable attributes, and attributes within the + range of 128 through 255 are called skippable attributes. The EAP- + SAKE attribute type number is a new numbering space for which IANA + administration is required. The following attribute types are + specified: + + AT_RAND_S.......................................1 + AT_RAND_P.......................................2 + AT_MIC_S........................................3 + AT_MIC_P........................................4 + AT_SERVERID.....................................5 + AT_PEERID.......................................6 + AT_SPI_S........................................7 + AT_SPI_P........................................8 + AT_ANY_ID_REQ...................................9 + AT_PERM_ID_REQ.................................10 + + + + + +Vanderveen & Soliman Informational [Page 37] + +RFC 4763 EAP-SAKE November 2006 + + + AT_ENCR_DATA..................................128 + AT_IV.........................................129 + AT_PADDING....................................130 + AT_NEXT_TMPID.................................131 + AT_MSK_LIFE...................................132 + + All requests for value assignment from the two number spaces + described in this memo require proper documentation, according to the + "Specification Required" policy described in [IANA]. + + All assignments of values from the two number spaces described in + this memo require IETF consensus. + +5. Security Considerations + + The EAP specification [EAP] describes the security vulnerabilities of + EAP, which does not include its method-specific security mechanisms. + This section discusses the claimed security properties of the EAP- + SAKE method, along with vulnerabilities and security recommendations. + +5.1. Denial-of-Service Attacks + + Since EAP-SAKE is not a tunneling method, the + EAP.Response/SAKE/Auth-Reject, EAP.Success, and EAP.Failure packets + are not integrity or replay protected. This makes it possible for an + attacker to spoof such messages. Note that EAP.Response/SAKE/Auth- + Reject cannot be protected with a MIC since an authentication failure + indicates that the Server and Peer do not agree on a common key. + + Most importantly, an attacker cannot cause a Peer to accept an + EAP.Success packet as indication that the Server considers the mutual + authentication to have been achieved. This is because a Peer does + not accept EAP.Success packets before it has authenticated the Server + or after it has considered the Server to have failed authentication. + +5.2. Root Secret Considerations + + If the Root Secret is known to any party other than the Server and + Peer, then the mutual authentication and key establishment using + EAP-SAKE is compromised. + + EAP-SAKE does not address how the Root Secret is generated or + distributed to the Server and Peer. It is RECOMMENDED that the + entropy of the Root Secret be maximized. The Root Secret SHOULD be + machine-generated. + + + + + + +Vanderveen & Soliman Informational [Page 38] + +RFC 4763 EAP-SAKE November 2006 + + + If the Root Secret is derived from a low-entropy, guessable quantity + such as a human-selected password, then the EAP-SAKE key derivation + is subject to on-line and off-line dictionary attacks. To help + identify whether such a password has been compromised, + implementations SHOULD keep a log of the number of EAP-SAKE messages + received with invalid MIC fields. In these cases, a procedure for + updating the Root Secret securely SHOULD be in place. + +5.3. Mutual Authentication + + Mutual authentication is accomplished via the SAKE/Challenge and + SAKE/Confirm messages. The EAP.Request/SAKE/Challenge contains the + Server nonce RAND_S; the EAP.Response/SAKE/Challenge contains the + Peer nonce RAND_P, along with the Peer MIC (MIC_P); and the + EAP.Request/SAKE/Confirm contains the Server MIC (MIC_S). Both MICs + (MIC_S and MIC_P) are computed using both nonces RAND_S and RAND_P + and are keyed by the TEK, a shared secret derived from the Root + Secret. The Server considers the Peer authenticated if the MIC_P it + computes matches the one that the Peer sends. Similarly, the Peer + considers the Server authenticated if the MIC_S it computes matches + the one that the Server sends. The way the MICs are computed + involves a keyed one-way hash function, which makes it + computationally hard for an attacker to produce the correct MIC + without knowledge of the shared secret. + +5.4. Integrity Protection + + Integrity protection of EAP-SAKE messages is accomplished through the + use of the Message Integrity Checks (MIC), which are present in every + message as soon as a common shared secret (TEK) is available, i.e., + any message after the EAP.Request/SAKE/Challenge. An adversary + cannot modify any of the MIC-protected messages without causing the + recipient to encounter a MIC failure. The extent of the integrity + protection is commensurate with the security of the KDF used to + derive the MIC, the length and entropy of the shared secret used by + the KDF, and the length of the MIC. + +5.5. Replay Protection + + The first message of most session establishment protocols, such as + EAP-SAKE, is subject to replay. A replayed + EAP.Request/SAKE/Challenge message results in the Peer sending an + EAP.Response/SAKE/Challenge message back, which contains a MIC that + was computed using the attacker's chosen nonce. This poses a minimal + risk to the compromise of the TEK-Auth key, and this EAP Session + cannot proceed successfully as the Peer will find the Server's MIC + invalid. + + + + +Vanderveen & Soliman Informational [Page 39] + +RFC 4763 EAP-SAKE November 2006 + + + Replay protection is achieved via the RAND_S and RAND_P values, + together with the Session ID field, which are included in the + calculation of the MIC present in each packet subsequent to the EAP- + SAKE/Challenge request packet. The Session ID MUST be generated anew + by the Server for each EAP session. Session Ids also aid in + identification of possible multiple EAP sessions between a Peer and a + Server. Within the same session, messages can be replayed by an + attacker, but the state machine SHOULD be able to handle these cases. + Note that a replay within a session is indistinguishable to a + recipient from a network malfunction (e.g., message was first lost + and then re-transmitted, so the recipient thinks it is a duplicate + message). + + Replay protection between EAP sessions and within an EAP session is + also accomplished via the MIC, which covers not only the entire EAP + packet (including the Session ID) but also the nonces RAND_S and + RAND_P. Thus, the recipient of an EAP message can be assured that + the message it just received is the one just sent by the other Peer + and not a replay, since it contains a valid MIC of the recipient's + nonce and the other Peer nonce. As before, the extent of replay + protection is commensurate with the security of the KDF used to + derive the MIC, the length and entropy of the shared secret used by + the KDF, and the length of the MIC. + +5.6. Confidentiality + + Confidentiality of EAP-SAKE attributes is supported through the use + of the AT_ENCR_DATA and AT_IV attributes. A ciphersuite is + negotiated securely (see Section 3.2.7) and can be used to encrypt + any attributes as needed. The default ciphersuite contains a strong + cipher based on AES. + +5.7. Key Derivation, Strength + + EAP-SAKE derives a Master Key (for EAP use) and Master Session Key, + as well as other lower-level keys, such as TEKs. Some of the lower- + level keys may or may not be used. The strength (entropy) of all + these keys is at most the strength of the Root Secret. + + The entropy of the MSK and of the EMSK, assuming that the Server and + Peer 128-bit nonces are generated using good random number + generators, is at most 256-bits. + + + + + + + + + +Vanderveen & Soliman Informational [Page 40] + +RFC 4763 EAP-SAKE November 2006 + + +5.8. Dictionary Attacks + + Dictionary attacks are not feasible to mount on the EAP-SAKE method + because passwords are not used. Instead, the Root Secret is + machine-generated. This does not necessarily pose provisioning + problems. + +5.9. Man-in-the-Middle Attacks + + Resistance to man-in-the-middle attacks is provided through the + integrity protection that each EAP message carries (i.e., Message + Integrity Check field) as soon as a common key for this EAP session + has been derived through mutual authentication. As before, the + extent of this resistance is commensurate with the strength of the + MIC itself. Man-in-the-middle attacks associated with the use of any + EAP method within a tunneling or sequencing protocol are beyond the + scope of this document. + +5.10. Result Indication Protection + + EAP-SAKE provides result indication protection in that it provides + result indications, integrity protection, and replay protection. The + Server indicates that it has successfully authenticated the Peer by + sending the EAP.Request/SAKE/Confirm message, which is integrity and + replay protected. The Peer indicates that it has successfully + authenticated the Server by sending the EAP.Response/SAKE/Confirm + message, which is also integrity and replay protected. + +5.11. Cryptographic Separation of Keys + + The TEKs used to protect EAP-SAKE packets (TEK-Auth, TEK-Cipher), the + Master Session Key, and the Extended Master Session Key are + cryptographically separate. Information about any of these keys does + not lead to information about any other keys. We also note that it + is infeasible to calculate the Root Secret from any or all of the + TEKs, the MSK, or the EMSK. + +5.12. Session Independence + + Within each EAP-SAKE session, fresh keying material is generated. + The keying material exported by this method from two independent + EAP-SAKE sessions is cryptographically separate, as explained below. + + Both the Server and the Peer SHOULD generate fresh random numbers + (i.e., nonces) for the EAP-SAKE exchange. If either entity re-uses a + random number from a previous session, then the fact that the other + does use a freshly generated random number implies that the TEKs, + MSK, and EMSK derived within this session are cryptographically + + + +Vanderveen & Soliman Informational [Page 41] + +RFC 4763 EAP-SAKE November 2006 + + + separate from the corresponding keys derived in the previous + exchange. + + Therefore, compromise of MSK or EMSK on one exchange does not + compromise the MSK and EMSK of previous or subsequent exchanges + between a Peer and a Server. + +5.13. Identity Protection + + As seen from Section 3.2.3., the Server may assign a temporary NAI to + a Peer in order to achieve user anonymity. This identifier may be + used by the Peer the next time it engages in an EAP-SAKE + authentication phase with the Server. The TempID is protected by + sending it encrypted, within an AT_ENCR_DATA attribute, and signed by + the Server with a MIC. Thus, an eavesdropper cannot link the + original PermID that the Peer first sends (e.g., on power-up) to any + subsequent TempID values sent in the clear to the Server. + + The Server and Peer MAY be configured such that only TempID + identities are exchanged after one initial EAP-SAKE phase that uses + the Peer permanent identity. In this case, in order to achieve + maximum identity protection, the TempID SHOULD be stored in non- + volatile memory in the Peer and Server. Thus, compliance with this + document does not preclude or mandate Peer identity protection across + the lifetime of the Peer. + +5.14. Channel Binding + + The Server identifier and Peer identifier MAY be sent in the + SAKE/Challenge messages. However, since there is no established + authentication key at the time of the first message, the Server + identifier is not integrity-protected here. + + All subsequent EAP-SAKE messages exchanged during a successful EAP- + SAKE phase are integrity-protected, as they contain a Message + Integrity Check (MIC). The MIC is computed over the EAP message and + also over the Server and Peer identities. In that, both EAP + endpoints can verify the identity of the other party. + +5.15. Ciphersuite Negotiation + + EAP-SAKE does not support negotiation of the ciphersuite used to + integrity-protect the EAP conversation. However, negotiation of a + ciphersuite for data protection is supported. This ciphersuite + negotiation is protected in order to minimize the risk of down- + negotiation or man-in-the-middle attacks. + + + + + +Vanderveen & Soliman Informational [Page 42] + +RFC 4763 EAP-SAKE November 2006 + + + This negotiation is secure because of the Message Integrity Checks + (MICs) that cover the entire EAP messages used for ciphersuite + negotiation (see Section 3.2.7.). The extent of the security of the + negotiation is commensurate with the security of the KDF used to + derive the MICs, the length and entropy of the shared secret used by + the KDF, and the length of the MICs. + +5.16. Random Number Generation + + EAP-SAKE supports key derivation from a 32-byte Root Secret. The + entropy of all other keys derived from it is reduced somewhat through + the use of keyed hash functions (e.g. KDF). Thus, assuming + optimistically that the effective key strength of the Root Secret is + 32 bytes, the effective key strengths of the derived keys is at most + the effective key strength of the Root Secret quantities they are + derived from: EMSK, at most 16 bytes; MSK, at most 16 bytes. + +6. Security Claims + + This section provides the security claims as required by [EAP]. + + [a] Mechanism: EAP-SAKE is a challenge/response authentication and + key establishment mechanism based on a symmetric pre-shared + secret. + + [b] Security claims. EAP-SAKE provides: + + Mutual authentication (Section 5.3) + + Integrity protection (Section 5.4) + + Replay protection (Section 5.5) + + Confidentiality (optional, Section 5.6 and Section 5.13) + + Key derivation (Section 5.7) + + Dictionary attack protection (Section 5.8) + + Protected result indication of successful authentication from + Server and from Peer (Section 5.10) + + Session independence (Section 5.12) + + [c] Key strength. EAP-SAKE supports key derivation with 256-bit + effective key strength (Section 5.7) + + [d] Description of key hierarchy: see Section 3.2.5. + + + +Vanderveen & Soliman Informational [Page 43] + +RFC 4763 EAP-SAKE November 2006 + + + [e] Indication of vulnerabilities: EAP-Make does not provide: + + Fast reconnect + + Fragmentation + + Channel binding + + Cryptographic binding + +7. Acknowledgements + + Thanks to R. Dynarski for his helpful comments. + +8. References + +8.1. Normative References + + [AES] National Institute of Standards and Technology, + "Federal Information Processing Standards (FIPS) + Publication 197, Advanced Encryption Standard (AES)", + November 2001. http://csrc.nist.gov/publications/ + fips/fips197/fips-197.pdf + + [CBC] National Institute of Standards and Technology, NIST + Special Publication 800-38A, "Recommendation for Block + Cipher Modes of Operation - Methods and Techniques", + December 2001. http://csrc.nist.gov/publications/ + drafts/Draft-NIST_SP800-38D_Public_Comment.pdf + + [EAP] Aboba, B., Blunk, L., Vollbrecht, J., Carlson, J., and + H. Levkowetz, "Extensible Authentication Protocol + (EAP)", RFC 3748, June 2004. + + [HMAC] Krawczyk, H., Bellare, M., and R. Canetti, "HMAC: + Keyed-Hashing for Message Authentication", RFC 2104, + February 1997. + + [IANA] Narten, T. and H. Alvestrand, "Guidelines for Writing + an IANA Considerations Section in RFCs", BCP 26, RFC + 2434, October 1998. + + [IEEE802.11i] "IEEE Standard for Information Technology- + Telecommunications and Information Exchange between + Systems - LAN/MAN Specific Requirements - Part 11: + Wireless Medium Access Control (MAC) and physical + layer (PHY) specifications: Amendment 6: Medium Access + Control (MAC) Security Enhancements", June 2004. + + + +Vanderveen & Soliman Informational [Page 44] + +RFC 4763 EAP-SAKE November 2006 + + + [KEYWORDS] Bradner, S., "Key words for use in RFCs to Indicate + Requirement Levels", BCP 14, RFC 2119, March 1997. + + [SHA1] National Institute of Standards and Technology, U.S. + Department of Commerce, Federal Information Processing + Standard (FIPS) Publication 180-1, "Secure Hash + Standard", April 1995. + +8.2. Informative References + + [NAI] Aboba, B., Beadles, M., Arkko, J., and P. Eronen, "The + Network Access Identifier", RFC 4282, December 2005. + + [RFC4086] Eastlake, D., 3rd, Schiller, J., and S. Crocker, + "Randomness Requirements for Security", BCP 106, RFC + 4086, June 2005. + +Authors' Addresses + + Michaela Vanderveen + Qualcomm Flarion Technologies + 135 Rte. 202/206 South + Bedminster, NJ 07921 + USA + + EMail: mvandervn@yahoo.com + + + Hesham Soliman + Qualcomm Flarion Technologies + 135 Rte. 202/206 South + Bedminster, NJ 07921 + USA + + EMail: solimanhs@gmail.com + + + + + + + + + + + + + + + + +Vanderveen & Soliman Informational [Page 45] + +RFC 4763 EAP-SAKE November 2006 + + +Full Copyright Statement + + Copyright (C) The IETF Trust (2006). + + This document is subject to the rights, licenses and restrictions + contained in BCP 78 and at www.rfc-editor.org/copyright.html, 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. + +Acknowledgement + + Funding for the RFC Editor function is currently provided by the + Internet Society. + + + + + + +Vanderveen & Soliman Informational [Page 46] + -- cgit v1.2.3