<HTML>
<HEAD>
<TITLE>Checking signature on an unsolicited positive assertion</TITLE>
</HEAD>
<BODY>
<FONT FACE="Calibri, Verdana, Helvetica, Arial"><SPAN STYLE='font-size:11pt'>I have a question about the spec that hopefully someone on the list can help with.<BR>
<BR>
I’d like to accept an unsolicited positive OpenID assertion from a provider. So, instead of the RP issuing a request to the provider and then getting a response, the provider would just form the correct URL and send the user to it. The RP can then verify the signature and continue as though it had made the original request.<BR>
<BR>
For performance reasons, it would be nice to use a shared secret, if one exists. That way the RP wouldn’t have to make an extra HTTP request to the OP every time. However, section 11.4.2.1 of the spec says that doing so is forbidden as it opens up replay attacks.<BR>
<BR>
<a href="http://openid.net/specs/openid-authentication-2_0.html#check_auth">http://openid.net/specs/openid-authentication-2_0.html#check_auth</a><BR>
<BR>
Can someone clarify why this is disallowed? It seems to me that as long as the provider supplies a nonce, and the RP checks the nonce, then there is no replay attack possible.<BR>
<BR>
Thanks,<BR>
Luke</SPAN></FONT>
</BODY>
</HTML>