自制ESP32密码键入器:免驱HID攻克受限终端

自制ESP32密码键入器:免驱HID攻克受限终端

ESP32-S3硬件安全密码管理器USB-HIDWeb-BLE开源硬件

数据源:Hackaday + GitHub (Brisk4t)

「如果我能把超长随机密码复制到可疑电脑上,世界早就和平了。可惜我只能手动敲键盘。」

开发者 Brisk4t 在开源项目 ToothPaste 开篇写下的调侃,道出了数字凭证管理的尴尬死角。云端密码库将数据封存在严密的软件沙箱中。但面对主板 BIOS 界面、物理隔离的工控机或受限客户机时,这套纯软件防线瞬间失效。

Brisk4t 设计的 ToothPaste 键入器绕开了操作系统应用层。该方案用乐鑫 ESP32-S3 模拟标准键盘。手机打开支持 Web BLE 的浏览器,即可把保管库里的长密码直接键入受控主机。凭证交互的安全防线,由此退回物理外设的信任链。

ToothPaste 外观 图:插在目标设备上的 ToothPaste 硬件密码键入器外观。来源:Hackaday(Bryan Cockfield 摄)

软件沙箱跨不过物理外设鸿沟

主流密码管理方案统治了消费级数字安全。它们依赖操作系统内核的权限隔离机制,防止跨进程内存窥探。

然而,这套机制预设宿主系统具备软件安装权限。一旦缺乏系统管理权限,软件传输链条便会中断。工程师进入机房维护服务器 BIOS 固件时,系统尚未加载网络驱动,软件方案根本无法运行。在金融网点柜台与严禁外联的气隙设备上,情况同样棘手。

局域网同步工具曾试图弥合跨端鸿沟。但这类方案要求双端处于同一局域网,且必须常驻后台守护进程。在租用机房维护设备上安装外来软件,通常违反数据安全合规准则。面对无法安装软件的受控终端,硬件级模拟输入是唯一的通用解。

通用串行总线(USB)规范定义的人机接口设备(HID)标准,提供了跨越数十年的通用兼容。无论是三十年前的老旧工控电脑,还是当代机架服务器,主板开机引导程序都会默认信任 USB 键盘信号。硬件模拟因此绕开了上层操作系统的安全审查。

ESP32-S3 把加密凭证变成 2 毫秒键盘脉冲

Brisk4t 选用乐鑫科技的 ESP32-S3 芯片作为控制核心。该单片机原生集成全速 USB OTG 控制器与低功耗蓝牙 5.0。这种高度集成的架构,省去了额外搭配独立 USB 转接芯片的硬件成本。

在固件实现上,ESP32-S3 同时向主机申报 BOOT 键盘与鼠标描述符。固件内置按键扫描码转换表,以 2 毫秒为时间间隔向主机发送通断报文。主机操作系统的输入栈,只会将其识别为一位人类打字员在高速敲击。

ToothPaste 原型验证板 图:早期原型验证板通过 USB 接口直接向外设发送模拟输入。来源:Brisk4t 个人博客

发送端同样无需安装专用客户端。ToothPaste 借助 Chromium 内核的 Web Bluetooth API,支持浏览器在网页上下文内直接枚举蓝牙设备。用户用手机浏览器打开配置页面,完成配对后,即可调出系统原生密码填充菜单。

浏览器前端将密码封装为 NanoPB 协议缓冲区报文,再经由低功耗蓝牙推向单片机。整个通信流程无需云端服务器中转。数据流严格约束在手机屏幕、短程无线信道与单片机片上内存之间。

ATECC608B 硬件隔离掐断空中嗅探风险

将高敏密码暴露在无线蓝牙信道中,必然带来空中嗅探隐患。主流移动设备支持的 Web BLE 接口受限于浏览器沙箱,仅强制开放 Just Works 配对方式。

Just Works 模式缺乏端对端身份核验机制。信道在未加密状态下传输,周边攻击者架设监听天线就能截获明文凭证。ToothPaste V2.0 增设 Microchip ATECC608B 加密芯片,在开放协议之上建立了端对端防御。

ToothPaste V2.0 硬件电路板 图:ToothPaste V2.0 硬件电路板布局,搭载 ESP32-S3 主控与 Microchip ATECC608B 协处理器。来源:Brisk4t 个人博客(PCBWay 样片)

设备初次配对时,发送端网页与单片机执行 ECDH 密钥协商。ATECC608B 在硬件保护区内生成私钥。该私钥永久锁死在硅片内部,外部探针无法从总线读取。

配对流程加入了带外物理确认机制。用户必须按下单片机上的物理按键,才能批准本次连接。协商完成后,双方派生出单次有效的 256 位 AES 对称会话密钥。通信载荷进入蓝牙天线前已完成加密。

网页本地的 IndexedDB 存储同样经过加固。保存的常用宏命令由用户主密码经 Argon2 算法散列加密。即便浏览器离线缓存被复制,未获授权的攻击者也无法解开明文指令。

物理外设隔离难防终端内核监听

ToothPaste 在开源社区引发了技术讨论。支持者看重它对主密码库的物理隔离,反对者则质疑失陷终端下的防护成效。

如果受控主机早已感染内核级键盘记录木马,模拟敲击输入的密码依然会被记录。只要凭据被输入登录框,恶意程序就能拿到该账户的单次使用权。

这两种视角揭示了防御层级的差异。ToothPaste 的防御核心是守护主密码库的完整性,防止母库凭据遭批量拖库。 用户在公共终端登录单个系统,即便该账户暴露,损失范围也受控。主密码库始终停留在手机端,未对目标设备开放权限。

此外,单片机有限的硬件规格也制约了功能拓展。ESP32-S3 的 USB 控制器仅提供有限的端点资源。固件占满了 BOOT 键盘、鼠标、通用 HID 与控制端点四个通道。在现有架构下,设备只能单向键入,无法从目标设备读取屏幕回执。

凭证防护退守物理信任链条

从软件金库退回硬件外设,映射出计算机安全在边界演进中的务实取舍。面对异构受限终端,依赖高层软件互信往往寸步难行。

云原生安全架构建立在理想预设之上。它要求终端运行受信任的客户端,要求各节点连通网络鉴权中心。但在工业现场与安全隔离区,这些条件并不存在。

ToothPaste 借助成熟的开源芯片与基础外设规范,在受控主机与个人凭证库之间架起物理桥梁。当上层软件沙箱在受限终端前失效,扎根于物理接口的通用硬件模拟,构成了抵御未知环境的有效防线。

参考链接:

  • Hackaday 报道:ToothPaste Goes Where Your Password Manager Doesn’t
  • Brisk4t 技术博客:ToothPaste V2: Hardware-Backed BLE Clipboard
  • GitHub 开源仓库:Brisk4t/ToothPaste