On Fri, 10 Mar 2023 at 17:58, Joseph Salowey <j...@salowey.net> wrote:
>
> This is the working group last call for draft-ietf-emu-rfc7170bis-05
[1].  Please review the draft and send comments to the list or open issues
in GitHub [2].   Further discussion on the open issues will be considered
as part of the last call. The last call ends March 24, 2023.  The chairs
would appreciate earlier reviews so we can plan to resolve issues during
our Monday meeting on the 27th.

My colleague has been working on a TEAP implementation. Earlier this week
we had a discussion about what he found out. Here's my summary of what I
learnt from him. I'm still working on to fully understand the issues, but I
also wanted to not go past the last call end.

The implementation was done based on the RFC and the draft but required
tailoring to make it interoperable with wpa_supplicant's eapol_test with
certain configurations, but that wasn't the main concern.

The main concern was about EMSK. Because EAP-FAST doesn't use EMSK S-IMCK
calculation, it's easier and more straight forward with its calculation
than TEAP. Can this simplicity brought back to TEAP by making EMSK support
mandatory as suggested below?


Problem: Not mandating EMSK
+++++++++++++++++++++++++++
Can EMSK support be made mandatory? Section 5.2 in the RFC and the draft
currently says:

    If an inner method supports export of an Extended Master Session Key
(EMSK), then the IMSK SHOULD be derived from the EMSK as defined in
[RFC5295].

The SHOULD above would change to MUST. This paragraph could then be removed
completely:

    However, it is possible that the peer and server sides might not have
the same capability to export EMSK. In order to maintain maximum
flexibility while prevent downgrading attack, the following mechanism is in
place.

The loop derived in the same section, section 5.2, (pseudo code after 'The
derivation of S-IMCK is as follows:') would then be defined to use EMSK if
the method supports it and MSK if EMSK is not supported. The end of section
5.2 that starts with 'In practice, ...' would also be removed together with
the the last two paragraphs in section '5.4 EAP Master Session Key
Generation'.

In other words, EMSK support would be mandatory and there would not be any
need to track _MSK and _EMSK derivations, as defined by end of section 5.2.


Ending up with different EMSK values
++++++++++++++++++++++++++++++++++++
If the peer and server have different capability of EMSK calculation,
correctly working implementations will end up with an error 2001 'Tunnel
Compromise Error' (or some other error). This can happen, for example, with
two chained methods that are both EMSK capable. If the server doesn't
export EMSK for the first method but both export EMSK for the second
method, the peer and server end up with different values for the EMSK after
the second round.


MSK and EMSK track inter-binding
++++++++++++++++++++++++++++++++
Another thing to note with separate MSK and EMSK chains is that there's no
binding between the two trackings (MSK vs EMSK tracking). This may also be
a concern?


Chaining is no longer full chaining
+++++++++++++++++++++++++++++++++++
Consider two methods: the first supports EMSK and the second supports only
MSK. In this case there's no compounding because the first method gets the
_EMSK suffixed results and the second gets the _MSK suffixed results.

With longer chains there would be jumps to and from MSK and EMSK depending
on what the methods support. Each time the next method has different EMSK
capability than the previous method, the compound chaining jumps to the
different tracking. There's no compound calculation for the full chain.

-- 
Heikki Vatiainen
h...@radiatorsoftware.com
_______________________________________________
Emu mailing list
Emu@ietf.org
https://www.ietf.org/mailman/listinfo/emu

Reply via email to