[security] PAPE Policy for RPs to force authentication without browser cookie

Allen Tom atom at yahoo-inc.com
Thu Jul 2 17:28:14 UTC 2009


Hi Andrew -

At least in the case of Yahoo, and presumably with other webmail 
providers and social networks, disclosing when the user signed in can be 
a privacy issue.

Users currently have the expectation that they can sign into their 
webmail provider silently, without telling everyone that they're signed 
in. In the case of Yahoo (and I believe is also the case with all the 
other OPs), we issue long lived authentication cookies, so a user who 
signed into their OP with the expectation that the login event was 
"silent" now can have that event exposed. I think this is only realy an 
issue if the login event was relatively distant in the past.

A real world example is that a user can claim to have been offline 
during a certain time, however the user silently signed into their OP to 
check mail, without signing out. A couple days later, the user then uses 
their OpenID, and the fact that the user signed in at a certain time 
(when the user claimed to be offline) will be disclosed to the RP.


Allen




Andrew Arnott wrote:
> Allen,
>
> Is it really that bad of a privacy problem for the RP to learn how 
> long ago the user signed in?  Most OPs leave persistent cookies on the 
> browser, so my OP might say I logged in 3 seconds ago or 3 weeks ago.  
> Of what use is that to an RP except to determine whether they can 
> trust the OP's assertion about my identity, and how might that 
> adversely affect me?
>
> I'm probably missing something simple.  Any explanation will be helpful. 
>
> Thanks.
>
> --
> Andrew Arnott
> "I [may] not agree with what you have to say, but I'll defend to the 
> death your right to say it." - S. G. Tallentyre
>
>
> On Tue, Jun 30, 2009 at 9:23 PM, Allen Tom <atom at yahoo-inc.com 
> <mailto:atom at yahoo-inc.com>> wrote:
>
>     Many websites require users who are already authenticated to
>     re-verify their password before entering a sensitive area.
>
>     For instance, retailers like Amazon allow users to browse their
>     website in a recognized state, but will verify the user's password
>     in order to place an order. Similarly, Facebook requires logged in
>     users to re-verify their password in order to manage their credit
>     cards, and Yahoo and Google have similar password verification
>     requirements in order to enter sensitive flows.
>
>     The PAPE Extension seems to be the right way to implement this
>     functionality in OpenID, and I believe that the authors of the
>     PAPE spec intended RPs to be able to specify
>     openid.pape.max_auth_age=0 in the request to ask the OP to
>     authenticate the user without relying on browser cookies. In the
>     case where the user is already authenticated at the OP (using
>     cookies), the expectation is that the OP re-authenticates the user
>     before returning a positive assertion to the RP. In the most
>     common case, where the user authenticates with a password, the OP
>     is expected to verify the user's password before returning the
>     assertion to the RP.
>
>     Although this sounds fairly straightforward, there are some
>     non-obvious edge cases that should probably be clarified.
>
>     For instance, what if the RP specified max_auth_age=<1 minute>?
>     Sometimes users take a few minutes to complete the OpenID sign in
>     flow (they might get distracted), and although the user may have
>     entered their password immediately after being redirected to the
>     OP, the user may have taken more than a minute to navigate through
>     the OP's approval screen, before clicking on the button to return
>     back to the RP.
>
>     Another case is where the RP specified max_auth_age=999999999999.
>     The PAPE spec requires the OP to respond back with the the time
>     the user last authenticated, if the max_auth_age is greater than
>     the duration of the user's current session with the OP. This
>     effectively gives the RP a way to find out when the user last
>     signed in, which potentially violates the user's privacy.  Many
>     users expect to be able to sign into their OP silently, and to be
>     able to use services at their OP without anyone besides their OP
>     knowing that they were online.  Obviously, using OpenID to signin
>     to an RP exposes to the RP that the user is online at the moment
>     of authentication, however it's probably a very bad idea for the
>     OP to return when the user signed into the OP if the sign-in event
>     was more than (X hours?) in the past.
>
>     In order to provide a standard "force authentication" interface, I
>     propose that either we define a new PAPE policy, or we clearly
>     define max_auth_age=0 as a special value.
>
>     The "force authentication" policy must require OPs to
>     re-authenticate the user after the user is redirected to the OP
>     and before returning the assertion to the RP. In the case where
>     the user is authenticated with a password, the OP is required to
>     re-verify the user's password. If the OP displays additional
>     screens to the user after verifying the user's password, the OP
>     must ensure that the user's IP address did not change after the
>     password was verified and the assertion returned.  OPs should be
>     able to support this policy without also supporting other non-zero
>     values for max_auth_age.
>
>     comments?
>     Allen
>
>
>
>
>
>
>     _______________________________________________
>     security mailing list
>     security at openid.net <mailto:security at openid.net>
>     http://openid.net/mailman/listinfo/security
>
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openid.net/pipermail/openid-security/attachments/20090702/f5d27c23/attachment.htm>


More information about the security mailing list