[security] OpenID Security Best Practices Doc
Allen Tom
atom at yahoo-inc.com
Mon Jun 8 22:50:42 UTC 2009
Hi Nate,
Thanks for the feedback, my comments are inline.
Nate Klingenstein wrote:
>
> 1) Might mention in the logout section for users that closing a
> browser will also (generally, thanks Firefox) terminate session cookies.
[atom] This makes sense if RPs and OPs always use session cookies that
are cleared with the browser is closed for their authentication
credentials, however, I don't know if RPs and OPs generally do this.
Recommending that RPs only use session cookies sounds like a good idea.
Many OPs give users the option (sometimes enabled by default) to set
permanent authentication cookies that persist long after the user's
browser and computer are shutdown and restarted, so telling users that
closing their browser will log them out would be inaccurate in many cases.
> 2) I think authentication session duration is very
> deployment-specific and it would be difficult to make any general
> recommendations.
[atom] Agreed. I was hoping that we could give a recommendation to RPs
for the authentication session lifetime, as well as the frequency to
call checkid_immediate, but perhaps this is too deployment-specific.
>
> 3) I don't think the discussion of the benefits of https for user
> authentication to the OP is given enough emphasis. It would be nice
> to state clearly the protection against MITM, promiscuous listeners,
> etc. that https provides, so that OP's realize exactly what protection
> TLS/SSL offers.
[atom] Using HTTPS for the entire end-to-end protocol flow sounds like a
really good thing. Many RPs that care a lot about security are requring
that OPs use HTTPS for everything, however, recommending that HTTPS be
used for everything also implies that the OpenID URL itself should be
HTTPS, and there are many OpenIDs in the wild (for instance, blog
owners, etc) that don't use HTTPS.
> 4) I'd disentangle the wording about RP/OP trust from the specific
> point about PAPE. Provider trust is a more general topic that is
> really important, and I think it merits its own section. I'm happy to
> draft that if you'd like.
[atom] One of the reasons why I wanted to include trust in the PAPE
discussion is that just because an OP supports PAPE does not imply that
the OP can be trusted to actually implement PAPE in a manner consistent
with the RP's expectations.
> 5) For account linking, I'd clarify the text that so the need to
> authenticate the user separately from the assertion is explicit.
[atom] Good point.
> 6) Pull the replay warning into its own bullet, and mention the use
> of a timestamp to bound the time nonces must be stored for.
[atom] Also a good point. On a related note, many large globally
distributed RPs may have a hard time implementing nonces as per the
OpenID spec, as it's technically tricky to globally replicate data,
especially if it needs to be replicated very quickly. In practice, RPs
may only find it practical to verify that the timestamp is "current" as
opposed to actually verifying that the nonce is can only be used once.
If the entire protocol is implemented over HTTPS, including the RP's
return_to URL, then verifying that the timestamp without verifying that
rest of the nonce unique is probably sufficient.
> 7) Is it worth mentioning more generally anything about session or
> assertion hijacking and possible countermeasures?
>
[atom] Are you referring to XSS/XSRF/clickjacking?
Thanks for the feedback!
Allen
More information about the security
mailing list