<br><br><div class="gmail_quote">On Tue, Mar 31, 2009 at 3:46 PM, Martin Atkins <span dir="ltr">&lt;<a href="mailto:mart@degeneration.co.uk">mart@degeneration.co.uk</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<div><div></div><div class="h5">Andrew Arnott wrote:<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
    I&#39;m also somewhat curious about how many OpenID consumers actually<br>
    do nonce checking. Net::OpenID::Consumer for Perl actually ignores<br>
    the nonce altogether and implements its own timestamp checking due<br>
    to legacy code for OpenID 1.1, and seems to be vulnerable to replay<br>
    for up to 30 seconds after a positive assertion.<br>
<br>
<br>
The author of the Perl library ought to be ashamed. This kind of thing reduces my confidence in using OpenID at any site other than one that I wrote the library for myself.<br>
<br>
Although this is what OSIS testing is all about.  Hopefully there is a test to catch RPs and OPs that don&#39;t check the nonce for replays.<br>
</blockquote>
<br></div></div>
Yes. As the maintainer of that library (though not its original author), I am ashamed, which is what prompted the question in the first place.</blockquote><div><br>I believe that the spec should make it clear that the OP is responsible for validating the uniqueness of the nonce in stateless mode. <br>
 </div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><br>
<br>
I&#39;d love to have a test in the test suite for this.<br>
<br>
RPs only need to do this checking when they&#39;re running in stateful mode, right? Since stateless RPs have nowhere to store state they can&#39;t retain a history of nonces.<br>
<br>
Can you share some high-level details about your nonce-checking implementation? Specifically how you persist the previous nonces, when you expire them, etc?<br>
<br>
I&#39;m wondering if it would instead be simpler to use a client-generated nonce in the return_to URL, as you note that DotNetOpenID is doing for 1.1 requests, thus allowing the nonce checking to be a whitelist rather than a blacklist and the nonces to be in a known format that I can optimize for.<div>
<div></div><div class="h5"><br>
<br>
_______________________________________________<br>
general mailing list<br>
<a href="mailto:general@openid.net" target="_blank">general@openid.net</a><br>
<a href="http://openid.net/mailman/listinfo/general" target="_blank">http://openid.net/mailman/listinfo/general</a><br>
</div></div></blockquote></div><br><br clear="all"><br>-- <br>--Breno<br><br>+1 (650) 214-1007 desk<br>+1 (408) 212-0135 (Grand Central)<br>MTV-41-3 : 383-A <br>PST (GMT-8) / PDT(GMT-7)<br>