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

Receivers should validate aud value in StreamConfiguration response #207

Open
FragLegs opened this issue Sep 24, 2024 · 3 comments
Open
Labels
spec:SSF v1Final Issues that must be fixed before we propose a spec to become a v1 final spec.

Comments

@FragLegs
Copy link
Contributor

The first recommendation from the final security audit:

While Receivers are mandated to validate
the audience value in SETs (due to [RFC7519, Section 4.1.3]), they are currently not required to
validate the audience value in stream configurations returned by a Transmitter, e.g., in a stream
creation response. Our Receiver model respects this and hence mostly ignores streams’ audience
values. For SET validation, our Receiver model instead compares the SET’s audience value against
an expected value based on the access token used by the Receiver when requesting creation of
the stream (since this is where the Transmitter is required to derive an audience value from the
Receiver’s authorization, see [15, Section 7]).
However, it is likely that implementers use the stream’s audience value to validate SETs against,
hence, we recommend to mandate Receivers-side validation of stream audience values.

@FragLegs
Copy link
Contributor Author

The following was not covered in the security audit, but came up during the interop:

We should provide some guidance on how aud values are set. It seems like implementers are settling on having the Transmitter generate a new aud value per stream. We may not be able to require that behavior without breaking backwards compatibility, but we can at least recommend it.

@FragLegs FragLegs added v1Final Issues that must be fixed before we propose a spec to become a v1 final spec. spec:SSF labels Jan 24, 2025
@thomasdarimont
Copy link
Contributor

thomasdarimont commented Feb 4, 2025

While Receivers are mandated to validate
the audience value in SETs (due to [RFC7519, Section 4.1.3]), they are currently not required to
validate the audience value in stream configurations returned by a Transmitter, e.g., in a stream
creation response.

FYI I just added a check for the first part to the conformance tests. In the openid-ssf-transmitter-events we now verify that the verification SET aud matches the aud from the stream, and produce a warning if that is not the case.
Image
Is the reference [RFC7519, Section 4.1.3] okay, or should I use another reference here?

@SECtim
Copy link
Contributor

SECtim commented Feb 5, 2025

@thomasdarimont I am not familiar with the conformance tests, but this looks to me like a test case for the Transmitter, i.e., validating that a Transmitter uses the same aud in (probably?) stream creation responses and (in this case: Verification) SETs.
If that understanding is correct, then this test does not touch on what the security analysis originally pointed out: The SSF spec does not require the receiver of a stream configuration to validate that configuration's aud.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
spec:SSF v1Final Issues that must be fixed before we propose a spec to become a v1 final spec.
Projects
None yet
Development

No branches or pull requests

3 participants