Allen,

There is nothing in the PAPE spec about the OP verifying that auth_age < max_auth_age before returning the assertion.

That could lead to a deadlock situation.

You and others may see a value in that but that is not the intent of the PAPE spec.

If the time since the last interactive login when the OP receives the request is > max_auth_time then the OP must immediately re-prompt for authentication (not using a long lived cookie to authenticate the user.)

Perhaps it would have been clearer if we had stated that the OP must immediately reauth the user but we never imagined that the OP would take the user through some other flow.

Part of the reason for this feature was Yahoo who drove a number of additions to the PAPE spec , such as NIST level 0 to say the user was authenticated with a long-lived cookie.

Given that Yahoo users may have authenticated up to 14 days previously, that drove the need for max_auth_age to give a RP some control over how old an interactive authentication they were willing to accept.

The spec is worded that if max_auth_age is more than > than the auth_age the OP can still elect to re-authenticate the user. If the OP sets there own max_auth_age upper limit of a couple of hours I think this covers the privacy concerns.

auth_age MUST be returned if max_auth_age is requested.
It is the time in seconds between the last interactive authentication and the manufacture of the return assertion.

It is up to the RP to decide what to do based on this.

We don't wan't to take flexibility away from the RP if the auth_age in the return is 2h then the RP has to decide if they get sent back to the OP again.

PAPE is about giving some control over the login back to the RP. In the normal openID flow the OP has complete control over the authentication.

I am not sure why people think max_auth_age=0 is special it is just 0. Unless you are trying to read in the fancy auth_age < max_auth_age behavior that was never intended.

There may be a better way to achieve the desired behavior with authn URI to say things like the user must do a password reset (I think Facebook was looking for that) or other things.

Some RP's are concerned about silent logins after the user has "Remembered" the RP in there OP config.

This potentially allows for cross site request forgeries against the RP.

I could also see a lighter flow where the RP requests that the user must consent to logging in but doesn't need to re-authenticate.

Those could be defined as auth methods potentially.

I am concerned that id OPs start creatively interpreting the PAPE spec it will loose a lot of its value.

We have some of that creative interpretation problem now with AX.

I am glad people are starting to show an interest in implementing and using PAPE.

John B.
On 1-Jul-09, at 1:32 AM, Allen Tom wrote:

Hi Nate -

Consider the scenario where the RP specified max_auth_age=1minute in the request, and after being redirected to the OP, the user enters their password, then sees the OP's approval screen and decides to take a 10 minute break before clicking the "continue" button.

Should the OP should re-prompt the user for the password again before returning the assertion to the RP because the RP requested that the password be verified within 1 minute of returning the assertion?

I believe that you said that the OP should re-verify the user's password in this case, which makes plenty of sense.

Now getting back to the original case, where the RP used the magic max_auth_age=0 value. Unless there is zero network latency, and the OP does not have a separate approval screen, it is impossible for the OP to satisfy this requirement.

That's why I was suggesting that we just define max_auth_age=0 as a special case, and clearly define what is expected for this case.

Thanks
Allen





Nate Klingenstein wrote:

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.

Isn't it the OP that is obliged to perform the check? It would be performed immediately when the user presents the message, I'd imagine, since it's determining how to handle the request.







It wouldn't matter if they dally at the OP if the RP weren't likely to complain about the auth_time on the user's arrival, which is a separate matter(and not mandated by spec from what I can tell). But some check probably needs to be explicitly performed by the RP on the return leg until authentication requests can be signed. Sigh.

Either way, the RP would only be sabotaging its own user base here, so this falls more into the category of recommendations or best practices, in my opinion.

The SHOULD there reads strangely to, though.

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.

Having seen other working group applications and spec revisions move a little gradually, I feel compelled to first ask: how painful are these options?

comments?

Yes. Signed authentication requests would be nice and limit the "trust, but verify" the RP needs to do -- that is to say, limit the amount of private data the OP needs to expose.

Take care,
Nate.

_______________________________________________
specs-pape mailing list
[email protected]
http://openid.net/mailman/listinfo/specs-pape




_______________________________________________
security mailing list
[email protected]
http://openid.net/mailman/listinfo/security

Reply via email to