On Mon, Jan 4, 2021, at 21:01, Mohit Sethi M wrote:
> >  I have a much simpler one: the EAP layer has a signal that the 
> >  protocol is complete: EAP-Success 
> Alan Dekok explained in a separate email thread why this is not the 
> case 
> (https://mailarchive.ietf.org/arch/msg/emu/uMNKV_vfov7ASob6_Qu3FlCNcT0/). He 
> wrote: "The EAP-Success and EAP-Failure messages are *not* protected.  i.e. 
> they are 4-bytes of data which can be spoofed rather trivially.". 

I specifically addressed that point in my original email.  My assertion was 
that this is not an significant concern.

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?  For TLS 1.3, where the server indicates success 
before the client, I can see how you might want a reliable confirmation that 
the server has accepted the client Finished.

As an aside, this makes is clear that the signal does not exist for the reason 
implied by the draft.  It does not exist to signal that the TLS messages are 
done; it exists to signal that the server has received and accepted the client 
Finished.  To that end, it's not really a layering violation in the sense that 
Ben describes.  The layering violation exists only because of the language 
constraining what TLS does thereafter; in that case, a language cleanup might 
be enough to address the concerns.

Note however, that the proposed design does not guarantee that a Confirmation 
Message acknowledges the client Finished.  The server can send the proposed 
Confirmation Message before the client completes the handshake.  

Echoing the client Finished might help, but that's a layering violation too.  
Ideally you would be able use something like exporters to help, but those have 
problems (see below).  I know it's a knee-jerk, but the idea of making 
EAP-Success reliable is far more appealing to me than anything you suggest.
 
> I also think that this should not be treated as an issue for EAP-TLS 
> only. I can imagine other deployments which use TLS for making 
> authorization decisions but do not use the TLS for sending message. So 
> I am glad that Ben has brought this to the TLS working group for 
> further discussion. Whether we use this 1-byte of application data (as 
> done in this draft) or some other mechanism (such as close_notify), we 
> need a reliable way of telling that no further post handshake messages 
> will be sent. 

EAP has the privilege of being the first to grapple with this.

I'm going to suggest something slightly scandalous: TLS 1.3 exporters are not 
the ideal design.  They should have included the full handshake transcript, 
just like the resumption secret.  There were good reasons at the time for 
designing them as they are, and there are likely reasons to retain the current 
design as an option (it's stronger than the early exporter and there might be 
use cases), but those original reasons are less relevant.  The current design 
gives short shrift to client authentication, to the detriment of use cases like 
EAP.

Having exporters depend on the entire transcript would serve EAP better.  In 
this case, you could provide an application-level signal using an exported 
value.

Without that sort of in-TLS affordance, confirming receipt of the client 
Finished might do.  You still have the possibility that the server doesn't 
depend on client authentication and so predicts the value, but that would be 
true of a full-transcript exporter too, so arguably that doesn't matter.

_______________________________________________
TLS mailing list
TLS@ietf.org
https://www.ietf.org/mailman/listinfo/tls

Reply via email to