Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

V51, Verify usage of the "iss" parameter in by the authorization server #2095

Closed
randomstuff opened this issue Sep 19, 2024 · 9 comments
Closed
Assignees
Labels
1) Discussion ongoing Issue is opened and assigned but no clear proposal yet 6) PR awaiting review V51 Group issues related to OAuth _5.0 - prep This needs to be addressed to prepare 5.0

Comments

@randomstuff
Copy link
Contributor

Currently there is this verification:

51.3.1 Verify that when an OAuth Client can interact with more than one Authorization Server, Clients should verify that the issuer "iss" parameter value is what it expected from the authorization response to prevent against mix-up attacks. In the absence of "iss" parameter, Clients may instead use distinct redirect URIs to identify authorization endpoints and token endpoints.

i.e. if the "iss" parameter is included in the authorization response the client must check it. By the client can proceed if the "iss" parameter is missing.

However, there is no verification for making sure that the authorization server actually included this parameter in the authorization response.

Why is this important: Verification of the issuer mitigates mix-up attacks as described in draft-ietf-oauth-security-topics-27.

Proposition:

Verify that the Authorization Server includes the "iss" parameter in authorization responses for the code grant in order to mitigate mixup-attacks.

This is not strictly necessary if the authorization server knows that the client will never talk to another authorization server but is it helpful to include this exception?

@elarlang elarlang added the V51 Group issues related to OAuth label Sep 19, 2024
@elarlang
Copy link
Collaborator

elarlang commented Sep 20, 2024

Verify that the Authorization Server includes the "iss" parameter in authorization responses for the code grant in order to mitigate mixup-attacks.

For this proposed requirement I think we should not go to the functionality testing field. We also don't have a requirement a'la verify that the "state" value is presented in the access token or something like that, although this is a pre-condition to implement some other requirement.

We also have issues like:

I think those issues should be solved together with the focus to "Verify that there is defense against mixup-attacks."

@elarlang elarlang added the 1) Discussion ongoing Issue is opened and assigned but no clear proposal yet label Sep 20, 2024
@elarlang elarlang added the _5.0 - prep This needs to be addressed to prepare 5.0 label Sep 20, 2024
@randomstuff
Copy link
Contributor Author

Note, this is about Authorization Server Issuer Identification.

@randomstuff
Copy link
Contributor Author

I think those issues should be solved together with the focus to "Verify that there is defense against mixup-attacks."

Yes. It would probably be good to explicitly mention that the authorization server should include the "iss" in some way or another (possibly as part of a more general verification).

@elarlang
Copy link
Collaborator

So, as I said, I prefer to not go to the AS functionality testing field with a separate requirement, so I try to "inject" this need into to the current/replacement for 51.3.1

Verify that if the OAuth Client can interact with more than one authorization server it has a defense against mix-up attacks, for example, by requiring that the authorization server returns the 'iss' parameter value and validating it.

(validating it can be technically more descriptive)

@jmanico
Copy link
Member

jmanico commented Sep 28, 2024

I would add:

Verify that if the OAuth Client can interact with more than one authorization server it has a defense against mix-up attacks, for example, by requiring that the authorization server returns the 'iss' parameter value and validating it in both in the authorization response and in the token response.

@jmanico
Copy link
Member

jmanico commented Sep 28, 2024

And if you want an even more beefy version of this, consider the text before. Clients that can interact with more than one auth server should also verify the client id.

Verify that if the OAuth Client interacts with more than one authorization server, it implements defense mechanisms against mix-up attacks. For example, the client should require that the authorization server includes the 'iss' (issuer) parameter in both the authorization response and token response. The client must then validate that the 'iss' value matches the expected authorization server to prevent confusions between different servers. Additionally, consider verifying the client_id and other key parameters to further strengthen security, as recommended in RFC 9207.

@TobiasAhnoff
Copy link

I think all 3 suggestions would work, but perhaps this (from @jmanico) aligns best with detail-level in other OAuth requirements?

Verify that if the OAuth Client can interact with more than one authorization server it has a defense against mix-up attacks, for example, by requiring that the authorization server returns the 'iss' parameter value and validating it in both in the authorization response and in the token response.

@elarlang elarlang added the 4) proposal for review Issue contains clear proposal for add/change something label Oct 4, 2024
@elarlang
Copy link
Collaborator

elarlang commented Oct 4, 2024

Slightly modifed:

Verify that if the OAuth Client can interact with more than one authorization server it has a defense against mix-up attacks, for example, by requiring that the authorization server returns the 'iss' parameter value and validating it in the authorization response and the token response.

@elarlang elarlang added the 5) awaiting PR A proposal hs been accepted and reviewed and we are now waiting for a PR label Oct 4, 2024
elarlang pushed a commit to elarlang/ASVS that referenced this issue Oct 4, 2024
@elarlang
Copy link
Collaborator

elarlang commented Oct 4, 2024

Will be updated via #2095

# Description L1 L2 L3
51.3.1 [ADDED] Verify that if the OAuth Client can interact with more than one authorization server it has a defense against mix-up attacks, for example, by requiring that the authorization server returns the 'iss' parameter value and validating it in the authorization response and the token response.

@elarlang elarlang added 6) PR awaiting review and removed 4) proposal for review Issue contains clear proposal for add/change something 5) awaiting PR A proposal hs been accepted and reviewed and we are now waiting for a PR labels Oct 4, 2024
@elarlang elarlang closed this as completed Oct 8, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
1) Discussion ongoing Issue is opened and assigned but no clear proposal yet 6) PR awaiting review V51 Group issues related to OAuth _5.0 - prep This needs to be addressed to prepare 5.0
Projects
None yet
Development

No branches or pull requests

4 participants