Re: [TLS] RESOLVED (Re: [sasl] lasgt call comments (st Call:

Martin Rex <> Mon, 02 November 2009 16:48 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id 0ACB228C129; Mon, 2 Nov 2009 08:48:28 -0800 (PST)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -6.183
X-Spam-Status: No, score=-6.183 tagged_above=-999 required=5 tests=[AWL=0.066, BAYES_00=-2.599, HELO_EQ_DE=0.35, RCVD_IN_DNSWL_MED=-4]
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id Fbkr8vx-B1p6; Mon, 2 Nov 2009 08:48:27 -0800 (PST)
Received: from ( []) by (Postfix) with ESMTP id DE27C28C0ED; Mon, 2 Nov 2009 08:48:26 -0800 (PST)
Received: from by (26) with ESMTP id nA2GmiQQ020042 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Mon, 2 Nov 2009 17:48:44 +0100 (MET)
From: Martin Rex <>
Message-Id: <>
Date: Mon, 02 Nov 2009 17:48:44 +0100
In-Reply-To: <20091030223647.GO1105@Sun.COM> from "Nicolas Williams" at Oct 30, 9 05:36:48 pm
MIME-Version: 1.0
Content-Type: text/plain; charset="ISO-8859-1"
Content-Transfer-Encoding: 8bit
X-Scanner: Virus Scanner virwal05
X-SAP: out
Subject: Re: [TLS] RESOLVED (Re: [sasl] lasgt call comments (st Call:
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: "This is the mailing list for the Transport Layer Security working group of the IETF." <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Mon, 02 Nov 2009 16:48:28 -0000

Nicolas Williams wrote:
> Another problem that Larry has is that in his implementation what I call
> a "TLS connection" is called a "security context", and if the
> application re-handshakes (e.g., to authenticate a user) then the result
> is a second security context -- we need to be extra clear that it's the
> client Finished message from the _first_ "security context" that we're
> after.

Microsoft's implementation (which could be the one referred to by
Larry's implementation) has a silly design flaw in its TLS renogiation,
and I'm not sure that the previous text is a way to fix it.

It is possible to configure Microsoft IIS in a fashion so that it
will first perform a TLS handshake with a server-only authentication,
and after having received the HTTP request, it will re-negotiate and
ask for a client certificate.

In the ClientHello, the client will send no TLS session ID (since
the purpose is renegotiation -- aka a full TLS handshake.
Microsoft IIS will send back a ServerHello with an entirely new
TLS session ID.  In my TLS clients, I will drop TLS sessions
from the client-side cache for which the server asks for
re-negotiation (actually replace them with the resulting
renegotiated TLS session).

Unfortunately, this doesn't save a TLS handshake on the next
connect, Microsoft IIS will force another renegotiation when
that re-negotiated session is resumed, resulting in yet
another new TLS session.

>From my experience, it is possible to TLS resume both, the original
and the renegotiated session when Microsoft IIS is the server,
and it will force through re-negotiation on both.  So an IIS
configured like that will artificially inflate its server-side
session cache and impose unnecessary re-negotiations on
the TLS client and on itself.

And btw. Channel Binding at the application layer and
transparent TLS-session renegotiation at the TLS layer appear
somewhere between hard-to-do and mutually exclusive--in case
that the TLS session renegotiation happens totally transparent
to the application.