Re: [Unbearable] Token Binding Demo Online

=JeffH <Jeff.Hodges@KingsMountain.com> Mon, 27 March 2017 19:44 UTC

Return-Path: <Jeff.Hodges@kingsmountain.com>
X-Original-To: unbearable@ietfa.amsl.com
Delivered-To: unbearable@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 39E69128CB9 for <unbearable@ietfa.amsl.com>; Mon, 27 Mar 2017 12:44:53 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.195
X-Spam-Level:
X-Spam-Status: No, score=-4.195 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-2.796, RCVD_IN_SORBS_SPAM=0.5, SPF_PASS=-0.001, URIBL_BLOCKED=0.001, WEIRD_PORT=0.001] autolearn=ham autolearn_force=no
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 27-0GT8yw_PG for <unbearable@ietfa.amsl.com>; Mon, 27 Mar 2017 12:44:51 -0700 (PDT)
Received: from gproxy7-pub.mail.unifiedlayer.com (gproxy7-pub.mail.unifiedlayer.com [70.40.196.235]) by ietfa.amsl.com (Postfix) with SMTP id A343B129440 for <unbearable@ietf.org>; Mon, 27 Mar 2017 12:44:51 -0700 (PDT)
Received: (qmail 24068 invoked by uid 0); 27 Mar 2017 19:44:51 -0000
Received: from unknown (HELO cmgw3) (10.0.90.84) by gproxy7.mail.unifiedlayer.com with SMTP; 27 Mar 2017 19:44:51 -0000
Received: from box514.bluehost.com ([74.220.219.114]) by cmgw3 with id 17ko1v00T2UhLwi017krys; Mon, 27 Mar 2017 13:44:51 -0600
X-Authority-Analysis: v=2.2 cv=VKStp5HX c=1 sm=1 tr=0 a=9W6Fsu4pMcyimqnCr1W0/w==:117 a=9W6Fsu4pMcyimqnCr1W0/w==:17 a=IkcTkHD0fZMA:10 a=6Iz7jQTuP9IA:10 a=G3671ZRbAAAA:8 a=aT1mtRs1AAAA:8 a=is3RsFX7AAAA:8 a=CctSdh5M5WR2OMdHnHwA:9 a=TfoowR49Lp2oWbIa:21 a=vIggYP4HJMIq4sLd:21 a=QEXdDO2ut3YA:10 a=zVDAv4axDEoA:10 a=4CUC42MLbA0A:10 a=ikgzDwOxWHZhBpfrwjD2:22 a=ALGGo9ihC9xXEHhQtaWt:22 a=CvJ-9y_HEmGQg9NJmnFv:22
Received: from dhcp-878c.meeting.ietf.org ([31.133.135.140]:54637) by box514.bluehost.com with esmtpsa (TLSv1.2:ECDHE-RSA-AES128-GCM-SHA256:128) (Exim 4.87) (envelope-from <Jeff.Hodges@KingsMountain.com>) id 1csaZM-00076y-Am for unbearable@ietf.org; Mon, 27 Mar 2017 13:44:48 -0600
To: IETF TokBind WG <unbearable@ietf.org>
From: =JeffH <Jeff.Hodges@KingsMountain.com>
Message-ID: <53af499e-cf84-d616-f31a-c615152f913b@KingsMountain.com>
Date: Mon, 27 Mar 2017 12:44:43 -0700
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.11; rv:45.0) Gecko/20100101 Thunderbird/45.8.0
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"; format="flowed"
Content-Transfer-Encoding: 8bit
X-AntiAbuse: This header was added to track abuse, please include it with any abuse report
X-AntiAbuse: Primary Hostname - box514.bluehost.com
X-AntiAbuse: Original Domain - ietf.org
X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12]
X-AntiAbuse: Sender Address Domain - KingsMountain.com
X-BWhitelist: no
X-Source-IP: 31.133.135.140
X-Exim-ID: 1csaZM-00076y-Am
X-Source:
X-Source-Args:
X-Source-Dir:
X-Source-Sender: dhcp-878c.meeting.ietf.org [31.133.135.140]:54637
X-Source-Auth: jeff.hodges+kingsmountain.com
X-Email-Count: 2
X-Source-Cap: a2luZ3Ntb3U7a2luZ3Ntb3U7Ym94NTE0LmJsdWVob3N0LmNvbQ==
Archived-At: <https://mailarchive.ietf.org/arch/msg/unbearable/IH_k6VqQ7SXrq2ltN6FWfR4mvio>
Subject: Re: [Unbearable] Token Binding Demo Online
X-BeenThere: unbearable@ietf.org
X-Mailman-Version: 2.1.22
Precedence: list
List-Id: "\"This list is for discussion of proposals for doing better than bearer tokens \(e.g. HTTP cookies, OAuth tokens etc.\) for web applications. The specific goal is chartering a WG focused on preventing security token export and replay attacks.\"" <unbearable.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/unbearable>, <mailto:unbearable-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/unbearable/>
List-Post: <mailto:unbearable@ietf.org>
List-Help: <mailto:unbearable-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/unbearable>, <mailto:unbearable-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 27 Mar 2017 19:44:53 -0000

> I put up a demonstration of some token binding functionality that I wanted
> to share. There are a few parts to it, which I'll attempt to describe
> below.

nice, thx.


> At https://unbearable-bc.ping-eng.com:3000/open/ is a token binding capable
> reverse proxy (of sorts) that is proxying requests to http://httpbin.org/
> with a little path rewriting. If you go to
> https://unbearable-bc.ping-eng.com:3000/open/headers with a token binding
> (-10 to -13) capable browser, for example, you should see the a dump of the
> request headers including "Sec-Token-Binding".

i tried it out using chrome, seems to work

> The reverse proxy is also set up with some access control and will proxy
> from https://unbearable-bc.ping-eng.com:3000/ to http://httpbin.org/ but
> require an authenticated session to do so. And it's using OpenID Connect
> Token Bound Authentication
> <http://openid.net/specs/openid-connect-token-bound-authentication-1_0.html>
> with an IDP at https://token-provider-bc.ping-eng.com:9031 to authenticate
> users.
>
> So, for example, if you go to
> https://unbearable-bc.ping-eng.com:3000/headers without a session you will
> be redirected to the authorization endpoint at that IDP and presented with
> a login page. Use USERNAME: brian and PASSWORD: Test5555 on that page.
> After login, you'll be sent back to the relying party via the Form Post
> Response Mode
> <https://openid.net/specs/oauth-v2-form-post-response-mode-1_0.html> where
> the ID Token is sent though the browser. If you grab that token and decode
> it, there should be a confirmation method claim that has the hash of the
> Token Binding ID used with the relying party (i.e. "cnf": {"tbh":
> "...hash..."}).
>
> The relying party sets up its own session from the OIDC SSO, which is a
> cookie named PA.unbearable that is a JWT. The page at
> https://unbearable-bc.ping-eng.com:3000/headers will dump the headers
> including that cookie. If you decode that JWT, you should also see that the
> local session is token bound with the confirmation method claim.

one can decode the JWT using jwt.io.

>
> Things will still work when using a non token binding capable browser but
> none of the tokens will be token bound.
>
> As a reminder, you can enable Token Binding in Chrome by putting
> chrome://flags/#enable-token-binding into the address bar. Chrome and Chrome
> Canaryā€ˇ are what I've been using to play with this. I'm hopping someone
> with the TB enabled Edge/IE can poke around on this demo too.
>
>