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

Mahesh Jethanandani <mjethanandani@gmail.com> Wed, 24 January 2024 02:15 UTC

Return-Path: <mjethanandani@gmail.com>
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 EEDA9C14F711; Tue, 23 Jan 2024 18:15:58 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -7.107
X-Spam-Level:
X-Spam-Status: No, score=-7.107 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_HI=-5, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com
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 NpwXTb6LwcFs; Tue, 23 Jan 2024 18:15:54 -0800 (PST)
Received: from mail-pg1-x52a.google.com (mail-pg1-x52a.google.com [IPv6:2607:f8b0:4864:20::52a]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 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 90D83C14F6EF; Tue, 23 Jan 2024 18:15:54 -0800 (PST)
Received: by mail-pg1-x52a.google.com with SMTP id 41be03b00d2f7-5bdbe2de25fso3777920a12.3; Tue, 23 Jan 2024 18:15:54 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1706062554; x=1706667354; darn=ietf.org; h=references:to:cc:in-reply-to:date:subject:mime-version:message-id :from:from:to:cc:subject:date:message-id:reply-to; bh=qPQIKrUhwe3IRRd0xeeyYruvoUmVjMX//c+jHcoVK6o=; b=A1c4v59xem/GrB4EGc2kd+lbYx7vqzcLotXErTYP3P15qBZaSc6bTo1Ou3Pz4LL3to SvRu5D1cApUi2ors7Jjhr01eBS51SooBZkDNNBpvLU5tUdyPuIqCVtsBkAqyibPcKLRF aUMttQoNBFIA6QnqHdZGq4UCHpVphdh/5O3Ks7fri50iv52E34QmFeJlXITKq9kgtU0e bo3BPvuWG44MO9Hp2xbFvwyL911CsmMS8OvXQWF5WEd7+25jieKz0ZzSo8arGaq3Jdg8 IQLT7IuDSWgujL+Y5e+VMLRCSape79VfVbAoLutpXsvpkAIiSyAG1nbT17LnsvaaZaRa 0TdQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1706062554; x=1706667354; h=references:to:cc:in-reply-to:date:subject:mime-version:message-id :from:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=qPQIKrUhwe3IRRd0xeeyYruvoUmVjMX//c+jHcoVK6o=; b=g77EiNDR43JHzQVHnkuqFMkIUj3kt7/2J9hJvpCG/Y29xRp+Eq8OepEQwfnI2Whqok ibe71+BnLZ5nu8QpWsWynRdEbmOYVgBu5dpFrizq0adGz3Z8if6XvKWxJHq/TkKb9xe4 8x3PZYfJbediFfWeTCKKHLDyiJs/sEa+FeS5Wg8+i2kFYG4tvsmPXEAaJZ4QD4JYUcNu 23ewvOKHjD1rtTK7ooyFyT804ynZTw5ZdXi4xD6b/caYut6X+6DshNu6UVt1byVIeFyZ IJ37TNJymnnH/afsbmcIT79zKfZpKPK90gVq49hroLbq+Jl+Z7+PptrDcErvFqWImlCl mdcA==
X-Gm-Message-State: AOJu0YyhMrGDnoUR4WJc4bLDZhsKhRA8NNUsWicpdCCxiNEvRCE5Ji6v Akp5n3H7a/FYIVyZC1vwQW2/OVkzy7ftKndijOixCGQKXchuO/aq
X-Google-Smtp-Source: AGHT+IFbgmyk587DIBB5pGNXjjuvJCLN/Nj9U5I0JRu/eWQ8En/4xKO19s44nZ5VvNZptm/zj0+oQw==
X-Received: by 2002:a05:6a20:840c:b0:19c:5718:8eb7 with SMTP id c12-20020a056a20840c00b0019c57188eb7mr224982pzd.32.1706062553524; Tue, 23 Jan 2024 18:15:53 -0800 (PST)
Received: from smtpclient.apple (c-69-181-169-15.hsd1.ca.comcast.net. [69.181.169.15]) by smtp.gmail.com with ESMTPSA id fk19-20020a056a003a9300b006db87354a8fsm12284489pfb.119.2024.01.23.18.15.52 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Tue, 23 Jan 2024 18:15:52 -0800 (PST)
From: Mahesh Jethanandani <mjethanandani@gmail.com>
Message-Id: <D68A88A8-815F-4BC3-90B7-51D96F2A8ECF@gmail.com>
Content-Type: multipart/alternative; boundary="Apple-Mail=_64759C3E-18F2-42B2-B24D-87FFE7478B41"
Mime-Version: 1.0 (Mac OS X Mail 16.0 \(3696.120.41.1.4\))
Subject: Re: draft-ietf-bfd-optimizing-authentication-13 nits
Date: Tue, 23 Jan 2024 18:15:51 -0800
In-Reply-To: <923B21A6-0263-4C10-B5AB-AE470F4B5014@pfrc.org>
Cc: draft-ietf-bfd-optimizing-authentication@ietf.org, "rtg-bfd@ietf. org" <rtg-bfd@ietf.org>, Manav Bhatia <manavbhatia@gmail.com>, Ashesh Mishra <mishra.ashesh@gmail.com>
To: Jeffrey Haas <jhaas@pfrc.org>
References: <4F3695C8-3736-4E55-B5BB-84671FDC367E@pfrc.org> <A8D0BCD4-15FA-4061-A7F0-6D888158F5A3@gmail.com> <D3DB82BE-730A-4D7C-88B8-3B309C5AC3B9@pfrc.org> <9CDB2C7B-BAB6-476C-9F12-BFA7EAD6DD60@gmail.com> <478E63ED-1784-4522-96A8-6813A2028F40@gmail.com> <3B169E77-D0E6-4282-9F74-5ED9E0CB45CF@pfrc.org> <27C39AF2-D01F-48C5-A564-B600D1439CAC@gmail.com> <923B21A6-0263-4C10-B5AB-AE470F4B5014@pfrc.org>
X-Mailer: Apple Mail (2.3696.120.41.1.4)
Archived-At: <https://mailarchive.ietf.org/arch/msg/rtg-bfd/FGlsgepsVefEhDVFx7tKyhoRiI8>
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: Wed, 24 Jan 2024 02:15:59 -0000

Hi Jeff,

I have been thinking of keeping the configuration information related to the draft in the draft itself. I know that will mean three small YANG models, but if keeps the discussion in one place rather than referring to another document. If the configuration of one parameters affects the other draft, we will have to revisit my thinking.

With that in mind, ...

> On Jan 23, 2024, at 10:30 AM, Jeffrey Haas <jhaas@pfrc.org> wrote:
> 
> Mahesh,
> 
> 
>> On Jan 23, 2024, at 1:18 PM, Mahesh Jethanandani <mjethanandani@gmail.com> wrote:
>> 
>> I am proposing two config variables that I think that are pertinent to optimized configuration, and I can put a small YANG model that augments BFD YANG model to demonstrates it. They are:
>> 
>> - optimized-auth flag: A boolean flag, when set to true, the implementation would like to make use of optimized auth for the session in question.
> 
> We have two authentications proposed for optimization: NULL and Meticulous Keyed ISAAC.  Were you expecting another leaf and the relevant keychain parameters for these to be defined elsewhere and tied in?

I see that there is some confusion that still needs to be cleared. I brought it up, but apparently I did not do a good job of it.

You mention two authentications proposed for Optimized auth. I think there is only one, i.e. the one that uses NULL Auth. Meaning, in Optimized auth mode, you start with strong auth for state transitions, and once the session is in UP state, transition to NULL auth, with occasional strong auth to prevent MITM attack.

The Meticulous Keyed ISAAC in my mind is independent of Optimized auth. It can be enabled by itself, or along with Optimized auth to secure the sequence number.

Did you have something else in mind?

> 
> Further, for the bfd-stability feature, we need to have the ability to pick the meticulous authentication that will be used potentially in addition to non-meticulous authentication that might be stronger. 
> 
> I think this is pushing us toward having a secondary bit of authentication configured for the session and a selector for the mode of why it's needed: optimized vs. stability.
> 
> Working through both use cases will likely drive the outcome.

I agree with you on the question of using a meticulous auth mechanism when stability is enabled, and something that you highlight on the other thread. But could it be as simple as some text that says that when stability is enabled, only meticulous auth should be used. I am not sure what you mean when you say “ability to pick the meticulous authentication that will be used …”. The base BFD YANG model does not allow us to specify what bfd.AuthType will be used. Just the key-chain and whether we want meticulous auth or not.

Here are some of the possible scenarios that I can think of, what config would apply, and what would be the behavior.

- No auth, no secure sequence number, no stability. No new config. Things will work as defined in RFC 5880.
- Strong auth, no secure sequence number, no stability. No new config. Things will work as defined in RFC 5880.
- Optimized auth, no secure sequence number, no stability. 'optimized-auth' flag is set to true, along with an interval for strong auth. The system decides what strong auth it uses for state change and occasional auth.
- No auth, secure sequence number, no stability. A config variable 'secure-sequence-number' is set to true, and the system uses ISAAC.
- No auth, no secure sequence number, stability. A config variable of ‘stability' is set to true. System uses the increasing sequence number to detect drops.
- Optimized auth, secure sequence number, no stability. 'optimized-auth' and 'secure-sequence-number' are set to true. System picks a strong auth for state transitions and occasional auth, and NULL auth otherwise. In parallel, it uses ISAAC to secure the sequence number.
- Optimized auth, no secure sequence number, stability. 'optimized-auth' and ‘stability' is set to true. System picks a strong meticulous auth for state transitions and occasional auth, and NULL auth otherwise. It uses the increasing sequence number to detect drops.
- Optimized auth, secure sequence number, stability. 'optimized-auth', 'secure-sequence-number', and ‘stability' is set to true. System picks a strong meticulous auth for state transitions and occasional auth, and NULL auth otherwise. In parallel it uses meticulous ISAAC to secure the sequence number. It uses the increasing sequence number to detect drops.

> 
> 
> 
>> - strong-auth-interval: A uint32 value that takes a microsecond value for the interval after which the session MUST try a strong authentication mechanism to prevent a MITM attack. The default value is default value of required-min-rx-interval as defined in the BFD YANG model, times the local-multiplier with a default value of 3 for a total of 3000000.
> 
> The danger of saying "pick a reasonable value" is the back and forth of what should be reasonable.  3s is certainly better than doing expensive authentication every 30ms.  Would every 30s?  Every 5m? 
> 
> I would recommend something probably in the minute time frame. 

Ok. I will set the default to 1 minute.

> 
> I would also suggest we want text that says "this value will have jitter applied to it to avoid self-synchronization of expensive authentication operations".  Basically, if you presume a system that is doing the expensive thing every N seconds, we don't want it trying to do that expensive thing for every single session all at the same time.

Ok. Will add text to that effect.

> 
>> 
>> Both these variables can be protected with a feature statement that implementations will enable if they want to support optimized authentication.
> 
> Perfect.
> 
>> 
>> Is that what you were looking for?
> 
> This is the right direction!
> 
> -- Jeff
> 


Mahesh Jethanandani
mjethanandani@gmail.com