Re: [kitten] [nfsv4] draft-ietf-nfsv4-rpcsec-gssv3: request for review

Nico Williams <nico@cryptonector.com> Mon, 04 August 2014 19:17 UTC

Return-Path: <nico@cryptonector.com>
X-Original-To: kitten@ietfa.amsl.com
Delivered-To: kitten@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 383411A023F; Mon, 4 Aug 2014 12:17:03 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.666
X-Spam-Level:
X-Spam-Status: No, score=-1.666 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, IP_NOT_FRIENDLY=0.334, RCVD_IN_DNSWL_NONE=-0.0001] autolearn=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 peC4LKNisPeL; Mon, 4 Aug 2014 12:17:02 -0700 (PDT)
Received: from homiemail-a113.g.dreamhost.com (sub4.mail.dreamhost.com [69.163.253.135]) by ietfa.amsl.com (Postfix) with ESMTP id 5E7761A0202; Mon, 4 Aug 2014 12:17:02 -0700 (PDT)
Received: from homiemail-a113.g.dreamhost.com (localhost [127.0.0.1]) by homiemail-a113.g.dreamhost.com (Postfix) with ESMTP id 41C3F20047B74; Mon, 4 Aug 2014 12:17:02 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=cryptonector.com; h=date :from:to:cc:subject:message-id:references:mime-version :content-type:in-reply-to; s=cryptonector.com; bh=2z8idu2E3FGehT B7v4Xx1sZOfNk=; b=oFwsGeLwnEpyIrgvTZ+12F7CN1CNe35QsEjH2FGNKYCX24 njqfXHj+GLHz4iOoNvkg66A+1PUpDU6LYlAnwuFNSAoHBZkEv9qXymMH18aBE+2C eWezVLkonnaDuRjECE7B/bxQfvtGuOC4kTgblbGXPy9bfQOsgfQkhCqoU/ys4=
Received: from localhost (108-207-244-174.lightspeed.austtx.sbcglobal.net [108.207.244.174]) (Authenticated sender: nico@cryptonector.com) by homiemail-a113.g.dreamhost.com (Postfix) with ESMTPA id CBEA120047B5D; Mon, 4 Aug 2014 12:17:01 -0700 (PDT)
Date: Mon, 04 Aug 2014 14:17:01 -0500
From: Nico Williams <nico@cryptonector.com>
To: "Adamson, Andy" <William.Adamson@netapp.com>
Message-ID: <20140804191659.GX3579@localhost>
References: <DC941FEB-725A-49E1-8C38-FF765454827C@netapp.com> <alpine.GSO.1.10.1407301239260.21571@multics.mit.edu> <20140801224505.GB3579@localhost> <DB49D4A2-0EFF-4338-8F15-8459EEEBD5E8@netapp.com> <20140804164406.GK3579@localhost> <alpine.GSO.1.10.1408041411510.21571@multics.mit.edu> <20140804184503.GS3579@localhost> <1C1E7672-8E50-482D-A5B3-8C4E56458BA9@netapp.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Disposition: inline
In-Reply-To: <1C1E7672-8E50-482D-A5B3-8C4E56458BA9@netapp.com>
User-Agent: Mutt/1.5.21 (2010-09-15)
Archived-At: http://mailarchive.ietf.org/arch/msg/kitten/1lJk4fVwx4MknC57BcThsPSNf-Q
Cc: "kitten@ietf.org" <kitten@ietf.org>, NFSv4 <nfsv4@ietf.org>
Subject: Re: [kitten] [nfsv4] draft-ietf-nfsv4-rpcsec-gssv3: request for review
X-BeenThere: kitten@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Common Authentication Technologies - Next Generation <kitten.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/kitten>, <mailto:kitten-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/kitten/>
List-Post: <mailto:kitten@ietf.org>
List-Help: <mailto:kitten-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/kitten>, <mailto:kitten-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 04 Aug 2014 19:17:03 -0000

I should add that one personal motivation for v3 was "disk-less"
clients: they should be able to have access to shares they "own" as if
they had been local filesystems, but without the ability to make
arbitrary assertions about process credentials -user, group IDs,
privileges, labels- they couldn't quite get local filesystem access
control semantics.

I ran into this problem when Least Privilege integrated into Solaris,
something like 10 years ago or so.  Roughly around the same time that
(maybe a year after) I noticed the cache poisoning problem.

Without RPCSEC_GSSv3, the best a disk-less client can do w.r.t. shares
it "owns" is:

 - use AUTH_SYS, with all its limitations (no cryptographic security),
   for conveying subject process identity (user ID/group ID)

or

 - use host credentials ("root") and chown/chgrp new objects, and
   evaluate ACLs locally

Both of those options were just... awful.  The ability to securely make
arbitrary assertions, using name@domain form for identity assertions,
was my solution.  This explains the criticality design: the client can
just always make these assertions and let the server grant these for the
shares owned by the client and not for others.

Nico
--