Re: [OAUTH-WG] "shared symmetric secret"
John Kemp <john@jkemp.net> Tue, 13 July 2010 18:45 UTC
Return-Path: <john@jkemp.net>
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 963623A69EF for <oauth@core3.amsl.com>; Tue, 13 Jul 2010 11:45:39 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.265
X-Spam-Level:
X-Spam-Status: No, score=-2.265 tagged_above=-999 required=5 tests=[BAYES_00=-2.599, IP_NOT_FRIENDLY=0.334]
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 tNPJkvdRiw1g for <oauth@core3.amsl.com>; Tue, 13 Jul 2010 11:45:38 -0700 (PDT)
Received: from cpoproxy3-pub.bluehost.com (cpoproxy3-pub.bluehost.com [67.222.54.6]) by core3.amsl.com (Postfix) with SMTP id 5981E3A67D9 for <oauth@ietf.org>; Tue, 13 Jul 2010 11:45:38 -0700 (PDT)
Received: (qmail 29762 invoked by uid 0); 13 Jul 2010 18:45:47 -0000
Received: from unknown (HELO box320.bluehost.com) (69.89.31.120) by cpoproxy3.bluehost.com with SMTP; 13 Jul 2010 18:45:47 -0000
DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=default; d=jkemp.net; h=Received:Subject:Mime-Version:Content-Type:From:In-Reply-To:Date:Cc:Content-Transfer-Encoding:Message-Id:References:To:X-Mailer:X-Identified-User; b=qFpHHzdFP2Anqs+4rk9PtHNepgH6OdYzi9UY1SWJs9rJZgUGsNXRajIgrpJkZv5TB1Vk87IkGr55LdyugwX45bBj8/tW0XYGsKFppvDLR+/gsyTOGopVn88OzAW5b9pU;
Received: from cpe-69-205-56-47.nycap.res.rr.com ([69.205.56.47] helo=[192.168.1.112]) by box320.bluehost.com with esmtpsa (TLSv1:AES128-SHA:128) (Exim 4.69) (envelope-from <john@jkemp.net>) id 1OYkUE-00073Z-OH; Tue, 13 Jul 2010 12:45:47 -0600
Mime-Version: 1.0 (Apple Message framework v1081)
Content-Type: text/plain; charset="iso-8859-1"
From: John Kemp <john@jkemp.net>
In-Reply-To: <C861F32E.371BA%eran@hueniverse.com>
Date: Tue, 13 Jul 2010 14:45:45 -0400
Content-Transfer-Encoding: quoted-printable
Message-Id: <AEE8A2D7-757B-45EC-B91B-22780A2235B4@jkemp.net>
References: <C861F32E.371BA%eran@hueniverse.com>
To: Eran Hammer-Lahav <eran@hueniverse.com>
X-Mailer: Apple Mail (2.1081)
X-Identified-User: {1122:box320.bluehost.com:jkempnet:jkemp.net} {sentby:smtp auth 69.205.56.47 authed with john+jkemp.net}
Cc: OAuth WG <oauth@ietf.org>
Subject: Re: [OAUTH-WG] "shared symmetric secret"
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, 13 Jul 2010 18:45:39 -0000
Hi Eran,
On Jul 13, 2010, at 1:40 PM, Eran Hammer-Lahav wrote:
>
> On 7/13/10 10:25 AM, "John Kemp" <john@jkemp.net> wrote:
>
>> On Jul 13, 2010, at 12:02 PM, Eran Hammer-Lahav wrote:
>>
>>> I am ok replacing it with Oacts as a password¹.
>>
>> An access token is something used by the server to decide whether a request is
>> authorized. Although it may also be used for authenticating the request(er),
>> it's purpose is to authorize the request.
>
> It is used to authenticate the *request*
Can you give me a rough pointer to where that text is in the specification?
I see your assertion in section 5, but for example, the glossary definition of "token" says:
"A string representing an access authorization issued to the
client."
(note "authorization")
and:
"Specific additional authentication
credentials may be required in order for a client to use a
token."
Which suggests that in addition to the presence of an authorizing token, the server should authenticate the client. We could be more explicit about that, but the idea seems to be there already (as it should, in my opinion).
> , it is used in the same manner
> other HTTP authentication schemes operate, and it has the same behavior as a
> password (security wise: plain-text storage on the client side, can be
> phished, usable by any bearer).
You may be right that the token MIGHT be stored plain-text on the client. MIGHT be phished. MIGHT be used by someone who is not the entity to which the token was originally given.
But it is not required to be used that way, and if the client security properties that you mention are employed, certainly SHOULD NOT be used to authenticate the client.
>
>> In the "bearer token" case (and even over SSL unless client certs are used),
>> the token clearly SHOULD NOT be used as a password. Rather, authentication
>> should be performed by some other mechanism, unrelated to the token itself
>> (such as an HMAC, or via client-certificate SSL/TLS, or even via an actual
>> username/password)
>
> OAuth only includes the "bearer token case". There are no other cases
> specified.
Authentication of the request is out of scope for OAuth. OK, but security considerations should note that requests should be authenticated as well as being authorized.
>
>> I would be very unhappy if we equated access tokens with passwords.
>>
>> I agree with Dirk that "capability" is a more expressive phrase than either
>> "shared secret" or "password".
>
> Expressive to you and people well-versed in security theory. It means
> nothing to a casual reader. The token definition includes the term,
And I am happy with the text included in the definition (as shown above). Why should it be different in section 5?
> but in
> this section, it is referring to how an access token is used, and it is used
> just like a password.
>
> For better or worse, we turned the 1.0 access token into a 2.0 password.
I'd really like to understand why you feel that way - is there text that you feel specifically supports your assertion that the token is used to *authenticate* rather than *authorize* the request?
- johnk
>
> EHL
>
>> Regards,
>>
>> - johnk
>>
>>>
>>> EHL
>>>
>>>
>>> On 7/13/10 8:55 AM, "Dirk Balfanz" <balfanz@google.com> wrote:
>>>
>>>
>>>
>>> On Tue, Jul 13, 2010 at 7:18 AM, Eran Hammer-Lahav <eran@hueniverse.com>
>>> wrote:
>>> From the client's perspective, they are 'shared symmetric secrets' because
>>> the client has to store them as-is and present them as-is. The act exactly
>>> like passwords. I added that text to make that stand out.
>>>
>>> When using passwords, the server doesn't need to store them in plain-text
>>> either (e.g. uses a way one hash).
>>>
>>> That's why we don't call passwords "shared symmetric secrets", either. The
>>> verifier of a passwords can verify it without knowing the secret. In that
>>> sense, it's not "shared" with the verifier.
>>>
>>> I would like the specification to make it clear that bearer tokens are only
>>> secure while they remain *secret* and that *anyone* holding them can gain
>>> full access to what their protect.
>>>
>>> I think the word "capability" expresses that better than the word "shared
>>> secret".
>>>
>>> Dirk.
>>>
>>>
>>> EHL
>>>
>>> On 7/12/10 10:39 PM, "Brian Eaton" <beaton@google.com> wrote:
>>>
>>>> Section 5: http://tools.ietf.org/html/draft-ietf-oauth-v2-10#section-5
>>>>
>>>> Calling access tokens "shared symmetric secrets" is misleading,
>>>> because if they are implemented well the authorization server and
>>>> protected resource do not store a copy of the secret.
>>>>
>>>> Instead they store a one-way hash of the token. Or they verify the
>>>> token cryptographically. Under no circumstances do they need to store
>>>> a copy.
>>>>
>>>> I'd suggest the following language:
>>>>
>>>> "Access tokens are bearer authentication tokens or capabilities."
>>>>
>>>> Cheers,
>>>> Brian
>>>> _______________________________________________
>>>> OAuth mailing list
>>>> OAuth@ietf.org
>>>> https://www.ietf.org/mailman/listinfo/oauth
>>>>
>>>
>>> _______________________________________________
>>> OAuth mailing list
>>> OAuth@ietf.org
>>> https://www.ietf.org/mailman/listinfo/oauth
>>>
>>>
>>> _______________________________________________
>>> OAuth mailing list
>>> OAuth@ietf.org
>>> https://www.ietf.org/mailman/listinfo/oauth
>>
>>
>
- [OAUTH-WG] "shared symmetric secret" Brian Eaton
- Re: [OAUTH-WG] "shared symmetric secret" Eran Hammer-Lahav
- Re: [OAUTH-WG] "shared symmetric secret" Igor Faynberg
- Re: [OAUTH-WG] "shared symmetric secret" Dirk Balfanz
- Re: [OAUTH-WG] "shared symmetric secret" Eran Hammer-Lahav
- Re: [OAUTH-WG] "shared symmetric secret" Eran Hammer-Lahav
- Re: [OAUTH-WG] "shared symmetric secret" John Kemp
- Re: [OAUTH-WG] "shared symmetric secret" Eran Hammer-Lahav
- Re: [OAUTH-WG] "shared symmetric secret" John Kemp
- Re: [OAUTH-WG] "shared symmetric secret" Richer, Justin P.
- Re: [OAUTH-WG] "shared symmetric secret" John Kemp
- Re: [OAUTH-WG] "shared symmetric secret" Blaine Cook
- Re: [OAUTH-WG] "shared symmetric secret" John Kemp
- Re: [OAUTH-WG] "shared symmetric secret" Blaine Cook
- Re: [OAUTH-WG] "shared symmetric secret" Brian Eaton
- Re: [OAUTH-WG] "shared symmetric secret" Igor Faynberg
- Re: [OAUTH-WG] "shared symmetric secret" Brian Eaton
- Re: [OAUTH-WG] "shared symmetric secret" Eran Hammer-Lahav
- Re: [OAUTH-WG] "shared symmetric secret" John Kemp
- Re: [OAUTH-WG] "shared symmetric secret" Igor Faynberg
- Re: [OAUTH-WG] "shared symmetric secret" Eran Hammer-Lahav
- Re: [OAUTH-WG] "shared symmetric secret" Zeltsan, Zachary (Zachary)
- Re: [OAUTH-WG] "shared symmetric secret" Eran Hammer-Lahav
- Re: [OAUTH-WG] "shared symmetric secret" Evan Gilbert
- Re: [OAUTH-WG] "shared symmetric secret" Eran Hammer-Lahav
- Re: [OAUTH-WG] "shared symmetric secret" Evan Gilbert