[security] Validating openid.identity in authentication responses

Trevor Johns trevor at tjohns.net
Fri Nov 16 15:10:02 UTC 2007


There was a question on IRC a few nights ago that I couldn't answer  
and has since been bugging me. I was hoping somebody here would be  
able to clarify this for me...

In reply to an authentication request (either via checkid_immediate or  
checkid_setup), an OpenID provider includes the identifier that has  
been verified as the value for openid.identity. However, what if that  
identity doesn't match what was sent in the original authentication  
request?

Obviously there needs to be some validation here, otherwise a provider  
could make claims about identities on other domains. However, what  
about the less dangerous requests, such as returning an different  
identity within the provider's authoritative domain? And if that's not  
allowed, then what is the purpose of including openid.identity at all,  
considering that the return_to URL in combination with a nonce (which  
is required for secure operation anyway) would be sufficient to ensure  
the provider's signature isn't reused maliciously for other identities?

-- 
Trevor Johns
http://tjohns.net




More information about the security mailing list