第 5 篇,共 12 篇阅读约 4 分钟

从不信任传输通道

无线电的安全记录向来不佳。与其争论哪一种足够安全,AirNox 干脆假设没有一种是安全的,把安全建在更高一层。

一个带锁的密封胶囊,穿过笔记本电脑与手机之间三条嘈杂的通道
通道是嘈杂的,胶囊不是。
本页内容

通道不是凭证

蓝牙配对证明两台设备走完了一套配对流程。NFC 近距离接触证明有个东西在读卡器几厘米之内。QR 码证明摄像头看到了一个图案。这些都证明不了对面是谁,而且这三种通道都有过公开的攻击案例:窃听、密钥强度降级、用两部普通手机把一次轻碰中继到城市的另一头。

所以我们把三者都视为敌对的。任何人都可能在监听,任何人都可能注入,任何人都可能中继。通道声称的任何东西,都不会被当作任何事情的证明。

三层结构:底层是敌对的通道,中间是 AirNox 会话,最上层是你的决定
下面是通道,上面是会话,最上面是你。

只配对一次

信任只建立一次,就在你配对桌面端和手机的时候。桌面端显示一个 QR 码,手机扫描它。随后两边屏幕上都会显示一个短码,由你来核对。如果一致,两台设备就协商好了一组任何通道都从未见过的密钥,此后彼此都认得对方的身份。如果不一致,说明中间有东西插了进来,你就该停下。

这次核对,是人唯一一次亲自检查信道的时刻,也是真正关键的时刻。此后的一切,都继承了你亲眼确认后建立起来的信任。

三个步骤:扫描 QR 码、核对两边屏幕上的短码、配对完成;下方显示被篡改、被重放和乱序的消息都会被丢弃
核对一次,之后交给会话。

会话

配对之后,桌面端与手机之间的每一条消息,都在钱包自己掌控的会话中传输。会话是端到端加密(end-to-end encrypted)的,所以即使通道被监听,泄露出去的也只有噪声。会话是双向认证(mutually authenticated)的,所以每一方都知道消息来自与它配对的那台设备,而不是某个冒充者。会话还与它所运行的通道绑定,所以在一条路径上截获的消息,无法在另一条路径上重放。

这个会话建立在一种经过充分研究的现代握手设计之上,与广泛部署的安全隧道所用的属于同一类。我们不自创密码学。

哪些消息会被丢弃

传输中被篡改的消息无法通过认证,会被丢弃。被重放的消息序号对不上,会被丢弃。乱序到达的消息会被丢弃。来自非配对设备的消息,连握手都过不了。无论哪种情况,手机上都不会出现待签名的内容,因为根本没有有效的东西到达。

这就是为什么 Bluetooth LE 和 NFC 带来的便利,不会以牺牲安全为代价。通道想多弱都行。底层无线电是否安全,是一个我们根本不需要回答的问题。

任何通道之上,都是同一个会话

会话并不知道自己跑在光、无线电还是轻碰之上。你可以用 QR 码完成配对,然后日常用 Bluetooth LE,在终端上用 NFC,全程无需重新配对。切换通道不会改变信任的对象,因为通道从一开始就没有被信任过。

这还算气隙(air gap)吗?

纯粹主义者说,气隙只能是光。我们不在这个词上争论。如果你想要严格的版本,就只用 QR 码,它始终可用。我们在意的是这个词背后的属性:保管密钥的设备没有通往互联网的路径,穿过气隙的只有一个由手机自己解码的请求,和一个由它决定生成的签名。基于 Bluetooth LE 的会话保留了这一属性。它额外带来的是:你会一直用下去。

系列全部文章

  1. 假设电脑已被攻破
  2. Mass Adoption Security(大众化安全):签名设备就是你手里现成的手机
  3. 跨越气隙的三种方式:QR 码、Bluetooth LE 与 NFC
  4. 无线隐身:谁也扫描不到的签名设备
  5. 从不信任传输通道
  6. 手机让你看到什么:在签名设备上分析交易
  7. 手机自己留一份记录
  8. 桌面上的保险库:Argon2id 与抵御密码猜测的档案
  9. 不用浏览器钱包,照样用 dApp
  10. 有规则的 MCP 服务器:让 AI 智能体在限额内行事
  11. 一个受保护的钱包,包揽一切
  12. 小巧而原生:C++,没有 JavaScript 运行时,从工作站到 Raspberry Pi

加入候补名单

留下你的邮箱,我们会把产品发布消息发给你。除此之外,什么都不发。