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

Eran Hammer-Lahav <eran@hueniverse.com> Mon, 27 September 2010 06:02 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 9943F3A6C69 for <oauth@core3.amsl.com>; Sun, 26 Sep 2010 23:02:18 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.491
X-Spam-Level:
X-Spam-Status: No, score=-2.491 tagged_above=-999 required=5 tests=[AWL=0.108, BAYES_00=-2.599]
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 AsbDAS+EUgWl for <oauth@core3.amsl.com>; Sun, 26 Sep 2010 23:02: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 949063A6C7A for <oauth@ietf.org>; Sun, 26 Sep 2010 23:02:17 -0700 (PDT)
Received: (qmail 8308 invoked from network); 27 Sep 2010 06:02:52 -0000
Received: from unknown (HELO smtp.ex1.secureserver.net) (72.167.180.20) by p3plex1out02.prod.phx3.secureserver.net with SMTP; 27 Sep 2010 06:02:52 -0000
Received: from P3PW5EX1MB01.EX1.SECURESERVER.NET ([10.6.135.20]) by P3PW5EX1HT002.EX1.SECURESERVER.NET ([72.167.180.20]) with mapi; Sun, 26 Sep 2010 23:02:52 -0700
From: Eran Hammer-Lahav <eran@hueniverse.com>
To: "Manger, James H" <James.H.Manger@team.telstra.com>, OAuth WG <oauth@ietf.org>
Date: Sun, 26 Sep 2010 23:02:54 -0700
Thread-Topic: [OAUTH-WG] Basic signature support in the core specification
Thread-Index: ActcR6vm6X8YseNpRhClD4sGqLl9RABlRhWAAArcxYA=
Message-ID: <90C41DD21FB7C64BB94121FBBC2E72343D45D80132@P3PW5EX1MB01.EX1.SECURESERVER.NET>
References: <C8C15057.3AC64%eran@hueniverse.com> <D01C840D-BA0A-42AE-A6C4-C43E6E84C2F2@gmail.com> <255B9BB34FB7D647A506DC292726F6E1126BFB1574@WSMSG3153V.srv.dir.telstra.com>
In-Reply-To: <255B9BB34FB7D647A506DC292726F6E1126BFB1574@WSMSG3153V.srv.dir.telstra.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
acceptlanguage: en-US
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
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 06:02:18 -0000

Clearly, this group is making choices based on the kind of applications using OAuth 1.0 today. The decision to focus on bearer tokens came from specific experiences and types of consumer web services.

I'm all for a simple and generic way to issue a token with additional attributes such as a secret, required algorithm, etc. But main objection is to the publication of a standard that promotes bearer token as its "purest" form, and moves something that I consider a core security component to somewhere else.

I completely agree that we are going to have more than one signature mechanism. Any attempt to come up with some unified and generically useful method is idiotic. We have very different views, approaches, and needs.

However, I'd like us to pick one that is simple and in line with the 1.0 approach - this is very much in line with the market expectation, and the expectations of most people who joined this group to work on the next version of OAuth. My plan from the time I brought OAuth to the IETF and worked to create this working group was to build directly on top of the 1.0 signature method. We don't need to go far, just clean it up a bit to make it simpler and reflect the improve environment OAuth operates in (three years later).

IOW, instead of wasting another 6 months of this pointless debate regarding signatures, I would like to see us take the 1.0 HMAC method, have a focused discussion about how it can be made better without changing its architecture (basically, just simplifying the base string), and including that with a clear method for extensions. In addition, I would hope that Dirk's proposal moves forward and reaches a stable state alongside core, so that it too, can be referenced.

If we cannot agree on one (and we cannot), I want us to provide options. 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.

EHL


> -----Original Message-----
> From: oauth-bounces@ietf.org [mailto:oauth-bounces@ietf.org] On Behalf
> Of Manger, James H
> Sent: Sunday, September 26, 2010 6:13 PM
> To: OAuth WG
> Subject: Re: [OAUTH-WG] Basic signature support in the core specification
> 
> -1 to including a signature mechanism in OAuth2 core
> 
> +1 to OAuth2 being clear about how it can deliver a secret key (and algorithm
> id etc) that can be used by a signature mechanism
> 
> Firstly -- a mechanism to sign HTTP requests would be great, but should not
> be dependent on methods for users to delegate authority to apps, or on
> methods for apps to get temporary, less-privileged credentials. That is, don't
> make it OAuth-specific.
> Defining a request signing mechanism in OAuth2 core will cripple it with
> OAuth-specific quirks. The OAuth1 signing mechanism, for instance: uses
> names with "oauth_" prefixes; uses 2 keys (an apps long-term key, and the
> delegation-specific token key) whereas generic signing mechanisms
> invariable work with a single signing key; and overloads a single HTTP
> authentication scheme name with multiple purposes (indicating a server
> supports delegation, and conveying a request signature).
> 
> Secondly -- there isn't just one sensible signing mechanism, so how do we
> pick which one is specified in OAuth2 core. An enveloping-style signature (eg
> magic signatures?); an OAuth1-style signature using 2 keys; a signature
> covering HTTP method/URI/body but not other headers; a signature covering
> any HTTP headers; a signature that can be encoded in a URI; a signature that
> also works on non-HTTP systems; a signature scheme that is efficient when
> the client app already has its own long-term public/private key pair...
> 
> 
> --
> James Manger
> _______________________________________________
> OAuth mailing list
> OAuth@ietf.org
> https://www.ietf.org/mailman/listinfo/oauth