Re: [OAUTH-WG] OAuth v2-18 comment on "state" parameter

Bob Van Zant <bob@veznat.com> Wed, 20 July 2011 16:10 UTC

Return-Path: <bigbadbob0@gmail.com>
X-Original-To: oauth@ietfa.amsl.com
Delivered-To: oauth@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id D797D21F8AEF for <oauth@ietfa.amsl.com>; Wed, 20 Jul 2011 09:10:06 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.864
X-Spam-Level:
X-Spam-Status: No, score=-2.864 tagged_above=-999 required=5 tests=[AWL=0.113, BAYES_00=-2.599, FM_FORGED_GMAIL=0.622, RCVD_IN_DNSWL_LOW=-1]
Received: from mail.ietf.org ([64.170.98.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id flghC9ZlXxro for <oauth@ietfa.amsl.com>; Wed, 20 Jul 2011 09:10:06 -0700 (PDT)
Received: from mail-qw0-f44.google.com (mail-qw0-f44.google.com [209.85.216.44]) by ietfa.amsl.com (Postfix) with ESMTP id 0CA4F21F8AE9 for <oauth@ietf.org>; Wed, 20 Jul 2011 09:10:05 -0700 (PDT)
Received: by qwc23 with SMTP id 23so310735qwc.31 for <oauth@ietf.org>; Wed, 20 Jul 2011 09:09:52 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=mime-version:sender:in-reply-to:references:date :x-google-sender-auth:message-id:subject:from:to:cc:content-type; bh=kckWqXywm0wdlJWZyVuvCHhU+o9yhS+IP4gAm4jeI6M=; b=qvCUrtC+/rs+nVCFGVeP0Yb6IDYzXk9SdDyIYzrW/GpX5dB+QJuYpb/rYVJ4BJhFtP 5H6voxYN1/DqLi2rP7ki7FNH8IEnMpgKfwxH7/eMQwuu0lXgjNWbee4g3fkqUp9DPkrA h+q2uu4oQUoiOd27yEnNQD+rlV8NgV3SIQkVo=
MIME-Version: 1.0
Received: by 10.229.30.138 with SMTP id u10mr5012481qcc.3.1311178190872; Wed, 20 Jul 2011 09:09:50 -0700 (PDT)
Sender: bigbadbob0@gmail.com
Received: by 10.229.100.136 with HTTP; Wed, 20 Jul 2011 09:09:50 -0700 (PDT)
In-Reply-To: <CAGHdeD711qcuZiJ6C8miMNfTW1iDTvqG1KKrEZrWsM2Mxxs3WA@mail.gmail.com>
References: <CADrOfLJSd8Z=QfCcGUdFBU314rmjv9-u25Vta+ObXfNAwoA06w@mail.gmail.com> <4E22B021.7080009@cisco.com> <90C41DD21FB7C64BB94121FBBC2E7234501D6E0656@P3PW5EX1MB01.EX1.SECURESERVER.NET> <CAGHdeD711qcuZiJ6C8miMNfTW1iDTvqG1KKrEZrWsM2Mxxs3WA@mail.gmail.com>
Date: Wed, 20 Jul 2011 09:09:50 -0700
X-Google-Sender-Auth: L7_z07s1OPyXHtncmPJ5Gh6NUuI
Message-ID: <CADrOfLJd7jtfJGBwxaX1bQHN-Ow=T-kGLTgOWw0rR1cYGCpzog@mail.gmail.com>
From: Bob Van Zant <bob@veznat.com>
To: Breno <breno.demedeiros@gmail.com>, Eran Hammer-Lahav <eran@hueniverse.com>
Content-Type: text/plain; charset="ISO-8859-1"
Cc: OAuth WG <oauth@ietf.org>
Subject: Re: [OAUTH-WG] OAuth v2-18 comment on "state" parameter
X-BeenThere: oauth@ietf.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: OAUTH WG <oauth.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/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: Wed, 20 Jul 2011 16:10:07 -0000

I think somewhere in here my original comments got lost. The spec, as
written, provides no limitations on what can go in the state variable.
If we don't define those limitations in the spec implementors are
going to define their own limitations (I'm on the verge of doing it
myself).

I propose that the state variable be limited to the set of characters
[a-zA-Z0-9_-] and be restricted to a maximum length of 150 characters.
It's simple, doesn't require URL encoding, and will be hard for a
client application to turn into a vulnerability. It provides plenty of
uniqueness (it can fit a sha512) for even the largest and most used
client applications.

-Bob


On Wed, Jul 20, 2011 at 8:24 AM, Breno <breno.demedeiros@gmail.com> wrote:
>
>
> On Mon, Jul 18, 2011 at 11:32 PM, Eran Hammer-Lahav <eran@hueniverse.com>
> wrote:
>>
>>
>> > -----Original Message-----
>> > From: oauth-bounces@ietf.org [mailto:oauth-bounces@ietf.org] On Behalf
>> > Of Eliot Lear
>> > Sent: Sunday, July 17, 2011 2:49 AM
>>
>> > One other point: if the redirection_uri can have fragments and can be
>> > provided, why is state necessary?
>>
>> First, I assume you mean query instead of fragment.
>>
>> This was discussed on the list about a year ago. There isn't a requirement
>> to support both dynamic redirection URIs as well as a special state
>> parameter. However, the state parameter provides a better way to allow
>> customization of the redirection request alongside full registration of the
>> redirection URI. Section 3.1.2 recommends using the state parameter over
>> changing the redirection URI itself.
>>
>> Using state is much simpler because the authorization server does not have
>> to implement potentially insecure URI comparison algorithms for dynamic
>> redirection URIs.
>
> Agree -- for instance, Google's provider doesn't allow arbitrary dynamic
> specification of query or fragment parameters in redirect URIs, for
> instance, due largely to security considerations.
>
>>
>> EHL
>> _______________________________________________
>> OAuth mailing list
>> OAuth@ietf.org
>> https://www.ietf.org/mailman/listinfo/oauth
>
>
>
> --
> Breno de Medeiros
>
>