news 2026/9/11 15:12:42

RuView BFLD 深度解析:为 WiFi 感知堆栈打造的波束赋形反馈隐私门控层

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
RuView BFLD 深度解析:为 WiFi 感知堆栈打造的波束赋形反馈隐私门控层

RuView BFLD 深度解析:为 WiFi 感知堆栈打造的波束赋形反馈隐私门控层

【免费下载链接】RuViewπ RuView turns commodity WiFi signals into real-time spatial intelligence, vital sign monitoring, and presence detection — all without a single pixel of video.项目地址: https://gitcode.com/GitHub_Trending/wi/RuView

BFLD(Beamforming Feedback Layer for Detection,波束赋形反馈检测层)是 RuView / wifi-densepose 生态中的隐私安全层:它从 IEEE 802.11ac/ax 明文波束赋形反馈(BFI)中持续度量"当前 RF 数据是否已具备个体识别能力",并以identity_risk_scoreprivacy_class字节门控一切出站数据。读完本文,你将掌握 BFLD 的三项结构性隐私不变式、四类隐私等级的数据暴露边界、风险评分与哈希轮换的底层实现,以及它如何接入 Home Assistant、Matter 与 MQTT 自动化生态。

BFLD 的完整设计档案位于 docs/research/BFLD/(11 个文件的研究包),其总体架构决策已沉淀为 ADR-118,而对应的 Rust cratewifi-densepose-bfld已在仓库的 v2/crates/wifi-densepose-bfld/ 落地实现,本文的源码级佐证均取自该 crate。


1. 问题背景:明文 BFI 是"会广播身份的协议产物"

BFLD 的存在建立在两个物理层事实之上。

1.1 CSI 与 BFI 的泄露画像差异

  • **CSI(信道状态信息)**是接收端在全部子载波与天线对上测得的复信道频率响应,矩阵规模为 Ntx × Nrx × Nsubcarrier,稠密且高维。获取 CSI 需要固件级改造(如 Atheros CSI Tool、面向树莓派 BCM43455c0 的 Nexmon CSI patch)或专用软件无线电,属于"研究仪器"。
  • BFI(波束赋形反馈信息)则是 STA 回传给 AP 的压缩信道表示。802.11ac/ax(IEEE 标准 9.4.1.52 节)中,AP 先发 NDP sounding 帧,STA 测量信道后对右奇异向量做 Givens 旋转压缩,得到 Phi(φ,[0, 2π))与 Psi(ψ,[0, π/2))两组角度:802.11ac 分别量化为 7/5 bit,802.11ax 默认为 4/2 bit。STA 将量化角度装入 VHT/HE Compressed Beamforming Report(CBFR)帧发回。

关键在于:CBFR 是管理面帧,而非 802.3 数据帧。它在 WPA2/WPA3 关联加密协商之前就以明文发送——即使开启 PMF(受保护管理帧),2025 年的商品 AP 也默认不加密波束赋形交换中的 action 帧。因此提取 CSI 需要设备物理访问与固件修改,而提取 BFI 只需要一张支持 monitor 模式的网卡加一个 CBFR 解析器,且帧向全方向广播,附近攻击者以与 AP 几乎相同的 SNR 即可收到。

1.2 已被学术界证实的两条攻击路径

研究包 01-sota-survey.md 梳理了两个 2024–2025 年的独立研究结论:

  • BFId(KIT,ACM CCS 2025):仅凭 BFI(不含 CSI)即可在 197 人数据集上实现 >90% 的再识别准确率,且只需 5 秒采集(约 10 Hz sounding 下的 600 帧 CBFR)。BFI-only 的识别精度与 CSI-only 相当,证明 Givens 角度压缩保留了身份判别性方差。
  • LeakyBeam(NDSS 2025):用商品硬件可在 20 米外穿墙检测占用,真实环境 TPR 82.7%、TNR 96.7%。它证明 BFI 编码了人体进入房间引起的信道扰动。

对 RuView 而言,这个问题的现实意义在于:现有 rvCSI 感知管线(ADR-095/ADR-096)基于 CSI 输出 presence、motion、person_count 等事件,却没有任何一层显式度量"这些输出是否来自可识别个体的数据"。BFLD 正是填补这一缺口的隐私层。


2. BFLD 的核心思想:免疫系统,而非监控镜头

设计文档 02-soul.md 用一个比喻定义了 BFLD 的立场:免疫系统不会给遇到的每个病原体建立档案——它按类型分类、按比例响应、把详细记录留在体内。BFLD 同样不"生产"身份,而是守卫"身份的意外生产":检测 RF 数据何时从"环境感知"滑向"身份记录",并在本地响应——抬高风险分、限制出站数据、轮换标识符。

这一区分是结构性的:同一物理信号既驱动 presence 检测,也被 BFId/LeakyBeam 用于再识别。BFLD 无法抑制底层物理,但可以保证节点的输出不可识别,即使其输入本可支持识别

由此衍生出三类输出等级的判定表(隐私类与可逆性):

输出隐私类可逆性
Presence(是/否)2 — anonymous不可逆为身份
Motion 幅度(0..1)1 — derived不可逆为身份
Person count(整数)1 — derived不可逆为身份
Zone activity1 — derived不可逆为身份
Identity risk score1 — derived是风险分,不是身份
RF signature hash1 — derived每日轮换,不可逆
Identity embedding0 — raw可直接还原为生物特征
原始 BFI 矩阵0 — raw可直接还原为生物特征

这张表不是政策清单,而是被编入帧格式的约束:每个BfldFrame携带的privacy_class字节在数据离开节点前于 emitter 边界强制检查;任何想发送 class-0 数据的代码必须主动绕过编译期安全检查,而非仅仅忘记设一个 flag。


3. 三项结构性不变式(不可配置、非政策)

BFLD 的核心是三条无论操作者如何配置都成立的结构性属性(而非访问控制规则):

不变式 I1:原始 BFI 永不离开节点

BFI 矩阵被 extractor 摄取后仅在本地消费,不序列化到任何出站通道。在已实现的 crate 中,这一点由Sinkmarker-trait 层级与PrivacyClass::Raw.allows_network() == false联合强制(见 crate README)。MQTT 发射器(mqtt.rs/rumqttc_publisher.rs)不存在序列化 BFI 矩阵的代码路径;ruview/<node_id>/bfld/raw/state主题默认禁用,即使启用也只发布元数据摘要(子载波数、时间戳、SNR 范围),而非角度矩阵。

不变式 I2:身份嵌入仅存于内存

用于计算identity_risk_score的 RuVector 嵌入驻留在内存环形缓冲区中(默认 10 分钟),从不落盘、从不序列化进任何 MQTT 主题、即使privacy_class = 0也不进入BfldFrame载荷。源码实现位于 embedding_ring.rs:EmbeddingRing是固定容量(RING_CAPACITY = 64)的 FIFO,满时 push 会驱逐并返回最旧条目,使该条目的Drop执行、f32 存储被 zeroize;其IdentityEmbedding类型刻意不实现Serialize/Clone/Copy,并在Drop时清零存储。数学基础是:风险分只是嵌入在四个因子上的标量投影,下游任何消费者都不需要完整向量。

不变式 I3:跨站点身份匹配在密码学上不可能

rf_signature_hash的计算式为:

rf_signature_hash = BLAKE3-keyed(site_salt, day_epoch || features)
  • site_salt是节点首次启动时生成的 256 位站点级密钥,存于 NVS/安全存储,永不传输
  • day_epoch = floor(unix_time_utc / 86_400),UTC 午夜翻转,同一人的哈希每天变化。

源码见 signature_hasher.rs:SITE_SALT_LEN = 32RF_SIGNATURE_LEN = 32SECONDS_PER_DAY = 86_400compute()Hasher::new_keyed(&site_salt)day_epoch小端字节与特征字节流输入。由于 BLAKE3 是密钥化的 PRF,两个站点的节点观察同一人会产生不相交哈希空间中的独立值;即使攻击者同时拿到两个节点的哈希流,也无法判断同一人是否到访过两个站点——跨站点再识别是结构性不可能,而非政策承诺。测试套件tests/signature_hasher.rs直接覆盖了 ADR-120 中跨站点 Hamming 距离验收准则。


4. privacy_class 字节:四级数据暴露表

privacy_class是节点允许发出什么的唯一权威分类器,由隐私门(privacy_gate.rs)根据identity_risk_score与操作者配置为每个出站BfldFrame设置。研究包 04-privacy-gating.md 给出了四级完整字段表:

Class 0 — raw(仅限受控研究/红队)

字段是否发布说明
presence / motion / person_count布尔 / 0..1 float / u8
identity_risk_scoref32
rf_signature_hash轮换 blake3,32 字节 hex
zone_activity / confidence
compressed_angle_matrix每子载波 Phi/Psi——敏感面
amplitude_proxy / phase_proxy / snr_vector
bfi_matrix(原始)永不序列化前丢弃,不在线格式中
identity_embedding永不仅本地 RAM,不在线格式中

Class 1 — derived(诊断默认,操作者显式 opt-in)

发布 presence、motion、person_count、identity_risk_score、rf_signature_hash(仅轮换哈希)、zone_activity、confidence、snr_vector(仅每流聚合);压缩角度矩阵、amplitude/phase proxy 一律清零。

Class 2 — anonymous(所有标准部署的默认)

发布 presence、motion、person_count、zone_activity、confidence;identity_risk_scorerf_signature_hash被抑制,所有角度/幅度/相位字段清零。

Class 3 — restricted(护理设施、医疗、客房等最高隐私场景)

仅发布 presence(布尔),motion 与 person_count 也抑制——等价于一个被动红外传感器。

4.1 源码级强制:单调降级与零化

已实现的 privacy_gate.rs 通过PrivacyGate::demote()强制单调类转换:只允许从低编号(信息密度高)向高编号(信息密度低)降级,不存在promote操作。降级时:

  1. 校验目标类的数值严格大于等于当前类(Derived(1)→Anonymous(2) 合法,反向禁止,否则返回BfldError::InvalidDemote);
  2. 目标 ≥ Anonymous 时清零compressed_angle_matrix与可选csi_delta
  3. 目标 ≥ Restricted 时额外清零amplitude_proxyphase_proxy
  4. 重新同步header.privacy_class并重算payload_crc32

清零用black_box守卫的循环执行以对抗死存储消除(dead-store elimination),保证写操作可观测。

4.2 未来字段的默认拒绝姿态

04-privacy-gating.md 规定:任何新增进BfldFrame或事件 JSON 的字段必须先分类再发布——通过#[privacy_class(minimum = N)]注解或privacy_gate.rs中的等价运行时检查声明最小隐私类,配套单元测试断言低类包含、高类省略,并由 crate 内自定义#[must_classify]lint 强制:任何缺少分类属性的公开字段产生编译警告并升级为 CI 错误。


5. identity_risk_score:四因子乘法评分与门控动作

研究文档给出的评分公式为:

identity_risk_score = clamp(separability × temporal_stability × cross_perspective_consistency × sample_confidence, 0, 1)

源码实现于 identity_risk.rs,且补充了关键设计意图:乘法组合在不确定下是保守的——任一因子接近 0 都会把总分压向 0,即"不确定时报告低风险",这是隐私优先的默认偏向。score()函数将每个输入 clamp 到 [0,1],NaN 按 0.0 处理(同样符合隐私保守偏向)。

分数确定性地映射到GateAction(ADR-121 §2.4):

分数区间动作效果
score < 0.5Accept正常发布
0.5 ≤ score < 0.7PredictOnly发布但降低 confidence 标记
0.7 ≤ score < 0.9Reject丢弃事件
score ≥ 0.9Recalibrate丢弃事件并轮换site_salt

阈值常量PREDICT_ONLY_THRESHOLD = 0.5REJECT_THRESHOLD = 0.7RECALIBRATE_THRESHOLD = 0.9均在源码中定义,边界语义为下界包含(score = 0.7 即 Reject)。Recalibrate动作会触发EmbeddingRing::drain()——一次性清空所有嵌入槽位,使未来哈希与过去完全失联。

研究包 01-sota-survey.md 还指出了评分与攻击文献的校准关系:BFId 证明了身份再识别精度是时间窗口的函数,BFLD 的identity_risk_score应与之单调相关——高分(>0.7)对应 BFId >80% 精度的窗口,低分(<0.2)对应接近随机的窗口。


6. 哈希轮换与身份嵌入生命周期

6.1 rf_signature_hash 的构造与轮换

04-privacy-gating.md 给出完整构造:

site_salt := blake3_keyed_hash(secret="bfld-site-seed", data=node_mac_address) # 首次启动生成一次,存 NVS,32 字节,永不传输 day_epoch := floor(timestamp_ns / 86_400_000_000_000) # 每个 UTC 日一个新 epoch ephemeral := mean_angle_delta ‖ subcarrier_variance ‖ burst_motion_score # 当前窗口特征的小型定长摘要,非身份特异 rf_signature_hash := BLAKE3(key = site_salt, input = day_epoch_bytes(8) ‖ ephemeral_features(24))

轮换的语义分三层:

  • 跨站点隔离:BLAKE3 是密钥化 PRF,salt_A ≠ salt_B时即使输入day ‖ features完全相同,两个哈希也伪随机独立;
  • 站内当日聚类:同一天同一站点内,同一人的帧产生相近(非相同)哈希——这是刻意设计,允许会话内的事件聚类,但不允许身份恢复;
  • 跨日失联:轮换时刻一到,所有既有哈希与未来值在密码学上断连,节点操作者本人也无法跨日关联日志。

6.2 嵌入生命周期

BFI 帧到达 → 特征提取 → RuVector 嵌入 Vec<f32,128> ├─→ identity_risk_score(标量投影;class 1 发布 / class 2-3 抑制) └─→ 内存环形缓冲(EmbeddingRing,容量 64,no_std,无堆分配) → 永不落盘、永不序列化、重启即失 → 留存窗口后丢弃(Drop 时 zeroize)

环形缓冲服务于两个目的:temporal_stability需要对比当前嵌入与近期嵌入;一致性门(coherence gate)需要近期帧判断新帧是既有轨迹延续还是新事件。两者都只需嵌入在计算期间存于 RAM——都不需要持久化。crate 中的 coherence_gate.rs 独立成模块,并在 tests/coherence_gate.rs 中验证。


7. 威胁模型:六类对手与五条攻击树

03-security-threat-model.md 定义了六类对手:

对手能力BFLD 的相关性
A1 被动嗅探者(好奇邻居)monitor 模式网卡 + Wi-BFI/tcpdump,零网络关系LeakyBeam 威胁;BFLD 无法阻止空中捕获,但确保自身输出不助长其工作
A2 定向跟踪者A1 + 目标 MAC 地址 + 时间关联若哈希长期稳定即可跨会话关联;每日轮换切断此关联
A3 ISP/运营商可访问 MQTT broker、HA、云端隐私门在节点边界拦截,操作者无法意外发布身份相关数据
A4 国家/执法机关强制访问存储与日志 + 取证若不变式成立,broker 仅存 presence/motion/count/轮换哈希,均不可单独再识别
A5 被攻陷的 AP 固件修改 sounding 调度提取更高分辨率 BFI系统自归一化:更可分的 BFI 会抬升identity_risk_score并标记为高风险
A6 供应链攻陷节点移除隐私门或加入外泄路径ADR-028 witness-bundle 模式 + AC6 确定性帧哈希:被篡改的二进制在 verify 时必然失败

五条攻击树覆盖:AT-1 被动捕获→身份推断(BFLD 不阻止空中接口,但拒绝提供第 4 步的"关联锚点");AT-2 跨站点哈希关联(被 site_salt 结构性阻断);AT-3 风险分时序侧信道(默认不发布 + MQTT ACL 本地化 + class 3 将风险分清零);AT-4 MQTT 主题枚举(默认 mosquitto ACL 拒绝匿名通配订阅 + 建议 TLS/客户端证书);AT-5 Matter cluster 滥用(Matter 边界拒绝一切身份字段)。

威胁模型还以每隐私类为单位给出残余威胁分析:class 0 的角度序列具有身份判别性,仅限受控研究;class 1 存在 AT-3 时序侧信道残余;class 2 的时间占用模式可能泄露日程(非身份);class 3 等价于被动 IR 传感器,残余威胁最小。


8. 生态集成:Home Assistant、Matter、MQTT 与联邦

8.1 Home Assistant:6 个新实体

05-automation-integration.md 定义 BFLD 在 sensing-server 既有 21 实体(ADR-115)之上新增的实体:

实体类型privacy_class默认
binary_sensor.bfld_presence布尔2ON
sensor.bfld_motion0..1 float2ON
sensor.bfld_person_count整数1ON
sensor.bfld_confidence0..1 float2ON
sensor.bfld_identity_risk0..1 float(诊断)1OFF
sensor.bfld_zone_activity字符串2ON

bfld_identity_risk在 HA 模型中归类为诊断实体,UI 默认隐藏且不进 recorder 历史,除非显式启用——与 class-1 字段的操作者 opt-in 姿态一致。配套三个 HA blueprints:presence 驱动灯光(仅 class-2 数据)、motion 驱动 HVAC、身份风险异常通知(唯一触碰 class-1 字段的蓝图,用于提醒操作者环境变化使 RF 信道更可区分)。crate 内已有 ha_discovery.rs 实现 MQTT discovery 载荷生成,并有 tests/ha_discovery.rs 验证。

8.2 Matter:最小暴露面

Matter 只暴露 Occupancy Sensing(0x0406,presenceOccupancy属性 bit 0)、Motion Detection(0x040E 提案)与 People Count(厂商扩展)。以下字段无论操作者如何配置都不得经 Matter 暴露identity_risk_scorerf_signature_hashraw_bfiidentity_embeddingcompressed_angle_matrix,以及任何未来分类为 class < 2 的字段。该拒绝逻辑在 v2/crates/cog-ha-matter/ 中实现,BFLD 事件在填充 Matter 属性报告前被过滤。

8.3 MQTT 主题树与 ACL 建议

ruview/<node_id>/bfld/ presence/state # "true"|"false" — class 2 motion/state # "0.42" — class 2 person_count/state # "1" — class 1 identity_risk/state # "0.71" — class 1,默认禁用 raw/state # 默认禁用,class 0 仅元数据 zone_activity/state # "living_room" — class 2 confidence/state # "0.88" — class 2 events/bfld_update # 完整 JSON 事件 — 默认仅 class 2 字段

推荐的 mosquitto ACL:BFLD 节点只写自身子树;HA 只读 presence/motion/count/zone/confidence/events;identity_risk 的读取规则需操作者显式添加;匿名客户端默认无任何访问权;raw 主题默认从不写入。BFLD 的 MQTT 发布端在 crate 中已实现(mqtt_topics.rs、rumqttc_publisher.rs,mqttfeature 引入rumqttc 0.24),并配有 live-broker 集成测试(tests/mosquitto_integration.rs,可用BFLD_MQTT_BROKER=tcp://localhost:1883解锁)。

由于 BFLD 发布标准 MQTT 载荷与一致主题结构,Node-RED 与 OpenHAB 无需任何插件即可直接消费(研究包中给出了 Node-RED flow 与 OpenHAB items 文件示例)。

8.4 cognitum 联邦:身份字段在节点边界剥离

cognitum-v0(Pi 5 家电,运行 ruview-mcp-brain 于 9876、cognitum-rvf-agent 于 9004、ruvector-hailo-worker 于 50051)是跨房间关联的舰队协调器。关键约束:身份字段在节点边界、本地 BFLD emitter 处剥离,而非在 cognitum-v0 处。联邦主题仅转发 presence/motion/person_count/events;identity_risk/stateraw/state为节点本地主题,不参与联邦。cognitum-rvf-agent 用时间与空间邻近性做多房间占用关联("人从客厅节点移到厨房节点"),不需要也不接收身份信息。未来扩展点:将identity_risk_score计算卸载到 Hailo-8 加速器(ruvector-hailo-worker 于 50051),嵌入仍留在 cognitum-v0 本地——明确不在当前规范范围内。


9. 实现:crate 布局、公共 API 与验收准则

9.1 模块布局与复用地图

规划文档 06-implementation-plan.md 设计的模块布局,在仓库中已实际落地为 v2/crates/wifi-densepose-bfld/src/:lib.rs(公共 API:BfldPipeline、BfldFrame、BfldEvent)、frame.rs(序列化 + CRC32 + magic)、extractor.rs对应能力的 BFI 捕获接口、features.rs的特征计算、identity_risk.rsprivacy_gate.rsemitter.rsmqtt相关模块,以及独立的coherence_gate.rsembedding.rsembedding_ring.rssignature_hasher.rsprivacy_mode.rssoul_channels.rs等。测试目录 tests/ 包含 60+ 个测试文件,覆盖帧往返、隐私门降级、哈希轮换、身份风险分数、MQTT 路由、确定性、presence 延迟等全部验收点。

crate 插在wifi-densepose-signal(BFI 归一化、时间窗)与wifi-densepose-sensing-server(MQTT/HA 集成)之间,默认构建不依赖训练管线与神经网络推理 crate。从规划文档的复用地图看,BFLD 复用 RuvSense 的coherence_gate.rs(嵌入门控)、multistatic.rs(跨视角一致性)、cross_room.rs(环境指纹)、longitudinal.rs(Welford 统计)、adversarial.rs(物理不可能信号检测,对应 A5 威胁),以及 RuVector 的ruvector-attention(子载波空间注意力)、ruvector-mincut(人员分离)、ruvector-temporal-tensor(时间窗压缩)。cog-ha-matterwifi-densepose-ruvector/viewpoint/的 fusion 模块亦在其复用列表中。

9.2 公共 API 速览

crate README 给出的最小进程内消费者:

use wifi_densepose_bfld::{ BfldConfig, BfldPipeline, IdentityEmbedding, SensingInputs, SignatureHasher, EMBEDDING_DIM, SITE_SALT_LEN, }; let mut pipeline = BfldPipeline::new( BfldConfig::new("seed-01") .with_signature_hasher(SignatureHasher::new([0xAB; SITE_SALT_LEN])), ); let event = pipeline .process( SensingInputs { /* timestamp, presence, motion, ... */ timestamp_ns: 1_700_000_000_000_000_000, presence: true, motion: 0.42, person_count: 1, sensing_confidence: 0.91, sep: 0.2, stab: 0.2, consist: 0.2, risk_conf: 0.2, rf_signature_hash: None, }, Some(IdentityEmbedding::from_raw([0.05; EMBEDDING_DIM])), ) .expect("low-risk emit"); println!("{}", event.to_json().unwrap());

生产形态是 worker 线程 + HA-DISCO 发布(BfldPipelineHandle::spawn,示例见 examples/bfld_handle.rs),可运行cargo run -p wifi-densepose-bfld --example bfld_minimalcargo run -p wifi-densepose-bfld --example bfld_handle体验。

9.3 线格式

frame.rs 定义了BFLD_MAGIC: u32 = 0xBF1D_0001,头部含 magic、version、哈希化后的 AP/STA 标识、quantization 字节、privacy_class字节、压缩特征载荷与 CRC32(详见 ADR-119,86 字节头部 + 载荷分节 + CRC-32/ISO-HDLC)。测试 tests/frame_roundtrip.rs 验证序列化往返与 CRC32 确定性,tests/payload_sections.rstests/header_roundtrip.rs覆盖头部与分节细节。

9.4 七条验收准则与 CI 映射

AC准则测试
AC1商品 WiFi 5/6 捕获(80/160 MHz,2×2 MIMO 起步)ac1_commodity_wifi_capture
AC2presence 延迟 ≤ 1s(自首个非空 BFI 帧)ac2_presence_latency(CI 用 200ms 更紧阈值)
AC3motion 发布 ≥ 1 Hzac3_motion_hz
AC4原始 BFI 字节永不出现于序列化输出(1000 随机输入 fuzz)ac4_raw_bfi_absent
AC5privacy_mode 抑制全部身份派生字段ac5_privacy_mode(+ 1000 输入 fuzz)
AC6相同输入 → 位级相同输出(跨平台确定性)ac6_deterministic_hash
AC7csi_matrix = None时管线仍产出合法事件ac7_csi_optional

crate 的测试目录已落地对应覆盖,例如 tests/presence_latency.rs、tests/motion_publish_rate.rs、tests/pipeline_determinism.rs、tests/event_privacy_gating.rs。另有tests/hash_rotation.rs验证跨站点隔离(不同 salt、相同输入 → 哈希必异)与每日轮换(同一 salt、午夜前后 1 秒 → 哈希必异)。

9.5 ESP32 能力边界与捕获路径

06-implementation-plan.md 的 ESP32 评估结论是明确的:ESP32-S3 的esp_wifi_csi_set_config()只产出 Espressif HT20 格式 CSI(每子载波幅度+相位),不公开 CBFR 帧捕获 API。因此 BFI 采集必须走主机侧嗅探:Pi 5 + BCM43456 芯片跑 Nexmon monitor 模式(舰队中 cognitum-v0 即为此硬件),过滤 Action 帧中的 VHT/HE CBFR,经 rvcsi 适配器(vendor/rvcsi/已处理 Nexmon PCap 格式)转发进 BFLD 管线。对 ESP32 固件唯一需要的改动是stream_sender.c中增加包类型字节(STREAM_PKT_TYPE_CSI 0x01/STREAM_PKT_TYPE_BFI 0x02)以区分 CSI 与 BFI 帧。

9.6 分阶段落地

规划六阶段:P1 帧格式+extractor 桩(2 周)→ P2 特征提取+身份风险(3 周)→ P3 隐私门+MQTT(2 周)→ P4 HA 集成(1 周)→ P5 Matter 暴露(1 周)→ P6 cognitum 联邦(1 周),总计约 10.5 工程师周。


10. 评估与基准策略

07-benchmarks-and-evaluation.md 定义了 BFLD 的度量体系:

  • Presence:延迟 p50 < 500ms、p95 < 1000ms(AC2);空房误报率 < 5%、漏报率 < 2%(以 ADR-079 相机真值协议为地面真值);
  • Motion:与相机推导幅度 MAE < 0.1;持续运行 ≥ 1 Hz(AC3);onset 延迟 p95 < 750ms;
  • Person Count:1–3 人计数准确率 > 85%、MAE < 0.5(依赖ruvector-mincut,4+ 人需多 AP 覆盖);
  • Identity Risk 校准(BFLD 的新颖评估维度):定义E[acc(t) | r(t) = v]随 v 单调递增为"已校准",用 BFId 分类器滑窗精度与风险分做 Spearman 相关,目标 rho > 0.5;
  • Privacy-mode 误报率:目标0%(硬性正确性要求,非统计目标),由 AC5 fuzz 验证。

红队协议包括三个攻击实验:哈希再识别攻击(跨 3 天,预期失败,成功率 ≤ 1/N + 0.05)、跨站点再识别(哈希匹配结构性失败;分类器若拿到原始角度序列可能成功——但 BFLD 不发布这些)、风险分时序侧信道(攻击者只能学到"有人在场",等价于 class 2 已发布的 presence 信息)。

对比基线表明隐私门控的显式代价:无门控的 BFI+CSI 融合管线估计 F1 ≈ 0.97,BFLD class 2 目标 F1 0.93——这是"身份安全换取适度效用"的明确权衡。CI 中每个触碰 BFLD 的 PR 都运行三项持续评估:确定性哈希(AC6)、隐私模式字段抑制 fuzz(AC5)、延迟冒烟(AC2,200ms 紧阈值)。


11. 溯源与证据链:审计与见证

研究包与 crate 为 BFLD 提供了多层可审计性:

  • 网络级审计:tcpdump 抓取 1883/8883 端口,在 PCAP 中检索 BFI magic 字节BF 1D 00 01——class ≥ 2 时不应出现;
  • 节点自检(P3 起规划):wifi-densepose bfld audit --duration 60s输出 raw_bfi/embedding 出现次数与 privacy_class 分布;
  • CI 确定性校验verify_bfld.py结构对齐 ADR-028 的 witness-bundle 模式——固定种子合成 BFI 输入(512 字节、PRNG seed=117)→ 提交期望 SHA-256 → 篡改二进制(A6 威胁)在下次 verify 时必然失败。AD-028 见证日志 docs/WITNESS-LOG-028.md 预留了 BFLD 分节。

12. 未来方向与设计前瞻

  • WiFi 7(802.11be):MLO 多链路操作将 sounding 频率提升 3–5 倍,身份分类器的训练数据量同步增长。BFLD 的帧格式(magic0xBF1D_0001+ version 字节)为协议演进预留扩展,特征提取模块可插拔,WiFi 7 extractor 可无侵入接入——不变式保持不变;
  • AI/ML 压缩反馈:802.11bn/Wi-Fi 8 研究组正探索神经码本压缩 BFI,其隐空间可能比原始角度更具身份判别性,BFLD 需兼容压缩编码;
  • 差分隐私融合(明确列为未来扩展而非本 ADR 范围):identity_risk_score可作为自适应 epsilon 选择器——高风险帧收紧隐私预算(更多噪声),低风险帧原样通过;
  • ZK 证明:未来可用零知识证明声明"风险分确由声称的输入算出"而不泄露输入(与 ADR-028 witness 思路同源)。

结语

BFLD 把"WiFi 感知输出是否已滑入身份记录"这一隐性、静默的风险,转变成每个事件上可见、可审计的显式信号。它不承诺阻止空中的被动嗅探(那是物理层问题),而是承诺节点的自身输出不可识别——并通过类型系统(Sink层级、无Serialize的嵌入)、密钥化哈希轮换与单调隐私门,把承诺变成结构性事实。对于在共享办公、客房、护理设施等场景部署 RuView 的团队,这套 docs/research/BFLD/ 研究档案 + ADR-118 架构决策 +wifi-densepose-bfldcrate 的组合,提供了从威胁建模、机制设计到可运行实现的完整参考。

【免费下载链接】RuViewπ RuView turns commodity WiFi signals into real-time spatial intelligence, vital sign monitoring, and presence detection — all without a single pixel of video.项目地址: https://gitcode.com/GitHub_Trending/wi/RuView

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/11 15:12:24

FPGA实战:基于DDS的任意波形发生器设计与Verilog实现

简介&#xff1a;面向FPGA开发的DDS任意波形输出完整工程套件&#xff0c;适合数字信号处理初学者和有一定基础的设计人员&#xff0c;可帮助解决从数字频率合成原理到波形生成落地的关键问题。工程共包含633个文件&#xff0c;压缩包大小8.5MB&#xff0c;主要文件类型既有VHD…

作者头像 李华
网站建设 2026/9/11 15:12:11

GESP四级C++考试判断题解析与应试技巧

1. GESP四级C考试判断题解析指南作为国内权威的青少年编程能力认证&#xff0c;GESP&#xff08;Grade Examination of Software Programming&#xff09;考试近年来受到越来越多学生和家长的关注。2025年6月这次四级C考试的第二部分判断题&#xff08;1-10题&#xff09;主要考…

作者头像 李华
网站建设 2026/9/11 15:11:18

树莓派Pico用PIO模拟UART:从原理到MicroPython实现

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/11 15:09:25

Cursor接入Figma MCP:从设计稿到代码的自动化流程

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/11 15:07:19

线性回归损失函数详解:MSE、MAE与Huber Loss的工程实践

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华