Re: FYI: proposal for client authentication in TLS

Julian Reschke <julian.reschke@gmx.de> Mon, 10 March 2014 10:22 UTC

Return-Path: <ietf-http-wg-request@listhub.w3.org>
X-Original-To: ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com
Delivered-To: ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 142E91A0413 for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Mon, 10 Mar 2014 03:22:09 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -6.849
X-Spam-Level:
X-Spam-Status: No, score=-6.849 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, J_CHICKENPOX_35=0.6, RCVD_IN_DNSWL_HI=-5, RP_MATCHES_RCVD=-0.547, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001] autolearn=ham
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 20YWXOZyXPza for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Mon, 10 Mar 2014 03:22:07 -0700 (PDT)
Received: from frink.w3.org (frink.w3.org [128.30.52.56]) by ietfa.amsl.com (Postfix) with ESMTP id 0AB511A040E for <httpbisa-archive-bis2Juki@lists.ietf.org>; Mon, 10 Mar 2014 03:22:06 -0700 (PDT)
Received: from lists by frink.w3.org with local (Exim 4.72) (envelope-from <ietf-http-wg-request@listhub.w3.org>) id 1WMxJN-00013z-Je for ietf-http-wg-dist@listhub.w3.org; Mon, 10 Mar 2014 10:19:57 +0000
Resent-Date: Mon, 10 Mar 2014 10:19:57 +0000
Resent-Message-Id: <E1WMxJN-00013z-Je@frink.w3.org>
Received: from lisa.w3.org ([128.30.52.41]) by frink.w3.org with esmtp (Exim 4.72) (envelope-from <julian.reschke@gmx.de>) id 1WMxJC-00013G-70 for ietf-http-wg@listhub.w3.org; Mon, 10 Mar 2014 10:19:46 +0000
Received: from mout.gmx.net ([212.227.17.21]) by lisa.w3.org with esmtps (TLS1.0:DHE_RSA_AES_128_CBC_SHA1:16) (Exim 4.72) (envelope-from <julian.reschke@gmx.de>) id 1WMxJB-0005Rh-0K; Mon, 10 Mar 2014 10:19:46 +0000
Received: from [192.168.1.103] ([217.91.35.233]) by mail.gmx.com (mrgmx002) with ESMTPSA (Nemesis) id 0MaIPo-1WcQqy3dRw-00Jv3g; Mon, 10 Mar 2014 11:19:17 +0100
Message-ID: <531D91A3.8050405@gmx.de>
Date: Mon, 10 Mar 2014 11:19:15 +0100
From: Julian Reschke <julian.reschke@gmx.de>
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:24.0) Gecko/20100101 Thunderbird/24.3.0
MIME-Version: 1.0
To: "henry.story@bblfish.net" <henry.story@bblfish.net>, Martin Thomson <martin.thomson@gmail.com>
CC: HTTP Working Group <ietf-http-wg@w3.org>, Tim Berners-Lee <timbl@w3.org>
References: <CABkgnnU1RMHN8sGsRc_KSw3+EutZnrrb-N=WpzP5wuqQ-ECe7Q@mail.gmail.com> <CABkgnnWDu301rXkX2u-AhptkSEr9AJb3LGJ3wfvVbhD0Oy4H6g@mail.gmail.com> <6D44B737-BCB4-4EBF-A596-FC0DC6BDCD5C@bblfish.net>
In-Reply-To: <6D44B737-BCB4-4EBF-A596-FC0DC6BDCD5C@bblfish.net>
Content-Type: text/plain; charset="ISO-8859-1"; format="flowed"
Content-Transfer-Encoding: 7bit
X-Provags-ID: V03:K0:i+8rU3/KQL3yJk8opEZ0PNxHYQdRe+VJ8jYVp7MzWu36procJPY Bwu1gfGIVl1A8OatslKCMBr6b4y25LsQsqwCP7HhhCdsf6DNCBfXuDOM31gSwFpaFHwtQ5i 0j9TjyU80IBy1NKGWu8nnyYTp3YtQfZsBM2xMLusDggoTn2qNcgyssQ1UBUzYb6xR5kb7Oi LYVlcwNdId+FFsNGTREWQ==
Received-SPF: pass client-ip=212.227.17.21; envelope-from=julian.reschke@gmx.de; helo=mout.gmx.net
X-W3C-Hub-Spam-Status: No, score=-3.4
X-W3C-Hub-Spam-Report: AWL=-3.445, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001
X-W3C-Scan-Sig: lisa.w3.org 1WMxJB-0005Rh-0K b25c67b9e70884b5d5e14f1a13435e3b
X-Original-To: ietf-http-wg@w3.org
Subject: Re: FYI: proposal for client authentication in TLS
Archived-At: <http://www.w3.org/mid/531D91A3.8050405@gmx.de>
Resent-From: ietf-http-wg@w3.org
X-Mailing-List: <ietf-http-wg@w3.org> archive/latest/22606
X-Loop: ietf-http-wg@w3.org
Resent-Sender: ietf-http-wg-request@w3.org
Precedence: list
List-Id: <ietf-http-wg.w3.org>
List-Help: <http://www.w3.org/Mail/>
List-Post: <mailto:ietf-http-wg@w3.org>
List-Unsubscribe: <mailto:ietf-http-wg-request@w3.org?subject=unsubscribe>

On 2014-03-10 10:16, henry.story@bblfish.net wrote:
>
> On 9 Mar 2014, at 08:37, Martin Thomson <martin.thomson@gmail.com> wrote:
>
>> On 8 March 2014 11:39, Martin Thomson <martin.thomson@gmail.com> wrote:
>>> Pursuant to our discussion on TLS renegotiation, I've submitted part 1
>>> of the solution I proposed as an internet draft.
>>>
>>> http://datatracker.ietf.org/doc/draft-thomson-tls-care/
>>>
>>> If we agree to a mechanism whereby we augment the 401 status code with
>>> a "go away and make a new TLS connection with client authentication",
>>> then this is necessary, so that the server knows to request a client
>>> certificate.
>>
>> Now with part 2:
>>
>> http://datatracker.ietf.org/doc/draft-thomson-httpbis-catch/
>
> I really like both of these.  I allready responded on the TLS mailing list
> about draft-thomson-tls-care [1]. For draft-thomson-httbis-catch I would
> like to suggest an improvement that would be essential for "self-signed"
> or rather "unknown server signed" certificates, i.e., certificates signed
> by some server that is not a CA. This allows for much more widespread
> creation of client certificates, since they don't anymore need to be
> verified by a few CAs, but instead allows the deployment of a web of
> trust - a linked data web of trust to be precise. This allows one client
> side certificate to be used to sign on to any web site.
>
> A WebID is just an http(s) URL that refers to an Agent ( human, robot,
> organisation, ...) We have defined it in the spec "WebID 1.0" [2]. One
> can then place a WebID in the Subject Alternative Name (SAN) field of an X509
> certificate as shown  in WebID Authentication over TLS [3] ( or even in the
> Issuer Alternative Name field (IAN)). The last spec relies on TLS as it is
> currently, but would be redundant if draft-thomson-httpbis-catch went through.
> (Until wide deployment of TLS1.3 which I suppose may take some time).
>
> Now I am not absolutely sure where this improvement I want to suggest,
> needs to be added: at the HTTP layer, or at the TLS layer. Currently TLS
> allows a server to specify using the certificate_authorities list what
> the list of Certificate Authorities the server accepts, so that the client
> does not send Certificates that are not signed by one that is known to the server,
> and which the server would then have to refuse.
> But with WebID Authentication we don't need a CA, so it would be nice to be
> able to specify that the server knows how to do WebID verification, ie part
> 5 and 6 of
>    http://www.w3.org/2005/Incubator/webid/spec/tls/#authentication-sequence
> bB
> If in TLS the server sends the empty certificate_authorities list. But that
> is too wide, since that means the client can send ANY Certificate. The
> server may not know what to do with most of them ( other than perhaps
> identify the user indirectly by the public key, but that is only minimally
> interesting - it does not allow one to build a web of trust ).
>
> My guess is that since this could evolve faster than the TLS layer, it may
> be better if this were done in the HTTP header. So perhaps a header like
>
>    WWW-Authenticate: ClientCertificate,SAN=WebID
>
> would do. One could also imagine a
>
>    WWW-Authenticate: ClientCertificate,IAN=WebID
> ...

Note: it would be

   WWW-Authenticate: ClientCertificate IAN=WebID

(see grammar in 
<http://greenbytes.de/tech/webdav/draft-ietf-httpbis-p7-auth-26.html#access.authentication.framework>)

Best regards, Julian