C14
低成本 USB 外设身份变化报警夹
A Low-Cost Identity-Change Alarm for Shared USB Peripherals
1 · 创新命题
中 面向学校机房、前台和共享实验台,做一个夹在主机与键盘/U 盘之间的 USB 身份报警器:记录 descriptor、接口类别、端点与允许的行为包络,当“键盘突然多出存储/网卡接口”或设备序列特征改变时 断开并亮灯;相对依赖每台电脑安装驱动的端点软件,为旧主机提供独立、可见、可回滚的最小防线。 EN A plug-in USB identity-change alarm for school labs and shared desks that disconnects peripherals when descriptors, interface classes or behavior move outside an approved envelope—adding a visible retrofit guard without installing endpoint software on every legacy computer.
2 · 背景与空白
USBGuard 在 Linux 上提供策略控制,商业 endpoint control 管理 USB;USBProxy、Facedancer/LUNA 等 开源项目支持协议研究,BadUSB 说明固件可改变设备类别。现有硬件数据阻断器多简单切断数据线,无法 保留键盘/打印功能。空白在:为共享外设做“首次批准后身份变化”这一极窄故障模式的低成本透明夹, 并量化枚举兼容性、误阻和可检测边界,而不是宣称识别所有恶意 USB。
3 · 可检验假设
H1 对 ≥ 25 种合法 USB 外设与 ≥ 80 个安全模拟身份变化,报警器对新增 HID/存储/网卡接口和 descriptor 改变的召回 ≥ 0.95,合法重新枚举误阻 ≤ 3%,附加枚举时间 95 分位 ≤ 1 秒。 H2(机制)descriptor + 端点行为包络相对 VID/PID 白名单将模拟绕过召回提高 ≥ 30 个百分点, 同时兼容复合设备。
4 · 量化验收标准
- 【方法学校验 · 硬门槛】 用自建分析复现 USB-IF 描述符公开样例与 Linux
usbmon/Wireshark 的至少 20 个枚举记录,接口、端点与配置值解析一致率 100%,时间戳偏差 ≤ 2 ms。 此条不过,后续全部结论无效。 - ≥ 25 种自有外设,覆盖 HID、存储、音频、打印和复合设备;不运行攻击载荷,只模拟描述符/接口变化。
- 不平衡检测报 PR-AUC、召回、精确率、误阻率,明确不报 accuracy;按物理设备型号划分, 同一设备不同插拔记录不得跨集。
- 测枚举时间、吞吐、掉线与总线供电;USB 3.x 高速透传能力若未实现必须明确限定 USB 2.0。
- 断电时默认状态与旁路方式必须记录;不得让报警夹成为键盘不可用的单点故障。
- 做 ≥ 8 小时连续键盘输入与存储读写耐久测试,报告掉线次数、重连时间和数据校验哈希;任何文件 哈希改变都须停止性能结论并先定位透传错误。
5 · 数据与工具
| 用途 | 来源 / 工具 |
|---|---|
| 硬件 | RP2040/Pico、USB251x 类 hub 或具双 USB 控制器开发板;可行拓扑和价格 需核实 |
| 固件 | TinyUSB;host/device 同时支持取决于 MCU 与板卡,需实测 |
| 参考 | USB-IF 描述符文档、Linux usbmon、Wireshark USB dissector |
| 对照 | USBGuard、官方枚举样例 —— 仅用于校验与对比,不计入数据贡献 |
| 安全 | 只用自有设备与无载荷模拟;不制作或传播 BadUSB 攻击脚本 |
能力边界:合法 descriptor 不证明固件善意。致命错误是把 VID/PID 当唯一身份,它可复制且复合 设备会误伤;结论只能覆盖“可观察身份变化”。
研究必须单独处理开机前键盘、操作系统登录后重枚举和 USB hub 下挂设备,因为三者的信任时点不同。 报警器不应记录键值或文件内容,只保存 descriptor 与计数特征;用注入 canary 键序列检查日志中是否 出现内容,若出现即判隐私失败。对需要 BIOS 键盘的旧主机,旁路模式和醒目状态指示是最低可用条件。 复合设备批准应按接口最小授权,而非整台设备一次放行;例如允许键盘接口不应自动允许随后出现的网卡。 策略变更须由实体按钮或本地管理员确认,避免报警器自身的网络管理面成为新入口。 报警状态还应可由色盲用户辨认,不能只靠红绿灯区别。
6 · 赛季执行路径
- 第 1–2 周:USB 拓扑确认与 20 记录硬门槛。
- 第 3 周:完成 USB 2.0 透明枚举基线;冻结支持类别。
- 第 4–5 周:25 外设兼容测试;第 6 周身份/行为包络。
- 第 7 周:80 个安全模拟变化;第 8 周按型号划分评估。
- 第 9 周:VID/PID 基线与消融;第 10 周掉线、供电、旁路测试。
- 第 11–12 周:单位经济、伦理边界、简述与演示。
7 · 新颖性边界
不声称:不发明 USB 防护;不检测所有恶意固件;不替代端点安全;不提供 BadUSB 攻击方法。 已有工作:USBGuard 做主机策略;USBProxy/Facedancer/LUNA 支持协议研究;商业 USB data blocker 物理断数据信号。本项目贡献是共享旧主机的透明身份变化夹、兼容性与误阻数据。 护城河类型:存量改造(C)+ 价格坍塌(A);外设兼容/行为模板库是资产,硬件原理可复制。
8 · go/no-go
第 2 周末:开发板无法同时稳定 host/device,具名降级为 Linux 单板机 USBGuard 硬件盒, 不再追求 MCU 成本,身份变化主结论不变。 第 5 周末:合法设备兼容率 < 80%,收窄到键盘与 U 盘两类;第 8 周若身份变化召回 < 0.80, 降级为只做新增接口类报警,不声称行为包络检测。