First, thanks for putting this together. It provides a pretty comprehensive 
story about the signed tokens proposal. I don't have much to add at this point 
to the drafts.

My position, which I have expressed many times before about this approach is:

Any solution involving repeating the HTTP request elements in some sort of 
envelope will require validation .In this case, you need to define all the 
rules for validating the 'audience' parameter.

This approach makes it too tempting for server developers to ignore the HTTP 
request and only use the values of the 'audience' and 'method' parameters. In 
order to validate those parameters, the server needs to perform some sort of 
normalization (which eventually leads to the same signature mismatch problems). 
Not looking at the HTTP request will lead to security problems because it will 
allow bypassing existing HTTP firewall rules which operate on the request URI 
and HTTP method.

As a matter of personal taste, this smells too much like SOAP. And that's a 
really bad thing.

I am not in favor of any solution that replicates components of the HTTP 
request within the request (as is the case here). Recent experience shows that 
with a little help and good libraries, developers can figure out how to 
normalize and sign an HTTP request successfully, when motivated.

EHL


On 9/23/10 7:07 PM, "Dirk Balfanz" <balf...@google.com> wrote:



On Thu, Sep 23, 2010 at 6:51 PM, Eran Hammer-Lahav <e...@hueniverse.com> wrote:
In part II, how is the signature bound to the HTTP request URI? I see the 
method and body, but not the request URI.

The request URI goes in the audience parameter that's defined in part I.

Dirk.


EHL



On 9/23/10 3:39 PM, "Dirk Balfanz" <balf...@google.com 
<http://balf...@google.com> > wrote:

Hi guys,

sorry it took a while, but here is an updated proposal. It's still in three 
parts:

Part I is about "JSON Tokens" that can be used for all sorts of things, not 
just OAuth:
http://balfanz.github.com/jsontoken-spec/draft-balfanz-jsontoken-00.html

Part II is about how to embed an OAuth token and (some parts of) an HTTP 
request into a JSON Token:
http://balfanz.github.com/jsontoken-spec/draft-balfanz-signedoauth2-00.html

Part III is how to use signatures instead of client secrets for assertions in 
OAuth:
http://balfanz.github.com/jsontoken-spec/draft-balfanz-clientassertions-00.html

Diffs from the last specs are:

- JSON Tokens are now just a profile of Magic Signatures, which John Panzer has 
helpfully extended for this purpose
- There was a vulnerability to masquerading attacks in the last proposal, which 
is addressed in this proposal by adding a data_type parameter that is part of 
the signature, but _not_ part of the payload.
- no more support of X.509 certs - the only supported format for discovered 
public keys is now the Magic Key format. We'll give people tools (which are 
quite easy to write) to convert their self-signed or CA-issued certs to magic 
keys.
- The specs are now formatted as I-Ds.

Comments, please!

Dirk.




_______________________________________________
OAuth mailing list
OAuth@ietf.org
https://www.ietf.org/mailman/listinfo/oauth

Reply via email to