Skip to content

Design domain-free, privacy-preserving behavioral sharing v2 #57

Description

@MahdiHedhli

Decision

Design a new domain-free, privacy-preserving behavioral aggregation contract. This issue is a design, utility, and adversarial-review gate; it does not authorize production sharing.

For beta, behavior_summary and query-derived candidate-domain export remain disabled. Production telemetry continues to export only Core-confirmed matches to public known-bad indicators under the existing privacy-reduced contract.

The intended value of behavior_summary_v2 is fleet-level detector prevalence and SNR calibration—not discovery of new domains, per-device behavior, or remote enforcement.

Prerequisites

Contract requirements

Define a versioned behavior_summary_v2 as a fixed-shape report containing only:

  • a common signed task/schema manifest and version;
  • fixed public behavior/detector enums;
  • clipped, bounded counters or documented count buckets;
  • fixed, coarse, non-overlapping collection epochs;
  • fixed evidence/outcome categories only where the utility study shows they are necessary.

The report and every intermediate representation must have no field capable of carrying:

  • a domain, query, URL, IP, MAC, hostname, device/sensor/install ID, event/finding/rule ID, or source hash;
  • a keyed or unkeyed hash of a private or enumerable observable;
  • exact event timestamps or per-device/per-household activity history;
  • arbitrary tags, labels, metadata, URLs, headers, or free-form text;
  • client-selected task parameters that could partition the anonymity set.

Unknown fields and unknown enum values fail closed. Consumers recompute verdicts locally. A community aggregate is advisory context only and cannot independently create, suppress, resolve, or change the priority of a finding.

Threat model and architecture

Document protected information, trust boundaries, observable metadata, and collusion cases for:

  • Core/client, eligibility issuer, OHTTP relay, leader/helper aggregators, feed consumer, dashboard, and operator;
  • malicious/compromised clients, Sybil operators, curious infrastructure, colluding parties, network observers, and malicious feed consumers;
  • timing/volume linkage, replay/double spend, differencing, low-cohort inference, targeted task partitioning, poisoning, and auxiliary-data re-identification.

The design must state what Cloudflare, each protocol role, and the Vedetta operator can observe. It must specify contribution bounds, cohort/release rules, retention, deletion, opt-out, privacy accounting, collection limits, schema rollback, and collection/publication kill switches.

Architecture constraints:

  • Privacy Pass-style credentials may provide unlinkable authorization and contribution bounds; they do not prove one credential equals one independent household or solve Sybil attacks.
  • OHTTP can separate client addressing from request content only under the stated non-collusion assumptions. The gateway still decrypts the application message; payload minimization, common padding, fresh contexts, timing controls, and identifier stripping remain required.
  • Consider Prio/VDAF/DAP only with a genuinely independent, non-colluding second operator and a pinned, independently reviewed protocol version. DAP is still an Internet-Draft.
  • Cohort thresholds alone are not differential privacy. Do not claim DP without a specified mechanism, privacy-budget ledger, and review of repeated releases.
  • TPM attestation does not solve household linkage, privacy, or the fundamental Sybil limitation.

Staged delivery

  1. Utility and local shadow mode: define the fixed vector, keep every report local, and prove that the aggregate would materially improve SNR using synthetic or explicitly consented data.
  2. Synthetic transport pilot: test unlinkable authorization, independent OHTTP relay behavior, fixed-size envelopes, replay controls, batching, delayed delivery, and kill switches using synthetic canaries only.
  3. Private aggregate beta: permit real reports only after the independent-helper, retention/deletion, contribution-bound, privacy-accounting, and red-team gates pass. No raw or below-cohort reports are exposed in the dashboard/API.
  4. Advisory release: publish only delayed, cohort-safe aggregates or bands with signed provenance, schema version, expiry, and rollback. Validate useful local interpretation before any scoring experiment.

Acceptance gates

  • Approved data dictionary, canonical examples, compatibility policy, data-flow diagram, collusion matrix, and retention/deletion schedule.
  • Structural tests, property tests, and fuzzing reject every forbidden/unknown field in the producer, relay/gateway boundary, aggregator, storage, and dashboard.
  • No server surface can reconstruct reporter-to-contribution or household/device history under the documented non-collusion assumptions.
  • Enforced one-report/task/epoch bounds, replay/double-spend rejection, fixed manifests/padding, delayed batching, collection limits, and exercised kill switches.
  • No arbitrary dashboard slicing, overlapping releases, exact small cells, or below-cohort visibility that enables differencing.
  • Re-identification, timing, differencing, replay, task-partitioning, Sybil, malformed-report, and semantic-poisoning red team.
  • Measured SNR/utility gate with a documented holdout and no increase in missed high/critical detections.
  • Public disclosure accurately describes consent, residual metadata, protocol assumptions, retention, opt-out, and the advisory-only trust limit.
  • Independent cryptographic/privacy review clears the exact deployed design before real-data implementation.

Out of scope

The work in #99 may reuse a successful transport architecture, but it requires its own schema, explicit consent, poisoning analysis, curation model, and privacy review because it can be domain-bearing.

Standards references

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions