Re: [OAUTH-WG] Basic signature support in the core specification

Eran Hammer-Lahav <eran@hueniverse.com> Mon, 27 September 2010 15:35 UTC

Return-Path: <eran@hueniverse.com>
X-Original-To: oauth@core3.amsl.com
Delivered-To: oauth@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 98C173A6D73 for <oauth@core3.amsl.com>; Mon, 27 Sep 2010 08:35:27 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.494
X-Spam-Level:
X-Spam-Status: No, score=-2.494 tagged_above=-999 required=5 tests=[AWL=0.104, BAYES_00=-2.599, HTML_MESSAGE=0.001]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id FYjpiEVgCwBb for <oauth@core3.amsl.com>; Mon, 27 Sep 2010 08:35:17 -0700 (PDT)
Received: from p3plex1out02.prod.phx3.secureserver.net (p3plex1out02.prod.phx3.secureserver.net [72.167.180.18]) by core3.amsl.com (Postfix) with SMTP id 9B4E93A6901 for <oauth@ietf.org>; Mon, 27 Sep 2010 08:35:11 -0700 (PDT)
Received: (qmail 26714 invoked from network); 27 Sep 2010 15:35:47 -0000
Received: from unknown (HELO smtp.ex1.secureserver.net) (72.167.180.20) by p3plex1out02.prod.phx3.secureserver.net with SMTP; 27 Sep 2010 15:35:46 -0000
Received: from P3PW5EX1MB01.EX1.SECURESERVER.NET ([10.6.135.20]) by P3PW5EX1HT002.EX1.SECURESERVER.NET ([72.167.180.20]) with mapi; Mon, 27 Sep 2010 08:35:42 -0700
From: Eran Hammer-Lahav <eran@hueniverse.com>
To: Dick Hardt <dick.hardt@gmail.com>
Date: Mon, 27 Sep 2010 08:35:45 -0700
Thread-Topic: [OAUTH-WG] Basic signature support in the core specification
Thread-Index: ActeSDldMbKZnjBuQmynk5pPDdqmPwAD5UmA
Message-ID: <90C41DD21FB7C64BB94121FBBC2E72343D460DB2F3@P3PW5EX1MB01.EX1.SECURESERVER.NET>
References: <C8C15057.3AC64%eran@hueniverse.com> <D01C840D-BA0A-42AE-A6C4-C43E6E84C2F2@gmail.com> <255B9BB34FB7D647A506DC292726F6E1126BFB1574@WSMSG3153V.srv.dir.telstra.com> <90C41DD21FB7C64BB94121FBBC2E72343D45D80132@P3PW5EX1MB01.EX1.SECURESERVER.NET> <CD71CDA0-15FA-4860-87EA-BE9C4B6932E4@gmail.com> <90C41DD21FB7C64BB94121FBBC2E72343D45D80136@P3PW5EX1MB01.EX1.SECURESERVER.NET> <AANLkTimKJGRBqXPiUVROYQNRhj0KPEp0C4K8KXqUHjsr@mail.gmail.com> <9706DE2E-1691-48D1-BC8A-3AEEEAB5C6C4@gmail.com>
In-Reply-To: <9706DE2E-1691-48D1-BC8A-3AEEEAB5C6C4@gmail.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
acceptlanguage: en-US
Content-Type: multipart/alternative; boundary="_000_90C41DD21FB7C64BB94121FBBC2E72343D460DB2F3P3PW5EX1MB01E_"
MIME-Version: 1.0
Cc: OAuth WG <oauth@ietf.org>
Subject: Re: [OAUTH-WG] Basic signature support in the core specification
X-BeenThere: oauth@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: OAUTH WG <oauth.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/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: Mon, 27 Sep 2010 15:35:27 -0000

This is a stupid discussion. We have been talking past each other (the working group) for over a year. We are not likely to convince either side that bearer tokens are bad or good idea.

All these experts reviewed WRAP in the strict context of their own environment, with existing protocols and other weaknesses. Other and I are reviewing it in the wider context of what is good for the web, and am much less concerned about complexity. IOW, I don't believe that in this case WRAP made the right choice between developer ease and security.

This is also exactly the problem with the current specification. New readers are more likely to assume that what is good for these big companies is also good for them, without making their own threat model analysis. How would they reach any other conclusion when the specification doesn't offer a complete alternative?

We should focus on finding a compromise everyone can live with, since clearly debating the two sides has produced nothing. I think positioning bearer tokens as the primary mechanism, but including a signature alternative in the same specification is a reasonable compromise. Bearer token fans get the spotlight, while those looking for a signature (providing the same protections as 1.0a HMAC-SHA-1) get some algorithm included.

We need to find a way to give each side something to live with.

EHL


From: Dick Hardt [mailto:dick.hardt@gmail.com]
Sent: Monday, September 27, 2010 6:31 AM
To: John Panzer; Eran Hammer-Lahav
Cc: OAuth WG; Ben Laurie
Subject: Re: [OAUTH-WG] Basic signature support in the core specification

I'll echo John's comments and remind you that Micrsoft, Yahoo! and Google security experts with plenty of real world experience worked on WRAP which is OAuth bearer tokens.

Microsoft, Google, Salesforce, Facebook and others have deployed bearer token OAuth in production after internal security reviews. I don't think that is a personal opinion, that is fact.

wrt. another comment you had about security considerations, Brian Eaton did write up a bunch of security considerations for WRAP.

On 2010-09-27, at 12:01 AM, John Panzer wrote:


On Sun, Sep 26, 2010 at 11:37 PM, Eran Hammer-Lahav <eran@hueniverse.com<mailto:eran@hueniverse.com>> wrote:


> -----Original Message-----
> From: Dick Hardt [mailto:dick.hardt@gmail.com<mailto:dick.hardt@gmail.com>]
> Sent: Sunday, September 26, 2010 11:21 PM

> >  What I absolutely object to is presenting a specification that to a new
> reader will read as if bearer tokens are the default way to go. OAuth 2.0 core
> today reads like a complete protocol and that's my problem.
>
> It is a complete protocol for many existing use cases.
That's clearly a matter of personal opinion :-) and why we have been arguing about this for over a year.

> For those use cases
> where it is not, you can call require signatures and point people to the
> signature spec, just like the use of bearer tokens points people to the TLS
> specs.
According to Ben Laurie [1] and Ben Adida [2], a simple reference to TLS is a recipe for disaster.

Actually in [1], Ben Laurie does not say that a simple reference to TLS is a recipe for disaster.  (Go read it.)  In fact his first point is that you need a well-define threat model before you can talk sensibly about any of this; I would really like us to do that in this case too.

People tend to implement TLS incorrectly on the client side which voids many of the important protections it is meant to provide.

The bits they tend to implement incorrectly (specifically, things like checking for certificate revocations) seem to me to be very general and exactly the kinds of things one needs in order to implement _any_ protection against the endpoint impersonation you are worried about.  Why would they be more likely to get it right for a new protocol than for an existing one?


As the editor, I am having a hard time consolidating your view which treats readers as security experts, capable of making educated decisions about the protocol, and the demands from others that the specification should be completely accessible to any developer (especially those with no security background) and read like a tutorial on OAuth.

If we want to keep the full range, we need to clearly express it, including highlighting the significant shortcomings of bearer tokens, the known TLS deployment issues, and the value in whatever signature proposals we have ready to reference or include.

Standards are meant to improve interoperability, but also security. This is why any IETF charter dealing with an existing technology states that the working group may break compatibility if it has interop or security reasons to do so. We are doing fine on interop, but doing pretty badly on security.

EHL

[1] http://www.links.org/?p=846
[2] http://benlog.com/articles/2009/12/22/its-a-wrap/



_______________________________________________
OAuth mailing list
OAuth@ietf.org<mailto:OAuth@ietf.org>
https://www.ietf.org/mailman/listinfo/oauth