FROST

Fingerprinting Remotely using OPFS-based SSD Timing — a proof-of-concept that measures your own machine's SSD contention from JavaScript. Nothing leaves your browser.

An unaffiliated proof-of-concept based on the paper “FROST: Fingerprinting Remotely using OPFS-based SSD Timing” (Weissteiner et al.).

Environment

Cross-origin isolated
OPFS available
Device memory
Storage

Controls

Idle.

Live SSD access latency

current
median
p95
rate
spikes >1ms0

With measurement running, launch a native app or load a heavy website on the same disk and watch the latency rise — that's SSD contention leaking activity.

Last read off the SSD

— (start measuring to see bytes)

(waiting for the first read…)
each byte as a grayscale pixel

These bytes come from this page's own OPFS probe file (random data we wrote at startup). OPFS is sandboxed — it cannot read other apps' files, other websites' storage, or arbitrary disk sectors. FROST never reads anyone's data; its signal is purely the read latency.

Website fingerprinting

Start the SSD measurement above first. Then calibrate by capturing each site a few times on this machine, and let the page guess which one you open. Closed-world: it always picks the closest calibrated site.

Calibrate at least two sites to enable guessing.

Why calibration is needed: an SSD fingerprint is specific to this machine, OS, and browser, so the page learns it where it runs. It can't reset the OS page cache from JavaScript, so a site's signal is strongest on its first open and weakens on repeats. Accuracy here is rough — well below the paper's controlled-lab numbers — and works only when the site's activity hits the same SSD as the probe file. Calibration lives in this tab only; nothing is stored or sent anywhere.