Re: [TLS] Negotiation in draft-santesson-tls-gssapi

Martin Rex <Martin.Rex@sap.com> Thu, 19 July 2007 00:35 UTC

Return-path: <tls-bounces@lists.ietf.org>
Received: from [127.0.0.1] (helo=stiedprmman1.va.neustar.com) by megatron.ietf.org with esmtp (Exim 4.43) id 1IBJzf-0000Fq-I9; Wed, 18 Jul 2007 20:35:47 -0400
Received: from [10.91.34.44] (helo=ietf-mx.ietf.org) by megatron.ietf.org with esmtp (Exim 4.43) id 1IBJze-0000Fl-UL for tls@ietf.org; Wed, 18 Jul 2007 20:35:46 -0400
Received: from smtpde03.sap-ag.de ([155.56.68.140]) by ietf-mx.ietf.org with esmtp (Exim 4.43) id 1IBJzd-0004FQ-JG for tls@ietf.org; Wed, 18 Jul 2007 20:35:46 -0400
Received: from sap-ag.de (smtpde03) by smtpde03.sap-ag.de (out) with ESMTP id CAA16102; Thu, 19 Jul 2007 02:35:42 +0200 (MESZ)
From: Martin Rex <Martin.Rex@sap.com>
Message-Id: <200707190035.l6J0ZgoV001472@fs4113.wdf.sap.corp>
Subject: Re: [TLS] Negotiation in draft-santesson-tls-gssapi
To: Nicolas.Williams@sun.com
Date: Thu, 19 Jul 2007 02:35:42 +0200
In-Reply-To: <20070718225633.GR24645@Sun.COM> from "Nicolas Williams" at Jul 18, 7 05:56:34 pm
MIME-Version: 1.0
Content-Type: text/plain; charset="ISO-8859-1"
Content-Transfer-Encoding: 8bit
X-SAP: out
X-SAP: out
X-Spam-Score: -4.0 (----)
X-Scan-Signature: b4a0a5f5992e2a4954405484e7717d8c
Cc: tls@ietf.org
X-BeenThere: tls@lists.ietf.org
X-Mailman-Version: 2.1.5
Precedence: list
Reply-To: martin.rex@sap.com
List-Id: "This is the mailing list for the Transport Layer Security working group of the IETF." <tls.lists.ietf.org>
List-Unsubscribe: <https://www1.ietf.org/mailman/listinfo/tls>, <mailto:tls-request@lists.ietf.org?subject=unsubscribe>
List-Archive: <http://www1.ietf.org/pipermail/tls>
List-Post: <mailto:tls@lists.ietf.org>
List-Help: <mailto:tls-request@lists.ietf.org?subject=help>
List-Subscribe: <https://www1.ietf.org/mailman/listinfo/tls>, <mailto:tls-request@lists.ietf.org?subject=subscribe>
Errors-To: tls-bounces@lists.ietf.org

Nicolas Williams wrote:
> 
> If this protocol will not provide a way for the server to tell the
> client what GSS-API mechanisms it supports or any other GSS-API
> mechanism negotiation facility then I think the server MUST support
> SPNEGO, else the client and server have to agree a priori on what mechs
> to use.

While thinking a little longer about SPNEGO a number of problems
come to mind.

A common mechanism OID between initiator and acceptor only means
that they will be able to parse each other GSS-API tokens,
it does by no way mean that authentication will work.

How common is it that companies (ultimately two rival companies)
have mutual trust configured between their company-internal
Kerberos realms and maintain each others Kerberos principals names
on their ACLs?

Think about login to a public internet-accessible Web-Server for
customers, partners, friends, interested parties and even rivals
with product information and discussion forums.

We DO use our PKI-based company-internal Single Sign-On infrastructure
to login to our public Web-Servers, and we do issue SSL client certs
to customers and partners for login as well.  password-based logon
is possible as well.

If we didn't have PKI-based Single Sign-On, but instead kerberos
or gssapi-based logon and also our partners had that, and both
of us had gssapi-over-tls authentication enable in our browsers,
then we would have the situation that SSO works for us and
constantly fails if only the "common mechanism" selection
of SPNEGO would be available.

Trying to "poll" for suitable gssapi mechanism by calling
gss_init_sec_context() for every gssapi mechanism feeding
the intended www@target.f.q.d.n when compiling the mechanism OID
list for SPNEGO is not a good idea.  There are gssapi mechanisms
that interactively prompt for a password for each and every
credential access (incurred by gss_init_sec_context()) and which
check/verify the target name only on receipt of the second token,
which could result in 40 password-popups for a single Web-Page
with 39 embedded frames,gifs,css and js...


When supporting virtual hosts in a fashion as I have depicted
in a previous message, then this issue could be easily solved
by configuration.  Assign a seperate hostname for company-internal
usage that will be sent by the client browser with gssapi-over-tls
extension and configure it with a virtual-host specific mechanism
list for the hello-extension negotiation.  Do not list Kerberos
on the "externally facing" virtual host -- problem solved.

Another potentially beneficial feature for developers:
I can set up a single Web-Server, configure it with several
different virtual hosts and individual mechanism lists,
so that I can perform interoperability tests between browser
and server for all gssapi mechanism just by suppling a
particular URL, without having to reconfigure and restart
client or server.



-Martin

_______________________________________________
TLS mailing list
TLS@lists.ietf.org
https://www1.ietf.org/mailman/listinfo/tls