Open branlwyd opened 1 month ago
Replay protection changes
For this portion of the work, I think no changes are needed:
N.B. there are a few places where we MUST check replay of a report, where Janus does not do so because we implement the check at an earlier point in the protocol. I don't think we should make functional changes to Janus; we might consider an editorial change to DAP to say something like "Report replay MUST be resolved if it has not already been resolved."
Verify that we always reject reports outside of the task's validity window
I verified that we will always reject reports that are outside of the task's valid time window (i.e. task_start
to task_end
, inclusive).
I removed the (optional) indication of unknown extension types by the Leader, filing https://github.com/divviup/janus/issues/3505 instead.
I filed #3510 to add support for Prio3MultihotCountVec; it's not required for a compliant DAP-13 implementation, but there is little reason (other than prioritization) not to support it.
DAP-13: https://www.ietf.org/archive/id/draft-ietf-ppm-dap-13.html
From DAP-09, this will require (roughly):
max_batch_query_count
& the leader-selectedby_batch_id
query. (DAP-11, PR, [1])max_batch_size
. (DAP-12, PR)PrepareError
values. (DAP-12, PR)Query
,BatchSelector
,PartialBatchSelector
to include length prefix. (DAP-13, PR)[1] Do not remove the
part_batch_selector
field, as it is restored in a later change. [2] This may not require changes, but we should validate that Janus implements the specified behavior. [3] This depends on a release oflibprio-rs
implementing VDAF-13 being available.