Re: [nfsv4] NFS over TLS for laptops

Benjamin Kaduk <kaduk@mit.edu> Wed, 30 December 2020 18:39 UTC

Return-Path: <kaduk@mit.edu>
X-Original-To: nfsv4@ietfa.amsl.com
Delivered-To: nfsv4@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 54F523A0B45 for <nfsv4@ietfa.amsl.com>; Wed, 30 Dec 2020 10:39:23 -0800 (PST)
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, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, 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 niponBw-A_Wy for <nfsv4@ietfa.amsl.com>; Wed, 30 Dec 2020 10:39:21 -0800 (PST)
Received: from outgoing.mit.edu (outgoing-auth-1.mit.edu [18.9.28.11]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 8F3293A03F2 for <nfsv4@ietf.org>; Wed, 30 Dec 2020 10:39:21 -0800 (PST)
Received: from kduck.mit.edu ([24.16.140.251]) (authenticated bits=56) (User authenticated as kaduk@ATHENA.MIT.EDU) by outgoing.mit.edu (8.14.7/8.12.4) with ESMTP id 0BUIdD36019539 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 30 Dec 2020 13:39:18 -0500
Date: Wed, 30 Dec 2020 10:39:13 -0800
From: Benjamin Kaduk <kaduk@mit.edu>
To: Chuck Lever <chuck.lever@oracle.com>
Cc: Rick Macklem <rmacklem@uoguelph.ca>, "nfsv4@ietf.org" <nfsv4@ietf.org>
Message-ID: <20201230183913.GW89068@kduck.mit.edu>
References: <8B3A77F6-15DE-4F4B-B246-385DD447C743@oracle.com> <YQXPR0101MB09680BC1A27265F81C5B5671DDC40@YQXPR0101MB0968.CANPRD01.PROD.OUTLOOK.COM> <DEBCFB38-9A1A-43BB-A8DF-0C64792AF30F@oracle.com> <YQXPR0101MB09689564C0543291E25FB274DDC20@YQXPR0101MB0968.CANPRD01.PROD.OUTLOOK.COM> <YQXPR0101MB09687759005C97725CFC1AFCDDC10@YQXPR0101MB0968.CANPRD01.PROD.OUTLOOK.COM> <13B0E10F-0E40-47AC-A6E3-495DF578DCAB@oracle.com> <YQXPR0101MB0968D1AB5DC7A55DE4E5F404DDDE0@YQXPR0101MB0968.CANPRD01.PROD.OUTLOOK.COM> <1113F47A-BDA1-4C34-95B4-1EB8076BA071@oracle.com> <20201229190707.GB89068@kduck.mit.edu> <0D8595B7-4636-4E6A-A5C1-E0FE85D820D0@oracle.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Disposition: inline
In-Reply-To: <0D8595B7-4636-4E6A-A5C1-E0FE85D820D0@oracle.com>
Archived-At: <https://mailarchive.ietf.org/arch/msg/nfsv4/qYhMOk68NCvtnCF5J4_MB-ivGJg>
Subject: Re: [nfsv4] NFS over TLS for laptops
X-BeenThere: nfsv4@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: NFSv4 Working Group <nfsv4.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/nfsv4>, <mailto:nfsv4-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/nfsv4/>
List-Post: <mailto:nfsv4@ietf.org>
List-Help: <mailto:nfsv4-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/nfsv4>, <mailto:nfsv4-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 30 Dec 2020 18:39:24 -0000

On Wed, Dec 30, 2020 at 11:12:05AM -0500, Chuck Lever wrote:
> 
> 
> > On Dec 29, 2020, at 2:07 PM, Benjamin Kaduk <kaduk@MIT.EDU> wrote:
> > 
> > On Tue, Dec 29, 2020 at 11:41:04AM -0500, Chuck Lever wrote:
> >> 
> >> 
> >>> On Dec 23, 2020, at 7:03 PM, Rick Macklem <rmacklem@uoguelph.ca> wrote:
> >>> 
> >>>> And, we agree that securing single-user clients is an important
> >>>> use case. (paraphrase. My stupid email system cut the text line out.)
> >>>> 
> >>>> I expect other implementers will find the same thing. When they
> >>>> deal with this issue, they might see your implementation and
> >>>> and copy it. Or they might copy it and add some variations,
> >>>> since there is no published specification.
> >>> Yes. As above w.r.t a TLS squashing data and distribution mechanism,
> >>> I agree.
> >>> 
> >>>> And then I can see one or more of them approaching the WG and
> >>>> asking us to either update rpc-tls or provide a specification
> >>>> to enable proper interoperation.
> >>>> 
> >>>> Or, possibly, at some point in the future, the WG will be tasked
> >>>> with updating rpc-tls to reflect implementation practice, part
> >>>> of which might be otherName.
> >>> And you can simply restate that you do not consider use of the
> >>> otherName field this way as acceptable, due to conflagration
> >>> of user and machine credentials in the certificate.
> >> 
> >>> (I suppose there is the question of whether or not the "collective"
> >>> working group agrees with the above, but since no one else has
> >>> commented except Ben Kaduk, we do not know the answer to
> >>> that?)
> >> 
> >> I think we know the answer. We have a consensus that was
> >> arrived at by the usual process. It is documented in
> >> rpc-tls.
> >> 
> >> 
> >>> Any other implementation who might choose the otherName
> >>> approach can easily do so from the FreeBSD doc. and sources.
> >>> (Or by simply asking me.)
> >> 
> >> My concern is that we have a spec (one that supposedly
> >> represents a community consensus) that tells us not to mix
> >> client and user authentication material, and yet implementers
> >> are choosing to do this anyway.
> >> 
> >> Is the spec then wrong? If it is, the WG needs to address that.
> >> The primary purpose of specifications is to codify the practices
> >> where we agree, yet there is clearly a disagreement already.
> >> 
> >> If the spec is not wrong, the WG needs to consider ways to
> >> address the need while complying with the normative
> >> requirements in rpc-tls.
> >> 
> >> I was hoping that we could identify a compromise position, at
> >> least, with the FreeBSD implementation. If it turns out we
> >> cannot, then the WG needs to construct a proper response to
> >> the single-user-per-client scenario.
> > 
> > I suspect that we can find a compromise position, yes.
> > The certificate still authenticates the client (not the user), and the
> > client uses AUTH_SYS to claim what user is performing operations.  But the
> > server uses the client's authenticated identity to restrict, by policy,
> > what user identities the client is allowed to claim via AUTH_SYS.  In the
> > degenerate case there is an otherName in the certificate that corresponds
> > to a single user and the client can only claim that one user, which looks
> > very similar to just authenticating the user, but we can say that the
> > relevant policy logic is located in the server as part of its internal
> > implementation choices.
> 
> An NFS client might send legitimate operations as UID 0 too
> (e.g., lease management). Those cannot be rejected. Perhaps
> we need to specify that the client has to perform _all_
> operations as the squashed user.
> 
> As a process note, I'm thinking this explanation, a description
> of the use of otherName, and a summary of the security discussion
> in this thread ought to go in whichever document discusses how
> NFS operates on RPC-over-TLS. It seems to be NFS-specific access
> control behavior.
> 
> The alternative is publishing an update to rpc-tls...

Agreed on both counts.

Thanks,

Ben