Re: draft-ietf-bfd-optimizing-authentication-13 nits

Jeffrey Haas <jhaas@pfrc.org> Sun, 21 January 2024 20:37 UTC

Return-Path: <jhaas@pfrc.org>
X-Original-To: rtg-bfd@ietfa.amsl.com
Delivered-To: rtg-bfd@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id A6670C14F618; Sun, 21 Jan 2024 12:37:29 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -6.91
X-Spam-Level:
X-Spam-Status: No, score=-6.91 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_HI=-5, RCVD_IN_ZEN_BLOCKED_OPENDNS=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 Sti5FC98PWdG; Sun, 21 Jan 2024 12:37:25 -0800 (PST)
Received: from slice.pfrc.org (slice.pfrc.org [67.207.130.108]) by ietfa.amsl.com (Postfix) with ESMTP id C7985C14F602; Sun, 21 Jan 2024 12:37:24 -0800 (PST)
Received: from smtpclient.apple (172-125-100-52.lightspeed.livnmi.sbcglobal.net [172.125.100.52]) by slice.pfrc.org (Postfix) with ESMTPSA id 627AB1E039; Sun, 21 Jan 2024 15:37:23 -0500 (EST)
Content-Type: text/plain; charset="utf-8"
Mime-Version: 1.0 (Mac OS X Mail 16.0 \(3696.120.41.1.4\))
Subject: Re: draft-ietf-bfd-optimizing-authentication-13 nits
From: Jeffrey Haas <jhaas@pfrc.org>
In-Reply-To: <A9091D9D-1F6F-4AB7-BAD6-04229B0F3EFF@deployingradius.com>
Date: Sun, 21 Jan 2024 15:37:22 -0500
Cc: Mahesh Jethanandani <mjethanandani@gmail.com>, "rtg-bfd@ietf. org" <rtg-bfd@ietf.org>, draft-ietf-bfd-optimizing-authentication@ietf.org, Ashesh Mishra <mishra.ashesh@gmail.com>
Content-Transfer-Encoding: quoted-printable
Message-Id: <5EE1006F-0CA6-4D63-9E8A-B7CDB2B7B124@pfrc.org>
References: <B49A64C7-731F-4729-9D99-AC6C133983C8@deployingradius.com> <F9A30ECC-28E1-4272-A23F-191310424E0F@pfrc.org> <A9091D9D-1F6F-4AB7-BAD6-04229B0F3EFF@deployingradius.com>
To: Alan DeKok <aland@deployingradius.com>
X-Mailer: Apple Mail (2.3696.120.41.1.4)
Archived-At: <https://mailarchive.ietf.org/arch/msg/rtg-bfd/YopRF6uiBueMn2ZPQ_hrzTo4Azw>
X-BeenThere: rtg-bfd@ietf.org
X-Mailman-Version: 2.1.39
Precedence: list
List-Id: "RTG Area: Bidirectional Forwarding Detection DT" <rtg-bfd.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/rtg-bfd>, <mailto:rtg-bfd-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/rtg-bfd/>
List-Post: <mailto:rtg-bfd@ietf.org>
List-Help: <mailto:rtg-bfd-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/rtg-bfd>, <mailto:rtg-bfd-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sun, 21 Jan 2024 20:37:29 -0000


> On Jan 21, 2024, at 11:58 AM, Alan DeKok <aland@deployingradius.com> wrote:
> 
> On Jan 21, 2024, at 10:43 AM, Jeffrey Haas <jhaas@pfrc.org> wrote:
>> To your final point, ISAAC is reasonably secure for the Up case. However it doesn’t authenticate the packet contents. 
> 
>  What fields can be modified which *don't* affect the BFD state machine?  Most of the fields are mandated to have specific values for this particular session and this particular state.

That's rather the point.  The optimization procedures rely on the fact that we're requiring strong authentication as part of the ability to switch to something weaker.

For md5/sha1 procedures, the entirety of the PDU is part of the digest.  For ISAAC, we're saying, "here's the next sequence number".  We admit in the procedures we're not checking the rest of the fields.

A reasonable procedure for an implementation of ISAAC is verifying that the contents do not vary.  For the BFD state machinery, any changes to those fields is expected to be accomplished through a poll sequence, unless we're going Down/AdminDown, in which case we're also wanting strong authentication.


> 
>  i.e. We may not need the full packet to be authenticated in order to maintain an "Up" state.

We've agreed to this, and the logic is covered in the optimizing text.  

> 
>  Perhaps the RX / TX intervals could be modified without detection.  We could update the ISAAC doc to say that these fields need to be cached when ISAAC starts, and can only be changed via an Auth Type which authenticates the full packet content.

I'd not pushed for those details to be spelled out because the only legitimate way an implementation can accomplish this is, as above, through a poll sequence.

That said, since ...

> 
>  Doing that would address pretty much all of the issues related to not authenticating the packet.  Either a received packet is byte-for-byte identical to what we expect (plus ISAAC key), or it's not, and we drop it.

... is perhaps a late understanding for you as the expert in ISAAC rather than BFD, we certainly can spell it out in a sentence or two in the secure sequence numbers document

-- Jeff