Summary
Add a new crate wifi-densepose-bfld that turns raw 802.11 Beamforming Feedback Information (BFI) into bounded, privacy-gated sensing outputs. BFLD detects when RF data crosses from "ambient sensing" into "identity record" and structurally prevents identity-correlated data from leaving the node.
This is the safety layer that was missing from the CSI pipeline. As passive BFI sniffing tools (Wi-BFI, PicoScenes) become widely available and academic attacks (BFId at ACM CCS 2025, LeakyBeam at NDSS 2025) demonstrate >90% re-identification from commodity WiFi, the wifi-densepose ecosystem needs an explicit privacy layer before scaling deployment.
Motivation
- BFI is plaintext and passively sniffable. IEEE 802.11ac/ax CBFR frames are transmitted before WPA2/WPA3 encryption is applied. Any nearby device in monitor mode can capture them.
- BFI enables re-identification. The KIT BFId paper demonstrates >90% identity recognition from 5 seconds of BFI, from a dataset of 197 individuals.
- The existing pipeline has no identity-leakage measurement. Operators in care facilities / shared offices have no way to verify the system is behaving anonymously.
- WiFi 7 will make this worse. 802.11be multi-link operation increases sounding frequency 3-5x.
Proposed Solution
New crate at v2/crates/wifi-densepose-bfld/ with the pipeline: BFI capture -> extractor -> normalization -> features -> identity-risk engine -> privacy gate -> MQTT emitter. Three structural invariants (type-enforced, not policy):
- I1: Raw BFI never leaves the node.
- I2: Identity embedding is in-RAM-only.
- I3: Cross-site identity matching is cryptographically impossible via per-site BLAKE3 keyed hash + daily rotation.
Companion: Soul Signature (docs/research/soul/) integrates at privacy_class = 1 with a Recalibrate exemption — BFLD becomes Soul Signature's policy-enforcement layer.
Acceptance Criteria
References
Out of Scope
- Preventing external sniffers (hardware-level problem)
- Differential privacy noise (future extension)
- ESP32-S3 promiscuous CBFR capture (Espressif API limitation; Pi 5 / Nexmon is the path)
- WiFi 7 multi-link BFI (v1 frame format accommodates; v1 implementation defers)
Related ADRs / Issues
Implementation Progress
Active feature branch: feat/adr-118-bfld-impl. Self-paced /loop 10m autonomously implements one P1-P6 unit per iteration, commits on green, comments back here with diff stats + AC progress.
Summary
Add a new crate
wifi-densepose-bfldthat turns raw 802.11 Beamforming Feedback Information (BFI) into bounded, privacy-gated sensing outputs. BFLD detects when RF data crosses from "ambient sensing" into "identity record" and structurally prevents identity-correlated data from leaving the node.This is the safety layer that was missing from the CSI pipeline. As passive BFI sniffing tools (Wi-BFI, PicoScenes) become widely available and academic attacks (BFId at ACM CCS 2025, LeakyBeam at NDSS 2025) demonstrate >90% re-identification from commodity WiFi, the wifi-densepose ecosystem needs an explicit privacy layer before scaling deployment.
Motivation
Proposed Solution
New crate at
v2/crates/wifi-densepose-bfld/with the pipeline: BFI capture -> extractor -> normalization -> features -> identity-risk engine -> privacy gate -> MQTT emitter. Three structural invariants (type-enforced, not policy):Companion: Soul Signature (
docs/research/soul/) integrates atprivacy_class = 1with a Recalibrate exemption — BFLD becomes Soul Signature's policy-enforcement layer.Acceptance Criteria
ruview/<node_id>/bfld/motion/state.privacy_class.References
docs/research/BFLD/(11 files, 13,544 words)Out of Scope
Related ADRs / Issues
cog-ha-mattercog (Matter boundary needs BFLD-aware filter)Implementation Progress
Active feature branch:
feat/adr-118-bfld-impl. Self-paced/loop 10mautonomously implements one P1-P6 unit per iteration, commits on green, comments back here with diff stats + AC progress.