Hi,

Bernard Aboba wrote:

> The EAP TLS 1.3 specification does not currently specify how EAP TLS 1.3 
> interacts with the EAP state machine as specified in RFC 4137
> The issue in the EAP-TLS 1.3 specification is that the interlock with these 
> variables is not defined

It is definitely true that the EAP TLS 1.3 specification does not at all define 
how EAP-TLS 1.3 interlock with these variables, neither does RFC 5216. Might be 
that this is needed for TLS 1.3 but was not needed for earlier versions of TLS. 
I think this has not been discussed at all before. I will make new issue on 
GitHub.


> 1. What constitutes an "alternative success" indication in the EAP-TLS 1.3 
> protocol?

> 2. At what point should keys be pushed down to the lower layer?

> 3. What constitutes an "alternative failure" indication in EAP-TLS 1.3?



These are things that to my knowledge are not in RFC 5216. If they are they 
would apply to EAP-TLS 1.3 as well. It would be good if you could further 
explain if these are things that:



-   Where missing from RFC 5216 and should be added now for all versions of TLS

-   Are in RFC 5216 but are not applicable to TLS 1.3 due to massive changes in 
the protocol and therefor need to be rewritten in the draft.

-   Where not needed in RFC 5216 for earlier versions of TLS but are needed for 
TLS 1.3 due to the changes in the protocol.



> 4. What is the purpose of the commitment message?


4. was something I thought was clear. The -13 version states that “The EAP-TLS 
server commits to not send any more handshake messages”. This was according to 
my memory exactly what was requested from the implementors. In the last weeks 
discussion, the commitment message has been given a lot of different 
interpretations that are not coming from the draft. The meaning of and 
requirements for the -13 commitment message now seems quite unclear.

Cheers,
John

From: Emu <emu-boun...@ietf.org> on behalf of Bernard Aboba 
<bernard.ab...@gmail.com>
Date: Tuesday, 2 February 2021 at 16:25
To: "emu@ietf.org" <emu@ietf.org>
Subject: [Emu] Underspecification of EAP-TLS 1.3 State Machine

The EAP TLS 1.3 specification does not currently specify how EAP TLS 1.3 
interacts with the EAP state machine as specified in RFC 4137.  It appears to 
me that this under-specification is at the root of the questions about the 
commitment message.

Historically, under-specification of the EAP-TLS state machine has been a 
source of potential security vulnerabilities by enabling packet injection 
attacks [1][2], including attacks involving the injection of EAP-Success and 
EAP-Failure mechanisms.

RFC 4137 Sections 4.1.1 and 4.1.2 define several variables:


   altAccept (boolean)



      Alternate indication of success, as described in 
[RFC3748<https://tools.ietf.org/html/rfc3748>].



   altReject (boolean)



      Alternate indication of failure, as described in 
[RFC3748<https://tools.ietf.org/html/rfc3748>].



   eapKeyData (EAP key)



      Set in peer state machine when keying material becomes available.

      Set during the METHOD state.  Note that this document does not

      define the structure of the type "EAP key".  We expect that it

      will be defined in 
[Keying<https://tools.ietf.org/html/rfc4137#ref-Keying>].



   eapKeyAvailable (boolean)



      Set to TRUE in the SUCCESS state if keying material is available.

      The actual key is stored in eapKeyData.



The issue in the EAP-TLS 1.3 specification is that the interlock with these 
variables is not defined.



For example, it appears to me that the commitment message verifies that both 
sides are in possession of a derived key,

allowing the eapKeyData variables to be set.  However, it does not appear to me 
that the successful validation of the commitment message is

sufficient to allow keys to be pushed down to the lower layer, allowing data to 
flow.

Therefore the eapKeyAvailable variable should not yet be set to TRUE.



Also, the commitment message does not constitute an alternative success 
indication because it is possible for an

alternative failure indication (e.g. a TLS alert) to be sent after the 
commitment message.

If the commitment message did constitute an alternative success mechanism, then 
an attacker injecting an

EAP-Success message would be able to cause the peer to believe that 
authentication

had succeeded even though it had actually failed (e.g. TLS alert sent after the 
commitment message).



Given these issues, I believe the specification needs to answer several 
questions:



1. What constitutes an "alternative success" indication in the EAP-TLS 1.3 
protocol?

2. At what point should keys be pushed down to the lower layer?

3. What constitutes an "alternative failure" indication in EAP-TLS 1.3?

4. What is the purpose of the commitment message?



Only question 3 looks straight forward to me: receipt of TLS Alert messages 
should be considered an alternative failure mechanism,

although perhaps some caveats need to be applied to address the injection 
attacks described in [1].



[1] EAP Vulnerabilities and Improvements, Extensible Authentication Protocol 
Vulnerabilities and Improvements 
(sjsu.edu)<https://scholarworks.sjsu.edu/cgi/viewcontent.cgi?article=1431&context=etd_projects>

[2] An Analysis of the IEEE 802.1X Standard, An Initial Security Analysis of 
the IEEE 802.1X Standard | Request PDF 
(researchgate.net)<https://www.researchgate.net/publication/2562682_An_Initial_Security_Analysis_of_the_IEEE_8021X_Standard>
_______________________________________________
Emu mailing list
Emu@ietf.org
https://www.ietf.org/mailman/listinfo/emu

Reply via email to