mirror of
https://github.com/ruvnet/RuView
synced 2026-08-11 20:41:44 +00:00
16b2a629d1
VEIL (Verifiable Emission-shaping for Identity-Leakage prevention) is the countermeasure counterpart to BFLD (ADR-118/121): where BFLD detects when beamforming feedback becomes identifying, VEIL shapes a node's own outgoing feedback so an unauthorized passive sniffer cannot re-identify people, while a legitimate receiver that shares the per-session key sees an unchanged link. Mechanism: identity leaks through the fine cross-subcarrier phase structure of a compressed beamforming report; throughput rides the dominant beam direction. These are (mostly) separable subspaces. VEIL composes extra keyed Givens rotations (the report's native primitive) over the fine subspace only. The rotation is orthogonal (energy-preserving -> not jamming), keyed per session (the AP inverts it -> throughput preserved), and fresh each session (a sniffer cannot average it back -> re-identification collapses to chance). Contents: - v2/crates/wifi-densepose-privshield: deterministic, dependency-free, WASM-ready pure-compute leaf implementing the attacker-vs-protector experiment, the four compliant controls, a throughput model, a machine-checkable "not jamming" compliance audit, and a pinned witness. 29 tests + doctest pass; clippy -D warnings clean; builds for wasm32-unknown-unknown. - docs/research/privacy-shield: 8-file research bundle (SOTA, threat model, design, compliance/regulatory, experiment protocol, market, roadmap). - docs/adr/ADR-288: formal decision record. Reference results (SYNTHETIC / L0, N=16 identities): passive re-ID accuracy 100% shield-off -> 7.8% shield-on (chance 6.25%); modeled throughput ratio 98.0%; emission energy ratio 1.000000 (compliant). All defense numbers are SYNTHETIC until a two-node hardware capture with a witness exists. Compliant waveform controls only; never jamming (47 U.S.C. 333/302a analysis in the bundle). Co-Authored-By: claude-flow <ruv@ruv.net> Claude-Session: https://claude.ai/code/session_01WEXNqzs7UsfNFBcP5yW21p
4.1 KiB
4.1 KiB
07 — Implementation and Roadmap
1. What ships in this bundle
- Reference crate
v2/crates/wifi-densepose-privshield(VEIL): a deterministic, dependency-free, WASM-ready pure-compute leaf implementing the full attacker-vs-protector experiment, the four compliant controls, the throughput model, the compliance audit, and a byte-stable proof. 29 tests + doctest pass; builds forwasm32-unknown-unknown; clippy-clean. - This research bundle (
docs/research/privacy-shield/). - ADR-288 — the formal decision record.
The crate is intentionally a leaf with no internal RuView dependencies
(mirrors wifi-densepose-aether), so it can be reasoned about, fuzzed, and
ported independently, and so it can never accidentally acquire a path to a radio.
2. Reuse map (how VEIL composes with existing RuView)
| Existing subsystem | Relationship |
|---|---|
BFLD (ADR-118/120/121, wifi-densepose-bfld) |
Detection layer. Its identity_risk_score is the natural trigger for VEIL's SensingDetector — detect leakage, then shield |
| Privacy control plane (ADR-141) | VEIL protection steps emit ComplianceReports that fit the runtime-attestation model (which mode, which actions, which fields) |
| Active sensing / governed actuation (ADR-280) | VEIL is a defensive SensingAction: a governed, privacy-ceiling-bounded emission-shaping action the control plane can schedule |
| Givens/beamforming primitives | VEIL reuses the report's native Givens-rotation structure rather than inventing a new transform |
Deterministic proof discipline (nvsim, archive/v1/verify.py) |
VEIL's proof module follows the same pinned-witness pattern |
3. Phased rollout
| Phase | Deliverable | Evidence class |
|---|---|---|
| P1 — reference model (this PR) | Crate + experiment + docs + ADR | SYNTHETIC (cargo test) |
| P2 — sensitivity study | Sweep N, noise, resolution, mixing; add a learned attacker to confirm signal-level collapse | SYNTHETIC |
| P3 — BFLD integration | Wire identity_risk → SensingDetector → shield engage; emit attestation |
SYNTHETIC + integration tests |
| P4 — firmware feedback shaping | Implement keyed fine-subspace rotation + cadence randomization in ESP32/Nexmon feedback path | build + hardware |
| P5 — two-node hardware measurement | Wi-BFI attacker vs. VEIL protector on real silicon; iperf throughput; captured log | MEASURED (with witness) |
| P6 — deployment profiles | Per-segment profiles (SCIF, boardroom, ward) with regulatory review | operational |
No defense claim graduates from SYNTHETIC to MEASURED without a captured boot/runtime log (CLAUDE.md hardware rule).
4. Open problems (tracked honestly)
- Real-hardware separability. Comm and identity information are only approximately separable on real radios; the true throughput cost of full identity hiding may exceed the model's ~2%. P2/P5 must bound it.
- Within-session motion leakage. A fixed per-session rotation does not obfuscate coarse motion within one capture window. Needs stronger cadence randomization or amplitude shaping; currently a stated non-goal for the re-ID metric.
- Active adversary (A2). An attacker that transmits its own soundings is only partially addressed by cadence control; a MAC-layer non-response policy is needed.
- Key management. The per-session rotation key must be derived from the negotiated link secret; VEIL's PRNG is explicitly not cryptographic and must not be used for real key material.
- Regulatory review per jurisdiction. The energy-conservation argument is portable, but power/mask/timing limits and any transmit-nulling profile need local review before field use.
5. Validation commands
# Reference experiment + all unit/proof/doc tests
cargo test -p wifi-densepose-privshield --no-default-features
# WASM portability (leaf builds with no radio path)
cargo build -p wifi-densepose-privshield --target wasm32-unknown-unknown
# Lints
cargo clippy -p wifi-densepose-privshield --all-targets