On Jan 4, 2021, at 6:26 PM, Martin Thomson <m...@lowentropy.net> wrote: > Your point about reliability is confusing. I've read Section 4.2 of RFC 3748 > and while it says "A peer MUST allow for this circumstance as described in > this note.", I see no explanation of how to concretely make that allowance. > Are you saying that EAP methods don't really use EAP-Success and condition > their behaviour on other signals?
EAP-Success by itself is *not* a reliable indication of Success. See RFC 3748 Section 4.2: Success and Failure packets MUST NOT be sent by an EAP authenticator if the specification of the given method does not explicitly permit the method to finish at that point. With TLS 1.3, we don't know if the authentication has completed until the TLS layer sees either (a) CloseNotify, or (b) application data. So the EAP-TLS implementations cannot distinguish a "finished authentication" EAP-Success from a "spoofed" EAP-Success. Because the EAP-TLS implementation has no idea of TLS is done, and therefore no way to tell that the EAP-Success is permitted at this point in the negotiation. Therefore, we need an explicit signal to the EAP-TLS layer that the EAP-TLS method has finished. Discussion on the list went back and forth between CloseNotify and sending one octet of application data. Implementations have done both. The conclusion was that the one octet of application data was slightly easier to implement. Plus, sending CloseNotify precluded the TLS layer from sending a TLS Fatal Alert: https://www.mail-archive.com/emu@ietf.org/msg03092.html, which says in part: ... If the Commitment Message is changed to close_notify, the TLS Fatal Alert would have to be changed to an EAP-Failure instead. The difference is that The TLS Fatal Alert can contain information such as bad_certificate, unsupported_certificate, certificate_revoked, certificate_expired, certificate_unknown, illegal_parameter, unknown_ca, access_denied, etc. while EAP-Failure must not contain any additional data. ... As someone who supports end users, I am very opposed to removing this information. 802.1X authentication is hard enough to deploy correctly as it is. If we require the use of CloseNotify for EAP-TLS and TLS 1.3, then a whole host of useful error messages just go away. Errors which are used to debug real-world certificate compatibility issues. I can't think of many things worse for EAP-TLS than to replace a set of descriptive messages with a simple "Failed". Was your certificate revoked? Failed. Was it expired? Failed. Was the CA known? Failed. What went wrong? Too bad for you, the only message you get is "Failed". End users and sysadmins will be cursing the standard for years. And, trying to stick with something *useful*, such as TLS 1.2. My $0.02 is that the one byte of application data is less "pure" than a solution which relies on TLS negotiation. But if using CloseNotify makes deployments substantially more difficult, then that is a very strong reason to avoid it. Alan DeKok. _______________________________________________ Emu mailing list Emu@ietf.org https://www.ietf.org/mailman/listinfo/emu