Re: [kitten] Clarification of gss_add_cred() behavior

Benjamin Kaduk <kaduk@MIT.EDU> Fri, 20 March 2015 17:57 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 21A551A3BA3 for <kitten@ietfa.amsl.com>; Fri, 20 Mar 2015 10:57:09 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.211
X-Spam-Level:
X-Spam-Status: No, score=-4.211 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_MED=-2.3, SPF_PASS=-0.001, T_RP_MATCHES_RCVD=-0.01] 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 Tl2dDElElwGy for <kitten@ietfa.amsl.com>; Fri, 20 Mar 2015 10:57:07 -0700 (PDT)
Received: from dmz-mailsec-scanner-5.mit.edu (dmz-mailsec-scanner-5.mit.edu [18.7.68.34]) by ietfa.amsl.com (Postfix) with ESMTP id 125AD1A1A8F for <kitten@ietf.org>; Fri, 20 Mar 2015 10:57:06 -0700 (PDT)
X-AuditID: 12074422-f79cb6d000000d7b-85-550c5f7210e9
Received: from mailhub-auth-2.mit.edu ( [18.7.62.36]) (using TLS with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by dmz-mailsec-scanner-5.mit.edu (Symantec Messaging Gateway) with SMTP id BC.04.03451.27F5C055; Fri, 20 Mar 2015 13:57:06 -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 t2KHv5dd030692; Fri, 20 Mar 2015 13:57:06 -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 t2KHv31A004105 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NOT); Fri, 20 Mar 2015 13:57:05 -0400
Received: (from kaduk@localhost) by multics.mit.edu (8.12.9.20060308) id t2KHv3lg008131; Fri, 20 Mar 2015 13:57:03 -0400 (EDT)
Date: Fri, 20 Mar 2015 13:57:03 -0400
From: Benjamin Kaduk <kaduk@MIT.EDU>
To: Nico Williams <nico@cryptonector.com>
In-Reply-To: <20150320004524.GC21267@localhost>
Message-ID: <alpine.GSO.1.10.1503201355450.3953@multics.mit.edu>
References: <20150319025202.GB8099@localhost> <alpine.GSO.1.10.1503191446260.3953@multics.mit.edu> <20150319194002.GG4309@mournblade.imrryr.org> <alpine.GSO.1.10.1503191541510.3953@multics.mit.edu> <20150319195605.GM8099@localhost> <alpine.GSO.1.10.1503192019350.3953@multics.mit.edu> <20150320004524.GC21267@localhost>
User-Agent: Alpine 1.10 (GSO 962 2008-03-14)
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; charset="US-ASCII"
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFnrDIsWRmVeSWpSXmKPExsUixG6nolsUzxNq8P2MiMXRzatYLE5dO8Lm wOTx8tQ5Ro8lS34yBTBFcdmkpOZklqUW6dslcGX8nTmTseCkRMWu3qnsDYyNwl2MnBwSAiYS izY0sELYYhIX7q1n62Lk4hASWMwkcXjSMxYIZyOjxLVfT5ggnENMErufXGIEaRESaGCU6NjJ AmKzCGhLrDn9ASzOJqAiMfPNRjYQW0RAU+L6vKVgNrOAsMT6czOYuxg5OIQF7CS2TXUCCXMK 6Etc3trCDGLzCjhIHG7+zA4x/iCTxPa/IiC2qICOxOr9U1ggagQlTs58wgIxUkti+fRtLBMY BWchSc1CklrAyLSKUTYlt0o3NzEzpzg1Wbc4OTEvL7VI11QvN7NELzWldBMjOFBdlHYw/jyo dIhRgINRiYdXooI7VIg1say4MvcQoyQHk5Io78dwnlAhvqT8lMqMxOKM+KLSnNTiQ4wSHMxK Irxt7kA53pTEyqrUonyYlDQHi5I476YffCFCAumJJanZqakFqUUwWRkODiUJXq04oEbBotT0 1Iq0zJwShDQTByfIcB6g4YdjQYYXFyTmFmemQ+RPMSpKifNGgzQLgCQySvPgemGJ5BWjONAr wrw7QKp4gEkIrvsV0GAmoMH/arlABpckIqSkGhjN3x4UYd0yj7O388F8/WRfhoOliofNa0+U mbZ+vbfjqJtJuO0804zdW5j805vWe5onLTn4aKOH49EJ9nNv79c6F3RdMUv36t3K2qcnEtnu LDNZ1yw9+dfS30ceh+k8WVL/dK6+4yytCk7XqNU9fIXOe18eOHrlelLtXpHM1qsz9858sfii 87T1SizFGYmGWsxFxYkAlvIbOf8CAAA=
Archived-At: <http://mailarchive.ietf.org/arch/msg/kitten/DLO7oOTDnMywaXMcxKUn0R110kQ>
Cc: kitten@ietf.org
Subject: Re: [kitten] Clarification of gss_add_cred() behavior
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: Fri, 20 Mar 2015 17:57:09 -0000

On Thu, 19 Mar 2015, Nico Williams wrote:

> On Thu, Mar 19, 2015 at 08:20:18PM -0400, Benjamin Kaduk wrote:
> > On Thu, 19 Mar 2015, Nico Williams wrote:
> > > GSS_C_NO_NAME.  But then I can never use GSS_Add_cred() to acquire a
> > > signle-element credential, and I must always use GSS_Acquire_cred() for
> > > that (which is lame for several reasons).
> >
> > Perhaps I'm just being slow today, but could you say more about what these
> > reasons for lameness are?
>
> Sure:
>
>  - the need to construct an OID set of one OID is lame (this is easy
>    when one has only one or known-fixed-at-compile-time number of OIDs,
>    but it's still lame)
>
>  - minor_status is not associated with any mechanism per the specs,
>    though one hopes that for the one-OID case minor_status is specific
>    to that one mechanism, but if we're going to be as literal as we can
>    in reading the spec, then this point is correct and
>    GSS_Acquire_cred() is lame
>
>  - fewer informative outputs (initiator and acceptor lifetime rec)
>
>    (admittedly this one is not a big deal)
>
> The second is the real killer.  It's one of the reasons given for the
> addition of GSS_Add_cred().  And if we interpret the spec as you
> propose, we can't have this feature.  This is one reason to think that
> the spec is self-inconsistent.

Thanks.
Yeah, that definitely counts as "lame" :)

> Other reasons to think the spec is self-inconsistent:
>
>  - No information or pseudo-code or code is given showing how to
>    iteratively construct credential handles.  It probably wasn't thought
>    through.
>
>    But if the case of input_cred_handle == GSS_C_NO_CREDENTIAL &&
>    desired_name != GSS_C_NO_NAME is interpreted as I propose, then it's
>    trivial to iteratively construct a credential handle.
>
>  - It makes no sense anyways to ignore a non-default desired_name when
>    the input_cred_handle is GSS_C_NO_CREDENTIAL, not in light of the
>    fact that GSS_C_NO_NAME is how one refers to the default credential
>    in GSS_Acquire_cred() calls.
>
>  - In some places input_cred_handle is described as optional.  Well, but
>    GSS_C_NO_CREDENTIAL -> ignore desired_name means there's no real way
>    to signal "I'm not providing an input cred handle", therefore it's
>    either not optional, or the text I say is wrong is wrong.

I will need to find a chunk of time to digest all of the relevant pieces
of 2743; it may not happen until after Dallas.

> The RFC text I quoted as broken does not reflect reality for an
> implementation of the C bindings that I could check.  I don't think
> anyone is proposing to implement the text I quoted.  That leaves three
> choices:
>
>  - file an erratum
>  - publish an update
>  - do nothing (anyone who runs into this will hopefully find this thread)
>
> I will not be submitting an I-D to update the RFCs just for this.  If we
> have no consensus for an erratum, and no one else volunteers for the
> update, then it's the third choice: do nothing.

I really hope it doesn't end up as "do nothing", but time will tell.

-Ben