Re: [OAUTH-WG] signatures, v2

Dirk Balfanz <balfanz@google.com> Tue, 20 July 2010 00:22 UTC

Return-Path: <balfanz@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 5E52E3A6BA5 for <oauth@core3.amsl.com>; Mon, 19 Jul 2010 17:22:33 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -105.726
X-Spam-Level:
X-Spam-Status: No, score=-105.726 tagged_above=-999 required=5 tests=[AWL=0.250, BAYES_00=-2.599, FM_FORGED_GMAIL=0.622, HTML_MESSAGE=0.001, 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 AbcW2dxcn5fs for <oauth@core3.amsl.com>; Mon, 19 Jul 2010 17:22:31 -0700 (PDT)
Received: from smtp-out.google.com (smtp-out.google.com [216.239.44.51]) by core3.amsl.com (Postfix) with ESMTP id 8F8773A6838 for <oauth@ietf.org>; Mon, 19 Jul 2010 17:22:31 -0700 (PDT)
Received: from wpaz13.hot.corp.google.com (wpaz13.hot.corp.google.com [172.24.198.77]) by smtp-out.google.com with ESMTP id o6K0MivG009512 for <oauth@ietf.org>; Mon, 19 Jul 2010 17:22:44 -0700
DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d=google.com; s=beta; t=1279585364; bh=jWyeg0QamOmWOwfDUx7CDeKSrcU=; h=MIME-Version:In-Reply-To:References:Date:Message-ID:Subject:From: To:Cc:Content-Type; b=i+px1sAhZLW8iaof0do1R9CpxHdU1ITfYShR3fIO3mUKf11T8VbgVGdhBCgE68Ygh Lg2fZcnozWjiYCSdG8FkA==
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=e0mHl3+QEhGiD+fC/vzCZhxmGCLD9YLHr92MIo6rpItoO8+Li4dIcaCN2hpplMO6X SKJ6vGGeL/R53LnBU/p9Q==
Received: from iwn41 (iwn41.prod.google.com [10.241.68.105]) by wpaz13.hot.corp.google.com with ESMTP id o6K0Mh9N026352 for <oauth@ietf.org>; Mon, 19 Jul 2010 17:22:43 -0700
Received: by iwn41 with SMTP id 41so6845629iwn.2 for <oauth@ietf.org>; Mon, 19 Jul 2010 17:22:43 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.231.152.143 with SMTP id g15mr6719058ibw.76.1279585362659; Mon, 19 Jul 2010 17:22:42 -0700 (PDT)
Received: by 10.231.130.9 with HTTP; Mon, 19 Jul 2010 17:22:42 -0700 (PDT)
In-Reply-To: <4C431BA3.2000907@lodderstedt.net>
References: <AANLkTim7pvrLnQtz4WnDvYVRv0jbWgk3j8uMJj07CsM1@mail.gmail.com> <4C431BA3.2000907@lodderstedt.net>
Date: Mon, 19 Jul 2010 17:22:42 -0700
Message-ID: <AANLkTilBFabSRsxshSuBbzbYqwv7MzPbMq-fUBShjX9L@mail.gmail.com>
From: Dirk Balfanz <balfanz@google.com>
To: Torsten Lodderstedt <torsten@lodderstedt.net>
Content-Type: multipart/alternative; boundary="001636d34573004bb3048bc6af4c"
X-System-Of-Record: true
Cc: OAuth WG <oauth@ietf.org>
Subject: Re: [OAUTH-WG] signatures, v2
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, 20 Jul 2010 00:22:33 -0000

On Sun, Jul 18, 2010 at 8:20 AM, Torsten Lodderstedt <
torsten@lodderstedt.net> wrote:

>  Hi Dirk,
>
> I have some questions concerning your proposal:
>
> - As far as I understand, the difference to "magic signatures" lays in the
> usage of a JSON token carrying issuer, not_before, not_after and audience.
> While such properties are important for security tokens (assertions), I
> cannot see an advantage of using this format for signatures of HTTP
> requests. Would you please explain?
>

You mean advantage over magic signatures? It's really a similar idea - it's
just that magic signatures as is don't quite fit the bill. For example, they
have newlines in them:
http://salmon-protocol.googlecode.com/svn/trunk/draft-panzer-magicsig-00.html#anchor5



> - Key management
> From my point of view, your proposal does cover key management for web
> applications using RSA signatures. What about web applications intending to
> sign resource server requests using HMAC (for performance reasons)? Do they
> need to exchange secrets with the resource server?
>

Correct - I'm not saying how HMAC keys are being distributed. Presumably,
you would use a similar system to what many platform providers use today -
you sign up as a developer, and they give you a "developer key" (or "API
key").


> What about installed applications (mobile, desktop, set top boxes, gaming
> devices)?
>

I don't think that installed apps can ever authenticate themselves (i.e.,
prove the statement "I am a copy of the FooBar app"), so I'm not trying to
solve that. What we _can_ do is deliver OAuth tokens to an installed app of
the user's choice, but the server won't know who received the token - only
the user does.


>  1) RSA: Do they need to provide their public key on a web server? This
> would be an additional requirement for such applications.
>  2) HMAC: Same as for web apps, but even harder because either (a) the
> installed app has a static secret burned
> into source code or (b) it needs to use a protocol for dynamic key
> management the resource server has to implement. Is this the plan?
>
> Remark on (
> https://docs.google.com/document/pub?id=1kv6Oz_HRnWa0DaJx_SQ5Qlk_yqs_7zNAm75-FmKwNo4
> ):
> "To obtain an HMAC verification key, the client has to exchange, in an
> out-of-band fashion, shared keys with the issuer."
>
> I assume "client" should be "verifier", shouldn't it?
>

Yes. Thanks - fixed!

Dirk.


>
> regards,
> Torsten.
>
> Am 16.07.2010 02:43, schrieb Dirk Balfanz:
>
>  Hi guys,
>
>  after reading through the feedback, we did a pass over the OAuth
> signature proposals.
>
>  As a reminder, there are three documents:
>
>  - a document (called "JSON Tokens") that just explains how to sign
> something and verify the signature:
>
> http://docs.google.com/document/pub?id=1kv6Oz_HRnWa0DaJx_SQ5Qlk_yqs_7zNAm75-FmKwNo4
>
>  - an extension of JSON Tokens that can be used for signed OAuth tokens:
>
> http://docs.google.com/document/pub?id=1JUn3Twd9nXwFDgi-fTKl-unDG_ndyowTZW8OWX9HOUU
>
>  - a different extension of JSON Tokens that can be used whenever the spec
> calls for an "assertion":
>
> http://docs.google.com/document/pub?id=1s4kjRS9P0frG0ulhgP3He01ONlxeTwkFQV_pCoOowzc
> (When used in the assertion flow, this last token can also be used to do
> "2-legged" OAuth)
>
>  A summary of the (scant) changes:
>
>  - we spelled out what we mean by RSA-SHA256.* Ben Laurie *- can you
> double-check that that sounds good?
> - we decided on unpadded websafe-base64 throughout.
> - some changes to parameter names.
> - some small changes I might be forgetting now...
>
>  As explained in my message to the previous thread, there is still no
> envelope in there to help with encrypted tokens (b/c we don't understand
> well enough what the envelopes for encrypted tokens would look like).
>
>  One question: What's the deal with having the signature go first? If you
> can explain to me why that is a good idea, I'm happy to oblige.
>
>  Cheers,
>
>  Dirk & Marius.
>
>
> _______________________________________________
> OAuth mailing list
> OAuth@ietf.orghttps://www.ietf.org/mailman/listinfo/oauth
>
>