Hi Ethan,

<snip>

The most important and unavoidable tradeoff is performance. The

IMHO the comparison is asymmetric. You compare SSL, which offers various security
measures, with just signatures on plain HTTP requests. Sure, validating a
(HMAC) signature is cheap, but signatures only give you sender authentication and
(depending on what has been included in the digest computation)
message integrity protection. But any attacker might replay the messages, so what
about replay prevention?

Replay prevention over unsecure connections is typically (as in OAuth 1.0 and OpenId) implemented using nounces and timestamps. Validating nounces requires server-side,
cluster-wide state (transient or database). All requests must be validated
against this state in serialized order. So you end up with
a) scalability issues and
b) performance impacts.

SSL scales both linearly and horicontally.

Not to forget, a HTTP request may be cached by any proxy on the way from end user device to target service. Care has to be taken in order to prevent proxies from
caching sensible requests.

performance tradeoff comes in two flavors:

1. Connection latency to bootstrap the connection (from the
asymmetric/public-key encryption operations)

Bootstrapping a SSL sessions is expensive. But every session can be
used for multiple HTTPS-Connections. Thus an application can establish the first
HTTPS connection in the background before any user interaction takes place and
reuse the session for further communication.

2. Processing to encrypt requests (from the symmetric/private-key
encryption operations)

TLS is powerful and expensive. That's true. I sometimes wish to have something
more lightweight and flexible where I could decide on a per-message base which security
features to use. But this is hugh story.

From my point of view, the working group should decide what OAuth 2.0 should be:

1) a standard for token-based authentication and authorization or
2) a standard for HTTP security including token-based authentication and authorization

In the first case, token holder authentication (Holder of Key in SAML and WS-Trust) based on signing
a nounce should suffice.

In the later case, the standard should provide a (large) subset of SSL protection features, e.g. message integrity, message confidentiality, server authentication, replay prevention.

regards,
Torsten.






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

Reply via email to