divviup / janus

Experimental implementation of the Distributed Aggregation Protocol (DAP) specification.
Mozilla Public License 2.0
54 stars 15 forks source link

Implement DAP-13 #3436

Open branlwyd opened 1 month ago

branlwyd commented 1 month ago

DAP-13: https://www.ietf.org/archive/id/draft-ietf-ppm-dap-13.html

From DAP-09, this will require (roughly):

[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 of libprio-rs implementing VDAF-13 being available.

branlwyd commented 1 week 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."

branlwyd commented 6 days ago

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).

branlwyd commented 4 days ago

I removed the (optional) indication of unknown extension types by the Leader, filing https://github.com/divviup/janus/issues/3505 instead.

branlwyd commented 2 days ago

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.