Re: [Emu] WG last call for draft-ietf-emu-tls-eap-types ?

Alan DeKok <aland@deployingradius.com> Tue, 20 September 2022 19:50 UTC

Return-Path: <aland@deployingradius.com>
X-Original-To: emu@ietfa.amsl.com
Delivered-To: emu@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 67481C14CE30 for <emu@ietfa.amsl.com>; Tue, 20 Sep 2022 12:50:44 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.91
X-Spam-Level:
X-Spam-Status: No, score=-1.91 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01] autolearn=ham autolearn_force=no
Received: from mail.ietf.org ([50.223.129.194]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id e3WauK1BAgkp for <emu@ietfa.amsl.com>; Tue, 20 Sep 2022 12:50:40 -0700 (PDT)
Received: from mail.networkradius.com (mail.networkradius.com [62.210.147.122]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id C657AC14F724 for <emu@ietf.org>; Tue, 20 Sep 2022 12:50:38 -0700 (PDT)
Received: from smtpclient.apple (unknown [75.98.136.130]) by mail.networkradius.com (Postfix) with ESMTPSA id ECC16124; Tue, 20 Sep 2022 19:50:35 +0000 (UTC)
Authentication-Results: NetworkRADIUS; dmarc=none (p=none dis=none) header.from=deployingradius.com
Content-Type: text/plain; charset="us-ascii"
Mime-Version: 1.0 (Mac OS X Mail 16.0 \(3696.120.41.1.1\))
From: Alan DeKok <aland@deployingradius.com>
In-Reply-To: <20220910075838.57qeco3egljt7pwp@aineko.digriz.org.uk>
Date: Tue, 20 Sep 2022 15:50:34 -0400
Cc: EMU WG <emu@ietf.org>
Content-Transfer-Encoding: quoted-printable
Message-Id: <6F86A929-F41A-4C76-8568-8C1DABB0CDEF@deployingradius.com>
References: <325659CB-E36E-4D18-A59C-B5EA54324201@deployingradius.com> <CAOgPGoAYTe0qtFbJhq7S71FpX+k+1=0Gqqq+pwa+1QnBnQ3wrw@mail.gmail.com> <94154D9C-F880-42DB-B881-38B04F76E196@deployingradius.com> <CAOgPGoBF_8y40oynqQd9rr9PKEy1qNoNae3zMwA+7f7rKN+SUg@mail.gmail.com> <20220910075838.57qeco3egljt7pwp@aineko.digriz.org.uk>
To: Alexander Clouter <alex+ietf@coremem.com>
X-Mailer: Apple Mail (2.3696.120.41.1.1)
Archived-At: <https://mailarchive.ietf.org/arch/msg/emu/jO-5ve2DLo_kMPNWDtf_x0eqJ_I>
Subject: Re: [Emu] WG last call for draft-ietf-emu-tls-eap-types ?
X-BeenThere: emu@ietf.org
X-Mailman-Version: 2.1.39
Precedence: list
List-Id: "EAP Methods Update \(EMU\)" <emu.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/emu>, <mailto:emu-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/emu/>
List-Post: <mailto:emu@ietf.org>
List-Help: <mailto:emu-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/emu>, <mailto:emu-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 20 Sep 2022 19:50:44 -0000

On Sep 10, 2022, at 3:59 AM, Alexander Clouter <alex+ietf@coremem.com> wrote:
> I have both implemented EAP-FAST and TEAP, and also slogged through the interoperability testing of the TLS 1.3 changes proposed here for EAP-TTLS and PEAP.
> 
> This probably qualifies me to chip in here.

  Thanks.

> Section 2.2 - TEAP
> ------------------
> I do not think changing the language for the definition of the MAC used for the Compound MAC was necessary.

  I don't see if changing the definition that much,  There's just a reference to the previous section, which was changed.  That definition was just changed to use TLS-Exporter() instead of TLS-PRF().

  Are there any other changes which need highlighting (or fixing) ?

> If any wording changes need to be made, maybe to be more explicit in stating "the MAC from the handshake" or "cipher_suite from RFC8446 section 4.1.3"? I find the existing "section 7.1 of RFC 8446" wording unusable to someone trying to answer "what am I actually meant to do here?"

  Do you have explicit text to suggest?

> Maybe I am just dumb so someone can help join the dots for me, but as an implementer it is unclear to me how anyone could get from "look at RFC8446 section 7.1" to "use SSL_CIPHER_get_handshake_digest()"?

  Perhaps updating it to say:

For TLS 1.3, the message authentication code (MAC) is computed with
the HMAC algorithm negotiated for HKDF in the key schedule, as per
section 7.1 of RFC 8446.  That is, the MAC used is the MAC derived
from the TLS handshake.


> Having a deep guru level of knowledge of RFC8446 should never be a prerequisite to implementing TEAP...or any standard.

  Agreed.

> Maybe I am the only one here who gets depressed when instructed to look at a TLS RFC to gain wisdom?

  I'l take the fifth here.

> Section 2.2.1 - Client Certificates [TEAP]
> ------------------------------------------
> I think we should remove the unnecessary additional SSL handshake, as three full handshakes is getting excessive and life is too short for multi-second WAN authentications.

  I agree that the layered TLS sessions are less than optimal.

> On a practical note for this type of chained authentication we are already at the ~25 mark of the default limit of 50 EAP round trips that some EAP implementations (eg. hostapd and FreeRADIUS) set as the threshold of "things are now getting silly" and abort the conversion. This may thwart chaining future EAP methods.

  Agreed.

> Picking though our options, whilst Identity-Type TLV is needed to provide the EAP server on what is being authenticated, this TLV is also permitted as an outer-TLV in RFC7170 section 4.3.1.
> 
> RFC7170 being an RFC that relishes in contradiction, section 4.2.3 states this TLV MUST be passed alongside either an EAP-Payload or Basic-Password-Auth-{Req,Resp} which themselves are only permitted as inner-TLVs.
> 
> Fortunately section 4.3.1 also states outer-TLVs MUST be marked optional which I see as the way to break out of this situation.
> 
> I would propose allowing an Identity-Type outer-TLV during Phase 1 to provide the necessary hinting to support machine/user authentication.

  That seems fine.  I'll update the section to say:

However, an implementation may send Identity-Type as an outer-TLV, in
which case a client certificate can be sent in Phase 1, and that
client certificate MUST be associated with the referenced
Identity-Type.


> Only if it would help some people on the fence land a decision, I am willing to do some interoperability testing to verify that sending outer-TLVs in this manner does not cause any unintended consequences? If you are that person, let me know.

  I don't see a problem with it.

> Section 2.3 - EAP-FAST
> ----------------------
> I think you should be explicit that an implementer should now only look to session tickets for their PAC provisioning needs.
> 
> Maybe something more like:
> 
>  EAP-FAST previously used a PAC, which is functionally equivalent to
>  session tickets provided by TLS 1.3 that contain a pre-shared key (PSK)
>  along with other data. As such, the use of a PAC is deprecated for
>  EAP-FAST in TLS 1.3. PAC provisioning [RFC5422] is also no longer part
>  of EAP-FAST when TLS 1.3 is used.

  Updated, thanks.  I'll add similar text for TEAP.

> Section 2.4 - EAP-TTLS
> ----------------------
> I know that it is trying to communicate context is empty but it still looks like a typo, maybe instead:
> 
>  EAP-TTLS_challenge = TLS-Exporter("ttls challenge", {}, n)
> 
> Then highlight 'context={}' means 'empty'/'zero length' as per RFC8446 Section 7.5?

  The other EAP RFCs just use an empty context, and not {}.  So I'm OK with leaving that alone.

> Section 2.[45].1 - Client Certificates [EAP-TTLS/PEAP]
> ------------------------------------------
> I would like to see the "just use EAP-TLS" and "abort when no inner methods" replicated in the sections covering TEAP and EAP-FAST too.
> 
> Alternatively broken out into its own section which I think it deserves to highlight "this is pointless folks, we have EAP-TLS for this".

  I'll add text to TEAP and FAST.  That seem simplest.

> I do agree with Alan though. Something has to point the direction that
> TEAP/EAP-FAST needs to go in for TLS 1.3 and any inaccuracies can be resolved through Errata.
> 
> The inaccuracies in the RFC7170 and the stalled errata efforts[4] for TEAP has not prevented hostapd, Windows 11 and FreeRADIUS interoperating.

  That's good news.

> This document needs to be published with a TEAP and EAP-FAST statement.

  Thanks.

  I've updated the document, and will issue a new I-D shortly.

  Alan DeKok.