网页不读文件也能推断硬盘忙不忙

发布于 2026年05月28日

我第一次看到 FROST 时,不舒服的不是“漏洞”两个字。

它太安静了。

一个网页打开后,没有摄像头提示,没有文件授权,也不装插件。它只是借浏览器里的 OPFS 反复写入、读取、删除,再量一量每次花了多久。

FROST,全称是 fingerprinting remotely using OPFS-based SSD timing,可以译成“基于 OPFS 的 SSD 时序远程指纹识别”。它不碰你的硬盘内容,却可能从 SSD 忙不忙里,推断另一边是不是有网站或应用正在活动。

这类东西最容易被讲歪。
它不是网页打开了你的 C 盘,也不是把“下载”“桌面”“文档”扫了一遍,更不是绕过系统权限复制文件。

它用的是 OPFS,Origin Private File System,源私有文件系统。

这个能力本来是给现代网页应用用的。在线 IDE 要保存工程文件,网页视频编辑器要处理大文件,办公应用要离线缓存,游戏要存资源包。没有这些本地存储能力,很多网页应用就只能把东西往服务器传,或者继续在浏览器缓存里凑合。

麻烦出在另一面。

网页可以通过 OPFS 做本地写入、读取、删除,然后测量这些操作耗时。如果这台机器上的 SSD 很空闲,耗时是一种样子;如果另一个网站、另一个应用也在频繁读写,耗时可能出现细微变化。

攻击者看的不是文件内容,而是 timing,时序。
看的也不是某个文件名,而是 contention,资源竞争。

安全圈对 side channel,侧信道,并不陌生。缓存命中时间、电磁辐射、功耗变化,都曾被拿来推断秘密信息。FROST 把这个思路搬进网页:页面不问你要权限,只在浏览器允许的范围内做“合法动作”,再从动作变慢或变快里猜别的事。

原文里有一句很直白:

Now sites have a new way to spy on their visitors: measuring subtle interactions with their solid-state drives.

可以译成:现在,网站有了一种窥探访客的新方式:测量他们与固态硬盘之间的细微交互。

“窥探”这个词要用得小心。
FROST 不是万能监控,也不是实时看穿一切。

原文说,它可使网站监测访客正在浏览的其他网站,以及设备上打开了哪些应用。更准确的说法是:它可能被用于推断这些活动。

推断依赖模式,依赖噪声控制,也依赖设备环境。研究材料没有给出我能引用的成功率、样本量、浏览器版本和平台范围,所以不能写成“所有网站都能马上识别你开了什么软

配图

件”。

但这也不是小事。

隐私里麻烦的地方,经常不是“某个文件被偷了”,而是“某个状态被猜到了”。

你有没有打开证券软件。
你是不是同时访问网银。
你的企业办公客户端是不是正在同步文件。

这些信息未必需要读文件名才有价值。

我做模型部署时吃过类似的亏。日志里没有用户原文,看起来已经脱敏;但请求耗时、重试次数、显存占用峰值、调用哪个向量库,拼在一起,照样能暴露业务状态。

侧信道讨厌就讨厌在这里:它不从正门拿数据,它看门轴转了几下。

网页越来越像本地软件

FROST 不是凭空冒出来的。

过去几十年,网站一直在寻找不那么显眼的识别方式。源材料里提到过,网站曾经用浏览历史追踪、设备指纹、实时记录键盘和鼠标行为等技术来识别访客。

后来,大家熟悉了 Cookie。浏览器开始限制第三方 Cookie。隐私政策弹窗越来越多。追踪技术没有消失,只是换了观察位置。

Canvas 渲染差异可以被看。
字体列表可以被看。
GPU 和音频处理差异可以被看。
屏幕尺寸、时区、语言、浏览器版本,也可以放在一起拼。

单个特征可能不准,几十个特征合起来,就足够把一个设备从人群里拎出来。

Meta 和 Yandex 也曾被发现参与隐私侵入式追踪行为。这里不是要展开“大厂作恶史”,只是说明一件事:只要识别用户能带来广告、风控、归因和增长收益,就会有人继续找缝。

OPFS 的尴尬在于,它本身不是恶意功能。

很多重型网页应用都离不开更强的浏览器存储能力。在线剪视频、在线跑代码、网页端笔记、一些 AI 工具的本地缓存,都需要浏览器更接近本地软件。

你不能一边要求网页应用像本地软件一样顺滑,一边假装网页永远只是一张 HTML 表格。

这些年,浏览器加了很多能力:WebAssembly、WebGPU、Service Worker、File System Access API、OPFS。它们让网页更强,也让网页离设备更近。

离得近,就会留下更多痕迹。

一个网页不能直接看你的硬盘目录,但它能感受到本地存储接口的响应。
它不能知道另一个应用在写哪个文件,但它可能观察到 SSD 忙起来了。
它不能直接读你的办公文档,却可能从一组耗时波动里发现某种活动模式。

这跟 AI 工具有点像。大模型本身并不“知道”你的公司机密,但当你把上下文、插件、文件、浏览器权限、自动化脚本都接上去,风险就不再由模型单独决定,而是由整个工具环境决定。

FROST 也是这样。

SSD 不是罪魁祸首。
OPFS 也不是坏东西。

问题在于,网页获得了越来越多接近本地资源的能力,而授权界面还停留在摄像头、麦克风、定位、文件选择器这些显眼对象上。

时间不显眼。

所以它很容易被放过。

在 App 里的 H5 页面,事情更难看清

把 FROST 放到国内环境里看,会更别扭。

很多用户不是在 Chrome 或 Edge 里认真打开一个网页,而是在 App 里点了一个 H5。

新闻流里点一下。
电商活动页点一下。
支付页、抽奖页、问卷页、广告落地页,全都可能跑在内置 WebView 里。

Android 上是 WebView,iOS 上常见 WKWebView。再往上,还有各种 App 自己包的 JSBridge、广告 SDK、统计 SDK、第三方登录和风控脚本。

用户以为自己只是看了一个页面,实际运行环境比普通浏览器更难看清。

国内互联网业务又很喜欢“无感识别”。

登录前先判断你是不是老用户。
领券前判断你是不是羊毛党。
下单前判断设备风险。
广告归因要知道你从哪来。
反作弊要知道你像不像机器。

这些需求不一定天然邪恶。风控和反欺诈确实要做。

但在一个高度依赖设备画像和行为特征的环境里,任何新的“可观测差异”,都可能被包装成产品能力。

我见过一些供应商介绍设备指纹,PPT 上写得很漂亮:

不采集个人敏感信息。
不读取通讯录。
不访问相册。

听起来都对。

细问下去,浏览器特征、传感器特征、网络特征、行为节奏、渲染差异,一样不少。

FROST 这种东西如果进入灰产或广告技术语境,话术也可以很干净:

不读取文件。
不获取硬盘内容。
只做环境风险评估。

麻烦就在这里。

企业终端也一样。

很多公司会限制网页上传文件,限制 USB,限制网盘,禁止浏览器访问本地路径,以为这样边界就守住了。

FROST 提醒的是另一种盲区:禁止网页读取本地文件,并不等于网页不能通过时间、缓存、磁盘活动推断本机状态。

员工开着企业 IM、文档同步客户端、代码编辑器、内网系统,再访问一个带第三方脚本的网页,理论上就可能给对方留下可测量的活动轮廓。

我不想在这里列“用户自救十条”。

清缓存、开无痕、少上网,这些话对侧信道并不总是有效,有时只是制造一种廉价的安全感。

真正要处理的是浏览器 API 的可观测性、高精度计时能力、站点隔离、第三方脚本约束,以及 App 内 WebView 到底允许网页接触多少本地能力。

一个网页标签页安静地挂在后台。

没有摄像头图标。
没有麦克风提示。
没有文件访问授权。

它只是在一遍遍计算一次本地写入花了多久。

用户看到的是空白或广告。网站看到的,可能是这台电脑此刻的忙碌轮廓。



评论