Issue 300: Port
Submitter name: Yoshihiro Ohba
Submitter email address: mailto:aboba@internaut.com
Date first submitted: 5/4/2005
Reference: http://mail.frascone.net/pipermail/eap/2005-May/003391.html
Document: KEYING-06
Comment type: T
Priority: S
Section: Various
Rationale/Explanation of issue
In draft-ietf-eap-keying-06.txt, the definition of "port" is not
clear.  In fact, the draft talks about peer ports and authenticator
ports.  On the other hand, there is a definition of "network access
port" in IEEE 802.1X specification, but I'm not sure the port in the
eap-keying draft is exactly the same as defined in 802.1X.

Also, can an "authenticator port" be physically separated from the
authenticator?  I think they can be separated.
[Jari Arkko]
This does seem to be an issue. I'm not sure we can
define "port" well enough, given the variety of link layers
that use it in different ways.

I went through keying-07 and tried to see if we can avoid
this problem. Most of the text involving ports simply
reminds the reader that multiple physical or virtual ports
may be involved, and the implications to identification.
I don't think this part is problematic, but our definitions
(like in TSKs) should not rely on the term "port". A small
proposed change below.

> Transient Session Keys (TSKs)
>
> Session keys used to protect data exchanged between a port of the
> peer and a port of the authenticator after the EAP authentication
> has successfully completed. TSKs are appropriate for the lower
> layer ciphersuite negotiated between the ports of the EAP peer and
> authenticator. Examples of TSK derivation are provided in Appendix
> D.

s/between a port of the peer and a port of the authenticator/in a session
between the peer and the authenticator/
Proposed Resolution: Accept
Issue 301: TSKs
Submitter name: Yoshihiro Ohba
Submitter email address: mailto:aboba@internaut.com
Date first submitted: 5/4/2005
Reference: http://mail.frascone.net/pipermail/eap/2005-May/003392.html
Document: KEYING-06
Comment type: T
Priority: S
Section: 2.1
Rationale/Explanation of issue
In section 2.1:

"
Transient Session Keys (TSKs)
     Session keys used to protect data exchanged between the peer and
     the authenticator after the EAP authentication has successfully
     completed.  TSKs are appropriate for the lower layer ciphersuite
     negotiated between the EAP peer and authenticator.  Examples of TSK
     derivation are provided in Appendix D.
"

I think that ports should be the consumers of the TSKs.  The text may
be revised something like:

"
Transient Session Keys (TSKs)
     Session keys used to protect data exchanged between a port of the peer and
     a port of the authenticator after the EAP authentication has successfully
     completed.  TSKs are appropriate for the lower layer ciphersuite
     negotiated between the ports of the EAP peer and authenticator.
     Examples of TSK derivation are provided in Appendix D.
"
Proposed Resolution: Accept
Issue 302: Clarifications on the "Domino Effect"
Submitter name: Julien Bournelle
Submitter email address: julien.bournelle@int-evry.fr
Date first submitted: 5/4/2005
Reference: http://mail.frascone.net/pipermail/eap/2005-May/003390.html
Document: KEYING-06
Comment type: T
Priority: S
Section: Various
Rationale/Explanation of issue
 In RFC4017, the Domino effect is described:

 "Compromise of a single authenticator cannot compromise any other part
 of the system, including session keys and long-term secrets."

 Does this finally imply that the authenticator MUST not provide keys to
 other entity ?
[Bernard Aboba]
Here is a quote from "AAA Key Management" (draft-housley-aaa-key-mgmt-01.txt):
      Prevent the Domino effect

         Compromise of a single authenticator MUST NOT compromise any
         other part of the system, especially session keys and long-term
         keys.  There are many implications of this requirement;
         however, two implication deserves highlighting.  First, an
         authenticator MUST NOT share any keying material with another
         authenticator.  Second, the scope of the authenticator needs to
         be defined and understood by all parties that communicate with
         it.
The proposed resolution is to summarize the security requirements
from draft-housley-aaa-key-mgmt-01.txt in the key management document. 
[Jari Arkko]  I think we need to describe the basic principles instead. 
Proposed Resolution: Discuss
Issue 303: Expert Review of EAP PAX
Submitter name: Jari Arkko
Submitter email address: jari.arkko@piuha.net
Date first submitted: 4/17/2005
Reference: http://mail.frascone.net/pipermail/eap/2005-April/003274.html
Document: PAX-02
Comment type: T
Priority: S
Section: Various
Rationale/Explanation of issue
This an expert review of EAP PAX, draft-clancy-eap-pax-02.txt,
based on RFC 3748 requirements and the review template
at http://www.drizzle.com/~aboba/EAP/template.txt

Note that an expert review is a not an analysis to find out
if the method is suitable for any specific purpose; we just
make sure that the method does not break EAP and that
its sufficiently well documented. Also, I didn't review
compliance to IEEE method requirements. (Any takers?)

Overall, the verdict is "pass", although a couple of editorial
clarifications might be useful. Inline:

 > 1. Does the method document its security properties
 > in sufficient manner, as required by Section 7.2
 > of RFC 3748?
 >
 > 1a. Mechanism. Is the mechanism explained?

Yes. See Sections 2 and 3.

 > 1b. Security claims. Are the claimed and not claimed
 > properties listed?

Yes. See Section 4.3.

Note: The claim for "cryptographic binding" (RFC 3748, Section 7.2.1)
is not documented for PAX, as this claim is relevant for tunnel
methods only. But for completeness sake it would be desirable to
mention why its not being listed.

 > 1c. Justifications for the claims? Is an explanation or
 > reference provided to each of the claims?

Yes.

 > 1d. Key strength. Is the key strength documented?

Yes.

 > 1e. Description of key hierarchy. Is the key hierarchy
 > documented?

Yes. See Section 2.3 and 2.1.

 > [Optional, at least for now: does it conform to EAP
 > keying framework?]

Yes. Note: the keying framework is still being worked
on.

 > 1f. Indication of vulnerabilities. Are the known vulnerabilities
 > documented?

Yes. See Sections 2.2 and 4.

 > [Note: it seems unreasonable to require the documentation
 > of unknown vulnerabilities :-) The "known" may of course be
 > "known to reviewer" or "known to author" or "known to the
 > community", but that appears to be best we can do.]
 >
 > 2. Compliance with EAP packet formats
 >
 > 2a. Does the method comply with the packet formats
 > defined in Section 4 of RFC 3748?

Yes.

 > 3. Compliance with EAP behaviour
 >
 > 3a. Does the method comply with Success/Failure usage
 > as defined in Sections 2, 2.2, and 4.2?

Yes. (Editorial note: the document talks explicitly about
the conditions upon which an EAP Failure needs to be sent.
However, while it can be understood and implied, it doesn't
actually say that an EAP Success should be sent otherwise.)

 > 3b. Does the method comply with sequence usage as defined
 > in Section 2.1 of RFC 3748?

Yes. No sequences are used.

 > 3c. Does the method comply with request/response processing
 > rules as defined in Section 4.1 of RFC 3748?

Yes.

 > 3d. Does the method comply with retransmission rules
 > as defined in Section 4.3 of RFC 3748?

Yes.

 > 3e. Does the method comply with the usage defined for
 > Identity, as defined in Section 5.1 of RFC 3748?

Yes.

 > 3f. Does the method comply with the usage defined for
 > Notification, as defined in Section 5.2 of RFC 3748?

Yes. No Notifications are used.

 > 3g. Does the method comply with the usage defined for
 > Nak and Expanded-Nak as defined in Section 5.3 of RFC 3748?

Yes.

 > 3h. Does the method comply with the MIC usage requirements
 > from Sections 3.1, 7.5, and 7.8 of RFC 3748?

Yes. See Section 2.4, for instance.

Note: Regarding RFC 3748 Section 7.8 (optional) behaviour for
detecting bidding down attacks using Naks, EAP PAX does not do this.
Might be useful to note this.

 > 4. Compliance with IANA requirements
 >
 > 4a. Does the method comply with EAP-based IANA requirements
 > defined in Section 6 of RFC 3748? That is, if it requests
 > the allocation of new numbers in the EAP namespace [not
 > applicable if the numbers have already been allocated],
 > is the type of the document and process appropriate for the
 > desired action?

Yes.

 > 4b. Does the method comply with other IANA requirements in
 > the IETF standards track RFCs? For instance, does the
 > method attempt to allocate TLS extensions (which would
 > only be possible for standards track RFCs)?

Yes, the document complies with the IANA requirements,
as there are no other number spaces used than those in
EAP.
[Bernard Aboba]
It would be useful to have PAX document the key name and scope, as in
Appendix E in the Key Management framework.
[Charles Clancy]
Jari, thanks for your time and your review.  I've put together -03 to 
address your comments and updates some of the references.  I will be 
submitting it shortly.  Meanwhile, a copy can be found here:

http://www.cs.umd.edu/~clancy/eap-pax/draft-clancy-eap-pax-03.txt

> [JA] Also, I didn't review compliance to IEEE method requirements.
> (Any takers?)

For anyone interested in this, it's outlined in the last paragraph of the 
introduction.

> [JA] The claim for "cryptographic binding" (RFC 3748, Section 7.2.1)
> is not documented for PAX, as this claim is relevant for tunnel
> methods only. But for completeness sake it would be desirable to
> mention why its not being listed.

Ah... I have channel binding but not cryptographic binding.  I've added it 
to section 4.3.

> [JA] (Editorial note: the document talks explicitly about
> the conditions upon which an EAP Failure needs to be sent.
> However, while it can be understood and implied, it doesn't
> actually say that an EAP Success should be sent otherwise.)

I've added the following to section 2.4:

   If PAX-ACK is received in response to a message fragment, the receiver
   continues the protocol execution.  If PAX-ACK is received in response
   to PAX_STD-3 or PAX_SEC-5, then the server MUST send an EAP-Success
   message.  This indicates a successful execution of PAX.

> [JA] Regarding RFC 3748 Section 7.8 (optional) behaviour for
> detecting bidding down attacks using Naks, EAP PAX does not do this.
> Might be useful to note this.

I've added the following to section 4.3:

   EAP is susceptible to an attack where an attacker uses NAKs to
   convince an EAP client and server to use a less secure method, and can
   be prevented using method-specific integrity protection on NAK
   messages.  Since EAP-PAX does not have suitable keys derived for this
   integrity protection at the begining of a PAX conversation, this is
   not included.

> [BA] It would be useful to have PAX document the key name and scope,
> as in Appendix E in the Key Management framework.

I've added the following to section 2.3:

    The EAP Key Managment Framework [I-D.ietf-eap-keying] recommends
    specification of key names and scope.  The EAP-PAX Method-ID is the
    MID value computed as described above.  The EAP peer name is the CID
    value exchanged in PAX_STD-2 and PAX_SEC-2.  The EAP server name is
    an empty string.

[ t. charles clancy ]--[ tcc@umd.edu ]--[ www.cs.umd.edu/~clancy ]
[ computer science ]-----[ university of maryland | college park ]
Proposed Resolution: Discuss
Issue 304: Review of EAP-IKEv2
Submitter name: Pasi Eronen
Submitter email address: pasi.eronen@nokia.com
Date first submitted: 6/13/2005
Reference: http://mail.frascone.net/pipermail/eap/2005-June/003444.html
Document: EAP-IKEv2
Comment type: T
Priority: S
Section: Various
Rationale/Explanation of issue:
Having read draft-tschofenig-eap-ikev2-06, I believe this
document is not ready for expert review yet. It needs a
substantial amount of work to make it a decent EAP method
specification, and its compliance with RFC 3748 is best
assessed once it has matured a bit more.

Some comments (not as RFC3748 expert reviewer, but an
ordinary reviewer):

- The description of the protocol is very confusing reading.
In many cases, the document seems to pretend it is using IKEv2
as an EAP method, or profiling IKEv2, but it's not: This is a
new protocol that just happens to copy many aspects from IKEv2
(which is mainly a good idea, of course).

So talking about sending IKEv2 messages is plain wrong:
in almost all cases, the messages are not a valid IKEv2
messages. Even when the message formats look similar, the
semantics of the payloads and exchanges are not.

Sometimes this gets just plain silly: For instance, Section 4
says "In particularly the following messages and payloads
SHOULD not be sent Traffic Selector (TS) payloads...". So what
exactly would be the "valid reasons in particular circumstances"
(from RFC2119 definition of "SHOULD") to ignore this item,
and how should the other end process those payloads?

My suggestion for rewriting the draft would be as follows:
First, consider choosing a less confusing name for your
protocol. Then describe whatever message exchanges you have
in correct terms: you're describing EAP-IKEv2 messages
(not IKEv2 messages) that contain EAP-IKEv2 payloads (which
may copy the details from IKEv2 payloads, but the semantics
often change slightly... and then you don't have to say that
"traffic selector payloads must not be included", because
there's no such payload type in EAP-IKEv2). Finally, when
you have described what the EAP-IKEv2 messages and payloads
mean, you can say that the syntax is the same as for similarly
named IKEv2 payloads (so you get to reuse the work done for IKEv2).
- While copying the cryptographic aspects from IKEv2 is a good
idea, perhaps copying everything is not (e.g. the messages
for fast reconnect could be called something else than
a "CREATE_CHILD_SA exchange", since CHILD_SAs are not very
meaningful in this context)

- Since this document does not defined a tunneled EAP method,
I'd suggest deleting all mentions this feature of IKEv2
(or at least move the text talking about "if we supported
this feature, it would be done that way" to an Appendix).

- Section 6: "Currently five bits ... are defined": this
section defines the meaning of only three bits. Strangely
enough, two other bits are named ("S" and "F") but it
is not described why they're named, or what they mean.

- Section 6: "Each fragment sent must subsequently be
acknowledged": how?

- Section 8: length of EAP-IKEv2's MSK and EMSK is at least 64
octets: how do the parties decide how much longer than 64
octets? (or if it's exactly 64 octets, say so)

- Section 9: The part starting with "To avoid this..." sounds
fishy: what's the benefit of having two different options
in this situation?

- Section 10: What happens if the peer has forgotten the SA?
(figures 8 and 9 assume the peer still has the SA,
since it can send messages having "SK{..}")

- Section 11.4: since we have payloads whose contents are not
described in this document, we need a normative reference
to some document whey there are described. Otherwise,
an implementation can't process those contents in an
interoperable fashion...
- Section 12 should include some text about identity privacy
(especially when doing fast reconnect or authenticating both
parties using shared secrets).

- Missing "IANA considerations" section.

Proposed Resolution: Discuss
Issue 305: Appendix Cleanup
Submitter name: Bernard Aboba
Submitter email address: aboba@internaut.com
Date first submitted: 7/18/2005
Reference: 
Document: KEYING-07
Comment type: T
Priority: S
Section: Appendix A-D
Rationale/Explanation of issue:
Several of the Appendices could be pared back or combined. 
Recommend combining Appendix B & C into a unified Appendix A. 
Recommend combining Appendix A & D into a unified Appendix B. 
Recommend renaming Appendix E & F to Appendix C & D. 
Here is the new text for Appendices A & B: 
Appendix A - EAP-TLS Key Hierarchy
 
   EAP-TLS [RFC 2716] was documented prior to the development of EAP key
   management terminology [RFC3748], and therefore does not explicitly
   define the MSK and EMSK.
 
   In EAP-TLS, the MSK, EMSK and IV are derived from the TLS master
   secret via a one-way function. This ensures that the TLS master
   secret cannot be derived from the MSK, EMSK or IV unless the one-way
   function (TLS PRF) is broken.  Since the MSK is derived from the the
   TLS master secret, if the TLS master secret is compromised then the
   MSK is also compromised.
 
   [RFC2716] specifies that the MSK is divided into two halves,
   corresponding to the "Peer to Authenticator Encryption Key" (Enc-
   RECV-Key, 32 octets, also known as the PMK) and "Authenticator to
   Peer Encryption Key" (Enc-SEND-Key, 32 octets).  In [RFC2548], the
   Enc-RECV-Key (the PMK) is transported in the MS-MPPE-Recv-Key
   attribute, and the Enc-SEND-Key is transported in the MS-MPPE-Send-
   Key attribute.
 
   The EMSK is also divided into two halves, corresponding to the "Peer
   to Authenticator Authentication Key" (Auth-RECV-Key, 32 octets) and
   "Authenticator to Peer Authentication Key" (Auth-SEND-Key, 32
   octets).  The IV is a 64 octet quantity that is a known value; octets
   0-31 are known as the "Peer to Authenticator IV" or RECV-IV, and
   Octets 32-63 are known as the "Authenticator to Peer IV", or SEND-IV.
 
   The key derivation scheme  MUST be interpreted as follows:
 
   MSK           = TLS-PRF-64(TMS, "client EAP encryption",
                      client.random || server.random)
   EMSK          = second 64 octets of:
                   TLS-PRF-128(TMS, "client EAP encryption",
                      client.random || server.random)
   IV            = TLS-PRF-64("", "client EAP encryption",
                      client.random || server.random)
 
   MSK(0,31)     = Peer to Authenticator Encryption Key (Enc-RECV-Key)
                   (MS-MPPE-Recv-Key in [RFC2548]).  Also known as the
                   PMK.
   MSK(32,63)    = Authenticator to Peer Encryption Key (Enc-SEND-Key)
                   (MS-MPPE-Send-Key in [RFC2548])
   EMSK(0,31)    = Peer to Authenticator Authentication Key (Auth-RECV-Key)
   EMSK(32,63)   = Authenticator to Peer Authentication Key (Auth-Send-Key)
   IV(0,31)      = Peer to Authenticator Initialization Vector (RECV-IV)
   IV(32,63)     = Authenticator to Peer Initialization vector (SEND-IV)
 
   Where:
 
   IV(W,Z)       = Octets W through Z inclusive of the IV.
   MSK(W,Z)      = Octets W through Z inclusive of the MSK.
   EMSK(W,Z)     = Octets W through Z inclusive of the EMSK.
   TMS           = TLS master_secret
   TLS-PRF-X     = TLS PRF function defined in [RFC2246] computed to X octets
   client.random = Nonce generated by the TLS client.
   server.random = Nonce generated by the TLS server.
 
   Figure A-1 illustrates the TEK key hierarchy for EAP-TLS [RFC2716],
   which is based on the TLS key hierarchy described in [RFC2246].  The
   TLS-negotiated ciphersuite is used to set up a protected channel for
   use in protecting the EAP conversation,  keyed by the derived TEKs.
   The TEK derivation proceeds as follows:
 
   master_secret = TLS-PRF-48(pre_master_secret, "master secret",
                   client.random || server.random)
   TEK           = TLS-PRF-X(master_secret, "key expansion",
                   server.random || client.random)
   Where:
 
   TLS-PRF-X =     TLS pseudo-random function defined in [RFC2246],
                   computed to X octets.
 
          |                       | pre_master_secret         |
    server|                       |                           | client
    Random|                       V                           | Random
          |     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+       |
          |     |                                     |       |
          +---->|             master_secret           |<------+
          |     |               (TMS)                 |       |
          |     |                                     |       |
          |     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+       |
          |                       |                           |
          V                       V                           V
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                                                               |
    |                    Key Block  (TEKs)                          |
    |                                                               |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |           |           |           |           |           |
      | client    | server    | client    | server    | client    | server
      | MAC       | MAC       | write     | write     | IV        | IV
      |           |           |           |           |           |
      V           V           V           V           V           V
 
   Figure A-1 - TLS [RFC2246] Key Hierarchy
 
 
Appendix B - Example Transient Session Key (TSK) Derivation
 
   To date, PPP and IEEE 802.11 ciphersuites are suitable for keying by
   EAP.  This Appendix describes the keying requirements of common PPP
   and 802.11 ciphersuites.
 
   PPP ciphersuites include DESEbis [RFC2419], 3DES [RFC2420], and MPPE
   [RFC3078].  The DES algorithm is described in [FIPSDES], and DES
   modes (such as CBC, used in [RFC2419] and DES-EDE3-CBC, used in
   [RFC2420]) are described in [DESMODES].  For PPP DESEbis, a single
   56-bit encryption key is required, used in both directions. For PPP
   3DES, a 168-bit encryption key is needed, used in both directions. As
   described in [RFC2419] for DESEbis and [RFC2420] for 3DES, the IV,
   which is different in each direction, is "deduced from an explicit
   64-bit nonce, which is exchanged in the clear during the [ECP]
   negotiation phase."  There is therefore no need for the IV to be
   provided by EAP.
 
   For MPPE, 40-bit, 56-bit or 128-bit encryption keys are required in
   each direction, as described in [RFC3078]. No initialization vector
   is required.
 
   While these PPP ciphersuites provide encryption, they do not provide
   per-packet authentication or integrity protection, so an
   authentication key is not required in either direction.
 
   Within [IEEE-802.11], Transient Session Keys (TSKs) are required both
   for unicast traffic as well as for multicast traffic, and therefore
   separate key hierarchies are required for unicast keys and multicast
   keys. IEEE 802.11 ciphersuites include WEP-40, described in
   [IEEE-802.11], which requires a 40-bit encryption key, the same in
   either direction; and WEP-128, which requires a 104-bit encryption
   key, the same in either direction.  These ciphersuites also do not
   support per-packet authentication and integrity protection.  In
   addition to these unicast keys, authentication and encryption keys
   are required to wrap the multicast encryption key.
 
   Recently, new ciphersuites have been proposed for use with IEEE
   802.11 that provide per-packet authentication and integrity
   protection as well as encryption [IEEE-802.11i].  These include TKIP,
   which requires a single 128-bit encryption key and two 64-bit
   authentication keys (one for each direction); and AES CCMP, which
   requires a single 128-bit key (used in both directions) in order to
   authenticate and encrypt data.
 
   As with WEP, authentication and encryption keys are also required to
   wrap the multicast encryption (and possibly, authentication) keys.
 
   Within IEEE 802.11 RSN, the Pairwise Transient Key (PTK), a transient
   session key used to protect unicast traffic, is derived from the PMK
   (octets 0-31 of the MSK), known in [RFC2716] as the Peer to
   Authenticator Encryption Key.  In [IEEE-802.11i],  the PTK is derived
   from the PMK via the following formula:
 
   PTK = EAPOL-PRF-X(PMK, "Pairwise key expansion", Min(AA,SA) ||
         Max(AA, SA) || Min(ANonce,SNonce) || Max(ANonce,SNonce))
 
   Where:
 
   PMK             = AAA-Key(0,31)
   SA              = Station MAC address (Calling-Station-Id)
   AA              = Access Point MAC address (Called-Station-Id)
   ANonce          = Access Point Nonce
   SNonce          = Station Nonce
   EAPOL-PRF-X     = Pseudo-Random Function based on HMAC-SHA1, generating
                     a PTK of size X octets.
 
   TKIP uses X = 64, while CCMP, WRAP, and WEP use X = 48.
 
   The EAPOL-Key Confirmation Key (KCK) is used to provide data origin
   authenticity in the TSK derivation. It utilizes the first 128 bits
   (bits 0-127) of the PTK.  The EAPOL-Key Encryption Key (KEK) provides
   confidentiality in the TSK derivation.  It utilizes bits 128-255 of
   the PTK. Bits 256-383 of the PTK are used by Temporal Key 1, and Bits
   384-511 are used by Temporal Key 2.  Usage of TK1 and TK2 is
   ciphersuite specific. Details are available in [IEEE-802.11i]

Proposed Resolution: Discuss
 
Issue 306: Channel Bindings
Submitter name: Jari Arkko
Submitter email address: jari.arkko@piuha.net
Date first submitted: 7/18/2005
Reference: http://mail.frascone.net/pipermail/eap/2005-July/003497.html
Document: KEYING-07
Comment type: T
Priority: S
Section: 1.3, 6.7
Rationale/Explanation of issue
I reviewed -07's text about channel bindings. Please find below
some suggested edits that take into account some of the discussion
about channel bindings in recent months.


>1.3 ...
>
>   Channel Bindings
>
>      Channel Bindings include lower layer parameters that are verified
>      for consistency between the EAP peer and server.  In order to
>      avoid introducing media dependencies, EAP methods MUST treat
>      Channel Bindings as opaque octets.

s/EAP methods MUST treat Channel Bindings as opaque octets/EAP methods
that transport Channel Bindings data MUST treat this data as opaque
octets/

>      Typically the EAP method imports Channel Bindings from the lower layer on the peer, and
>
>      transmits them securely to the EAP server, which exports them to
>      the lower layer.  However, transport may occur from EAP server to
>      peer, or may be bi-directional.  On the side of the exchange (peer
>      or server) where Channel Bindings are verified, the lower layer
>      passes the result of the verification (TRUE or FALSE) up to the
>      EAP method.
>
>6.7.  Channel binding
>
>   It is possible for a compromised or poorly implemented EAP
>   authenticator to communicate incorrect information to the EAP peer
>   and/or server. This may enable an authenticator to impersonate
>   another authenticator or communicate incorrect information via out-
>   of-band mechanisms (such as via AAA or the lower layer protocol).
>
>   Where EAP is used in pass-through mode, the EAP peer typically does
>   not verify the identity of the pass-through authenticator, it only
>   verifies that the pass-through authenticator is trusted by the EAP
>   server. This creates a potential security vulnerability, described in
>   [RFC3748] Section 7.15.
>
>   [RFC3579] Section 4.3.7 describes how an EAP pass-through
>   authenticator acting as a AAA client can be detected if it attempts
>   to impersonate another authenticator (such by sending incorrect NAS-
>   Identifier [RFC2865], NAS-IP-Address [RFC2865] or NAS-IPv6-Address
>   [RFC3162] attributes via the AAA protocol).  However, it is possible
>   for a pass-through authenticator acting as a AAA client to provide
>   correct information to the AAA server while communicating misleading
>   information to the EAP peer via a lower layer protocol.
>
>   For example, it is possible for a compromised authenticator to
>   utilize another authenticator's Called-Station-Id or NAS-Identifier
>   in communicating with the EAP peer via a lower layer protocol, or for
>   a pass-through authenticator acting as a AAA client to provide an
>   incorrect peer Calling-Station-Id [RFC2865][RFC3580] to the AAA
>   server via the AAA protocol.
>
>   As noted in [RFC3748] Section 7.15, this vulnerability can be
>   addressed by use of EAP methods that support a protected exchange of
>   channel properties such as endpoint identifiers, including (but not
>   limited to): Called-Station-Id [RFC2865][RFC3580], Calling-Station-Id
>   [RFC2865][RFC3580], NAS-Identifier [RFC2865], NAS-IP-Address
>   [RFC2865], and NAS-IPv6-Address [RFC3162].
>
>   Using such a protected exchange, it is possible to match the channel
>   properties provided by the authenticator via out-of-band mechanisms
>   against those exchanged within the EAP method.  For example, see
>   [ServiceIdent].

Add: It is also possible to achieve Channel Bindings without transporting
data over EAP. For example, see [draft-ohba-eap-aaakey-binding]. In this
approach the authenticator informs the EAP server about the Channel Binding
parameters over AAA, and the server calculates its AAA-Key based on
this parameter set, making it impossible for the peer and authenticator
to complete Secure Association Protocol if there was a mismatch in
the parameters.

The main difference between these approaches is that in the EAP-based
case an upgrade to an EAP method that supports Channel
Binding data transport is needed, impacting both the peer and the
server. In the AAA-based case the peer and the server are impacted
as well, but not at the EAP layer. However, a modification
of the authenticator is needed in the AAA-based case.
[Bernard Aboba] How about this? 
"Using such a protected exchange, it is possible to match the channel
properties provided by the authenticator via out-of-band mechanisms
against those exchanged within the EAP method. For example,
see [ServiceIdent].

It is also possible to achieve Channel Bindings without transporting
data over EAP. For example, see [draft-ohba-eap-aaakey-binding]. In this
approach the authenticator informs the backend server about the Channel Binding
parameters using AAA, and the backend server calculates its AAA-Key based on
this parameter set, making it impossible for the peer and authenticator
to complete the Secure Association Protocol if there was a mismatch in
the parameters.

The main difference between these approaches is that Channel
Binding support within an EAP method may require upgrading or
changing the EAP method,
impacting both the peer and the
server. Where Channel Bindings are implemented
in AAA, the peer, authenticator and the backend server need to be
upgraded, but the EAP method need not be modified."
 
Proposed Resolution: Discuss
Issue 307: Rewrite of Security Requirements
Submitter name: Bernard Aboba
Submitter email address: aboba@internaut.com 
Date first submitted: 3/31/2005
Reference: 
Document: KEYING-07
Comment type: T
Priority: S
Section: 7
Rationale/Explanation of issue
Section 7 consists of requirements on EAP methods, AAA
protocols, Secure Association Protocols and Ciphersuites that is in no way
tied back to the security requirements and threat model.  One is left to
wonder whether these "requirements" were developed out of thin air, or
whether there is any basis/justification for them.
The overall recommendation is to delete Section 7.  Here are the details:

Section 7.1 appears to have been taken from [RFC3748] Section 7.10.  It is
therefore redundant and can be deleted.

Section 7.2 relates not to requirements but rather to the security
vulnerabilities inherent in RADIUS and Diameter usage.  It therefore
should be incorporated into Section 6, Security Considerations (See Issue
294).  One this is done, this section can be deleted.

Section 2.3, 4, 7.3 all include requirements relating to the Secure
Association Protocol.  The recommendation is to consolidate this material
into Section 4, while deleting Section 7.3, and replacing Section 2.3 with
the following:

"2.3.  Secure Association Phase

   The Secure Association phase (phase 2), if it occurs, begins after
   the completion of EAP authentication (phase 1a) and key transport
   (phase 1b).

   Secure Association Protocols typically include the following
   features:

[1]  Generation of fresh unicast and multicast transient session keys.

[2]  Integrity and replay protection.  This ensures that the Secure
     Association Protocol messages cannot be forged, modified or
     replayed.

[3]  Secure capabilities negotiation.  This enables security-relevant
     parameters such as cryptographic algorithms to be securely
     negotiated.

[3]  Key management and naming.  This enables security associations to
     be created and deleted, and for key state to be kept synchronized
     between the peer and authenticator.

[4]  Mutual proof of possession of EAP keying material between the peer
     and authenticator.  This enables the EAP peer and authenticator to
     confirm authorization.

   Aspects of the Secure Association Protocol are discussed in more
   detail in Section 4."

Replace Section 4 with the following:

"4.  Key Management

   EAP as defined in [RFC3748] supports key derivation, but not key
   management.  While EAP methods may derive keying material, EAP does
   provide for the management of exported or derived keys.  For example,
   EAP does not support negotiation of the key lifetime of exported or
   derived keys, nor does it support rekey.  Although EAP methods may
   support "fast reconnect" as defined in [RFC3748] Section 7.2.1, rekey
   of exported keys cannot occur without reauthentication.  In order to
   provide method independence, key management of exported or derived
   keys SHOULD NOT be provided within EAP methods.

   Since neither EAP nor EAP methods provide key management support, it
   is RECOMMENDED that key management facilities be provided within the
   Secure Association Protocol.  This includes:

[a]  Entity Naming.  A basic feature of a Secure Association Protocol is
     the explicit naming of the parties engaged in the exchange.
     Explicit identification of the parties is critical, since without
     this the parties engaged in the exchange are not identified and the
     scope of the EAP keying parameters negotiated during the EAP
     exchange is undefined.  As shown in Figure 3, both the peer and NAS
     may have more than one physical or virtual port.  As a result, the
     peer and authenticator SHOULD identify themselves in a manner that
     is independent of their attached ports.

[b]  Mutual proof of possession of EAP keying material.  The Secure
     Association Protocol MUST demonstrate possession of the keying
     material transported between the backend authentication server and
     authenticator (.e.g. AAA-Key), and show that both the peer and
     authenticator have been authenticated and authorized.  Since mutual
     proof of possession is not the same as mutual authentication, the
     peer cannot verify authenticator assertions (including the
     authenticator identity) as a result of this exchange.

[c]  Secure capabilities negotiation.  In order to protect against
     spoofing during the discovery phase, ensure selection of the "best"
     ciphersuite, and protect against forging of negotiated security
     parameters, the Secure Association Protocol MUST support secure
     capabilities negotiation.  This includes the secure negotiation of
     usage modes, session parameters (such as security association
     identifiers (SAIDs) and key lifetimes), ciphersuites and required
     filters, including confirmation of security-relevant capabilities
     discovered during phase 0.  As part of secure capabilities
     negotiation, the Secure Association Protocol MUST support integrity
     and replay protection of all messages.

[d]  Key naming and selection.  Where key caching is supported, it may
     be possible for the EAP peer and authenticator to share more than
     one key of a given type.  As a result, the Secure Association
     Protocol MUST explicitly name the keys used in the proof of
     possession exchange, so as to prevent confusion when more than one
     set of keying material could potentially be used as the basis for
     the exchange.  Use of the key naming mechanism described in this
     document is RECOMMENDED.

     In order to support the correct processing of phase 2 security
     associations, the Secure Association (phase 2) protocol MUST
     support the naming of phase 2 security associations and associated
     transient session keys, so that the correct set of transient
     session keys can be identified for processing a given packet.  The
     phase 2 Secure Association Protocol also MUST support transient
     session key activation and SHOULD support deletion, so that
     establishment and re-establishment of transient session keys can be
     synchronized between the parties.

[e]  Generation of fresh transient session keys (TSKs).  Where the lower
     layer supports caching of exported EAP keying material, the EAP
     peer lower layer may initiate a new session using keying material
     that was derived in a previous session.  Were the TSKs to be
     derived from a portion of the exported EAP keying material, this
     would result in reuse of the session keys which could expose the
     underlying ciphersuite to attack.

     As a result, in lower layers where caching of EAP keying material
     is supported, the Secure Association Protocol phase is REQUIRED,
     and MUST support the derivation of fresh unicast and multicast
     TSKs, even when the keying material provided by the backend
     authentication server is not fresh.  This is typically supported
     via the exchange of nonces or counters, which are then mixed with
     the exported keying material in order to generate  fresh unicast
     (phase 2a) and possibly multicast (phase 2b) session keys.  By not
     using EAP keying material directly to protect data, the Secure
     Association Protocol protects it against compromise.

[f]  Key lifetime management.  This includes explicit key lifetime
     negotiation or seamless rekey.  EAP does not support negotiation of
     key lifetimes, nor does it support rekey without reauthentication.
     As a result, the Secure Association Protocol may handle rekey and
     determination of the key lifetime.  Where key caching is supported,
     secure negotiation of key lifetimes is RECOMMENDED.  Lower layers
     that support rekey, but not key caching, may not require key
     lifetime negotiation.  To take an example from IKE, the difference
     between IKEv1 and IKEv2 is that in IKEv1 SA lifetimes were
     negotiated. In IKEv2, each end of the SA is responsible for
     enforcing its own lifetime policy on the SA and rekeying the SA
     when necessary.

[g]  Key resynchronization.  It is possible for the peer or
     authenticator to reboot or reclaim resources, clearing portions or
     all of the key cache.  Therefore, key lifetime negotiation cannot
     guarantee that the key cache will remain synchronized, and the peer
     may not be able to determine before attempting to use a key whether
     it exists within the authenticator cache.  It is therefore
     RECOMMENDED for the Secure Association Protocol to provide a
     mechanism for key state resynchronization.  Since in this situation
     one or more of the parties initially do not possess a key with
     which to protect the resynchronization exchange, securing this
     mechanism may be difficult.

[h]  Key scope synchronization.  Since the Discovery phase is handled
     out-of-band, EAP does not provide a mechanism by which the peer can
     determine the authenticator identity.  As a result, where the
     authenticator has multiple ports and key caching is supported, the
     EAP peer may not be able to determine the scope of validity of the
     exported EAP keying material.  Similarly, where the EAP peer has
     multiple ports, the authenticator may not be able to determine
     whether a peer has authorization to use a particular key.  To allow
     key scope determination, the Secure Association Protocol SHOULD
     provide a mechanism by which the peer can determine the scope of
     the key cache on each authenticator, and by which the authenticator
     can determine the scope of the key cache on a peer.  This includes
     negotiation of restrictions on key usage.

[i]  Direct operation.  Since the phase 2 Secure Association Protocol is
     concerned with the establishment of security associations between
     the EAP peer and authenticator, including the derivation of
     transient session keys, only those parties have "a need to know"
     the transient session keys. The Secure Association Protocol MUST
     operate directly between the peer and authenticator, and MUST NOT
     be passed-through to the backend authentication server, or include
     additional parties.

[j]  Bi-directional operation While some ciphersuites only require a
     single set of transient session keys to protect traffic in both
     directions, other ciphersuites require a unique set of transient
     session keys in each direction. The phase 2 Secure Association
     Protocol SHOULD provide for the derivation of unicast and multicast
     keys in each direction, so as not to require two separate phase 2
     exchanges in order to create a bi-directional phase 2 security
     association."

Section 7.4 (Ciphersuite Requirements) can be incorporated into
Section 1.4.4 (Ciphersuite Independence):

"1.4.4.  Ciphersuite Independence

   Ciphersuite Independence is a consequence of the principles of Mode
   Independence and Media Independence.

   While EAP methods may negotiate the ciphersuite used in protection of
   the EAP conversation, the ciphersuite used for the protection of the
   data exchanged after EAP authentication has completed is negotiated
   between the peer and authenticator within the lower layer, outside of
   EAP.

   For example, within PPP, the ciphersuite is negotiated within the
   Encryption Control Protocol (ECP) defined in [RFC1968], after EAP
   authentication is completed.  Within [IEEE-802.11i], the AP
   ciphersuites are advertised in the Beacon and Probe Responses prior
   to EAP authentication, and are securely verified during a 4-way
   handshake exchange.

   Since the ciphersuites used to protect data depend on the lower
   layer, requiring EAP methods have knowledge of lower layer
   ciphersuites would compromise the principle of Media Independence.
   Since ciphersuite negotiation occurs in the lower layer, there is no
   need for ciphersuite negotiation within EAP, and EAP methods generate
   keying material that is ciphersuite-independent.

   Algorithms for deriving TSKs MUST NOT depend on the EAP
   method, although algorithms for TEK derivation MAY be specific
   to the EAP method.

   In order to allow a ciphersuite to be usable within the EAP keying
   framework, a specification MUST be provided describing how TSKs
   suitable for use with the ciphersuite are
   derived from exported EAP keying parameters.

   Advantages of ciphersuite-independence include:

Reduced update requirements
     If EAP methods were to specify how to derive transient session keys
     for each ciphersuite, they would need to be updated each time a new
     ciphersuite is developed.  In addition, backend authentication
     servers might not be usable with all EAP-capable authenticators,
     since the backend authentication server would also need to be
     updated each time support for a new ciphersuite is added to the
     authenticator.

Reduced EAP method complexity
     Requiring each EAP method to include ciphersuite-specific code for
     transient session key derivation would increase method complexity
     and result in duplicated effort.

Simplified configuration
     The ciphersuite is negotiated between the peer and authenticator
     outside of EAP.  Where the authenticator operates in "pass-through"
     mode, the EAP server is not a party to this negotiation, nor is it
     involved in the data flow between the EAP peer and authenticator.
     As a result, the EAP server may not have knowledge of the
     ciphersuites and negotiation policies implemented by the peer and
     authenticator, or be aware of the ciphersuite negotiated between
     them.  For example, since ECP negotiation occurs after
     authentication, when run over PPP, the EAP peer and server may not
     anticipate the negotiated ciphersuite and therefore this
     information cannot be provided to the EAP method."

The only remaining paragraph from Section 7.4 can be added to Section
2.5.1:

"  TSKs MUST be cryptographically separate from each other.  Similarly,
   TEKs MUST be cryptographically separate from each other.  In
   addition, the TSKs MUST be cryptographically separate from the TEKs."
In addition, consolidate Section 7.1.1 and 7.1.2 into Section 1.5, as
follows:

"1.5  EMSK Usage

The MSK and EMSK MUST be unique for each session.
The EMSK must be cryptographically independent of the MSK and TEKs, and
the EMSK MUST be secret and not known to someone observing the
EAP authentication exchange.

The EMSK MUST NOT be transported from the EAP server to another
party, and as a result the EMSK is not replicated between
the backend server and authenticator via the AAA protocol.  Although the
EMSK is not replicated, it is possible to derive keys from the EMSK via a
one-way function, and for these derived keys to be replicated from the
backend server to the authenticator.

Where a backend server is present the EMSK will not be available on
the authenticator, and therefore in order for the principle of Mode
Independence to be satisfied, TSKs derived within the lower layer
MUST NOT depend directly on the EMSK.  The EMSK MUST NOT be used
directly for cryptographic protection of data."
Proposed Resolution: Accept
 
Issue 308: Rewrite of Lower Layer Section
Submitter name: Bernard Aboba
Submitter email address: aboba@internaut.com 
Date first submitted: 9/21/2005
Reference: http://mail.frascone.net/pipermail/eap/2005-September/003605.html
Document: KEYING-07
Comment type: T
Priority: S
Section: 2
Rationale/Explanation of issue
Here is a proposed rewrite of Section 2 of the EAP Key Management 
Framework document to improve clarity and clarify issues relating to lower 
layer key usage. 


--------------------------------------------------------------------
2.  Lower Layer Operation

2.1.  Overview

   Where EAP key derivation is supported, the conversation typically
   takes place in three phases:

      Phase 0: Discovery
      Phase 1: Authentication
               1a: EAP authentication
               1b: AAA Key Transport (optional)
      Phase 2: Secure Association Establishment
               2a: Unicast Secure Association
               2b: Multicast Secure Association (optional)

   Of these phases, Phase 0, 1b and Phase 2 are handled by a lower
   layer.  In the discovery phase (phase 0),  peers locate
   authenticators and discover their capabilities.  For example, a peer
   may locate an authenticator providing access to a particular network,
   or a peer may locate an authenticator behind a bridge with which it
   desires to establish a Secure Association.

   The authentication phase (phase 1) may begin once the peer and
   authenticator discover each other.  This phase always includes EAP
   authentication (phase 1a).  Where the chosen EAP method supports key
   derivation, in phase 1a EAP keying material is derived on both the
   peer and the EAP server.  This keying material may be used for
   multiple purposes, including protection of the EAP conversation and
   subsequent data exchanges.

   An additional step (phase 1b) is required in deployments which
   include a backend authentication server, in order to transport keying
   material from the backend authentication server to the authenticator.
   In order to obey the principle of Mode Independence, where a backend
   server is present AAA Key transport needs to replicate the exported
   EAP keying material and/or derived keys required for derivation of
   the TSKs.  Since existing TSK derivation techniques depend solely on
   the MSK, in existing AAA implementations, this is the only keying
   material replicated in the AAA key transport phase 1b.

   A Secure Association exchange (phase 2) then occurs between the peer
   and authenticator in order to manage the creation and deletion of
   unicast (phase 2a) and multicast (phase 2b) security associations
   between the peer and authenticator.  The conversation between the
   parties is shown in Figure 3.

   EAP peer                   Authenticator               Auth. Server
   --------                   -------------               ------------
    |<----------------------------->|                               |
    |     Discovery (phase 0)       |                               |
    |<----------------------------->|<----------------------------->|
    |   EAP auth (phase 1a)         |  AAA pass-through (optional)  |
    |                               |                               |
    |                               |<----------------------------->|
    |                               |       AAA Key transport       |
    |                               |      (optional; phase 1b)     |
    |<----------------------------->|                               |
    |  Unicast Secure association   |                               |
    |          (phase 2a)           |                               |
    |                               |                               |
    |<----------------------------->|                               |
    | Multicast Secure association  |                               |
    |     (optional; phase 2b)      |                               |
    |                               |                               |

                  Figure 3: Conversation Overview

2.2.  Discovery Phase

   In the discovery phase (phase 0), the EAP peer and authenticator
   locate each other and discover each other's capabilities. Discovery
   can occur manually or automatically, depending on the lower layer
   over which EAP runs.  Since authenticator discovery is handled
   outside of EAP, there is no need to provide this functionality within
   EAP.

   For example, where EAP runs over PPP, the EAP peer might be
   configured with a phone book providing phone numbers of
   authenticators and associated capabilities such as supported rates,
   authentication protocols or ciphersuites.  In contrast, PPPoE
   [RFC2516] provides support for a Discovery Stage to allow a peer to
   identify the Ethernet MAC address of one or more authenticators and
   establish a PPPoE SESSION_ID.

   IEEE 802.11 [IEEE-802.11] also provides integrated discovery support
   utilizing Beacon and/or Probe Request/Response frames, allowing the
   peer (known as the station or STA) to determine the MAC address and
   capabilities of one or more authenticators (known as Access Point or
   APs).

2.3.  Authentication Phase

   Once the peer and authenticator discover each other, they exchange
   EAP packets.  Typically, the peer desires access to the network, and
   the authenticators provide that access.  In such a situation, access
   to the network can be provided by any authenticator attaching to the
   desired network, and the EAP peer is typically willing to send data
   traffic through any authenticator that can demonstrate that it is
   authorized to provide access to the desired network.

   An EAP authenticator may handle the authentication locally, or it may
   act as a pass-through to a backend authentication server.  In the
   latter case the EAP exchange occurs between the EAP peer and a
   backend authenticator server, with the authenticator forwarding EAP
   packets between the two.  The entity which terminates EAP
   authentication with the peer is known as the EAP server.  Where pass-
   through is supported, the backend authentication server functions as
   the EAP server; where authentication occurs locally, the EAP server
   is the authenticator.  Where a backend authentication server is
   present, at the successful completion of an authentication exchange,
   EAP keying material is transported to the authenticator (phase 1b).

   EAP may also be used when it is desired for two network devices (e.g.
   two switches or routers) to authenticate each other, or where two
   peers desire to authenticate each other and set up a secure
   association suitable for protecting data traffic.

   Some EAP methods exist which only support one-way authentication;
   however, EAP methods deriving keys are required to support mutual
   authentication.  In either case, it can be assumed that the parties
   do not utilize the link to exchange data traffic unless their
   authentication requirements have been met.  For example, a peer
   completing mutual authentication with an EAP server will not send
   data traffic over the link until the EAP server has authenticated
   successfully to the peer, and a Secure Association has been
   negotiated.

   Since EAP is a peer-to-peer protocol, an independent and simultaneous
   authentication may take place in the reverse direction.  Both peers
   may act as authenticators and authenticatees at the same time.

   Successful completion of EAP authentication and key derivation by a
   peer and EAP server does not necessarily imply that the peer is
   committed to joining the network associated with an EAP server.
   Rather, this commitment is implied by the creation of a security
   association between the EAP peer and authenticator, as part of the
   Secure Association Protocol (phase 2).  As a result, EAP may be used
   for "pre-authentication" in situations where it is necessary to pre-
   establish EAP security associations in order to decrease handoff or
   roaming latency.

2.4.  Secure Association Phase

   The Secure Association phase (phase 2), if it occurs, begins after
   the completion of EAP authentication (phase 1a) and key transport
   (phase 1b).

   Secure Association Protocols typically include the following
   features:

[1]  Generation of fresh unicast and multicast transient session keys.

[2]  Integrity and replay protection.  This ensures that the Secure
     Association Protocol messages cannot be forged, modified or
     replayed.

[3]  Secure capabilities negotiation.  This enables security-relevant
     parameters such as cryptographic algorithms to be securely
     negotiated.

[4]  Key naming.  In order to avoid confusion in the case where an EAP
     peer has more than one set of exported EAP parameters applicable to
     establishment of a phase 2 security association with an
     authenticator, the secure Association protocol needs to identify
     the keying material for use in the Secure Association Protocol
     exchange.

[5]  Key management.  This enables security associations to be created
     and deleted, and for key state to be kept synchronized between the
     peer and authenticator.

[6]  Mutual proof of possession of EAP keying material between the peer
     and authenticator.  This enables the EAP peer and authenticator to
     confirm authorization.

   Aspects of the Secure Association Protocol are discussed in more
   detail in Section 4.

2.5.  Layering

   In completion of EAP authentication, EAP methods on the peer and EAP
   server export the Master Session Key (MSK), Extended Master Session
   Key (EMSK), Initialization Vector (IV), Peer-ID, Server-ID, Session-
   ID and Key-Lifetime.  As illustrated in Figure 4, keying material and
   parameters exported by EAP methods are passed down to the EAP peer or
   authenticator layers, which passes them to the EAP layer.  Keying
   material and related parameters (including Channel Bindings) MUST NOT
   be cached by the EAP peer or authenticator layers, or the EAP layer.

   Based on the Method-ID exported by the EAP method, the EAP layer
   forms the EAP Session-ID by concatenating the EAP Expanded Type with
   the Method-ID.  Together with the MSK, EMSK, IV, Peer-ID, Server-ID,
   and Key-Lifetime, the EAP layer passes the Session-ID down to the
   lower layer.

   The Method-ID is exported by EAP methods rather than the Session-ID
   so as to prevent EAP methods from writing into each other's Session-
   ID space.

2.6.  Key Usage

   In order to preserve the security of keys derived within EAP methods,
   lower layers other than AAA MUST NOT export keys passed down by EAP
   methods.  This implies that EAP keying material or parameters passed
   down to a lower layer are for the exclusive use of that lower and
   MUST NOT be used within another lower layer.

   The exception to this rule is AAA.  As illustrated in Figure 5, the
   AAA client provides transported EAP keying material and parameters to
   the EAP authenticator lower layer.  In order to prevent the
   compromise of transported EAP keying material and parameters, the AAA
   client and EAP authenticator MUST be co-resident.

   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                                             |
   |                                             |
   |          EAP method                         |
   |                                             |
   | MSK, EMSK, IV,             Channel          |
   | Peer-ID, Server-ID,        Bindings         |
   | Method-ID,                                  |
   | Key-Lifetime                                |
   |                                             |
   |       V                       ^         ^   |
   +-+-+-+-!-+-+-+-+-+-+-+-+-+-+-+-!-+-+-+-+-!-+-+
   |       !                       !         !   |
   |  EAP  ! Peer or Authenticator !         !   |
   |       ! layer                 !         !   |
   |       !                       !         !   |
   +-+-+-+-!-+-+-+-+-+-+-+-+-+-+-+-!-+-+-+-+-!-+-+
   |       !                       !         !   |
   |  EAP  ! layer                 !         !   |
   |       !                       !         !   |
   |       ! Session-ID =          !         !   |
   |       ! Expanded-Type ||      !         !   |
   |       ! Method-ID             !         !   |
   |       !                       !         !   |
   +-+-+-+-!-+-+-+-+-+-+-+-+-+-+-+-!-+-+-+-+-!-+-+
   |       !                       !         !   |
   | Lower ! layer                 !         !   |
   |       !                       !         !   |
   |       V                       V         ^   |
   | MSK, EMSK, IV,             Channel   Result |
   | Peer-ID, Server-ID,        Bindings         |
   | Session-ID,                                 |
   | Key-Lifetime                                |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

       Figure 4:  Flow of EAP parameters


        Peer         Pass-through Authenticator   Authentication
                                                      Server

   +-+-+-+-+-+-+                                   +-+-+-+-+-+-+
   |           |                                   |           |
   |EAP method |                                   |EAP method |
   |     V     |                                   |     V     |
   +-+-+-!-+-+-+   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+   +-+-+-!-+-+-+
   |     !     |   |EAP  |  EAP  |             |   |     !     |
   |     !     |   |Peer |  Auth.| EAP Auth.   |   |     !     |
   |EAP  ! peer|   |     |       |             |   |EAP  !Auth.|
   |     !     |   |     |       |             |   |     !     |
   +-+-+-!-+-+-+   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+   +-+-+-!-+-+-+
   |     !     |   |             |             |   |     !     |
   |EAP  !layer|   |   EAP  layer| EAP  layer  |   |EAP  !layer|
   |     !     |   |             |             |   |     !     |
   +-+-+-!-+-+-+   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+   +-+-+-!-+-+-+
   |     !     |   |             |             |   |     !     |
   |     !     |   |       +-----------+       |   |     !     |
   |     !     |   |       !     |     !       |   |     !     |
   |Lower!layer|   |  Lower!layer| AAA ^ /IP   |   | AAA ! /IP |
   |     !     |   |       !     |     !       |   |     !     |
   |     V     |   |       V     |     !       |   |     !     |
   +-+-+-+-+-+-+   +-+-+-+-+-+-+-+-+-+-!-+-+-+-+   +-+-+-!-+-+-+
                                       !                 !
                                       !                 !
                                       +---------<-------+
                                           AAA Protocol

    Figure 5:  Flow of EAP Keying Material and Parameters

2.6.1.  Caching

   If explicitly permitted within the lower layer specification, lower
   layers MAY cache exported EAP keying material and related parameters,
   including Channel Bindings.   So as to enable  interoperability, new
   EAP lower layer specifications MUST describe EAP key caching
   behavior.  The caching behavior of existing EAP lower layers is as
   follows:

PPP  PPP, defined in [RFC1661] does not support caching of EAP key
     material or parameters.  Therefore EAP keying material passed down
     to the lower layer is assumed to be lost and cannot be recovered.

IKEv2
     IKEv2, defined in [IKEv2] only uses EAP keying material for
     authentication purposes and not key derivation.  As a result, IKEv2
     does not cache EAP keying material or parameters, nor does it
     utilize the Key-Lifetime to determine the lifetime of IPsec SAs.
     As  result, once IKEv2 authentication completes it is assumed that
     EAP keying material and parameters are discarded.

IEEE 802.11i
     IEEE 802.11i enables caching of the MSK, but not the EMSK, IV,
     Peer-ID, Server-ID, Session-ID, or Key-Lifetime.  More details are
     about the structure of the cache are available in [IEEE-802.11i].

IEEE 802.1X-2004
     IEEE 802.1X, defined in [IEEE-802.1X] does not support caching of
     EAP keying material or parameters.

AAA  Existing AAA servers supporting RADIUS/EAP [RFC3579] or Diameter
     EAP [RFC4207] do not support caching of EAP keying material or
     parameters.  Regardless of whether a given AAA implementation
     supports caching, keying material transported by AAA MUST be
     discarded by the AAA server once it is sent.

2.7.  Lower Layer Naming

   Within the lower layer, the EAP peer and authenticator typically
   utilize lower layer names to identify each other and define the scope
   of cached keying material.  However EAP methods treat lower layer
   peer and authenticator identities as opaque blobs and do not
   interpret them.  For example, EAP peers cannot compare the lower
   layer authenticator identifier with the Server-ID provided by the EAP
   method, since these two identifiers will not be the same where pass-
   through authentication is implemented.

   For the purpose of identifying the authenticator to the peer, it is
   RECOMMENDED that the NAS-Identifier attribute be provided by the
   authenticator to the peer, and that if AAA is enabled, that the
   authenticator/AAA client include the NAS-Identifer attribute within
   the Access-Request sent to the AAA server.  In order to ensure
   against forgery, it is RECOMMENDED that the peer and authenticator
   securely verify the authenticator identity, such as via the Secure
   Association Protocol.

   For the purpose of identifying the peer to the authenticator, the EAP
   Peer-ID provided within the EAP method is recommended.  Where the
   authenticator acts as a pass-through, the AAA server may include the
   Peer-ID in an Access-Accept if requested to do so by the
   authenticator/AAA client.  Alternatively, the peer may provide the
   authenticator with the Peer-ID via the lower layer, such as within
   the Secure Association Protocol.

2.8.  Lower Layer Key Hierarchy

   Based on the EAP keying material and parameters provided to it, the
   lower layer may derive two other types of keys:

    [3] Keying material calculated from exported EAP keying material
    [4] Session keys calculated or transported by the Secure Association
        Protocol: TSKs.

   In order to satisfy the principle of Mode Independence, a lower layer
   MUST only base the derivation of sesson keys on exported EAP
   parameters guaranteed to be present on the peer and authenticator.
   This implies that the Transient Sesion Keys (TSKs), known only to the
   peer and authenticator, may only depend on exported EAP parameters
   replicated by AAA from the EAP server to the authenticator.

   TSKs MUST be cryptographically separate from each other.  Similarly,
   TEKs MUST be cryptographically separate from each other.  In
   addition, the TSKs MUST be cryptographically separate from the TEKs.

   In existing usage, the only exported EAP parameter that is replicated
   by AAA as the result of a successful EAP authentication is the MSK.
   In existing usage, the AAA-Key is always derived from the MSK and so
   can be referred to using the MSK name.  AAA-Key = MSK(0,63).

   The exported EAP parameters replicated from the EAP server to the
   peer have a scope defined by the EAP peer name (if securely provided
   to the authenticator), and the authenticator name (if securely
   provided to the peer).

   In order to avoid confusion in the case where an EAP peer has more
   than one set of exported EAP parameters applicable to establishment
   of a phase 2 security association with an authenticator, the secure
   Association protocol needs to identify the keying material for use in
   the Secure Association Protocol exchange.

   When the authenticator acts as an endpoint of the EAP conversation
   rather than a pass-through, EAP methods are implemented on the
   authenticator as well as the peer.  If the EAP method negotiated
   between the EAP peer and authenticator supports mutual authentication
   and key derivation, the EAP Master Session Key (MSK) and Extended
   Master Session Key (EMSK) are derived on the EAP peer and
   authenticator and exported by the EAP method.  In this case, the MSK
   and EMSK are known only to the peer and authenticator and no other
   parties.  The TEKs and TSKs also reside solely on the peer and
   authenticator.  This is illustrated in Figure 7.  As demonstrated in
   [I-D.ietf-roamops-cert], in this case it is still possible to support
   roaming between providers, using certificate-based authentication.

   Where a backend authentication server is utilized, the situation is
   illustrated in Figure 8.  Here the authenticator acts as a pass-
   through between the EAP peer and a backend authentication server. In
   this model, the authenticator delegates the access control decision
   to the backend authentication server, which acts as a Key
   Distribution Center (KDC).  In this case, the authenticator
   encapsulates EAP packet with a AAA protocol such as RADIUS [RFC3579]
   or Diameter [RFC4072], and forwards packets to and from the backend
   authentication server, which acts as the EAP server.  Since the
   authenticator acts as a pass-through, EAP methods reside only on the
   peer and EAP server As a result, the TEKs, MSK and EMSK are derived
   on the peer and EAP server.

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+         ---+
|                                                         |            ^
|                EAP Method                               |  Local to  |
|                                                         |       EAP  |
| +-+-+-+-+-+-+ +-+-+-+-+-+-+ +-+-+-+-+-+-+ +-+-+-+-+-+-+ |            |
| |  TEK      | | MSK       | |EMSK       | |IV         | |            |
| |Derivation | |Derivation | |Derivation | |Derivation | |            |
| +-+-+-+-+-+-+ +-+-+-+-+-+-+ +-+-+-+-+-+-+ +-+-+-+-+-+-+ |            |
|                 |               |                 |     |            V
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+         ---+
                  |               |                 |                  ^
                  | MSK (64B)     | EMSK (64B)      | IV (64B) Exported|
                  |               |                 |              by  |
                  |               |                 |              EAP |
                  |               V                 V                  v
                  |                                                 ---+
                  | AAA-Key                                Transported |
                  |                                             by AAA |
                  |                                           Protocol |
                  V                                                    V
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+                                    ---+
   |                           |                                       ^
   |     TSK  Derivation       |                           Lower layer |
   |     [AAA-Key Cache]       |                              Specific |
   |                           |                                       V
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+                                    ---+

         Figure 6: Complete Key Hierarchy


   +-+-+-+-+-+               +-+-+-+-+-+
   |         |               |         |
   |         |               |         |
   | Cipher- |               | Cipher- |
   | Suite   |               | Suite   |
   |         |               |         |
   +-+-+-+-+-+               +-+-+-+-+-+
       ^                         ^
       |                         |
       |                         |
       |                         |
       V                         V
   +-+-+-+-+-+               +-+-+-+-+-+
   |         |               |         |
   |         |===============|         |
   |         |EAP, TEK Deriv.|Authenti-|
   |         |<------------->| cator   |
   |         |               |         |
   |         | Secure Assoc. |         |
   | peer    |<------------->| (EAP    |
   |         |===============| server) |
   |         | Link layer    |         |
   |         | (PPP,IEEE802) |         |
   |         |               |         |
   |MSK,EMSK |               |MSK,EMSK |
   | (TSKs)  |               | (TSKs)  |
   +-+-+-+-+-+               +-+-+-+-+-+
       ^                         ^
       |                         |
       | MSK, EMSK               | MSK, EMSK
       |                         |
       |                         |
   +-+-+-+-+-+               +-+-+-+-+-+
   |         |               |         |
   |  EAP    |               |  EAP    |
   |  Method |               |  Method |
   |         |               |         |
   | (TEKs)  |               | (TEKs)  |
   |         |               |         |
   +-+-+-+-+-+               +-+-+-+-+-+

   Figure 7:  Relationship between EAP peer and authenticator (acting as
   an EAP server), where no backend authentication server is present.

   +-+-+-+-+-+               +-+-+-+-+-+
   |         |               |         |
   |         |               |         |
   | Cipher- |               | Cipher- |
   | Suite   |               | Suite   |
   |         |               |         |
   +-+-+-+-+-+               +-+-+-+-+-+
       ^                         ^
       |                         |
       |                         |
       |                         |
       V                         V
   +-+-+-+-+-+               +-+-+-+-+-+        +-+-+-+-+-+
   |         |===============|         |========|         |
   |         |EAP, TEK Deriv.|         |        |         |
   |         |<-------------------------------->| backend |
   |         |               |         |AAA-Key/|         |
   |         | Secure Assoc. |         | Name   |         |
   | peer    |<------------->|Authenti-|<-------|  auth   |
   |         |===============| cator   |========| server  |
   |         |  Link Layer   |         |  AAA   | (EAP    |
   |         | (PPP,IEEE 802)|         |Protocol| server) |
   |         |               |         |        |         |
   |MSK,EMSK |               |  MSK    |        |MSK,EMSK |
   | (TSKs)  |               |  (TSKs) |        |         |
   +-+-+-+-+-+               +-+-+-+-+-+        +-+-+-+-+-+
       ^                                            ^
       |                                            |
       | MSK, EMSK                                  | MSK, EMSK
       |                                            |
       |                                            |
   +-+-+-+-+-+                                  +-+-+-+-+-+
   |         |                                  |         |
   |  EAP    |                                  |  EAP    |
   |  Method |                                  |  Method |
   |         |                                  |         |
   |  (TEKs) |                                  |  (TEKs) |
   |         |                                  |         |
   +-+-+-+-+-+                                  +-+-+-+-+-+


   Figure 8: Pass-through relationship between EAP peer, authenticator
   and backend authentication server.
[Joe Salowey]

I think in general this looks pretty good. I have some comments and
questions:

Section 2.3

- In paragraph 4 it states

"In either case, it can be assumed that the parties do not utilize the
link to exchange data traffic unless their authentication requirements
have been met."

Is there a reason why it is useful to assume this? I'm not sure that it
needs to be true (although I agree that it often is).

- in paragraph 6

It should also state that successful EAP authentication and key
derivation does not necessarily mean that the peer will be granted
access. There is typically authorization and resource allocation which
also must happen can could fail. This may be handled (or not handled)
differently by different lower layers.=20

Section 2.4=20

- is [3] related to capabilities in the discovery phase?

- What is meant by "more than one set of exported EAP parameters" in [4]

Section 2.5

- I thought we were deprecating IV, should we mention it here?
- Do we discuss key lifetime elsewhere in the document? I think it
needs more discussion and I'm not really crazy about exporting a value
called key lifetime from a mechanism, perhaps maximum-key-lifetime would
be better although I have reservations about that too since a key
lifetime may depend upon how it is used.

- Is methodID defined elsewhere? Is it a value exported by the EAP
method that uniquely identifies a particular execution of the EAP
method?

Section 2.6

- I am not sure that a lower layer MUST NOT export keys passed down by
EAP methods to other lower layers. It should at least be possible for a
lower layer to export keys derived from keys passed down by EAP methods
to other lower layers.

[Bernard Aboba]

The problem with sharing keys between media is that it
creates cascading vulnerabilities. If one media has a weak
ciphersuite that results in key compromise, then if keys are
shared between media, this could result in compromise of a
key used on another media with a strong ciphersuite.

At IETF 62, Sam Hartman brought up this point.

The one exception to this is AAA, which shares keying
material received by the AAA client with the EAP authenticator.

[Joe Salowey]

I agree that the same key should not be used for two different
purposes, however it should be possible for an implementation of a
"lower layer" to use a key to derive keying material to be used within
it's domain of applicability. These derived keys may actually be used
by different entities. Here is a possible revision to clarify this:

" In order to preserve separation of keying material and security
considerations fort lower layers separate,
lower layers MUST NOT export keys passed down by EAP methods outside
their domain of control. This implies that EAP keying material or
parameters passed down to a lower layer are for the exclusive use of
that lower and MUST NOT be used within another lower layer for a
different purpose."

[Bernard Aboba] This looks good. 

[Joe Salowey]

- The EMSK MUST NOT be exported to a lower layer. AMSKs derived form
the EMSK may be exported.

[Bernard Aboba] The EAP method calculates the EMSK and exports it. Methods
do not calculate AMSKs. The EAP layer cannot know whether
the lower layer will calculate AMSKs or not. So the EAP
layer really has no choice but to pass the EMSK down to the
lower layer.

[Joe Salowey]

Perhaps methods should deal with derivation of AMSKs. I don't
think it is appropriate for the EMSK to be passed down to any lower
layer. I also don't think it is appropriate to call AAA a lower layer
as it is a bit confusing and a special case. I think between the
EAP-Server and EAP-Authenticator is a key distribution (or perhaps
parameter distribution) "layer" which controls the distribution (and
perhaps derivation) of keys. When there is AAA involved this
distribution layer uses the AAA protocol between the AAA server and AAA
client. When there is no AAA involved then the distribution layer is
local between the EAP implementation in the lower layer. The
distribution layer may help clarify the above exception to lower layers
and exported key material.

[Bernard Aboba]

RFC 3748 describes the export of the EMSK by EAP methods. Since the EAP 
layer does not cache keys and needs to maintain lower layer independence, 
when it obtains the EMSK from the method, it can't know that a given lower 
requires an AMSK unless the lower layer specifically indicates that it needs 
an AMSK and provides all the parameters to calculate it. Are you suggesting 
that there is an interface between the lower layer and EAP layer, indicating 
what keys are to be passed down to the lower layer?

One question is how such an interface would work within the EAP layering 
model described in RFC 3748, Figure 2. One hypothesis is that the lower 
layer on the EAP authenticator can indicate to the EAP layer what types of 
keys it needs.

>I also don't think it is appropriate to call AAA a lower layer
>as it is a bit confusing and a special case.

RFC 3748 Figure 2 shows a picture of EAP with AAA/IP functioning as an EAP 
lower layer. For the purposes of EAP key management, a AAA lower layer 
interacts with the EAP layer the same as any other lower layer, no?

For example, doesn't AAA receive the same keys from the EAP layer as any 
other lower layer? It might be able to do things that other lower layers 
can't (like replicating keys between entities) but that is a separate issue.

>I think between the
>EAP-Server and EAP-Authenticator is a key distribution (or perhaps
>parameter distribution) "layer" which controls the distribution (and
>perhaps derivation) of keys.

AAA can handle the derivation of keys, just like any other lower layer. 
Key transport is a special property of AAA, though.

If you look at figure 2 of RFC 3748, it shows the EAP authenticator, with 
one interface having a conventional EAP lower layer, and the other interface 
having a AAA lower layer, with EAP packets being routed between interfaces.

Presumably the AAA packet that carries EAP packets also carries the keys, 
and one question that arises is whether the keys travel the same path that 
the EAP packet does or not. If so, then the AAA-transported keying material 
gets passed down into the lower layer the same way as locally generated keys 
do. Since the EMSK is not replicated, this would imply that an AMSK needs 
to be passed down to the lower layer, not the EMSK.

>When there is no AAA involved then the distribution layer is
>local between the EAP implementation in the lower layer.

The EAP layer sits on top of the lower layer, so I'm not sure where a 
"distribution" layer would fit in.

[Bernard Aboba]

On the other hand, I think it makes sense to say that AAA
MUST NOT transport the EMSK, or that the EAP peer or
authenticator MUST NOT use the EMSK directly. It also makes
sense to say that existing lower layers (including AAA) do
not cache the EMSK.

[Joe Salowey] I agree with this.

Section 2.7

- I don't quite understand the goal of this section. It is called
naming, but the section talks about securely verifying names which is
somewhat different. What is this section trying to accomplish?

Section 2.8

- paragraph 8 - the last sentence " As demonstrated in
[I-D.ietf-roamops-cert], in this case it is still possible to support
roaming between providers, using certificate-based authentication."
seems out of context.
Proposed Resolution: Accept
 
Issue 309: Review 
Submitter name: Maryline Maknavicius
Submitter email address: Maryline.Maknavicius@int-evry.fr
Date first submitted: 11/09/2005
Reference: http://lists.frascone.com/pipermail/eap/msg03755.html
Document: KEYING-08
Comment type: T
Priority: S
Section: Various
Rationale/Explanation of issue
 
Please find hereafter few comments on draft-ietf-eap-keying-08.

1. IMHO the meaning of "lower layer" should be clarified and make consistent
through all the document.
For instance, figure 3 and section 2.3 consider lower layer as including AAA,
while figure 4 and associated explanations of section 2.2 consider AAA and lower
layers separately.

For instance, this does  not help understanding section 2.4.1 :
"[a] The lower layer MAY specify additional restrictions on key usage,
     such as limiting the use of EAP keying material and parameters on
     the EAP peer to the port over which on the EAP conversation was
     conducted."

where I guess lower layer does not correspond to AAA, but I may have
misunderstood.

To clarify, I think a definition of "lower layers" is needed in section 1.2.

2. In section 2.1, a typical conversation with phases is given with no details
on what applies for specific lower layer protocols like IKEv2, PPP, IEEE
802.11i...
However, in section 2.3 (caching), explanations are personalized to each lower
layer protocol, giving clues on how this framework should integrate in each
protocol.

I feel like a section (or an appendix) is missing on how this framework applies
to current lower layer protocols.

3. Other clarifications needed in section 3.2:
"  As a result,  while the lifetime of calculated keys can be less than
   or equal that of the exported keys they are derived from, it cannot
   be greater.  For example, TSK re-key may occur prior to EAP re-
   authentication."
I do not understand how the last sentence ("TSK re-key may occur prior to EAP
re-authentication") illustrates that exported keys have greater/same lifetime
than derived keys. Maybe to be removed or better explained.
 
[Bernard Aboba]
 
The issue of the meaning of "lower layer" was also brought up in Issue 320. 
Are those changes sufficient to clarify the issue? 
 
Does the following change clarify the re-key issue? 
 
In Section 3.2, change:
 
"  As a result,  while the lifetime of calculated keys can be less than
   or equal that of the exported keys they are derived from, it cannot
   be greater.  For example, TSK re-key may occur prior to EAP re-
   authentication."
 
To:
 
" As a result, while the lifetime of calculated keys can be less than
or equal that of the exported keys they are derived from, it cannot
be greater. For example, when EAP re-authentication occurs, TSK
re-key will also occur. However, this does not prohibit TSK re-key
from occurring prior to expiration of the lifetime of exported keys. 
For example, TSK re-key may occur prior to EAP re-authentication."
 
Here is some additional material on the EAP conversation phases:
 
Add the following material to Section 2.1: 

Existing EAP lower layers implement phase 0, 2a and 2b in different ways:

PPP PPP, defined in [RFC1661] does not support discovery, nor does
it include a Secure Association Protocol. 

PPPOE PPPOE, defined in [RFC2516], includes support for a Discovery stage
(phase 0). In this step, the EAP peer sends a PPPoE Active Discovery
Initiation (PADI) packet to the broadcast address, indicating
the service it is requesting. The Access Concentrator replies
with a PPPOE Active Discovery Offer (PADO) packet containing 
its name, the service name and an indication of the services
offered by the concentrator. The discovery phase is not secured. 
PPPOE, like PPP, does not include a Secure Association Protocol. 

IKEv2
IKEv2, defined in [RFC4306], handles the derivation of unicast security
associations (phase 2a), while the derivation of multicast security
associations (phase 2b) is handled in a separate group key management protocol,
as described in [RFC4046]. Several mechanisms have
been proposed for discovery of IPsec security gateways. 
[RFC2230] discusses the use of KX Resource Records (RRs) for 
IPsec gateway discovery. However, while KX RRs are
supported by many DNS server implementations, they have not yet been
widely deployed. Alternatively, DNS SRV [RFC2782] can be used for
this purpose. Where DNS is used for gateway location, DNS security
mechanisms such as DNSSEC ([RFC2535], [RFC2931]), TSIG [RFC2845], and
Simple Secure Dynamic Update [RFC3007] are available.

IEEE 802.11i
IEEE 802.11, defined in [IEEE-802.11], handles discovery via the 
Beacon and Probe Request/Response mechanisms. EAP authenticators 
periodically announce their service names (SSIDs) as well as 
capabilities using Beacon frames. Alternatively, EAP peers
can query for authenticators by sending a Probe Request to the
broadcast address. The 4-way handshake defined in [IEEE-802.11i]
enables the derivation of unicast (phase 2a) and multicast/broadcast
(phase 2b) secure associations. Note that since the group key
exchange transports a group key from the authenticator to the
peer, two 4-way handshakes may be required in order to support
peer-to-peer communications. 

IEEE 802.1X-2004
IEEE 802.1X-2004, defined in [IEEE-802.1X-2004] does not support
discovery (phase 0), nor does it provide for derivation of unicast
or multicast secure associations.

IEEE 802.16e
IEEE 802.16e, defined in [IEEE-802.16e] {need text}
 
Proposed Resolution: Accept
 
Issue 310: Definitions
Submitter name: Jari Arkko
Submitter email address: jari.arkko@piuha.net  
Date first submitted: 11/07/2005
Reference: http://lists.frascone.com/pipermail/eap/msg03736.html
Document: KEYING-08
Comment type: T
Priority: S
Section: Various
Rationale/Explanation of issue
 
o Terms AAA server, backend authentication server,
EAP server: EAP server is a different entity.
But it would be useful to use a single term for the
"backend authentication server"/AAA server. The
document already states that the terms are
used interchangeably. For backwards compatibility
reasons (e.g. RFC 3748) we should not delete the
terms, but use just one through the eap-keying
document.
o Definition of "export". Not sure if we need to add
anything here.
o AAA-Key. There has indeed been confusion. But
It seems that Bernard's new definition works:

AAA-Key

The term "AAA-Key" is synonymous with MSK.
 
o Use of MSK as a basis for AMSKs. This appears to
not possible due to the use MSK for another purpose
already.
o Definition of PMK. We may need to say less here.
Suggested text:
Pairwise Master Key (PMK)
Lower layers use MSK in lower-layer dependent manner.
For instance, in [IEEE-802.11i] Octets 0-31 of the MSK
are known as the Pairwise Master Key (PMK). In
[IEEE-802.11i] the TKIP and AES CCMP ciphersuites derive
their Transient Session Keys (TSKs) solely from the PMK, whereas
the WEP ciphersuite as noted in [RFC3580], derives its TSKs from
both halves of the MSK. In [802.16e], the MSK is truncated to
40 octets for PMK and 20 octets for PMK2.

and delete PMK usage from Appendix A.
 
o Definition of AMSKs here vs. in the extensions.
We have discussed this in other threads already.
I think we were leaning on defining them here,
but we can discuss this issue in the meeting today.
 
Proposed Resolution:
 
In Section 1.2, change the definition of PMK to the following:
 
Pairwise Master Key (PMK)
Lower layers use MSK in lower-layer dependent manner.
For instance, in [IEEE-802.11i] Octets 0-31 of the MSK
are known as the Pairwise Master Key (PMK). In
[IEEE-802.11i] the TKIP and AES CCMP ciphersuites derive
their Transient Session Keys (TSKs) solely from the PMK, whereas
the WEP ciphersuite as noted in [RFC3580], derives its TSKs from
both halves of the MSK. In [802.16e], the MSK is truncated to
40 octets for PMK and 20 octets for PMK2.
 
Change the term "AAA server" to "backend authentication server" throughout the document.
 
In Appendix A, change:
"  [RFC2716] specifies that the MSK is divided into two halves,
   corresponding to the "Peer to Authenticator Encryption Key" (Enc-
   RECV-Key, 32 octets, also known as the PMK) and "Authenticator to
   Peer Encryption Key" (Enc-SEND-Key, 32 octets).  In [RFC2548], the
   Enc-RECV-Key (the PMK) is transported in the MS-MPPE-Recv-Key
   attribute, and the Enc-SEND-Key is transported in the MS-MPPE-Send-
   Key attribute."
To:
"  [RFC2716] specifies that the MSK is divided into two halves,
   corresponding to the "Peer to Authenticator Encryption Key" (Enc-
   RECV-Key, 32 octets) and "Authenticator to
   Peer Encryption Key" (Enc-SEND-Key, 32 octets).  In [RFC2548], the
   Enc-RECV-Key is transported in the MS-MPPE-Recv-Key
   attribute, and the Enc-SEND-Key is transported in the MS-MPPE-Send-
   Key attribute."
Proposed Resolution: Accept
 
Issue 311: EAP and Authorization
Submitter name: Avi Lior
Submitter email address: avi@bridgewatersystems.com
Date first submitted: 11/03/2005
Reference: http://lists.frascone.com/pipermail/eap/msg03709.html
Document: KEYING-08
Comment type: T
Priority: S
Section: Various
Rationale/Explanation of issue
 
In draft-ietf-eap-keying-08.txt  page 6:
 
"The EAP server also
   stores the peer's identity and/or other information necessary to
   decide whether access to some service should be granted.    The peer
   stores information necessary to choose which secret to use for which
   service."
 
The issue i have is that the above seems to indicate that the EAP-Server is somehow involved in authorization.
This is *hopefully" not true, and contradicts section 4.1 of the same draft.
 
Suggest re-write:
 
"The EAP server also
   stores the peer's identity and the peer
   stores information necessary to choose which secret to use for which
   service."
 
Note also that in the following paragraph the sentence is repeated again:
 
"If authentication is based on proof of possession of the private key
   corresponding to the public key contained within a certificate, the
   parties store the EAP method to be used and the trust anchors used to
   validate the certificates.  The EAP server also stores the peer's
   identity and/or other information necessary to decide whether access
   to some service should be granted.  The peer stores information
   necessary to choose which certificate to use for which service."
 
Suggested re-write:
"If authentication is based on proof of possession of the private key
   corresponding to the public key contained within a certificate, the
   parties store the EAP method to be used and the trust anchors used to
   validate the certificates.  The EAP server also stores the peer's
   identity and the peer stores information
   necessary to choose which certificate to use for which service."

[Joe Salowey]
"The EAP server also stores the peer's identity and/or other information
necessary to decide whether access to some service should be granted. "

This sentence (appearing twice) makes it sound like the EAP server is
going to decide whether to access to a server should be granted.  It
would be better to say something like

"The EAP server also stores the peer's identity and/or other information
associated with the identity.  This information may be provided with the
authenticated identity to the entity that determines whether access to
the service that required EAP authentication should be granted."

[BA] The proposed resolution is as follows:

In Section 1.3, change:

"  The EAP server also
   stores the peer's identity and/or other information necessary to
   decide whether access to some service should be granted.  The peer
   stores information necessary to choose which secret to use for which
   service.

   If authentication is based on proof of possession of the private key
   corresponding to the public key contained within a certificate, the
   parties store the EAP method to be used and the trust anchors used to
   validate the certificates.  The EAP server also stores the peer's
   identity and/or other information necessary to decide whether access
   to some service should be granted.  The peer stores information
   necessary to choose which certificate to use for which service."
To:

"The EAP server also stores the peer's identity as well as other information
associated with it. This information may be used to determine whether access
to some service should be granted. The peer
stores information necessary to choose which secret to use for which
service.

If authentication is based on proof of possession of the private key
corresponding to the public key contained within a certificate, the
parties store the EAP method to be used and the trust anchors used to
validate the certificates.  The EAP server also stores the peer's
identity and the peer stores information
necessary to choose which certificate to use for which service."

 
Proposed Resolution: Accept
 
Issue 312: Editorial Review 
Submitter name: Mats Naslund 
Submitter email address: Mats.Naslund@ericsson.com 
Date first submitted: November 30, 2005
Reference: 
Document: Keying-08 
Comment type: E 
Priority: 1 
Section: multiple  
Rationale/Explanation of issue: 

  The Extensible Authentication Protocol (EAP), defined in [RFC3748], 
  enables extensible network access authentication.  This document 
  provides a framework for the generation, transport and usage of 

MN: In what sense is _generation_ of key material really covered? 
It explains how some methods have done, but does it really specify 
a framework for key generation? 

Transient Session Keys (TSKs) 
    Session keys used to protect data exchanged in a session between 
    the peer and authenticator after the EAP authentication has 
    successfully completed.  TSKs are appropriate for the lower layer 
    ciphersuite negotiated between the ports of the EAP peer and 
    authenticator.  Examples of TSK derivation are provided in Appendix 
    B. 

MN: sorry, didn't find a single such example. 

AAA-Key 
    A key derived by the peer and EAP server, used by the peer and 
    authenticator in the derivation of Transient Session Keys (TSKs). 
    Where a backend authentication server is present, the AAA-Key is 
    transported from the backend authentication server to the 
    authenticator.  In existing usage, the AAA-Key is always derived 
    from the MSK and so can be referred to using the MSK name.  AAA-Key 
    = MSK(0,63). 

MN: Why not show a figure of the hierachy? In fact, what does it look like? 

       ---> TEK 
      / 
  .../ ---> MSK = AAAk  ----> TSK 
     \         \ 
      \         \---> PMK --> TSK 
       \ 
        \---> EMSK 
 
[BA] The document doesn't really provide a framework for the generation of
EAP keying material (MSK/EMSK). At best it describes some requirements and
provides some examples. 

The TSK generation examples are no longer in Appendix B; this is now
discussed in Section 2.3 (not sure this is the best place for that though).
The discussion might be expanded to talk a bit more about the security
properties of various schemes: 

PPP: TSKs generated directly from MSK. Caching not supported,
since this could lead to TSK reuse. PFS only possible with
methods that support it. 
IEEE 802.11i: TSKs generated from MSK via 4-way handshake. Caching 
allowed since freshness is guaranteed. PFS not possible 
where cached PMKs are used. 
IKEv2: TSKs generated from IKEv2 exchange, EAP keying material
only used for authentication. No caching. PFS can be
negotiated. 
IEEE 802.16e: TSKs generated by the authenticator. EAP keying material
used to encrypt, and integrity protect the transported
TSK. PFS not possible. 

Figure 1 currently includes the TEKs, MSK, EMSK. In -07, Figure 5 
included the AAA-Key and TSKs, though not the PMK. The problem 
with that figure is that it was potentially misleading, since it
implied that the TSKs are always derived from the MSK. As noted
above, this is not necessarily the case. 

Perhaps we can include MSK = AAA-Key in figure 1 and maybe add
a few words about the PMK, just to say that it represents a 
portion of the MSK (the portion varies between different lower
layers). 
 
[BA] The proposed resolution is as follows:
 
In the Abstract, change:
"  The Extensible Authentication Protocol (EAP), defined in [RFC3748],
   enables extensible network access authentication.  This document
   provides a framework for the generation, transport and usage of
   keying material generated by EAP authentication algorithms, known as
   "methods".  It also specifies the EAP key hierarchy."
To:
 
"  The Extensible Authentication Protocol (EAP), defined in [RFC3748],
   enables extensible network access authentication.  This document
   provides a framework for the transport and usage of
   keying material generated by EAP authentication algorithms, known as
   "methods".  It also specifies the EAP key hierarchy."
 
In Section 1, change:
"  This document provides a framework for the generation, transport and
   usage of keying material generated by EAP authentication algorithms,
   known as "methods".  In EAP keying material is generated by EAP
   methods.  Part of this keying material may be used by EAP methods
   themselves and part of this material may be exported.  The exported
   keying material may be transported by AAA protocols or transformed by
   Secure Association Protocols into session keys which are used by
   lower layer ciphersuites.  This document describes each of these
   elements and provides a system-level security analysis.  It also
   specifies the EAP key hierarchy."
To:
"  This document provides a framework for the transport and
   usage of keying material generated by EAP authentication algorithms,
   known as "methods".  In EAP, keying material is generated by EAP
   methods.  Part of this keying material may be used by EAP methods
   themselves and part of this material may be exported.  The exported
   keying material may be transported by AAA protocols or used by
   Secure Association Protocols in the generation or transport of session keys which are used by
   lower layer ciphersuites.  This document describes each of these
   elements and provides a system-level security analysis.  It also
   specifies the EAP key hierarchy."
Proposed Resolution: Accept

Issue 313: Distributed Authenticators
Submitter name: Mats Naslund
Submitter email address: Mats.Naslund@ericsson.com
Date Submitted: November 30, 2005
Reference:
Document: Keying-08
Comment type: T
Priority: 1
Section: multiple
Rationale/Explanation of issue:

    Encryption Key" (Enc-SEND-Key) (reception is defined from the point
    of view of the authenticator).  Within [IEEE-802.11i] Octets 0-31
    of the MSK (Enc-RECV-Key) are known as the Pairwise Master Key
    (PMK).  In [IEEE-802.11i] the TKIP and AES CCMP ciphersuites derive
    their Transient Session Keys (TSKs) solely from the PMK, whereas
    the WEP ciphersuite as noted in [RFC3580], derives its TSKs from
    both halves of the MSK.

MN: See comment a few lines down.

Transient EAP Keys (TEKs)
    Session keys which are used to establish a protected channel
    between the EAP peer and server during the EAP authentication
    exchange. The TEKs are appropriate for use with the ciphersuite
    negotiated between EAP peer and server for use in protecting the
    EAP conversation.  The TEKs are stored locally by the EAP method
    and are not exported.  Note that the ciphersuite used to set up the
    protected channel between the EAP peer and server during EAP
    authentication is unrelated to the ciphersuite used to subsequently
    protect data sent between the EAP peer and authenticator.  An
    example TEK key hierarchy is described in Appendix A.

Transient Session Keys (TSKs)
    Session keys used to protect data exchanged in a session between
    the peer and authenticator after the EAP authentication has
    successfully completed.  TSKs are appropriate for the lower layer
    ciphersuite negotiated between the ports of the EAP peer and
    authenticator.  Examples of TSK derivation are provided in Appendix
    B.

MN: Here I have some trouble... This seems to mandate that protection
(on the network side) MUST be terminated in the authenticator.
In WiMAX, the authenticator is in the AGW, but the session protection
is in the BS.

I.e. it is not clear why both PMK and TSK should be shared between the
same two entities... Doesn't one shared key suufice?

  TSKs are permitted to be accessed only by the EAP peer and
  authenticator.  Since the TSKs can be determined from the transported

MN: does this imply that the authenticator always needs to be in the
"base station"? (since the base station will know TSKs)

[BA] The key framework document does not constrain the authenticator implementation. For
example, any of the CAPWAP architectures can be used.

The EAP conversation is between the peer and server. These are the only identities
that matter to the parties; the authenticator identity, if known at all, is only treated
as an opaque blob for the purposes of Channel bindings.

However, the SAP conversation is between the peer and the authenticator. It is possible for
multiple base stations and a "controller" (e.g. WLAN switch) to comprise a single authenticator.
Since an authenticator may have many ports, the authenticator ID is distinct from any port
identifier (e.g. BSSID).

Therefore from the point of view of the EAP peer, the "base station identity"
(e.g. Called-Station-ID) is irrelevant except as an opaque blob to be used in
Channel Bindings. All that matters is the authenticator identity, because that
defines the scope of the EAP keying material. Many base stations can share the
same authenticator identity.

Having said this, the scope of the Transient Session Keys is defined by the SAP. Typically
a SAP will bind the TSKs to a particular port, so that the session keys do *not* have
authenticator-wide scope -- they can only be used on a particular port (e.g. layer 2
endpoint address). But this is not a requirement; an authenticator can allow
TSKs to be reused on different ports assuming that it can guarantee TSK freshness
(such as by keeping centralized replay counter state). My understanding is that some
WLAN switches allow multiple ports to use the same TSK with IEEE 802.11i.

Perhaps it would be more clear to state:

Transient Session Keys (TSKs)
    Session keys used to protect data exchanged after EAP authentication
has successfully completed, using the ciphersuite negotiated
between the EAP peer and authenticator.

[BA] The proposed resolution is as follows:

In Section 1.2, change the definition of Transient Session Keys to the following:

Transient Session Keys (TSKs)
    Session keys used to protect data exchanged after EAP authentication
has successfully completed, using the ciphersuite negotiated
between the EAP peer and authenticator.

In Section 2.4.1, delete the following text:

"  AAA protocols such as RADIUS [RFC3579] and Diameter [RFC4072] provide
   a mechanism for the identification of AAA clients; since the EAP
   authenticator and AAA client are always co-resident, this mechanism
   can be applied to the identification of EAP authenticators.

   RADIUS requires that an Access-Request packet contain one or more of
   the NAS-Identifier, NAS-IP-Address and NAS-IPv6-Address attributes.
   Since a NAS may have more than one IP address associated with it, the
   NAS-Identifier attribute is RECOMMENDED for the unambiguous
   identification of the EAP authenticator.

   From the point of view of the AAA server, EAP keying material and
   parameters are transported to the NAS identified by the NAS-
   Identifier attribute.  Since the NAS/ EAP authenticator MUST NOT
   share EAP keying material or parameters with another party, if the
   EAP peer or AAA server detects use of EAP keying material and
   parameters outside the scope defined by the NAS-Identifier, the
   keying material MUST be considered compromised."

Insert a new Section prior to Section 2.4.2, including the following text:

2.4.2  Authenticator Architecture

"The EAP method conversation is between the EAP peer and server, as
identified by the Peer-ID and Server-ID. The authenticator identity,
if considered at all by the EAP method, is treated as
an opaque blob for the purposes of Channel bindings.
However, the Secure Association Protocol conversation is between the
peer and the authenticator, and therefore the authenticator and peer
identities are relevant to that exchange, and define the scope of use of the
EAP keying material passed down to the lower layer.

Since an authenticator may have many ports,
the authenticator identifier used within the Secure Association Protocol exchange
SHOULD be distinct from any port identifier (e.g. MAC address). Similarly, where a
peer may have multiple ports, and sharing of EAP keying material
and parameters between peer ports of the same link type is allowed, the peer
identifier used within the Secure Association Protocol exchange
SHOULD also be distinct from any port identifier.

While EAP Keying Material passed down to the lower layer is not
intrinsically bound to particular authenticator and peer ports,
Transient Session Keys MAY be bound to particular authenticator
and peer ports by the Secure Association Protocol. However,
a lower layer MAY also permit TSKs to be used on multiple peer
and/or authenticator ports, providing that TSK freshness is
guaranteed (such as by keeping replay counter state within
the authenticator).

This specification does not impose constraints on the architecture of the
EAP authenticator or peer. Any of the authenticator architectures described
in [RFC4118] can be used. For example, it is possible for multiple base stations
and a "controller" (e.g. WLAN switch) to comprise a single EAP authenticator.
In such a situation, the "base station identity" is irrelevant to the EAP
method conversation, except perhaps as an opaque blob to be used in
Channel Bindings. Many base stations can share the same authenticator identity.

AAA protocols such as RADIUS [RFC3579] and Diameter [RFC4072] provide
a mechanism for the identification of AAA clients; since the EAP
authenticator and AAA client are always co-resident, this mechanism
is applicable to the identification of EAP authenticators.

RADIUS [RFC2865] requires that an Access-Request packet contain one or more of
the NAS-Identifier, NAS-IP-Address and NAS-IPv6-Address attributes.
Since a NAS may have more than one IP address, the
NAS-Identifier attribute is RECOMMENDED for the unambiguous
identification of the EAP authenticator.

From the point of view of the AAA server, EAP keying material and
parameters are transported to the EAP authenticator identified
by the NAS-Identifier attribute. Since an EAP authenticator MUST NOT
share EAP keying material or parameters with another party, if the
EAP peer or AAA server detects use of EAP keying material and
parameters outside the scope defined by the NAS-Identifier, the
keying material MUST be considered compromised."

Add to the Informative References:

[RFC4118] Yang, L., Zerfos, P. and E. Sadot, "Architecture Taxonomy for
Control and Provisioning of Wireless Access Points (CAPWAP)",
RFC 4118, June 2005

Proposed Resolution: Accept

Issue 314: AAA-Key Confusion
Submitter name: Mats Naslund
Submitter email address: Mats.Naslund@ericsson.com
Date Submitted: November 30, 2005
Reference:
Document: Keying-08
Comment type: T
Priority: 1
Section: multiple
Rationale/Explanation of issue:

AAA-Key
    A key derived by the peer and EAP server, used by the peer and
    authenticator in the derivation of Transient Session Keys (TSKs).
    Where a backend authentication server is present, the AAA-Key is
    transported from the backend authentication server to the
    authenticator.  In existing usage, the AAA-Key is always derived
    from the MSK and so can be referred to using the MSK name.  AAA-Key
    = MSK(0,63).

MN: Isn't it the case that we MUST
have AAAk = MSK for mode independence?? Why does it only say
"in existing usage..."

The purpose of the PMK is a bit unclear to me...

  Within EAP, the primary function of the AAA protocol is to maintain
  the principle of Mode Independence, so that as far as the EAP peer is
  concerned, its conversation with the EAP authenticator, and all
  consequences of that conversation, are identical, regardless of the
  authenticator mode of operation.

MN: Doesn't this imply that AAAk MUST be equal to MSK?

  An additional step (phase 1b) is required in deployments which
  include a backend authentication server, in order to transport keying
  material from the backend authentication server to the authenticator.
  In order to obey the principle of Mode Independence, where a backend
  server is present AAA Key transport needs to provide the exported EAP
  keying material and/or derived keys required for derivation of the
  TSKs.  Since existing TSK derivation techniques depend solely on the
  MSK, in existing AAA implementations, this is the only keying
  material replicated in the AAA key transport phase 1b.

MN: again does this imply that MSK = AAAk? How else get mode independence?

[BA] Since existing EAP lower layers only make use of the MSK, the MSK must be transported from the server to
authenticator in order to provide for mode independence. Currently it is not necessary to transport other keys, since
existing lower layers don't use them. However, it does not necessarily follow that only the MSK can be
transported.

So yes, the MSK must be transported as a consequence of mode independence. And yes, AAA-Key = MSK, but this
is a tautology, not a consequence of any principle.

I think it is more correct to say that "all keys which are required by the lower layer need to be transported
from the server to the authenticator", and leave the term "AAA-Key" out of it.

Proposed Resolution:

In Section 1.2, change:

"AAA-Key
     A key derived by the peer and EAP server, used by the peer and
     authenticator in the derivation of Transient Session Keys (TSKs).
     Where a backend authentication server is present, the AAA-Key is
     transported from the backend authentication server to the
     authenticator.  In existing usage, the AAA-Key is always derived
     from the MSK and so can be referred to using the MSK name.  AAA-Key
     = MSK(0,63)."

To:

"AAA-Key
 The term "AAA-Key" is synonymous with MSK."

In Section 2.1, change:

"  An additional step (phase 1b) is required in deployments which
  include a backend authentication server, in order to transport keying
  material from the backend authentication server to the authenticator.
  In order to obey the principle of Mode Independence, where a backend
  server is present AAA Key transport needs to provide the exported EAP
  keying material and/or derived keys required for derivation of the
  TSKs.  Since existing TSK derivation techniques depend solely on the
  MSK, in existing AAA implementations, this is the only keying
  material replicated in the AAA key transport phase 1b. "

To:

" An additional step (phase 1b) is required in deployments which
  include a backend authentication server, in order to transport keying
  material from the backend authentication server to the authenticator.
  In order to obey the principle of Mode Independence, where a backend
  server is present, all keying material which us required by the lower layer needs to
  be transported from the EAP server to the authenticator.
  Since existing TSK derivation techniques depend solely on the
  MSK, in existing implementations, this is the only keying
  material replicated in the AAA key transport phase 1b. "

Proposed Resolution: Accept

Issue 315: Ciphersuites and Key Lengths
Submitter name: Mats Naslund
Submitter email address: http://by106fd.bay106.hotmail.msn.com/cgi-bin/compose?curmbox=00000000-0000-0000-0000-000000000001&a=e5cf394c12ca3d454cb958bf15cbafa33e1fc16d4eed72a137fecb3cf18e47f2&mailto=1&to=Mats.Naslund@ericsson.com&msg=1DB00FFA-A710-4EB4-BBC9-CBFEC426805C&start=0&len=4213&src=&type=x
Date Submitted: November 30, 2005
Reference:
Document: Keying-08
Comment type: T
Priority: 1
Section: 1.4.4
Rationale/Explanation of issue:

  Ciphersuite Independence is a consequence of the principles of Mode
  Independence and Media Independence.

MN: I don't agree. Suppose that the MSK had been only 80 bits rather
than 64 bytes. We could then not have satsified security requirements
on 256-bit key cipher suites. Now, the MSK's 64 bytes are so huge
that it is sufficient for all "practical" cipher suites. But I still
claim it does not follow as a consequence from Mode and Media independence
alone. There is an implict assumption that enough "key entropy"
is available.

  Since the ciphersuites used to protect data depend on the lower
  layer, requiring EAP methods have knowledge of lower layer
  ciphersuites would compromise the principle of Media Independence.

MN: yes, to avoid needing to know key requirements, the MSK
has been chosen to be "large enough for all practical use"

  Since ciphersuite negotiation occurs in the lower layer, there is no
  need for ciphersuite negotiation within EAP, and EAP methods generate
  keying material that is ciphersuite-independent.

MN:...thanks to the fact that the MSK is so large. 

[BA] In RFC 3748, both the MSK and EMSK are required to be at least 64+ Octets
in length. So all exported keying material is large, not just the MSK.

Since the lower layer ciphersuites vary between media, if the EAP keying material
were not large enough (or have enough entropy) to handle any ciphersuite, then EAP keying
material would not be usable on all media, and media independence would be compromised.

So I guess you can say that Ciphersuite independence is a requirement for Media
Independence, and to obtain ciphersuite independence, exported EAP keying material
needs to be large (with sufficient key entropy).

I am not sure what mode independence has to do with this, though. That seems orthogonal.

[BA] The proposed resolution is as follows:

Within Section 1.4.4 change:

"  Ciphersuite Independence is a consequence of the principles of Mode
   Independence and Media Independence."
To:
"Ciphersuite Independence is a requirement for Media Independence. Since lower
layer ciphersuites vary between media, media independence requires that
EAP keying material needs to be large enough (with sufficient entropy) to
handle any ciphersuite."

Proposed Resolution: Accept

Issue 316: Counter Length
Submitter name: Mats Naslund
Submitter email address: Mats.Naslund@ericsson.com
Reference:
Document: Keying-08
Comment type: T
Priority: 1
Section: 5.8
Rationale/Explanation of issue:

Lower Layer
    The lower layer Secure Association Protocol MUST generate a fresh
    session key for each session, even if the keying material and
    parameters provided by EAP methods are cached, or the peer or
    authenticator lacks a high entropy random number generator.  A
    RECOMMENDED method is for the peer and authenticator to each
    provide a nonce or counter of at least 128 bits, used in session
    key derivation.

MN: If it is a counter, I don't see why it needs to be 128 bits...
Only a few bits will change anyway each time a new key is generated.

[BA] For a random nonce, large size makes sense so as to avoid replay.

For a counter, it need only be as large as the maximum number of TSK rekeys to be supported.

For example, if only 256 rekeys were to be supported, the counter could only be 8 bits, right?

The point is that this is a rekey counter, not a packet replay counter.

[BA] The proposed resolution is as follows:

In Section 5.8, change:

"Lower Layer
    The lower layer Secure Association Protocol MUST generate a fresh
    session key for each session, even if the keying material and
    parameters provided by EAP methods are cached, or the peer or
    authenticator lacks a high entropy random number generator.  A
    RECOMMENDED method is for the peer and authenticator to each
    provide a nonce or counter of at least 128 bits, used in session
    key derivation. "

To:

"Lower Layer
The lower layer Secure Association Protocol MUST generate a fresh
session key for each session, even if the keying material and
parameters provided by EAP methods are cached, or the peer or
authenticator lack a high entropy random number generator. A
RECOMMENDED method is for the peer and authenticator to each
provide a nonce or counter used in session key derivation.
If a nonce is used, it is RECOMMENDED that it be at least 128 bits."

Proposed Resolution: Accept

Issue 317: Key Separation
Submitter name: Mats Naslund
Submitter email address: Mats.Naslund@ericsson.com
Date Submitted: November 30, 2005
Reference:
Document: Keying-08
Comment type: T
Priority: 1
Section: multiple
Rationale/Explanation of issue:

  In order to preserve the security of keys derived within EAP methods,
  lower layers other than AAA MUST NOT export keys passed down by EAP
  methods.  This implies that EAP keying material or parameters passed
  down to a lower layer are for the exclusive use of that lower layer
  and MUST NOT be used within another lower layer.  This prevents
  compromise of one lower layer from compromising other applications
  using EAP keying parameters.

MN: I guess this is "key separation"... But if this is a MUST requirement,
why not here standardize a way to do it? I.e.

   lower_layer_key = f(MSK, layer_ID).

  In order to provide method independence, key
  management of exported or derived keys SHOULD NOT be provided within
  EAP methods.

MN: does this exclude that EAP can provide key separation?

  Since neither EAP nor EAP methods provide key management support, it
  is RECOMMENDED that key management facilities be provided within the
  Secure Association Protocol.  This includes:

MN: But if the MSK is always sent to the SA protocol, it really does
not help if the SA protocol does e.g. key separation. Compromise
of the "entity" hosting the SA protocol would still compromise the
MSK. I guess I am asking: is there a "middle layer" missing, between
EAP and the SA procotol that takes care of key separation?

[a]  Entity Naming.  A basic feature of a Secure Association Protocol is
    the explicit naming of the parties engaged in the exchange.
    Without explicit identification, the parties engaged in the
    exchange are not identified and the scope of the EAP keying
    parameters negotiated during the EAP exchange is undefined.  As
    shown in Figure 5, both the peer and authenticator may have more
    than one physical or virtual port, and as a result SHOULD identify
    themselves in a manner that is independent of their attached ports.

(snip)

[j] Bi-directional operation While some ciphersuites only require a
    single set of transient session keys to protect traffic in both
    directions, other ciphersuites require a unique set of transient
    session keys in each direction. The phase 2 Secure Association
    Protocol SHOULD provide for the derivation of unicast and multicast
    keys in each direction, so as not to require two separate phase 2
    exchanges in order to create a bi-directional phase 2 security
    association.

MN: This part clarifies a lot. So, it seems there is a "layer" missing...
It is said above that it is RECOMMENDED that the Secure Association
Protocol (SAP) supports all of this. But what about interaction between
different SAPs? I.e. should there be a layer below EAP, but above SAP
that takes care of inter-access key separation? Or, where is this done?
Or is cross-SAP usage prohibited?

[BA] The document is describing what is done today, which is that the MSK is passed down
to the lower layer.

One of the questions we have been discussing is whether the EAP layer can provide for key
separation. One problem is that the EAP layer does not have a mechanism by which it can
negotiate the cryptographic algorithms with which to compute the "separate keys".

EAP methods can negotiate ciphersuites, but this only applies to the EAP conversation.
There is no way for an EAP method to negotiate the f() used to compute the lower layer
keys. So if the EAP layer specifies a KDF using a fixed algorithm (e.g. SHA-1) and
that algorithm is compromised, there is no way to fix it. This seems short-sighted.

Lower layers have a lot more flexibility -- and therefore if "crypto-agility" is
required, then negotiation of f() needs to occur below EAP. Today there is no
"middle layer" between EAP and the lower layer, so the only way this can be
handled is in the lower layer.

In terms of operation, there is no interaction between the SAPs. The EAP keying
material is used only by the lower layer over which the EAP conversation
occurred.

[Mats]

Yes. I guess my basic comment boils down to: how should EAP key mgmt
be done "tomorrow"? I.e. how do we provide things such as key
separation, seamless inter access handover, etc. From what I now
understand, it seems that EAP itself may not be a good place to
specify this sort of more "advanced" things.

[BA]
That is a difficult question. Here are some (semi-random) thoughts:


1. With the increasing emphasis on "crypto-agility" we cannot utilize hard-coded algorithms; every cryptographic algorithm has to be negotiable. Since within EAP methods ciphersuite negotiation is restricted to what is necessary for the EAP method itself (not the data or subsequent lower layer key derivation), EAP itself cannot provide the required crypto-agility.

However lower layers can provide the required agility. The implication seems to be that the algorithm used to generate AMSKs from the EMSK needs to be negotiated in the lower layer, and therefore the AMSK generation algorithm cannot be hard coded in the EAP layer. If AMSK generation occurs in the EAP layer, this creates the prospect of continually having to upgrade the EAP implementation every time a new lower layer defines a new KDF for AMSK generation. This would seem to violate the principle of media independence.

This problem does not exist if the EMSK is passed down to the lower layer, which can then generate AMSKs itself. If a new lower layer defines a different algorithm for AMSK generation, then only that lower layer needs to change; the EAP implementation does not need to be upgraded.

2. IEEE 802.11r has developed a "fast BSS transition" scheme which depends only on the MSK. The scheme does appear to be compatible with much of the "AAA Key Management" document, yet it does not require the use of the EMSK. Here is how it works.

Something called the "PMK-R1" is derived from the MSK. The PMK-R1s are cryptographically separate from each other, and a different PMK-R1 is derived for each port. Note that within IEEE 802.11r only a single authenticator (known as the "Mobility Domain Controller") obtains the MSK (PMK-R0), which is never shared with other authenticators. At various points there has been discussion of deleting the MSK (PMK-R0) once the PMK-R1s are derived from it, although that is not in the current document.

From what I can tell, IEEE 802.11r does provide many of the required
security properties, including key lifetime negotiation, authenticator identification, TSK freshness, ciphersuite negotiation, etc. It is true that compromise of the MSK will compromise the entire "mobility domain". However, it is possible to configure the mobility domain so that it corresponds to a single authenticator (e.g. a single WLAN switch).

Even where the "mobility domain" corresponds to multiple authenticators, compromise of any authenticator that is not also the Mobility Domain Controller does not lead to cascading vulnerabilities. In other words, obtaining one PMK-R1 does not help you obtain other PMK-R1s or the MSK. If the MSK were to be deleted after PMK-R1 calculation, compromise of a Mobility Domain Controller after PMK-R1 distribution would not lead to compromise of other authenticators. Only possession of the MSK would permit that.

There is still more work to be done with IEEE 802.11r (Version 1.0 only issued recently), but it is well worth reading. Any IETF participant can participate in the ballot process as a non-voter. Here is a pointer to the document (ask for the archive password if you don't already have it):
http://grouper.ieee.org/groups/802/11/private/Draft_Standards/11r/P802.11r-D1.0.pdf

There are also some basic issues with use of EAP to support application layer security.
RFC 3748, Section 1.3 states:

EAP was designed for use in network access authentication, where IP
layer connectivity may not be available. Use of EAP for other
purposes, such as bulk data transport, is NOT RECOMMENDED.

Given that use of EAP or application-layer authentication is outside the applicability
of EAP, it would not be appropriate to modify the EAP key hierarchy to be modified to
enable this.

[Bernard Aboba]

Here are the proposed changes:

Change "Method-ID" to "Session-ID" in Figure 1.

Remove figures 3 and 4.

Rewrite Section 2.2 as follows:

"2.2 Layering

On completion of EAP authentication, keying material and
material and parameters exported by the EAP method are provided
to the lower layer and AAA layer (if present). These include the
Master Session Key (MSK), Extended Master Session Key (EMSK),
Peer-ID, Server-ID, Session-ID and Key-Lifetime. The Initialization
Vector (IV) is deprecated.

In order to preserve the security of keys derived within EAP methods,
lower layers MUST NOT export keys passed down by EAP methods. This
implies that EAP keying material or parameters passed down to a lower
layer are for the exclusive use of that lower layer and MUST NOT be
used within another lower layer. This prevents compromise of one
lower layer from compromising other applications using EAP keying
parameters.

EAP keying material and parameters provided to a lower layer MUST NOT
be transported to another entity. For example, EAP keying material
and parameters passed down to the EAP peer lower layer MUST NOT leave
the peer; EAP keying material and parameters passed down or
transported to the EAP authenticator lower layer MUST NOT leave the
authenticator.

On the EAP server, keying material requested by and passed down to
the AAA layer may be replicated to the AAA layer on the
authenticator. On the authenticator, the AAA layer provides the
replicated keying material to the lower layer over which the EAP
authentication conversation took place. This enables "mode
independence" to be maintained.

The EMSK MUST NOT be provided to an entity outside the EAP server or
peer, nor is it permitted to pass any quantity to an entity outside
the EAP server or peer from which the EMSK could be computed without
breaking some cryptographic assumption, such as inverting a one-way
function. The EMSK MUST NOT be transported by the AAA layer.
As noted in [RFC3748] Section 7.10:

The EMSK is reserved for future use and MUST remain on the EAP
peer and EAP server where it is derived; it MUST NOT be
transported to, or shared with, additional parties, or used to
derive any other keys.

The EAP layer as well as the peer and authenticator layers MUST NOT
modify or cache keying material or parameters (including Channel
Bindings) passing in either direction between the EAP method layer
and the lower layer or AAA layer."

Proposed Resolution: Accept

Issue 318: Transient Session Keys
Submitter name: Bernard Aboba
Submitter email address: aboba@internaut.com
Date Submitted: November 30, 2005
Reference:
Document: Keying-08
Comment type: T
Priority: S
Section: 2.3
Rationale/Explanation of issue:

There is no section of the document that talks directly about
generation of transient session keys. Here is a suggested
rewrite of Section 2.3:

2.3 Transient Session Keys

Existing EAP lower layers handle the caching of EAP keying
material and the generation of transient session keys in
different ways:

PPP PPP, defined in [RFC1661] does not support caching of EAP keying
material or parameters. PPP ciphersuites derive their TSKs
directly from the MSK, as described in [RFC2716]. This method
is NOT RECOMMENDED, since were PPP to support caching, this
could result in stale TSKs. As a result, once the PPP session
is terminated, EAP keying material and parameters MUST be discarded.
Since caching of EAP keying material is not permitted, within PPP
there is no way to handle TSK rekey without EAP re-authentication.
Perfect Forward Secrecy (PFS) is only possible within PPP if
the negotiated EAP method supports this.

IKEv2
IKEv2, defined in [IKEv2] only uses EAP keying material for
authentication purposes and not key derivation. As a
result, the keying material derived within IKEv2 is
independent of the EAP keying material and rekey of IPsec
SAs can be handled without requiring EAP re-authentiation.
Since generation of keying material is independent of EAP,
within IKEv2 it is possible to negotiate PFS, regardless of
the EAP method that is used. IKEv2 does not cache EAP keying
material or parameters, nor does it utilize the EAP Key-Lifetime
parameter to determine the lifetime of IPsec SAs. As result,
once IKEv2 authentication completes it is assumed that
EAP keying material and parameters are discarded.

IEEE 802.11i
IEEE 802.11i enables caching of the MSK, but not the EMSK, IV,
Peer-ID, Server-ID, or Session-ID. More details are
about the structure of the cache are available in [IEEE-802.11i].
In IEEE 802.11i, TSKs are derived from the MSK using the
4-way handshake, which includes a nonce exchange. This
guarantees TSK freshness even if the MSK is reused. The
4-way handshake also enables TSK rekey without EAP
re-authentication. PFS is only possible within IEEE 802.11i
if the negotiated EAP method supports this.

IEEE 802.1X-2004
IEEE 802.1X-2004, defined in [IEEE-802.1X-2004] does not support
caching of EAP keying material or parameters. Therefore once EAP
authentication completes, it is assumed that EAP keying material
and parameters are discarded.

IEEE 802.16e
IEEE 802.16e, defined in [IEEE-802.16e] supports caching of the
MSK, but not the EMSK, IV, Peer-ID, Server-ID or Session-ID.
In IEEE 802.16e, TSKs are generated by the authenticator without
any contribution by the peer. The TSKs are encrypted, authenticated
and integrity protected using the MSK. As a result, TSK rekey
is possible without EAP re-authentication. PFS is not possible
even if the negotiated EAP method supports it.

AAA  Existing AAA implementations supporting RADIUS/EAP [RFC3579] or Diameter
EAP [RFC4072] do not support caching of EAP keying material or
parameters.  In existing AAA client, proxy and server implementations, exported EAP
keying material (MSK, EMSK and IV) as well as parameters and
derived keys are not cached and MUST be presumed lost after the AAA
exchange completes.

In order to avoid key reuse, the AAA layer MUST delete transported
keys once they are sent.  The AAA layer MUST NOT retain keys that
it has previously sent.  For example, a AAA
layer that has transported the MSK MUST delete it, and keys MUST
NOT be derived from the MSK from that point forward."

Proposed Resolution: Accept

Issue 319: Requirement on transport of EAP Keying Material
Submitter name: Joe Salowey
Submitter email address: jsalowey@cisco.com
Date Submitted: December 1, 2005
Reference:
Document: Keying-08
Comment type: T
Priority: 1
Section: 2.2
Rationale/Explanation of issue:

The document states

"In order to prevent the compromise of
   transported EAP keying material and parameters, the AAA client and
   EAP authenticator MUST be co-resident."

It could be possible for the EAP authenticator to use another secure
protocol other than a AAA protocol to transport EAP key material. 

Requested change:

"In order to prevent the compromise of
transported EAP keying material and parameters they MUST be securely
transmitted from the entity that hosts the EAP server to the entity that
hosts the EAP authenticator and makes use of the key material."

[BA]

I think the issue here is similar to the one brought up in Issue 313.  An EAP authenticator may be constructed in a variety of ways.  Whether the authenticator has multiple ports or a single port,  involves multiple CPUs or a single CPU, or even is constructed using lightweight APs and a WLAN switch is not relevant to EAP.

For EAP purposes, an Authenticator is an entity that identifies itself with a single authenticator identity, both within the lower layer as well as in AAA.  Neither the EAP peer nor the AAA server care about the details of how the authenticator is constructed, and neither should this document.

So when the document says that the "Authenticator and AAA cilent are co-resident" it means that both the Authenticator and AAA client share the same authenticator identity.  This is required, because if it were not true then Channel Bindings would fail to verify.  That's probably all we can or should say on this subject.

[Joe Salowey]

> For EAP purposes, an Authenticator is an entity that 
> identifies itself with a single authenticator identity, both 
> within the lower layer as well as in AAA.  Neither the EAP 
> peer nor the AAA server care about the details of how the 
> authenticator is constructed, and neither should this document.
> 

This makes sense.  If we define an authenticator to span multiple
physical entities then I am OK with the current text. Perhaps we should
include this in the definition or point to sections of the document
where this is described.  I'm thinking maybe we should pull the
description of the authenticator variations out of 2.4 into its own
section on EAP authenticator.

> So when the document says that the "Authenticator and AAA 
> cilent are co-resident" it means that both the Authenticator 
> and AAA client share the same authenticator identity.  This 
> is required, because if it were not true then Channel 
> Bindings would fail to verify. 
I'm not sure that this is true. I'm not sure that the
authenticator identity is necessarily the only choice for identifier.
The lower layer must define what the identifier is, define attributes in
AAA protocols need to carry the identifier and how to do comparisons of
the identifier.  However this is a separate issue related to section
2.4.  
[BA] The Proposed Resolution is as follows:
In  Section 2.2, delete:
"In order to prevent the compromise of
transported EAP keying material and parameters, the AAA client and
EAP authenticator MUST be co-resident."

Proposed Resolution: Accept

Issue 320: Use of term lower layer
Submitter name: Joe Salowey
Submitter email address: jsalowey@cisco.com
Date Submitted: December 1, 2005
Reference:
Document: Keying-08
Comment type: E
Priority: 1
Section: 2
Rationale/Explanation of issue:

The term lower layer is used inconsistently in the document.

Lower layer should refer to the protocol between the EAP Peer and the
EAP Authenticator.  It is between these entities that the security
association protocol is typically run.  The MSK is transported to the
lower layer.

AAA is not an EAP lower layer except in the special case where the AAA
client and server are acting as the EAP Peer and EAP Authenticator for
some reason (an example of this could was in EUSM).  Entities other than
the lower layer may obtain keys derived from the EMSK. 

Requested change:

Section 2.1
-----------
change

"Of these phases, Phase 0, 1b and Phase 2 are handled by a lower layer."

To

"Of these phases, Phase 0, 1b and Phase 2 are handled external to EAP.
Phases 0 and 2 are handled by the lower layer protocol and phase 1b is
typically handled by a AAA protocol."

Section 2.2
------------
(remove references to IV)
---
Change

"The EMSK MUST NOT be provided to the lower layer, nor is it permitted
to pass any quantity to the lower layer from which the EMSK could be
computed without breaking some cryptographic assumption, such as
inverting a one-way function."

To

"The EMSK MUST NOT be provided to an entity outside the EAP server or
peer,  nor is it permitted to pass any quantity to an entity outside the EAP
server or peer from which the EMSK could be computed without breaking some cryptographic assumption, such as
inverting a one-way function."
---
Change

"In order to preserve the security of keys derived within EAP methods,
 lower layers other than AAA MUST NOT export keys passed down by EAP
 methods. "

To

"In order to preserve the security of keys derived within EAP methods,
 lower layers MUST NOT export keys passed down by EAP
 methods."
---
Change

"EAP keying material and parameters provided to a lower layer other
than AAA MUST NOT be transported to another entity."

To

"EAP keying material and parameters provided to a lower layer MUST NOT
be transported to another entity."
---
Change

"The exception to the "no sharing" rule is the AAA layer.  On EAP
 server, keying material requested by and passed down to the AAA layer
 may be replicated to the AAA layer on the authenticator.   On the
 authenticator, the AAA layer may provide the replicated keying
 material to the lower layer over which the EAP authentication
 conversation took place.  This enables "mode independence" to be
 maintained. "

To

"The AAA layer may transport keys that are exported from the EAP server.
On the EAP server, keying material requested by and passed down to the AAA layer
may be replicated to the AAA layer on the authenticator.   On the
authenticator, the AAA layer may provide the replicated keying
material to the lower layer over which the EAP authentication
conversation took place.  This enables "mode independence" to be maintained."

-----------
Section 2.3
-----------

Change
"The caching behavior of existing EAP lower layers is as follows:"

To

"The caching behavior of existing EAP lower layers and AAA layers is as
follows:"

[BA] The proposed resolution is to accept the above proposed changes, with the following modifications:

Change

"The exception to the "no sharing" rule is the AAA layer.  On EAP
 server, keying material requested by and passed down to the AAA layer
 may be replicated to the AAA layer on the authenticator.   On the
 authenticator, the AAA layer may provide the replicated keying
 material to the lower layer over which the EAP authentication
 conversation took place.  This enables "mode independence" to be
 maintained. "

To

"On the EAP server, keying material requested by and passed down to the AAA layer
may be replicated to the AAA layer on the authenticator.   On the
authenticator, the AAA layer may provide the replicated keying
material to the lower layer over which the EAP authentication
conversation took place.  This enables "mode independence" to be maintained.

However, the EMSK MUST NOT be transported by the AAA layer."

Change:

"Existing EAP lower layers handle the caching of EAP keying
material and the generation of transient session keys in
different ways:"

To:

"Existing EAP lower layers and AAA handle the caching of EAP keying
material and the generation of transient session keys in
different ways:"

Change "Lower Layer" to "Lower Layer or AAA" in Figure 3.

Change the first two paragraphs of Section 2.2 to:

"As illustrated in Figure 3, on completion of EAP authentication, EAP
methods export the Master Session Key (MSK), Extended Master Session
Key (EMSK), Peer-ID, Server-ID, Session-ID and Key-Lifetime to the
EAP peer or authenticator layers.  The Initialization Vector (IV) is
deprecated.

The EAP peer and authenticator layers MUST NOT modify or cache keying
material or parameters (including Channel Bindings) passing in either
direction between the EAP method layer and the EAP layer. The EAP
layer also MUST NOT cache keying material or parameters (including
Channel Bindings) passed to it, whether by the EAP peer/authenticator
layer, the lower layer or the AAA layer."

Proposed Resolution: Accept

Issue 321: IV
Submitter name: Joe Salowey
Submitter email address: jsalowey@cisco.com
Date Submitted: December 1, 2005
Reference:
Document: Keying-08
Comment type: E
Priority: 1
Section: 1
Rationale/Explanation of issue:

Section 1.3

--
Since IV is being deprecated I think we should reference it a little as
possible, suggestion is to remove references to IV in this section.  It
should be removed in figure 1.

Section 1.3.1

Should remove reference to IV

[BA] The Proposed Resolution is as follows:

Section 1.3:

In Figure 1, add (Deprecated) to the IV Derivation box and
(Optional) to the IV arrow.

Section 1.3.1

Change:

"MSK, EMSK and IV Names"

To:

"MSK and EMSK names"

Proposed Resolution: Accept

Issue 322: Authenticator Architecture
Submitter name: Joe Salowey
Submitter email address: jsalowey@cisco.com
Date Submitted: December 1, 2005
Reference:
Document: Keying-08
Comment type: T
Priority: 1
Section: 2.4
Rationale/Explanation of issue:

There is a lot of discussion about authenticator architecture which
probably should be pulled into a separate section on authenticator
architecture.
 
Requested change:

Move the description of authenticator architecture to its own section

[Bernard Aboba] I have reorganized Section 2.4 as follows:

How does this look?

"2.4. Authenticator Architecture

This specification does not impose constraints on the architecture of
the EAP authenticator or peer. Any of the authenticator
architectures described in [RFC4118] can be used. For example, it is
possible for multiple base stations and a "controller" (e.g. WLAN
switch) to comprise a single EAP authenticator. In such a situation,
the "base station identity" is irrelevant to the EAP method
conversation, except perhaps as an opaque blob to be used in Channel
Bindings. Many base stations can share the same authenticator
identity. As a result, lower layers need to identify EAP peers and
authenticators unambiguously, without incorporating implicit
assumptions about peer and authenticator architectures.

It should be understood that an EAP authenticator or peer:

[a] may contain one or more physical or logical ports;
[b] may advertise itself as one or more "virtual"
authenticators or peers;
[c] may utilize multiple CPUs;
[d] may support clustering services for load balancing or failover.


Both the EAP peer and authenticator may have more than one physical
or logical port. A peer may simultaneously access the network via
multiple authenticators, or via multiple physical or logical ports on
a given authenticator. Similarly, an authenticator may offer network
access to multiple peers, each via a separate physical or logical
port. When a single physical authenticator advertises itself as
multiple "virtual authenticators", it is possible for a single
physical port to belong to multiple "virtual authenticators". The
situation is illustrated in Figure 5.

[Figure is unchanged]

Figure 5: Relationship between EAP peer, authenticator and server


2.4.1. Authenticator Identification

The EAP method conversation is between the EAP peer and server, as
identified by the Peer-ID and Server-ID. The authenticator identity,
if considered at all by the EAP method, is treated as an opaque blob
for the purposes of Channel bindings. However, the Secure
Association Protocol conversation is between the peer and the
authenticator, and therefore the authenticator and peer identities
are relevant to that exchange, and define the scope of use of the EAP
keying material passed down to the lower layer.

Since an authenticator may have multiple ports, the authenticator
identifiers used within the Secure Association Protocol exchange
SHOULD be distinct from any port identifier (e.g. MAC address).
Similarly, where a peer may have multiple ports, and sharing of EAP
keying material and parameters between peer ports of the same link
type is allowed, the peer identifier used within the Secure
Association Protocol exchange SHOULD also be distinct from any port
identifier.

Where the peer and authenticator identify themselves within the lower
layer using a port identifier such as a link layer address, this
creates a number of problems:

[1] It may not be obvious to the peer which authenticator ports are
associated with which authenticators.

[2] It may not be obvious to the authenticator which peer ports are
associated with which peers.

[3] It may not be obvious to the peer which "virtual authenticator" it
is communicating with.

[4] It may not be obvious to the authenticator which "virtual peer" it
is communicating with.

AAA protocols such as RADIUS [RFC3579] and Diameter [RFC4072]
provide a mechanism for the identification of AAA clients; since
the EAP authenticator and AAA client are always co-resident, this
mechanism is applicable to the identification of EAP
authenticators.

RADIUS [RFC2865] requires that an Access-Request packet contain one
or more of the NAS-Identifier, NAS-IP-Address and NAS-IPv6-Address
attributes. Since a NAS may have more than one IP address, the
NAS-Identifier attribute is RECOMMENDED for the unambiguous
identification of the EAP authenticator.

From the point of view of the AAA server, EAP keying material and
parameters are transported to the EAP authenticator identified by
the NAS-Identifier attribute. Since an EAP authenticator MUST NOT
share EAP keying material or parameters with another party, if the
EAP peer or AAA server detects use of EAP keying material and
parameters outside the scope defined by the NAS-Identifier, the
keying material MUST be considered compromised."

Proposed Resolution: Accept

Issue 323: AAA Key Cache
Submitter name: Yoshihiro Ohba
Submitter email address: mailto:yohba@tari.toshiba.com
Date Submitted: December 6, 2005
Reference:
Document: Keying-08
Comment type: T
Priority: 1
Section: 2.3
Rationale/Explanation of issue:

The following text in section 2.3 of eap-keying draft talks about not
caching the keys at AAA layer, but mostly in terms of AAA servers.  I
think the text should be revised so that any AAA layer entity
including AAA client and AAA proxy does not cache the keys.  (Note: I
explicitly mention that AAA proxy does not cache the keys as well.
This might be related to the ongoing hokey discussion where KDC in the
visiting domain is going to be introduced.  Having said that, I think
that the KDC, which is expected to cache the keys, should be defined
outside the AAA layer.)

"AAA 

Existing AAA servers supporting RADIUS/EAP [RFC3579] or Diameter
EAP [RFC4072] do not support caching of EAP keying material or
parameters.  In existing AAA server implementations, exported EAP
keying material (MSK, EMSK and IV) as well as parameters and
derived keys are not cached and MUST be presumed lost after the AAA
exchange completes.

In order to avoid key reuse, the AAA layer MUST delete transported
keys once they are sent.  The AAA layer MUST NOT retain keys that
it has previously sent to the authenticator.  For example, a AAA
layer that has transported the MSK MUST delete it, and keys MUST
NOT be derived from the MSK from that point forward."

Taking a close look at EAP pass-through authenticator, the EAP
authenticator *layer* and the EAP *layer* on the pass-through
authenticator do not cache the keys as well, according to the the
following text in section 2.2 of eap-keying draft:

"The EAP peer and authenticator layers MUST NOT modify or cache keying
material or parameters (including Channel Bindings) passing in either
direction between the EAP method layer and the EAP layer.  The EAP
layer also MUST NOT cache keying material or parameters (including
Channel Bindings) passed to it by the EAP peer/authenticator layer or the lower layer."

[BA] The proposed resolution is as follows:

Change the text in Section 2.3 to the following:

"AAA 

Existing AAA client, proxy and server implementations supporting RADIUS/EAP [RFC3579] or Diameter
EAP [RFC4072] do not support caching of EAP keying material or
parameters.  In existing AAA client, proxy and server implementations, exported EAP
keying material (MSK, EMSK and IV) as well as parameters and
derived keys are not cached and MUST be presumed lost after the AAA
exchange completes.

In order to avoid key reuse, the AAA layer MUST delete transported
keys once they are sent.  The AAA layer MUST NOT retain keys that
it has previously sent.  For example, a AAA
layer that has transported the MSK MUST delete it, and keys MUST
NOT be derived from the MSK from that point forward."

Proposed Resolution: Accept

Issue 324: Typos
Submitter name: Maryline Maknavicius
Submitter email address: Maryline.Maknavicius@int-evry.fr
Date first submitted: 11/09/2005
Reference: http://lists.frascone.com/pipermail/eap/msg03755.html
Document: KEYING-08
Comment type: T
Priority: S
Section: Various
Rationale/Explanation of issue
 
Typos:
- section 1.3:
s/known the Key-Lifetime/known as the Key-Lifetime
- section  2.3:
s/As  result,/As a result
s/More details are/More details
- section  2.4.1:
s/packet contain/packet contains
s/AAA server and client/authenticator/AAA server and uthenticator's AAA client
- section  3.1:
s/have been and authorized/have been authorized
- section 3.4:
s/the Secure Association Protocol include/the Secure Association Protocol
includes
- section 5:
s/achieves it security/achieves its security

Proposed Resolution: Accept

Issue 325: Channel Bindings
Submitter name: Joe Salowey
Submitter email address: jsalowey@cisco.com
Date Submitted: December 1, 2005
Reference: 
Document: Keying-08
Comment type: T
Priority: 1 
Section: 1.3, 1.4
Rationale/Explanation of issue: 
Section 1.3
 
There are two styles of channel bindings that may be supported by EAP
methods. The text in this section describes exportable channel bindings.
There is also the approach where the bindings are non exportable.  In
this case the method does a binary comparison of the channel bindings or
hash of the channel bindings and fails if the result does not match.  I
can see the possibility of a method supporting both styles.  Should we
include both?
 
Section 1.4
Exportable channel binding are references in this section, non-exportable ones are not.  If we make changes to this affect above then we should change it here as well.
 
[Bernard Aboba] Here is the proposed resolution:
 
In Section 3.1 change: 

"Channel Bindings 

  Channel Bindings include lower layer parameters that are verified for 
  consistency between the EAP peer and server.  In order to avoid 
  introducing media dependencies, EAP methods that transport Channel 
  Binding data MUST treat this data as opaque octets.  Typically the 
  EAP method imports Channel Bindings from the lower layer on the peer, 
  and transmits them securely to the EAP server, which exports them to 
  the lower layer.  However, transport may occur from EAP server to 
  peer, or may be bi-directional.  On the side of the exchange (peer or 
  server) where Channel Bindings are verified, the lower layer passes 
  the result of the verification (TRUE or FALSE) up to the EAP method."
To:
 
"Channel Bindings
 
Channel Bindings include lower layer parameters that
are verified for consistency between the EAP peer and server.
In order to avoid introducing media dependencies, EAP
methods that transport Channel Binding data MUST treat this
data as opaque octets.
Typically the EAP method imports Channel Bindings from the
lower layer on the peer, and transmits them securely to the
EAP server, which exports them to the lower layer or AAA layer. However,
transport may occur from EAP server to peer, or may be
bi-directional. On the side of the exchange (peer or server)
where Channel Bindings are verified, the lower layer or AAA layer passes
the result of the verification (TRUE or FALSE) up to the
EAP method.
While the verification can be done either by the peer 
or the server, typically only the server has the knowledge to 
determine the correctness of the values, as opposed to merely 
verifying their equality."

Proposed Resolution: Accept

Issue 326: Identifiers
Submitter name: Joe Salowey
Submitter email address: jsalowey@cisco.com
Date Submitted: December 1, 2005
Reference: 
Document: Keying-08
Comment type: T
Priority: 1 
Section: 1
Rationale/Explanation of issue: 
 
"  EAP methods also MAY export method-specific peer and server
   identifiers (peer-ID and server-ID), a method-specific EAP
   conversation identifier known as the Method-ID, and the lifetime of
   the exported keys, known the Key-Lifetime.   EAP methods MAY also
   support the import and export of Channel Bindings.  New EAP method
   specifications MUST define the Peer-ID, Server-ID and Method-ID. The
   combination of the Peer-ID and Server-ID uniquely specifies the
   endpoints of the EAP method exchange."
It seems that additional data associated with the identity should be
exported to satisfy section 1.3.  Suggestion is to add this and call
them identity attributes.
In this paragraph it states that the "Peer-ID and Server-ID uniquely specifies the  endpoints of the EAP method exchange", however further down it states that these quantities may be null.  This is contradictory.  Suggested modification to above text:
"The combination of the Peer-ID and Server-ID may uniquely specify the
endpoints of the EAP method exchange if the method supports unique IDs."
 
[Bernard Aboba]
How about the following:

"The combination of the Peer-ID and Server-ID may uniquely specify the
endpoints of the EAP method exchange when they are provided."

Proposed Resolution: Accept

Issue 327: PANA and EAP Keying Framework
Submitter name: Yoshihro Ohba
Submitter email address: yohba@tari.toshiba.com
Date Submitted: January 9, 2006
Reference: http://lists.frascone.com/pipermail/eap/msg03860.html
Document: Keying-08
Comment type: T
Priority: 1 
Section: 2.3
Rationale/Explanation of issue: 
It would be useful to add some
description on how PANA handle the caching of EAP keying material and
the generation of transient session keys.

Requested change:

Add the following description in Section 2.3:

"PANA 

     PANA [I-D.ietf-pana-pana] supports caching of the MSK, but not
     the EMSK, IV, Session-ID, Peer-ID or Server-ID.  In the PANA
     model [I-D.ietf-pana-framework], TSKs are generated using a
     Secure Association Protocol between the peer and and
     authenticator port (which is referred to as an Enforcement
     Point), where both link-layer specific key exchange protocols and
     IKE can be used as the Secure Association Protocol depending on
     whether link-layer ciphering or IPsec is used between the peer
     and the authenticator port.  The key scope and lifetime of the
     TSKs are communicated from the authenticator to the peer.  The
     key scope is specified as a list of device identifiers of the
     Enforcement Points.  Depending on the Secure Association
     Protocol in use, TSK rekey is possible without EAP
     re-authentication."
[Bernard Aboba]
TSKs are generated using a Secure Association Protocol

Can you elaborate on this? If the TSKs are generated via an IKE DH exchange, with the MSK used only for authentication (as in IKEv2/EAP) then the TSKs are not dependent on the MSK and PFS is possible, right?

 
between the peer and and authenticator port

Not sure I understand this. The SAP exchange is between the peer and authenticator, not between specific ports. However, a result of the SAP exchange can be derivation of TSKs which are bound to specific ports.

[Yoshi Obha]

Yes.  When IKE is used as the SAP, the IKE PSK derived from MSK is
used only for peer entity authentication for IKE DH and thus PFS is
possible.  On the other hand when IEEE 802.11i 4-way handshake is used
as the SAP, PFS is possible if the negotiated EAP method supports
this.
[Bernard Aboba]
The IEEE 802.11i standard does not support PANA, so how can this work?

A single "virtual AP" either allows "open" authentication, or it requires 802.11i, but it can't do both simultaneously. 
Therefore PANA cannot be used for the initial authentication, since PANA traffic will be dropped by the AP prior to completion of 802.1X.
> I don't think 802.11i prohibits any IP traffic to pass throuth
> uncontrolled port before 4-way handshake. In fact, there is a
> description in section 5.4.2.2 of IEEE 802.11i 2004 specification:

[Walker, Jesse] This is not true. 802.1X frames are the only type of
data 802.11i allows to pass over the link prior to key confirmation. IP
traffic is not encapsulated with the 802.1X Ethertype, so is expressly
blocked.

You can find the answer reading 802.1X Clause 8. The
answer is no. All data traffic passes through the control port. The
uncontrolled port passes only frames of Ethertype 802.1X.
     Point), where both link-layer specific key exchange protocols and
     IKE can be used as the Secure Association Protocol depending on
     whether link-layer ciphering or IPsec is used between the peer
     and the authenticator port.

What is a "link-layer specific key exchange protocol"? Are we talking about existing SAPs such as 802.11i 4-way handshake, or something else?


 
     The key scope and lifetime of the
     TSKs are communicated from the authenticator to the peer.

How? IKE does not define explicit lifetimes, nor does it care about key scope because it doesn't support caching.

 

The lifetime of PANA session is carried in PANA message.  This
lifetime is the same as the authorization lifetime which is also same
as the lifetime of the MSK.

Since IKEv2 does not support caching of EAP keying parameters, including the MSK, the PANA lifetime cannot be used; the MSK is discarded by IKEv2 regardless of what is in the PANA lifetime.

 

Then, draft-ietf-pana-ipsec specifies
that when IKE is used as the SAP, the lifetime of the IKE SA is bound
to the lifetime of the MSK.

The IPsec SA lifetime is determined by IKE, not PANA. Since IKE discards the MSK after it completes, there is no notion of an MSK lifetime in IKE.

 

     The key scope is specified as a list of device identifiers of the
     Enforcement Points.

This doesn't make sense where IKE is used as the SAP unless we are talking about MOBIKE (which can move SAs between addresses).

 
[Bernard Aboba]  The intent of Section 2.3 is to review use of EAP within documents that have already been published.  
PANA is still under review, and it appears that there are a number of issues that still need to be ironed out.  Therefore,
I'd suggest that we omit discussion of PANA in this document. 
 
Proposed Resolution: Reject
 

Issue 328: Terminology
Submitter name: Bernard Aboba
Submitter email address: aboba@internaut.com
Date Submitted: January 24, 2006
Reference: http://lists.frascone.com/pipermail/eap/msg03935.html
Document: NETSEL-03
Comment type: E
Priority: S
Section: 1
Rationale/Explanation of issue:

This document needs a terminology section.

In particular, the term "network selection" is not defined, and appears to be used to refer to a number of fundamentally different problems.

In looking at usage in other standards bodies (such as IEEE 802.11), the term has been used in a number of contexts, and at times it is hard to tell what context the document is discussing. For example:

a. The term "Network Selection" has sometimes been used to describe the problem of
choosing between interfaces. For example, one interface may be CDMA, and another
may be 802.11; which interface should be used for outgoing traffic? I would
propose that we call this "interface selection".


b. The term has also been used to describe the problem of choosing between "points
of attachment". For example, there are three APs out there, which one should my
802.11 interface choose? In this context, the term "network" may actually refer
to a desire to avoid having to change IP addresses by retaining attachment
to the same IP network or prefix. Perhaps the term "handoff
candidate selection" might better describe this problem?


c. Sometimes the term appears to be used as a synonym for
"identity selection". Note that RFC 4284 is entitled "Identity Selection Hints
for EAP"; the document does not use the term "network selection" except
in reference to external work, such as this problem statement document.

 
Given the confusion caused by conflicting usage of the term "network
selection" I would recommend that the authors consider adding a terminology
section in which this and other terms can be defined.

Proposed Resolution: Discuss

Issue 329: Reference Update
Submitter name: Bernard Aboba
Submitter email address: aboba@internaut.com
Date Submitted: January 24, 2006
Reference: http://lists.frascone.com/pipermail/eap/msg03936.html
Document: NETSEL-03
Comment type: E
Priority: S
Section: Various
Rationale/Explanation of issue:

A number of the references in the draft have now been updated. These include:
 
[I-D.ietf-ipsec-ikev2] - now published as RFC 4306.
[I-D.adrangi-eap-network-discovery] - now published as RFC 4284.
[I-D.ietf-radext-rfc2486bis] - now published as RFC 4282.
[IEEE.802.11-1999]  - now updated as [IEEE.802.11-2003].
[IEEE.8021x] - now updated as [IEEE.802.1X-2004]

Proposed Resolution: Discuss

Issue 330: Editorial Comments
Submitter name: Jari Arkko
Submitter email address: jari.arkko@piuha.net
Date Submitted: January 25, 2006
Reference: http://lists.frascone.com/pipermail/eap/msg03943.html
Document: NETSEL-03
Comment type: E
Priority: S
Section: Various
Rationale/Explanation of issue:

on the client side, different approches vary in how much they rely on



Typo
 

| |-------->| |---------> "isp1.com"
This does not conform to the IETF's policy of using only
example.com when giving examples of DNS names.
Several instances throughout the document, different
domain names.
[eronendimacs]
Reference name looks different from the others. Consider
using, e.g., [Eronen04].
Mishra, A., "Improving the latnecy of the Probe Phase

Typo

 
tells the network which mediting network it has decided to choose)

Typo (meditating network? :-)

 
Identity. The Alternative NAI is quaranteed to be an unknown NAI

Typo

 
   [RFC2486]  Aboba, B. and M. Beadles, "The Network Access Identifier",
              RFC 2486, January 1999.

Refer to RFC 4282 instead.

 
   [I-D.ietf-radext-rfc2486bis]
              Aboba, B., "The Network Access Identifier",
              draft-ietf-radext-rfc2486bis-01 (work in progress),
              October 2004.

See above.

 
   [I-D.adrangi-eap-network-discovery]
              Adrangi, F., "Mediating Network Discovery in the
              Extensible Authentication Protocol  (EAP)",
              draft-adrangi-eap-network-discovery-14 (work in progress),
              August 2005.

Refer to RFC 4284 instead.

 
   [I-D.ietf-ipsec-ikev2]
              Kaufman, C., "Internet Key Exchange (IKEv2) Protocol",
              draft-ietf-ipsec-ikev2-17 (work in progress),
              October 2004.

Refer to RFC 4309 instead.

 
   [Pasi58]   Eronen, P., "Network Selection Issues", presentation to
              EAP WG at IETF 58, November 2003.

Use [Eronen03] or something similar instead, better style.

 
[pri04] Priest, J., "The State of Wireless London", July 2004.

Capitalize pri04, or maybe Priest04 for consistent style...

 
and another set from his company.

Rewrite this as "... set from the user's employer".

 
Arkko & Aboba, Eds. Expires April 26, 2006 [Page 3]

The new editors need to be put here, too.

Proposed Resolution: Accept

Issue 331: Introduction Improvements
Submitter name: Jari Arkko
Submitter email address: jari.arkko@piuha.net
Date Submitted: January 25, 2006
Reference: http://lists.frascone.com/pipermail/eap/msg03944.html
Document: NETSEL-03
Comment type: E
Priority: S
Section: 1
Rationale/Explanation of issue:

   o  There is more than one available network attachment point, and the
      different points may have different characteristics.


Add ", or even be from different providers".
 
   o  The user has multiple sets of credentials.  For instance, the user
      could have one set of credentials from a public service provider
      and another set from his company.

Ok.

 
   o  There is more than one way to provide roaming between the access
      and home network, and service parameters or pricing differs
      between them.  For instance, the access network could have both a
      direct relationship with the home network and an indirect
      relationship through a roaming consortium.

 
   o  The roaming relationships between access and home networks are so
      complicated that current AAA protocols can not route the requests
      to the home network unaided, just based on the domain in the given
      Network Access Identifier (NAI) [RFC2486] [I-D.ietf-radext-
      rfc2486bis].

 
   o  Payload packets get routed or tunneled differently, based on which
      particular roaming relationship variation is used.  This may have
      an impact on the available services or their pricing.

Suggest combining these under a roaming effect item.

 
   o  Virtual Operators share the same infrastructure, such as wireless
      access points.



Put this after the first bullet, or maybe as a part of the first bullet.

Proposed Resolution: Accept

Issue 332: Section 2 Improvements
Submitter name: Jari Arkko
Submitter email address: jari.arkko@piuha.net
Date Submitted: January 25, 2006
Reference: http://lists.frascone.com/pipermail/eap/msg03945.html
Document: NETSEL-03
Comment type: E
Priority: S
Section: 2
Rationale/Explanation of issue:

   The Access Network Discovery problem has been extensively studied,
   see for instance the results of the IETF Seamoby WG, IEEE
   specifications on 802.11 wireless LAN beaconing and probing process,
   studies (such as [Fixingapsel]) on the effectiveness of these
   mechanisms, and so on.

 
Maybe you could start with a reference to 802.11 as well as
some other (e.g. GSM cellular), then continue with the Seamoby
things; the main body of the work has been imho in the link
layers.

 
2.1 Access Network Discovery
This section is very 802.11 focused. It might make sense
to mention other link layers, too. For instance, cellular
link layers typically employ very network-centric mechanisms
for directing clients to the most suitable attachment point.

 
While there
   is Standards Track RFC specifying the interpretation of the field
   beyond the NUL character, [I-D.adrangi-eap-network-discovery] is
   widely expected to be used.

While there is NO Standards Track RFC?


 
Also, don't say anything about what usage expectations there
are. Just state that the spec exists.

 
For instance, the Redirect feature could be used to provide
   a centralized routing function for AAA, without having to know all
   home network names in all access networks.
There should be some truth-in-advertising disclaimer
here. We don't know how to set the security up for
that in practice, and even if we did, it might not match
business practices.

Proposed Resolution: Accept

Issue 333: Review Scope
Submitter name: Jari Arkko
Submitter email address: jari.arkko@piuha.net
Date Submitted: January 25, 2006
Reference: http://lists.frascone.com/pipermail/eap/msg03946.html
Document: NETSEL-03
Comment type: E
Priority: S
Section: Abstract, 2.4
Rationale/Explanation of issue:

The document may attempt to state too much. Suggest
narrowing the scope a little bit, not claiming this document
has a recommendation on what to do in this area -- just
the definition of problem, as well as some analysis of the
limitations of certain types of solutions.

Specifically, in the abstract:

 
The document presents also some
   existing mechanisms which help solve at least parts of the problem,
   and gives some suggestions on how to proceed for the rest.

 
Maybe rewrite this as "The document also provides a discussion of the
limitations of certain classes of solutions, including some that have
been previously defined."
   Section 4 discusses existing mechanisms which help solve at least
   parts of the problem.  Section 5 gives some suggestions on how to
   proceed for the rest.

Same here.

 
2.4 Payload Routing
While interesting, I wonder if we should spend energy looking
at this sub-problem. Could just mention it at the beginning but
not discuss it further.
 
[Jari Arkko] Parts remaining from issue 333:

>    Section 4 gives the conclusions
>    and some suggestions on how to proceed for the rest.
This should be: "Section 4 presents our conclusions."

Editorial:

>    discussion of the limitations of certain classes of solution,

s/solution/solutions/

> The solution ...

Multiple occurrences of this. I think the draft should
not assume that we have a single solution in this space.
Therefore, we should typically write "Solutions should
satisfy ... " as opposed to "The solution should satisfy ..."

Proposed Resolution: Accept

Issue 334: Section 3 Improvements
Submitter name: Jari Arkko
Submitter email address: jari.arkko@piuha.net
Date Submitted: January 25, 2006
Reference: http://lists.frascone.com/pipermail/eap/msg03947.html
Document: NETSEL-03
Comment type: E
Priority: S
Section: 3
Rationale/Explanation of issue:

I believe Section 3 would be better cast as "issues" than
"constraints". The topics should be grouped under
subsection items and discussed in more depth. For instance,
there are a few items that relate to AAA protocol operations
(different protocols, both client and server initiated transactions,
etc). Another topic is efficiency constraints, including avoiding
unnecessary polling with multiple networks, packet size
issues etc. A third topic could be backwards compatibility
and deployment considerations.
It would also be useful if specific examples could be
presented, for instance, about the use of RFC 4284
mechanisms taken to extremes and what implications
that would have.
Material from current Sections 4 and 5 could in part be
moved here.

Proposed Resolution: Accept

Issue 335: Section 4 Improvements
Submitter name: Jari Arkko
Submitter email address: jari.arkko@piuha.net
Date Submitted: January 25, 2006
Reference: http://lists.frascone.com/pipermail/eap/msg03948.html
Document: NETSEL-03
Comment type: E
Priority: S
Section: 4
Rationale/Explanation of issue:

Perhaps this section could be moved before 3, and
shortened by moving some of the discussion of the
limitations of the existing mechanisms to the issues
Section (currently Section 3, Design Constraints).
   A number of (small) improvements to payload routing control are
   currently in progress in the IETF RADEXT WG.  These include better
   filtering and redirection support [I-D.ietf-radext-ieee802].  RADEXT

 
Is it really still there? I think there was a discussion on the
filtering parts to be removed... check this.

 
   WG is also working on an new revision of the NAI specification
   [I-D.ietf-radext-rfc2486bis].  This revision clarifies the use of the
   '!' syntax in a NAI to route requests via specified mediating
   networks.

Old stuff.

 
4.3 3GPP
This only deals with the I-WLAN functionality of 3GPP
networks. It would be interesting to see a paragraph or
two about the cellular network selection mechanisms,
at least a statement about the principles on which
it operates.

Proposed Resolution: Accept

Issue 336: Section 5 Improvements
Submitter name: Jari Arkko
Submitter email address: jari.arkko@piuha.net
Date Submitted: January 25, 2006
Reference: http://lists.frascone.com/pipermail/eap/msg03949.html
Document: NETSEL-03
Comment type: E
Priority: S
Section: 5
Rationale/Explanation of issue:

I would significantly shorten this Section and focus
mainly on concluding some of the main findings of
the problem definition and the dicussion on issues.
Some of the discussion should be moved to the issue
section.

An example of something to keep:
 
   o  Nevertheless, many of the problems discussed in this draft are
      very hard when one considers them in an environment that requires
      a potentially large number of networks, fast handoffs, and
      automatic decisions.

An example of something to move to the issue section:

 
  o  "Phone-book" based approaches such as RFC 3017 appear attractive
     due to their ability to provide sufficient information for
     automatic selection decisions.  However, there is no experience on
     applying such approaches to wireless access.  The number of WLAN
     access points is significantly higher than the number of dial-in
     POPs; the distributed nature of the access network has created a
     more complicated business and roaming structure, and the expected
     rate of change in the information is high.  As noted in [pri04]
     and [I-D.groeting-eap-netselection-results], a large fraction of
     current WLAN access points operate on the default SSID, which may
     make the use of the phone book approach hard.

An example of something to remove:

 
   ... the IETF should in any case initiate work that
   enables support for channel bindings in methods.  Preferably, popular
   methods should be updated, ensuring compatibility with existing
   deployments.  The representation of link layer parameters within EAP
   should utilize a common framework, to make it easier to define new
   link layers and keep the selection of EAP methods independent of the
   link layer.  A number of proposals exist in this space, but none of
   them have yet been adopted by the EAP WG as work items.

Proposed Resolution: Accept

Issue 337: Removal of Appendix A
Submitter name: Bernard Aboba
Submitter email address: mailto:jari.arkko@piuha.net
Date Submitted: February 25, 2006
Reference: http://lists.frascone.com/pipermail/eap/msg03993.html
Document: KEYING-09
Comment type: E
Priority: 1
Section: Appendix A
Rationale/Explanation of issue:

The material in Appendix A has now been included in RFC 2716bis. As a result,
it is no longer needed in the EAP Keying Framework. It is recommended that
this Appendix be deleted.

Proposed Resolution: Accept

Issue 338: Key Scope
Submitter name: Joe Salowey
Submitter email address: jsalowey@cisco.com
Date Submitted: December 1, 2005
Reference:
Document: Keying-08
Comment type: T
Priority: 1
Section: 2.4
Rationale/Explanation of issue:

The key scope section is a little hard to understand.
---
The key scope recommendations should specify which key it refers to.  I
believe it refers to the AAA-key.
---
There could be some more generic text about key scoping that describes
the requirements in the lower layer such as:

- Identify what parameters in the lower layer define the key scope
- In phase 0 communicate lower layer parameters that identify the key
scope between Peer and Authenticator
- If channel bindings are supported then include these parameters in the
channel bindings in phase 1a
- The peer can now use the key scope parameters to determine if it has
correct keys for phase 2 lower layer protocol interactions
 
Requested change:

Include in the key scoping section introduction (2.4) something along
the lines of the following text:

"Since authenticator architectures and deployment scenarios vary the
usable scope of the keys derived by the peer and server and sent to the
authenticator vary.  By defining a key scope a lower layer can take
advantage of key caches in the system to optimize lower layer
interactions.  In order to address key scoping the following needs to be
specified by the lower layer:

- Identify what parameters in the lower layer define the key scope
- In phase 0 communicate lower layer parameters that identify the key
scope between Peer and Authenticator
- If channel bindings are supported then include these parameters in the
channel bindings in phase 1a
- The peer can now use the key scope parameters to determine if it has
correct keys for phase 2 lower layer protocol interactions"

The following sections describe key scoping with respect to the AAA-Key
that is sent to the authenticator for lower layer protection.  It is
possible that a lower layer may define other keys and key uses which
need to have scoping applied. 
---

Make it clear that remaining parts of sections 2.4.1 and 2.4.2 refer to
the AAA-Key.

[Bernard Aboba]
 

The proposed resolution is to move the key scope material out of Section
2.4 into a new Section 2.5. How does this look?

2.5. Key Scope

Where the EAP peer and authenticator cannot unambiguously identify
each other they may not be able to determine the scope of transported
EAP keying material. This is particularly problematic for lower
layers where key caching is supported.

For example, if the EAP peer cannot identify the EAP authenticator,
it will be unable to determine whether transported EAP keying
material has been shared outside of its authorized scope, and
therefore needs to be considered compromised. There is also a
practical problem because the EAP peer will be unable to utilize the
EAP authenticator key cache in an efficient way.

To avoid these problems, it is recomended that lower layers:

[1] Specify the lower layer parameters used to identify the
authenticator and peer;

[2] Communicate the lower layer identities between the peer and
authenticator within phase 0;

[3] Communicate the lower layer authenticator identity between the
authenticator and backend server within the NAS-Identifier
attribute;

[4] Include the lower layer identities within channel bindings (if
supported) in phase 1a, ensuring that they are communicated between
the EAP peer and server;

[5] Securely verify the lower layer identities within phase 2a;

[6] Utilize the advertised lower layer identities to enable the peer
and authenticator to verify that keys are maintained within the
advertised scope;

Absent explicit specification within the lower layer, after the
completion of phase 1b, EAP keying material and parameters are
bound to the EAP peer and authenticator, but are not bound to a
specific peer or authenticator port.

While EAP Keying Material passed down to the lower layer is not
intrinsically bound to particular authenticator and peer ports,
Transient Session Keys MAY be bound to particular authenticator and
peer ports by the Secure Association Protocol. However, a lower
layer MAY also permit TSKs to be used on multiple peer and/or
authenticator ports, providing that TSK freshness is guaranteed
(such as by keeping replay counter state within the authenticator).

In order to further limit the key scope the following measures are
suggested:

[a] The lower layer MAY specify additional restrictions on key usage,
such as limiting the use of EAP keying material and parameters on
the EAP peer to the port over which on the EAP conversation was
conducted.

[b] The backend authentication server and authenticator MAY implement
additional attributes in order to further restrict the scope of EAP
keying material. For example, in 802.11, the backend
authentication server may provide the authenticator with a list of
authorized Called or Calling-Station-Ids and/or SSIDs for which EAP
keying material is valid.

[c] Where the backend authentication server provides attributes
restricting the key scope, it is RECOMMENDED that restrictions be
securely communicated by the authenticator to the peer. This can
be accomplished using the Secure Association Protocol, but also
can be accomplished via the EAP method or the lower layer.

Proposed Resolution: Accept

Issue 339: Use of Session-Timeout in Pre-authentication
Submitter name: Bernard Aboba
Submitter email address: aboba@internaut.com
Date Submitted: March 23, 2006
Reference:
Document: Keying-10
Comment type: T
Priority: S
Section: 3.4
Rationale/Explanation of issue:

During the HOAKEY BOF, Avi Lior pointed out that overloading of
Session-Timeout for use in pre-authentication could cause problems.
For example, it might be desirable to be able to specify both the
pre-authentication timeout and the Session-Timeout values at the
same time.

Section 3.4 of the keying document describes use of the Session-Timeout
attribute to set the pre-authentication timeout. Rather than
specifying this here, it would be best to leave this to a future
document.

The proposed change is as follows:

In Section 3.4, delete the following text:

"Where EAP is used
for pre-authentication, the session may not start until some future
time, or may never occur. Nevertheless, the Session-Timeout value
represents the time after which transported EAP keying material,
and all keys calculated from it, will have expired on the
authenticator. If the session subsequently starts, re-
authentication will be initiated once the Session-Time has expired.
If the session never started, or started and ended, by default keys
transported by AAA and all keys calculated from them will be
expired by the authenticator prior to the future time indicated by
Session-Timeout."

[Jari Arkko]

    I actually liked the old text since it was very clear: ALL exported
keys expire at Session-Timeout time, no exceptions. This seems
to make sense, still.

I do agree that it might make sense to have additional lifetimes
specified for the preauth case, but I see those as additional
constraints rather than something that replaces Session-Timeout.
 


I think the issue is how to specify *both* the Session-Timeout and the pre-auth timeout.  If only Session-Timeout is included, the meaning is clear -- all keys expire when Session-Timeout runs out. However, if a pre-auth timeout attribute is included then the question is how to specify the maximum lifetime of the session, as opposed to the key lifetime. I'd like to leave some wiggle room for future documents.

How about this?

"Where EAP is used for pre-authentication, the session may not start until some future
time, or may never occur.  Nevertheless, the Session-Timeout value represents the maximum time after which transported EAP keying material, and all keys calculated from it, will have expired on the authenticator.  If the session subsequently starts, re-authentication will be initiated once the Session-Time has expired. If the session never started, or started and ended, by default keys transported by AAA and all keys calculated from them will be expired by the authenticator prior to the future time indicated by Session-Timeout.  Note that in future additional attributes may be specified to control the lifetime of cached keys; these attributes may modify the meaning of the Session-Timeout attribute in specific circumstances."

Proposed Resolution: Discuss

Issue 340: MD5 Attacks
Submitter name: Bernard Aboba
Submitter email address: aboba@internaut.com
Date Submitted: March 23, 2006
Reference:
Document: Keying-10
Comment type: E
Priority: S
Section: 3.7
Rationale/Explanation of issue:

The security considerations section refers to somewhat ancient attacks
on MD5. Since significantly more sophisticated attacks exist now,
the text needs to be updated.

Proposed Change:

In Section 3.7, change:

" As described in [RFC3579] Section 4.3, known problems exist in the
key wrap specified in [RFC2548]. Where the same RADIUS shared secret
is used by a PAP authenticator and an EAP authenticator, there is a
vulnerability to known plaintext attack. Since RADIUS uses the
shared secret for multiple purposes, including per-packet
authentication, attribute hiding, considerable information is exposed
about the shared secret with each packet. This exposes the shared
secret to dictionary attacks. MD5 is used both to compute the RADIUS
Response Authenticator and the Message-Authenticator attribute, and
some concerns exist relating to the security of this hash
[MD5Attack]."

To:

" The key wrap specified in [RFC2548], which is based on
an MD5-based stream cipher, has known problems, as
described in [RFC3579] Section 4.3.
RADIUS uses the shared secret for multiple purposes, including
per-packet authentication and attribute hiding, considerable
information is exposed about the shared secret with each packet.
This exposes the shared secret to dictionary attacks. MD5 is
used both to compute the RADIUS Response Authenticator and the
Message-Authenticator attribute, and concerns exist relating
to the security of this hash [MD5Collision]."

Replace [MD5Attack] with [MD5Collision] throughout the document and in the references:

[MD5Collision]
Klima, V., "Tunnels in Hash Functions: MD5 Collisions Within a Minute",
Cryptology ePrint Archive, March 2006, http://eprint.iacr.org/2006/105.pdf

Proposed Resolution: Accept

Issue 341: Editorial NITs
Submitter name: Bernard Aboba
Submitter email address: aboba@internaut.com
Date Submitted: March 23, 2006
Reference:
Document: Keying-10
Comment type: E
Priority: S
Section: 6,7, Appendix A
Rationale/Explanation of issue:

Some NITs:

Appendix A does not include references to each of the EAP methods that
are described. These should be added to Appendix A as well as the
reference list.

Proposed Resolution: Accept

Issue 342: More NITs
Submitter name: Bernard Aboba
Submitter email address: aboba@internaut.com
Date Submitted: March 23, 2006
Reference:
Document: Keying-10
Comment type: E
Priority: S
Section: 3, 3.5, 4
Rationale/Explanation of issue:

Section 3 is somewhat confusing.

Section 3.5 is poorly written.

Section 4 is not clear about what mechanisms are being referred to in the last sentence.

Change Section 3 from:

"3.  Key Management

   EAP as defined in [RFC3748] supports key derivation, but not key
   management.  While EAP methods may derive keying material, EAP does
   not provide for the management of exported or derived keys.  For
   example, EAP does not support negotiation of the key lifetime of
   exported or derived keys, nor does it support re-key.  Although EAP
   methods may support "fast reconnect" as defined in [RFC3748] Section
   7.2.1, re-key of exported keys cannot occur without re-
   authentication.  In order to provide method independence, key
   management of exported or derived keys SHOULD NOT be provided within
   EAP methods."

To:

"3. Key Management

EAP as defined in [RFC3748] supports key derivation, but not key
management. While EAP methods may derive keying material, EAP does
not provide for the management of exported or derived keys. Although
EAP methods may support "fast reconnect" as defined in [RFC3748]
Section 7.2.1, EAP does not support re-key of exported keys without
re-authentication. Existing EAP methods do not export the Key-
Lifetime parameter; in the interest of method independence, key
management of exported or derived keys SHOULD NOT be provided within
EAP methods."

Change Section 3.5 from:

"3.5.  Key cache synchronization

   Issues arise when attempting to synchronize the key cache on the peer
   and authenticator.  Lifetime negotiation alone cannot guarantee key
   cache synchronization.

   One problem is that the AAA protocol cannot guarantee synchronization
   of key lifetimes between the peer and authenticator.  Where the
   Secure Association Protocol is not run immediately after EAP
   authentication, the exported and calculated key lifetimes will not be
   known by the peer during the hiatus.  Where EAP pre-authentication
   occurs, this can leave the peer uncertain whether a subsequent
   attempt to use the exported keys will prove successful.

   However, even where the Secure Association Protocol is run
   immediately after EAP, it is still possible for the authenticator to
   reclaim resources if the created key state is not immediately
   utilized.

   The lower layer may utilize Discovery mechanisms to assist in this.
   For example, the authenticator manages the key cache by deleting the
   oldest key first (LIFO), the relative creation time of the last key
   to be deleted could be advertised with the Discovery phase, enabling
   the peer to determine whether a given key had been expired from the
   authenticator key cache prematurely."

To:

"3.5. Key cache synchronization

Issues arise when attempting to synchronize the key cache on the peer
and authenticator.

While the AAA protocol can enable the backend authentication server
to provide guidance on the lifetime of transported EAP keying
material to the authenticator, this does not address the problem of
key lifetime synchronization between the peer and authenticator.
Where the EAP method does not export the Key-Lifetime parameter, the
lifetime of the EAP keying material may not be defined until
completion of the Secure Association Protocol, if ever. This can
leave the peer uncertain how long the authenticator will maintain EAP
keying material within the key cache.

However, key lifetime negotiation alone cannot guarantee key cache
synchronization. Even where the Secure Association Protocol is run
immediately after EAP and determines the lifetime of EAP keying
material, it is still possible for the authenticator to reclaim
resources.

The lower layer may utilize the Discovery phase 0 to improve key
cache synchronization. For example, if the authenticator manages the
key cache by deleting the oldest key first (LIFO), the relative
creation time of the last key to be deleted could be advertised
within the Discovery phase, enabling the peer to determine whether
keying material had been prematurely expired from the authenticator
key cache."

Change Section 4 from:

"4. Handoff Vulnerabilities

With EAP, a number of mechanisms are be utilized in order to reduce
the latency of handoff between authenticators. One such mechanism is
EAP pre-authentication, in which EAP is utilized to pre-establish EAP
keying material on an authenticator prior to arrival of the peer.
Another such mechanism is key caching, in which an EAP peer can re-
attach to an authenticator without having to re-authenticate using
EAP. Yet another mechanism is context transfer, such as is defined
in [IEEE-802.11F] (now deprecated) and [CTP]. These mechanisms
introduce new security vulnerabilities, as discussed in the sections
that follow."

To:

"4. Handoff Vulnerabilities

With EAP, several mechanisms are available to reduce the latency in
handoff between authenticators:

[1] EAP pre-authentication. This utilizes EAP to pre-establish EAP
keying material on an authenticator prior to arrival of the peer.

[2] Key caching. This mechanism enables an EAP peer to re-attach to an
authenticator without requiring EAP re-authentication.

[3] Context transfer, such as is defined in [IEEE-802.11F] (now
deprecated) and [CTP].

The sections that follow discuss the security vulnerabilities introduced
by the above mechanisms.

Proposed Resolution: Accept

Issue 343: Sections 1, 2 and 5 Cleanup
Submitter name: Bernard Aboba
Submitter email address: aboba@internaut.com
Date Submitted: March 27, 2006
Reference:
Document: Keying-10
Comment type: E
Priority: S
Section: 1, 2, 5
Rationale/Explanation of issue:

The flow of Section 1 leaves something to be desired.  It launches
right into the EAP key hierarchy without any overview, and the
security goals of EAP are not discussed until Section 5, which
seems somewhat out of place.
 
The proposed resolution is to move the first half of Section 2.1
(up to the examples) and the portion of Section 5
dealing with security goals to Section 1.3.
 
The examples in the second half of Section 2.1 will be moved
to section 1.3.1.  Section 1.3 (EAP Key Hierarchy) becomes
Section 1.4;  Section 1.4 (EAP Invariants) becomes Section 1.5.
 
Section 2.2 (Layering) becomes Section 2 (Lower Layer Operation);
Section 2.3 (Transient Session Keys) becomes Section 2.1, Section
2.4 (Authenticator Architecture) becomes Section 2.2; Section
2.5 (Key Scope) becomes section 2.3.
Section 5.1 will be incorporated in Section 5, rather than being
a separate section.  Section 5.2 (Threat Model) becomes Section
5.1.
 
The following paragraphs in Section 5.6 relate to authenticator
and peer identification, a subject extensively discussed in Section 2.4:
 
"  In order to enable key binding and authorization of all parties, it is
   RECOMMENDED that the parties use a set of identities that are
   consistent between the conversation phases. RADIUS [RFC2865] and
   Diameter NASREQ [RFC4005] require that the NAS/EAP authenticator
   identify itself by including one or more identification
   attributes within an Access-Request packet (NAS-Identifier,
   NAS-IP-Address, NAS-IPv6-Address).
 
   Since the backend authentication server provides EAP keying material
   for use by the EAP authenticator as identified by these attributes,
   where an EAP authenticator may have multiple ports, it is RECOMMENDED
   for the EAP authenticator to identify itself using NAS identification
   attributes during the Secure Association Protocol exchange with the
   EAP peer.  This enables the EAP peer to determine whether EAP keying
   material has been shared between EAP authenticators as well as to
   confirm with the backend authentication server that an EAP
   authenticator proving possession of EAP keying material during the
   Secure Association Protocol was authorized to obtain it.  Typically,
   the NAS-Identifier attribute is most convenient for this purpose,
   since a NAS/authenticator may have multiple IP addresses.
 
   Similarly, the backend authentication server authorizes the EAP
   authenticator to provide access to the EAP peer identified by the
   Peer-ID, securely verified during the EAP authentication exchange.
   In order to determine whether EAP keying material has been shared
   between EAP peers, where the EAP peer has multiple ports it is
   RECOMMENDED for the EAP peer to identify itself using the Peer-ID
   during the Secure Association Protocol exchange with the EAP
   authenticator."
 
To reduce redundancy, it is recommended that these paragraphs be
changed to the following:
 
"In order to enable key binding and authorization of all parties, it is
RECOMMENDED that the parties use a set of identities that are
consistent between the conversation phases.
Section 2.2 discusses identification issues that arise where the
EAP authenticator and peer may have multiple ports.  Consistently
identifying the EAP authenticator enables the EAP peer to determine
whether EAP keying material has been shared between EAP authenticators
as well as to confirm with the backend authentication server that an EAP
authenticator proving possession of EAP keying material during the
Secure Association Protocol was authorized to obtain it.
 
Similarly, the backend authentication server authorizes the EAP
authenticator to provide access to the EAP peer identified by the
Peer-ID, securely verified during the EAP authentication exchange.
In order to determine whether EAP keying material has been shared
between EAP peers, where the EAP peer may have multiple ports it is
RECOMMENDED for the EAP peer to identify itself using the Peer-ID
during the Secure Association Protocol exchange with the EAP
authenticator."
 
In Section 5.8, the following sentence contradicts the
discussion in Section 2.1.
 
"TSKs are permitted to be accessed
only by the EAP peer and authenticator.
Since the TSKs can be determined from the transported EAP
keying material and the cleartext of the Secure Association
Protocol exchange, the backend authentication server will have
access to the TSKs"
Recommend that it be changed to:
 
"TSKs are permitted to be accessed
only by the EAP peer and authenticator (Section 1.3).
As discussed in Section 2.1, PPP and 802.11i derive the TSKs
from transported EAP keying material;
802.16e utilizes transported EAP keying material for TSK keywrap; IKEv2
utilizes transported EAP keying material only to authenticate the
derivation of TSKs.  Possession of transported keying material enables the
backend authentication server to masquerade as the authenticator, and
in some cases to obtain the TSKs (PPP, 802.11i, 802.16e)"
Section 1.3 now reads as follows:

"1.3. Overview
   Where EAP key derivation is supported, the conversation typically
   takes place in three phases:
 
      Phase 0: Discovery
      Phase 1: Authentication
               1a: EAP authentication
               1b: AAA Key Transport (optional)
      Phase 2: Secure Association Establishment
               2a: Unicast Secure Association
               2b: Multicast Secure Association (optional)
 
   Of these phases, Phase 0, 1b and Phase 2 are handled external to EAP.
   Phases 0 and 2 are handled by the lower layer protocol and phase 1b
   is typically handled by a AAA protocol.
 
   In the discovery phase (phase 0),  peers locate authenticators and
   discover their capabilities.  A peer may locate an authenticator
   providing access to a particular network, or a peer may locate an
   authenticator behind a bridge with which it desires to establish a
   Secure Association.  Discovery can occur manually or automatically,
   depending on the lower layer over which EAP runs.
 
   EAP peer                   Authenticator               Auth. Server
   --------                   -------------               ------------
    |<----------------------------->|                               |
    |     Discovery (phase 0)       |                               |
    |<----------------------------->|<----------------------------->|
    |   EAP auth (phase 1a)         |  AAA pass-through (optional)  |
    |                               |                               |
    |                               |<------------------------------|
    |                               |       AAA Key transport       |
    |                               |      (optional; phase 1b)     |
    |<----------------------------->|                               |
    |  Unicast Secure association   |                               |
    |          (phase 2a)           |                               |
    |                               |                               |
    |<----------------------------->|                               |
    | Multicast Secure association  |                               |
    |     (optional; phase 2b)      |                               |
    |                               |                               |
Figure 1: Conversation Overview
 
   The authentication phase (phase 1) may begin once the peer and
   authenticator discover each other.  This phase, if it occurs, always
   includes EAP authentication (phase 1a).  Where the chosen EAP method
   supports key derivation, in phase 1a EAP keying material is derived
   on both the peer and the EAP server.
 
   An additional step (phase 1b) is required in deployments which
   include a backend authentication server, in order to transport keying
   material from the backend authentication server to the authenticator.
   In order to obey the principle of Mode Independence, where a backend
   server is present, all keying material which is required by the lower
   layer needs to be transported from the EAP server to the
   authenticator.  Since existing TSK derivation techniques depend
   solely on the MSK, in existing implementations, this is the only
   keying material replicated in the AAA key transport phase 1b.
 
   Successful completion of EAP authentication and key derivation by a
   peer and EAP server does not necessarily imply that the peer is
   committed to joining the network associated with an EAP server.
   Rather, this commitment is implied by the creation of a security
   association between the EAP peer and authenticator, as part of the
   Secure Association Protocol (phase 2).  The Secure Association
   exchange (phase 2) occurs between the peer and authenticator in order
   to manage the creation and deletion of unicast (phase 2a) and
   multicast (phase 2b) security associations between the peer and
   authenticator.  The conversation between the parties is shown in
   Figure 1.
 
   The goal of the EAP conversation is to derive fresh session keys
   between the EAP peer and authenticator that are known only to those
   parties, and for both the EAP peer and authenticator to demonstrate
   that they are authorized to perform their roles either by each other
   or by a trusted third party (the backend authentication server).
   Authorization issues are discussed in Sections 5.8.
 
   Completion of an EAP method exchange (Phase 1a) supporting key
   derivation results in the derivation of EAP keying material (MSK,
   EMSK, TEKs) known only to the EAP peer (identified by the Peer-ID)
   and server (identified by the Server-ID).  Both the EAP peer and EAP
   server know the exported keying material to be fresh.  Disclosure
   issues are discussed in Section 5.5; key freshness is discussed in
   Sections 3.3, 3.4 and 5.7.
 
   Completion of the AAA exchange (Phase 1b) results in the transport of
   EAP keying material from the EAP server (identified by the Server-ID)
   to the EAP authenticator (identified by the NAS-Identifier) without
   disclosure to any other party.  Both the EAP server and EAP
   authenticator know this keying material to be fresh.  Security
   properties of AAA protocols are discussed in Sections 5.2-5.8, and
   5.11.
 
   Completion of the Secure Association Protocol (Phase 2) results in
   the derivation of Transient Session Keys (TSKs) known only to the EAP
   peer (identified by the Peer-ID) and authenticator (identified by the
   NAS-Identifier).  Both the EAP peer and authenticator know the TSKs
   to be fresh.  Security properties of Secure Association Protocols are
   discussed in Section 3.1."
 
[Jari Arkko]
 
    Possession of transported keying material enables
the backend authentication server to masquerade as the authenticator, and
in some cases to obtain the TSKs (PPP, 802.11i, 802.16e)"


Actually, I don't believe this is true in IKEv2 since the authenticator needs to prove possession of *both* the IKEv2 secret (e.g. DH key) as well as the EAP MSK.  So gaining possession of the MSK would not allow a backend authentication server to masquerade as the authenticator.  Suggest this be rewritten as follows:

"Where demonstration of authorization depends entirely on possession of transported EAP keying material (such as in PPP, 802.11i and 802.16e), this enables the backend server to masquerade as the authenticator, and possibly to obtain the TSKs"

Proposed Resolution: Accept
 

Issue 344: Yet More NITs
Submitter name: Bernard Aboba
Submitter email address: aboba@internaut.com
Date Submitted: March 30, 2006
Reference:
Document: Keying-10
Comment type: E
Priority: 1
Section: Various
Rationale/Explanation of issue:

In Section 1.3

Change:

"Phase 2: Secure Association Establishment"

To:

"Phase 2: Secure Association Protocol"

Change:
 
"   In order to obey the principle of Mode Independence, where a backend
   server is present, all keying material which is required by the lower
   layer needs to be transported from the EAP server to the
   authenticator.  Since existing TSK derivation techniques depend
   solely on the MSK, in existing implementations, this is the only
   keying material replicated in the AAA key transport phase 1b."

To:
 
"    In order to obey the principle of Mode Independence (see Section
    1.6.1), where a backend server is present, all keying material which
    is required by the lower layer needs to be transported from the EAP
    server to the authenticator.  Since existing TSK derivation and
    transport techniques depend solely on the MSK, in existing
    implementations, this is the only keying material replicated in the
    AAA key transport phase 1b."

In Section 1.3.1, add:
 
"A proof of the security of the IEEE 802.11i 4-way
handshake when used with EAP-TLS [RFC2716], is provided in [He]."
Move the following material from Section 1.3 to Section 1.5 and
change the text from:
 
"    The goal of the EAP conversation is to derive fresh session keys
    between the EAP peer and authenticator that are known only to those
    parties, and for both the EAP peer and authenticator to demonstrate
    that they are authorized to perform their roles either by each other
    or by a trusted third party (the backend authentication server).
    Authorization issues are discussed in Sections 5.8.

 
    Completion of an EAP method exchange (Phase 1a) supporting key
    derivation results in the derivation of EAP keying material (MSK,
    EMSK, TEKs) known only to the EAP peer (identified by the Peer-ID)
    and server (identified by the Server-ID).  Both the EAP peer and EAP
    server know the exported keying material to be fresh.  Disclosure
    issues are discussed in Section 5.5; key freshness is discussed in
    Sections 3.3, 3.4 and 5.7.
    Completion of the AAA exchange (Phase 1b) results in the transport of
    EAP keying material from the EAP server (identified by the Server-ID)
    to the EAP authenticator (identified by the NAS-Identifier) without
    disclosure to any other party.  Both the EAP server and EAP
    authenticator know this keying material to be fresh.  Security
    properties of AAA protocols are discussed in Sections 5.2-5.8, and
    5.11.
    Completion of the Secure Association Protocol (Phase 2) results in
    the derivation of Transient Session Keys (TSKs) known only to the EAP
    peer (identified by the Peer-ID) and authenticator (identified by the
    NAS-Identifier).  Both the EAP peer and authenticator know the TSKs
    to be fresh.  Security properties of Secure Association Protocols are
    discussed in Section 3.1."

To:
 
"   The goal of the EAP conversation is to derive fresh session keys
   between the EAP peer and authenticator that are known only to those
   parties, and for both the EAP peer and authenticator to demonstrate
   that they are authorized to perform their roles either by each other
   or by a trusted third party (the backend authentication server).
 
   Completion of an EAP method exchange (Phase 1a) supporting key
   derivation results in the derivation of EAP keying material (MSK,
   EMSK, TEKs) known only to the EAP peer (identified by the Peer-ID)
   and server (identified by the Server-ID).  Both the EAP peer and EAP
   server know the exported keying material to be fresh.  Key freshness
   is discussed in Sections 3.3, 3.4 and 5.7.
 
   Completion of the AAA exchange (Phase 1b) results in the transport of
   EAP keying material from the EAP server (identified by the Server-ID)
   to the EAP authenticator (identified by the NAS-Identifier) without
   disclosure to any other party.  Both the EAP server and EAP
   authenticator know this keying material to be fresh.  Disclosure
   issues are discussed in Section 5.6; security properties of AAA
   protocols are discussed in Sections 5.2-5.8, and 5.11.
 
   Completion of the Secure Association Protocol (Phase 2) results in
   the derivation or transport of Transient Session Keys (TSKs) known
   only to the EAP peer (identified by the Peer-ID) and authenticator
   (identified by the NAS-Identifier).  Both the EAP peer and
   authenticator know the TSKs to be fresh.  Both the EAP peer and
   authenticator demonstrate that they are authorized to perform their
   roles.  Authorization issues are discussed in Section 5.8 and 5.9;
   security properties of Secure Association Protocols are discussed in
   Section 3.1."

In Section 1.6.1, change "in order to support" to "to support"

Change: "However, one of the advantages of EAP is that it enables deployment of"

To:

"However, when utilized in "pass-through" mode, EAP enables deployment of"

In Section 1.6.2, change:

 
"  over PPP [RFC1661],  IEEE 802 wired networks [IEEE-802.1X], and IEEE
   802.11 wireless LANs [IEEE-802.11i]."

To:

" over PPP [RFC1661], IEEE 802 wired networks [IEEE-802.1X], and
wireless networks such as 802.11 [IEEE-802.11i] and 802.16 [IEEE-802.16e]."


In Section 2.3:

Change "Figure 5" to "Figure 3".

Change:

"To take an example from IKE, the difference between IKEv1 and IKEv2 is that in
IKEv1 SA lifetimes were negotiated. In IKEv2, each end of the SA is"


To:

"For example, a difference between IKEv1 and IKEv2 is that in IKEv1 SA lifetimes
were negotiated; in IKEv2, each end of the SA is"


Change:

"EAP does not support negotiation of key lifetimes, nor does it support re-key
without re-authentication."


To:
 
"EAP does not support re-key without re-authentication and existing EAP
methods do not support key lifetime negotiation."

Change:
"[RFC3748], does not support the negotiation of lifetimes for exported
keying material such as the MSK, EMSK and IV."

To:
 
"[RFC3748], does not itself support the negotiation of lifetimes for
exported keying material such as the MSK, EMSK and IV."

Change:

"material or keys derived from it is only utilized by a single"

To:

"material or keys derived from it are only utilized by a single"

In Section 5.8:

Change "a post-EAP handshake" to "a Secure Association Protocol"

In Section 5.11:

Change:
 
"Both the RADIUS and Diameter protocols are potentially vulnerable to
impersonation by a rogue authenticator.

While AAA protocols such as RADIUS [RFC2865] or
Diameter [RFC3588] support mutual authentication
between the authenticator (known as the AAA client) and
the backend authentication server (known as the backend authentication server),
the security mechanisms vary according to the AAA protocol.

 
In RADIUS, the shared secret
used for authentication is determined by the source address
of the RADIUS packet.  As noted in [RFC3579] Section 4.3.7,
it is highly desirable that the source address be checked
against one or more NAS identification attributes so as to
detect and prevent impersonation attacks.

When RADIUS requests are forwarded by a proxy,"

To:

"Both the RADIUS [RFC2865] and Diameter [RFC3588] protocols are potentially vulnerable to
impersonation by a rogue authenticator.
While both protocols
support mutual authentication
between the authenticator (known as the AAA client) and
the backend authentication server (known as the backend authentication server),
the security mechanisms vary.

 
In RADIUS, the shared secret
used for authentication is determined by the source address
of the RADIUS packet.  As noted in [RFC3579] Section 4.3.7,
it is highly desirable that the source address be checked
against one or more NAS identification attributes so as to
detect and prevent impersonation attacks.

When RADIUS Access-Requests are forwarded by a proxy,"

Change:
 
"While [RFC3588] requires use of the Route-Record AVP, this utilizes
FQDNs, so that impersonation detection requires DNS A/AAAA and PTR
RRs to be properly configured.  As a result, it appears that Diameter
is as vulnerable to this attack as RADIUS, if not more so.  To address
this vulnerability, it is necessary to allow the backend
authentication server to communicate with the authenticator directly,
such as via the redirect functionality supported in [RFC3588]."

To:
 
"While [RFC3588] requires use of the Route-Record AVP, this utilizes
FQDNs, so that impersonation detection requires DNS A, AAAA and PTR
Resource Records (RRs) to be properly configured.  As a result, Diameter
is as vulnerable to this attack as RADIUS, if not more so.  To address
this vulnerability, it is necessary to allow the backend
authentication server to communicate with the authenticator directly,
such as via the redirect functionality supported in [RFC3588]."

In Section 5.12:

Change:

"[RFC3579] Section 4.3.7 describes how an EAP pass-through
authenticator acting as a AAA client can be detected if it attempts
to impersonate another authenticator (such by sending incorrect
Called-Station-ID [RFC2865], NAS-Identifier [RFC2865], NAS-IP-Address [RFC2865] or
NAS-IPv6-Address [RFC3162] attributes via the AAA protocol).
However, it is possible for a pass-through authenticator acting as a
AAA client to provide correct information to the backend authentication server while
communicating misleading information to the EAP peer via the lower
layer.

 
For example, a compromised authenticator can
utilize another authenticator's Called-Station-Id or NAS-Identifier
in communicating with the EAP peer via the lower layer, or for
a pass-through authenticator acting as a AAA client to provide an
incorrect peer Calling-Station-Id [RFC2865][RFC3580] to the AAA
server via the AAA protocol."

To:

"As described in the previous section, it is possible for a proxy
to detect a AAA client attempting
to impersonate another authenticator (such by sending incorrect
Called-Station-ID [RFC2865], NAS-Identifier [RFC2865], NAS-IP-Address [RFC2865] or
NAS-IPv6-Address [RFC3162] attributes via the AAA protocol).
However, it is possible for a pass-through authenticator acting as a
AAA client to provide correct information to the backend authentication server while
communicating misleading information to the EAP peer via the lower
layer.

 
For example, a compromised authenticator can
utilize another authenticator's Called-Station-Id or NAS-Identifier
in communicating with the EAP peer via the lower layer.  Also,
a pass-through authenticator acting as a AAA client can provide an
incorrect peer Calling-Station-Id [RFC2865][RFC3580] to the AAA
server via the AAA protocol."

In Section 7.2, add the following reference:

[He] He, C., Sundararajan, M., Datta, A. Derek, A. and J. C. Mitchell,
"A Modular Correctness Proof of TLS and IEEE 802.11i",
ACM Conference on Computer and Communications Security (CCS '05), November, 2005.

Proposed Resolution: Accept

Issue 345: References to Group Key Management
Submitter name: Laksminath Dondeti
Submitter email address: dondeti@qualcomm.com
Date Submitted: April 3, 2006
Reference: http://lists.frascone.com/pipermail/eap/msg04177.html
Document: Keying-10
Comment type: E
Priority: S
Section: 2.1
Rationale/Explanation of issue:

EAP Key management framework I-D currently says in Page 14
 
"IKEv2, defined in [RFC4306], handles the derivation of unicast
security associations (phase 2a), while the derivation of multicast
security associations (phase 2b) is handled in a separate group key
management protocol, as described in [RFC4046]. "

The problem is 4046 describes MSEC's group key management framework and not a particular key management protocol. MSEC has specified three key management protocols for group key establishment and they are GDOI, GSAKMP and MIKEY and is working on a third GKDP (this one is *similar* to IKEv2).

I'd also suggest using the phrase "establishment of multicast SAs" instead of "derivation ..."

Requested change:

"while the establishment of multicast security associations (phase 2b) may be handled by a group key management protocol such as GDOI [RFC3547], GSAKMP [RFC-to-be-GSAKMP], MIKEY [RFC3830], or GKDP [GKDP-work-in-progress]."

[Jari Arkko]

I agree with your complaint about the current text. But
I have a question for you: do any of the protocols
that you list in the proposed text work with EAP-based
authentication? If yes, then those can be listed. Otherwise
it might be more appropriate to say "... while the establishment
of multicast security associations (phase 2b) is not
supported for EAP-based authentication", or words
to that effect.

[Bernard Aboba] How about this?

"IKEv2, defined in [RFC4306], includes support for EAP and handles the establishment of unicast security associations (phase 2a). However, the establishment of multicast security associations (phase 2b) typically does not involve EAP and needs to be handled by a group key management protocol such as GDOI [RFC3547], GSAKMP [GSAKMP], MIKEY [RFC3830], or GKDP [GKDP]."

Proposed Resolution: Accept

Issue 346: Reference Cleanup
Submitter name: Bernard Aboba
Submitter email address: aboba@internaut.com
Date Submitted: April 3, 2006
Reference: http://lists.frascone.com/pipermail/eap/msg04178.html
Document: Keying-10
Comment type: E
Priority: S
Section: 4, 7.1, 7.2
Rationale/Explanation of issue:

There are references included in Section 7.1 and 7.2 that are not referenced anywhere in the text.
The proposed resolution is as follows:

Delete [RFC2434] as a Normative reference.

Correct the reference to [I-D.ohba-eap-aaakey-binding] (typo).
 
Add references in the text to [RFC2409], [RFC2607],[8021XHandoff],
[IEEE-02-758], [IEEE-03-084].

Add a non-normative reference to [I-D.irtf-aaaarch-handoff].

Change the text of Section 4 to:

"4. Handoff Vulnerabilities
 
  With EAP, several mechanisms are available to reduce the latency in
  handoff between authenticators:
 
[1]  EAP pre-authentication.  This utilizes EAP to pre-establish EAP
    keying material on an authenticator prior to arrival of the peer.
    Use of pre-authentication within IEEE 802.11 is described in
    [8021XHandoff] and [IEEE-802.11i].
 
[2]  Key caching.  This mechanism enables an EAP peer to re-attach to an
    authenticator without requiring EAP re-authentication.
 
[3]  Context transfer, such as is defined in [IEEE-802.11F] (now
    deprecated) and [RFC4067].  Use of context transfer for handoff
    latency improvement is described in [IEEE-02-758].
 
[4]  Proactive key distribution, such as is described in [IEEE-02-758]
    and [I-D.irtf-aaaarch-handoff].
 
  The sections that follow discuss the security vulnerabilities
  introduced by the above mechanisms."

Delete the following references from Section 7.2 (Informative References):

 
[DESMODES]   National Institute of Standards and Technology, "DES Modes
            of Operation", FIPS PUB 81, December 1980, <http://
            www.itl.nist.gov/fipspubs/fip81.htm>.
 
[FIPSDES]    National Institute of Standards and Technology, "Data
            Encryption Standard", FIPS PUB 46, January 1977.
 
[IEEE-03-155]
            Aboba, B., "Fast Handoff Issues", IEEE 802.11 Working
            Group, IEEE-03-155r0-I,  http://www.ieee802.org/11/
            Documents/DocumentHolder/3-155.zip, March 2003.
 
[I-D.ietf-roamops-cert]
            Aboba, B., "Certificate-Based Roaming", draft-ietf-roamops-
            cert-02 (work in progress), April 1999.
 
[RFC0793] Postel, J., "Transmission Control Protocol", STD 7, RFC 793,
         September 1981.
[RFC2104] Krawczyk, H., Bellare, M. and R. Canetti, "HMAC: Keyed-Hashing
         for Message Authentication", RFC 2104, February 1997.
 
[RFC2246] Dierks, T., Allen, C., Treese, W., Karlton, P., Freier, A.
         and P. Kocher, "The TLS Protocol Version 1.0", RFC 2246,
         January 1999.
 
[RFC2401] Kent, S. and R. Atkinson, "Security Architecture for the
         Internet Protocol", RFC 2401, November 1998.
[RFC2419] Sklower, K. and G. Meyer, "The PPP DES Encryption Protocol,
         Version 2 (DESE-bis)", RFC 2419, September 1998.
[RFC2420] Kummert, H., "The PPP Triple-DES Encryption Protocol (3DESE)",
         RFC 2420, September 1998.
[RFC3078] Pall, G. and G. Zorn, "Microsoft Point-To-Point Encryption
         (MPPE) Protocol", RFC 3078, March 2001.
 
[RFC3079] Zorn, G., "Deriving Keys for use with Microsoft Point-to-Point
         Encryption (MPPE)", RFC 3079, March 2001.
 
[RFC4005] Calhoun, P., Zorn, G., Spence, D. and D. Mitton, "Diameter
         Network Access Server Application", RFC 4005, August 2005.

Proposed Resolution: Accept

Issue 347: Key Scope Cleanup
Submitter name: Bernard Aboba
Submitter email address: aboba@internaut.com
Date Submitted: April 3, 2006
Reference: http://lists.frascone.com/pipermail/eap/msg04179.html
Document: Keying-10
Comment type: E
Priority: S
Section: 2.2, 2.3, 3.1, 5.5
Rationale/Explanation of issue:

Material relating to Key Scope is included in Sections 2.2, 2.3, 3.1, 5.5. The material appears redundant.

The resolution is to delete Section 2.3, and split the material between Section 2.2.1 and a new Section 3.2, and delete the following material from Section 3.1 [h], since it is already gone over in considerable depth in Section 2.2:
 
"Since the Discovery phase is handled
out-of-band, EAP does not provide a mechanism by which the peer can
determine the authenticator identity.  As a result, where the
authenticator has multiple ports and key caching is supported, the
EAP peer may not be able to determine the scope of validity of the
exported EAP keying material.  Similarly, where the EAP peer has
multiple ports, the authenticator may not be able to determine
whether a peer has authorization to use a particular key."

Section 2.2.1 now reads as follows:

"2.2.1. Authenticator Identification
 
  The EAP method conversation is between the EAP peer and server, as
  identified by the Peer-ID and Server-ID.  The authenticator identity,
  if considered at all by the EAP method, is treated as an opaque blob
  for the purposes of Channel bindings.  However, the Secure
  Association Protocol conversation is between the peer and the
  authenticator, and therefore the authenticator and peer identities
  are relevant to that exchange, and define the scope of use of the EAP
  keying material passed down to the lower layer.
  Where the EAP peer and authenticator cannot unambiguously identify
  each other they may not be able to determine the scope of transported
  EAP keying material.  This is particularly problematic for lower
  layers where key caching is supported.
  For example, if the EAP peer cannot identify the EAP authenticator,
  it will be unable to determine whether transported EAP keying
  material has been shared outside of its authorized scope, and
  therefore needs to be considered compromised.  There is also a
  practical problem because the EAP peer will be unable to utilize the
  EAP authenticator key cache in an efficient way.  Where the peer and
  authenticator identify themselves within the lower layer using a port
  identifier such as a link layer address, this creates a number of
  problems:
 
[1]  It may not be obvious to the peer which authenticator ports are
    associated with which authenticators.
 
[2]  It may not be obvious to the authenticator which peer ports are
    associated with which peers.
 
[3]  It may not be obvious to the peer which "virtual authenticator" it
    is communicating with.
 
[4]  It may not be obvious to the authenticator which "virtual peer" it
    is communicating with.
 
    Since an authenticator may have multiple ports, the authenticator
    identifier used within the Secure Association Protocol exchange
    SHOULD be distinct from any port identifier (e.g. MAC address).
    Similarly, where a peer may have multiple ports, and sharing of EAP
    keying material and parameters between peer ports of the same link
    type is allowed, the peer identifier used within the Secure
    Association Protocol exchange SHOULD also be distinct from any port
    identifier.
 
    AAA protocols such as RADIUS [RFC3579] and Diameter [RFC4072]
    provide a mechanism for the identification of AAA clients; since
    the EAP authenticator and AAA client are always co-resident, this
    mechanism is applicable to the identification of EAP
    authenticators.
 
    RADIUS [RFC2865] requires that an Access-Request packet contain one
    or more of the NAS-Identifier, NAS-IP-Address and NAS-IPv6-Address
    attributes.  Since a NAS may have more than one IP address, the
    NAS-Identifier attribute is RECOMMENDED for the unambiguous
    identification of the EAP authenticator.
 
    From the point of view of the AAA server, EAP keying material and
    parameters are transported to the EAP authenticator identified by
    the NAS-Identifier attribute.  Since an EAP authenticator MUST NOT
    share EAP keying material or parameters with another party, if the
    EAP peer or AAA server detects use of EAP keying material and
    parameters outside the scope defined by the NAS-Identifier, the
    keying material MUST be considered compromised.
 
    In order to ensure that lower layer identifies are securely
    verified by all parties, it is recommended that lower layers:
 
[a]  Specify the lower layer parameters used to identify the
    authenticator and peer;
 
[b]  Communicate the lower layer identities between the peer and
    authenticator within phase 0;
 
[c]  Communicate the lower layer authenticator identity between the
    authenticator and backend server within the NAS-Identifier
    attribute;
 
[d]  Include the lower layer identities within channel bindings (if
    supported) in phase 1a, ensuring that they are communicated between
    the EAP peer and server;

[e] Securely verify the lower layer identities within phase 2a;
 
[f]  Utilize the advertised lower layer identities to enable the peer
    and authenticator to verify that keys are maintained within the
    advertised scope;"

The newly inserted Section 3.2 reads as follows:

"3.2. Key Scope
 
  Absent explicit specification within the lower layer, after the
  completion of phase 1b, EAP keying material and parameters are bound
  to the EAP peer and authenticator, but are not bound to a specific
  peer or authenticator port.
 
  While EAP Keying Material passed down to the lower layer is not
  intrinsically bound to particular authenticator and peer ports,
  Transient Session Keys MAY be bound to particular authenticator and
  peer ports by the Secure Association Protocol.  However, a lower
  layer MAY also permit TSKs to be used on multiple peer and/or
  authenticator ports, providing that TSK freshness is guaranteed (such
  as by keeping replay counter state within the authenticator).
  In order to further limit the key scope the following measures are
  suggested:
[a]  The lower layer MAY specify additional restrictions on key usage,
    such as limiting the use of EAP keying material and parameters on
    the EAP peer to the port over which on the EAP conversation was
    conducted.
 
[b]  The backend authentication server and authenticator MAY implement
    additional attributes in order to further restrict the scope of EAP
    keying material.  For example, in 802.11, the backend
    authentication server may provide the authenticator with a list of
    authorized Called or Calling-Station-Ids and/or SSIDs for which EAP
    keying material is valid.
[c]  Where the backend authentication server provides attributes
    restricting the key scope, it is RECOMMENDED that restrictions be
    securely communicated by the authenticator to the peer.  This can
    be accomplished using the Secure Association Protocol,  but also
    can be accomplished via the EAP method or the lower layer."
 
In Section 5.5, Change:
 
" In order to enable key binding and authorization of all parties, it
  is RECOMMENDED that the parties use a set of identities that are
  consistent between the conversation phases.  RADIUS [RFC2865] and
  Diameter NASREQ [RFC4005] require that the NAS/EAP authenticator
  identify itself by including one or more identification attributes
  within an Access-Request packet (NAS-Identifier, NAS-IP-Address, NAS-
  IPv6-Address).
  Since the backend authentication server provides EAP keying material
  for use by the EAP authenticator as identified by these attributes,
  where an EAP authenticator may have multiple ports, it is RECOMMENDED
  for the EAP authenticator to identify itself using NAS identification
  attributes during the Secure Association Protocol exchange with the
  EAP peer.  This enables the EAP peer to determine whether EAP keying
  material has been shared between EAP authenticators as well as to
  confirm with the backend authentication server that an EAP
  authenticator proving possession of EAP keying material during the
  Secure Association Protocol was authorized to obtain it.  Typically,
  the NAS-Identifier attribute is most convenient for this purpose,
  since a NAS/authenticator may have multiple IP addresses.
  Similarly, the backend authentication server authorizes the EAP
  authenticator to provide access to the EAP peer identified by the
  Peer-ID, securely verified during the EAP authentication exchange.
  In order to determine whether EAP keying material has been shared
  between EAP peers, where the EAP peer has multiple ports it is
  RECOMMENDED for the EAP peer to identify itself using the Peer-ID
  during the Secure Association Protocol exchange with the EAP
  authenticator."

To:
" In order to enable key binding and authorization of all parties, it
  is RECOMMENDED that the parties use a set of identities that are
  consistent between the conversation phases.  Consistently identifying
  the EAP authenticator enables the EAP peer to determine whether EAP
  keying material has been shared between EAP authenticators as well as
  to confirm with the backend authentication server that an EAP
  authenticator proving possession of EAP keying material during the
  Secure Association Protocol was authorized to obtain it.
  Identification issues are discussed in Section 2.2 and key scope
  issues are discussed in Section 3.2."

Proposed Resolution: Accept

Issue 348: Definition of Lower Layer
Submitter name: Vidya Narayanan
Submitter email address: vidyan@qualcomm.com
Date Submitted: April 6, 2006
Reference: http://lists.frascone.com/pipermail/eap/msg04184.html
Document: Keying-11
Comment type: E
Priority: S
Section:
Rationale/Explanation of issue:

I just looked up RFC3748 and the EAP Keying Framework and realized that
there isn't a definition for the term "lower layer". I would recommend
adding a definition to the terminology section of the keying framework
draft. Lower layer, to me means the layer over which EAP runs. Between
the peer and the authenticator, this would be the layer that runs the
secure association protocol to derive TSKs, while between the
authenticator and the AS, this would be the AAA protocol carrying EAP,
for instance.

[Bernard Aboba]

RFC 3748 Section 2.2 says:

"Lower layer.  The lower layer is responsible for transmitting and
receiving EAP frames between the peer and authenticator."

How would this do as a definition of Lower Layer?

[Glen Zorn]

How about "carrying" instead of "transmitting and receiving"?

[Bernard Aboba] Sounds good.

Proposed Resolution: Accept

Issue 349: Yet More NITs
Submitter name: Bernard Aboba
Submitter email address: aboba@internaut.com
Date Submitted: April 12, 2006
Reference: http://lists.frascone.com/pipermail/eap/msg04205.html
Document: Keying-11
Comment type: E
Priority: S
Section:
Rationale/Explanation of issue:

Move from Section 5 to Section 1.2:
 
"The terms "Cryptographic binding", "Cryptographic separation",
 "Key strength" and "Mutual authentication" are
defined in [RFC3748] and are used with the same
meaning in this document."

In Section 1.2 change "frequently" to "also frequently"

Add the following definition of "Secure Association Protocol":
 
An exchange that occurs between the EAP peer and authenticator
in order to manage the creation and deletion of unicast and
multicast security associations.

In Section 2.1, change:
 
"directly from the MSK, as described in [RFC2716]. This method
is NOT RECOMMENDED, since were PPP to support caching, this
could result in stale TSKs.  As a result, once the PPP session"

To:
 
"directly from the MSK, as described in [RFC2716].  This method
is NOT RECOMMENDED, since if PPP were to support caching, this
could result in TSK reuse.  As a result, once the PPP session"

In Section 2.2, change:
 
"  This specification does not impose constraints on the architecture of
  the EAP authenticator or peer.  Any of the authenticator
  architectures described in [RFC4118] can be used.  For example, it is
  possible for multiple base stations and a "controller" (e.g. WLAN
  switch) to comprise a single EAP authenticator.  In such a situation,
  the "base station identity" is irrelevant to the EAP method
  conversation, except perhaps as an opaque blob to be used in Channel
  Bindings.  Many base stations can share the same authenticator
  identity.  As a result, lower layers need to identify EAP peers and
  authenticators unambiguously, without incorporating implicit
  assumptions about peer and authenticator architectures."

To:
 
"  This specification does not impose constraints on the architecture of
  the EAP authenticator or peer.  Any of the authenticator
  architectures described in [RFC4118] can be used.  As a result, lower
  layers need to identify EAP peers and authenticators unambiguously,
  without incorporating implicit assumptions about peer and
  authenticator architectures.
  For example, it is possible for multiple base stations and a
  "controller" (e.g. WLAN switch) to comprise a single EAP
  authenticator.  In such a situation, the "base station identity" is
  irrelevant to the EAP method conversation, except perhaps as an
  opaque blob to be used in Channel Bindings.  Many base stations can
  share the same authenticator identity."

In Section 2.2.1, change:
 
"   The EAP method conversation is between the EAP peer and server, as
  identified by the Peer-ID and Server-ID.  The authenticator identity,
  if considered at all by the EAP method, is treated as an opaque blob
  for the purposes of Channel bindings.  However, the Secure
  Association Protocol conversation is between the peer and the
  authenticator, and therefore the authenticator and peer identities
  are relevant to that exchange, and define the scope of use of the EAP
  keying material passed down to the lower layer."

To:
 
"  The EAP method conversation is between the EAP peer and server, as
  identified by the Peer-ID and Server-ID.  The authenticator identity,
  if considered at all by the EAP method, is treated as an opaque blob
  for the purposes of Channel Bindings (see Section 5.12).  However,
  the Secure Association Protocol conversation is between the peer and
  the authenticator, and therefore the authenticator and peer
  identities are relevant to that exchange, and define the scope of use
  of the EAP keying material passed down to the lower layer."

There is redundancy between Section 2.2.1 and Section 5.5, which says:
 
"  In order to enable key binding and authorization of all parties, it
  is RECOMMENDED that the parties use a set of identities that are
  consistent between the conversation phases."

In Section 2.2.1, Change:

"In order to ensure that lower layer identifies are securely verified by all parties, it is recommended that lower layers:"

To:

"In order to ensure that lower layer identities are securely verified by all parties, it is RECOMMENDED that the parties use a set of identities that are consistent between the conversation phases.
This can be achieved by:"


Delete the above paragraph from Section 5.5.

In Section 2.2.2 change:


" "virtual authenticators", the EAP peer and authenticator may not be able to
agree on the scope of the EAP keying material, creating
a security vulnerability. For"


To:
 
" "virtual authenticators", a number of security
vulnerabilities may arise if the peer and authenticator
are not correctly identified.  For "

Change:

"Several measures are recommended to address these issues:"

To:

"in order to address these issues:"

In Section 3, change:
 
"key derivation, but not key management.  While EAP
methods may derive keying material, EAP
does not provide for the management of exported or derived keys."

To:

"key derivation, but does not provide for the management of exported or derived keys."'

In Section 3.1, delete:
 
"As shown in Figure 3, both the peer and authenticator may have more
than one physical or virtual port, and as a result SHOULD identify
themselves in a manner that is independent of their attached ports."

This is redundant because Section 2.2.1 already states:
 
"    Since an authenticator may have multiple ports, the authenticator
    identifier used within the Secure Association Protocol exchange
    SHOULD be distinct from any port identifier (e.g. MAC address).
    Similarly, where a peer may have multiple ports, and sharing of EAP
    keying material and parameters between peer ports of the same link
    type is allowed, the peer identifier used within the Secure
    Association Protocol exchange SHOULD also be distinct from any port
    identifier."

In Section 3.1 [b], add: "Identity verification is discussed in Section 2.2.1."

Change:

"Use of the key naming mechanism described in this document is RECOMMENDED."

to

"Use of the key naming mechanism described in Section 1.4.1 is RECOMMENDED."

In Section 3.1 [g] Change:

"Key resynchronization."

To:

"Key state resynchronization"

In Section 3.1 [j], add:

"See [RFC3748] Section 2.4 for more discussion."

In Section 3.4, change:

"re-key TEKs during a conversation."

To:

"re-key TEKs during an EAP conversation."

There is redundancy between Section 3.5 and Section 5.7, which states:
 
"    As described in [RFC3580] Section 3.17, When sent in an Access-
    Accept along with a Termination-Action value of RADIUS-Request, the
    Session-Timeout attribute specifies the maximum number of seconds
    of service provided prior to re-authentication.  [IEEE-802.11i]
    also utilizes the Session-Timeout attribute to limit the maximum
    time that EAP keying material may be cached."

In Section 3.5, change:
 
"     On the authenticator,  where EAP is used for authentication, the
    Session-Timeout value represents the maximum session time prior to
    re-authentication, as described in [RFC3580].  Where EAP is used
    for pre-authentication, the session may not start until some future
    time, or may never occur.  Nevertheless, the Session-Timeout value
    represents the maximum time after which transported EAP keying
    material, and all keys calculated from it, will have expired on the
    authenticator.  If the session subsequently starts, re-
    authentication will be initiated once the Session-Time has expired.
    If the session never started, or started and ended, by default keys
    transported by AAA and all keys calculated from them will be
    expired by the authenticator prior to the future time indicated by
    Session-Timeout.  Note that in future additional attributes may be
    specified to control the lifetime of cached keys; these attributes
    may modify the meaning of the Session-Timeout attribute in specific
    circumstances."

To:
 
"    On the authenticator,  where EAP is used for authentication, the
    Session-Timeout attribute represents the maximum session time prior
    to re-authentication.  As described in [RFC3580] Section 3.17, when
    sent in an Access-Accept along with a Termination-Action value of
    RADIUS-Request, the Session-Timeout attribute specifies the maximum
    number of seconds of service provided prior to re-authentication.
 
    Where EAP is used for pre-authentication, the session may not start
    until some future time, or may never occur.  Nevertheless, the
    Session-Timeout value represents the maximum time after which
    transported EAP keying material, and all keys calculated from it,
    will have expired on the authenticator.  If the session
    subsequently starts, re-authentication will be initiated once the
    Session-Time has expired. If the session never started, or started
    and ended, by default keys transported by AAA and all keys
    calculated from them will be expired by the authenticator prior to
    the future time indicated by Session-Timeout; this feature is
    utilized by [IEEE-802.11i].  Note that in future additional
    attributes may be specified to control the lifetime of cached keys;
    these attributes may modify the meaning of the Session-Timeout
    attribute in specific circumstances."

Delete the above paragraph from Section 5.7.

Combine sections 5.1 and 5.

In Section 5, Move [2] to [10] and renumber the other threats.

Add the following additional bullets:
[8] An attacker may attempt a man-in-the-middle attack in order to gain access
to the network.
[9] An attacker may launch a denial of service attack against the EAP
peer, authenticator or backend authentication server.


In Section 5.11, change:

"see [I-D.arkko-eap-service-identity-auth]."

To:

"see the discussion in Section 1.4 as well as [I-D.arkko-eap-service-identity-auth]."
 
Add the following non-normative reference:
[RFC4372]
Adrangi, F., Lior, A., Korhonen, J. and J. Loughney,
Chargeable User Identity", RFC 4372, January 2006.

Proposed Resolution: Accept

Issue 350: Requirements Confusion
Submitter name: Bernard Aboba
Submitter email address: aboba@internaut.com
Date Submitted: April 12, 2006
Reference: http://lists.frascone.com/pipermail/eap/msg04206.html
Document: Keying-11
Comment type: T
Priority: S
Section:
Rationale/Explanation of issue:

Lower layer identities are not securely verified in phase 2a, they are just exchanged. Secure verification requires Channel Bindings.

In Section 2.2.1, change:

"Securely verify the lower layer identities within phase 2a;"

To:

"Supporting the integrity-protected exchange of identities within phase 2a;"

Section 3.1 states:
 
"As part of secure capabilities
negotiation, the Secure Association Protocol MUST support integrity
and replay protection of all messages."

This contradicts Section 5.3, which states:
 
" In order to prevent forgery of Secure Association Protocol frames,
  per-frame authentication and integrity protection is RECOMMENDED on
  all messages."

It is also redundant with Section 5.6, which states:
 
" In order to prevent replay of Secure Association Protocol frames,
  replay protection is REQUIRED on all messages.  [IEEE-802.11i]
  supports replay protection on all messages within the 4-way
  handshake."

Recommendation is to change:
 
"As part of secure capabilities
negotiation, the Secure Association Protocol MUST support integrity
and replay protection of all messages."

To:
 
"The Secure Association Protocol MUST
support integrity and replay protection of all capability
negotiation messages."
In Section 3.8 (Key Wrap), material is included that is more relevant to
Section 5.4 (Unauthorized Disclosure):
"  Where an untrusted AAA intermediary is present (such as a RADIUS
  proxy or a Diameter agent), and data object security is not used,
  transported keying material may be recovered by an attacker in
  control of the untrusted intermediary.  Possession of transported
  keying material enables decryption of data traffic sent between the
  peer and a specific authenticator.  However, as long as EAP keying
  material or keys derived from it are only utilized by a single
  authenticator, compromise of the transported keying material does not
  enable an attacker to impersonate the peer to another authenticator.
  Vulnerability to an untrusted AAA intermediary can be mitigated by
  implementation of redirect functionality, as described in [RFC3588]
  and [RFC4072]."

Recommendation is to delete this material from Section 3.8 and insert the following text in
Section 5.4:

 
" Within the AAA
  protocol, the authorization attributes provide the information
  binding the transported keying material to the appropriate context.
  For example, transported keying material is destined for the EAP
  authenticator identified by the NAS-Identifier attribute within the
  request, and relates to the EAP peer identified by the Peer-ID, User-
  Name [RFC2865] or CUI [RFC4372] attributes.
 [RFC2607] Section 7 describes the security issues ocurring when the
  authenticator and backend authentication server do not communicate
  directly.  Where an untrusted AAA intermediary is present (such as a
  RADIUS proxy or a Diameter agent), and data object security is not
  used, transported keying material may be recovered by an attacker in
  control of the untrusted intermediary.  As discussed in Section 2.1,
  unless the TSKs are derived independently from EAP keying material
  (as in IKEv2), possession of transported keying material enables
  decryption of data traffic sent between the peer and a specific
  authenticator.  However, as long as EAP keying material or keys
  derived from it are only utilized by a single authenticator,
  compromise of the transported keying material does not enable an
  attacker to impersonate the peer to another authenticator.
  Vulnerability to an untrusted AAA intermediary can be mitigated by
  implementation of redirect functionality, as described in [RFC3588]
  and [RFC4072]."

Proposed Resolution: Accept

Issue 351: Incomplete EAP Pre-authentication Discussion
Submitter name: Bernard Aboba
Submitter email address: aboba@internaut.com
Date Submitted: April 21, 2006
Reference: http://lists.frascone.com/pipermail/eap/msg04212.html
Document: Keying-12
Comment type: T
Priority: 1
Section: 4.1
Rationale/Explanation of issue:

It has been pointed out (in draft-vidya-eap-keying-gap-analysis as well as discussion in the HOAKEY BOF) that there are a number of issues raised by EAP pre-authentication. Section 4 includes EAP pre-authentication in a list of handoff techniques and claims that "The sections that follow discuss the security vulnerabilities introduced by the above mechanisms." However, Section 4 does not include a discussion of EAP pre-authentication concerns.

The proposed resolution is to add a Section 4.1, with the following text:

"4.1 EAP Pre-authentication

EAP pre-authentication enables an EAP peer to pre-establish EAP keying material with
an authenticator prior to attaching to it. Where there is sufficient time to pre-establish
keying material prior to changing the point of attachment, this may enable the peer to
remove EAP authentication from the critical path for handoff, reducing latency.


EAP pre-authentication exchanges typically differ from a normal EAP conversation only
with respect to the lower layer encapsulation. For example, in [IEEE-802.11i], EAP
pre-authentication frames are encapsulated within a distinct Ethertype, but otherwise
conform to the encapsulation described in [IEEE-802.1X]. As a result, an EAP
pre-authentication conversation that eventually results in establishment of security
associations differs little from the model described in Section 1.3, other than the
potential introduction of a delay between Phase 1 and Phase 2. However, since
a peer may complete EAP pre-authentication with an authenticator without eventually
attaching to it, it is possible that Phase 2 will not occur.


[RFC3580] describes only minor differences in the AAA exchange occurring
as a result of EAP pre-authentication as compared with an ordinary EAP authentication
exchange. For example, since in 802.11i an Association exchange does
not occur prior to EAP pre-authentication, the SSID is not yet
known. As a result, an Access-Request generated as the
result of pre-authentication cannot include the SSID
within the Called-Station-Id attribute as described in
[RFC3580] Section 3.20. Since a peer may never
associate with an authenticator to which it pre-authenticated,
an Accounting-Request signifying the start of service may
never be sent, or may only be sent with a substantial delay
after the completion of authentication.


Since an EAP pre-authentication exchange differs from an EAP authentication exchange
only in subtle ways, the backend authentication server may not be aware of
whether it is engaging in a pre-authentication exchange,
resulting in operational or security problems. For example,
where the authenticator does not include the SSID within the Called-Station-Id
attribute in ordinary requests, pre-authentication requests
may appear indistinguishable. As a result, the backend
authentication server may not be able to correctly calculate
the simultaneous sessions in progress, either preventing
successful completion of pre-authentication or enabling
the peer to engage in more simultaneous sessions than
they are authorized for.

 
In order to allow backend authentication servers to handle
pre-authentication requests more reliably, it is recommended
that EAP pre-authentication requests be explicitly identified
within AAA protocols.  Also, in order to supress unnecessary
EAP pre-authentication exchanges, it is recommended that
authenticators unambiguously identify themselves as described
in Section 2.2.2, allowing the peer to determine whether it
has previously established EAP keying material with that
authenticator."

Proposed Resolution: Accept

Issue 352: Channel Binding Issue
Submitter name: Yoshihiro Ohba
Submitter email address: yohba@tari.toshiba.com
Date Submitted: April 25, 2006
Reference: http://lists.frascone.com/pipermail/eap/msg04216.html
Document: Keying-12
Comment type: T
Priority: 1
Section: 5.11
Rationale/Explanation of issue:

Reference [I-D.draft-ohba-eap-aaakey-binding] should be obsoleted by
its successor, i.e., [I-D.draft-ohba-eap-channel-binding] which
provides more generic, complete and extensible way of channel binding.
Note that pre-configuration of the parameter set on AS is an important
property to achieve Channel Binding in 3-party key management.

Change:

"  It is also possible to achieve Channel Bindings without transporting
   data over EAP.  For example, see [I-D.draft-ohba-eap-aaakey-binding].
   In this approach the authenticator informs the backend server about
   the Channel Binding parameters using AAA, and the backend server
   calculates transported keying material based on this parameter set,
   making it impossible for the peer and authenticator to complete the
   Secure Association Protocol if there was a mismatch in the
   parameters."

to:

"  It is also possible to achieve Channel Bindings without
   transporting data over EAP.  For example, see
   [I-D.draft-ohba-eap-channel-binding].  In this approach the backend
   server calculates transported keying material based on the
   parameter set pre-configured for the authenticator, making it
   impossible for the peer and authenticator to complete the Secure
   Association Protocol if there was a mismatch in the parameters."
[Bernard Aboba] In looking through the document, I believe it is best that
discussion of Channel Bindings be concentrated in Section 5.11. 

The proposed resolution is as follows:

In Section 1.4, change the Channel Binding entry from:

"Channel Bindings

Channel Bindings include lower layer parameters that are verified
for consistency between the EAP peer and server. In order to
avoid introducing media dependencies, EAP methods that transport
Channel Binding data MUST treat this data as opaque octets.

Typically the EAP method imports Channel Bindings from the lower
layer on the peer, and transmits them securely to the EAP server,
which exports them to the lower layer or AAA layer. However,
transport may occur from EAP server to peer, or may be bi-
directional. On the side of the exchange (peer or server) where
Channel Bindings are verified, the lower layer or AAA layer passes
the result of the verification (TRUE or FALSE) up to the EAP
method.

While the verification can be done either by the peer or the
server, typically only the server has the knowledge to determine
the correctness of the values, as opposed to merely verifying
their equality. See Section 5.11 for further discussion."

To:

"Channel Bindings

Channel Bindings include lower layer parameters that are verified
for consistency between the EAP peer and server. In order to
avoid introducing media dependencies, EAP methods that transport
Channel Binding data MUST treat this data as opaque octets.
See Section 5.11 for further discussion."

Replace Section 5.11 with the following:

"5.11. Channel Binding

It is possible for a compromised or poorly implemented EAP
authenticator to communicate incorrect information to the EAP peer
and/or server. This may enable an authenticator to impersonate
another authenticator or communicate incorrect information via out-
of-band mechanisms (such as via AAA or the lower layer).

Where EAP is used in pass-through mode, the EAP peer does not verify
the identity of the pass-through authenticator. Within the Secure
Association Protocol, the EAP peer and authenticator only demonstrate
mutual possession of the transported EAP keying material. This
creates a potential security vulnerability, described in [RFC3748]
Section 7.15.

As described in the previous section, it is possible for a proxy to
detect a AAA client attempting to impersonate another authenticator
(such by sending incorrect Called-Station-Id [RFC2865], NAS-
Identifier [RFC2865], NAS-IP-Address [RFC2865] or NAS-IPv6-Address
[RFC3162] attributes via the AAA protocol). However, it is possible
for a pass-through authenticator acting as a AAA client to provide
correct information to the backend authentication server while
communicating misleading information to the EAP peer via the lower
layer.

For example, a compromised authenticator can utilize another
authenticator's Called-Station-Id or NAS-Identifier in communicating
with the EAP peer via the lower layer. Also, a pass-through
authenticator acting as a AAA client can provide an incorrect peer
Calling-Station-Id [RFC2865][RFC3580] to the backend authentication
server via the AAA protocol.

As noted in [RFC3748] Section 7.15, this vulnerability can be
addressed by EAP methods that support a protected exchange of channel
properties such as endpoint identifiers, including (but not limited
to): Called-Station-Id [RFC2865][RFC3580], Calling-Station-Id
[RFC2865][RFC3580], NAS-Identifier [RFC2865], NAS-IP-Address
[RFC2865], and NAS-IPv6-Address [RFC3162].

Using such a protected exchange, it is possible to match the channel
properties provided by the authenticator via out-of-band mechanisms
against those exchanged within the EAP method. Typically the
EAP method imports Channel Bindings from the lower
layer on the peer, and transmits them securely to the EAP server,
which exports them to the lower layer or AAA layer. However,
transport may occur from EAP server to peer, or may be bi-directional. 
On the side of the exchange (peer or server) where
Channel Bindings are verified, the lower layer or AAA layer passes
the result of the verification (TRUE or FALSE) up to the EAP
method. While the verification can be done either by the peer or the
server, typically only the server has the knowledge to determine
the correctness of the values, as opposed to merely verifying
their equality. For further discussion, see 
[I-D.arkko-eap-service-identity-auth].

It is also possible to achieve Channel Bindings without transporting
data over EAP. For example, see [I-D.draft-ohba-eap-channel-binding]. 
In this approach the EAP method includes Channel Bindings in the
calculation of exported EAP keying material, making it impossible for
the peer and authenticator to complete the Secure Association Protocol 
if there is a mismatch in the Channel Bindings. However, this approach
can only be applied where EAP methods generating key material are used
along with lower layers that utilize the keying material. For example,
this mechanism would not enable verification of Channel Bindings on
wired IEEE 802 networks which do not support data frame protection."
[Yoshihiro Ohba]
The last sentence is correct when 802.1X is used as EAP transport over
wired IEEE 802 networks, but not correct when PANA is used where it is
still possible to enable verification of Channel Bindings with this
scheme by protected PANA-Bind exchange as I mentioned to Joe.

I would suggest revising the last two sentences something like:

"However, this approach can only be applied where EAP methods
generating key material are used
along with lower layers that utilize the keying material for data frame frame 
protection.  For example, this mechanism would not enable verification of Channel
Bindings on wired IEEE 802 networks using IEEE 802.1X."
[Bernard Aboba]
Here is the new paragraph:

"It is also possible to achieve Channel Bindings without transporting
data over EAP. For example, see [I-D.draft-ohba-eap-channel-binding].
In this approach the EAP method includes Channel Bindings in the
calculation of exported EAP keying material, making it impossible for
the peer and authenticator to complete the Secure Association Protocol
if there is a mismatch in the Channel Bindings.
However, this approach can only be applied where EAP methods
generating key material are used
along with lower layers that utilize the keying material for data frame frame
protection. For example, this mechanism would not enable verification of
Channel Bindings on wired IEEE 802 networks using IEEE 802.1X."

Is this what you intended?
[Yoshihiro Ohba] 
Here is the intended text:

"It is also possible to achieve Channel Bindings without transporting
data over EAP. For example, see [I-D.draft-ohba-eap-channel-binding].
In this approach the EAP method includes Channel Bindings in the
calculation of exported EAP keying material, making it impossible for
the peer and authenticator to complete the Secure Association Protocol
if there is a mismatch in the Channel Bindings. However, this
approach can only be applied where EAP methods generating key material
are used along with lower layers that utilize the keying material.
For example, this mechanism would not enable verification of Channel
Bindings on wired IEEE 802 networks using IEEE 802.1X."

Proposed Resolution: Accept

Issue 353: Definition of Session-Id/Method-Id
Submitter name: Joe Salowey
Submitter email address: jsalowey@cisco.com
Date first submitted: 4/30/2006
Reference: http://lists.frascone.com/pipermail/eap/msg04220.html
Document: KEYING-12
Comment type: 'E'ditorial
Priority: '1' Should fix
Section: 1.2
Rationale/Explanation of issue:

It seems that EAP Session-ID/Method-ID should be define here

Requested change:

Add Definition for EAP Session-ID/Method-ID

[Bernard Aboba] Resolution is to add the following definition of Session-Id and delete Method-Id:

"Session-Id

The EAP Session-Id uniquely identifies an EAP session between an EAP peer
(as identified by the Peer-Id) and server (as identified by the
Server-Id). The EAP Session-Id consists of the concatenation of the
Expanded EAP Type Code (including the Type, Vendor-Id and Vendor-Type
fields defined in [RFC3748] Section 5.7) and the temporally
unique identifier obtained from the method. This unique identifier is
typically constructed from nonces
or counters used within the EAP method exchange. The
inclusion of the Expanded Type Code in the EAP Session-Id ensures
that each EAP method has a distinct Session-Id space. Since an EAP
session is not bound to a particular authenticator or specific ports
on the peer and authenticator, the authenticator port or identity are
not included in the Session-Id."

Proposed Resolution: Accept

Issue 354: Method-Id and Session-Id
Submitter name: Joe Salowey
Submitter email address: jsalowey@cisco.com
Date first submitted: 4/30/2006
Reference: http://lists.frascone.com/pipermail/eap/msg04221.html
Document: KEYING-12
Comment type: 'T'echnical
Priority: '1' Should fix
Section: 1.4
Rationale/Explanation of issue:

This document defines both session and Method Id. It seems that it
would be sufficient and less confusing to define only one called the
session Id.

Suggested definition:

"Session-Id

The Session-Id uniquely identifies an EAP session between an EAP peer
(as identified by the Peer-Id) and server (as identified by the
Server-Id). The EAP Session-Id consists of the concatenation of the
Expanded EAP Type Code (including the Type, Vendor-Id and Vendor-Type
fields defined in [RFC3748] Section 5.7) and the temporally
unique identifier obtained from the method. This unique identifier is
typically constructed from nonces
or counters used within the EAP method exchange. The
inclusion of the Expanded Type Code in the EAP Session-Id ensures
that each EAP method has a distinct Session-Id space. Since an EAP
session is not bound to a particular authenticator or specific ports
on the peer and authenticator, the authenticator port or identity are
not included in the Session-Id."

Replace references to method-ID with Session-Id.

Proposed Resolution: Accept

Issue 355: Data Associated with Authentication
Submitter name: Joe Salowey
Submitter email address: jsalowey@cisco.com
Date Submitted: April 30, 2006
Reference: http://lists.frascone.com/pipermail/eap/msg04222.html
Document: KEYING-12
Comment type: 'E'ditorial
Priority: '1' Should fix
Section: Section 1.4
Rationale/Explanation of issue:
Length description of problem

This section contains text that seem to indicate that an EAP method has
access to certain data for authorization. While this may be true in
some cases this is not generally true.

Suggested revision:

"As illustrated in Figure 2, the EAP method key derivation has at the
root the long term credential utilized by the selected EAP method.
If authentication is based on a pre-shared key, the parties store the
EAP method to be used and the pre-shared key. The EAP server also
stores the peer's identity as well as additional information. This
information is typically used outside of the EAP method to determine if access to
some service should be granted. The peer stores information necessary
to choose which secret to use for which service.

If authentication is based on proof of possession of the private key
corresponding to the public key contained within a certificate, the
parties store the EAP method to be used and the trust anchors used to
validate the certificates. The EAP server may also store additional
information associated with the peer's identity and the peer stores
information necessary to choose which certificate to use for which service."

Proposed Resolution: Accept

Issue 356: Ciphersuite Independence
Submitter name: Joe Salowey
Submitter email address: jsalowey@cisco.com
Date Submitted: April 30, 2006
Reference: http://lists.frascone.com/pipermail/eap/msg04223.html
Document: KEYING-12
Comment type: 'E'ditorial
Priority: '2' May fix
Section: 1.6.4
Rationale/Explanation of issue:

Section 3.7 implies that there is a system level coordination between
the strength of the keys exported by the EAP method and the strength of
keys required by the lower layer.

This section should reference this and indicate that the coordination is
done outside of EAP.

[Bernard Aboba]  While the negotiation of the appropriate group size occurs within EAP,
there is no coordination between the lower layer and EAP methods
with respect to the required key strength.

The proposed resolution is to replace the first paragraph of Section 3.7 with the following:

"3.7. Key Strength

As noted in Section 2.1, EAP lower layers determine TSKs in
different ways. Where EAP keying material is utilized in
the derivation, encryption or authentication of TSKs, it
is possible for EAP key generation to represent the weakest
link.

In order to ensure that EAP methods produce keying
material of an appropriate symmetric key strength,
it is RECOMMENDED that EAP methods utilizing public
key cryptography choose a public key that has a
cryptographic strength providing the required level
of attack resistance. This is typically provided by
configuring EAP methods, since there is
no coordination between the lower layer and EAP method
with respect to minimum required symmetric key strength."

[Joe Salowey] The text looks OK to me.

Proposed Resolution: Accept

Issue 357: Channel Binding Definition
Submitter name: Vidya Narayanan
Submitter email address: vidyan@qualcomm.com
Date Submitted: May 1, 2006
Reference: http://lists.frascone.com/pipermail/eap/msg04227.html
Document: KEYING-12
Comment type: 'T'echnical
Priority: '1' Should fix
Section: 1.2
Rationale/Explanation of issue:

The document defines channel binding
as a communication within an EAP method - this seems a bit restrictive,
given that channel binding information could be carried out-of-band as
well. The only requirement is that the information be integrity
protected between the peer and server. 
    
Requested change:
Change wording to: 

"The communication of integrity-protected
channel properties such as endpoint identifiers which can be
compared to values communicated via out of band mechanisms (such as
via a AAA or lower layer protocol)."
[Jari Arkko] Here is a proposed definition:
"Channel Binding

A secure mechanism for ensuring that a chosen set of channel
properties (such as endpoint identifiers) are agreed upon by the EAP
peer, authenticator and server."
[Vidya]
The proposed text by Jari went through some revisions as I recall, based
on some discussions on the list. Here is the latest on that text I
pulled out from one of Jari's email, subsequent to the discussions: 

"I'd be happy to restrict the definition to peer and server agreeing
that they have the same view of the channel properties claimed by the
authenticator.

(But part of the distinction may also be in the specific implementation
of the "agreement"; what we are looking for is that the values agree,
without specifying who sends the values and who verifies them.)"

Based on the above, how about the following definition? 

"Channel Binding

A secure mechanism for ensuring that a chosen set of channel properties
(such as authenticator identifiers and properties) are agreed upon by
the EAP peer and server." 
[Yoshihiro Ohba] After Jari's email, I created a thread "Channel Binding analysis" for
further discussion.  I still believe three party agreement is
essential for Channel Binding.  To me the two party agreement
mentioned above looks similar to issueing a Kerberos ticket that is
never verified by the consumers of the ticket.
[Bernard Aboba] The text mentions authenticator identifiers and properties, which presumably 
were agreed upon by the authenticator that sent them (unless it's a forgery). 
However, there are also properties which don't relate to the authenticator 
itself (such as Calling-Station-Id) but are transmitted by the authenticator 
(e.g. to the backend server). Are there any cases where a property to be verified 
by Channel Bindings is *not* transmitted by the authenticator? Would the following work?

"A secure mechanism for ensuring that a subset of the parameters transmitted by the 
authenticator (such as authenticator identifiers and properties) are agreed upon by 
the EAP peer and server."

I'm not sure what the definition of a "channel property" is in this case. 
One could argue for example that the Calling-Station-Id is not a property of the 
channel -- but its verification is still considered part of Channel Bindings.
[Yoshihiro Ohba] Transmitted to whom?  I think not all parameters do not need to be
transmitted to the server while all parameters need to be transmitted
to the peer.  In fact, if the server has the pre-established knowledge
about the parameters, the only information that needs to be sent from
authenticator to the server is authenticator identity which can be
used as the primary database look-up key to find out other parameters
associated with the authenticator identity.

Also I don't understand why peer's lower layer parameter such as
Calling-Station-Id needs to be agreed by peer and server.  What is the
actual threat without agreement?
[Bernard Aboba]
Transmitted to whom?  I think not all parameters do not need to be
transmitted to the server while all parameters need to be transmitted
to the peer.

I was leaving it open. Some things might be transmitted to the peer but not the server, or vice versa. For example, the authenticator may send Calling-Station-Id to the AAA server, but it doesn't send it to the peer (the peer includes that in the source address).


 
In fact, if the server has the pre-established knowledge
about the parameters, the only information that needs to be sent from
authenticator to the server is authenticator identity which can be
used as the primary database look-up key to find out other parameters
associated with the authenticator identity.

How can the peer use channel binding parameters which it never received? So the authenticator needed to send it to the peer at least, no?


 
Also I don't understand why peer's lower layer parameter such as
Calling-Station-Id needs to be agreed by peer and server.  What is the
actual threat without agreement?

The threat is that the authenticator could lie about the Calling-Station-Id. The peer could then find out from the server that it got different information.

[Yoshi Ohba]

How about:

"It is expected that the parameters are also agreed upon by the peer
and authenticator via the lower layer if the authenticator is the
valid entity that advertised the parameters."
[Bernard Aboba]
How about this:

"A secure mechanism for ensuring that a subset of the parameters transmitted by the
authenticator (such as authenticator identifiers and properties) are agreed upon by
the EAP peer and server. It is expected that the parameters are also securely agreed
upon by the EAP peer and authenticator via the lower layer if the authenticator
advertised the parameters."

[Yoshihiro Ohba]

The text works for me.

Proposed Resolution: Accept

Issue 358: AAA-Key
Submitter name: Vidya Narayanan
Submitter email address: vidyan@qualcomm.com
Date Submitted: May 1, 2006
Reference: http://lists.frascone.com/pipermail/eap/msg04228.html
Document: KEYING-12
Comment type: 'E'ditorial
Priority: '2' May fix
Section: 1.2
Rationale/Explanation of issue:

Given that the term AAA-Key is not used elsewhere in the document, it
would be good to add a sentence clarifying that the definition is
provided as a clarification to the terminology used in older documents
and that it is no longer used.  
    
Requested change:

Add to AAA-Key definition: 

"This term is no longer used to refer to the MSK in this document."
[Bernard Aboba]  How about this? 
"AAA-Key
     The term AAA-Key is synonymous with MSK.  Since multiple keys may
     be transported by AAA, the term is potentially confusing and is not
     used in this document."

Proposed Resolution: Accept

Issue 359: Typo
Submitter name: Vidya Narayanan
Submitter email address: vidyan@qualcomm.com
Date Submitted: May 1, 2006
Reference: http://lists.frascone.com/pipermail/eap/msg04229.html
Document: KEYING-12
Comment type: 'E'ditorial
Priority: 'S' Must fix
Section: 1.4
Rationale/Explanation of issue:

Typo in Server-Id paragraph 
    
    Requested change:

s/method-specific peer identity/method-specific server identity/

Proposed Resolution: Accept

Issue 360: EMSK Transport
Submitter name: Vidya Narayanan
Submitter email address: vidyan@qualcomm.com
Date Submitted: May 1, 2006
Reference: http://lists.frascone.com/pipermail/eap/msg04230.html
Document: KEYING-12
Comment type: 'T'echnical
Priority: '1' Should fix
Section: 2
Rationale/Explanation of issue:

The section says "The EMSK MUST NOT be transported by the AAA layer."
Given that the EMSK usage is currently undefined, it is not clear if it
will be the AAA layer that derives further keys from the EMSK. In fact,
doing so will create disparate behavior at the peer and server, since
the peer does not have a AAA layer. Although this topic is pending
discussion, it seems restrictive to say MUST NOT here. It does make
sense, however, to say that the EMSK MUST NOT be transported to
additional parties. 
   
    Requested change:

Delete the sentence "The EMSK MUST NOT be transported by the AAA layer".

[Joe Salowey]

After reading the text again I would be OK removing the specific text
about the AAA layer.  

Proposed Resolution: Accept

Issue 361: Child key expiry
Submitter name: Vidya Narayanan
Submitter email address: vidyan@qualcomm.com
Date Submitted: May 1, 2006
Reference: http://lists.frascone.com/pipermail/eap/msg04231.html
Document: KEYING-12
Comment type: 'T'echnical
Priority: '2' May fix
Section: 3.3
Rationale/Explanation of issue:

This section states "When keying material exported by EAP methods
expires,  all keying material derived from the exported keying material expires, including
the TSKs." This seems to indicate that the keys derived from the EMSK
will also be expired when the EMSK expires. It is not yet clear if this
would apply to all kinds of keys derived from the EMSK. There may be
classes of keys derived from the EMSK for which different lifetime
guidelines apply. So, it may be good to clarify that the EMSK usage
documents will specify the guidelines for EMSK-based child keys. 
    
Requested change:

Change 

"When keying material exported by EAP methods expires,  all keying
material derived from the exported keying material expires, including
the TSKs." 

to 

"When keying material exported by EAP methods expires,  all keying
material derived from the exported keying material expires, including
the TSKs. Note that different lifetime guidelines may be specified in
future specifications for EMSK-based child keys."
[Bernard Aboba]

One of the unstated threat model assumptions is that any key can be compromised over a sufficient 
period of time. This includes the exported keys (MSK, EMSK). So the question is: if the MSK or 
EMSK are considered "stale" should the TSKs also be considered stale?

In a previous comment, it was noted that TSK derivation techniques differ, so that a TSK could 
be compromised even if the MSK/EMSK was not. Similarly, in protocols such as IKEv2, it might be 
possible to derive a TSK that would not be compromised even if the EMSK/MSK was compromised. 
For example, consider a 4096-bit DH used for IKEv2 TSK generation while the EAP method uses a 
512-bit DH. Since EAP keys are used in IKEv2 only for authentication, as long as IKEv2 does 
not reuse the MSK after it becomes stale (which it doesn't, because IKEv2 does not support 
caching), the TSK is not compromised.

Given this, I think the problem is with the words "including the TSKs." If the TSKs are not 
derived from the MSK/EMSK, then I don't think they should be considered stale once the 
MSK/EMSK is considered stale.

However, if a key is derived from the MSK/EMSK, then if the MSK/EMSK is compromised, then 
presumably the derived key is compromised as well, even if it is derived via PRF, mixing with 
nonces, etc. If the attacker has obtained the MSK/EMSK, then it can also obtain the derived keys.

[Laksminath Dondeti]

We hope no one is using a 512-bit DH in an EAP method, considering that EAP key derivation requirements 
(lengthwise, i.e., 64 octets of MSK, 64 octets of EMSK etc.) are as demanding as IKEv2's are. But, sure, 
the concern is valid. Some EAP methods use the PSK directly for key derivation whereas IKEv2 doesn't.

I am not sure we can safely say that no IKEv2 implementation will cache the EAP MSK as the PSK. After 
all, the PSK is only used for entity authentication and not for key distribution, and therefore, can 
be used for a decent amount of time without any issues. Recall also that an alternative might be 
password based PSKs which may not always be as strong as those coming from an EAP method (assuming 
one of the newer methods).

[Bernard Aboba]

In this particular case, we are talking about caching of EAP keying material within the IKEv2 lower 
layer. Caching of EAP keying material within the PANA lower layer is a separate issue. 

Perhaps we can say that RFC 4306 does not support key caching? It seems that an extension to IKEv2 
would be required to support this, since otherwise the IKE initiator and responder couldn't 
negotiate whether cached EAP keys are to be used, and if so, which ones.

[Laksminath Dondeti]

Given this, I think the problem is with the words "including the TSKs." If the TSKs are not 
derived from the MSK/EMSK, then I don't think they should be considered stale once the MSK/EMSK 
is considered stale.

However, if a key is derived from the MSK/EMSK, then if the MSK/EMSK is compromised, then presumably 
the derived key is compromised as well, even if it is derived via PRF, mixing with nonces, etc. If the 
attacker has obtained the MSK/EMSK, then it can also obtain the derived keys. 

I think there are several notes here, I think you captured most, but here is a list:

Compromise:

1. If an MSK/EMSK is compromised, all derived keys are assumed to have been compromised, as 
long as any nonces exchanged are in the clear or protected with the MSK/EMSK, or keys derived thereof.

2. MSK/EMSK compromise does not necessarily impact child key derivation iff the MSK/EMSK (or keys 
derived thereof) only serve as entity authentication keys and are not used for key derivation. (Perhaps 
the latter -- and are not used for key derivation -- is too restrictive).

[Bernard Aboba]

Are you suggesting that there might be situations in which EAP keys aren't used for key derivation, 
but compromise might still be possible?

[Laksminath Dondeti]

No. I am asking if the MSK/EMSK figures into the key derivation, say only partially (say along with 
DH), compromise of MSK/EMSK means compromise of derived keys. I was then saying perhaps that is 
too restrictive, but I'd contend not, unless there is a strong case made for the alternative. 

[Bernard Aboba]

OK. If the MSK/EMSK were mixed into the key derivation, then there might be some weakening of 
the key derivation. How much depends on the algorithm.

[Laksminath Dondeti]


Lifetime:

Lifetime, as far as I understand, is set due to two considerations. Let's consider confidentiality. 
As soon as a block of ciphertext is transmitted, we can assume that an adversary has started a 
brute-force attack to guess the key. With the most powerful adversary's capabilities that we want 
to protect against in mind, we make an estimate of how long it might take for the computation to 
complete and can set a lifetime. The other consideration is that the amount of traffic encrypted 
with a given key may provide hints to reduce the computation needed by the brute-force attack. 
With those considerations in mind,

3. Keys that are used frequently, for instance, for traffic protection expire sooner. We might say 
those MUST NOT used beyond the EMSK's lifetime. They may expire sooner than the EMSK, however.

[Bernard Aboba]

Right. And by the same logic, the MSK and EMSK might expire at different times. I'm not sure that 
the key lifetime section takes that into account adequately.

[Laksminath Dondeti]

4. Keys used less frequently, say, for entity authentication need not expire with the EMSK. We might 
allow, for instance, local policy to set the lifetime on such keys. That lifetime MAY be beyond EMSK's lifetime.

[Bernard Aboba]

This makes sense assuming that the entity authentication keys aren't themselves derived from the EMSK.

[Laksminath Dondeti]

Even if entity authentication keys are derived from the EMSK, the guideline applies, I think. 
Suppose the EMSK supports derivation of a traffic key and a separate entity authentication key, 
wouldn't it make sense to say that, all other things being equal, the traffic key will have a 
shorter lifetime than the entity authentication key, based on key usage? 

[Bernard Aboba]

Yes, it would make sense. I guess I'd distinguish between a key calculated from the EMSK (e.g. AMSK) 
and a TSK. The AMSK formulas that have been suggested so far are static -- that is, they are based on 
a key-label, but do not generate a fresh key every time they are invoked on the same EMSK, in the way 
that some TSK derivations do (e.g. 802.11i 4-way handshake).

Unless there is an ability to generate fresh keys without an EAP re-authentication, then when the 
derived keyexpires it is necessary to do an EAP re-authentication. With TSKs it may be possible to 
do a re-key independent of EAP (e.g. 802.11i 4-way handshake).

[Laksminath Dondeti]

I think Vidya was referring to #4 with her last statement (not mind reading; that came up in our 
previous discussions on the topic :-) ).

[Bernard Aboba]

I'd also like to make sure that issues 1-3 are addressed adequately in the text.


[Laksminath Dondeti]

After having thought about this some more, I think we should have some text on EMSK to child 
key derivation in the EAP-keying document along the lines of the 4 items listed earlier. 
This is inline with the text on TSKs in 3.1(e) and perhaps elsewhere in the document.

Speaking very loosely and at a high level, we say that MSK is sent to the Authenticator and 
then TSKs are derived using various protocols and go on to talk about TSK properties. 
Likewise, we are talking about EMSK "usage" in the EAP keying FW document. We say a bunch 
of things, all of which I am ok with and that the EMSK MUST NOT be used to derive keys, which 
I am not ok with. There are proposals to change that, so we might start revising that 
statement to avoid having two RFCs in conflict with each other.

Once that is done, talking about derived key properties is ok.

Iff that is not done, sure I agree with you (if we MUST NOT derive keys, what's the point 
in talking about the properties of the derived keys?). But, I contend that that rule needs to 
be revised.
[Bernard Aboba]  In looking at the discussion of this issue, and reviewing the text, it is not clear 
how useful it is to have EAP methods export the Key-Lifetime parameter. Today no EAP 
methods export this parameter, and the text in Section 1.4 suggests that this
is not very useful anyway:

Key-Lifetime

While EAP itself does not support key lifetime negotiation, it is
possible to specify methods that do. However, systems that rely
on such negotiation for exported keys would only function with
these methods. As a result, it is NOT RECOMMENDED to use this
approach as the sole way to determine key lifetimes.

Similarly, Section 3 states:

Existing EAP methods do not export the Key-Lifetime
parameter; in the interest of method independence, key management of
exported or derived keys SHOULD NOT be provided within EAP methods.

As a result, it may make sense to remove discussion of the Key-Lifetime parameter
from the document. 

The proposed resolution is as follows:

In Section 1.4, delete:

" Key-Lifetime

While EAP itself does not support key lifetime negotiation, it is
possible to specify methods that do. However, systems that rely
on such negotiation for exported keys would only function with
these methods. As a result, it is NOT RECOMMENDED to use this
approach as the sole way to determine key lifetimes."

Also, delete the Key-Lifetime parameter from Figure 2. 

In Section 3, change:

"Existing EAP methods do not export the Key-Lifetime
parameter; in the interest of method independence, key management of
exported or derived keys SHOULD NOT be provided within EAP methods."

To:

"Existing EAP methods do not manage the lifetime of exported EAP
keying material; in the interest of method independence, key management of
exported or derived keys SHOULD NOT be provided within EAP methods."
[Vidya] OK. The following text on section 3.5 looks good. 
Change Section 3.5 to the following:
"3.5.  Exported and Calculated Key Lifetimes

   All EAP methods generating keys are required to generate the MSK and
   EMSK, and may optionally generate the IV.  However, EAP, defined in
   [RFC3748], does not itself support the negotiation of lifetimes for
   exported keying material such as the MSK, EMSK and IV.

   Several mechanisms exist for managing key lifetimes:

[a]  AAA attributes.  AAA protocols such as RADIUS [RFC2865] and
     Diameter [RFC4072] support the Session-Timeout attribute.  The
     Session-Timeout attribute represents the maximum lifetime of the
     exported keying material, and all keys depending on it, on the
     authenticator.  Since existing backend authentication servers do
     not cache keys exported by EAP methods, or keys calculated from
     exported keys, the value of the Session-Timeout attribute has no
     bearing on the key lifetime within the backend authentication
     server.

     On the authenticator,  where EAP is used for authentication the
     Session-Timeout attribute represents the maximum session time prior
     to re-authentication.  As described in [RFC3580] Section 3.17, when
     sent in an Access-Accept along with a Termination-Action value of
     RADIUS-Request, the Session-Timeout attribute specifies the maximum
     number of seconds of service provided prior to re-authentication.

     Where EAP is used for pre-authentication, the session may not start
     until some future time, or may never occur.  Nevertheless, the
     Session-Timeout value represents the maximum time after which
     transported EAP keying material, and all keys dependent on it, will
     have expired on the authenticator.  If the session subsequently
     starts, re-authentication will be initiated once the Session-Time
     has expired. If the session never started, or started and ended, by
     default keys transported by AAA and all keys dependent on them be
     expired by the authenticator prior to the future time indicated by
     Session-Timeout; this feature is utilized by [IEEE-802.11i].  Note
     that in future additional attributes may be specified to control
     the lifetime of cached keys; these attributes may modify the
     meaning of the Session-Timeout attribute in specific circumstances.

     Since the TSK lifetime is often determined by authenticator
     resources, and the backend authentication server has no insight
     into the TSK derivation process, by the principle of ciphersuite
     independence, it is not appropriate for the backend authentication
     server to manage any aspect of the TSK derivation process,
     including the TSK lifetime.

[b]  Lower layer mechanisms.  While AAA attributes can communicate the
     maximum exported key lifetime, this only serves to synchronize the
     key lifetime between the backend authentication server and the
     authenticator.  Lower layer mechanisms such as the Secure
     Association Protocol can then be used to enable the lifetime of
     exported and calculated keys to be negotiated between the peer and
     authenticator.

     Where TSKs are established as the result of a Secure Association
     Protocol exchange, it is RECOMMENDED that the Secure Association
     Protocol include support for TSK re-key.  Where the TSK is taken
     directly from the MSK, there is no need to manage the TSK lifetime
     as a separate parameter, since the TSK lifetime and MSK lifetime
     are identical.

[c]  System defaults.  Where the EAP method does not support the
     negotiation of the exported key lifetime, and a key lifetime
     negotiation mechanism is not provided by the lower lower, there may
     be no way for the peer to learn the exported key lifetime.  In this
     case it is RECOMMENDED that the peer assume a default value of the
     exported key lifetime; 8 hours is recommended.  Similarly, the
     lifetime of calculated keys can also be managed as a system
     parameter on the authenticator.

[d]  Method specific negotiation within EAP.  While EAP itself does not
     support lifetime negotiation, it would be possible to specify
     methods that do.  However, systems that rely on such negotiation
     for exported keys would only function with these methods.  As a
     result, it is NOT RECOMMENDED to use this approach as the sole way
     to determine key lifetimes."
Change Section 3.3 to the following:
"3.3. Parent-Child Relationships
 
  When an EAP re-authentication takes place, new keying material is
  derived and exported by the EAP method, which eventually results in
  replacement of TSKs, regardless of the way they are derived (see
  Section 2.1).  While the maximum lifetime of TSKs or child keys can
  be less than or equal to that of the MSK/EMSK, it cannot be greater.
  This is true even where exported EAP keying material is only used for
  entity authentication and is not used for key derivation (such as in
  IKEv2), so that compromise of exported EAP keying material does not
  imply compromise of the TSKs or child keys.  However, where child
  keys are derived from or are wrapped by EAP keying material,
  compromise of the MSK/EMSK does imply compromise of the child keys.
  Child keys that are used frequently (such as TSKs which are used for
  traffic protection) can expire sooner than the exported EAP keying
  material they are dependent on, so that it is advantageous to support
  re-key of child keys prior to EAP re-authentication.  Note that
  deletion of the MSK/EMSK does not necessarily imply deletion of TSKs
  or child keys.
  Failure to mutually prove possession of exported EAP keying material
  during the Secure Association Protocol exchange need not be grounds
  for deletion of the keying material by both parties; rate-limiting
  Secure Association Protocol exchanges could be used to prevent a
  brute force attack."
 
[Vidya]
>   This is true even where exported EAP keying material is only used for
>    entity authentication and is not used for key derivation (such as in
>    IKEv2), so that compromise of exported EAP keying material does not
>    imply compromise of the TSKs or child keys.  However, where child
>    keys are derived from or are wrapped by EAP keying material,
>    compromise of the MSK/EMSK does imply compromise of the child keys.

In the above, are you talking about an EMSK compromise after expiry
affecting any keys that may still be in use? If so, I'm wondering how
viable that is - basically, the point that I'm not clear on is this - if
the EMSK is used to derive any keys that are handed out to other
entities, depending on the purpose of the key, the EAP server may really
have no control over that lifetime. 

But, if this is a concern, I'm okay with providing guidance for key
expiry in this manner. 
 
[Yoshihro Ohba] If the EAP server has no control over the lifetime when EMSK is used
for a specific purpose, then it would be the time to think about
possibility to use a mechanism other than EAP for that purpose.
 
[Bernard Aboba]
In the above, are you talking about an EMSK compromise after expiry
affecting any keys that may still be in use?

If the EMSK expires and the session is still in progress, presumably the result is an EAP re-authentication which results in new child keys.


 
If so, I'm wondering how
viable that is - basically, the point that I'm not clear on is this - if
the EMSK is used to derive any keys that are handed out to other
entities, depending on the purpose of the key, the EAP server may really
have no control over that lifetime.

It can provide a maximum lifetime (Session-Timeout) to the authenticator, requesting EAP re-authentication to occur when the maximum lifetime expires.


The distinction we're making here is between maximum lifetime (controlled by Session-Timeout) and deletion. If the EMSK is deleted on the peer or server, this doesn't cause child keys to be deleted. However, expiry of the maximum lifetime does result in new child keys.

[Vidya] Ok. The revised text for section 3.3 then looks good.

Proposed Resolution: Accept

Issue 362:  Lower layer parameters and EMSK text
Submitter name: Joe Salowey
Submitter email address: jsalowey@cisco.com
Date Submitted: May 2, 2006
Reference: http://lists.frascone.com/pipermail/eap/msg04247.html
Document: KEYING-12
Comment type: 'E'ditorial
Priority: '1' Should fix
Section: 2
Rationale/Explanation of issue:

1. Passing of parameters to lower layer.  It seems that there may be
some parameters passed to lower layers that could be usable elsewhere.
For example the Session-ID might be usable.  If the session-id is
included in parameters then I think the  following may be to
restrictive:

"This
   implies that EAP keying material or parameters passed down to a lower
   layer are for the exclusive use of that lower layer and MUST NOT be
   used within another lower layer"

Suggested change:

"This implies that EAP keying material passed down to a lower
layer are for the exclusive use of that lower layer and MUST NOT be
used within another lower layer."

If this change is accepted there are several other places in the section
where this should be changed. 

2. EMSK text 

The First paragraph still mentions exporting the EMSK to the lower layer
which seems to be problematic when considered with the rest of the text
of this section.  I don't think the EMSK should be discussed in the
lower layer section. 

My suggestion would be to remove references to the EMSK in this section
and move the paragraph discussing the EMSK to Section 1.4 EAP Key
hierarchy. 
[Bernard Aboba] The proposed resolution is as follows:
Move the following text from Section 2 to Section 1.4:
"The EMSK MUST NOT be provided to an entity outside the EAP server or
peer, nor is it permitted to pass any quantity to an entity outside
the EAP server or peer from which the EMSK could be computed without
breaking some cryptographic assumption, such as inverting a one-way
function. As noted in [RFC3748] Section 7.10:

   The EMSK is reserved for future use and MUST remain on the EAP
   peer and EAP server where it is derived; it MUST NOT be
   transported to, or shared with, additional parties, or used to
   derive any other keys."
Change the last four paragraphs of Section 2 to the following:
" In order to preserve the security of keys derived within EAP methods,
lower layers MUST NOT export keys passed down by EAP methods. This
implies that EAP keying material passed down to a lower layer is for
the exclusive use of that lower layer and MUST NOT be used within
another lower layer. This prevents compromise of one lower layer
from compromising other applications using EAP keying parameters.

EAP keying material provided to a lower layer MUST NOT be transported
to another entity. For example, EAP keying material passed down to
the EAP peer lower layer MUST NOT leave the peer; EAP keying
material passed down or transported to the EAP authenticator lower
layer MUST NOT leave the authenticator.

On the EAP server, keying material and parameters requested by and
passed down to the AAA layer may be replicated to the AAA layer on
the authenticator. On the authenticator, the AAA layer provides the
replicated keying material and parameters to the lower layer over
which the EAP authentication conversation took place. This enables
"mode independence" to be maintained.

The EAP layer as well as the peer and authenticator layers MUST NOT
modify or cache keying material or parameters (including Channel
Bindings) passing in either direction between the EAP method layer
and the lower layer or AAA layer."
[Vidya]
>    The EMSK is reserved for future use and MUST remain on the EAP
>    peer and EAP server where it is derived; it MUST NOT be
>    transported to, or shared with, additional parties, or used to
>    derive any other keys."
> 

Are we sticking to this rule that the EMSK MUST NOT be used to derive
any other keys? Given that there is agreement in general about potential
derivation of keys from the EMSK, what implications does this text have
to future documents specifying derived keys from the EMSK? 
> On the EAP server, keying material and parameters requested 
> by and passed down to the AAA layer may be replicated to the 
> AAA layer on the authenticator. 

I understand what the above is trying to say - however, this does
conflict with the fact that the EMSK MUST NOT be transported to the
authenticator (even though it may be passed down to the AAA layer on the
server). I wonder if some clarification is necessary to avoid confusion.

[Bernard Aboba]  The quote is from [RFC3748] so it can be removed.  
How about this? 
"On the EAP server, keying material and parameters requested by and passed down
to the AAA layer may be replicated to the AAA layer on the authenticator
(with the exception of the EMSK). On the authenticator, the AAA layer provides the
replicated keying material and parameters to the lower layer over
which the EAP authentication conversation took place. This enables
"mode independence" to be maintained."

Proposed Resolution: Discuss

Issue 363: Section 2.2 Title
Submitter name: Joe Salowey
Submitter email address: jsalowey@cisco.com
Date Submitted: May 2, 2006
Reference: http://lists.frascone.com/pipermail/eap/msg04254.html
Document: KEYING-12
Comment type: 'E'ditorial
Priority: '1' Should fix
Section: 2.2
Rationale/Explanation of issue:

This section discusses peer architecture as well as authenticator
architecture.  

Suggest title:

"2.2.  Authenticator and Peer Architecture"
[Bernard Aboba] The proposed Section titles are:
"2.2.  Authenticator and Peer Architecture
2.2.1.  Authenticator and Peer Identification"

Proposed Resolution: Accept

Issue 364: AAA Key Caching
Submitter name: Joe Salowey
Submitter email address: jsalowey@cisco.com
Date Submitted: May 2, 2006
Reference: http://lists.frascone.com/pipermail/eap/msg04256.html
Document: KEYING-12
Comment type: 'T'echnical
Priority: '2' May fix
Section: 2.1
Rationale/Explanation of issue:

The Current draft states that keys may not be cached once transported. I
am wondering if this is too restrictive.  Perhaps keys will be cached
for session recovery and availability purposes. 

Suggested Text:

 "In order to avoid key reuse, the AAA layer SHOULD delete transported
  keys once they are sent.  The AAA layer SHOULD NOT retain keys that
  it has previously sent.  For example, a AAA layer that has
  transported the MSK SHOULD delete it.  If the AAA layer does cache an MSK
  then the use of TSKs derived from the MSK MUST prevent key reuse."

[Bernard Aboba]

The retention of transported keying material has important security implications.

For example, NIST key management guidelines require that keying material that is
no longer needed be deleted, so as to avoid potential compromise.

When transported keying material is not deleted, it is possible for the keying
material to be reused. Since some EAP lower layers (such as PPP) generate
TSKs directly from the MSK, if transported keying material were to be resent,
then TSK reuse can occur, which violates the EAP security goals.

In practice there are few measures that the authenticator can take to prevent
this. In theory the authenticator could attempt to determine freshness by
caching Session-Ids and checking for repeats. However, most authenticators will
not be able to do this. As a result, the authenticator is typically defenseless
against a backend authentication server that resends the same key in a different
AAA session.

Proposed Resolution: Reject

Issue 365: Ambiguous Use of Identifier
Submitter name: Joe Salowey
Submitter email address: jsalowey@cisco.com
Date Submitted: May 2, 2006
Reference: http://lists.frascone.com/pipermail/eap/msg04268.html
Document: KEYING-12
Comment type: 'T'echnical
Priority: '1' Should fix
Section: 2.2.1
Rationale/Explanation of issue:

Ambiguous use of "identifier":

It is not clear in this section what the identifier is and what it is
identifying.  

Does this section mean to suggest that lower layer entities identify
themselves using NAS-ID instead of layer addresses?  I'm not sure that
this is a good thing or even really possible.  It seems that lower layer
entities will identify themselves based on something related to lower
layer addresses.  It seems that if a lower layer implements key caching
then it needs an identifier to identify the scope of the cache.  This
identifier can be the NAS-ID.

I'm not quite sure I understand this section, but I think it just needs
to be clearer about what identity is being talked about. 

This section does not contain any description of how existing lower
layers deal with authenticator identity.  Are such examples available?
[Bernard Aboba] The proposed resolution is to rewrite Section 2.2.1 as follows:
"2.2.1. Authenticator and Peer Identification

The EAP method conversation is between the EAP peer and server. The
authenticator identity, if considered at all by the EAP method, is
treated as an opaque blob for the purposes of Channel Bindings (see
Section 5.12). However, the authenticator identity is important in
two other exchanges - the AAA protocol exchange and the Secure
Association Protocol conversation.

The AAA conversation is between the EAP authenticator and the backend
authentication server. From the point of view of the backend
authentication server, EAP keying material and parameters are
transported to the EAP authenticator identified by the NAS-Identifier
attribute. Since an EAP authenticator MUST NOT share EAP keying
material or parameters with another party, if the EAP peer or backend
authentication server detects use of EAP keying material and
parameters outside the scope defined by the NAS-Identifier, the
keying material MUST be considered compromised.

The Secure Association Protocol conversation is between the peer and
the authenticator. For lower layers which support key caching it is
particularly important for the EAP peer, authenticator and backend
server to have a consistent view of the usage scope of the
transported EAP keying material. In order to enable this, it is
RECOMMENDED that the Secure Association Protocol explicitly
communicate the usage scope of the EAP keying material passed down to
the lower layer, rather than implicitly assuming that this is defined
by the authenticator and peer endpoint addresses.

Since an authenticator may have multiple ports, the scope of the
authenticator key cache may not be described by a single endpoint
address. Similarly, where a peer may have multiple ports and sharing
of EAP keying material and parameters between peer ports of the same
link type is allowed, the extent of the peer key cache cannot be
communicated by using a single endpoint address. Instead, it is
RECOMMENDED that the EAP peer and authenticator consistently identify
themselves utilizing explicit identifiers, rather than endpoint
addresses or port identifiers.

AAA protocols such as RADIUS [RFC3579] and Diameter [RFC4072] provide
a mechanism for the identification of AAA clients; since the EAP
authenticator and AAA client are always co-resident, this mechanism
is applicable to the identification of EAP authenticators.

RADIUS [RFC2865] requires that an Access-Request packet contain one
or more of the NAS-Identifier, NAS-IP-Address and NAS-IPv6-Address
attributes. Since a NAS may have more than one IP address, the NAS-
Identifier attribute is RECOMMENDED for explicit identification of
the authenticator, both within the AAA protocol exchange and the
Secure Association Protocol conversation.

Problems which may arise where the peer and authenticator implicitly
identify themselves using endpoint addresses include the following:

[a] It may not be obvious to the peer which authenticator ports are
associated with which authenticators. The EAP peer will be unable
to determine whether EAP keying material has been shared outside
its authorized scope, and needs to be considered compromised. The
EAP peer may also be unable to utilize the authenticator key cache
in an efficient way.

[b] It may not be obvious to the authenticator which peer ports are
associated with which peers. As a result, the authenticator may
not be able to enable a peer to communicate with it utilizing
multiple peer ports.

[c] It may not be obvious to the peer which "virtual authenticator" it
is communicating with. For example, multiple "virtual
authenticators" may share a MAC address, but utilize different NAS-
Identifiers.

[d] It may not be obvious to the authenticator which "virtual peer" it
is communicating with. Multiple "virtual peers" may share a MAC
address, but utilize different Peer-Ids.


[e] It may not be possible for the EAP peer and server to verify the
authenticator identity via channel bindings.

For example, problems [a], [c] and [e] occur in [IEEE-802.11i], which
utilizes peer and authenticator MAC addresses within the 4-way
handshake. Problems [b] and [d] do not occur since [IEEE-802.11i]
only allows a peer to utilize a single port.

The following steps enable lower layer identities to be securely
verified by all parties:

[f] Specifying the lower layer parameters used to identify the
authenticator and peer. As noted earlier, endpoint or port
identifiers are not recommended for identification of the
authenticator or peer when it is possible for them to have multiple
ports.

[g] Communicating the lower layer identities between the peer and
authenticator within phase 0. This allows the peer and
authenticator to determine the key scope if a key cache is
utilized.

[h] Communicating the lower layer authenticator identity between the
authenticator and backend server within the NAS-Identifier
attribute.

[i] Including the lower layer identities within Channel Bindings (if
supported) in phase 1a, ensuring that they are communicated between
the EAP peer and server.

[j] Supporting the integrity-protected exchange of identities within
phase 2a.

[k] Utilizing the advertised lower layer identities to enable the peer
and authenticator to verify that keys are maintained within the
advertised scope."
[Joe Salowey] I agree that the scope of EMSK derived keys must be defined,
however the details of how they are scoped is undefined.  How they are
distributed is undefined.  This will likely be defined on an application
by application basis.  NAS identifier will probably be appropriate for
some.  Others may not use a AAA protocol for key distribution or have a
scope that is larger, smaller or unrelated to a NAS.  I don't think this
document should put too many constraints on EMSK usage. 
>if multiple authenticators with different 
> NAS-Identifiers possess the same key, then that indicates 
> that those keys have been compromised. 

[Joe] This seems somewhat arbitrary to me.  A peer could see multiple
AAA clients as the same authenticator entity if an attribute other than
the NAS-ID is used as the authenticator identity.  It seems that we may
be overloading NAS identifier.  
> An authenticator cannot retrieve a key from the server if it has no 
> way of mapping the Server-Id to a server that it recognizes.

[Joe] It seems that this issue is somewhat out of scope of this document
since key caching in AAA is not currently defined.  
The question still remains; If no-one is going to validate that
the NAS-Identifier actually is within scope of the authenticator then
why bother to use it channel bindings?

Proposed Resolution: Discuss

Issue 366: Section 2.2.2
Submitter name: Joe Salowey
Submitter email address: jsalowey@cisco.com
Date Submitted: May 2, 2006
Reference: http://lists.frascone.com/pipermail/eap/msg04274.html
Document: KEYING-12
Comment type: 'E'ditorial
Priority: '2' May fix
Section: 2.2.2
Rationale/Explanation of issue:

What is the specific vulnerability in this situation?

 " For example, the peer may assume that the "virtual
   authenticators" are distinct and do not share a key cache, whereas,
   depending on the architecture of the physical authenticator, a shared
   key cache may or may not be implemented."

Maybe it should describe the peer problems that arise when you have
different authenticators that provide different levels of services,
similar to the authenticator problems in the next paragraph? 

I'm not sure how recommendation [i] is related to the example of the
corporate/guest problem in the second paragraph.
[Bernard Aboba]
Sharing a logical cache between virtual authenticators creates the potential for elevation 
of privilege or unauthorized access.  By authenticating to one virtual authenticator, 
the peer can gain access to any virtual authenticator that it shares a key cache with.  
I don't think that Section 2.2.2 says this very clearly, though. 

With respect to offering different services on different authenticators, this is 
discussed in Section 4, but I am not sure it is a "virtual authenticator" issue. 

I think that there are two issues that have been intermingled in [i].  One is the 
need for virtual authenticators to advertise their identities consistently between 
AAA and the lower layer, or else channel bindings could fail. 

Another issue is the need for virtual authenticators to identify them distinctly, 
so that peers can tell them apart.  For example, in 802.11r it would not be a good 
idea for all the virtual authenticators to use the same R0KH-ID, since then the 
peers might not be able to tell them apart.   However, if they used different 
R0KH-IDs, but the same NAS-Identifier attribute, now channel bindings will fail. 

Suggested resolution is as follows: 
Change: 

"  When a single physical authenticator advertises itself as multiple 
  "virtual authenticators", a number of security vulnerabilities may 
  arise.  For example, the peer may assume that the "virtual 
  authenticators" are distinct and do not share a key cache, whereas, 
  depending on the architecture of the physical authenticator, a shared 
  key cache may or may not be implemented. 

  Where EAP keying material is shared between "virtual authenticators" 
  an attacker acting as a peer could authenticate with the "Guest" 
  "virtual authenticator" and derive EAP keying material.  If the 
  virtual authenticators share a key cache, then the peer can utilize 
  the EAP keying material derived for the "Guest" network to obtain 
  access to the "Corporate Intranet" virtual authenticator. 

  In order to address these issues:" 

To: 

"  When a single physical authenticator advertises itself as multiple 
  "virtual authenticators", if the virtual authenticators do not maintain 
   logically separate key caches, then by authenticating  to one virtual 
   authenticator, the peer can gain access to the other virtual authenticators 
   sharing a key cache. 

  For example, where a physical authenticator implements "Guest" and 
  "Corporate Intranet" virtual authenticators,  an attacker acting as a peer 
  could authenticate with the "Guest" "virtual authenticator" and derive 
  EAP keying material.  If the "Guest" and "Corporate Intranet" virtual 
  authenticators share a key cache, then the peer can utilize 
  the EAP keying material derived for the "Guest" network to obtain 
  access to the "Corporate Intranet" network. 

  In order to address this vulnerability:" 

replace: 

"[i]  It is RECOMMENDED that each "virtual authenticator" identify itself 
    distinctly to the backend authentication server, such as by 
    utilizing a distinct NAS-Identifier attribute.  This enables the 
    backend authentication server to utilize a separate credential to 
    authenticate each "virtual authenticator", and for the peer and 
    backend authentication server to verify the authenticator identity 
    via Channel Bindings (see Section 5.11)." 

with 

"[i]  It is RECOMMENDED that each "virtual authenticator" identify itself 
    consistently to the peer and to the backend authentication server, 
    so as to enable the peer to verify the authenticator identity via 
    Channel Bindings (see Section 5.11). 

[j] It is RECOMMENDED that each "virtual authenticator" identify itself 
     distinctly, in order to enable the peer to tell them apart.  For 
     example, this can be accomplished by utilizing a distinct 
     NAS-Identifier attribute or BSSID." 

Proposed Resolution: Accept

Issue 367: Key Scope and EAP Server Authorization
Submitter name: Joe Salowey
Submitter email address: jsalowey@cisco.com
Date Submitted: May 3, 2006
Reference: http://lists.frascone.com/pipermail/eap/msg04231.html
Document: KEYING-12
Comment type: 'T'echnical
Priority: '1' Should fix
Section: 2.2.1 and 3.2
Rationale/Explanation of issue:

Section 1.4.1 correctly defines the scope of the EAP keying material as
being defined by the EAP Peer and EAP server, however this relationship
is not carried out in other key scope discussions as far as I can tell.
In order for channel binding, key mixing etc. to work the peer must make
sure that the key is used not just within the authorized parameters of
the lower layer, but of the authorized scope of the EAP server as well.

I'm not sure of all of all the places where this needs to be addressed,
but I think it needs to be addressed in section 2.2.1 perhaps by adding 

"[g] Verifying that the advertised scope is within the scope that the
EAP server is allowed to authorize"

Section 3.2 should probably state somewhere that:

"The peer should verify that the key scope advertised by the
authenticator is within the scope that is allowed to be authorized by
the EAP Server."
[Bernard Aboba]

I think I see the point, which is that a given authenticator may be connected to
more than one EAP server, and that all authenticators in a single administrative
domain may not share the same EAP server. Also, EAP servers cannot necessarily
be assumed to share key state among each other. If the selcted EAP method does not
provide the Server-ID, then the peer cannot know the scope of the keys it
derives with the EAP server. 

This can create a number of issues, such as a peer attempting (but failing) a
fast reconnect because the server that the authenticator is configured to
communicate with is not the same one with which the peer established the
previous session. 

However, there are other situations in which the server identity is not material,
such as handoff in an 11r Mobility Domain (MD), where the STA only care whether
a candidate AP is in the same MD, not whether the new authenticator is configured
to talk to the same backend authentication server as the current or initial AP.

In practice, the peer determines whether an authenticator is within the scope
of authorization of the backend authentication server by attempting to complete
the SAP exchange with it. If the exchange succeeds, the authenticator is
authorized; if not, it isn't. It is possible for the peer to attempt a
fast reconnect exchange with the wrong server; unless the server were to
include its identity in the EAP-Request there is no way for the peer to
determine what server it is talking to before the EAP method conversation
gets underway. Even if the authenticator were to advertise the server(s)
that it is configured to talk to, and even if those servers were identified
by their Server-IDs, it would not be possible for the peer to know a-priori
which server it was going to talk to, since the primary server can change due
to changes in network or server availability. 

Given this, I'm not sure how the peer can verify that an authenticator is
allowed to be authorized by an EAP server. 
The proposed resolution is to change Section 2.2 to the following:
"2.2.  Peer and Authenticator Architecture

   This specification does not impose constraints on the architecture of
   the EAP authenticator or peer. Any of the authenticator architectures
   described in [RFC4118] can be used. As a result, lower layers need to
   identify EAP peers and authenticators unambiguously, without
   incorporating implicit assumptions about peer and authenticator
   architectures.

   For example, it is possible for multiple base stations and a
   "controller" (e.g. WLAN switch) to comprise a single EAP
   authenticator.  In such a situation, the "base station identity" is
   irrelevant to the EAP method conversation, except perhaps as an
   opaque blob to be used in Channel Bindings.  Many base stations can
   share the same authenticator identity.  It should be understood that
   an EAP authenticator or peer:

   [a] may contain one or more physical or logical ports;
   [b] may advertise itself as one or more "virtual"
       authenticators or peers;
   [c] may utilize multiple CPUs;
   [d] may support clustering services for load balancing or failover.

   Both the EAP peer and authenticator may have more than one physical
   or logical port.  A peer may simultaneously access the network via
   multiple authenticators, or via multiple physical or logical ports on
   a given authenticator.  Similarly, an authenticator may offer network
   access to multiple peers, each via a separate physical or logical
   port.  When a single physical authenticator advertises itself as
   multiple "virtual authenticators",  it is possible for a single
   physical port to belong to multiple "virtual authenticators".

   An authenticator may be configured to communicate with more than one
   EAP server, each of which is configured to communicate with a subset
   of the authenticators.  The situation is illustrated in Figure 3.

                               +-+-+-+-+

                               | EAP  

                               | Peer  |

                               +-+-+-+-+

                                 | | |  Peer Ports

                                /  |  \

                               /   |   \

                              /    |    \

                             /     |     \

                            /      |      \

                           /       |       \

                          /        |        \

                         /         |         \     Authenticator

                      | | |      | | |      | | |   Ports

                    +-+-+-+-+  +-+-+-+-+  +-+-+-+-+

                    |       |  |       |  |       |

                    | Auth1 |  | Auth2 |  | Auth3 |

                    |       |  |       |  |       |

                    +-+-+-+-+  +-+-+-+-+  +-+-+-+-+

                         \        | \         |

                          \       |  \        |

                           \      |   \       |

             EAP over AAA   \     |    \      |

               (optional)    \    |     \     |

                              \   |      \    |

                               \  |       \   |

                                \ |        \  |

                             +-+-+-+-+-+  +-+-+-+-+-+  Backend

                             |  EAP    |  |  EAP    |  Authentication

                             | Server1 |  | Server2 |  Servers

                             +-+-+-+-+-+  +-+-+-+-+-+

Figure 3: Relationship between EAP peer, authenticator and server"

Also, add Section 2.3:

"2.3. Server Identification

The EAP method conversation is between the EAP peer and server, as
identified by the Peer-Id and Server-Id. As shown in Figure 3, an
authenticator may be configured to communicate with multiple EAP
servers; the EAP server that an authenticator communicates with may
vary according to configuration and network and server availability.
While the EAP peer can assume that all EAP servers within a realm
have access to the credentials necessary to validate an
authentication attempt, it cannot assume that all EAP servers share
persistent state.

Authenticators may be configured with different primary or secondary
EAP servers, in order to balance the load. Also, the authenticator
can dynamically determine the EAP server to which requests will be
sent; in event of a communication failure, the authenticator may fail
over to another EAP server. For example, in Figure 3, Authenticator2
may be initially configured with EAP server1 as its primary backend
authentication server, and EAP server2 as the backup, but if EAP
server1 becomes unavailable, EAP server2 may become the primary
server.

In general, the EAP peer cannot direct an authentication attempt to a
particular EAP server within a realm; this decision is made solely by
the authenticator. Nor can it determine which EAP server it will be
communicating with, prior to the start of the EAP method
conversation. The Server-Id is not included in the EAP-
Request/Identity, and since the authenticator determines the EAP
server dynamically, it typically is not possible for the
authenticator to advertise the Server-Id during the discovery phase.
EAP methods may or may not export the Server-Id, and as a result, the
EAP peer may not even learn which server it was conversing with after
the EAP conversation completes successfully.

As a result, an EAP peer, on connecting to a new authenticator or
reconnecting to the same authenticator, may find itself communicating
with a different EAP server. Fast reconnect, defined in [RFC3748]
Section 7.2, may fail if the EAP server that the peer communicates
with is not the same one with which it initially established a
security association. For example, an EAP peer attempting an EAP-TLS
session resume may find that the new EAP-TLS server will not have
access to the TLS Master Key identified by the TLS Session-Id, and
therefore the session resumption attempt will fail, requiring
completion of a full EAP-TLS exchange.

EAP methods that support mutual authentication may not allow the EAP
peer to verify the EAP server identity. For example, the EAP peer
may only verify that the EAP server possesses a long-term secret; in
this case the EAP peer will only know that an authenticator has been
authorized by an EAP server, but will not confirm the identity of the
EAP server.

EAP methods that export the Server-Id MUST verify the server
identity. As noted in Appendix A, existing EAP methods exporting the
Server-Id determine this from the altSubjectName in the server
certificate, and as a result, the peer determines the identity of the
server (expressed as a Fully Qualified Domain Name (FQDN)) by
validating the server certificate.

Validating the EAP server identity enables the EAP peer to decide
whether a specific EAP server is authorized, and to determine whether
the EAP server is sharing keying material outside the intended scope.
In some cases, such as where the certificate extensions defined in
[RFC4334] are included in the server certificate, it may even be
possible for the peer to verify some Channel Binding parameters from
the server certificate. Where the EAP peer does not verify the EAP
server identity, it is not possible for the peer to determine whether
the EAP server has shared keying material outside its authorized
scope.

It is possible for problems to arise in situations where the EAP
server identifies itself differently to the EAP peer and
authenticator. For example, the Server-Id exported by EAP methods
may not be identical to the Fully Qualified Domain Name (FQDN) of the
backend authentication server. Where certificate-based
authentication is used within RADIUS or Diameter, the altSubjectName
used in the backend server certificate may not be identical to the
Server-Id or backend server FQDN.

Where the backend server FQDN differs from the altSubjectName in the
certificate, the AAA client may not be able to successfully determine
whether it is talking to the correct backend authentication server.
Where the Server-Id and backend server FQDN differ, the combination
of the key scope (Peer-Id, Server-Id) and EAP conversation identifier
(Session-Id) may not be sufficient for the authenticator to determine
where the key resides. For example, the authenticator may identify
backend servers by their IP address (as occurs in RADIUS), or using a
Fully Qualified Domain Name (as in Diameter). If the Server-Id does
not correspond to the IP address or FQDN of a known backend
authentication server, then the authenticator will not know which
backend authentication server possesses the key."

[Joe Salowey]

Hi Bernard,

I think the text below is good, but I don't think it addresses the issue
I had in mind. 

Consider the case where each authenticator contains its own EAP Server.
If the peer wants to ensure that it is connecting to the "correct"
authenticator it obviously cannot just rely upon channel bindings since
the authenticator is in control of the EAP server, it must be able to
authorize the EAP server as being able to authorize the authenticator.
If we consider a remote EAP Server then this EAP server will be
authorized to atuhorize as subset of authenticators.  In order for a
peer to verify that the authenticator in collusion with the EAP server
is not lying about some parameter it must be able to authorize the EAP
Server as being able to authorize the authenticator.

In some ways this is a basic thing, but I don't think this is currently
covered elswhere in the document.  It may not belong in this section,
but I think it belongs somewhere with the scoping discussion.

[Bernard Aboba]

How about the following:

Add the following paragraphs to the end of Section 2.3 Server Identification:

"EAP methods that support mutual authentication enable the EAP peer to only connect to authenticators authenticated by a trusted EAP server. However, mutual authentication may not result in verification of the EAP server identity. For example, the EAP peer may only verify that the EAP server possesses a long-term secret; in this case the EAP peer will only know that an authenticator has been authorized by an EAP server, but will not know which one.

EAP methods that export the Server-Id MUST verify the server identity. This enables the EAP peer to decide whether a specific EAP server is authorized or not, and determine whether the EAP server is sharing keying material outside the intended scope. In some cases, such as where the certificate extensions defined in [RFC4334] are included in the server certificate, it may even be possible for the peer to verify some Channel Binding parameters from the server certificate. Where the EAP peer does not verify the EAP server identity, it is not possible for the peer to determine whether keying material has been shared outside its authorized scope."

[Jari Arkko]

I am basically fine with this text, but it may be exaggarate the value of
an identifier a little bit. If you assume that the correct server set has
given long-term secret material to some other servers, its not clear that
having the server provide an identifier helps in all cases. For instance,
the server may lie about its identifier.

Suggested edit: s/This enables the EAP peer to decide/This may help
the EAP peer to decide/

[Bernard Aboba] Here is the revised text of Section 2.3:

"2.3. Server Identification

The EAP method conversation is between the EAP peer and server, as
identified by the Peer-Id and Server-Id. As shown in Figure 3, an
authenticator may be configured to communicate with multiple EAP
servers; the EAP server that an authenticator communicates with may
vary according to configuration and network and server availability.
While the EAP peer can assume that all EAP servers within a realm
have access to the credentials necessary to validate an
authentication attempt, it cannot assume that all EAP servers share
persistent state.

Authenticators may be configured with different primary or secondary
EAP servers, in order to balance the load. Also, the authenticator
can dynamically determine the EAP server to which requests will be
sent; in event of a communication failure, the authenticator may fail
over to another EAP server. For example, in Figure 3, Authenticator2
may be initially configured with EAP server1 as its primary backend
authentication server, and EAP server2 as the backup, but if EAP
server1 becomes unavailable, EAP server2 may become the primary
server.

In general, the EAP peer cannot direct an authentication attempt to a
particular EAP server within a realm; this decision is made solely by
the authenticator. Nor can it determine which EAP server it will be
communicating with, prior to the start of the EAP method
conversation. The Server-Id is not included in the EAP-
Request/Identity, and since the authenticator determines the EAP
server dynamically, it typically is not possible for the
authenticator to advertise the Server-Id during the discovery phase.
EAP methods may or may not export the Server-Id, and as a result, the
EAP peer may not even learn which server it was conversing with after
the EAP conversation completes successfully.

As a result, an EAP peer, on connecting to a new authenticator or
reconnecting to the same authenticator, may find itself communicating
with a different EAP server. Fast reconnect, defined in [RFC3748]
Section 7.2, may fail if the EAP server that the peer communicates
with is not the same one with which it initially established a
security association. For example, an EAP peer attempting an EAP-TLS
session resume may find that the new EAP-TLS server will not have
access to the TLS Master Key identified by the TLS Session-Id, and
therefore the session resumption attempt will fail, requiring
completion of a full EAP-TLS exchange.

EAP methods that support mutual authentication may not allow the EAP
peer to verify the EAP server identity. For example, the EAP peer
may only verify that the EAP server possesses a long-term secret; in
this case the EAP peer will only know that an authenticator has been
authorized by an EAP server, but will not confirm the identity of the
EAP server.

EAP methods that export the Server-Id MUST verify the server
identity. As noted in Appendix A, existing EAP methods exporting the
Server-Id determine this from the altSubjectName in the server
certificate, and as a result, the peer determines the identity of the
server (expressed as a Fully Qualified Domain Name (FQDN)) by
validating the server certificate.

Validating the EAP server identity may help the EAP peer to decide
whether a specific EAP server is authorized, and to determine whether
the EAP server is sharing keying material outside the intended scope.
In some cases, such as where the certificate extensions defined in
[RFC4334] are included in the server certificate, it may even be
possible for the peer to verify some Channel Binding parameters from
the server certificate. Where the EAP peer does not verify the EAP
server identity, it is not possible for the peer to determine whether
the EAP server has shared keying material outside its authorized
scope.

It is possible for problems to arise in situations where the EAP
server identifies itself differently to the EAP peer and
authenticator. For example, the Server-Id exported by EAP methods
may not be identical to the Fully Qualified Domain Name (FQDN) of the
backend authentication server. Where certificate-based
authentication is used within RADIUS or Diameter, the altSubjectName
used in the backend server certificate may not be identical to the
Server-Id or backend server FQDN.

Where the backend server FQDN differs from the altSubjectName in the
certificate, the AAA client may not be able to successfully determine
whether it is talking to the correct backend authentication server.
Where the Server-Id and backend server FQDN differ, the combination
of the key scope (Peer-Id, Server-Id) and EAP conversation identifier
(Session-Id) may not be sufficient for the authenticator to determine
where the key resides. For example, the authenticator may identify
backend servers by their IP address (as occurs in RADIUS), or using a
Fully Qualified Domain Name (as in Diameter). If the Server-Id does
not correspond to the IP address or FQDN of a known backend
authentication server, then the authenticator will not know which
backend authentication server possesses the key."

Proposed Resolution: Discuss

Issue 368: Threat Model Assumptions
Submitter name: Bernard Aboba
Submitter email address: aboba@internaut.com
Date Submitted: May 4, 2006
Reference: http://lists.frascone.com/pipermail/eap/msg04231.html
Document: KEYING-12
Comment type: 'T'echnical
Priority: '1' Should fix
Section: 5
Rationale/Explanation of issue:

The assumptions about the attacker are not discussed as part of the
threat model.

Recommendation is to change the first three paragraphs of Section 5
to the following:

" The EAP threat model is described in [RFC3748] Section 7.1. The
security properties of EAP methods (known as "security claims") are
described in [RFC3748] Section 7.2.1. EAP method requirements for
applications such as Wireless LAN authentication are described in
[RFC4017]. The RADIUS threat model is described in [RFC3579] Section
4.1, and responses to these threats are described in [RFC3579]
Sections 4.2 and 4.3.

However, in addition to threats against EAP and AAA, there are other
system level threats. In developing the threat model, it is assumed
that:

All traffic is visible to the attacker.
The attacker can alter, forge or replay messages.
The attacker can reroute messages to another principal.
The attacker may be a principal or an outsider.
The attacker can compromise any key that is sufficiently old.

Threats arising from these assumptions include:"

Proposed Resolution: Accept

Issue 369: Key-Lifetime Parameter removal
Submitter name: Bernard Aboba
Submitter email address: aboba@internaut.com
Date Submitted: June 8, 2006
Reference: http://lists.frascone.com/pipermail/eap/msg04395.html
Document: KEYING-13
Comment type: 'T'echnical
Priority: S
Section: Various
Rationale/Explanation of issue:

In looking at the discussion of this issue, and reviewing the text, it is not clear
how useful it is to have EAP methods export the Key-Lifetime parameter. Today no EAP
methods export this parameter, and the text in Section 1.4 suggests that this
is not very useful anyway:

Key-Lifetime

While EAP itself does not support key lifetime negotiation, it is
possible to specify methods that do. However, systems that rely
on such negotiation for exported keys would only function with
these methods. As a result, it is NOT RECOMMENDED to use this
approach as the sole way to determine key lifetimes.

Similarly, Section 3 states:

Existing EAP methods do not export the Key-Lifetime
parameter; in the interest of method independence, key management of
exported or derived keys SHOULD NOT be provided within EAP methods.

As a result, it may make sense to remove discussion of the Key-Lifetime parameter
from the document.

The proposed resolution is as follows:

In Section 1.4, delete:

" Key-Lifetime

While EAP itself does not support key lifetime negotiation, it is
possible to specify methods that do. However, systems that rely
on such negotiation for exported keys would only function with
these methods. As a result, it is NOT RECOMMENDED to use this
approach as the sole way to determine key lifetimes."

Change:

"EAP methods also MAY export method-specific peer and server
identifiers (Peer-Id and Server-Id), a method-specific EAP
conversation identifier known as the Session-Id, and the lifetime of
the exported keys, known as the Key-Lifetime.  "

To:

"EAP methods also MAY export method-specific peer and server
identifiers (Peer-Id and Server-Id) and a method-specific EAP
conversation identifier known as the Session-Id.  "

In Section 2, change:

"   On completion of EAP authentication, keying material and material and
   parameters exported by the EAP method are provided to the lower layer
   and AAA layer (if present).  These include the Master Session Key
   (MSK), Extended Master Session Key (EMSK), Peer-Id, Server-Id,
   Session-Id and Key-Lifetime.  The Initialization Vector (IV) is
   deprecated."

To:

"   On completion of EAP authentication, keying material and material and
   parameters exported by the EAP method are provided to the lower layer
   and AAA layer (if present).  These include the Master Session Key
   (MSK), Extended Master Session Key (EMSK), Peer-Id, Server-Id,
   and Session-Id.  The Initialization Vector (IV) is
   deprecated."

Delete the Key-Lifetime parameter from Figure 2.

In Section 3, delete:

"Existing EAP methods do not export the Key-Lifetime
parameter; in the interest of method independence, key management of
exported or derived keys SHOULD NOT be provided within EAP methods."

In Section 3.5, change:

"System defaults.  Where the EAP method does not support the
     negotiation of the exported key lifetime, and a key lifetime
     negotiation mechanism is not provided by the lower lower, there may
     be no way for the peer to learn the exported key lifetime.  In this
     case it is RECOMMENDED that the peer assume a default value of the
     exported key lifetime; 8 hours is recommended.  Similarly, the
     lifetime of calculated keys can also be managed as a system
     parameter on the authenticator."

To:

"System defaults.
Where the EAP method does not support the negotiation of
the lifetime of exported keys, and a key lifetime negotiation mechanism is not provided
by the lower lower, there may be no way for the peer to learn
the lifetime of exported keys. In this case
it is RECOMMENDED that the peer assume a default
value; 8 hours is recommended.
Similarly, the lifetime of calculated keys can also
be managed as a system parameter on the authenticator."

Change:

"[d]  Method specific negotiation within EAP.  While EAP itself does not
     support lifetime negotiation, it would be possible to specify
     methods that do.  However, systems that rely on such negotiation
     for exported keys would only function with these methods.  As a
     result, it is NOT RECOMMENDED to use this approach as the sole way
     to determine key lifetimes."

To:

"[d] Method specific negotiation within EAP. While EAP itself does not
support lifetime negotiation, it would be possible to specify
methods that do. However, systems that rely on such negotiation
for exported keys would only function with these methods;
in the interest of method independence, key management of
exported or derived keys SHOULD NOT be provided within EAP methods."

In Section 3.6, change:

"   Where the EAP method does not export the Key-Lifetime parameter, the
   lifetime of the EAP keying material may not be defined until
   completion of the Secure Association Protocol, if ever. "

To:

"Where the EAP method does not negotiate the
lifetime of exported keys, the lifetime of the EAP keying
material may not be defined until completion of the
Secure Association Protocol, if ever."

Change Appendix A to the following:

"Appendix A - Exported Parameters in Existing Methods

   This Appendix specifies Session-Id, Peer-Id and Server-Id
   for EAP methods that have been published prior to this
   specification.  Future EAP method specifications MUST include a
   definition of the Session-Id,  Peer-Id, and Server-Id (could be the
   empty string).

   EAP-Identity

      The EAP-Identity method is defined in [RC3748].  It does not
      derive keys, and therefore does not define the
      Session-Id.  The Peer-Id exported by the Identity method is
      determined by the octets included within the EAP-
      Response/Identity.  The Server-Id is the empty string (zero
      length).

   EAP-Notification

      The EAP-Notification method is defined in [RFC3748].  It does not
      derive keys and therefore does not define the
      Session-Id.  The Peer-Id and Server-Id are the empty string (zero
      length).

   EAP-GTC

      The EAP-GTC method is defined in [RFC3748].  It does not derive
      keys and therefore does not define the Session-
      Id.  The Peer-Id and Server-Id are the empty string.

   EAP-OTP

      The EAP-OTP method is defined in [RFC3748].  It does not derive
      keys and therefore does not define the Session-
      Id.  The Peer-Id and Server-Id are the empty string.

   EAP-TLS

      EAP-TLS is defined in [RFC2716].  The EAP-TLS Session-Id is the
      concatenation of the Expanded EAP Type Code (including the Type,
      Vendor-Id and Vendor-Type fields defined in [RFC3748] Section 5.7)
      with the peer and server nonces.  The Peer-Id and Server-Id are
      the contents of the altSubjectName in the peer and server
      certificates. 

   EAP-AKA

      EAP-AKA is defined in [RFC4187].  The EAP-AKA Session-Id is the
      concatenation of the Expanded EAP Type Code (including the Type,
      Vendor-Id and Vendor-Type fields defined in [RFC3748] Section 5.7)
      with the contents of the RAND field from the AT_RAND attribute,
      followed by the contents of the AUTN field in the AT_AUTN
      attribute.

      The Peer-Id is the contents of the Identity field from the
      AT_IDENTITY attribute, using only the Actual Identity Length
      octets from the beginning, however.  Note that the contents are
      used as they are transmitted, regardless of whether the
      transmitted identity was a permanent, pseudonym, or fast re-
      authentication identity.  The Server-Id is an empty string.

   EAP-SIM

      EAP-SIM is defined in [RFC4186].  The EAP-SIM Session-Id is the
      concatenation of the Expanded EAP Type Code (including the Type,
      Vendor-Id and Vendor-Type fields defined in [RFC3748] Section 5.7)
      with the contents of the RAND field from the AT_RAND attribute,
      followed by the contents of the NONCE_MT field in the AT_NONCE_MT
      attribute.

      The Peer-Id is the contents of the Identity field from the
      AT_IDENTITY attribute, using only the Actual Identity Length
      octets from the beginning, however.  Note that the contents are
      used as they are transmitted, regardless of whether the
      transmitted identity was a permanent, pseudonym, or fast re-
      authentication identity.  The Server-Id is an empty string."

Proposed Resolution: Accept

Issue 370: Key Management
Submitter name: Bernard Aboba
Submitter email address: aboba@internaut.com
Date Submitted: June 23, 2006
Reference: http://lists.frascone.com/pipermail/eap/msg04442.html
Document: KEYING-13
Comment type: 'T'echnical
Priority: 1
Section: 3
Rationale/Explanation of issue:

Section 3 does not clearly describe why EAP is not a key management
protocol.

The proposed resolution is to change Section 3 from:

"3. Key Management

   EAP as defined in [RFC3748] supports key derivation, but does not
   provide for the management of exported or derived keys.  Although EAP
   methods may support "fast reconnect" as defined in [RFC3748] Section
   7.2.1, EAP does not support re-key of exported keys without re-
   authentication."

to:

"3.  Key Management

   EAP as defined in [RFC3748] supports key derivation, but does not
   provide for the management of exported or derived keys.  Missing
   functionality includes:

[a]  Re-key. EAP does not support re-key of exported keys without re-
     authentication, although EAP methods may support "fast reconnect"
     as defined in [RFC3748] Section 7.2.1.

[b]  Key delete/install semantics.  EAP does not synchronize
     installation or deletion of keying material on the EAP peer and
     authenticator.

[c]  Lifetime negotiation. EAP does not support lifetime negotiation for
     exported keys, and existing EAP methods also do not support key
     lifetime negotiation.

[d]  Cryptographic algorithm negotiation. EAP methods only negotiate
     cryptographic algorithms for their own use, not for the underlying
     lower layers.

[e]  Guaranteed TSK freshness.  Without a post-EAP handshake, TSKs can
     be reused if EAP keying material is cached.

   These deficiencies are typically addressed via a post-EAP handshake
   known as the Secure Association Protocol."

[Jari Arkko] Looks good to me.

Proposed Resolution: Discuss

Issue 371: Session-Id Calculation
Submitter name: Bernard Aboba
Submitter email address: aboba@internaut.com
Date Submitted: June 24, 2006
Reference: http://lists.frascone.com/pipermail/eap/msg04452.html
Document: KEYING-13
Comment type: 'T'echnical
Priority: S
Section: 1.2, 1.4, Appendix A
Rationale/Explanation of issue:

For methods allocated with the standard EAP space (TLS, AKA, SIM) Appendix A
states that the Session-Id is constructed as follows:

"Session-Id is the concatenation of the Expanded EAP Type Code (including
the Type, Vendor-Id and Vendor-Type fields defined in [RFC3748] Section 5.7) with
the..."

Since these methods have no Vendor-Id or Vendor-Type fields, are these
fields included or not?

My recommendation is to replace the text as follows:

"Session-Id is the concatenation of the EAP Type Code (<insert here>) with the..."

[M. Vanderveen] That sounds fine.

[BA] The Proposed Resolution is as follows:

Here is the revised text of Section 1.2, 1.4 and Appendix A:

New Section 1.2 definition:

"Session-Id
     The EAP Session-Id uniquely identifies an EAP session between an
     EAP peer (as identified by the Peer-Id) and server (as identified
     by the Server-Id).  For more information, see Section 1.4."

Section 1.4:

"   Session-Id

      The Session-Id uniquely identifies an EAP session between an EAP
      peer (as identified by the Peer-Id) and server (as identified by
      the Server-Id).  Where the EAP Type Code is less than 255, the EAP
      Session-Id consists of the concatenation of the EAP Type Code and
      a temporally unique identifier obtained from the method.  Where
      expanded EAP Type Codes are used, the EAP Session-Id consists of
      the Expanded Type Code (including the Type, Vendor-Id and Vendor-
      Type fields defined in [RFC3748] Section 5.7) concatenated with a
      temporally unique identifier obtained from the method.  This
      unique identifier is typically  constructed from nonces or
      counters used within the EAP method exchange.  The inclusion of
      the Type Code in the EAP Session-Id ensures that each EAP method
      has a distinct Session-Id space.  Since an EAP session is not
      bound to a particular authenticator or specific ports on the peer
      and authenticator, the authenticator port or identity are not
      included in the Session-Id."

Appendix A text for EAP-TLS, AKA, and SIM:

"   EAP-TLS

      EAP-TLS is defined in [RFC2716].  The EAP-TLS Session-Id is the
      concatenation of the EAP Type Code (0x0D) with the peer and server
      nonces.  The Peer-Id and Server-Id are the contents of the
      altSubjectName in the peer and server certificates.

   EAP-AKA

      EAP-AKA is defined in [RFC4187].  The EAP-AKA Session-Id is the
      concatenation of the EAP Type Code (0x17) with the contents of the
      RAND field from the AT_RAND attribute, followed by the contents of
      the AUTN field in the AT_AUTN attribute.

      The Peer-Id is the contents of the Identity field from the
      AT_IDENTITY attribute, using only the Actual Identity Length
      octets from the beginning, however.  Note that the contents are
      used as they are transmitted, regardless of whether the
      transmitted identity was a permanent, pseudonym, or fast re-
      authentication identity.  The Server-Id is an empty string.

   EAP-SIM

      EAP-SIM is defined in [RFC4186].  The EAP-SIM Session-Id is the
      concatenation of the EAP Type Code (0x12) with the contents of the
      RAND field from the AT_RAND attribute, followed by the contents of
      the NONCE_MT field in the AT_NONCE_MT attribute.

      The Peer-Id is the contents of the Identity field from the
      AT_IDENTITY attribute, using only the Actual Identity Length
      octets from the beginning, however.  Note that the contents are
      used as they are transmitted, regardless of whether the
      transmitted identity was a permanent, pseudonym, or fast re-
      authentication identity.  The Server-Id is an empty string."

Proposed Resolution: Discuss

Issue 372: Key-Lifetime
Submitter name: Alper Yegin
Submitter email address: alper.yegin@yegin.org
Date Submitted: July 19, 2006
Reference: http://lists.frascone.com/pipermail/eap/msg04464.html
Document: KEYING-14
Comment type: 'T'echnical
Priority: S
Section: 3.5
Rationale/Explanation of issue:

3.5.  Exported and Calculated Key Lifetimes

   All EAP methods generating keys are required to generate the MSK and
   EMSK, and may optionally generate the IV.  However, EAP, defined in
   [RFC3748], does not itself support the negotiation of lifetimes for
   exported keying material such as the MSK, EMSK and IV.

   Several mechanisms exist for managing key lifetimes:

[a]  AAA attributes.  AAA protocols such as RADIUS [RFC2865] and
     Diameter [RFC4072] support the Session-Timeout attribute.  The
     Session-Timeout attribute represents the maximum lifetime of the
     exported keying material, and all keys depending on it, on the
     authenticator.  Since existing backend authentication servers do
     not cache keys exported by EAP methods, or keys calculated from
     exported keys, the value of the Session-Timeout attribute has no
     bearing on the key lifetime within the backend authentication
     server.

     On the authenticator,  where EAP is used for authentication the
     Session-Timeout attribute represents the maximum session time prior
     to re-authentication.  As described in [RFC3580] Section 3.17, when
     sent in an Access-Accept along with a Termination-Action value of
     RADIUS-Request, the Session-Timeout attribute specifies the maximum
     number of seconds of service provided prior to re-authentication.

     Where EAP is used for pre-authentication, the session may not start
     until some future time, or may never occur.  Nevertheless, the
     Session-Timeout value represents the maximum time after which
     transported EAP keying material, and all keys dependent on it, will
     have expired on the authenticator.  If the session subsequently
     starts, re-authentication will be initiated once the Session-Time
     has expired. If the session never started, or started and ended, by
     default keys transported by AAA and all keys dependent on them be
     expired by the authenticator prior to the future time indicated by
     Session-Timeout; this feature is utilized by [IEEE-802.11i].  Note
     that in future additional attributes may be specified to control
     the lifetime of cached keys; these attributes may modify the
     meaning of the Session-Timeout attribute in specific circumstances.

     Since the TSK lifetime is often determined by authenticator
     resources, and the backend authentication server has no insight
     into the TSK derivation process, by the principle of ciphersuite
     independence, it is not appropriate for the backend authentication
     server to manage any aspect of the TSK derivation process,
     including the TSK lifetime.

Alper: We shall not present this (a) as if it is a complete mechanism that
can manage key lifetimes on all relevant parties (peer, authenticator,
authentication server). This only provides the MSK lifetime to the
authenticator. Only when coupled with how peer learns the key lifetime for
MSK and EMSK we'd have a complete solution. 

Alper: I think what I'm suggesting is to enumerate these alternatives, such
that (a) appears under "how authenticator dynamically learns the MSK
lifetime."

[b]  Lower layer mechanisms.  While AAA attributes can communicate the
     maximum exported key lifetime, this only serves to synchronize the
     key lifetime between the backend authentication server and the
     authenticator.  Lower layer mechanisms such as the Secure
     Association Protocol can then be used to enable the lifetime of
     exported and calculated keys to be negotiated between the peer and
     authenticator.

     Where TSKs are established as the result of a Secure Association
     Protocol exchange, it is RECOMMENDED that the Secure Association
     Protocol include support for TSK re-key.  Where the TSK is taken
     directly from the MSK, there is no need to manage the TSK lifetime
     as a separate parameter, since the TSK lifetime and MSK lifetime
     are identical.

Alper: Secure Association Protocol is a "consumer" of MSK. For that, I don't
expect it to set the any attributes of the MSK it is "using." Doing
otherwise is a hack, IMHO. I recommend we remove the current text from this
option.

Alper: But, we shall retain the option. IMO, the technically correct way of
doing this is not via the "secure association" protocol, but via the "eap
transport". The lifetime learned from the authentication server via AAA
protocols can be conveyed to the EAP peer via such protocols. If people
agree, I can propose text.

[c]  System defaults.  Where the EAP method does not support the
     negotiation of the lifetime of exported keys, and a key lifetime
     negotiation mechanism is not provided by the lower lower, there may
     be no way for the peer to learn the lifetime of exported keys.  In
     this case it is RECOMMENDED that the peer assume a default value; 8
     hours is recommended.  Similarly, the lifetime of calculated keys
     can also be managed as a system parameter on the authenticator.


[d]  Method specific negotiation within EAP.  While EAP itself does not
     support lifetime negotiation, it would be possible to specify
     methods that do.  However, systems that rely on such negotiation
     for exported keys would only function with these methods.  In the
     interest of method independence, key management of exported or
     derived keys SHOULD NOT be provided within EAP methods.

Alper: again, this is all about how peer and authentication server agrees on
the MSK and EMSK lifetimes. It does not help the authenticator. We shall
categorize this mechanism as such.

Alper: Besides, what is the interaction between the lifetimes known and
delivered by the EAP methods and the AAA protocols? My understanding is, EAP
methods may export lifetimes, and the AAA protocol has the last say whether
the lifetime should be same as reported by the EAP method, or something
less. This is all about the "authorization" aspect. 
[Bernard Aboba]
Alper: We shall not present this (a) as if it is a complete mechanism that
can manage key lifetimes on all relevant parties (peer, authenticator,
authentication server). This only provides the MSK lifetime to the
authenticator. Only when coupled with how peer learns the key lifetime for
MSK and EMSK we'd have a complete solution.

Right.


 
Alper: I think what I'm suggesting is to enumerate these alternatives, such
that (a) appears under "how authenticator dynamically learns the MSK
lifetime."

This makes sense.


 
Alper: Secure Association Protocol is a "consumer" of MSK. For that, I don't
expect it to set the any attributes of the MSK it is "using." Doing
otherwise is a hack, IMHO. I recommend we remove the current text from this
option.

In practice the SAP handles this in a number of cases, including IKEv2, 802.16e, and 11r. So I don't think we can leave it out.


 
Alper: But, we shall retain the option. IMO, the technically correct way of
doing this is not via the "secure association" protocol, but via the "eap
transport". The lifetime learned from the authentication server via AAA
protocols can be conveyed to the EAP peer via such protocols. If people
agree, I can propose text.

We should probably describe this as another option.


 
[d]  Method specific negotiation within EAP.  While EAP itself does not
     support lifetime negotiation, it would be possible to specify
     methods that do.  However, systems that rely on such negotiation
     for exported keys would only function with these methods.  In the
     interest of method independence, key management of exported or
     derived keys SHOULD NOT be provided within EAP methods.

Alper: again, this is all about how peer and authentication server agrees on
the MSK and EMSK lifetimes. It does not help the authenticator. We shall
categorize this mechanism as such.

Yes. In fact, it might create problems if *both* the method and SAP/transport are trying to negotiate the lifetime. Do you have text to suggest?


 
Alper: Besides, what is the interaction between the lifetimes known and
delivered by the EAP methods and the AAA protocols? My understanding is, EAP
methods may export lifetimes, and the AAA protocol has the last say whether
the lifetime should be same as reported by the EAP method, or something
less. This is all about the "authorization" aspect.

Right. Another potential conflict.

[Alper Yegin]

> In practice the SAP handles this in a number of cases, including IKEv2,
> 802.16e, and 11r.   So I don't think we can leave it out.

I don't think we want to recommend that method. For that, not even
mentioning is the best thing, IMHO. If we really want to capture those
examples, I'd say they should go with a "NOT RECOMMENDED" qualifier in the
document.
[Bernard Aboba] Here is a revised proposal for both Sections 3.5 and 3.6:

"3.5. Exported and Calculated Key Lifetimes


The following mechanisms are available for communicating the lifetime
of exported and calculated keying material between the EAP peer,
server and authenticator:

AAA protocols (backend server and authenticator)
Lower layer mechanisms (authenticator and peer)
EAP method-specific negotiation (peer and server)

Where the EAP method does not support the negotiation of the lifetime
of exported keys, and a key lifetime negotiation mechanism is not
provided by the lower lower, there may be no way for the peer to
learn the lifetime of exported and calculated keys. This can leave
the peer uncertain how long the authenticator will maintain EAP
keying material within the key cache. In this case the lifetime of
exported keys can be managed as a system parameter on the peer and
authenticator; a default lifetime of 8 hours is RECOMMENDED.

3.5.1. AAA Protocols

AAA protocols such as RADIUS [RFC2865] and Diameter [RFC4072] can be
used to communicate the maximum exported key lifetime from the
backend authentication server to the authenticator.

The Session-Timeout attribue is defined for RADIUS in [RFC2865] and
for Diameter in [RFC4005]. Where EAP is used for authentication,
[RFC3580] Section 3.17 indicates that a Session-Timeout attribute
sent in an Access-Accept along with a Termination-Action value of
RADIUS-Request specifies the maximum number of seconds of service
provided prior to re-authentication.

However, there is also a need to be able to specify the maximum
lifetime of cached keying material. Where EAP pre-authentication is
supported, cached keys can be pre-established on the authenticator
prior to session start, and will remain there until they expire. EAP
lower layers supporting caching of exported keying material may also
persist that material after the end of a session, enabling the peer
to subsequently resume communication utilizing the cached keying
material. In these situations it may be desirable for the backend
authentication server to specify the maximum lifetime of cached
keying material.

To accomplish this, [IEEE-802.11i] overloaded the Session-Timeout
attribute, assuming that it represents the maximum time after which
transported EAP keying material will expire on the authenticator,
regardless of whether transported keying material is cached.

An IEEE 802.11 authenticator receiving keying material is expected to
initialize a timer to the Session-Timeout value, and once the timer
expires, the exported keying material expires. Whether this results
in session termination or re-authentication is controlled by the
value of the Termination-Action attribute. Where re-authentication
occurs the exported keying material is replaced, and with it, new
calculated keys are put in place. Where session termination occurs,
exported and calculated keying material is deleted.

Overloading the Session-Timeout attribute is problematic in
situations where it is necessary to control the maximum session time
and key lifetime independently. For example, it might be desirable
to limit the lifetime of cached keys to 5 minutes while permitting a
user once authenticated to remain connected for up to an hour without
re-authenticating. As a result, in the future additional attributes
may be specified to control the lifetime of cached keys; these
attributes may modify the meaning of the Session-Timeout attribute in
specific circumstances.

Since the TSK lifetime is often determined by authenticator
resources, and the backend authentication server has no insight into
the TSK derivation process, by the principle of ciphersuite
independence, it is not appropriate for the backend authentication
server to manage any aspect of the TSK derivation process, including
the TSK lifetime.

3.5.2. Lower Layer Mechanisms


Lower layer mechanisms can be used to enable the lifetime of exported
and calculated keys to be negotiated between the peer and
authenticator. This can be accomplished either using the Secure
Association Protocol or within the lower layer transport.

Where TSKs are established as the result of a Secure Association
Protocol exchange, it is RECOMMENDED that the Secure Association
Protocol include support for TSK re-key. Where the TSK is taken
directly from the MSK, there is no need to manage the TSK lifetime as
a separate parameter, since the TSK lifetime and MSK lifetime are
identical.

3.5.3. EAP Method-Specific Negotiation


All EAP methods generating keys are required to generate the MSK and
EMSK, and may optionally generate the IV. However, EAP, defined in
[RFC3748], does not itself support the negotiation of lifetimes for
exported keying material such as the MSK, EMSK and IV.

While EAP itself does not support lifetime negotiation, it would be
possible to specify methods that do. However, systems that rely on
such negotiation for exported keys would only function with these
methods. Also, there is no guarantee that the lifetime negotiated
within the EAP method would be compatible with backend authentication
server policy. In the interest of method independence and
compatibility with backend server implemenations, key management of
exported or derived keys SHOULD NOT be provided within EAP methods.

3.6. Key cache synchronization

Key lifetime negotiation alone cannot guarantee key cache
synchronization. Even where a lower layer exchange is run
immediately after EAP in order to determine the lifetime of EAP
keying material, it is still possible for the authenticator to
reclaim resources.

The lower layer may utilize the Discovery phase 0 to improve key
cache synchronization. For example, if the authenticator manages the
key cache by deleting the oldest key first (LIFO), the relative
creation time of the last key to be deleted could be advertised
within the Discovery phase, enabling the peer to determine whether
keying material had been prematurely expired from the authenticator
key cache."

[Michaela Vanderveen]

About section 3.6, the authenticator "reclaim[ing] 
resources" is a bit unclear.
Also, deleting the older key first does not read to me as the same as a 
LIFO queue, as the last key to be added is the newest one, and that's 
not the one that it is thrown out first.

[Bernard Aboba]

How about this?

"3.6. Key cache Synchronization

Key lifetime negotiation alone cannot guarantee key cache
synchronization. Even where a lower layer exchange is run
immediately after EAP in order to determine the lifetime of EAP
keying material, it is still possible for the authenticator to
purge all or part of the key cache prematurely (e.g. due to reboot or
need to reclaim memory).

The lower layer may utilize the Discovery phase 0 to improve key
cache synchronization. For example, if the authenticator manages the
key cache by deleting the oldest key first, the relative
creation time of the last key to be deleted could be advertised
within the Discovery phase, enabling the peer to determine whether
keying material had been prematurely expired from the authenticator
key cache."

[Michaela Vanderveen]

Sounds very clear now. Thanks.

[Bernard Aboba] Here is the entire proposed resolution:

Replace Section 3.5 and 3.6 with the following: 

"3.5. Exported and Calculated Key Lifetimes

The following mechanisms are available for communicating the lifetime
of exported and calculated keying material between the EAP peer,
server and authenticator:

AAA protocols (backend server and authenticator)
Lower layer mechanisms (authenticator and peer)
EAP method-specific negotiation (peer and server)

Where the EAP method does not support the negotiation of the lifetime
of exported keys, and a key lifetime negotiation mechanism is not
provided by the lower lower, there may be no way for the peer to
learn the lifetime of exported and calculated keys. This can leave
the peer uncertain how long the authenticator will maintain EAP
keying material within the key cache. In this case the lifetime of
exported keys can be managed as a system parameter on the peer and
authenticator; a default lifetime of 8 hours is RECOMMENDED.

3.5.1. AAA Protocols

AAA protocols such as RADIUS [RFC2865] and Diameter [RFC4072] can be
used to communicate the maximum exported key lifetime from the
backend authentication server to the authenticator.

The Session-Timeout attribue is defined for RADIUS in [RFC2865] and
for Diameter in [RFC4005]. Where EAP is used for authentication,
[RFC3580] Section 3.17 indicates that a Session-Timeout attribute
sent in an Access-Accept along with a Termination-Action value of
RADIUS-Request specifies the maximum number of seconds of service
provided prior to re-authentication.

However, there is also a need to be able to specify the maximum
lifetime of cached keying material. Where EAP pre-authentication is
supported, cached keys can be pre-established on the authenticator
prior to session start, and will remain there until they expire. EAP
lower layers supporting caching of exported keying material may also
persist that material after the end of a session, enabling the peer
to subsequently resume communication utilizing the cached keying
material. In these situations it may be desirable for the backend
authentication server to specify the maximum lifetime of cached
keying material.

To accomplish this, [IEEE-802.11i] overloaded the Session-Timeout
attribute, assuming that it represents the maximum time after which
transported EAP keying material will expire on the authenticator,
regardless of whether transported keying material is cached.

An IEEE 802.11 authenticator receiving keying material is expected to
initialize a timer to the Session-Timeout value, and once the timer
expires, the exported keying material expires. Whether this results
in session termination or re-authentication is controlled by the
value of the Termination-Action attribute. Where re-authentication
occurs the exported keying material is replaced, and with it, new
calculated keys are put in place. Where session termination occurs,
exported and calculated keying material is deleted.

Overloading the Session-Timeout attribute is problematic in
situations where it is necessary to control the maximum session time
and key lifetime independently. For example, it might be desirable
to limit the lifetime of cached keys to 5 minutes while permitting a
user once authenticated to remain connected for up to an hour without
re-authenticating. As a result, in the future additional attributes
may be specified to control the lifetime of cached keys; these
attributes may modify the meaning of the Session-Timeout attribute in
specific circumstances.

Since the TSK lifetime is often determined by authenticator
resources, and the backend authentication server has no insight into
the TSK derivation process, by the principle of ciphersuite
independence, it is not appropriate for the backend authentication
server to manage any aspect of the TSK derivation process, including
the TSK lifetime.

3.5.2. Lower Layer Mechanisms


Lower layer mechanisms can be used to enable the lifetime of exported
and calculated keys to be negotiated between the peer and
authenticator. This can be accomplished either using the Secure
Association Protocol or within the lower layer transport.

Where TSKs are established as the result of a Secure Association
Protocol exchange, it is RECOMMENDED that the Secure Association
Protocol include support for TSK re-key. Where the TSK is taken
directly from the MSK, there is no need to manage the TSK lifetime as
a separate parameter, since the TSK lifetime and MSK lifetime are
identical.

3.5.3. EAP Method-Specific Negotiation

All EAP methods generating keys are required to generate the MSK and
EMSK, and may optionally generate the IV. However, EAP, defined in
[RFC3748], does not itself support the negotiation of lifetimes for
exported keying material such as the MSK, EMSK and IV.

While EAP itself does not support lifetime negotiation, it would be
possible to specify methods that do. However, systems that rely on
such negotiation for exported keys would only function with these
methods. Also, there is no guarantee that the lifetime negotiated
within the EAP method would be compatible with backend authentication
server policy. In the interest of method independence and
compatibility with backend server implemenations, key management of
exported or derived keys SHOULD NOT be provided within EAP methods.

3.6. Key cache Synchronization

Key lifetime negotiation alone cannot guarantee key cache
synchronization. Even where a lower layer exchange is run
immediately after EAP in order to determine the lifetime of EAP
keying material, it is still possible for the authenticator to
purge all or part of the key cache prematurely (e.g. due to reboot or
need to reclaim memory).

The lower layer may utilize the Discovery phase 0 to improve key
cache synchronization. For example, if the authenticator manages the
key cache by deleting the oldest key first, the relative
creation time of the last key to be deleted could be advertised
within the Discovery phase, enabling the peer to determine whether
keying material had been prematurely expired from the authenticator
key cache."

Proposed Resolution: Accept

Issue 373: Organization of Section 4
Submitter name: Bernard Aboba
Submitter email address: aboba@internaut.com
Date Submitted: August 2, 2006
Reference: http://lists.frascone.com/pipermail/eap/msg04476.html
Document: KEYING-14
Comment type: 'T'echnical
Priority: S
Section: 4
Rationale/Explanation of issue:

Section 4 states the following:

" With EAP, several mechanisms are available to reduce the latency in
   handoff between authenticators:

[a]  EAP pre-authentication.  This utilizes EAP to pre-establish EAP
     keying material on an authenticator prior to arrival of the peer.
     Use of pre-authentication within IEEE 802.11 is described in
     [8021XHandoff] and [IEEE-802.11i].

[b]  Key caching.  This mechanism enables an EAP peer to re-attach to an
     authenticator without requiring EAP re-authentication.

[c]  Context transfer, such as is defined in [IEEE-802.11F] (now
     deprecated) and [RFC4067].  Use of context transfer for handoff
     latency improvement is described in [IEEE-02-758].

[d]  Proactive key distribution, such as is described in
     [IEEE-02-758][IEEE-03-084] and [I-D.irtf-aaaarch-handoff].

   The sections that follow discuss the security vulnerabilities
   introduced by the above mechanisms."

However, while Section 4.1 does talk about Pre-authentication,
it is not made explicit how Sections 4.2 and 4.3 relate to the
security of Key Caching, Context Transfer or Proactive Key
distribution.

For example, issues of authorization and correctness do not
apply to mechanisms which utilize AAA to distribute authorizations.
Therefore Section 4.2 and 4.3 do not seem to relate to the
Pre-authentication or Proactive Key Distribution mechanisms,
only to Key Caching and Context Transfer.

[Bernard Aboba]

The proposed resolution is to replace Section 4 with the following text:

 
"4.  Handoff Vulnerabilities
 
  Several mechanisms have been proposed for reducing handoff latency
  within networks utilizing EAP.  These include:
 
EAP pre-authentication
    In EAP pre-authentication, an EAP peer pre-establishes EAP keying
    material with an authenticator prior to arrival.  EAP pre-
    authentication only affects the timing of EAP authentication, but
    does not shorten or eliminate EAP (phase 1a) or AAA (phase 1b)
    exchanges;  Discovery (phase 0) and Secure Association Protocol
    (phase 2) exchanges occur as described in Section 1.3.  As a
    result, the primary benefit is to enable EAP authentication to be
    removed from the handoff critical path, thereby reducing latency.
    Use of EAP pre-authentication within IEEE 802.11 is described in
    [8021XPreAuth] and [IEEE-802.11i].
Proactive key distribution
    In proactive key distribution, derived keying material and
    authorizations are transported from the backend authentication
    server to a candidate authenticator in advance of a handoff.  As a
    result, EAP (phase 1a) is not required, but the Discovery (phase
    0), and Secure Association Protocol exchanges (phase 2) are still
    necessary.  Within the AAA exchange (phase 1b), authorization and
    key distribution functions are typically supported, but not
    authentication.  Proactive key distribution is described in
    [MishraPro], [IEEE-03-084] and [I-D.irtf-aaaarch-handoff].
Key caching
    Caching of EAP keying material enables an EAP peer to re-attach to
    an authenticator without requiring EAP (phase 1a) or AAA (phase 1b)
    exchanges.  However, Discovery (phase 0) and Secure Association
    Protocol (phase 2) exchanges are still required.  Use of key
    caching within IEEE 802.11 is described in [IEEE-802.11i].
Context transfer
    In context transfer schemes, keying material and authorizations are
    transferred between a previous authenticator and a new
    authenticator.  This can occur in response to a handoff request by
    the EAP peer,  or in advance, as in proactive key distribution.  As
    a result, EAP (phase 1a) is eliminated, but not the Discovery
    (phase 0) or Secure Association Protocol exchanges (phase 2).  If a
    secure channel can be established between the new and previous
    authenticator without assistance from the backend authentication
    server, then the AAA exchange (phase 1b) can be eliminated;
    otherwise, it is still required, although it may be shortened.
    Context transfer protocols are described in [IEEE-802.11F] (now
    deprecated) and "Context Transfer Protocol (CXTP)" [RFC4067].
    "Fast Authentication Methods for Handovers between IEEE 802.11
    Wireless LANs" [Bargh] analyzes fast handoff techniques, including
    context transfer mechanisms.
Token distribution
    In token distribution schemes the EAP peer is provided with a
    credential, subsequently enabling it to authenticate with one or
    more additional authenticators.  During the subsequent
    authentications, EAP (phase 1a) is eliminated or shortened; the
    Discovery (phase 0) and Secure Association Protocol exchanges
    (phase 2) still occur, although the latter may be shortened.  If
    the token includes authorizations and can be validated by an
    authenticator without assistance from the backend authentication
    server, then the AAA exchange (phase 1b) can be eliminated;
    otherwise it is still required, although it may be shortened.
    Token-based schemes are described in [Token] and [I-D.friedman-ike-
    short-term-certs].
  The sections that follow discuss the security vulnerabilities
  introduced by the above schemes.
4.1.  EAP Pre-authentication
  EAP pre-authentication differs from a normal EAP conversation
  primarily with respect to the lower layer encapsulation.  For
  example, in [IEEE-802.11i], EAP pre-authentication frames utilize a
  distinct Ethertype, but otherwise conform to the encapsulation
  described in [IEEE-802.1X].  As a result, an EAP pre-authentication
  conversation differs little from the model described in Section 1.3,
  other than the introduction of a delay between phase 1 and phase 2.
  EAP pre-authentication relies on lower layer mechanisms for discovery
  of candidate authenticators.  Where discovery can provide information
  on candidate authenticators outside the immediate listening range,
  and the peer can determine whether it already possesses valid keying
  material with candidate authenticators, the peer can avoid
  unnecessary EAP pre-authentications and can establish keying material
  well in advance, regardless of the coverage overlap between
  authenticators.  However, if the peer can only discover candidate
  authenticators within listening range and cannot determine whether it
  can reuse existing key material, then peer may not be able to
  complete EAP pre-authentication prior to connectivity loss or may
  pre-authenticate multiple times with the same authenticator,
  increasing backend authentication server load.
  Since a peer may complete EAP pre-authentication with an
  authenticator without eventually attaching to it, phase 2 may never
  occur.  As a result, an Accounting-Request signifying the start of
  service may never be sent, or may only be sent with a substantial
  delay after the completion of authentication.
  As noted in "IEEE 802.1X RADIUS Usage Guidelines" [RFC3580], the AAA
  exchange resulting from EAP pre-authentication differs little from an
  ordinary exchange described in "RADIUS Support for EAP" [RFC3579].
  For example, since in IEEE 802.11i an Association exchange does not
  occur prior to EAP pre-authentication, the SSID is not known by the
  authenticator at authentication time, so that an Access-Request
  cannot include the SSID within the Called-Station-Id attribute as
  described in [RFC3580] Section 3.20.
  Since only the absence of an SSID in the Called-Station-Id attribute
  distinguishes an EAP pre-authentication attempt, if the authenticator
  does not always include the SSID for a normal EAP authentication
  attempt, the backend authentication server may not be able to
  determine whether a session constitutes an EAP pre-authentication
  attempt, potentially resulting in authorization or accounting
  problems.  Where the number of simultaneous sessions is limited, the
  backend authentication server may refuse to authorize a valid EAP
  pre-authentication attempt or may enable the peer to engage in more
  simultaneous sessions than they are authorized for.  Where EAP pre-
  authentication occurs with an authenticator which the peer never
  attaches to, the backend accounting server may not be able to
  determine whether the absence of an Accounting-Request was due to
  packet loss or a session that never started.
  In order to enable pre-authentication requests to be handled more
  reliably, it is RECOMMENDED that AAA protocols explicitly identify
  EAP pre-authentication.  In order to suppress unnecessary EAP pre-
  authentication exchanges, it is RECOMMENDED that authenticators
  unambiguously identify themselves as described in Section 2.2.1.
4.2.  Proactive Key Distribution
  In proactive key distribution schemes, the backend authentication
  server transports keying material and authorizations to an
  authenticator in advance of the arrival of the peer.  The
  authenticators selected to receive the transported key material are
  selected based on past patterns of peer movement between
  authenticators known as the "neighbor graph".  Since proactive key
  distribution schemes typically only demonstrate proof of possession
  of transported keying material between the EAP peer and
  authenticator, the backend authentication server may not be provided
  with proof that the peer successfully authenticated to an
  authenticator.  To compute the "neighbor graph" the backend
  authentication server therefore may need to rely on a stream of
  accounting messages without a corresponding set of authentication
  exchanges.
  In order to prevent compromise of one authenticator from resulting in
  compromise of other authenticators,  cryptographic separation needs
  to be maintained between the keying material transported to each
  authenticator.  However, even where cryptographic separation is
  maintained, an attacker compromising an authenticator may still
  disrupt the operation of other authenticators.  Since proactive key
  distribution schemes typically only demonstrate proof of possession
  of transported keying material between the EAP peer and
  authenticator, the backend authentication server is typically not
  provided with proof that the peer actually connected to an
  authenticator.  To compute the "neighbor graph" it therefore may be
  necessary to rely on a stream of accounting messages without a
  corresponding set of authentication exchanges to verify against.
  As noted in [RFC3579] Section 4.3.7, in the absence of spoofing
  detection within the AAA infrastructure, it is possible for EAP
  authenticators to impersonate each other.  By forging NAS
  identification attributes within accounting messages, an attacker
  compromising one authenticator could corrupt the neighbor graph,
  tricking the backend authentication server into transporting keying
  material to arbitrary authenticators.  While this would not enable
  recovery of EAP keying material without breaking fundamental
  cryptographic assumptions, it could enable fraudulent charges or
  allow an attacker to disrupt service by increasing load on the
  backend authentication server or thrashing the authenticator key
  cache.
  Since proactive key distribution requires the distribution of derived
  keying material to candidate authenticators,  the effectiveness of
  this scheme depends on the ability of backend authentication server
  to anticipate the movement of the EAP peer.  As described in [Mishra-
  Pro], knowledge of the "neighbor graph" can be established via static
  configuration or analysis of accounting messages.  Since proactive
  key distribution relies on backend authentication server knowledge of
  the "neighbor graph" it is most applicable to intra-domain handoff
  scenarios.  However, in inter-domain handoff where there may be many
  authenticators, the "neighbor graph" may not be readily derived on
  the backend authentication server, since peers may frequently connect
  to authenticators that have not previously been encountered.
  Since proactive key distribution schemes typically require
  introduction of server-initiated messages as described in [RFC3576]
  and [I-D.irtf-aaaarch-handoff],  security issues described in
  [RFC3576] Section 5 are applicable, including authorization (Section
  5.1) and replay detection (Section 5.4) problems.
4.3.  AAA Bypass
  Fast handoff techniques which enable elimination of the AAA exchange
  (phase 1b) differ fundamentally from typical network access scenarios
  (dial-up, wired LAN, etc.)  which include user authentication as well
  as authorization for the offered service.  Where the AAA exchange
  (phase 1b) is omitted, authorizations and keying material are not
  provided by the backend authentication server, and as a result they
  need to be supplied by other means.  This section describes some of
  the implications.
4.3.1.  Key Transport
  Where transported keying material is not supplied by the backend
  authentication server, it needs to be provided by another party
  authorized to access that keying material.  As noted in Section 1.5,
  only the EAP peer, authenticator and server are authorized to possess
  transported EAP keying material.   Since EAP peers do not trust each
  other, if the backend authentication server does not supply
  transported keying material to a new authenticator, it can only be
  provided by a previous authenticator.
  As noted in Section 1.5, the goal of the EAP conversation is to
  derive session keys known only to the peer and the authenticator.  If
  EAP keying material is replicated between a previous authenticator
  and a new authenticator, then the previous authenticator may
  potentially know the session keys used between the peer and new
  authenticator.  Also, the new authenticator may potentially know the
  session keys used between the peer and the previous authenticator.
  If a one-way function is used to derive the keying material to be
  transported to the new authenticator, then the new authenticator is
  not longer able to know previous session keys without breaking a
  fundamental cryptographic assumption.
4.3.2.  Authorization
  As a part of the authentication process, the backend authentication
  server determines the user's authorization profile and transmits the
  authorizations to the authenticator along with the transported EAP
  key material.  Typically, the profile is determined based on the user
  identity, but a certificate presented by the user may also provide
  authorization information.
  The backend authentication server is responsible for making a user
  authorization decision, which requires answering the following
  questions:
[a]  Is this a legitimate user of this network?
[b]  Is the user allowed to access this network?
[c]  Is the user permitted to access this network on this day and at
    this time?
[d]  Is the user within the concurrent session limit?

 
[e]  Are there any fraud, credit limit, or other concerns indicating
    that access should be denied?

 
[f]  If access is to be granted, what are the service parameters
    (mandatory tunneling, bandwidth, filters, and so on) to be
    provisioned for the user?
  While the authorization decision is in principle simple, the
  distributed decision making process may add complexity.  Where
  brokers or proxies are involved, all of the AAA entities in the chain
  from the authenticator to the home backend authentication server are
  involved in the decision.  For example, a broker can deny access even
  if the home backend authentication server would allow it, or a proxy
  can add authorizations (e.g., bandwidth limits).
  Decisions can be based on static policy definitions and profiles as
  well as dynamic state (e.g. time of day or concurrent session
  limits).  In addition to the Accept/Reject decisions made by AAA
  entities, service parameters or constraints may be communicated to
  the authenticator.
  The criteria for Accept/Reject decisions or the reasons for choosing
  particular authorizations are typically not communicated to the
  authenticator, only the final result.  As a result, the authenticator
  has no way to know what the decision was based on.  Was a set of
  authorization parameters sent because this service is always provided
  to the user, or was the decision based on the time of day and the
  capabilities of the authenticator?
4.3.3.  Correctness
  When the AAA exchange (phase 1b) is bypassed,  several challenges
  arise in ensuring correct authorization:
[a]  Theft of service.  Bypassing the AAA exchange (phase 1b) should not
    enable a user to extend their network access or gain access to
    services they are not entitled to.
[b]  Consideration of network-wide state.  Handoff techniques should not
    render the backend authentication server incapable of keeping track
    of network-wide state.  For example, a backend authentication
    server may need to keep track of simultaneous user sessions.
[c]  Elevation of privilege.  Backend authentication servers often
    perform conditional evaluation, in which the authorizations
    returned in an Access-Accept message are contingent on the
    authenticator or on dynamic state such as the time of day.  In this
    situation, bypassing the AAA exchange could enable unauthorized
    access unless the restrictions are explicitly encoded within the
    authorizations provided by the backend authentication server.
  A handoff mechanism that provides proper authorization is said to be
  "correct".  One condition for correctness is as follows:
     For a handoff to be "correct" it MUST establish on the new
     authenticator the same authorizations as would have been created
     had the new authenticator completed a AAA conversation with the
     backend authentication server.
  A properly designed handoff scheme will only succeed if it is
  "correct" in this way.  If a successful handoff would establish
  "incorrect" authorizations, it is preferable for it to fail.  Where
  the supported services differ between authenticators, a handoff that
  bypasses the backend authentication server is likely to fail.
  [RFC2865] section 1.1 states:
     A authenticator that does not implement a given service MUST NOT
     implement the RADIUS attributes for that service.  For example, a
     authenticator that is unable to offer ARAP service MUST NOT
     implement the RADIUS attributes for ARAP.  A authenticator MUST
     treat a RADIUS access-accept authorizing an unavailable service as
     an access-reject instead.
  This behavior applies to attributes that are known, but not
  implemented.  For attributes that are unknown, [RFC2865] Section 5
  states:
     A RADIUS server MAY ignore Attributes with an unknown Type.  A
     RADIUS client MAY ignore Attributes with an unknown Type.
  In order to perform a correct handoff, if a new authenticator is
  provided with RADIUS authorizations for a known but unavailable
  service, then it MUST process these authorizations the same way it
  would handle a RADIUS Access-Accept requesting an unavailable
  service;  this MUST cause the handoff to fail.  However, if a new
  authenticator is provided with authorizations including unknown
  attributes, then these attributes MAY be ignored.  The definition of
  a "known but unsupported service" MUST encompass requests for
  unavailable security services.  This includes vendor-specific
  attributes related to security, such as those described in [RFC2548].
  Although it may seem somewhat counter-intuitive, failure is indeed
  the "correct" result where a known but unsupported service is
  requested.
  Presumably a correctly configured backend authentication server would
  not request that an authenticator provide a service that it does not
  implement.  This implies that if the new authenticator were to
  complete a AAA conversation, it would be likely to receive different
  service instructions.  Failure of the handoff is the desired result
  since it will cause the new authenticator to go back to the backend
  server in order to receive the appropriate service definition.
  Handoff mechanisms which bypass the backend authentication server are
  most likely to be successful when employed in a homogeneous
  deployment within a single administrative domain.  In a heterogeneous
  deployment, the backend authentication server may return different
  authorizations depending on the authenticator making the request, in
  order to make sure that the requested service is consistent with the
  authenticator capabilities.  Where a backend authentication server
  would send different authorizations to the new authenticator than
  were sent to a previous authenticator,  transferring authorizations
  between the previous authenticator and the new authenticator will
  result in incorrect authorization.
  Virtual LAN (VLAN) support is defined in [IEEE-802.1Q]; RADIUS
  support for dynamic VLANs is described in [RFC3580] and [RFC4675].
  If some authenticators support dynamic VLANs while others do not,
  then attributes present in the Access-Request (such as the NAS-Port-
  Type, NAS-IP-Address, NAS-IPv6-Address and NAS-Identifier) could be
  examined by the backend authentication server to determine when VLAN
  attributes will be returned, and if so, which ones.  However, if the
  backend authenticator is bypassed, then a handoff occurring between
  authenticators supporting different VLAN capabilities could result in
  a user obtaining access to an unauthorized VLAN (e.g. a user with
  access to a guest VLAN being given unrestricted access to the
  network).
  Similarly, a handoff between an authenticator providing
  confidentiality and another that does not should fail, since if the
  handoff were successful, the user would be moved from a secure to an
  insecure channel without permission from the backend authentication
  server."
Proposed Resolution:  Accept
Issue 374: NITs
Submitter name: M. Vanderveen
Submitter email address: mvandrvn@yahoo.com
Date Submitted: July 18, 2006
Reference: http://lists.frascone.com/pipermail/eap/msg04463.html
Document: NETSEL-04
Comment type: Editorial
Priority: S
Section: Various
Rationale/Explanation of issue:
The draft is a good summary of the network selection problem.
I wonder if there is a plan to update this document after the various SDOs make some progress in this area. Overall it looks good to go.
 
Some editorials:
- Page 4: "The selection is dependent upon for example the
      authentication credentials for the user / device and the roaming
      agreements."  If there are no other factors that selection is dependent on
(besides that mentioned in the sentence immediately following this one), then
remove the "for example".
 
- Page 4: "The selection will be dependent upon for
      example the support for an access technology by the device and
      availability of such access technology based networks."
      Same comment as above.
 
- Page 15: "APs must support 802.1X pre-authentication (optional
in IEEE 802.11i) ". The year of this standard should be specified,
just like it is earlier in that sentence. What is meant here is
probably IEEE 802.11i-2004.
 
- Page 20: "solutions for problem of network selection" -- insert "the"
before "problem".
 
-Page 20: "more than one points" -- replace "points" with "point"

[Jari Arkko] Everything is addressed except this:

- Page 15: "APs must support 802.1X pre-authentication (optional
in IEEE 802.11i) ". The year of this standard should be specified,
just like it is earlier in that sentence. What is meant here is
probably IEEE 802.11i-2004.
- Page 20: "solutions for problem of network selection" -- insert "the"
before "problem".
-Page 20: "more than one points" -- replace "points" with "point"

Proposed Resolution:  Accept
Issue 375: Comments
Submitter name: Yoshihiro Ohba
Submitter email address: yohba@tari.toshiba.com
Date Submitted: July 20, 2006
Reference: http://lists.frascone.com/pipermail/eap/msg04465.html
Document: NETSEL-04
Comment type: Editorial
Priority: S
Section: 3.1
Rationale/Explanation of issue:
One minor comment on Section 3.1:

"  The PANA protocol [17] has a mechanism to advertise and select "ISPs"
   through the exchange of the ISP-Information AVP in its initial
   exchange."

"  The use of
   other network identifiers than domain names is also possible, for
   instance the PANA protocol uses an a free form string and an SMI
   Network Management Private Enterprise Code [17], or Mobile Network
   Codes embedded in NAIs as specified in 3GPP."

The description is true for the current version of PANA specification.
However, the latest discussion in the PANA WG will make the network
selection functionality be specified in a separate document other than
specifying it in the PANA base specification.  
[Jari Arkko] 
But latest PANA document (ietf-pana-pana) no longer has 
ISP-Information or NAP-Information, so I think further 
developments have changed the situation again. Here's the edit:
 
Remove text:
    The PANA protocol [I-D.ietf-pana-pana] has a mechanism to advertise
    and select "ISPs" through the exchange of the ISP-Information AVP in
    its initial exchange.
Change text 
    The use of other network identifiers
   than domain names is also possible, for instance the PANA protocol
   uses an a free form string and an SMI Network Management Private
   Enterprise Code [I-D.ietf-pana-pana], or Mobile Network Codes
   embedded in NAIs as specified in 3GPP.
 
=>
 
   The use of other network identifiers
   than domain names is also possible.
 
And remove the reference too.
Proposed Resolution:  Accept
Issue 376: Overall Comments
Submitter name: Bernard Aboba
Submitter email address: aboba@internaut.com
Date Submitted: August 8, 2006
Reference: http://lists.frascone.com/pipermail/eap/msg04477.html
Document: NETSEL-04
Comment type: Technical
Priority: S
Section: Various
Rationale/Explanation of issue:
Organizational Issues
 
This document has some organizational issues.   Section 1 describes when
the realm selection problem becomes relevant but since the problem is
defined in Section 2, the reader is left without an understanding of how
the problem manifests itself in those situations.  To provide some
context, I think that some text is needed in Section 1 for each of the
first two bullets, describing the issues that can occur.  The third bullet
does include discussion of issues.

In order to parallel the problems listed in Section 2, I was expecting a
section on "Payload routing" as well as one on "realm capability
discovery".  Instead, I found found Sections 2.4 and 2.5 which do not seem
to correspond to one of the listed problems.  I think Section 2.5 does
relate to the "capability discovery" problem so that perhaps it should be
renamed.  I am not clear why Section 2.4 belongs where it is; I'd suggest
it be moved out of Section 2.
 
Section 2.3.1 seems to end just as it got started.  This section seems to
be going somewhere important so I think it needs to be fleshed out.  For
example, it could talk about how "default" versus "default free" proxies
in AAA routing.
 
Section 3 interrupts the flow of the document, and so I think it might be
best moved to an Appendix.
Section 4 is actually quite important, since one of the goals of this
effort was to address architectural problems with existing solutions.
However, this section does not talk much about scalability issues.

Terminology
 
The abstract refers to the "realm discovery and selection problem", as
do sections 1 and 2. However, the title of the document is still "Network
Discovery and Selection Problem".  Also Section 3 uses other terms such as
"access network discovery", "network discovery process", "network
selection", without defining them.  If you are going to use these terms
later on, I think that either new definitions are needed in Section 1.1,
or the terminology should be harmonized with the existing definitions.
Currently the terms "Access Technology Selection" and "Bearer Selection"
do not appear to be referenced outside Section 1.1.

References
 
Two reference styles are used.  Most of the time the straight number style
is used (e.g. [34]).  However, in Section 3.3, the author name is also
given (e.g. "Ahmavaara, Haverinen and Pichna [34]").  I would suggest
using a consistent style.  Personally, I am not very fond of the number
style of referencing, particularly when RFCs are being referenced.
 
[Bernard Aboba]  More detail on the proposed issues and resolutions are given below:
 
Here are more details on the issues and proposed changes:

Abstract


The so called network discovery and selection problem affects network
access, particularly in the presence of multiple available wireless
accesses and roaming. This problem has been the subject of
discussions in various standards bodies. This document summarizes
the discussion held about this problem in the Extensible
Authentication Protocol (EAP) working group at the IETF. The problem
is defined and divided into subproblems, and some constraints for
possible solutions are outlined. The document also provides a
discussion of the limitations of certain classes of solution,
including some that have been previously defined.


Suggest changing to:


When multiple access network are available, roaming
users may have difficulty in selecting which network
to connect to, and how to authenticate with that network.
This document defines the network discovery and
selection problem, dividing it into multiple sub-problems.
Some constraints on potential solutions are outlined, and
the limitations of several solutions (including existing ones)
are discussed.


1. Introduction


The network discovery and selection problem affects network access
and wireless access networks in particular. Aspects of the problem
will appear when any of the following conditions are true:


[BA] Suggest changing to:


When multiple access network are available, roaming
users may have difficulty in selecting which network
to connect to, and how to authenticate with that network.
The problem arises when any of the following conditions are
true:


[BA] The next few paragraphs state conditions under which the problem
can occur, but don't clearly state what bad things will happen in
each circumstance:


o There is more than one available network attachment point, and the
different attachment points may have different characteristics or
belong to different operators. In the case of virtual operators,
access network infrastructure including e.g. the access points can
be shared by multiple operators. In order to choose between the
network attachment points, it may be helpful to determine which
realms are supported and the capabilities access network
supporting those realms. Otherwise, the mobile station might
frequently roam into networks that are not able to satisfy the
roaming connectivity needs or provide services the mobile station
(and the subscriber) are seeking for. This would of course lower
the general quality of offered services.


o The user has multiple sets of credentials. For instance, the user
could have one set of credentials from a public service provider
and set from the user's employer. In this case it may be helpful
to provide additional information to enable the correct credential
set to be determined. Otherwise, it could happen that for example
a network access authentication repeatedly fails because of
incorrectly selected and offered set of credentials.


o There is more than one way to provide roaming between the visited
realm used for access and user's home realm, and service
parameters or pricing differs between them. For instance, the
visited access realm could have both a direct relationship with
the home realm and an indirect relationship through a roaming
consortium. In some scenarios, current AAA protocols may not be
able to route the requests to the home realm unaided, just based
on the domain in the given Network Access Identifier (NAI)
[RFC4282]. In addition, payload packets can get routed or
tunneled differently, based on the roaming relationship path in
use. This may have an impact on the available services or their
pricing.


[BA] Suggest changing to:


o More than one network attachment point is available, and the
attachment points differ in capability or belong to different
operators. In this case, a roaming user may have difficulty
determining which attachment points offering the desired services
it can successfully authenticate to. In order to choose between
multiple attachment points, it can be helpful to determine which
realms are supported and the capabilities that the networks support


o The user has multiple sets of credentials. In this case, the
user may not be able to determine which credentials to use with
which attachment point, or even whether any credentials it
possesses will allow it to authenticate successfully. This
can result in multiple unsuccessful authentication attempts
for each attachment point, wasting valuable time and resulting
in user frustration. For example, the user
could have one set of credentials from a public service provider
and set from an employer. In order to choose between multiple
attachment points, it can be helpful to provide additional
information to enable the correct credentials to be determined.


o There are multiple potential roaming paths between the visited
realm and the user's home realm, and service parameters or
pricing differs between them. In this case, the access network
may not be able to determine the roaming path that best matches
the user's preferences. This can lead to the user being
charged more than necessary, or not obtaining the desired
services. For example, the visited access realm could have
both a direct relationship with the home realm and an indirect
relationship through a roaming consortium. Current AAA protocols
may not be able to route the access request to the home AAA sever
purely based on the realm within the Network Access Identifier (NAI)
[RFC4282]. In addition, payload packets can be routed or
tunneled differently, based on the roaming relationship path.
This may have an impact on the available services or their
pricing.

[BA] The next paragraph could be cleaned up a bit:


In Section 2 the network discovery and selection problem is defined
and divided into subproblems, and some design issues for possible
solutions are outlined in Section 3. Section 4 gives the conclusions
and some suggestions on how to proceed for the rest. Appendix A
discusses existing mechanisms which help solve at least parts of the
problem. The terms "network" and "realm" have sometimes been used
interchangeably within the context of selection and discovery. It
should be noted that a realm can be reachable from more than one
access network types and selection of a realm may not imply certain
network capabilities.


Suggest changing to:


In Section 2 the network discovery and selection problem is defined
and divided into subproblems, and some potential solution constraints
are outlined in Section 3. Section 4 provides conclusions
and suggestions for future work. Appendix A
discusses existing solutions to portions of the problem.


[BA] The following sentences belong in the terminology section:


The terms "network" and "realm" have sometimes been used
interchangeably within the context of selection and discovery. It
should be noted that a realm can be reachable from more than one
access network types and selection of a realm may not imply certain
network capabilities.

Section 1.1

Decorated NAI


A NAI specifying a source route. See RFC4282 [RFC4282] Section
2.7 for more information.


[BA] "RFC4282" -> "RFC 4282"


Realm


Realm portion of an NAI [RFC4282].


[BA] Change to "The realm portion of..."


Network Selection


This refers to selection of an operator/ISP in order to access the
network. The process of network selection can occur either at the
beginning of a new session or during a handoff in case the user is
mobile. The selection is dependent upon for example the selection
of realm for the operator, authentication credentials for the
user/device and the roaming agreements. The realm Selection can
in turn also depend upon Access Technology Selection and/or Bearer
Selection.


[BA] I don't understand how network selection can occur at the beginning
of a session -- doesn't it need to occur before the session begins?
Also, I don't understand how network selection can occur during an L2
handoff. The "realm" of an operator doesn't make sense -- isn't a
realm is a characteristic of the home AAA server? Suggest rewriting to:


Selection of an operator/ISP for network access. Network Selection
occurs prior to network access authentication.


Network Discovery


This refers to a mechanisms that a node uses to discover available
networks prior the realm selection takes place. The discovery
process may be passive or active from a node point of view.
Typically the discovery mechanism varies depending on the access
technology. It is also possible that there are multiple discovery
mechanisms within one access technology depending on the network
deployment.


[BA] Suggest rewriting to:


The mechanism used to discover available networks. The discovery
mechanism may be passive or active, and depends on the access
technology. In passive network discovery, the node listens for
network announcements; in active network discovery the node
solicits network announcements. It is possible for an access
technology to utilize both passive and active network discovery
mechanisms.


Realm Selection


This refers to selection of the realm of the operator/ISP used to
access the network.


[BA] This doesn't make sense to me -- the realm is a characteristic of
the home AAA server. Suggest rewriting to:


The selection of the realm (and corresponding NAI) used to access the
network.


Network Access Server


The Network Access Server (NAS) is the device that clients connect
to in order to get access to the network. In PPTP terminology,
this is referred to as the PPTP Access Concentrator (PAC), and in
L2TP terminology, it is referred to as the L2TP Access
Concentrator (LAC). In IEEE 802.11, it is referred to as an
Access Point.


[BA] I would change to:


Network Access Server


The device that peers connect to in order to obtain access to the
network. In PPTP terminology,
this is referred to as the PPTP Access Concentrator (PAC), and in
L2TP terminology, it is referred to as the L2TP Access
Concentrator (LAC). In IEEE 802.11, it is referred to as an
Access Point.

Section 2


This problem spans multiple protocol layers and has been the subject
of discussions in IETF, 3GPP, and IEEE. This document summarizes the
discussion held about this problem in the Extensible Authentication
Protocol working group at IETF. There are a set of somewhat
orthogonal problems being discussed under the rubric of "network
discovery and selection".


[BA] Suggest changing to:


The network discovery and selection problem can be broken down into
multiple sub-problems. These include:


o The problem of "discovery of points of attachment". This is the
problem of discovering points of attachment available in the
vicinity, and the capabilities associated with these points of
attachment.


o The problem of "Identifier selection". This is the problem of
selecting which identity (and credentials) to use to authenticate
in a given point of attachment to the network.


o The problem of "AAA routing" which involves figuring out how to
route the authentication conversation originating from the
selected identity back to the home realm.


o The problem of "Payload routing" which involves figuring how the
payload packets are routed, where more advanced mechanisms than
destination-based routing is needed. However, while being an
interesting problem, this document does not attempt to do any
analysis or suggestions on it.


[BA] Suggest changing to:


o Discovery of points of attachment. This involves the discovery
of points of attachment in the vicinity, as well as their
capabilities.


o Identifier selection. This involves selection of the
NAI (and credentials) used to authenticate to the selected
ponit of attachment.


o AAA routing. This involves routing of the AAA
conversation back to the home AAA server, based on the realm
of the selected NAI.


o Payload routing. This involves the routing of data packets, in
the situation wh ere mechanisms more advanced than destination-based
routing are required. While this problem is interesting, it is not
discussed further in this document.


o The problem of "network capability discovery". This is the
problem of discovering the capabilities of a particular
destination network. For example, it may be important to know
whether a given network supports enrollment, what the charges are,
etc.


[BA] I'm not sure what "network capability discovery" means. Is this
about discovery the capabilities of the access network, or of the
home realm? On the assumption that this is about the home realm,
I suggest that the text be changed to the following:


o Realm capability discovery. This involves discovering the
capabilities of a home AAA server, such as whether the
home AAA server supports enrollment.

2.1. Discovery of the Point of Attachment to the Network


"The discovery of points of attachment" problem has been extensively
studied, see for instance the IEEE specifications on 802.11 wireless
LAN beaconing and probing process, studies (such as [Fixingapsel]) on
the effectiveness of these mechanisms, specifications on GSM network
discovery, results of the IETF Seamoby WG, and so on.


Traditionally, the problem of discovering available point of
attachment has been handled as a part of the link layer attachment
procedures, or through out-of-band mechanisms.


[BA] The above two paragraphs could be combined and tightened up. See
suggests below.


RFC 2194 [RFC2194] describes the pre-provisioning of dialup roaming
clients, which typically included a list of potential phone numbers,
updated by the provider(s) with which the client had a contractual
relationship. RFC 3017 [RFC3017] describes the IETF Proposed
Standard for the Roaming Access XML DTD. This covers not only the
attributes of the Points of Presence (POPs) and Internet Service
Providers (ISPs), but also hints on the appropriate NAI to be used
with a particular POP. The RFC supports dial-in and X.25 access, but
has extensible address and media type fields.


In IEEE 802.11 WLANs, the Beacon/Probe Request/Response mechanism
provides a way for Stations to discover Access Points (APs), as well
as the capabilities of those APs. Among the Information Elements
(IEs) included within the Beacon and Probe Response is the SSID, a
non-unique identifier of the network to which an Access Point is
attached. By combining network identification along with
capabilities discovery, the Beacon/Probe facility provides the
information required for both network discovery and roaming decisions
within a single mechanism.

[BA] The Beacon/Probe Request provides the SSID, as well as the capabilities
of individual APs. It does not provide for discovery of network wide
capabilities, per se. For example, the capabilities of all APs advertising
an SSID need not be identical. So while this mechanism might enable discovery
of a network, it does not enable discovery of the capabilities of that
network, only the discovery of the capabilities of selected APs within that
network.


As noted in [Velayos], the IEEE 802.11 Beacon mechanism does not
scale well; with a Beacon interval of 100ms, and 10 APs in the
vicinity, approximately 32 percent of an 802.11b AP's capacity is
used for beacon transmission. In addition, since Beacon/Probe
Response frames are sent by each AP over the wireless medium,
stations can only discover APs within range, which implies
substantial coverage overlap for roaming to occur without
interruption.


A number of enhancements have been proposed to the Beacon/Probe
Response mechanism in order to improve scalability and roaming
performance. These include allowing APs to announce capabilities of
neighbor APs as well as their own, as proposed in IEEE 802.11k
[IEEE.802.11k].


Typically scalability enhancement mechanisms attempt to get around
Beacon/Probe Response restrictions by sending advertisements at the
higher layers which are enabled once the station has associated with
an AP and gained IP connectivity. Since these mechanisms run over
IP, they can utilize IP facilities such as fragmentation, which the
link layer mechanisms may not always be able to do. For instance, in
IEEE 802.11, Beacon frames cannot use fragmentation because they are
multicast frames, and multicast frames are not acknowledged in
802.11.


Another issue with the Beacon/Probe Request/Response mechanism is
that it is either insecure or its security can be assured only after
already attaching to this particular network.


When considering access systems such as 802.11 WLANs networks it is
important to take into account different deployment options. For
example, a WLAN deployment may include a number of VLANs in order to
separate UAM (Universal Access Method) and 802.1X [IEEE.8021X] users
or users accessing network from different geographical/organizational
locations. It is also possible that a larger network spans multiple
ESSes and prefixes. It is also possible that users authenticating to
different realms are able to do so via the same SSID.


[BA] This paragraph needs to tie the various options back to the different
sub-problems.


Suggest rewriting to:


Traditionally, discovery of points of attachment has been handled
by link layer or out-of-band mechanisms. For example, the
IEEE 802.11 specification [IEEE-802.11] provides support for both
passive (Beacon) and active (Probe Request/Response) discovery
mechanisms; [Fixingapsell] studied the effectiveness of these
mechanisms. The GSM specifications [GSM] also provide for
discovery of points of attachment, as does the CARD [RFC4066]
protocol developed by the IETF SEAMOBY WG.


RFC 2194 [RFC2194] describes the pre-provisioning of dialup roaming
clients, which typically included a list of potential phone numbers,
updated by the provider(s) with which the client had a contractual
relationship. RFC 3017 [RFC3017] describes the IETF Proposed
Standard for the Roaming Access XML DTD. This covers not only the
attributes of the Points of Presence (POPs) and Internet Service
Providers (ISPs), but also hints on the appropriate NAI to be use