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

Pass application context to IDPF #440

Merged
merged 1 commit into from
Oct 4, 2024
Merged

Pass application context to IDPF #440

merged 1 commit into from
Oct 4, 2024

Conversation

divergentdave
Copy link
Collaborator

This is a follow-up to #422 and #434 to plumb the application context through the IDPF interface, to its XOF/PRG calls.

@divergentdave divergentdave marked this pull request as draft October 3, 2024 21:16
@cjpatton cjpatton self-requested a review October 3, 2024 21:19
@divergentdave
Copy link
Collaborator Author

I haven't updated the defense-in-depth section yet. Here's what I'm thinking so far.

Part of the original rationale for passing a nonce to the IDPF was to add a tweak to the fixed-key AES function, so each client uses a different AES key. This improves concrete security, see #32 (comment). I'm not clear on the details though, is the concrete security improvement against a robustness attacker?

Including application context in addition to a nonce is straightforwardly a defense-in-depth measure against attacks on robustness via offline attacks on extractability. However, we don't allow for the same sort of potentially-insecure parameterization as with Prio3 and small fields, so this isn't as big of a deal, assuming AES and the MiTCCR construction are as strong as we think. Precomputation attacks would have to pick one application context value, and thus one fixed-key AES key or TurboSHAKE domain separation input, which would prevent replaying one bad DAP report against multiple DAP tasks, for example.

@divergentdave
Copy link
Collaborator Author

Notes from today's sync: We probably don't need to say much about the defense in depth properties of this change, but we could mention that this prevents replaying a set of input shares with different application context strings. (DAP protects against this at its layer with the InputShareAAD, but it would be nice to also protect against this at the VDAF layer)

@cjpatton cjpatton marked this pull request as ready for review October 4, 2024 15:35
@cjpatton cjpatton marked this pull request as draft October 4, 2024 15:35
@divergentdave
Copy link
Collaborator Author

I think the existing text about "agreeing on the application context" is good enough to cover preventing replays.

@divergentdave divergentdave marked this pull request as ready for review October 4, 2024 17:36
@divergentdave divergentdave merged commit 2d4f500 into main Oct 4, 2024
6 checks passed
@divergentdave divergentdave deleted the david/idpf-ctx branch October 4, 2024 17:58
@divergentdave divergentdave mentioned this pull request Oct 4, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants