Re: [OAUTH-WG] why are we signing?

John Panzer <jpanzer@google.com> Fri, 13 November 2009 16:36 UTC

Return-Path: <jpanzer@google.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 AF6693A6996 for <oauth@core3.amsl.com>; Fri, 13 Nov 2009 08:36:35 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -105.977
X-Spam-Level:
X-Spam-Status: No, score=-105.977 tagged_above=-999 required=5 tests=[AWL=0.000, BAYES_00=-2.599, FM_FORGED_GMAIL=0.622, RCVD_IN_DNSWL_MED=-4, USER_IN_WHITELIST=-100]
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 15yI4v6V-nik for <oauth@core3.amsl.com>; Fri, 13 Nov 2009 08:36:34 -0800 (PST)
Received: from smtp-out.google.com (smtp-out.google.com [216.239.45.13]) by core3.amsl.com (Postfix) with ESMTP id 69E5E3A698E for <oauth@ietf.org>; Fri, 13 Nov 2009 08:36:34 -0800 (PST)
Received: from wpaz13.hot.corp.google.com (wpaz13.hot.corp.google.com [172.24.198.77]) by smtp-out.google.com with ESMTP id nADGb3W7006610 for <oauth@ietf.org>; Fri, 13 Nov 2009 08:37:03 -0800
DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d=google.com; s=beta; t=1258130223; bh=koQ1ZbsDRrgd1GHlPqOU46jX2WA=; h=MIME-Version:In-Reply-To:References:Date:Message-ID:Subject:From: To:Cc:Content-Type:Content-Transfer-Encoding; b=XbQvRzmoLpGU9yadjoecQ3i3TAjLQkWNS1dIOFteuwZp68pTCbqh59eoBIC14y4ST cAKyGTK1UVQ7WK/NDbCAQ==
DomainKey-Signature: a=rsa-sha1; s=beta; d=google.com; c=nofws; q=dns; h=mime-version:in-reply-to:references:date:message-id:subject:from:to: cc:content-type:content-transfer-encoding:x-system-of-record; b=r5nHi7+BtP4GR5rvN1e3QbD0Y4R2srVJMZVuTXaOpWpq3wE3x+FgoOZeZqK7EMbdi 68vuOBgl+jHsfbM892ZUQ==
Received: from pwj17 (pwj17.prod.google.com [10.241.219.81]) by wpaz13.hot.corp.google.com with ESMTP id nADGaYPP003449 for <oauth@ietf.org>; Fri, 13 Nov 2009 08:37:00 -0800
Received: by pwj17 with SMTP id 17so2281785pwj.5 for <oauth@ietf.org>; Fri, 13 Nov 2009 08:37:00 -0800 (PST)
MIME-Version: 1.0
Received: by 10.114.86.5 with SMTP id j5mr8222733wab.0.1258130220083; Fri, 13 Nov 2009 08:37:00 -0800 (PST)
In-Reply-To: <90C41DD21FB7C64BB94121FBBC2E72343785102E58@P3PW5EX1MB01.EX1.SECURESERVER.NET>
References: <daf5b9570911082102u215dcf22gf0aeb2f3578e5ea0@mail.gmail.com> <35D50F5C-3982-4298-A9E0-86A528F5C5D3@jkemp.net> <daf5b9570911092158k682aff63l959c423c399b2277@mail.gmail.com> <4A956CE47D1066408D5C7EB34368A5110551FFC1@S4DE8PSAAQC.mitte.t-com.de> <daf5b9570911111754u49f72a0aia59814b5da497a51@mail.gmail.com> <90C41DD21FB7C64BB94121FBBC2E72343785102B49@P3PW5EX1MB01.EX1.SECURESERVER.NET> <cb5f7a380911120745w2f576d1ej300723581e50f03f@mail.gmail.com> <90C41DD21FB7C64BB94121FBBC2E72343785102E58@P3PW5EX1MB01.EX1.SECURESERVER.NET>
Date: Fri, 13 Nov 2009 08:37:00 -0800
Message-ID: <cb5f7a380911130837q40d07388y1ae9b472be0ae57a@mail.gmail.com>
From: John Panzer <jpanzer@google.com>
To: Eran Hammer-Lahav <eran@hueniverse.com>
Content-Type: text/plain; charset="ISO-8859-1"
Content-Transfer-Encoding: quoted-printable
X-System-Of-Record: true
Cc: "oauth@ietf.org" <oauth@ietf.org>
Subject: Re: [OAUTH-WG] why are we signing?
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: Fri, 13 Nov 2009 16:36:35 -0000

The 90% is just MHO.

I think we should be sure that using TLS for everything is unviable in
2010 before diving into complicated signing and binding.  For my use
cases, non body signed requests are about equivalent to bearer token
in terms of security; body signing is an interop pain point; absent a
deus ex machina with a new, secure, simple, ip-free, interoperable
algorithm for body signing I would personally use PLAINTEXT over TLS
for resource access and move on to more important things.

Note that nothing stops someone from defining a data protocol which
supplies signatures and even binds to the important bits of the
envelope.  And if you can get XML Dsig to work interoperably for your
protocol, great!  But OAuth 2 could be defined to leave that to
protocols and extensions.  In theory this would make things less
interoperable, but in practice signatures are a huge interop pain
point anyway (IMHO) so I do not believe there is a practical
difference in the field.

On Thursday, November 12, 2009, Eran Hammer-Lahav <eran@hueniverse.com> wrote:
> Are you suggesting using TLS for every protected resource or just for obtaining the token and refreshing it?
>
> OAuth today already supports this via the PLAINTEXT method (though not very cleanly with all the other parameters still required even if useless).
>
> Also What use cases? And where is this 90% comes from?
>
> I for one have always rejected the argument that since cookies are already so broken, there was little point in trying to make API security better. When we originally worked on OAuth we explicitly looked to prevent replay attacks as well as intercepting and changing an authenticated request. We limited our scope to protecting the request URI and (some) parameters. That provided sufficient protection to the APIs people had in mind at the time which were mostly GET/POST requests with just a few parameters. The body hash extension then extended the usefulness of the protocol to other payloads.
>
> The delegation half of the protocol deals with exchanging passwords with tokens. Those who find bearer token sufficient without any additional crypto can simply focus their attention on that. On the authentication side, I would like to offer something other than "use TLS for everything" or risk attacks for ("only") 10 minutes.
>
> EHL
>
>> -----Original Message-----
>> From: John Panzer [mailto:jpanzer@google.com]
>> Sent: Thursday, November 12, 2009 7:46 AM
>> To: Eran Hammer-Lahav
>> Cc: oauth@ietf.org
>> Subject: Re: [OAUTH-WG] why are we signing?
>>
>> I think that https plus bearer token is sufficient for 90% of use
>> cases.  I haven't heard a first principles argument otherwise.  If for
>> no other reason than the record, could the proponents of signing
>> explain why bearer token over TLS will not meet their needs?
>>
>> On Thursday, November 12, 2009, Eran Hammer-Lahav <eran@hueniverse.com>
>> wrote:
>> > As a matter of process, I would suggest looking at what the 1.0 HMAC-
>> SHA1 method signs, and discuss if it is where we should be. We are
>> working with an existing draft and should structure our discussions as
>> feedback to that point of reference. This doesn't limit the conclusion
>> in any way, and is how this WG has been chartered.
>> >
>> > EHL
>> >
>> >
>> >> -----Original Message-----
>> >> From: oauth-bounces@ietf.org [mailto:oauth-bounces@ietf.org] On
>> Behalf
>> >> Of Brian Eaton
>> >> Sent: Wednesday, November 11, 2009 5:54 PM
>> >> To: BeckW@telekom.de
>> >> Cc: oauth@ietf.org
>> >> Subject: Re: [OAUTH-WG] why are we signing?
>> >>
>> >> So we've got at least five different use cases for signing requests
>> >> with the oauth access token and token secret.
>> >>
>> >> Sweet.
>> >>
>> >> The downside to the use cases is that they all have incompatible
>> >> signature base strings.  I'd like to see us come up with something
>> so
>> >> that we don't have to reinvent the base string again for every
>> single
>> >> use case.
>> >>
>> >> Cheers,
>> >> Brian
>> >>
>> >> On Wed, Nov 11, 2009 at 5:49 PM,  <BeckW@telekom.de> wrote:
>> >> >
>> >> > On Mon, Nov 9, 2009 at 6:28 AM, John Kemp <john@jkemp.net> wrote:
>> >> >> If we are only interested in i) [authenticating the entity] then
>> >> > signing any piece of the message might
>> >> >> be sufficient. If we are interested in ii) [binding the signature
>> to
>> >> > the message] (or some other security property)
>> >> >> then we will need to identify which pieces of the message we want
>> to
>> >> > provide
>> >> >> that, or other, security properties for.
>> >> >
>> >> >> Brian Eaton wrote:
>> >> >> OK, let me try to summarize what I've heard on this thread about
>> the
>> >> >> different use-cases for message signing:
>> >> >>
>> >> >> - sign the HTTP request
>> >> >>   Used to prevent MITM from replaying token to a different URL.
>> >>  Also
>> >> >> limits the replay attack window to minutes instead of hours.
>> >> >>
>> >> >> - sign various other parts of the message
>> >> >>   DKIM: signs various message headers
>> >> >>   SIP: unspecified, just says "relevant parts of SIP request"
>> >> > Hannes Tschofenig suggested handle SIP messages the way described
>> in
>> >> RfC
>> >> > 4474 (SIP identity). It lists the parts of a SIP messsage that
>> need
>> >> to
>> >> > be protected.
>> >> >
>> >> > Wolfgang
>> >> >
>> >> _______________________________________________
>> >> OAuth mailing list
>> >> OAuth@ietf.org
>> >> https://www.ietf.org/mailman/listinfo/oauth
>> > _______________________________________________
>> > OAuth mailing list
>> >

-- 
--
John Panzer / Google
jpanzer@google.com / abstractioneer.org / @jpanzer