Re: [Emu] draft-ietf-emu-rfc7170bis-00.txt Review

Alan DeKok <aland@deployingradius.com> Mon, 02 January 2023 21:09 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 E010EC1524BC for <emu@ietfa.amsl.com>; Mon, 2 Jan 2023 13:09:08 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.896
X-Spam-Level:
X-Spam-Status: No, score=-1.896 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001, URIBL_DBL_BLOCKED_OPENDNS=0.001, URIBL_ZEN_BLOCKED_OPENDNS=0.001] 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 mndIXvxf6Fva for <emu@ietfa.amsl.com>; Mon, 2 Jan 2023 13:09:06 -0800 (PST)
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 7106CC14CF0D for <emu@ietf.org>; Mon, 2 Jan 2023 13:09:05 -0800 (PST)
Received: from smtpclient.apple (135-23-95-173.cpe.pppoe.ca [135.23.95.173]) by mail.networkradius.com (Postfix) with ESMTPSA id 968363C6; Mon, 2 Jan 2023 21:09:02 +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: <CABXxEz9UOb_NachWxzSuuQQ3hokZ7Ab88kUWg2DOXpxzZMhT4w@mail.gmail.com>
Date: Mon, 02 Jan 2023 16:09:00 -0500
Cc: EMU WG <emu@ietf.org>
Content-Transfer-Encoding: quoted-printable
Message-Id: <89C6AA44-924E-49D8-A9D6-41B97BD23BEB@deployingradius.com>
References: <167224489569.23388.9442266431540455034@ietfa.amsl.com> <CABXxEz9LxQaih4oc9kvyiMdpDf-eYs6hMOWmXfRNsfWMxBAB4g@mail.gmail.com> <5D86DEFC-7CE1-481D-90F0-E5A18B1BC657@deployingradius.com> <CABXxEz9UOb_NachWxzSuuQQ3hokZ7Ab88kUWg2DOXpxzZMhT4w@mail.gmail.com>
To: Oleg Pekar <oleg.pekar.2017@gmail.com>
X-Mailer: Apple Mail (2.3696.120.41.1.1)
Archived-At: <https://mailarchive.ietf.org/arch/msg/emu/ylYYw1_vL6R9dC2hp50qgqw2WxY>
Subject: Re: [Emu] draft-ietf-emu-rfc7170bis-00.txt Review
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: Mon, 02 Jan 2023 21:09:09 -0000

On Jan 2, 2023, at 10:07 AM, Oleg Pekar <oleg.pekar.2017@gmail.com> wrote:
> [Oleg] I agree that this is a low priority remark, I just want to be sure that we don't leave any ambiguity here. The RFC 7170 implicitly says that after the peer replies with inner EAP Identity Response, and the server, for example, doesn't like the peer's identity then the server must respond with Intermediate-Result TLV. This thing is maybe good. We should make it explicitly clear after which inner EAP messages to send Intermediate-Result TLV. For this purpose I would suggest to do the following things:
> a) define what is "inner EAP method completion" (after EAP Success, EAP Failure, non-fatal Error TLV exchange) 

  If the inner EAP method just runs an EAP state machine, then it MUST finish with either EAP Success or EAP Failure.

> b) define what should the server do if it wants to reject peer's inner EAP Identity Response - to send Error TLV with Intermediate-Result TLV (Failure)

  That's handled by RFC 3748.  If the EAP server doesn't like the conversation for any reason, it just sends EAP Failure.  TEAP just inherits that behaviour.

  i.e. when the EAP Failure is sent, TEAP sends Intermediate-Result with value Failure, and potentially an Error TLV indicating why it failed.

  I'll update the text for the Intermediate-Result TLV.

> c) as a consequence we should define the generic behavior (not related just to the section being discussed) after sending a non-fatal Error TLV - it should be probably accompanying it with Intermediate-Result TLV (Failure)

  Yes.

> d) another consequence - what to consider fatal and non-fatal Error TLV appearance - since the RFC 7170 has ambiguity here:
> "3.6.3. Phase 2 Errors 
>
> If a server receives a Result TLV of failure with a fatal Error TLV,
>    it MUST send a cleartext EAP Failure."
> 
> There are few places in the RFC 7170 that mention the difference between fatal and non-fatal error ocurrence on a party side or receiving it from the other party. We can explicitly say that a party defines by itself which error to be considered for it fatal and non-fatal. 

  The definition of Error TLV says which values are fatal.  If a party sends one of those values, the other side must send a Result TLV indicating failure.

> e) There's another flaw in the RFC 7170 in the same section 3.6.3:
> 
> The side receiving the Error TLV MAY decide to start a
>    new inner method instead or send back a Result TLV to terminate the
>    TEAP authentication session.
> 
> What does the phrase "MAY decide to start a new inner method" mean for the peer side that cannot start an inner method and can just respond to server's inner method proposals? Maybe I should fill out an errata for this.

  I read it as referring to a non-fatal error.  I'll update the text.

> [Oleg] If we decide to give more and more details on handling the inner method completion per the discussion above - then the duplication of behavior after inner EAP method and optional password authentication will grow and thus uniting their completions may make more sense. 

  Yes.  I'll see if I can write some text which clarifies this.  The only issue is that there isn't a lot of duplicate text, so there isn't a huge value in de-duplicating it.

> >> 4) Since multiple roundtrips of password authentication are allowed - we should specify what exactly to consider a "completion" of it since it induces the finalization flow
> >Perhaps it's best to add some clarifying text:
> 
> >* the EAP server decides (somehow, implementation-defined) when it should stop sending Basic-Password-Auth-Req
> [Oleg] Good, since the peer can't explicitly control the inducing of the next cycle. Suggesting "After each optional password authentication TLV exchange [or roundtrip] the EAP server decides whether to start another exchange or to finish the flow", or similar. 

  Sure.

> >* there is a limit on the number of round trips which can be made
> [Oleg] The RFC should not define the limit here, otherwise it should also define the other exchanges limits like the limit of the number of inner methods etc.

  It should make a recommendation on limiting the number of inner authentications.  Implementations MUST support at least 2 (for Machine and User), and SHOULD support some other number.

  Though we also have a limit on the overall number of packets exchanged in EAP.  In practice this is about 50.  That limits the amount of data which can be exchanged.

> >* Using this method to change passwords is NOT RECOMMENDED
> [Oleg] Correct, since EAP-FAST-GTC does allow password change explicitly in the RFC 5421. However, this way we leave the implementer with the dilema how to implement password change if the identity store is not compatible with EAP-MSCHAPv2. Are there recommended methods that we can mention?

  I don't think so.  :(

> >> 5) Regarding "3.3.3.  EAP-MSCHAPv2" I would suggest to explicitly mention the document where EAP-MSCHAPv2 MSK 16-octets blocks order is defined (the order that is different from EAP-FAST-MSCHAPv2). We should also mention that in PEAP and maybe some other protocols the original (non EAP-FAST-MSCHAPv2) order is used.
> 
> >I can add a reference to https://datatracker.ietf.org/doc/html/draft-kamath-pppext-eap-mschapv2-02 for EAP-MSCHAPv2.
> [Oleg] then maybe better to refer to RFC 3079 where the order is claimed to be defined. But essentially, to be formal, it is not also explicitly defined even there! The only place we found the order is explicitly defined is here: https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-chap/5a860bf5-2aeb-485b-82ee-fac1e8e6b76f 

  I'll update the reference.

> I created basic password authentication protocol state machine diagram and would like to share it for reference. Is there a standard way to share images in the WG?

  In-line attachments might work?  Or as a link to a web page?

  Alan DeKok.