Re: [OAUTH-WG] mistake in draft-ietf-oauth-v2-http-mac-01

Hannes Tschofenig <hannes.tschofenig@gmx.net> Fri, 10 August 2012 07:05 UTC

Return-Path: <hannes.tschofenig@gmx.net>
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 7136821F84D8 for <oauth@ietfa.amsl.com>; Fri, 10 Aug 2012 00:05:28 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -102.615
X-Spam-Level:
X-Spam-Status: No, score=-102.615 tagged_above=-999 required=5 tests=[AWL=-0.016, BAYES_00=-2.599, USER_IN_WHITELIST=-100]
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 5pCyMTYhsDN1 for <oauth@ietfa.amsl.com>; Fri, 10 Aug 2012 00:05:27 -0700 (PDT)
Received: from mailout-de.gmx.net (mailout-de.gmx.net [213.165.64.23]) by ietfa.amsl.com (Postfix) with SMTP id 0FB3821F84C2 for <oauth@ietf.org>; Fri, 10 Aug 2012 00:05:26 -0700 (PDT)
Received: (qmail invoked by alias); 10 Aug 2012 07:05:25 -0000
Received: from a88-115-216-191.elisa-laajakaista.fi (EHLO [192.168.100.108]) [88.115.216.191] by mail.gmx.net (mp029) with SMTP; 10 Aug 2012 09:05:25 +0200
X-Authenticated: #29516787
X-Provags-ID: V01U2FsdGVkX1+U0hsx2G2UBkIKc84NEACzyt5EXXgTgGE9jxLhFb TrtPXzrVXQkAxT
Mime-Version: 1.0 (Apple Message framework v1084)
Content-Type: text/plain; charset="us-ascii"
From: Hannes Tschofenig <hannes.tschofenig@gmx.net>
In-Reply-To: <50241165.40209@mitre.org>
Date: Fri, 10 Aug 2012 10:05:23 +0300
Content-Transfer-Encoding: quoted-printable
Message-Id: <047A5679-FE6B-4EF4-8D43-A3372B928F05@gmx.net>
References: <CAOKdZ1dzVcKBDt6CSLuHwc4NzUVd_hUMWdpJVS6=ncdJo05=UQ@mail.gmail.com> <502280D8.40708@mitre.org> <9AD4EEF7-6187-4A4F-A855-32819BCB8321@gmx.net> <5022D344.40600@mitre.org> <EEBC9705-16C0-4697-8F38-28660C3CB553@ve7jtb.com> <5023CC18.9090809@mitre.org> <1344531175.4871.YahooMailNeo@web31812.mail.mud.yahoo.com> <3940317E-948C-4909-9B8F-2689A6B8D4EB@gmail.com> <1344534823.39489.YahooMailNeo@web31801.mail.mud.yahoo.com> <5B59B739-F8E7-4F5A-A39C-8C46055D0E98@ve7jtb.com> <1344537819.41154.YahooMailNeo@web31803.mail.mud.yahoo.com> <50241165.40209@mitre.org>
To: Justin Richer <jricher@mitre.org>
X-Mailer: Apple Mail (2.1084)
X-Y-GMX-Trusted: 0
Cc: oauth@ietf.org
Subject: Re: [OAUTH-WG] mistake in draft-ietf-oauth-v2-http-mac-01
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: Fri, 10 Aug 2012 07:05:28 -0000

Hi Justin, 

thanks for the feedback. Comments below. 

On Aug 9, 2012, at 10:37 PM, Justin Richer wrote:

> Use case #2: signature protection over plain HTTP parameters
> 
> MAC gives us message-level signing in a way that doesn't require all the parameters to be packed into an extra structure, like JWT/SAML do. TLS gives no application-layer verification of integrity of parameters, nor does it give you the ability to know who presented those parameters (unless you're doing mutual TLS, which nobody does). MAC gives you a fairly simple way to protect all parameters on a call to the resource server while still keeping all of those parameters in their native HTTP forms.
> 

First, we have to assume as a starting point that we have bearer. So, assuming that there is actually plain HTTP for the communication between the client and the resource server does not exist. 

TLS does indeed not give the ability for the resource server to know who the client is. Client authentication would do that. 
Btw, the MAC draft does not allow the client to be authenticated. 

The MAC token does not protect all the parameters in the message. In fact, it protects only very, very few!

TLS is an application layer protocol (it runs on top of TCP) and protects the integrity and the confidentiality of the parameters in an end-to-end fashion. However, as others have noted the end on the server side may be a load balancer in case a system administrator has intentionally decided to terminate all secure traffic there. Saying that MAC would then be "more e2e" may be true unless the administrator has again decided to terminate it also at the load balancer (which may not be completely unlikely). 

> 
> Use case #3: generic signed HTTP fetch (not directly addressed by MAC spec as of today)
> 
> Sometimes you want to create a URL with one service, fix all of the parameters in that URL, and protect those parameters with a signature. Then that URL can be passed to an untrusted service who cannot modify any portion of it. Nor can they re-use the signature portion to protect different parameters. We do this today with a 2-legged OAuth signature across a service URL. The "Client" generates the signed URLs and passes them to a user agent which actually does the fetch to the service.
> 
> 
(I personally would have even liked to get rid of the 2-legged OAuth use cases). 

I think that this use case is again a bit different from what we have been talking about so far. Maybe you want to compile an Internet draft so that we have more details to assess the security properties better. 

Ciao
Hannes

>  -- Justin
> 
> On 08/09/2012 02:43 PM, William Mills wrote:
>> OK, I'll play and start documenting the use cases.  
>> 
>> Use case #1: Secure authentication in plain text connections:
>> 
>> Some applications need a secure form authorization, but do not want or need the overhead of encrypted connections.  HTTP cookies and their ilk are replayable credentials and do not satisfy this need.   the MAC scheme using signed HTTP authorization credentials offer the capability to securely authorize a transaction, can offer integrity protection on all or part of an HTTP request, and can provide replay protection.
>> 
>> -bill
>> 
>> From: John Bradley <ve7jtb@ve7jtb.com>
>> To: William Mills <wmills_92105@yahoo.com> 
>> Cc: Dick Hardt <dick.hardt@gmail.com>; "oauth@ietf.org" <oauth@ietf.org> 
>> Sent: Thursday, August 9, 2012 11:26 AM
>> Subject: Re: [OAUTH-WG] mistake in draft-ietf-oauth-v2-http-mac-01
>> 
>> In Vancouver the question was asked about the future of the MAC spec due to it no linger having a editor.                
>> 
>> The Chair and AD indicated a desire to have a document on the use-cases we are trying to address before deciding on progressing MAC or starting a new document.
>> 
>> Phil Hunt is going to put together a summery of the Vancouver discussion and we are going to work on the use-case/problem description document ASAP.
>> 
>> People are welcome to contribute to the use-case document.
>> 
>> Part of the problem with MAC has been that people could never agree on what it was protecting against.  
>> 
>> I think there is general agreement that one or more proof mechanisms are required for access tokens.
>> Security for the token endpoint also cannot be ignored. 
>> 
>> 
>> John B.
>>  
>> On 2012-08-09, at 1:53 PM, William Mills wrote:
>> 
>>> MAC fixes the signing problems encountered in OAuth 1.0a, yes there are libraries out there for OAuth 1.0a.  MAC fits in to the OAuth 2 auth model and will provide for a single codepath for sites that want to use both Bearer and MAC.
>>> 
>>> From: Dick Hardt <dick.hardt@gmail.com>
>>> To: William Mills <wmills_92105@yahoo.com> 
>>> Cc: "oauth@ietf.org" <oauth@ietf.org> 
>>> Sent: Thursday, August 9, 2012 10:27 AM
>>> Subject: Re: [OAUTH-WG] mistake in draft-ietf-oauth-v2-http-mac-01
>>> 
>>> 
>>> On Aug 9, 2012, at 9:52 AM, William Mills wrote:
>>> 
>>>> I find the idea of starting from scratch frustrating.  MAC solves a set of specific problems and has a well defined use case.  It's symmetric key based which doesn't work for some folks, and the question is do we try to develop something that supports both PK and SK, or finish the SK use case and then work on a PK based draft.
>>>> 
>>>> I think it's better to leave them separate and finish out MAC which is *VERY CLOSE* to being done.
>>> 
>>> Who is interested in MAC? People can use OAuth 1.0 if they prefer that model. 
>>> 
>>> For my projects, I prefer the flexibility of a signed or encrypted JWT if I need holder of key.
>>> 
>>> Just my $.02
>>> 
>>> -- Dick  
>>> 
>>> 
>>> 
>>> _______________________________________________
>>> 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