Hi Mohit, Sorry for the slow response.
On Fri, Jul 31, 2020 at 02:08:44PM +0000, Mohit Sethi M wrote: > Dear all, > > Thanks all for the discussion on the commitment message. > > draft-ietf-emu-eap-tls13-10 > (https://tools.ietf.org/html/draft-ietf-emu-eap-tls13-10) in figure 2 shows > the ticket establishment and commitment message: [snip] > > and the relevant text on commitment message: > > When an EAP server has sent its last handshake message (Finished or a > Post-Handshake), it commits to not sending any more handshake > messages by sending a Commitment Message. The Commitment Message is [reordering] > > I couldn't parse the comments about the "KeyUpdate" message. Perhaps having > the discussion over email will help me understand the issue. > I was referring to the specific promise to not send any more *handshake* messages here -- the only currently defined handshake messages that the EAP server could be sending are NewSessionTicket and KeyUpdate. (Okay, or EKTKey from draft-ietf-per-srtp-ekt-diet, but EAP is not using that at all.) I was not sure if the need was to avoid sending KeyUpdate vs. NewSessionTicket, and why the application layer needed to be concerned with it at all -- to some extent both can be handled internally by the TLS implementation. The application probably wants to get involved if it wants to resume using a session ticket, but it's permitted to just drop the tickets on the floor and never use them. > a TLS record with application data 0x00 (i.e. a TLS record with > TLSPlaintext.type = application_data, TLSPlaintext.length = 1, and > TLSPlaintext.fragment = 0x00). Note that the length of the plaintext > is greater than the corresponding TLSPlaintext.length due to the > inclusion of TLSInnerPlaintext.type and any padding supplied by the > sender. EAP server implementations MUST set TLSPlaintext.fragment to > 0x00, but EAP peer implementations MUST accept any application data > as a Commitment Message from the EAP server to not send any more > handshake messages. The Commitment Message may be sent in the same > EAP-Request as the last handshake record or in a separate EAP- > Request. Sending the Commitment Message in a separate EAP-Request > adds an additional round-trip, but may be necessary in TLS > implementations that only implement a subset of TLS 1.3. This construction feels weird to me because it's using application data to try to make a promise about the TLS layer, which is a fragile construction and could break if there are changes to the TLS implementation without corresponding changes to the application code. In general, the application will not even know when/whether the TLS implementation is going to send more messages (though it would be fairly surprising for the TLS implementation to spontaneously send stuff in the absence of other application messages). Using close_notify as we seem to be agreeing upon feels better since it's the TLS-layer mechanism for doing so and the TLS implementation is expected to do the right thing in terms of not sending more messages, once it's sent or received. -Ben _______________________________________________ Emu mailing list Emu@ietf.org https://www.ietf.org/mailman/listinfo/emu