Hi Aaron,

I've trimmed out the bits where your fixes look great.  Overall, the draft is 
still in good shape.  Just a few small follow-ups.

On Sun, Mar 2, 2025, at 07:14, Aaron Parecki wrote:
> We've added a variation of this paragraph: 
> https://www.ietf.org/archive/id/draft-ietf-oauth-browser-based-apps-23.html#section-5

I think that you have an extra comma, but that looks good.
 
> We added a sentence to clarify what this is meant to protect, which is 
> only preventing the attacker from using the application's refresh token:
> https://www.ietf.org/archive/id/draft-ietf-oauth-browser-based-apps-23.html#section-6.3.4.2.1

The text is now:

> A practical implementation pattern can use a Web Worker [WebWorker] to 
> isolate the refresh token, and provide the application with the access token 
> making requests to resource servers. This prevents an attacker from using the 
> application's refresh token to obtain new tokens.

This all seems to hinge on a web worker being "highly isolated" (see previous 
paragraph), which I think is overstating it a little.  It might be easier to 
isolate a worker, but you have to acknowledge that compromised main thread JS 
can install or replace workers.  At best, I would say "more isolated" or "more 
easily isolated".
 
> We've updated all mentions of "perfect storage" to phrases like 
> "...even a token storage mechanism that completely isolates the tokens 
> from the attacker..." Hopefully this is clearer.

Indeed it is.  Though I still think that "perfectly" and "completely" are a 
little more absolute than you can justify.  None of this stuff is perfect.

>> In Section 8.5, please consider de-emphasis of local storage.  Browsers have
>> been trying to move people off the jank-inducing API for more than a decade
>> now.  Anything that uses storage needs to be asynchronous, local storage 
>> isn't.
>
> I added a mention of localStorage being synchronous.

That's not quite what I was angling for.  Your central point is independent of 
technology/API.  It is that if you stick a token in [a store] and you have 
compromised code running in the same origin anywhere, that code can access the 
store and get your token.  So, rather than talking about specific types of 
stores (other than listing examples) I would trim the section down to the 
simpler statement.  (sessionStore being somewhat ephemeral is not a useful 
distinction here, mostly because the idea of "session" is so vague as to be 
useless: many browsers restore sessions after a restart)

_______________________________________________
OAuth mailing list -- oauth@ietf.org
To unsubscribe send an email to oauth-le...@ietf.org

Reply via email to