Hi all,

I took a quick look at the -09 draft.

Here are a few comments.



1.  Introduction

The text in the introduction is confusing. To be honest, this document is 
actually not needed because TLS allows you to negotiate version and features.. 
Obviously, the introduction does not say that and instead dances around the 
reason of why this document is needed by saying TLS 1.3 made a lot of changes 
but then concludes everything is backwards compatible.

In more details, the first paragraph is fine. It talks about where EAP-TLS is 
used.

Then, the second paragraph says:

"

   TLS 1.3 is in large parts a complete

   remodeling of the TLS handshake protocol including a different

   message flow, different handshake messages, different key schedule,

   different cipher suites, different resumption, different privacy

   protection, and record padding.


This means that significant parts of

   the normative text in the previous EAP-TLS specification 
[RFC5216<https://tools.ietf.org/html/rfc5216>]

   are not applicable to EAP-TLS with TLS 1.3 (or higher).  Therefore,

   aspects such as resumption, privacy handling, and key derivation need

   to be appropriately addressed for EAP-TLS with TLS 1.3 (or higher).

"

The change from 1.2 to 1.3 is certainly larger than the change from 1.1. to 1.2.

For the user of the EAP method not much has changed though. In fact, you can 
seamless switch from one version of TLS to the next version.

In fact, you say that in the next paragraph:

"

   While this document updates EAP-TLS 
[RFC5216<https://tools.ietf.org/html/rfc5216>], it remains backwards

   compatible with it and existing implementations of EAP-TLS.
"

In the last paragraph you say:

"
   Privacy is mandatory and achieved without any additional round-trips,
   revocation checking is mandatory and easy with OCSP stapling, and TLS
   1.3 introduces more possibilities to reduce fragmentation when
   compared to earlier versions of TLS.
"

You have some specific features in mind when you talk about "privacy" and I 
wonder what those are.

In what sense is revocation checking mandatory? OCSP stapling has been a 
feature before.

What is this issue about fragmentation? As you know from your work on the other 
document, fragmentation is really introduced by certificates. The certificate 
format in TLS 1.3 has not changed.

Before you answer these questions look at my suggestion below.

I would delete large part of the introduction and basically leave the first 
paragraph intact and then add the following sentences:

"

EAP-TLS [RFC5216<https://tools.ietf.org/html/rfc5216>] references TLS 1.0 
[RFC2246<https://tools.ietf.org/html/rfc2246>] and TLS 1.1 
[RFC4346<https://tools.ietf.org/html/rfc4346>],

but works perfectly also with TLS 1.2 
[RFC5246<https://tools.ietf.org/html/rfc5246>].  TLS 1.0 and 1.1 are

formally deprecated and prohibited to negotiate and use

[I-D.ietf-tls-oldversions-deprecate<https://tools.ietf.org/html/draft-ietf-emu-eap-tls13-09#ref-I-D.ietf-tls-oldversions-deprecate>].
  Weaknesses found in TLS 1.2,

as well as new requirements for security, privacy, and reduced

latency has led to the specification of TLS 1.3 
[RFC8446<https://tools.ietf..org/html/rfc8446>], which

obsoletes TLS 1.2 [RFC5246<https://tools.ietf.org/html/rfc5246>].

This specification updates RFC 5216 and updates the description to
cover TLS 1.3. Security and privacy considerations of this EAP method
are updated to reflected the improved security and privacy functionality
of TLS 1.3.
"

Section 2.1

Delete this paragraph. It does not say much.


   TLS 1.3 changes both the message flow and the handshake messages

   compared to earlier versions of TLS.  Therefore, much of Section 
2.1<https://tools.ietf.org/html/rfc5216#section-2.1>

   of [RFC5216]<https://tools.ietf.org/html/rfc5216#section-2.1> does not apply 
for TLS 1.3 (or higher).

Section 2.1.1


   Many client certificates

   contains an identity such as an email address, which is already in

   NAI format.

A NAI looks like an email address but actually isn't.


"

   The EAP server MUST authenticate with a certificate and SHOULD

   require the EAP peer to authenticate with a certificate.
"

You might want to mention the emergency services use case here. You do much 
later in the document but I believe this is the first occurrence of the 
server-side only authentication concept.


"

Pre-Shared Key (PSK) authentication SHALL NOT be used except

   for resumption.
"

What you want to say that that EAP-TLS MUST NOT use external PSKs. I wonder why 
you want to rule that use case out? It is a perfectly fine use case for TLS 1.3 
and there is even the possibility to use PSK with ECDHE. What is the motivation?

"

SessionID is deprecated in TLS 1.3 and the EAP

   server SHALL ignore the legacy_session_id field if TLS 1.3 is

   negotiated.
"

I am curious why you are pointing out this change in TLS 1.3. Yes, the session 
id field has been deprecated and the session resumption concept was harmonized 
but for the EAP layer this appears to be irrelevant.

"

   After the TLS handshake has completed and all Post-Handshake messages

   have been sent, the EAP server sends EAP-Success.
"

I think you have to be more precise here with your recommendations regarding 
post-handshake messages. The following paragraph from the same section (but 
later in the text) appears relevant to this topic.
"

   When using EAP-TLS with TLS 1.3, the EAP server MUST indicate support

   of resumption in the initial authentication.  To indicate support of

   resumption, the EAP server sends a NewSessionTicket message

   (containing a PSK and other parameters) after it has received the

   Finished message.

"
Unfortunately, it is not entirely correct. It is not the EAP server role that 
makes this session resumption support indication but it is a feature of TLS. 
So, you might want to change the sentence to:


"

   When using session resumption in TLS 1.3, a NewSessionTicket message is sent 
as a post-handshake message.

"




"

   As stated in [RFC5216<https://tools.ietf.org/html/rfc5216>], the TLS cipher 
suite shall not be used to

   protect application data.  This applies also for early application

   data.  When EAP-TLS is used with TLS 1.3, early application data

   SHALL NOT be used.

"


You might want to say that TLS 1.3 in EAP is only used for authentication and 
the establishment of keys rather than for application data protection. Then, 
this paragraph becomes more understandable for someone not familiar with the 
network access authentication concept in general.


In Figure 1 you show the "Commitment Message" and I was wondering why you need 
it. You talk about it later in Section 2.5 but I still don't get it. This 
appears to be an unnecessary deviation from the TLS 1.3 implementation.



Btw, I would give Figure 1 the following title "EAP-TLS 1.3: Full Public 
Key-based Exchange with mutual authentication".

In Figure 2 you show the NewSessionTicket message and this is one possible 
exchange. I believe you can also add the NewSessionTicket message right after 
the Finished message and thereby saving an extra roundtrip, if you want.

2.1.2<https://tools.ietf.org/html/draft-ietf-emu-eap-tls13-10#section-2.1.2>.  
Ticket Establishment



"

   This is a new section when compared to 
[RFC5216<https://tools.ietf.org/html/rfc5216>].

"



While it is new to RFC 5216 it is not new at all in context of 
https://tools.ietf.org/html/rfc5077

I don't understand why you introduce a section 2.1.2 for ticket establishment 
and a separate section 2.1.3 on resumption when the two actually belong 
together. I suggest to combine the two sections and to call them Resumption.. 
TLS 1.3 combined three mechanisms into one: PSK-based authentication, classic 
session resumption and session resumption without server-side state.


"

   TLS 1.3 replaces the session resumption mechanisms in earlier

   versions of TLS with a new PSK exchange.  When EAP-TLS is used with

   TLS version 1.3 or higher, EAP-TLS SHALL use a resumption mechanism

   compatible with that version of TLS.
"

I would delete this paragraph because it states the obvious.

You state that EAP peers and EAP servers should use the client tracking 
preventions and then you make recommendations regarding the NAI construction in 
the following paragraph. How do you see the two to interwork?
"

As specified in Section 2.2 of 
[RFC8446]<https://tools.ietf.org/html/rfc8446#section-2.2>, the EAP peer SHOULD 
supply

   a "key_share" extension when attempting resumption, which allows the

   EAP server to potentially decline resumption and fall back to a full

   handshake.

"

This is not a good advice IMHO. In the deployments where EAP-TLS is used the 
EAP peer and the EAP server know quite well what the other parties do and being 
as conservative as in the web environment does not appear to be appropriate. 
Considering that the key share(s) cost a fair amount of computation and 
over-the-wire bandwidth, I would actually recommend the opposite. It is more 
likely that the EAP exchange succeeds.
If you are uncertain, make no recommendations and explain the tradeoffs instead.
"

   Also during resumption, the server can respond with a Hello Retry

   Request (see Section 
2.1.6<https://tools.ietf.org/html/draft-ietf-emu-eap-tls13-10#section-2.1.6>) 
or issue a new ticket (see Section 
2.1.2<https://tools.ietf.org/html/draft-ietf-emu-eap-tls13-10#section-2.1.2>)

"
Not sure why you are stating this. This issue is explained in great detail in 
the  TLS 1.3 specification. I would not repeat the TLS 1.3 here.
2.1.4<https://tools.ietf.org/html/draft-ietf-emu-eap-tls13-10#section-2.1.4>.  
Termination



"

TLS 1.3 changes both the message flow and the handshake messages

   compared to earlier versions of TLS.  Therefore, some normative text

   in Section 2.1.3 of 
[RFC5216]<https://tools.ietf.org/html/rfc5216#section-2.1.3> does not apply for 
TLS 1.3 or higher.

"
I would not repeatedly make this statement.

2.1.8<https://tools.ietf.org/html/draft-ietf-emu-eap-tls13-09#section-2.1.8>.  
Privacy






   TLS 1.3 significantly improves privacy when compared to earlier

   versions of TLS by forbidding cipher suites without confidentiality

   and encrypting large parts of the TLS handshake including the

   certificate messages.


This is not the entire privacy story in TLS 1.3. IMHO TLS 1.2 already had no 
ciphersuites that allowed integrity only.
TLS 1.3 got rid of RSA key transport. TLS also added improved padding and 
better unlinkability support for session resumption.

I stop here for now.

Ciao
Hannes

IMPORTANT NOTICE: The contents of this email and any attachments are 
confidential and may also be privileged. If you are not the intended recipient, 
please notify the sender immediately and do not disclose the contents to any 
other person, use it for any purpose, or store or copy the information in any 
medium. Thank you.
_______________________________________________
Emu mailing list
Emu@ietf.org
https://www.ietf.org/mailman/listinfo/emu

Reply via email to