Re: [OAUTH-WG] Facebook, OAuth, and WRAP

Brian Eaton <beaton@google.com> Tue, 01 December 2009 00:20 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 8FF8B28C15C for <oauth@core3.amsl.com>; Mon, 30 Nov 2009 16:20:39 -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 oIUhCydcSZdo for <oauth@core3.amsl.com>; Mon, 30 Nov 2009 16:20:38 -0800 (PST)
Received: from smtp-out.google.com (smtp-out.google.com [216.239.33.17]) by core3.amsl.com (Postfix) with ESMTP id 8E06228C177 for <oauth@ietf.org>; Mon, 30 Nov 2009 16:20:38 -0800 (PST)
Received: from wpaz5.hot.corp.google.com (wpaz5.hot.corp.google.com [172.24.198.69]) by smtp-out.google.com with ESMTP id nB10KTMx024916 for <oauth@ietf.org>; Tue, 1 Dec 2009 00:20:30 GMT
DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d=google.com; s=beta; t=1259626830; bh=WmKAe41ZNo3uOAdAp7n4IK5i0vM=; h=MIME-Version:In-Reply-To:References:Date:Message-ID:Subject:From: To:Cc:Content-Type; b=WEHMcvDwO5Hmfu8ZSguW/yV93s3ghHFmFdVuFYoZk0NZaDKfsMs5lCD4Lo/F8h8zu sZ9eZzKYK+g8t9tm8l4Tw==
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=rhccix0NRNT52U3HRYnJ1pI6JO/TkkbAJieuW5q4PBOpBHSWg3150c5H/NFPFsOUm obA8d9CJX2EePtwAGngdg==
Received: from pxi39 (pxi39.prod.google.com [10.243.27.39]) by wpaz5.hot.corp.google.com with ESMTP id nB10KQsL001372 for <oauth@ietf.org>; Mon, 30 Nov 2009 16:20:27 -0800
Received: by pxi39 with SMTP id 39so3344101pxi.2 for <oauth@ietf.org>; Mon, 30 Nov 2009 16:20:26 -0800 (PST)
MIME-Version: 1.0
Received: by 10.140.127.8 with SMTP id z8mr337863rvc.156.1259626826769; Mon, 30 Nov 2009 16:20:26 -0800 (PST)
In-Reply-To: <a9d9121c0911301452w70b80375id04c27884a9d5597@mail.gmail.com>
References: <148C596691F29F4EA6968577BE2CDFAE06A1B9FE@SC-MBXC1.TheFacebook.com> <a9d9121c0911241635p4f2cc394vefe350b2ce3daa22@mail.gmail.com> <C6B20C22-ED3A-4714-943F-FEA0A2347045@facebook.com> <a9d9121c0911301144l7b08ba9l6acd358c29ae2b09@mail.gmail.com> <daf5b9570911301349h1836c921o223837edd22e37d1@mail.gmail.com> <a9d9121c0911301452w70b80375id04c27884a9d5597@mail.gmail.com>
Date: Mon, 30 Nov 2009 16:20:26 -0800
Message-ID: <daf5b9570911301620s6f91a2aaqecd38587b4433734@mail.gmail.com>
From: Brian Eaton <beaton@google.com>
To: Mike Malone <mjmalone@gmail.com>
Content-Type: text/plain; charset="ISO-8859-1"
X-System-Of-Record: true
Cc: "oauth@ietf.org" <oauth@ietf.org>, Naitik Shah <naitik@facebook.com>, Luke Shepard <lshepard@facebook.com>
Subject: Re: [OAUTH-WG] Facebook, OAuth, and WRAP
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: Tue, 01 Dec 2009 00:20:39 -0000

On Mon, Nov 30, 2009 at 2:52 PM, Mike Malone <mjmalone@gmail.com> wrote:
> As far as I can tell, if we're treating everything as opaque strings,
> the only real difference between a WRAP "refresh token" and an OAuth
> "request token" is that a "refresh token" can be exchanged for an
> "access token" multiple times in WRAP (since the access tokens
> expire). Is there some other non-trivial difference that I'm missing?

The main difference between the OAuth request token and the WRAP
refresh token is when they are generated and how they are used.

> Again, maybe I'm mistaken, but the verification code seems to be
> included in WRAP to protect against the sort of session fixation
> attack that OAuth 1.0 was susceptible to. In OAuth 1.0a the OAuth
> Verifier was added to fix that vulnerability, which is why I said the
> OAuth Verifier and WRAP Verification Code were essentially equivalent.

In WRAP we combined the OAuth request token and the OAuth verification
code into a single value.  It saves a round trip in the protocol.  The
verification code serves both as a form of user identifier and as an
unguessable value used to prevent session fixation.

Cheers,
Brian