Re: Impact of a new GSS mech on applications

Nicolas Williams <Nicolas.Williams@sun.com> Fri, 20 March 2009 16:19 UTC

Return-Path: <Nicolas.Williams@sun.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 059563A6969 for <kitten@core3.amsl.com>; Fri, 20 Mar 2009 09:19:15 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -5.681
X-Spam-Level:
X-Spam-Status: No, score=-5.681 tagged_above=-999 required=5 tests=[AWL=0.365, BAYES_00=-2.599, HELO_MISMATCH_COM=0.553, 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 VfrBS2oP0BnG for <kitten@core3.amsl.com>; Fri, 20 Mar 2009 09:19:14 -0700 (PDT)
Received: from brmea-mail-1.sun.com (brmea-mail-1.Sun.COM [192.18.98.31]) by core3.amsl.com (Postfix) with ESMTP id BDBFE3A6BB7 for <kitten@ietf.org>; Fri, 20 Mar 2009 09:19:13 -0700 (PDT)
Received: from dm-central-01.central.sun.com ([129.147.62.4]) by brmea-mail-1.sun.com (8.13.6+Sun/8.12.9) with ESMTP id n2KGJxE2000175 for <kitten@ietf.org>; Fri, 20 Mar 2009 16:19:59 GMT
Received: from binky.Central.Sun.COM (binky.Central.Sun.COM [129.153.128.104]) by dm-central-01.central.sun.com (8.13.8+Sun/8.13.8/ENSMAIL, v2.2) with ESMTP id n2KGJxWt055705 for <kitten@ietf.org>; Fri, 20 Mar 2009 10:19:59 -0600 (MDT)
Received: from binky.Central.Sun.COM (localhost [127.0.0.1]) by binky.Central.Sun.COM (8.14.3+Sun/8.14.3) with ESMTP id n2KGAm7i000090; Fri, 20 Mar 2009 11:10:48 -0500 (CDT)
Received: (from nw141292@localhost) by binky.Central.Sun.COM (8.14.3+Sun/8.14.3/Submit) id n2KGAmjG000089; Fri, 20 Mar 2009 11:10:48 -0500 (CDT)
X-Authentication-Warning: binky.Central.Sun.COM: nw141292 set sender to Nicolas.Williams@sun.com using -f
Date: Fri, 20 Mar 2009 11:10:48 -0500
From: Nicolas Williams <Nicolas.Williams@sun.com>
To: Josh Howlett <Josh.Howlett@ja.net>
Subject: Re: Impact of a new GSS mech on applications
Message-ID: <20090320161048.GJ9992@Sun.COM>
References: <6ED388AA006C454BA35B0098396B9BFB04F43CCF@uxsrvr20.atlas.ukerna.ac.uk>
Mime-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Disposition: inline
In-Reply-To: <6ED388AA006C454BA35B0098396B9BFB04F43CCF@uxsrvr20.atlas.ukerna.ac.uk>
User-Agent: Mutt/1.5.7i
Cc: kitten@ietf.org
X-BeenThere: kitten@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
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: Fri, 20 Mar 2009 16:19:15 -0000

On Fri, Mar 20, 2009 at 11:49:17AM +0000, Josh Howlett wrote:
> I understand that a GSS caller can either use a default mechanism, or
> stipulate that a particular mechanism is used.
> 
> From an application's PoV, what are the implications if a new mechanism
> appears on the system?

Acceptor applications are not affected.

For initiator applications:

 - If the application uses a specific mechanism: no impact.

 - If the application negotiates mechanisms: it depends.

   If the new mechanism is anything like SPNEGO, then it's important
   that the application not negotiate it.

   If the new mechanism does not provide per-message tokens but the
   application expects whatever mechanism it negotiates to provide
   per-message tokens then it's important that the application not
   negotiate it.

   Here it'd be useful to have APIs by which to find out about mechanism
   attributes like "is a mechanism-negotiation mechanism like SPNEGO,"
   and "supports wrap tokens" and so on.  In fact, there's an I-D for
   this: draft-ietf-kitten-extended-mech-inquiry-04.txt.

 - If the application uses the default mechanism: it depends on how the
   mechglue selects the default mechanism.

   For example, the Solaris libgss is very dumb about this: it uses the
   first mechanism listed in /etc/gss/mech.

   A better default mechanism selection would be: the first mechanism
   listed in /etc/gss/mech.mechanism listed in /etc/gss/mech for which
   there are initiator credentials.

> For example, it seems to me (speaking from a positive of significant
> ignorance about GSS) that an application might want impose a common
> policy on certain features of GSS-API (anonymity, delegation) across all
> mechanisms. However, it also seems that some mechanism-specific policy
> might be needed (which mechanisms are permitted, quality of protection,
> security services).

Yes.

> I am curious how contemporary applications deal with this.

If they have such needs then they either fail if they negotiate a new
mechanism that does not meet those needs, or they must be updated to
blacklist such new mechanisms.

Thus draft-ietf-kitten-extended-mech-inquiry-04.txt.

Nico
--