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

Weaken JARM Encryption Requirements for ADRs #650

Open
benkolera opened this issue Jul 10, 2024 · 2 comments
Open

Weaken JARM Encryption Requirements for ADRs #650

benkolera opened this issue Jul 10, 2024 · 2 comments
Labels
Security Change or question related to the information security profile

Comments

@benkolera
Copy link

benkolera commented Jul 10, 2024

Description

Currently, encryption of JARM responses is optional for Data Holders but mandatory for ADRs, as ADRs are forced to support JARM encryption due to the following part of the CDS:

If the Data Holder supports authorisation response encryption and the authorization_encrypted_response_alg is
omitted from the registration request, the Data Holder MAY require response encryption by returning a client 
registration response with the chosen “authorization_encrypted_response_alg” value.

This requirement seems to be an historical compromise of the specification due to some prior ambiguity of the JARM registration and discovery document specifications and that some Data Holders had already implemented JARM with forced JWE prior to the clarifying standards changes.

Intention and Value of Change

I believe that this places an undue burden on the recipients supporting a complicated and not widely supported spec (JWE) for what might be an extreme edge case that may or may not be required in 2024. This places additional implementation and testing burdens on ADRs to support and validate these features. Features of which are not currently verified by the CTS.

Removing this ADR requirement would remove a barrier to entry for new ADRs and ongoing maintenance of implementations, so it feels important and valuable to question whether this compromise is still in the best interests of the ecosystem.

Area Affected

Infosec profile, which impacts DCR and Authorization Redirects in particular.

Change Proposed

Removing this abovementioned requirement and making JARM encryption truly optional for both ADRs and DH.

@nils-work nils-work added the Security Change or question related to the information security profile label Jul 10, 2024
@benkolera benkolera changed the title Weaken JARM Encryption Support for ADRs Weaken JARM Encryption Requirements for ADRs Jul 10, 2024
@markverstege markverstege moved this from Full Backlog to Iteration Candidates in Data Standards Maintenance Jul 18, 2024
@CDR-API-Stream
Copy link
Collaborator

This issue was discussed in the Maintenance Iteration Call on 24 July. A participant offered to compile information on Data Holders who require encryption on JARM responses for discussion in a later meeting.

@CDR-API-Stream
Copy link
Collaborator

This issue was discussed in the MI 21 meeting.

In addition to the quoted component of the standards provided by @benkolera, the standards also state the following

JWT Secured Authorization Response Mode for OAuth 2.0 (JARM) Data Holders MAY support Authorisation Response encryption.
However, at present, there is no confidential information in the authorization response, hence encryption of the authorization response is not required for the purposes of security or confidentiality. In addition, whilst response encryption MAY be used, to achieve greater interoperability, it is not recommended to use encryption in this case at this time.

These statements were provided in alignment with the FAPI 2.0 Message Signing profile:

6.1. Authorization response encryption

In FAPI2, there is no confidential information in the authorization response, hence encryption of the authorization response is not required for the purposes of security or confidentiality. In addition, to achieve greater interoperability, it is not recommended to use encryption in this case.

Usage of PKCE in FAPI 2 provides protection for code leakage described in Section 5.4 of [JARM].

Currently the Data Standards do not require confidential information being passed in the JARM response which is aligned to the FAPI 2.0 Message Signing profile. #649 is considering changes to error responses which may disclosure additional information through error responses. The current proposals do not currently propose any confidential information is shared within error descriptions, however this is a factor for consideration.

In the MI 21 meeting, it was noted that very few Data Holders currently require authorization response encryption. Three options could be considered. The first is proposed by @benkolera in the original issue.

The second option is to constrain dynamic client registration such that Data Holders honour any ADR client registration requests which submit a a client update without requesting authorization response encryption.

The third is to constrain the Data Standards profile to not allow authorization response encryption.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Security Change or question related to the information security profile
Projects
Status: Iteration Candidates
Development

No branches or pull requests

3 participants