On Fri, Dec 30, 2011 at 5:30 PM, Dan Mills <
thu...@mozilla.com> wrote:
> On Friday, December 30, 2011 at 2:47 PM, Ian Bicking wrote:
>
> On Fri, Dec 30, 2011 at 4:39 PM, Dan Mills <
thu...@mozilla.com> wrote:
>
> Note that for the JS requirement, it would be possible for us to
> standardize on a protocol for the browser to directly deliver an assertion
> to the server. That would allow you to write a client without a JS
> interpreter. However, so far demand for that has been low, so it hasn't
> been high up on our (or at least my) list of stuff to think about.
>
>
> I believe Firefox Sync BrowserID support will be exploring something
> like this option, as there's no "frontend" to sync (that is, there's
> no HTML page that represents "Sync" that you would log into).
> Discussion of this has just begun in the last week or so.
>
>
> Yes, though for websites at large we'd need some additional pieces such
> as, for example, the ability to discover where to send assertions to based
> on markup.
>
This seems to be the expectation, but I wonder if it would be fine to
simply send the assertion on the first request (for any resource), like:
"Authorization: BrowserID assertion=XXX" - it's not something you want to
send with each request (e.g., assertion expiration doesn't seem to mean the
same thing as what you'd expect in this context), but having a
hello/handshake request doesn't seem necessary (maybe even wasteful).
The missing part would be what to do after that first request, how to tell
the client to stop sending the assertion, and send something else (probably
a token?). The Sync discussion is moving towards signing the entire
request (in some OAuthish manner), but that's mostly so the
assertion-sniffing attack area is limited to that initial request - so I
don't see a big difference in security if you allow that the first request
actually does something, and then treat subsequent requests differently.
It just means any endpoint is capable of doing the handshake, which is
generally easy to implement. The first request could even just do the
handshake and ask the client to retry the request.
Or maybe you are thinking about the scraping use case, in which case yes
you'd definitely need to figure out where to send the assertion, and in
what format, and websites don't necessarily care to make it easy, or
standardized, or even reliable.
Ian