Re: [kitten] rpcsec-gssv3 multi-principal authentication
"Adamson, Andy" <William.Adamson@netapp.com> Wed, 03 September 2014 16:35 UTC
Return-Path: <William.Adamson@netapp.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 201591A0077; Wed, 3 Sep 2014 09:35:12 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -7.57
X-Spam-Level:
X-Spam-Status: No, score=-7.57 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_HI=-5, RP_MATCHES_RCVD=-0.668, SPF_HELO_PASS=-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 ZZMV-QOeWZe8; Wed, 3 Sep 2014 09:35:09 -0700 (PDT)
Received: from mx12.netapp.com (mx12.netapp.com [216.240.18.77]) (using TLSv1 with cipher RC4-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 8BE4E1A0004; Wed, 3 Sep 2014 09:35:09 -0700 (PDT)
X-IronPort-AV: E=Sophos;i="5.04,458,1406617200"; d="scan'208";a="186077895"
Received: from hioexcmbx06-prd.hq.netapp.com ([10.122.105.39]) by mx12-out.netapp.com with ESMTP; 03 Sep 2014 09:35:07 -0700
Received: from HIOEXCMBX08-PRD.hq.netapp.com (10.122.105.41) by hioexcmbx06-prd.hq.netapp.com (10.122.105.39) with Microsoft SMTP Server (TLS) id 15.0.913.22; Wed, 3 Sep 2014 09:34:57 -0700
Received: from HIOEXCMBX08-PRD.hq.netapp.com ([::1]) by hioexcmbx08-prd.hq.netapp.com ([fe80::3405:c28f:f61a:e768%21]) with mapi id 15.00.0913.011; Wed, 3 Sep 2014 09:34:45 -0700
From: "Adamson, Andy" <William.Adamson@netapp.com>
To: Benjamin Kaduk <kaduk@MIT.EDU>
Thread-Topic: rpcsec-gssv3 multi-principal authentication
Thread-Index: AQHPvIu/oTjXtXsIRU6yu54YN8rMk5vunpMAgAGHnoA=
Date: Wed, 03 Sep 2014 16:34:45 +0000
Message-ID: <7F59B011-C2A7-4222-80A9-5FDC49901145@netapp.com>
References: <DC941FEB-725A-49E1-8C38-FF765454827C@netapp.com> <20140730163006.GG26316@fieldses.org> <alpine.GSO.1.10.1407311902230.21571@multics.mit.edu> <9BF7E3EA-59DB-4B91-A27A-659790AED727@netapp.com> <alpine.GSO.1.10.1408030153400.21571@multics.mit.edu> <alpine.GSO.1.10.1408201123060.21571@multics.mit.edu> <alpine.GSO.1.10.1409021306240.21571@multics.mit.edu>
In-Reply-To: <alpine.GSO.1.10.1409021306240.21571@multics.mit.edu>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.1874)
x-originating-ip: [10.122.56.79]
Content-Type: text/plain; charset="Windows-1252"
Content-ID: <E521F541AB023B49A2F1F51AB3AAB9C2@hq.netapp.com>
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
Archived-At: http://mailarchive.ietf.org/arch/msg/kitten/kyrHzh3kThGb_GTX6WSKdL7OQDw
Cc: "kitten@ietf.org" <kitten@ietf.org>, "Adamson, Andy" <William.Adamson@netapp.com>, NFSv4 <nfsv4@ietf.org>
Subject: Re: [kitten] rpcsec-gssv3 multi-principal authentication
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: Wed, 03 Sep 2014 16:35:12 -0000
On Sep 2, 2014, at 1:13 PM, Benjamin Kaduk <kaduk@MIT.EDU> wrote: > It would be nice if someone could confirm or contradict my conclusion that > the triple of (opaque inner handle, nonce, mic) is a bearer token for > performing multi-principal authentication. > > -Ben Hi Ben Vacation. Thanks for the review. Comments inline... > > On Wed, 20 Aug 2014, Benjamin Kaduk wrote: > >> I'm starting a new thread for this, since I think it is the most important >> item revealed by my review, but it seems to have been lost amidst the >> other discussions. >> >> On Sun, 3 Aug 2014, Benjamin Kaduk wrote: >> >>> On Fri, 1 Aug 2014, Adamson, Andy wrote: >>> >>>> >>>> I have always thought of Multi-principal authentication in terms of it’s use >>>> in NFSv4.2 Inter server to server copy, where all of the RPCSEC_GSS_CREATE >>>> messages MUST use rpc_gss_svc_privacy’…. Good catch Bruce. >>>> >>>> So for this attack to occur the rgmp_nonce must be re-used by the same >>>> rgmp_handle (same user-principal). Insisting on using a random number >>>> generator to create nounce could be by-passed by a bad implementation... >>>> >>>> Bruces suggestion of using the new reply verifier data (rpc-header) should >>>> do the trick. Any objections to this approach? >> >> I don't think I correctly understand this proposal. Can someone try to >> explain it in more detail, please? >> >>> If I understand correctly, the child RPCSEC contex handle will use the same >>> GSS context as the parent RPCSEC context handle (i.e., using the host's >>> credentials, not the user's credentials). This means that when creating the >>> child RPCSEC context, there must be some proof that the RPC client controls >>> the GSS context corresponding to the inner RPCSEC context handle, since the >>> child RPCSEC context will perform operations acting as the user specified by >>> the GSS context of the inner RPCSEC context. >>> >>> My reading of the current draft is that the only attempt to do this is by >>> presenting a random nonce and a GSS_GetMIC of that nonce, created using the >>> GSS context of the inner RPCSEC context. The server must verify that the MIC >>> is a valid mic, but I do not see any other binding to this GSS context. In >>> particular, the nonce+MIC could be eavesdropped on the wire, and inserted into >>> an attacker's RPCSEC_GSS_CREATE call, where the attacker provides its own >>> parent RPCSEC context draft-08 section 2.6.1.1. Multi-principal Authentication RPCSEC_GSSv3 clients MAY assert a multi-principal authentication of the client host principal and a user principal. This feature is needed, for example, when a client wishes to use authority assertions that the server may only grant if a user and a client are authenticated together to the server. 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 is assumed that an unprivileged user-space program would not have access to client host credentials needed to establish a GSS-API security context authenticating the client to the server, therefore an unprivileged user-space program could not create an RPCSEC_GSSv3 RPCSEC_GSS_CREATE message that successfully binds a client and a user security context. I believe the above last paragraph addresses this issue. Do we need to make this section stronger, or perhaps clarify? Indeed, an attacker that has it’s own parent RPCSEC context ( e.g. a proveable client machine-credential context ) can have her way. This is nothing new as an attacker with such a context has ‘root’ for that machine in the RPCSEC world and can do a whole bunch of mischief :) That said, I suppose we could replace the nonce with the RPCSEC_GSS_CREATE reply verifier data and prevent such an attacker from acting on behalf of a user. —>Andy >>> but does not actually have an inner context at all. The >>> attacker can reuse the valid nonce+MIC that it has intercepted, which will >>> validate correctly on the server, and the server will issue a child RPCSEC >>> context that acts as the user indicated by the GSS context of the inner RPCSEC >>> context but uses the key material from the attacker's GSS context. >> >> Basically, my reading is that the triple of (opaque inner handle, nonce, >> mic) is a bearer token that is valid as long as the inner rpcsec context >> is valid, as specified in the -08. The inner handle is only used to >> lookup the GSS security context to use to verify the MIC of the nonce, so >> if all three are passed together, there is no binding to anything else >> that I can see. >> >> An attacker who gets a copy of this bearer token could then use it to >> create its own child context from a parent context that the attacker >> controls, and perform actions as the user corresponding to the GSS >> security context of the inner context handle. >> >> -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