Re: [kitten] Clarification of gss_add_cred() behavior

Nico Williams <nico@cryptonector.com> Fri, 20 March 2015 00:45 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 222831A6F7C for <kitten@ietfa.amsl.com>; Thu, 19 Mar 2015 17:45:30 -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 6YeAcCuKKy0R for <kitten@ietfa.amsl.com>; Thu, 19 Mar 2015 17:45:29 -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 25BEF1A6F28 for <kitten@ietf.org>; Thu, 19 Mar 2015 17:45:29 -0700 (PDT)
Received: from homiemail-a113.g.dreamhost.com (localhost [127.0.0.1]) by homiemail-a113.g.dreamhost.com (Postfix) with ESMTP id EB68B20058D81; Thu, 19 Mar 2015 17:45:28 -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=+WGxNbAmVEFGVW +CTOyig8Eohi8=; b=OZDXv/q1Zj6mn/HxrZC2nAeBV/ABkUWNA7jrd4N+g2EJkU aJT8ouVYzw4JvWvu3+7hU9M3wF72MXudbgQz8u+XTFjqZ2C4lS0ufVAV1F47F8m8 BTm6yiLngaH3VAUts3UvCQzozJaQfp9A3eYYXfRKORyX85sOKbLT4Dw7c8a9M=
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 AB7D32005CF2E; Thu, 19 Mar 2015 17:45:28 -0700 (PDT)
Date: Thu, 19 Mar 2015 19:45:25 -0500
From: Nico Williams <nico@cryptonector.com>
To: Benjamin Kaduk <kaduk@MIT.EDU>
Message-ID: <20150320004524.GC21267@localhost>
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>
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Disposition: inline
In-Reply-To: <alpine.GSO.1.10.1503192019350.3953@multics.mit.edu>
User-Agent: Mutt/1.5.21 (2010-09-15)
Archived-At: <http://mailarchive.ietf.org/arch/msg/kitten/81U3UQmoTEgyBbOUv-ResaaFp4Q>
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 00:45:30 -0000

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.

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.

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.

Nico
--