diff --git a/v2/crates/wifi-densepose-privshield/README.md b/v2/crates/wifi-densepose-privshield/README.md index 67b7680b..dbb54894 100644 --- a/v2/crates/wifi-densepose-privshield/README.md +++ b/v2/crates/wifi-densepose-privshield/README.md @@ -20,6 +20,45 @@ contributor harness lives at [`harness/wifi-densepose-privshield/`](../../../harness/wifi-densepose-privshield) (ADR-289): `npx wifi-densepose-privshield-harness guidance --topic overview`. +## How this protects you from unauthorized WiFi surveillance + +**The threat — silent, device-free identification.** Since WiFi 5, your device +tells the router how to aim its signal by sending back *beamforming feedback* — +and it goes out **unencrypted**. Anyone within radio range can passively capture +those reports and, from the tiny stable details in them, **tell individual +people apart by their radio "fingerprint"** — through walls, with no camera, no +app, and nothing you have to be carrying. Published research re-identifies +individuals, counts occupancy through walls, and even reads activity this way, +and the 2025 sensing standard (802.11bf) added the capability but **no privacy +protection**. Because the attacker only listens, you get no indication it is +happening. + +**The defense — scramble the fingerprint, keep the link.** VEIL adds a secret, +**per-session "twist"** to your own outgoing feedback, built from the same +rotation math (Givens rotations) the report already uses: + +- Your **own router shares the key** and undoes the twist instantly, so it + decodes normally — **your WiFi keeps ~98% of its speed.** +- An **outside listener sees a *different* twist every session** and cannot + average many captures back into one stable fingerprint. Its guess of *who is + in the room* **collapses to chance** — no better than a random guess among the + possible people. +- The twist only **reshapes your own, standards-legal signal** — it preserves + the signal's energy exactly (`energy in = energy out`), so it is **compliant, + never jamming.** It never floods the air or blocks anyone else. + +**What it does *not* do (kept honest).** VEIL defends against a *third-party +sniffer*, not the access point you are connected to (that party holds the key — +protecting against a malicious AP is BFLD's detection job). It targets identity +re-identification; coarse motion obfuscation is future work. And every figure in +this crate is **SYNTHETIC / evidence-level L0** — it describes the reference +model and is *not* a measured guarantee on real hardware until validated with a +captured hardware log. + +> **In one line:** it makes the room's WiFi stop leaking *who you are* to +> outside listeners, while your network keeps working and without breaking any +> radio rules. + ## The idea Identity leaks through the **fine** cross-subcarrier phase structure of a diff --git a/v2/crates/wifi-densepose-privshield/ui/veil-console.html b/v2/crates/wifi-densepose-privshield/ui/veil-console.html index 68caea77..0be24bde 100644 --- a/v2/crates/wifi-densepose-privshield/ui/veil-console.html +++ b/v2/crates/wifi-densepose-privshield/ui/veil-console.html @@ -245,6 +245,23 @@ .compliance-meter { display: flex; align-items: center; gap: 10px; font-family: var(--mono); } .cm-bar { flex: 1; height: 34px; border-radius: 8px; border: 1px dashed color-mix(in srgb, var(--good) 45%, var(--line)); background: color-mix(in srgb, var(--good) 8%, var(--surface)); display: flex; align-items: center; justify-content: center; font-size: 11px; color: var(--good); font-weight: 650; letter-spacing: .06em; } + /* ---- "how it protects you" explainer ---- */ + .how-grid { display: grid; gap: 16px; grid-template-columns: 1fr; } + @media (min-width: 680px) { .how-grid { grid-template-columns: repeat(3, 1fr); } } + .how-step { display: flex; flex-direction: column; gap: 8px; } + .how-step .ic { width: 34px; height: 34px; border-radius: 10px; display: grid; place-items: center; border: 1px solid var(--line); background: var(--surface-2); } + .how-step .ic svg { width: 18px; height: 18px; } + .how-step h3 { font-size: 14px; font-weight: 650; letter-spacing: -0.01em; } + .how-step .eyebrow { font-family: var(--mono); font-size: 10px; letter-spacing: 0.14em; text-transform: uppercase; } + .how-step p { margin: 0; font-size: 13px; color: var(--muted); line-height: 1.55; } + .how-step p b { color: var(--ink); font-weight: 600; } + .how-threat .ic { border-color: color-mix(in srgb, var(--threat) 45%, var(--line)); background: var(--threat-soft); } + .how-threat .eyebrow { color: var(--threat); } + .how-shield .ic { border-color: color-mix(in srgb, var(--accent) 45%, var(--line)); background: var(--accent-soft); } + .how-shield .eyebrow { color: var(--accent-2); } + .how-honest .ic { border-color: color-mix(in srgb, var(--good) 45%, var(--line)); } + .how-honest .eyebrow { color: var(--good); } + /* ---- info buttons ---- */ .head-r { display: flex; align-items: center; gap: 9px; } .info-btn { @@ -390,6 +407,28 @@
Your Wi-Fi constantly sends the router fine signal details — in the clear. A stranger nearby can capture them and recognise individual people by their radio "fingerprint": through walls, with no camera, and nothing on you.
+VEIL scrambles that fingerprint on every report with a secret twist only your own router can undo. An outside listener sees a different scramble each time and can't tie it to a person — their guess of "who's here" drops to pure chance.
+It shapes only your own signal — it never jams, and your Wi-Fi speed stays ~98%. It stops outside snoops, not the router you connect to. Figures here are simulated (L0), pending real-hardware tests.
+