Re: KITTEN: IETF 75 - 76

Martin Rex <Martin.Rex@sap.com> Thu, 20 August 2009 15:10 UTC

Return-Path: <Martin.Rex@sap.com>
X-Original-To: kitten@core3.amsl.com
Delivered-To: kitten@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 0E8BF3A6CD6 for <kitten@core3.amsl.com>; Thu, 20 Aug 2009 08:10:01 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -5.817
X-Spam-Level:
X-Spam-Status: No, score=-5.817 tagged_above=-999 required=5 tests=[AWL=0.432, BAYES_00=-2.599, HELO_EQ_DE=0.35, RCVD_IN_DNSWL_MED=-4]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 5PignUjBLsLn for <kitten@core3.amsl.com>; Thu, 20 Aug 2009 08:10:00 -0700 (PDT)
Received: from smtpde03.sap-ag.de (smtpde03.sap-ag.de [155.56.68.140]) by core3.amsl.com (Postfix) with ESMTP id EA71C3A6BD5 for <kitten@ietf.org>; Thu, 20 Aug 2009 08:09:59 -0700 (PDT)
Received: from mail.sap.corp by smtpde03.sap-ag.de (26) with ESMTP id n7KF9M1o018298 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Thu, 20 Aug 2009 17:09:22 +0200 (MEST)
From: Martin Rex <Martin.Rex@sap.com>
Message-Id: <200908201509.n7KF9JVH010226@fs4113.wdf.sap.corp>
Subject: Re: KITTEN: IETF 75 - 76
To: Nicolas.Williams@sun.com
Date: Thu, 20 Aug 2009 17:09:19 +0200
In-Reply-To: <20090819202914.GI1043@Sun.COM> from "Nicolas Williams" at Aug 19, 9 03:29:14 pm
MIME-Version: 1.0
Content-Type: text/plain; charset="ISO-8859-1"
Content-Transfer-Encoding: 8bit
X-Scanner: Virus Scanner virwal06
X-SAP: out
Cc: kitten@ietf.org, Shawn.Emery@sun.com, Martin.Rex@sap.com
X-BeenThere: kitten@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
Reply-To: martin.rex@sap.com
List-Id: Common Authentication Technologies - Next Generation <kitten.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/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, 20 Aug 2009 15:10:01 -0000

Nicolas Williams wrote:
> > > 
> > > Sure.  An iterator following the same design principles as
> > > gss_display_status() would look like:
> > > 
> > > OM_unit32 gss_list_default_cred_names(
> > > 	OM_uint32 *minor_status,
> > > 	gss_name_t  *name,
> > > 	int	    *more
> > > );
> > 
> > That call looks somewhat restricted to me.
> 
> It is.  It should be sufficient however.  (Here name would be an MN.)

An MN means that it refers to a singular identity/name in one
particular namespace, it does _not_ imply a single mechanism (oid) only.

A Kerberos principal is going to be an MN for the rfc1964/rfc4121 mech OID,
for the pre-rfc1964 mechoid and for the IAKERB mechoid.

But I would NOT want to require the name to be an MN here!

> 
> If you care about specific mechs you could then call gss_add_cred() with
> each name output by gss_list_default_cred_names() and inquire the
> result.

gss_add_cred() is completely broken by design (unfortunately it was
too late in the process when I complained about this brokenness).

gss_add_cred() can only add components, and it begins either with
a default credential (one that gss_acquire_cred() would create when
given a GSS_C_NO_OID_SET list of mechanism OIDs), or with an
explicitly supplied credential.

So if you want to create a credential with a single mech_oid,
you can NOT use gss_add_cred() for that purpose, you MUST use
gss_acquire_cred() with a gss_OID_set containing that one mech_oid
instead.


> 
> > How about something like this:
> > 
> > OM_uint32 gss_list_default_cred_names(
> > 	OM_uint32    * minor_status,
> > 	gss_name_t   * name,
> > 	gss_OID_set  * mech_oids,
> > 	int          * is_default,
> > 	OM_uint32    * cred_context
> > );
> 
> What's "cred_context"?  Would that correspond to the 'more' argument in
> my variant?

Yup.  similar to rfc-2744 definition of gss_display_status, where
there is a "OM_uint32 * message context" parameter. 


> 
> But yes, it'd be quite useful (though not strictly necessary) to output
> a mech OID set and is_default.  As long as only mech OIDs that are all
> in the same family (and therefore have the same MN/exported name token
> forms) are allowed to appear in mech_oids.

I do not want to require that the returned name is an MN (because this
would take away the possibility for the gssapi mechanism to select/negotiate
the best common mechanism and _require_ the user to perform an a-priori
conscious selection.

Thinking about it, I would actually want to add two more function
parameters:
       OM_uint32    * lifetime,
       gss_bufFer_t   descriptive_message,


to allow application writer to show additional information in
selection UIs that they show to users.  :)


-Martin