Re: [OAUTH-WG] Understanding how OpenSocial uses OAuth 1.0a

Brian Eaton <beaton@google.com> Fri, 19 March 2010 22:21 UTC

Return-Path: <beaton@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 4AA953A6808 for <oauth@core3.amsl.com>; Fri, 19 Mar 2010 15:21:40 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -101.13
X-Spam-Level:
X-Spam-Status: No, score=-101.13 tagged_above=-999 required=5 tests=[AWL=-0.282, BAYES_00=-2.599, DNS_FROM_OPENWHOIS=1.13, FM_FORGED_GMAIL=0.622, 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 8RbANIG14TKS for <oauth@core3.amsl.com>; Fri, 19 Mar 2010 15:21:38 -0700 (PDT)
Received: from smtp-out.google.com (smtp-out.google.com [74.125.121.35]) by core3.amsl.com (Postfix) with ESMTP id 8106D3A6A73 for <oauth@ietf.org>; Fri, 19 Mar 2010 15:21:10 -0700 (PDT)
Received: from wpaz37.hot.corp.google.com (wpaz37.hot.corp.google.com [172.24.198.101]) by smtp-out.google.com with ESMTP id o2JMLLF9007651 for <oauth@ietf.org>; Fri, 19 Mar 2010 23:21:22 +0100
DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d=google.com; s=beta; t=1269037282; bh=bO8/sZ49+f5XMFc/PjxJXIuOf3c=; h=MIME-Version:In-Reply-To:References:Date:Message-ID:Subject:From: To:Cc:Content-Type; b=IAW6TyXACwJnm/bp5MDXRYfyWJymyRZl+UgsRwotfniL9a4wxo8ZROsIzfc0KMM/6 xFsVq2ydFHw8uEaNdIzGA==
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:x-system-of-record; b=r25k9bcl8Vbjsm8VLxEzWrgXEB9CmWm5xBZR1wrOIj8IF/8WquoreN7CJwOePukgN zvLpAg9aXwoWUwWXX5X9g==
Received: from vws20 (vws20.prod.google.com [10.241.21.148]) by wpaz37.hot.corp.google.com with ESMTP id o2JMLJDn030735 for <oauth@ietf.org>; Fri, 19 Mar 2010 15:21:20 -0700
Received: by vws20 with SMTP id 20so1008495vws.0 for <oauth@ietf.org>; Fri, 19 Mar 2010 15:21:19 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.220.127.28 with SMTP id e28mr715441vcs.12.1269037279473; Fri, 19 Mar 2010 15:21:19 -0700 (PDT)
In-Reply-To: <68f4a0e81003191416k70099a49o10fe5ba41bedfb83@mail.gmail.com>
References: <fd6741651003161112y2eceb494ue28db2644ba1d32a@mail.gmail.com> <68f4a0e81003191052m7ab778d6n330e58bd58b9f924@mail.gmail.com> <daf5b9571003191144j74ea597cgf06ef3ba449cecef@mail.gmail.com> <68f4a0e81003191416k70099a49o10fe5ba41bedfb83@mail.gmail.com>
Date: Fri, 19 Mar 2010 15:21:19 -0700
Message-ID: <daf5b9571003191521l4f18c47dud34f39558d4139d7@mail.gmail.com>
From: Brian Eaton <beaton@google.com>
To: Ethan Jewett <esjewett@gmail.com>
Content-Type: text/plain; charset="ISO-8859-1"
X-System-Of-Record: true
Cc: OAuth WG <oauth@ietf.org>
Subject: Re: [OAUTH-WG] Understanding how OpenSocial uses OAuth 1.0a
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, 19 Mar 2010 22:21:40 -0000

On Fri, Mar 19, 2010 at 2:16 PM, Ethan Jewett <esjewett@gmail.com> wrote:
> On Fri, Mar 19, 2010 at 2:44 PM, Brian Eaton <beaton@google.com> wrote:
>> Plaintext doesn't work in this context, because it sends long-lived
>> secrets in clear-text to servers that are under the control of the
>> application author, or, in the case of gadgets, everyone viewing the
>> gadget.
>
> That's not what I read. In the OpenSocial case the gadget does not
> hold the secret as that would be insecure in the manner you describe.
> The container holds the secret. The gadget only tells the container
> what signing method to use, not what secret to use. How the container
> manages to get the secret or keep track of which secret works with
> which provider is a mystery to me.
>
> There is not need to send the secret in the clear. OAuth 1.0a says
> that the PLAINTEXT method should be used only over a secure channel.

The gadget tells the container *where* to send the request.  So if
OpenSocial gadgets supported PLAINTEXT, a malicious gadget author, or
a malicious user of a gadget (they are pure javascript) could tell the
container "please send a request to
https://www.example.com/log_my_secret".

And the container would then leak the secret to www.example.com.

Note that the encrypted channel doesn't help with this. =)

Also note that the OAuth signing is intended to authenticate the
opensocial_* and oauth_* parameters as having originated with the
container, not the gadget.  If you allow PLAINTEXT, that doesn't work
any longer either.

Cheers,
Brian