Re: [netconf] crypto-types fallback strategy

Martin Bjorklund <mbj@tail-f.com> Tue, 01 October 2019 07:02 UTC

Return-Path: <mbj@tail-f.com>
X-Original-To: netconf@ietfa.amsl.com
Delivered-To: netconf@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id DD9C11200A3 for <netconf@ietfa.amsl.com>; Tue, 1 Oct 2019 00:02:28 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.9
X-Spam-Level:
X-Spam-Status: No, score=-1.9 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, SPF_HELO_NONE=0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id V19qqVuFapnZ for <netconf@ietfa.amsl.com>; Tue, 1 Oct 2019 00:02:26 -0700 (PDT)
Received: from mail.tail-f.com (mail.tail-f.com [46.21.102.45]) by ietfa.amsl.com (Postfix) with ESMTP id 60776120019 for <netconf@ietf.org>; Tue, 1 Oct 2019 00:02:26 -0700 (PDT)
Received: from localhost (unknown [173.38.220.41]) by mail.tail-f.com (Postfix) with ESMTPSA id CC78A1AE0383; Tue, 1 Oct 2019 09:02:23 +0200 (CEST)
Date: Tue, 01 Oct 2019 09:01:59 +0200
Message-Id: <20191001.090159.1030761714187442745.mbj@tail-f.com>
To: J.Schoenwaelder@jacobs-university.de
Cc: kent+ietf@watsen.net, rwilton@cisco.com, wang.haiguang.shieldlab@huawei.com, netconf@ietf.org, rifaat.ietf@gmail.com
From: Martin Bjorklund <mbj@tail-f.com>
In-Reply-To: <20191001064054.2g4ujuoy7lsbgjm2@anna.jacobs.jacobs-university.de>
References: <20190927174623.jhvpudof6yfs2m4k@anna.jacobs.jacobs-university.de> <0100016d84c0c469-e57fd7aa-dcba-4079-9b37-22720f7a4500-000000@email.amazonses.com> <20191001064054.2g4ujuoy7lsbgjm2@anna.jacobs.jacobs-university.de>
X-Mailer: Mew version 6.7 on Emacs 25.2 / Mule 6.0 (HANACHIRUSATO)
Mime-Version: 1.0
Content-Type: Text/Plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Archived-At: <https://mailarchive.ietf.org/arch/msg/netconf/4-KjmqFpGLld2A5oAT1RfueCA1A>
Subject: Re: [netconf] crypto-types fallback strategy
X-BeenThere: netconf@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: NETCONF WG list <netconf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netconf>, <mailto:netconf-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netconf/>
List-Post: <mailto:netconf@ietf.org>
List-Help: <mailto:netconf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netconf>, <mailto:netconf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 01 Oct 2019 07:02:29 -0000

Schönwälder, Jürgen <J.Schoenwaelder@jacobs-university.de> wrote:
> On Tue, Oct 01, 2019 at 12:38:08AM +0000, Kent Watsen wrote:
> > > 
> > > It may make sense to split by security protocol.
> > 
> > That would go some towards addressing Rich's concern.  Presumably we would have one module each for SSH  and TLS algorithms.  That said, to Rich's concern, there is a constant churn with them.  This churn concerns two activities:  the removal and addition of algorithms.  Both occur at protocol-version boundaries and, perhaps, other times as well.  This suggests to me that we could further refine the identities by protocol version, something like this:
> > 
> > In ietf-crypto-types:
> > 
> >     identity base-alg {}
> >     identity tls-alg { base "base-alg" }
> >     identity ssh-alg { base "base-alg" }
> > 
> > In ietf-tls-1.1-types:
> > 
> >     identity tls-1.1-alg { base "ct:tls-alg" }
> >     <a bunch of tls-1.1 identities here>
> > 
> > In ietf-tls-1.2-types:
> > 
> >     identity tls-1.2-alg { base "ct:tls-alg" }
> >     <a bunch of tls-1.2 identities here>
> > 
> > etc.
> > 
> > Updates only to the specific module would be needed.   The updates would only need to support new algorithms (not to remove support for legacy algorithms), as a different mechanism can be used for a server to advertise which algorithms it actually supports (on a more granular level).
> 
> I do not know whether this helps solving a problem or creates other
> problems as side effects. I think we have
> 
> a) a set of named algorithms that is changing over time
> b) a set of algorithms that are "blessed" for use a certain protocol
>    version (and the set may change over time)
> c) a set of algorithms supported by a protocol implementation (may change
>    with over time as well, i.e., with firmware updates)
> d) a set of algorithms configured to be used by a protocol implementation
>    (this is really what we want to get at)
> 
> Perhaps it is best to use identities for a)

Yes.

> and to expose the other
> sets via data leafs. I am not even sure exposing b) is required since
> b) is input to the protocol implementer and a client can (only)
> configure what is implemented anyway. I think c) could be exposed as
> config false data and d) is then config true data.


While I agree that this would probably work, I'm not convinced it is
required for now, to get this document done.  I think it can be ok to
declare this as out of scope for now.

> 
> > >> If advertising the specific identities is important, then a per identity if-feature could be used, although I'm not entirely sure that one feature per identity is really a great option either, but I think that this would be better than one per module.
> > > 
> > > Why not instead have a config false list of algorithms supported? Once
> > > we have solved this problem generically, this list may get deprecated.
> > 
> > I like this idea, but it means that ietf-crypto-types, where this config false list would be defined, presumably, would then have protocol accessible nodes and, to the point, may be odd for a "types" module to define.   Thoughts?  - a "config false" list okay?
> >
> 
> Such a config false list should go where the protocol specifics are
> defined. And it likely has to be protocol version specific for
> implementations that do support multiple versions of a security
> protocol.

Yes.

> I am generally not a fan of overloading names (or concepts in
> general). A YANG identity simply gives a name to something and a
> module simply puts a collection of named definitions into a common
> namespace. We should stay away from associating additional semantics
> with how an identity is named or how a module is named. If additional
> information is needed, model that additional information as data.

I agree.


/martin


>  
> /js
> 
> -- 
> Juergen Schoenwaelder           Jacobs University Bremen gGmbH
> Phone: +49 421 200 3587         Campus Ring 1 | 28759 Bremen | Germany
> Fax:   +49 421 200 3103         <https://www.jacobs-university.de/>
>