[OpenID] What's broken in OpenID 2.0? (IIW session)

Martin Atkins mart at degeneration.co.uk
Thu May 10 06:46:43 UTC 2007


Allen Tom wrote:
> 
> Issue #2) OpenID recycling
> 
> In order to free up desirable userids, many large OPs recycle userids
> belonging to inactive accounts. If an OpenID is recycled, the new owner
> will be able to access the previous owner's data if the RP is not aware
> that the OpenID has changed ownership. 
> 

We have actually touched on this issue briefly in the past. One idea 
that was floated around was the use of a "serial number"[1] in addition 
to the OpenID URL, where providers would ensure that the same serial 
number is not used for two instances of the same identifier. However, 
this is troublesome because it requires RPs to change the way they store 
and identify identifiers, and is thus not backward-compatible.

At the moment, OPs should not be recycling usernames at all. Any that 
are doing so are broken. That is not to say we should not come up with a 
better approach that allows recycling, however.

> 
> Additionally, the OpenID spec should be reworded to encourage RPs to use
> stateless mode, as in practice, securely storing shared secrets,
> properly calculating and verifing signatures, and implementing a cache
> of used nonces, is actaully pretty hard to get right, and incorrect
> implementations are security holes.
> 

The idea is that people will use the standard, well-tested, battle-worn 
libraries to handle this stuff. That way they can have more confidence 
of getting it right. You may be right that people who are "rolling their 
own" would be better off using stateless mode; it really depends on what 
sort of service you're providing, of course.

> 
> I look forward to discussing these issues and more next week at IIW.
> 

As do I. :)



[1] Not necessarily actually a number, but some kind of invisible extra 
value used as part of the identifier's "primary key" so that new 
instances end up being separate accounts.



More information about the general mailing list