跨越气隙的三种方式:QR 码、Bluetooth LE 与 NFC
气隙只有在你坚持使用时才有意义。每一次签名,都需要一个请求过去、一个签名回来,而承载它们的通道,应当适合当下的场景。

本页内容
为什么是三种
每个气隙钱包都从 QR 码起步,这有充分的理由。QR 码是光学的,你看得见。摄像头也不可能被诱导着往回发送任何东西。AirNox 最初的签名设备(signer)只支持 QR 码,它让我们学到了一件事。把手机对准显示器,等着一帧帧扫完;再把电脑摄像头对准手机,再等一次。每次签名都要来这么两遍。一个月转一次账,这没什么。可如果一次操作里有授权、兑换、存入和领取,人们就会开始找捷径,而一旦走捷径,安全的路径就不再是人们真正在用的那条了。
便利和安全并不对立。便利决定了人们会不会一直用那个安全的方案。所以 AirNox 提供三种通道,由你来选。

QR 码
桌面端显示一个码,手机扫描它。手机显示一个码,电脑摄像头读取它。较长的请求,比如一次合约调用,会以动态 QR 码序列的形式播放,两边屏幕上都会显示进度。

这是最严格的气隙:除了光,什么都不会穿过去。首次配对(pairing)、偶尔一次的大额转账,以及必须关闭无线电的房间,都适合用它。它也始终可以作为后备方案。如果你想要最纯粹的版本,那就只用 QR 码,本文其余内容都与你无关。
Bluetooth Low Energy(低功耗蓝牙)
这是适合办公桌的通道。手机就放在键盘旁边。请求到达,你看一眼手机屏幕,按下 Accept(接受)。首次配对之后,再也不用对准什么了。
手机作为外围设备,以低发射功率广播,所以按设计,它的覆盖范围就只有一张桌子。它从不扫描其他设备,因此应用不需要位置权限。低功率是为了隐私和更小的攻击面,并不是靠它来保证通信保密。那是会话的职责,后面几篇文章会讲到。
Bluetooth LE 适合日常使用:dApp 会话、连续多次签名,以及任何手机就在手边的场景。
NFC
碰一下就行。手机碰一下电脑上的小型 USB 读卡器,请求就在碰的那一刻传过去。物理特性决定了它的距离只有几厘米。这个通道本身没有配对界面。这个动作本身就表明了意图,就像在刷卡终端上碰一下卡一样,所以 NFC 天然适合终端机、自助机和共用办公桌:在这些地方,每次签名都伴随一个刻意的物理动作,恰恰是你想要的。
NFC 需要读卡器。QR 码和 Bluetooth LE 除了手机和电脑之外,什么都不需要。
一个会话,三种通道
无论你用哪种通道,上面跑的都是同一样东西:桌面端与手机之间一个端到端加密(end-to-end encryption)、双向认证(mutual authentication)的会话。你只需配对一次:扫一次 QR 码,再在两边屏幕上核对一个短码。此后,通道就只是通道。你可以在它们之间切换,无需重新配对;会话也不在乎自己跑在光、无线电还是轻碰之上。
通道是不被信任的。蓝牙配对、NFC 近距离接触和一个看得见的 QR 码,都不是认证;会话才是。正是这种分离,让我们能在不降低标准的前提下提供便利,这也是讲“为什么从不信任传输通道”那篇文章的主题。
怎么选
首次配对:QR 码。偶尔一次、金额大、需要谨慎的转账:QR 码。在办公桌前的日常操作:Bluetooth LE。每次签名都应当是一个看得见的物理动作的终端或自助机:NFC。不允许使用无线电的房间:还是 QR 码。手机和钱包都不挑,哪个合适就用哪个。