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

Benjamin Kaduk <kaduk@MIT.EDU> Thu, 31 July 2014 23:10 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 D64D31A02CF; Thu, 31 Jul 2014 16:10:27 -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 mEmDrr7y4NcM; Thu, 31 Jul 2014 16:10:24 -0700 (PDT)
Received: from dmz-mailsec-scanner-1.mit.edu (dmz-mailsec-scanner-1.mit.edu [18.9.25.12]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 90A371A01FF; Thu, 31 Jul 2014 16:10:24 -0700 (PDT)
X-AuditID: 1209190c-f79ef6d000005dd6-c7-53daccdf63ce
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-1.mit.edu (Symantec Messaging Gateway) with SMTP id F6.A0.24022.FDCCAD35; Thu, 31 Jul 2014 19:10:23 -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 s6VNAL2u027595; Thu, 31 Jul 2014 19:10:21 -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 s6VNAJVB016002 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NOT); Thu, 31 Jul 2014 19:10:20 -0400
Received: (from kaduk@localhost) by multics.mit.edu (8.12.9.20060308) id s6VNAILP005518; Thu, 31 Jul 2014 19:10:18 -0400 (EDT)
Date: Thu, 31 Jul 2014 19:10:18 -0400
From: Benjamin Kaduk <kaduk@MIT.EDU>
To: "J. Bruce Fields" <bfields@fieldses.org>
In-Reply-To: <20140730163006.GG26316@fieldses.org>
Message-ID: <alpine.GSO.1.10.1407311902230.21571@multics.mit.edu>
References: <DC941FEB-725A-49E1-8C38-FF765454827C@netapp.com> <20140730163006.GG26316@fieldses.org>
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+NgFvrNIsWRmVeSWpSXmKPExsUixG6nonv/zK1ggzMXRS1eTImyOLp5FYvF 7PePWC2mL7JyYPHYMLWJzWPJkp9MHjM+fWELYI7isklJzcksSy3St0vgytg6+TlLwVKpiqfn pzA2MP4V6WLk5JAQMJFY9PcMI4QtJnHh3nq2LkYuDiGB2UwS8yb0MkI4GxklGrZOhMocYpL4 cbUDymlglGg+dwGsn0VAW6LtcxMziM0moCIx881GNhBbREBHYsPnd0wgNrNAmUT3tHZWEFtY wE2i+dUvsHpOASOJt01TwGxeAUeJq/M+gM0UEkiWmHCuDaxXFGjO6v1TWCBqBCVOznzCAjHT UuLcn+tsExgFZyFJzUKSWsDItIpRNiW3Sjc3MTOnODVZtzg5MS8vtUjXUC83s0QvNaV0EyMo jDkleXYwvjmodIhRgINRiYd3RvitYCHWxLLiytxDjJIcTEqivImHgUJ8SfkplRmJxRnxRaU5 qcWHGCU4mJVEeAu2AuV4UxIrq1KL8mFS0hwsSuK8b62tgoUE0hNLUrNTUwtSi2CyMhwcShK8 O08DNQoWpaanVqRl5pQgpJk4OEGG8wAN5zoDMry4IDG3ODMdIn+KUVFKnLcQpFkAJJFRmgfX C0szrxjFgV4R5uUEaecBpii47ldAg5mABj+/dR1kcEkiQkqqgVE+jsn+WP41/961Jz6t35oZ kZLAeFJ7xYnw7ZqODX1MUvGKMbInvzhq5ufKJ8g9kmX2ZYvRSw7bPO/qif9f9fyCu77bMb2q +uMjkRJT3th3jXOt1E9TkTVT1Ff4nOL4s8kr+GoVh/+q6+se/+IsXPn2yUpVx5T38tu1XzIs vB8hsOXNhw0btiqxFGckGmoxFxUnAgDBUj0qDgMAAA==
Archived-At: http://mailarchive.ietf.org/arch/msg/kitten/1ndbKFCSZ1dNabD4TpZt_HNhZX0
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: Thu, 31 Jul 2014 23:10:28 -0000

On Wed, 30 Jul 2014, J. Bruce Fields wrote:

> On Wed, Jul 30, 2014 at 02:47:44PM +0000, Adamson, Andy wrote:
>> Hello
>>
>> I spoke with Shawn Emery (the Kitten WG Chair) last week at IETF 90, and he agreed that I should cross-post the RPCSEC_GSSv3 draft to the Kitten WG as well as to the NFSv4 WG to solicit reviews.  Please review the draft which adds two new RPCSEC GSS operations and is a normative reference to draft-ietf-nfsv4-minorversion2.
>>
>> As we are working to finish draft-ietf-nfsv4-minorversion2 , please submit your reviews by Aug 31, 2014.
>>
>> https://datatracker.ietf.org/doc/draft-ietf-nfsv4-rpcsec-gssv3
>
> I'm confused by multi-principal authentication:

Ah, good, it's not just me.
Sorry I didn't catch this before sending my giant pile of comments.

> The RPCSEC_GSS_CREATE request should demonstrate that the caller knows
> both parent and child's credentials.  That's easy for the parent since
> an RPCSEC_GSS_CREATE request is also just an ordinary RPCSEC_GSS request
> sent as the parent.
>
> For the child the caller has to calculate the mic of a nonce using the
> child context, but as far as I can tell the choice of nonce is entirely
> up to the caller.
>
> Couldn't it then just choose as the nonce some data that it had
> previously seen a mic for?  If so, would it work to remove the nonce and
> instead calculate, say, a mic of the rpc header (as we do when
> calculating the verifier?).

Certainly it would help to include (something with) the sequence number, 
as a proof of "liveness".  We may have to brainstorm a bit.

> I'm not sure about the reply either:
>
> 	On a successful reply, the rgss3_gss_mp_auth field in the
> 	rgss3_create_res reply uses the parent RPCSEC_GSSv3 context as
> 	the rgmp_handle, the same rgmp_nounce as was sent in the call
> 	data with the rgmp_nounce_mic created using the GSS-API security
> 	context associate with the parent handle.  Verification of the
> 	rbg_nounce_mic by the initiator demonstrates that the target
> 	agrees to the multi-principal authentication.
>
> "The target" here is ambiguous.  The reply is already authenticated as
> the parent, the problem again is authenticating as the child, so I think
> it should be calculating a mic using the child context (maybe over the
> header data again, as in section 2.3?).

In some sense at least, the server "owns" all the resources on it.  It 
could choose to hand out a user's data to the whole world if it felt like 
it, but we have to trust that it will not.  In particular, the server 
could decline to validate the nonce-MIC at all, and grant access to anyone 
who claimed to be the user; we must trust that it does the verification 
properly.  (A proper verification confirms that the server does have a 
valid context handle for the inner context.)  In that sense, this reply is 
just serving as a confirmation that the server accepts the 
multi-authentication claim, and a simple boolean would have the same 
effect, so long as it is authenticated.

Labels and MAC make this more interesting than the oversimplified picture 
I just painted, of course, and I agree that this exchange has room for 
improvement.

> (Also, note the draft uses at least "nonce", "nounc", and "nounce", a
> spellcheck would help here.)

Thank you for saying it :)

-Ben