Re: [TLS] HTTPS client-certificate-authentication in browsers

Anders Rundgren <anders.rundgren@telia.com> Tue, 26 July 2011 19:54 UTC

Return-Path: <anders.rundgren@telia.com>
X-Original-To: tls@ietfa.amsl.com
Delivered-To: tls@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id CB56311E80A6 for <tls@ietfa.amsl.com>; Tue, 26 Jul 2011 12:54:31 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -3.28
X-Spam-Level:
X-Spam-Status: No, score=-3.28 tagged_above=-999 required=5 tests=[AWL=-0.281, BAYES_00=-2.599, J_CHICKENPOX_62=0.6, RCVD_IN_DNSWL_LOW=-1]
Received: from mail.ietf.org ([64.170.98.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id EW1cWQk-1-sF for <tls@ietfa.amsl.com>; Tue, 26 Jul 2011 12:54:30 -0700 (PDT)
Received: from smtp-out11.han.skanova.net (smtp-out11.han.skanova.net [195.67.226.200]) by ietfa.amsl.com (Postfix) with ESMTP id 8B4C211E8094 for <tls@ietf.org>; Tue, 26 Jul 2011 12:54:30 -0700 (PDT)
Received: from [192.168.0.202] (81.232.44.37) by smtp-out11.han.skanova.net (8.5.133) (authenticated as u36408181) id 4D6512CA035070FF; Tue, 26 Jul 2011 21:54:28 +0200
Message-ID: <4E2F1B65.2080404@telia.com>
Date: Tue, 26 Jul 2011 21:54:13 +0200
From: Anders Rundgren <anders.rundgren@telia.com>
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.18) Gecko/20110616 Thunderbird/3.1.11
MIME-Version: 1.0
To: mrex@sap.com
References: <201107261911.p6QJB3Dv011457@fs4113.wdf.sap.corp>
In-Reply-To: <201107261911.p6QJB3Dv011457@fs4113.wdf.sap.corp>
X-Enigmail-Version: 1.1.1
Content-Type: text/plain; charset="ISO-8859-1"
Content-Transfer-Encoding: 7bit
Cc: tls@ietf.org
Subject: Re: [TLS] HTTPS client-certificate-authentication in browsers
X-BeenThere: tls@ietf.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: "This is the mailing list for the Transport Layer Security working group of the IETF." <tls.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/tls>, <mailto:tls-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/tls>
List-Post: <mailto:tls@ietf.org>
List-Help: <mailto:tls-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/tls>, <mailto:tls-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 26 Jul 2011 19:54:31 -0000

Martin,
You have a rather elitist way of discussing things.

It actually quite hard writing an HTTPS CCA based web app that
has similar login and session characteristics as one using password
authentication.

In your opinion this is an advantage; in my world it represents a
hurdle for adoption.

Anyway, banks are investing huge in app-level PKI authentication
so there is apparently a huge ignorant crow out there.  The there
are some really interesting differences in path building (which of
course is NOT specified at all by TLS) that for example have forced
people importing immediate CAs to PC before being able to login
using a smart card.

It is absolutely clear that the browser and server vendors have no
intention whatsoever cooperating.

Anders

On 2011-07-26 21:11, Martin Rex wrote:
> Anders Rundgren wrote:
>>
>> On 2011-07-26 01:51, Martin Rex wrote:
>>>
>>> Anders Rundgren wrote:
>>>>
>>>> I don't believe that TLS CCA (Client Certificate Authentication) in the
>>>> form of HTTPS as implemented in current browsers has much of a future.
>>>
>>> It works perfectly fine and we've been using it >10 years for
>>> all of our intranet (50.000 employees these days) web servers
>>> accessed via HTTPS, using TLS client certs for Single Sign-On.
>>> (similar to how Kerberos is used by others).
>>
>> I'm sure about that.  My perspective are consumers.
> 
> My perspective is also consumers.
> TLS client authentication is about Single Sign-On.
> http://en.wikipedia.org/wiki/Single_sign-on
> 
> And the most convenient incarnation of it is popup-free single sign-on.
> 
> 
>>
>>>
>>> What you're looking at here is scenarios for individually authenticated
>>> transactions.  That is an entirely different problem domain and not
>>> addressed by TLS at all.  You would have to address that with
>>> a browser plugin that accesses a completely different PKI credential
>>> that has signature qualities, with a clearly defined protocol that
>>> describes what data gets signed, and which requires seperate per-transaction
>>> authorization for every signature operation.
>>
>> There was even a Danish e-government standard for PKI authentication
>> that rides on top of server-auth-only HTTPS.  They also have a
>> companion scheme doing web signatures which indeed uses another
>> key.  There are lots of similar systems out there.
>>
>> Are all these guys morons?  I believe they are rather dissatisfied
>> with how HTTPS CCA works.  So am I.
> 
> 
> Not understanding the underlying technology at all and not discussing
> with software suppliers how a standardized but hardly used protocol
> option works is more than a little naive on my scorecard.
> 
> 
> Microsoft foobar'ed client certs in WinHTTP (a component distinct
> from MSIE) and fixed it here http://support.microsoft.com/kb/909425
> when we asked them to.
> 
> 
> When Apple shipped Safari for Windows they did not find that winhttp
> fix and made their browser exhibit the exact same bugs.  We told
> them in January 2009, but they were still shipping defective
> Safaris for Windows in April 2010...
> 
> Google Chrome used WinHTTP only for a short time and got rid of the
> problem when it dumped WinHTTP.
> 
> 
>>
>>>
>>> If the server wants to perform a logout operation,
>>> it can delete the TLS session cache entry on the server.
>>>
>>> But the Single Sign-On capability of the TLS client cert means
>>> that as long as the client credential is still available to the
>>> TLS client, the client will perform "transparent" reauthentication.
>>
>> Doesn't this actually lead to what I'm saying from a practical
>> point of view?
> 
> No.
> 
> It doesn't make any flawed assumptions less flawed, of course.
> 
> 
>>
>> What you can do at the TLS layer is BTW very little
>> at least if you are using Servlets.  For other authentication
>> methods logout (HttpSession.invalidate) works as expected.
> 
> You misunderstand the concept of "Single Sign-On" as offered by TLS.
> 
> 
>>
>>>> The button "Clear SSL state" in MSIE is an indication how horribly bad it
>>>> can go when security experts design systems for "people".
>>>
>>> Is your intention to get prompted again?
>>> >From a usability standpoint, we prefer the "select automatically"
>>> setting and spare our users the client certificate selection popup.
>>
>> I don't really want to know what it does actually.  The mere existence
>> of such a button signals that something is terribly wrong :-)
> 
> 
> The equivalent for Kerberos (win7 in a windows domain) is "klist purge".
> (Although the Kerberos ticket purge does _NOT_ result in the prompting
> when new TGTs and new tickets are acquired.
> 
> 
>>
>>>> There's no way you can hide the fact that TLS CCA is only truly useful
>>>> securing tunnels between "boxes".
>>>
>>> The purpose of the TLS CCA is the same as the purpose of Kerberos,
>>> to provide a non-disclosing Single Sign-On convenience.
>>
>> But Kerberos is built on using a ticket after primary auth and
>> that's exactly what most "Web Programmers" would like to do
>> because then you just have to invalidate the ticket to force
>> reauth.
> 
> Huh?  That is not how Kerberos works.  Kerberos tickets are
> not invalidated at all.  And with Kerberos, you get even less
> prompting (more seamless Single Sign-On) than with TLS client certs.
> 
> 
>>
>> Services should time-out but most HTTPS CCA-based services do not.
>> I noted this first when logging in to the Swedish Tax authority.
>> They are all morons?  Maybe.
>> But the TLS WG has nothing to offer AFAICT.
> 
> 
> What you are looking for is for a completely different protocol
> layer than TLS.  If you want application level session management,
> you have to do application level session management.  TLS provides
> you a secure tunnel with Single Sign-On and fast session resumption
> over later transport connections to the same target (to better match
> the connection characteristics of HTTP).
> 
> 
> -Martin
> 
>