> -----Original Message----- > From: John Mattsson <john.matts...@ericsson.com> > Sent: Thursday, March 21, 2019 8:56 AM > To: Jim Schaad <i...@augustcellars.com>; draft-ietf-emu-eap-tl...@ietf.org > Cc: 'EMU WG' <emu@ietf.org> > Subject: Re: Review of draft-ietf-emu-eap-tls13-04 > > Thanks for the thorough review Jim! > > -----Original Message----- > From: Jim Schaad <i...@augustcellars.com> > Date: Wednesday, 20 March 2019 at 11:03 > To: "draft-ietf-emu-eap-tl...@ietf.org" <draft-ietf-emu-eap-tl...@ietf.org> > Cc: 'EMU WG' <emu@ietf.org> > Subject: Review of draft-ietf-emu-eap-tls13-04 > Resent-From: <alias-boun...@ietf.org> > Resent-To: John Mattsson <john.matts...@ericsson.com>, > <mo...@piuha.net> > Resent-Date: Wednesday, 20 March 2019 at 11:03 > > General Comment: I have a strong tendency to like positive rather than > negative statements in documents, thus the use of MUST rather than > MUST NOT. > Additionally, I have a general tendency to like to know what should happen > if a statement is violated. Thus consider the following from section > 2.1.1: > > Agree, if possible it is often better with "MUST" statements describing what > is happening. The disadvantage with MUST statements are that they rule out > things that may be specified in updates to RFC 8446. > > TLS 1.3 introduces early application data; early application data SHALL > NOT > be used with EAP-TLS. > > I would prefer to see this as > > TLS 1.3 introduced early application data; if a server receives a client > hello with early application data it MUST abort the handshake with an > EAP-Failure. The server MAY generate a TLS-Alert as well. > > In the case of early data, Section 4.2.10 of RFC 8446 states that "A server > which receives an "early_data" extension MUST behave in one of three > ways:". The three ways are: ignoring early_data, send HelloRetryRequest, > and accepting early_data. > > Aborting the handshake would not follow RFC 8446, so I don't think we want > that. I would suggest to follow RFC 8446 and specify that the server ignore > the early_data extension or replies with HelloRetryRequest. I suggest > writing: > > TLS 1.3 introduced early application data which is not used in EAP-TLS. A > server which receives an "early_data" extension MUST ignore the extension > or respond with a HelloRetryRequest as described in Section 4.2.10 of RFC > 8446.
That is better, an additional note that new session tickets MUST NOT include the early data extension would also be relevant. > > This made me realize that draft-ietf-emu-eap-tls13-04 does not mention > HelloRetryRequest at all. I think draft-ietf-emu-eap-tls13-04 should mention > HelloRetryRequest add add a figure describing the message flow. > Alternatively state that HelloRetryRequest MUST NOT be used (or positively > that the server MUST respond with ServerHello). > > Section 2.1.2 - The following sentence: > If the EAP peer did not supply a "key_share" extension > when offering resumption, the EAP server needs to reject the > ClientHello and the EAP peer needs to restart a full handshake. > > Appears to state that the key share MUST be provided even though the > previous sentence said that it was only a SHOULD. Which is it? > > Good catch. Definitely something missing in that sentence. Should be > SHOULD following RFC 8446. Suggested update: > > "If the EAP peer did not supply a "key_share" extension when offering > resumption, an EAP server declining resumption needs to reject the > ClientHello and force the EAP peer to restart a full handshake. The message > flow in this case is given by Figure 4 followed by Figure 1 or Figure 2." Yes better > > Section 2.1.3 - I am having a problem understanding why you have Figure 8 > in > the system. > > There was an earlier comment from someone requesting more figures > describing messages flows for various use cases and errors. > > First, a new session ticket would only be returned if the > client asked for one to be returned. Thus the client will never receive > one > that is unexpected. > > That is not my understanding of how NewSessionTicket works according to > RFC 8446. The session_ticket extension is a far as I understand deprecated in > TLS 1.3. The only text I can find in RFC 8446 is that Oh fudge. Losing the indicator that a client wants this seems to be a stupid decision on the part of TLS. I guess that I just assumed it was still there because it was in the past. > > "At any time after the server has received the client Finished message, it > MAY send a NewSessionTicket message." > > Secondly, the authentication has finished and you are > in a situation where if you had not asked for the ticket everything would > be > fine. The only possible reason for doing this would be if the client > suddenly decided that it no longer wanted the ticket and was going to tell > the server that it did not need to cache the information associated with > it. > However, since this is not a normal flow in TLS that would never happen. > If > the client decides that it does not want to save the ticket that it > received, say because it is too big, then it can just not save it but > still > have EAP run to success. > > Agree that the client should just most likely just ignore the ticket. Let's > remove the figure and the text. > > Section 2.1.4 - an EAP-TLS server MUST treat an empty certificate_list as > a > terminal condition when client authentication is required. Current text > implies it is always true. > > The text in draft-ietf-emu-eap-tls13-04 > > "For TLS 1.3 this means that the EAP-TLS peer only sends an empty > certificate_list if it does not have an appropriate certificate to send, and > the > EAP-TLS server MAY treat an empty certificate_list as a terminal condition." > Right but the first sentence in the paragraph is As the certificate messages in TLS 1.3 are encrypted, there is no need to send an empty certificate_list ... So both statements are not true. > follows Section 4.4.2.4 of RFC 8446: > > "If the client does not send any certificates (i.e., it sends an empty > Certificate > message), the server MAY at its discretion either continue the handshake > without client authentication or abort the handshake with a > "certificate_required" alert." > > I do not understand what you mean with " Current text implies it is always > true." The term terminal condition came from RFC 5216. Should I rewrite it > with text from RFC 8446? > > "For TLS 1.3 this means that the EAP-TLS peer only sends an empty > certificate_list if it does not have an appropriate certificate to send, and > the > EAP-TLS server MAY at its discretion either continue the handshake without > client authentication or abort the handshake with a "certificate_required" > alert." > > Section 5.7 para 3 - The term "other authentication information" is > confusing to me. You should only be capturing the information from the > TLS > handshake and nothing else. > > I think the group need to discuss this more. I think Alan's suggestion was > that > you capture quite a lot. Agreed on the discussions Jim > > As an example, I would not expect that the > client would do any additional revocation checking when offering to use a > session ticket. If the revocation information is not sufficiently > current, > then the client should not do resumption. But this does not require > reevaluation of revocation information or the server certificate chain. A > client quite likely to be unable to access a network to check for > revocation > until after the EAP process has finished and thus would be unable in EAP > to > do these checks. > > That are very good points. I will update the text based on these suggstions. > > Section 5.7 para 7 - Current sentence appears to say that the IP address > is > part of the EAP-Response/Identity. > > Ok, let's reformulate > > I generally find this entire section > confusing and think that a large amount should probably be in the main > text > and not here. > > Yes, moving some of the information to 2.1.2 seems to make sense > > Jim > > > > > > > > > > _______________________________________________ Emu mailing list Emu@ietf.org https://www.ietf.org/mailman/listinfo/emu