Re: [netconf] Latest ietf-netconf-server draft and related modules

Kent Watsen <kent+ietf@watsen.net> Tue, 27 April 2021 22:45 UTC

Return-Path: <01000179158224da-a7663485-0b99-42b8-b85d-804c9d17ec5f-000000@amazonses.watsen.net>
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 83ED23A23D3 for <netconf@ietfa.amsl.com>; Tue, 27 Apr 2021 15:45:25 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.897
X-Spam-Level:
X-Spam-Status: No, score=-1.897 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HTML_MESSAGE=0.001, SPF_HELO_NONE=0.001, SPF_NONE=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=amazonses.com
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 hL2xeaOM5Hy8 for <netconf@ietfa.amsl.com>; Tue, 27 Apr 2021 15:45:23 -0700 (PDT)
Received: from a8-96.smtp-out.amazonses.com (a8-96.smtp-out.amazonses.com [54.240.8.96]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id DDAFD3A23D2 for <netconf@ietf.org>; Tue, 27 Apr 2021 15:45:22 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/simple; s=ug7nbtf4gccmlpwj322ax3p6ow6yfsug; d=amazonses.com; t=1619563521; h=From:Message-Id:Content-Type:Mime-Version:Subject:Date:In-Reply-To:Cc:To:References:Feedback-ID; bh=KSnzGvrUdPTCWpSLklKc05fkUbN6sBxjaajRUy/jN2g=; b=VrQEPrQoueKTGB/8sLSVYUqolAgvv8r1UJYZ3IDGN9PJNvYNoIJb4a9WTxwOn9QP PqZ01Tj9sbMzwpPOMOI3d2KtYYxxOH7etm2JeX6hwt1lVudoKwJIn5UDQW3J5068mp3 +WTonlUZ1s0tOmZB57hepof4+m0LxAxhIxR5pKWc=
From: Kent Watsen <kent+ietf@watsen.net>
Message-ID: <01000179158224da-a7663485-0b99-42b8-b85d-804c9d17ec5f-000000@email.amazonses.com>
Content-Type: multipart/alternative; boundary="Apple-Mail=_54FE5B1B-81E0-49D8-AE2F-E77BAF17B486"
Mime-Version: 1.0 (Mac OS X Mail 14.0 \(3654.60.0.2.21\))
Date: Tue, 27 Apr 2021 22:45:21 +0000
In-Reply-To: <20210427210046.gtfcwwf5kefxfme5@anna.jacobs.jacobs-university.de>
Cc: =?utf-8?Q?Michal_Va=C5=A1ko?= <mvasko@cesnet.cz>, "netconf@ietf.org" <netconf@ietf.org>
To: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>
References: <20210426172143.hhhebmeudv23dvkr@anna.jacobs.jacobs-university.de> <78fd-6087b600-7b-59cd2c00@214199368> <20210427073236.7s5fx2jzgs4hvhtc@anna.jacobs.jacobs-university.de> <0100017913b7c3d4-e03a2d29-4b0f-4820-bee9-56f532679207-000000@email.amazonses.com> <20210427155544.pd7bmt2hdztx2zui@anna.jacobs.jacobs-university.de> <0100017914bb076f-9fb97a64-b35a-474d-9222-9be5ec784aaf-000000@email.amazonses.com> <20210427210046.gtfcwwf5kefxfme5@anna.jacobs.jacobs-university.de>
X-Mailer: Apple Mail (2.3654.60.0.2.21)
Feedback-ID: 1.us-east-1.DKmIRZFhhsBhtmFMNikgwZUWVrODEw9qVcPhqJEI2DA=:AmazonSES
X-SES-Outgoing: 2021.04.27-54.240.8.96
Archived-At: <https://mailarchive.ietf.org/arch/msg/netconf/o9KFYWnIsBM2CsEFAvdE7b8Z0vc>
Subject: Re: [netconf] Latest ietf-netconf-server draft and related modules
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, 27 Apr 2021 22:45:26 -0000

Hi Juergen,


> On the SSH server side, we have this:
> 
>       |  +-- users {client-auth-config-supported}?
>       |  |  +-- user* [name]
>       |  |     +-- name?          string
>       |  |     +-- public-keys! {client-auth-publickey}?
>       |  |     |  +---u ts:local-or-truststore-public-keys-grouping
>       |  |     +-- password?      ianach:crypt-hash
>       |  |     |       {client-auth-password}?
>       |  |     +-- hostbased! {client-auth-hostbased}?
>       |  |     |  +---u ts:local-or-truststore-public-keys-grouping
>       |  |     +-- none?          empty {client-auth-none}?
>       |  +-- ca-certs!
>       |  |       {client-auth-config-supported,sshcmn:ssh-x509-certs}?
>       |  |  +---u ts:local-or-truststore-certs-grouping
>       |  +-- ee-certs!
>       |          {client-auth-config-supported,sshcmn:ssh-x509-certs}?
>       |     +---u ts:local-or-truststore-certs-grouping
> 
> On the TLS side, we have this:
> 
>       +-- client-authentication! {client-auth-config-supported}?
>       |  +-- ca-certs! {x509-certificate-auth}?
>       |  |  +---u ts:local-or-truststore-certs-grouping
>       |  +-- ee-certs! {x509-certificate-auth}?
>       |  |  +---u ts:local-or-truststore-certs-grouping
>       |  +-- raw-public-keys! {raw-public-key-auth}?
>       |  |  +---u ts:local-or-truststore-public-keys-grouping
>       |  +-- psks?              empty {psk-auth}?
> 
> On the HTTP side, we have this:
> 
>       +-- client-authentication! {client-auth-config-supported}?
>          +-- users
>             +-- user* [user-id]
> 		+-- user-id?       string
> 		+-- (auth-type)?
>                   +--:(basic)
>                      +-- basic {basic-auth}?
>                         +-- user-id?    string
>                         +-- password?   ianach:crypt-hash
> 
> What exactly is the problem?

Right now, the question at hand is to what we do with the built-in “user” lists in the SSH and HTTP server models.  

I don’t use them in my application, but it seems that 1) having something simple (e.g., htpasswd-like) might help some and 2) they can be optionally implemented/enabled, so it doesn’t hurt to leave them in.  

I’m a fan for just tying up the loose ends Michal is raising, but I thought you were advocating something else?


> a) Is the issue that there is no support for keyboard-interactive in
>   the SSH model?

There is now per this commit: https://github.com/netconf-wg/ssh-client-server/commit/c434d249baeab8f850b25c0c4c518379accffcf0 <https://github.com/netconf-wg/ssh-client-server/commit/c434d249baeab8f850b25c0c4c518379accffcf0>

An updated draft will be posted once we get past yours and Michal's comments. 


> b) Is the issue that there is no support for non-local user databases
>   for SSH and HTTP authentication?

If we think that is important, yes.  The current “solution” for non-local user databases is 1) don’t enable "client-auth-config-supported” and 2) augment-in what is needed for the application…and maybe 3) only use TLS, where the truststore/keystore + cert-to-name obviate the need for a user database.



> Personally, I would be fine to go ahead with these limitations as long
> as we have the structure in place to add things later (e.g., once
> vendors have prototyped extensions paving the way to a standard
> solution).

Okay, I think we’re aligned in this regard.  As mentioned above, the various "client-authentication” nodes don’t have to be implemented, so more complete solutions come in the future.


K.