通过设计让二维码更安全:信任首次扫描模型(TOFS)

发布: (2026年1月13日 GMT+8 04:35)
7 分钟阅读
原文: Dev.to

Source: Dev.to

作者:Colten Jacob,2026年1月

QR 码已经悄然成为现代计算中最强大的交互方式之一。一个小小的方块就能发起支付、打开菜单、登录账户或重定向到网站。如今,数十亿人每天都会扫描 QR 码——常常在公共场所,且往往不假思索。

这种便利伴随着一个严重缺陷:QR 码从未为敌对环境而设计。它们最初是为工厂和库存系统而发明的,而不是为公共墙面、咖啡馆和支付终端等任何人都能在几秒钟内更换贴纸的场景。于是,基于 QR 码的网络钓鱼、支付重定向和欺诈行为激增。

本文提出一个简单却强大的解决方案:首次扫描信任(Trust‑On‑First‑Scan,TOFS)——一种在不破坏可用性的前提下,为 QR 扫描引入持久信任和篡改检测的模型。

A Sample QR Code

QR码的核心问题

  • QR码不是标签。
    它是一个指令。

  • 当你扫描它时,手机会执行其中的内容:

    • 打开 URL
    • 发起支付
    • 启动应用
    • 下载文件

大多数扫描器会立即执行,用户无法判断是否:

  1. QR码被更改,
  2. 目标被替换,或
  3. 贴纸被更换。

这就产生了安全工程师所称的 替换攻击:攻击者不需要入侵网站,只需更换 QR码。

常见的攻击目标包括:

  • 停车计时器
  • 餐厅菜单
  • UPI 海报
  • 活动票据
  • 大楼入口

一个看起来完全合法的 QR码就足以重定向资金、窃取凭证或传播恶意软件。

为什么现有防御无法解决此问题

我们已经有:

  • HTTPS
  • Google Safe Browsing
  • Antivirus
  • App sandboxing

但 QR 攻击在裂缝中滑过,因为大多数 QR 欺诈使用:

  • 真正的浏览器
  • 真正的支付应用
  • 真正的网页

…只是错误的目的地。没有技术上的“恶意软件”。这是一个 信任问题,而不是代码问题。

借鉴已验证的安全理念

  • SSH 使用它。
  • 蓝牙配对使用它。
  • 某些证书系统使用它。

思路很简单:第一次连接到某个对象时进行验证;此后,任何更改都会被视为可疑。

二维码缺乏等价的概念——这正是 Trust‑On‑First‑Scan (TOFS) 所提供的。

什么是 Trust‑On‑First‑Scan?

TOFS 是一种轻量级的 QR 扫描信任框架。它包含四个部分:

  1. 首次扫描确认
  2. 目标指纹
  3. 本地信任存储
  4. 过期与不匹配检测

它们共同使 QR 码具备防篡改的可见性。

TOFS 的工作原理

1. 首次扫描 = 明确信任

当 QR 码第一次被扫描时,手机 不会 立即打开它,而是显示:

  • 完整的域名
  • 将要打开的应用(浏览器、UPI 等)
  • 使用的协议(https、upi 等)

用户点击 “信任并打开”。这就是用户唯一需要思考的时刻。

2. 创建指纹

扫描器根据以下信息生成加密指纹:

  • QR 内容
  • 最终解析后的目的地(包括所有重定向)
  • 目标应用

该指纹唯一标识此 QR 实际指向的位置。

3. 本地存储指纹

手机会保存:

  • 指纹
  • 域名
  • 时间戳
  • 过期日期

这就成为该 QR 码的可信身份。

4. 以后扫描自动完成

  • 如果指纹匹配: QR 码立即打开,无提示,零摩擦。

  • 如果有任何变化: 手机会警告:

    “此 QR 码已更改。目的地与您之前信任的不同。”

    这可以防止贴纸调换、重定向支付 QR、被劫持的菜单链接等情况。

为什么过期很重要

Public QR codes change over time:

  • Cafés change menus.
  • Parking operators change vendors.
  • Websites get sold.
  • Domains get hijacked.

TOFS 包含过期策略,例如:

  • café QR: 30 天
  • parking QR: 7 天
  • bank poster: 180 天

过期后,二维码只需重新确认,即可防止陈旧的信任变成漏洞。

为什么这应该放在操作系统中

单独的二维码扫描应用并不能解决这个问题。人们使用以下方式进行扫描:

  • 相机应用
  • Google Lens
  • WhatsApp
  • 支付应用

因此,TOFS 必须嵌入 系统二维码框架(Android、iOS、UPI QR 处理程序等),就像 HTTPS 警告或下载提示一样。它是一个 平台级安全层,而不是对现有安全机制的替代。

TOFS 替代的内容

  • Safe Browsing
  • 防病毒软件
  • UPI 验证
  • TLS

补充 了这些系统缺乏的功能:记住二维码本应是什么的记忆。防火墙阻止恶意站点;TOFS 阻止错误的站点。

为什么这很实用

TOFS 要求:

  • 无新 QR 格式
  • 无新硬件
  • 无网络调用
  • 无云存储

一切都在本地:哈希、时间戳、警告屏幕。这使得它能够大规模部署。

最终思考

QR 码赢得了可用性之战。它们无处不在,因为它们使用起来毫不费力。但毫不费力而缺乏记忆是危险的。Trust‑On‑First‑Scan 为 QR 码提供了它们一直缺乏的东西:随时间推移的身份感。这一单一的改变将 QR 码从盲目的指令转变为可验证的工具——这就是让全球界面安全的方式。

相关帖子

首次扫描信任(TOFS):二维码的安全模型——作者 Colten Jacob(2026年1月)

Back to Blog

相关文章

阅读更多 »

你好,我是新人。

嗨!我又回到 STEM 的领域了。我也喜欢学习能源系统、科学、技术、工程和数学。其中一个项目是…