Re: [nfsv4] NFS over TLS for laptops

Benjamin Kaduk <kaduk@mit.edu> Tue, 29 December 2020 19:07 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 2F4C93A083B for <nfsv4@ietfa.amsl.com>; Tue, 29 Dec 2020 11:07:17 -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 uqkIrUC5dEVm for <nfsv4@ietfa.amsl.com>; Tue, 29 Dec 2020 11:07:15 -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 1ED393A0825 for <nfsv4@ietf.org>; Tue, 29 Dec 2020 11:07:14 -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 0BTJ78l7022434 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 29 Dec 2020 14:07:12 -0500
Date: Tue, 29 Dec 2020 11:07:07 -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: <20201229190707.GB89068@kduck.mit.edu>
References: <YQXPR0101MB096816C0EA985F65FE6562E5DDC60@YQXPR0101MB0968.CANPRD01.PROD.OUTLOOK.COM> <YQXPR0101MB0968AA3A97C80B8140BFC845DDC60@YQXPR0101MB0968.CANPRD01.PROD.OUTLOOK.COM> <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>
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Disposition: inline
In-Reply-To: <1113F47A-BDA1-4C34-95B4-1EB8076BA071@oracle.com>
Archived-At: <https://mailarchive.ietf.org/arch/msg/nfsv4/V2i6wihuFOGcCgyfhucVXBw_cLQ>
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: Tue, 29 Dec 2020 19:07:17 -0000

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.  (There might be some divergence from what Rick has
done for the FreeBSD implementation in terms of the behavior when a client
does try to send some other user information via AUTH_SYS, in terms of
getting "squashed" vs getting rejected, but I suspect that Rick is amenable
to changing that behavior if we come up with some reasoning for why it
makes sense.)

-Ben

> In short, the WG must come to a fresh consensus that either
> otherName is OK to do in this scenario, or it must provide an
> acceptable alternative.
> 
> 
> >> At that point, we have a real problem. Or maybe just me, as an
> >> author of rpc-tls and possibly its descendants, has that problem.
> > I do not really see the problem. No is a simple answer.
> 
> Simple, but problematic. The possible result will be the
> promulgation of implementations that do not comply with our
> shiny new specification. I think the IETF would view that as
> very much a quality-of-specification problem. The usual redress
> is to publish an updated protocol specification.
> 
> 
> --
> Chuck Lever
> 
> 
> 
> _______________________________________________
> nfsv4 mailing list
> nfsv4@ietf.org
> https://www.ietf.org/mailman/listinfo/nfsv4