Re: [kitten] [nfsv4] draft-ietf-nfsv4-rpcsec-gssv3: request for review
Benjamin Kaduk <kaduk@MIT.EDU> Sun, 03 August 2014 05:47 UTC
Return-Path: <kaduk@mit.edu>
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 EBFA61A0175; Sat, 2 Aug 2014 22:47:18 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.202
X-Spam-Level:
X-Spam-Status: No, score=-4.202 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_MED=-2.3, RP_MATCHES_RCVD=-0.001, SPF_PASS=-0.001] autolearn=ham
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 GI6lHab_FSKp; Sat, 2 Aug 2014 22:47:17 -0700 (PDT)
Received: from dmz-mailsec-scanner-8.mit.edu (dmz-mailsec-scanner-8.mit.edu [18.7.68.37]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 81F761A0171; Sat, 2 Aug 2014 22:47:16 -0700 (PDT)
X-AuditID: 12074425-f79766d000006da8-1e-53ddcce2794a
Received: from mailhub-auth-2.mit.edu ( [18.7.62.36]) (using TLS with cipher AES256-SHA (256/256 bits)) (Client did not present a certificate) by dmz-mailsec-scanner-8.mit.edu (Symantec Messaging Gateway) with SMTP id A2.97.28072.2ECCDD35; Sun, 3 Aug 2014 01:47:14 -0400 (EDT)
Received: from outgoing.mit.edu (outgoing-auth-1.mit.edu [18.9.28.11]) by mailhub-auth-2.mit.edu (8.13.8/8.9.2) with ESMTP id s735lDlR001710; Sun, 3 Aug 2014 01:47:14 -0400
Received: from multics.mit.edu (system-low-sipb.mit.edu [18.187.2.37]) (authenticated bits=56) (User authenticated as kaduk@ATHENA.MIT.EDU) by outgoing.mit.edu (8.13.8/8.12.4) with ESMTP id s735l8It024943 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NOT); Sun, 3 Aug 2014 01:47:10 -0400
Received: (from kaduk@localhost) by multics.mit.edu (8.12.9.20060308) id s735l7vl026125; Sun, 3 Aug 2014 01:47:07 -0400 (EDT)
Date: Sun, 03 Aug 2014 01:47:06 -0400
From: Benjamin Kaduk <kaduk@MIT.EDU>
To: Nico Williams <nico@cryptonector.com>
In-Reply-To: <20140801224505.GB3579@localhost>
Message-ID: <alpine.GSO.1.10.1408030123160.21571@multics.mit.edu>
References: <DC941FEB-725A-49E1-8C38-FF765454827C@netapp.com> <alpine.GSO.1.10.1407301239260.21571@multics.mit.edu> <20140801224505.GB3579@localhost>
User-Agent: Alpine 1.10 (GSO 962 2008-03-14)
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; charset="US-ASCII"; format="flowed"
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrBIsWRmVeSWpSXmKPExsUixG6novvozN1gg64L1hZHN69isZj9/hGr xalrR9gspi+ycmDxeHnqHKPHkiU/mTxmfPrCFsAcxWWTkpqTWZZapG+XwJWx+mdZQadOxe2P pQ2Mr5S6GDk5JARMJGb0vGWEsMUkLtxbz9bFyMUhJDCbSWLSs9mMEM4GRom3e9ZBZQ4ySVz/ cgesRUigXuLwxQ5WEJtFQEvi4Kq3bCA2m4CKxMw3G8FsEQFNievzloLZzAJlEt3T2sHqhQXc JJpf/WIGsTkF9CQaNp8FmsnBwSvgKDHjJzvE+KmMEvu35oPYogI6Eqv3T2EBsXkFBCVOznzC AjHSUuLcn+tsExgFZyFJzUKSWsDItIpRNiW3Sjc3MTOnODVZtzg5MS8vtUjXQi83s0QvNaV0 EyM4gF1UdzBOOKR0iFGAg1GJh1dh791gIdbEsuLK3EOMkhxMSqK8P3cBhfiS8lMqMxKLM+KL SnNSiw8xSnAwK4nwfskGyvGmJFZWpRblw6SkOViUxHnfWlsFCwmkJ5akZqemFqQWwWRlODiU JHjNgJEqJFiUmp5akZaZU4KQZuLgBBnOAzScGaSGt7ggMbc4Mx0if4pRUUqc98ppoIQASCKj NA+uF5ZgXjGKA70izHsNpIoHmJzgul8BDWYCGlxjeBtkcEkiQkqqgXHP0YPJC3z1Z/JnPqm5 c7v+rm+C7Lu8f3sD/uUL7DAvk31uv//Cc/aUE5fLj3d/2tR116Pw1tSTBksYG3OZZvHwTVCN vVAmeDc5QWfm//53fYW+hxi+PInnq/M/Np29fY+O1i3H30uS8mUeMJaVHs1/wP5v8s31UUWJ 518ETlONfWE2bZv8votKLMUZiYZazEXFiQB3wlveCwMAAA==
Archived-At: http://mailarchive.ietf.org/arch/msg/kitten/VIH4GQayYX2ExbkuVEAqpzzLlTY
Cc: "kitten@ietf.org" <kitten@ietf.org>, "Adamson, Andy" <William.Adamson@netapp.com>, 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: Sun, 03 Aug 2014 05:47:19 -0000
I guess I'll split my replies amongst the existing thread instead of trying to reconsolidate everything. Going in reverse order so as to try to avoid duplicating previous discussion... On Fri, 1 Aug 2014, Nico Williams wrote: > On Thu, Jul 31, 2014 at 06:38:09PM -0400, Benjamin Kaduk wrote: >> The union construct in 2.6.1 with the default case being an opaque >> is quite similar to the extensible union construct defined in >> draft-keiser-afs3-xdr-union; the only difference is that the >> encoding of the currently listed 'LABEL' and 'PRIVS' cases do not >> include a length field. It might be nice to have afs3 and nfsv4 > > They don't need to. They are struct types, and may (do) have lengths > embedded. > >> agree on a consistent type for the extensible union primitive, >> though I understand that this is unlikely to happen on the timescale >> you desire for the rpcsec-gssv3 draft. > > We should agree as to data model for this, but not necessarily as to > encoding. NFS uses XDR. I think we're talking past each other. AFS and NFS both use XDR; AFS is proposing to add a new fundamental data structure, in addition to the existing 'struct' and 'union' types. This is a union type to which additional discriminant values (and corresponding data branches) may be added without causing existing implementations to fail to decode the binary data. To do this requires that the encoded form for each branch of the union include a length field, for the length of the encoded form of the data branch. I mention it because it is equivalent to having each data branch be an opaque, whose contents are the encoded form of the "actual" data, and here the default branch is just such an opaque. >> --- > > They aren't assertions in the send of a programming language "assert". > They are the client's assertions about local conditions, which the > client and only the client can know about. The server's job is to > decide whether to accept those assertions considering all the context at > hand, including the compound authenticated principals. I understand what they are. All I am saying is that, while talking about "assertions" in this sense is normal for, e.g., SAML, it is not common in the GSS-API world. This is an observation, not an actionable statement. >> --- >> This draft makes no mention of the use of the 'critical' bit for >> structured privilege assertions, but does imply that the critical >> bit will apply to any future branches that are added to the >> rgss3_assertion_u. This strikes me as odd; at the very least it >> could say that the critical bit is ignored. (That's my reading of >> what the behavior is supposed to be, from section 2.6.1.3.) > > Criticality can always be decided by the client based on what the server > accepts, I suppose, so we could probably remove either the critical bit > or the echoing of accepted assertions in the reply. I would rather > remove the critical bit than the latter. I don't think it's quite that cut-and-dried, as I can see cases where the client should be able to make non-critical requests, but also cases where the client should ask the server to fail the RPC if the request is not fulfillable. >> --- >> Why is RPCSEC_GSS_BIND_CHANNEL marked as "not used" in the sample >> code on page 7? It is not otherwise mentioned in the draft, and the > > Dunno. It was never marked so in my draft. Andy? (This is the comment in the saple code, in the definition of enum rpc_gss_proc_t.) >> In 2.6.1.1, the following text is a little confusing: >> Thus a server may refuse to >> grant requested authority to a user acting alone (e.g., via an >> unprivileged user-space program), or to a client acting alone (e.g. >> when a client is acting on behalf of a user) but may grant requested >> authority to a client acting on behalf of a user if the server >> identifies the user and trusts the client. >> >> It makes more sense when one reads "client" to mean "in-kernel NFS >> client", but would probably be more clear if the "client is acting > > This is tricky. What's a "client"? The TCP client? The physical > hardware running it and the NFS client stack? The process running the > NFS client? Does it matter if it's in-kernel or a FUSE process, or some > micro-kernel thing? For me the only thing that matters is if it has > access to GSS credentials that the server will understand as being a > "client's" as opposed to a "user's". > > Wording this is hard, yes. > >> on behalf of a user" is reworded, possibly to "on behalf of a single >> user, using only that user's credentials). It looks like the > > That's more verbose! Yes, we need to distinguish "user with > credentials" from "user without credentials" (since identity assertions > are partly about the latter), but I think that should be clear anyways. Hmm, I was talking about the distinction between "host with credentials" and "host without credentials". Clearly there is still room for improvement :) >> "client" vs. "kernel service" distinction is fuzzy throughout the >> rest of the section, too. I would prefer if the word "client" > > We should absolutely not refer to "kernel" -- that's just an > implementation detail. Instead we should refer to a "multi-user client" > or something of the sort. I agree that we should not refer to "kernel"; this was intended as a comment about the use of the word "client" in this document and that it may not be appropriate in all the cases where it is currently used. -Ben
- [kitten] draft-ietf-nfsv4-rpcsec-gssv3: request f… Adamson, Andy
- Re: [kitten] [nfsv4] draft-ietf-nfsv4-rpcsec-gssv… J. Bruce Fields
- Re: [kitten] [nfsv4] draft-ietf-nfsv4-rpcsec-gssv… Benjamin Kaduk
- Re: [kitten] [nfsv4] draft-ietf-nfsv4-rpcsec-gssv… Benjamin Kaduk
- Re: [kitten] [nfsv4] draft-ietf-nfsv4-rpcsec-gssv… Nico Williams
- Re: [kitten] [nfsv4] draft-ietf-nfsv4-rpcsec-gssv… J. Bruce Fields
- Re: [kitten] [nfsv4] draft-ietf-nfsv4-rpcsec-gssv… Adamson, Andy
- Re: [kitten] [nfsv4] draft-ietf-nfsv4-rpcsec-gssv… Adamson, Andy
- Re: [kitten] [nfsv4] draft-ietf-nfsv4-rpcsec-gssv… Adamson, Andy
- Re: [kitten] [nfsv4] draft-ietf-nfsv4-rpcsec-gssv… Nico Williams
- Re: [kitten] [nfsv4] draft-ietf-nfsv4-rpcsec-gssv… Nico Williams
- Re: [kitten] [nfsv4] draft-ietf-nfsv4-rpcsec-gssv… Benjamin Kaduk
- Re: [kitten] [nfsv4] draft-ietf-nfsv4-rpcsec-gssv… Benjamin Kaduk
- Re: [kitten] [nfsv4] draft-ietf-nfsv4-rpcsec-gssv… Benjamin Kaduk
- Re: [kitten] [nfsv4] draft-ietf-nfsv4-rpcsec-gssv… Benjamin Kaduk
- Re: [kitten] [nfsv4] draft-ietf-nfsv4-rpcsec-gssv… Nico Williams
- Re: [kitten] [nfsv4] draft-ietf-nfsv4-rpcsec-gssv… Nico Williams
- Re: [kitten] [nfsv4] draft-ietf-nfsv4-rpcsec-gssv… Nico Williams
- Re: [kitten] [nfsv4] draft-ietf-nfsv4-rpcsec-gssv… J. Bruce Fields
- Re: [kitten] [nfsv4] draft-ietf-nfsv4-rpcsec-gssv… Adamson, Andy
- Re: [kitten] [nfsv4] draft-ietf-nfsv4-rpcsec-gssv… Nico Williams
- Re: [kitten] [nfsv4] draft-ietf-nfsv4-rpcsec-gssv… Nico Williams
- Re: [kitten] [nfsv4] draft-ietf-nfsv4-rpcsec-gssv… Adamson, Andy
- Re: [kitten] [nfsv4] draft-ietf-nfsv4-rpcsec-gssv… Benjamin Kaduk
- Re: [kitten] [nfsv4] draft-ietf-nfsv4-rpcsec-gssv… Nico Williams
- Re: [kitten] [nfsv4] draft-ietf-nfsv4-rpcsec-gssv… Nico Williams
- Re: [kitten] [nfsv4] draft-ietf-nfsv4-rpcsec-gssv… Benjamin Kaduk
- Re: [kitten] [nfsv4] draft-ietf-nfsv4-rpcsec-gssv… Nico Williams
- Re: [kitten] [nfsv4] draft-ietf-nfsv4-rpcsec-gssv… Adamson, Andy
- Re: [kitten] [nfsv4] draft-ietf-nfsv4-rpcsec-gssv… Nico Williams
- Re: [kitten] [nfsv4] draft-ietf-nfsv4-rpcsec-gssv… Nico Williams
- Re: [kitten] [nfsv4] draft-ietf-nfsv4-rpcsec-gssv… Benjamin Kaduk
- Re: [kitten] [nfsv4] draft-ietf-nfsv4-rpcsec-gssv… Benjamin Kaduk
- Re: [kitten] [nfsv4] draft-ietf-nfsv4-rpcsec-gssv… Adamson, Andy
- Re: [kitten] [nfsv4] draft-ietf-nfsv4-rpcsec-gssv… Benjamin Kaduk
- Re: [kitten] [nfsv4] draft-ietf-nfsv4-rpcsec-gssv… Nico Williams
- Re: [kitten] [nfsv4] draft-ietf-nfsv4-rpcsec-gssv… Adamson, Andy
- Re: [kitten] [nfsv4] draft-ietf-nfsv4-rpcsec-gssv… Nico Williams
- Re: [kitten] [nfsv4] draft-ietf-nfsv4-rpcsec-gssv… Adamson, Andy
- Re: [kitten] [nfsv4] draft-ietf-nfsv4-rpcsec-gssv… Nico Williams
- [kitten] rpcsec-gssv3 multi-principal authenticat… Benjamin Kaduk
- Re: [kitten] rpcsec-gssv3 multi-principal authent… Benjamin Kaduk
- Re: [kitten] [nfsv4] rpcsec-gssv3 multi-principal… Nico Williams
- Re: [kitten] rpcsec-gssv3 multi-principal authent… Adamson, Andy
- Re: [kitten] [nfsv4] rpcsec-gssv3 multi-principal… J. Bruce Fields
- Re: [kitten] [nfsv4] rpcsec-gssv3 multi-principal… Nico Williams
- Re: [kitten] [nfsv4] rpcsec-gssv3 multi-principal… J. Bruce Fields
- Re: [kitten] [nfsv4] rpcsec-gssv3 multi-principal… Benjamin Kaduk
- Re: [kitten] [nfsv4] rpcsec-gssv3 multi-principal… Nico Williams
- Re: [kitten] [nfsv4] rpcsec-gssv3 multi-principal… J. Bruce Fields
- Re: [kitten] rpcsec-gssv3 multi-principal authent… Benjamin Kaduk
- Re: [kitten] [nfsv4] rpcsec-gssv3 multi-principal… Benjamin Kaduk
- Re: [kitten] [nfsv4] rpcsec-gssv3 multi-principal… Nico Williams
- Re: [kitten] [nfsv4] rpcsec-gssv3 multi-principal… Adamson, Andy
- Re: [kitten] [nfsv4] rpcsec-gssv3 multi-principal… Nico Williams
- Re: [kitten] [nfsv4] rpcsec-gssv3 multi-principal… Adamson, Andy
- Re: [kitten] [nfsv4] draft-ietf-nfsv4-rpcsec-gssv… Benjamin Kaduk