OWASP / ASVS

Application Security Verification Standard
Creative Commons Attribution Share Alike 4.0 International
2.74k stars 668 forks source link

3.6.1 and 3.6.2 seem complex without clear explanation #1190

Closed jmanico closed 3 days ago

Sjord commented 2 years ago

3.6.1 Verify that Relying Parties (RPs) specify the maximum authentication time to Credential Service Providers (CSPs) and that CSPs re-authenticate the user if they haven't used a session within that period. 3.6.2 Verify that Credential Service Providers (CSPs) inform Relying Parties (RPs) of the last authentication event, to allow RPs to determine if they need to re-authenticate the user.

These seem implementation details on how to implement session timeout (required in 3.3.2), when having authentication separate from the application. I think requiring session timeouts is sufficient, and specifying how that should be implemented between RPs and CSPs is not up to the ASVS.

tghosth commented 2 years ago

To be honest, having read the relevant section of NIST and also read the requirements, I think these are ok. The point the NIST standard makes is that the CSP and RP will have different session mechanisms so a simple session timeout is not quite the right answer here.

Bottom line, I think these requirements are ok as they are at this point...

Sjord commented 2 years ago

I would prefer a requirement that says something like "session validity should be synchronized between servers", without getting into how this is implemented.

tghosth commented 2 years ago

I would prefer a requirement that says something like "session validity should be synchronized between servers", without getting into how this is implemented.

That feels like it might end up a little oversimplified whilst not being specific enough to understand how to implement. Do you have a suggested wording @Sjord ?

tghosth commented 1 year ago

@Sjord any suggestion on this?

@set-reminder 3 weeks make a decision how to proceed if no response

octo-reminder[bot] commented 1 year ago

Reminder Wednesday, December 28, 2022 12:00 AM (GMT+01:00)

make a decision how to proceed if no response

Sjord commented 1 year ago

No, not other than what I said above. I think the requirements should specify application behaviour and not implementation.

tghosth commented 1 year ago

I just spent even more time trying to re-word these requirements and it is not easy. NIST is referring to a very specific case here and there seem to be some subtleties but it seems to be something like the following:

image

I am not inclined to spend too much more time on this as these are level 3 requirements anyway. If you can think of a specific simplification suggestion then I am open to it but otherwise I think we need to move on :)

octo-reminder[bot] commented 1 year ago

🔔 @tghosth

make a decision how to proceed if no response

tghosth commented 1 year ago

So with no further improvement suggestions, I am going to close this for now. At least if someone searches the issues for these requirements they will hopefully find this thread :)

ryarmst commented 3 days ago

@tghosth it is now 2024 and we have indeed found this thread. For an updated reference, consider the second public draft of NIST 800-63C-4.

In conjunction with #2102, I would like to propose simplifying this into a single requirement. Consider the following:

Verify that session lifetime and termination between Relying Parties (RPs) and Credential Service Providers (CSPs) behave as documented, requiring re-authentication as necessary such as when the maximum time between CSP authentication events is reached.

tghosth commented 3 days ago

Looks good to me

jmanico commented 3 days ago

So lets go to PR.

1) Modify 3.6.1 to Ryan's new text 2) Delete 3.6.2 3) Add a new doc requirement.

Enough of this "process" crap let's go right to PR, Ryan!

ryarmst commented 3 days ago

@tghosth See #2320. I created #2321 for the inevitable section text update.