Skip to content

feat: BFLD — Beamforming Feedback Layer for Detection (privacy-gated WiFi sensing) #787

@ruvnet

Description

@ruvnet

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

  1. 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.
  2. BFI enables re-identification. The KIT BFId paper demonstrates >90% identity recognition from 5 seconds of BFI, from a dataset of 197 individuals.
  3. The existing pipeline has no identity-leakage measurement. Operators in care facilities / shared offices have no way to verify the system is behaving anonymously.
  4. 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

  • AC1: Parser handles 802.11ac VHT + 802.11ax HE CBFR at 20/40/80/160 MHz, 2x2 through 4x4 MIMO.
  • AC2: Presence latency <= 1s p95 from first non-empty BFI frame.
  • AC3: Motion score at >= 1 Hz on ruview/<node_id>/bfld/motion/state.
  • AC4: Raw BFI bytes never present in any serialized output at any privacy_class.
  • AC5: Privacy mode suppresses all identity-derived fields from outbound events.
  • AC6: Identical BfiCapture input -> bit-identical BfldFrame output (deterministic, cross-platform).
  • AC7: Pipeline produces valid BfldEvent without csi_matrix (BFI-only mode).

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.

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