Re: [OAUTH-WG] Holder-of-the-Key for OAuth

Phil Hunt <phil.hunt@oracle.com> Tue, 10 July 2012 21:36 UTC

Return-Path: <phil.hunt@oracle.com>
X-Original-To: oauth@ietfa.amsl.com
Delivered-To: oauth@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 3E5CF11E80C4 for <oauth@ietfa.amsl.com>; Tue, 10 Jul 2012 14:36:42 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -9.638
X-Spam-Level:
X-Spam-Status: No, score=-9.638 tagged_above=-999 required=5 tests=[AWL=-0.436, BAYES_00=-2.599, HTML_MESSAGE=0.001, MIME_QP_LONG_LINE=1.396, RCVD_IN_DNSWL_HI=-8]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id HHixH6++acVb for <oauth@ietfa.amsl.com>; Tue, 10 Jul 2012 14:36:40 -0700 (PDT)
Received: from rcsinet15.oracle.com (rcsinet15.oracle.com [148.87.113.117]) by ietfa.amsl.com (Postfix) with ESMTP id 7A17421F8648 for <oauth@ietf.org>; Tue, 10 Jul 2012 14:36:40 -0700 (PDT)
Received: from ucsinet21.oracle.com (ucsinet21.oracle.com [156.151.31.93]) by rcsinet15.oracle.com (Sentrion-MTA-4.2.2/Sentrion-MTA-4.2.2) with ESMTP id q6ALb83m024760 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Tue, 10 Jul 2012 21:37:08 GMT
Received: from acsmt358.oracle.com (acsmt358.oracle.com [141.146.40.158]) by ucsinet21.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id q6ALb7pU007290 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Tue, 10 Jul 2012 21:37:07 GMT
Received: from abhmt114.oracle.com (abhmt114.oracle.com [141.146.116.66]) by acsmt358.oracle.com (8.12.11.20060308/8.12.11) with ESMTP id q6ALb6aQ027822; Tue, 10 Jul 2012 16:37:06 -0500
Received: from [192.168.1.8] (/24.85.226.208) by default (Oracle Beehive Gateway v4.0) with ESMTP ; Tue, 10 Jul 2012 14:37:06 -0700
Mime-Version: 1.0 (Apple Message framework v1278)
Content-Type: multipart/alternative; boundary="Apple-Mail=_F0C5B3AD-0DB1-4B50-8347-63C932DE69D5"
From: Phil Hunt <phil.hunt@oracle.com>
In-Reply-To: <1341951979.14398.YahooMailNeo@web31803.mail.mud.yahoo.com>
Date: Tue, 10 Jul 2012 14:37:04 -0700
Message-Id: <72E0EDCF-C50D-4F90-B7AD-C0D9B21BA550@oracle.com>
References: <8FB1BC31-D183-47A0-9792-4FDF460AFAA1@gmx.net><B26C1EF377CB694EAB6BDDC8E624B6E74F979CF1@BL2PRD0310MB362.namprd03.prod.outlook.com><22194120-0613-48A7-9825-FD3BAD76062A@gmx.net><C433DCE1-3015-4442-9DD0-A5228415D6C0@ve7jtb.com><B26C1EF377CB694EAB6BDDC8E624B6E74F97B2E2@BL2PRD0310MB362.namprd03.prod.outlook.com><6D7E3A30-873A-41DD-8ADA-A3334E023576@gmx.net><397384FE-394C-4C4B-8962-56E4F86579C1@ve7jtb.com><B26C1EF377CB694EAB6BDDC8E624B6E74F97B4C1@BL2PRD0310MB362.namprd03.prod.outlook.com><AD9183B2-42DC-4DB8-A103-D97948C4BC59@ve7jtb.com> <4FFC6983.8030704@oracle.com> <999913AB42CC9341B05A99BBF358718D01A4937B@FIESEXC035.nsn-intra.net> <4FFC7BC4.5030902@oracle.com> <1341951979.14398.YahooMailNeo@web31803.mail.mud.yahoo.com>
To: William Mills <wmills_92105@yahoo.com>
X-Mailer: Apple Mail (2.1278)
X-Source-IP: ucsinet21.oracle.com [156.151.31.93]
Cc: "oauth@ietf.org" <oauth@ietf.org>
Subject: Re: [OAUTH-WG] Holder-of-the-Key for OAuth
X-BeenThere: oauth@ietf.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: OAUTH WG <oauth.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/oauth>, <mailto:oauth-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/oauth>
List-Post: <mailto:oauth@ietf.org>
List-Help: <mailto:oauth-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/oauth>, <mailto:oauth-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 10 Jul 2012 21:36:42 -0000

I don't have much data on how many request/responses an oauth web client does per connection. But if we force a new TLS connection for each access token (which may only be used for 1 or 2 request/responses) we will have a scalability issue. I do agree the approach is relatively simple and workable for native apps since there is less of a client performance issue. 

For web app clients, I'd rather keep TLS security a separate issue/layer.  For example, a long-lived private key (symmetric or asymmetric) could be issued to the client so that it can establish 2-way TLS connections that can be used for 1000s of requests per connection.  Then a separate authorization header HoK access token is used to authenticate each request/response.

Speaking of the authorization header, it's not clear in section 3.2 whether in fact an authorization header is sent. The implication seems to be that the resource server must have a way to pull the information from the TLS end-point or get it from the authorization header which 3.2 doesn't speak to.

Phil

@independentid
www.independentid.com
phil.hunt@oracle.com





On 2012-07-10, at 1:26 PM, William Mills wrote:

> OK, but why do you need holder-of-key then?  I think holder-of-key gets significantly weird in the symmetric key case.   In the PKI case the token has (public_key, token, signature(public_key, token, serversecret)).  How will the server assert something in the credential that's useful in place of a plublic key (or certificate)?  I think the best case there is that the server is asserting a client name which the protected resource uses to look up the symmetric key to use for the signature check, but that could just be included in token anyway without holder-of-key.
> 
> I really don't see how this works with symmetric keys in any useful way that's not easier via another method like MAC tokens?
> 
> 
> From: prateek mishra <prateek.mishra@oracle.com>
> To: "Tschofenig, Hannes (NSN - FI/Espoo)" <hannes.tschofenig@nsn.com> 
> Cc: oauth@ietf.org 
> Sent: Tuesday, July 10, 2012 12:00 PM
> Subject: Re: [OAUTH-WG] Holder-of-the-Key for OAuth
> 
> Hannes,
> 
> we have a variety of use-cases wherein a single server ("client") repeatedly interacts with a resource server for business purposes. These interactions may be on-behalf-of
> a single user or even multiple users. In such a use-case, use of assymetric signature imposes an unacceptable performance penalty and there is a lot of interest in being able
> to use symmetric signature instead.
> 
> - prateek
>> Hi Prateek,
>>  
>> why do you care about the symmetric key case?
>> Specifying more variants requires more code and decreases interoperability.
>>  
>> Ciao
>> Hannes
>>  
>>  
>> From: oauth-bounces@ietf.org [mailto:oauth-bounces@ietf.org] On Behalf Of ext prateek mishra
>> Sent: Tuesday, July 10, 2012 8:42 PM
>> To: oauth@ietf.org
>> Subject: Re: [OAUTH-WG] Holder-of-the-Key for OAuth
>>  
>> As Phil Hunt suggests, there is a need for a discussion of the use-cases involved
>> 
>> How to bind the key to the requestor may have several variations, I would hope the work would cover a broad range
>> 
>> Given the importance of the symmetric key case, I would also be interested in key establishment methods as well
>> 
>> 
>> 
>> When I say arguably,  I expect you to argue.  
>>   
>> John B. 
>>   
>> Sent from my iPhone
>>   
>> On 2012-07-10, at 1:01 PM, Anthony Nadalin <tonynad@microsoft.com> wrote:
>>   
>> Binding the key to the channel is arguably the most secure
>>   
>> Not really, there are hardware options that give good security properties
>>   
>> -----Original Message-----
>> From: John Bradley [mailto:ve7jtb@ve7jtb.com] 
>> Sent: Tuesday, July 10, 2012 9:55 AM
>> To: Hannes Tschofenig
>> Cc: Anthony Nadalin; Hannes Tschofenig; OAuth WG
>> Subject: Re: [OAUTH-WG] Holder-of-the-Key for OAuth
>>   
>> Binding the key to the channel is arguably the most secure. 
>>   
>> SSL offloading and other factors may prevent that from working in all cases. 
>>   
>> I suspect that we will need two OAuth bindings. One for TLS and one for signed message. 
>>   
>> John B.  
>>   
>> Sent from my iPhone
>>   
>> On 2012-07-10, at 12:11 PM, Hannes Tschofenig <hannes.tschofenig@gmx.net> wrote:
>>   
>> If we do not bind the key to the channel than we will run into all sorts of problems. The current MAC specification illustrates that quite nicely. On top of that you can re-use the established security channel for the actual data exchange. 
>>   
>> On Jul 10, 2012, at 5:29 PM, Anthony Nadalin wrote:
>>   
>> One question is if we want to do a generic proof of possession for JWT that is useful outside OAuth,  or something OAuth specific.    The answer may be a combined approach.
>>   
>> Depends if we want OAuth to support the concept of a request/response for a proof token and keep the actual binding for a separate specification, in most of our cases the keying material is opaque (and just a blob), where we care about the key material  is in the key agreement (entropy) cases.
>>   
>> -----Original Message-----
>> From: John Bradley [mailto:ve7jtb@ve7jtb.com] 
>> Sent: Tuesday, July 10, 2012 3:34 AM
>> To: Hannes Tschofenig
>> Cc: Anthony Nadalin; OAuth WG
>> Subject: Re: [OAUTH-WG] Holder-of-the-Key for OAuth
>>   
>> I agree that there are use-cases for all of the proof of possession mechanisms.
>>   
>> Presentment methods also need to be considered.   
>>   
>> TLS client auth may not always be the best option.  Sometimes message signing is more appropriate.
>>   
>> One question is if we want to do a generic proof of possession for JWT that is useful outside OAuth,  or something OAuth specific.    The answer may be a combined approach.
>>   
>> I think this is a good start to get discussion going.
>>   
>> John B.
>> On 2012-07-09, at 3:05 PM, Hannes Tschofenig wrote:
>>   
>> Hi Tony, 
>>   
>> I had to start somewhere. I had chosen the asymmetric version since it provides good security properties and there is already the BrowserID/OBC work that I had in the back of my mind. I am particularly interested to illustrate that you can accomplish the same, if not better, characteristics than BrowserID by using OAuth instead of starting from scratch. 
>>   
>> Regarding the symmetric keys: The asymmetric key can be re-used but with a symmetric key holder-of-the-key you would have to request a fresh one every time in order to accomplish comparable security benefits. 
>>   
>> Ciao
>> Hannes
>>   
>> On Jul 9, 2012, at 9:57 PM, Anthony Nadalin wrote:
>>   
>> Hannes, thanks for drafting this, couple of comments:
>>   
>> 1. HOK is one of Proof of Possession methods, should we consider others?
>> 2. This seems just to handle asymmetric keys, need to also handle symmetric keys
>>   
>>   
>> -----Original Message-----
>> From: oauth-bounces@ietf.org [mailto:oauth-bounces@ietf.org] On Behalf Of Hannes Tschofenig
>> Sent: Monday, July 09, 2012 11:15 AM
>> To: OAuth WG
>> Subject: [OAUTH-WG] Holder-of-the-Key for OAuth
>>   
>> Hi guys, 
>>   
>> today I submitted a short document that illustrates the concept of holder-of-the-key for OAuth. 
>> Here is the document: 
>> https://datatracker.ietf.org/doc/draft-tschofenig-oauth-hotk
>>   
>> Your feedback is welcome 
>>   
>> Ciao
>> Hannes
>>   
>> _______________________________________________
>> OAuth mailing list
>> OAuth@ietf.org
>> https://www.ietf.org/mailman/listinfo/oauth
>>   
>>   
>>   
>>   
>>   
>>   
>> _______________________________________________
>> OAuth mailing list
>> OAuth@ietf.org
>> https://www.ietf.org/mailman/listinfo/oauth
>>   
>>   
>>   
>>   
>>   
>>   
>>   
>>   
>>   
>> 
>> 
>> 
>> _______________________________________________
>> OAuth mailing list
>> OAuth@ietf.org
>> https://www.ietf.org/mailman/listinfo/oauth
>>  
> 
> 
> 
> _______________________________________________
> OAuth mailing list
> OAuth@ietf.org
> https://www.ietf.org/mailman/listinfo/oauth
> 
> 
> _______________________________________________
> OAuth mailing list
> OAuth@ietf.org
> https://www.ietf.org/mailman/listinfo/oauth