Re: [netconf] a comment on draft-ietf-netconf-tls-client-server-15
Martin Bjorklund <mbj@tail-f.com> Wed, 23 October 2019 17:18 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 B00EA12086F for <netconf@ietfa.amsl.com>; Wed, 23 Oct 2019 10:18:42 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.899
X-Spam-Level:
X-Spam-Status: No, score=-1.899 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=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 hsY8XnNNogMM for <netconf@ietfa.amsl.com>; Wed, 23 Oct 2019 10:18:40 -0700 (PDT)
Received: from mail.tail-f.com (mail.tail-f.com [46.21.102.45]) by ietfa.amsl.com (Postfix) with ESMTP id 852081208A7 for <netconf@ietf.org>; Wed, 23 Oct 2019 10:18:40 -0700 (PDT)
Received: from localhost (h-4-44.A165.priv.bahnhof.se [158.174.4.44]) by mail.tail-f.com (Postfix) with ESMTPSA id EDE041AE018B; Wed, 23 Oct 2019 19:18:37 +0200 (CEST)
Date: Wed, 23 Oct 2019 19:18:37 +0200
Message-Id: <20191023.191837.484006721829897329.mbj@tail-f.com>
To: kent@watsen.net
Cc: netconf@ietf.org
From: Martin Bjorklund <mbj@tail-f.com>
In-Reply-To: <0100016df97342cf-58f4f854-4372-4da7-aab6-86959cc275d7-000000@email.amazonses.com>
References: <20191023.093715.2094043256766716320.mbj@tail-f.com> <0100016df97342cf-58f4f854-4372-4da7-aab6-86959cc275d7-000000@email.amazonses.com>
X-Mailer: Mew version 6.8 on Emacs 25.2
Mime-Version: 1.0
Content-Type: Text/Plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Archived-At: <https://mailarchive.ietf.org/arch/msg/netconf/PgThW28it_26oUny0quDs0OS4vM>
Subject: Re: [netconf] a comment on draft-ietf-netconf-tls-client-server-15
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: Wed, 23 Oct 2019 17:18:43 -0000
Kent Watsen <kent@watsen.net> wrote: > Hi Martin, > > Thanks for digging into this. > > > > The model has (pruned to illustrate my point): > > > > container server-authentication { > > nacm:default-deny-write; > > must 'ca-certs or server-certs'; > > container ca-certs { > > if-feature "ts:x509-certificates"; > > presence ...; > > ... > > } > > container server-certs { > > if-feature "ts:x509-certificates"; > > presence ...; > > ... > > } > > } > > > This is in ietf-tls-client.yang, for those interested. > > > > > 1. If a server doesn't implement the feature ts:x509-certificates, > > the model effectively becomes: > > > > container server-authentication { > > nacm:default-deny-write; > > must 'ca-certs or server-certs'; > > } > > > > This must expression will never be true, which means that it is > > not possible to configure anything! > > > The "if-feature" statements above are no longer valid since now > "local" configuration is supported (i.e., > `ts:local-or-truststore-certs-grouping`), so the truststore no longer > is required to be implemented. > > Simply removing the two "if-feature" statements in > ietf-tls-client.yang resolves the issue. Note that > ts:local-or-truststore-certs-grouping have within it if-feature > statements that prune the "truststore" half out. Checking the other > models, there were also instances of this in ietf-tls-server.yang and > in both the ssh client and server modules. Ok. > > 2. When this grouping is used in ietf-https-notifs, it looks like > > this: > > > > +--rw receivers > > +--rw receiver* [name] > > +--rw name string > > ... > > | +--rw server-authentication > > | | +--rw ca-certs! {ts:x509-certificates}? > > ... > > | | +--rw server-certs! {ts:x509-certificates}? > > ... > > > > Now, the container 'server-authentication' has > > nacm:default-deny-write, and its contents is mandatory (due to the > > must expression). This means that it is not possible to configure > > a single receiver without explicit NACM rules for this container. Is > > that really the intention? > > Yes, these are security parameters. Read access is okay, but only > authorized clients should be able to configure them. I think it is odd that if I am trusted to configure a tls client, I can't fully configure it w/o additional rules. For example, suppose the security admin has set up a certificate trustore (/truststore/certificate) with trusted certificates. Now if I want to create a receiver of notifications, I want to point to this list. But I can't do that w/o special NACM rules. > > 3. You don't have a choice between ca-certs and server-certs, which I > > assume is intentional (they can both exist). I think you need to > > explain what happens when both these are configured. > > OLD: > container server-authentication { > ... > description > "Trusted server identities."; > > NEW: > container server-authentication { > ... > description > "Trusted server identities. Any combination of trusted > server identities is additive and unordered."; > > Is this okay? Ok, but see below. > > 4. The description of ca-certs and server-certs has: > > > > "A server certificate is authenticated if ..." > > > > But you don't specify what it means for a certificate to be > > authenticated. If the intention is that the meaning depends on > > where it is used, the description of the grouping should specify > > this requirement. > > For "ca-certs", the full sentence is: > > A server certificate is authenticated if it has a valid > chain of trust to a configured CA certificate."; > > For server-certs, the full sentence is: > > A server > certificate is authenticated if it is an exact match > to a configured server certificate."; > > How is the 2nd-half of these sentences not doing just what you're > asking for? So the text explains when a server certificate is authenticated. But what is supposed to happen when a server certificate is not authenticated? BTW, should it rather be "A server is authenticated if its certificate is an exact match..." etc? /martin
- [netconf] a comment on draft-ietf-netconf-tls-cli… Martin Bjorklund
- Re: [netconf] a comment on draft-ietf-netconf-tls… Martin Bjorklund
- Re: [netconf] a comment on draft-ietf-netconf-tls… Kent Watsen
- Re: [netconf] a comment on draft-ietf-netconf-tls… Martin Bjorklund
- Re: [netconf] a comment on draft-ietf-netconf-tls… Kent Watsen