Hans,

Thanks; while I see the argument, my counter argument was to ask for a 
situation where you’d want to protect the state value but not code, 
client_secret, redirect_uri, and everything else in the request. If you 
actually want to protect all of that, it’s better to have a message-level 
protection mechanism instead of a piecemeal solution.

 — Justin

> On Jan 21, 2016, at 2:24 PM, Hans Zandbelt <hzandb...@pingidentity.com> wrote:
> 
> Note that the argument was not about message-level protection: it was about 
> not disclosing the state value verbatim over the token endpoint.
> 
> I don't feel strongly about it either; it was just what was agreed at first. 
> Since no-one actually came up with even a hypothetical attack I guess it 
> makes sense to revert that decision.
> 
> Hans.
> 
> On 1/21/16 7:58 PM, Justin Richer wrote:
>> Thank you for removing state hashing and please don’t add it back. It’s
>> security theater, and that’s giving it the benefit of the doubt.
>> Remember, this is being sent in a  request where other parameters (code,
>> client_id, client_secret, redirect_uri) are all sent plain over TLS as
>> well. Either come up with a general mechanism to hash everything or
>> don’t hash anything. The latter is more likely to win, and it’s the only
>> thing that makes sense currently.
>> 
>> Also, keep in mind that if the client hashes the state on the second
>> request, then the server can’t store the state parameter using its own
>> hash methods (for data-at-rest protection) and still be able to do the
>> comparison. Having the client send it over plain is really better all
>> around in terms of simplicity and adoptability.
>> 
>> Now if we really wanted to have message-level protection of HTTP
>> requests, I can think of a good way to do that…
>> 
>>  — Justin
>> 
>> 
>>> On Jan 21, 2016, at 9:41 AM, John Bradley <ve7...@ve7jtb.com
>>> <mailto:ve7...@ve7jtb.com>> wrote:
>>> 
>>> We merged the state verification in with this rather than forcing
>>> people to also look at the JWT encoded State draft.
>>> https://tools.ietf.org/html/draft-bradley-oauth-jwt-encoded-state.
>>> 
>>> While JWT encoded state is how I would do state in a client and
>>> at-least one client I know of uses it, it is not the only way to
>>> manage state, and I am hesitant that developers might be scared away
>>> by thinking they need to encode state as a JWT.
>>> 
>>> I decided that cross referencing them is better.   This made sending
>>> much simpler to describe.
>>> 
>>> I also removed the hashing from state.   That cut the text by about
>>> 2/3 by not having to describe character set normalization so that both
>>> the client and the AS could calculate the same hash.
>>> That also achieved the goal of not requiring a simple OAuth client
>>> doing the code flow to add a crypto library to support SHA256.
>>> 
>>> Once we make a algorithm mandatory, we need to defend why we don’t
>>> have crypto agility eg support for SHA3 etc.  We would be forced by
>>> the IESG to add another parameter to the request to specify the hash
>>> alg if we went that direction.
>>> 
>>> Given that we assume state to be public info in the request that an
>>> attacker can see, hashing state provides not much value for a lot of
>>> complexity that people may get wrong or not implement.
>>> 
>>> I appreciate why from a theory point of view hashing it would have
>>> been better.
>>> 
>>> If people really want it I can add it back.
>>> 
>>> John B.
>>> 
>>>> On Jan 21, 2016, at 3:28 AM, Mike Jones <michael.jo...@microsoft.com
>>>> <mailto:michael.jo...@microsoft.com>> wrote:
>>>> 
>>>> John Bradley and I collaborated to create the second OAuth 2.0 Mix-Up
>>>> Mitigation draft.  Changes were:
>>>> ·Simplified by no longer specifying the signed JWT method for
>>>> returning the mitigation information.
>>>> ·Simplified by no longer depending upon publication of a discovery
>>>> metadata document.
>>>> ·Added the “state” token request parameter.
>>>> ·Added examples.
>>>> ·Added John Bradley as an editor.
>>>> The specification is available at:
>>>> ·http://tools.ietf.org/html/draft-jones-oauth-mix-up-mitigation-01
>>>> An HTML-formatted version is also available at:
>>>> ·http://self-issued.info/docs/draft-jones-oauth-mix-up-mitigation-01.html
>>>>                                                          -- Mike
>>>> P.S.  This note was also posted
>>>> athttp://self-issued.info/?p=1526andas@selfissued
>>>> <https://twitter.com/selfissued>.
>>>> _______________________________________________
>>>> OAuth mailing list
>>>> OAuth@ietf.org <mailto:OAuth@ietf.org>
>>>> https://www.ietf.org/mailman/listinfo/oauth
>>> 
>>> _______________________________________________
>>> OAuth mailing list
>>> OAuth@ietf.org <mailto:OAuth@ietf.org>
>>> https://www.ietf.org/mailman/listinfo/oauth
>> 
>> 
>> 
>> _______________________________________________
>> OAuth mailing list
>> OAuth@ietf.org
>> https://www.ietf.org/mailman/listinfo/oauth
>> 
> 
> -- 
> Hans Zandbelt              | Sr. Technical Architect
> hzandb...@pingidentity.com | Ping Identity

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

Reply via email to