Chrome 148以降、Math.tanhでOSの特定が可能に

Judul asli: Since Chromium 148, Math.tanh is now fingerprintable to link underlying OS

Mengapa Ini Penting

ブラウザフィンガープリント技術の精度向上がアンチボット・プライバシー分野に影響を与える

Chrome 148からV8がMath.tanhをOS標準の数学ライブラリに委託するよう変更され、Linux・macOS・Windowsを区別できるフィンガープリント信号が生じた。

Chrome 148のV8エンジン更新(コミット c1486295ae5)により、Math.tanhの計算がV8内蔵のfdlibmポートからホストOSの標準数学ライブラリ(std::tanh)に切り替えられた。これにより、Linuxはglibc、macOSはAppleのlibsystem_m、WindowsはUCRT(ucrtbase.dll)をそれぞれ使用するため、同一の入力値に対して異なるビット列が返される。

例えばMath.tanh(0.8)の結果は、Linux(glibc)が0.6640367702678491、macOS(libsystem_m)が0.664036770267849、Windows(UCRT)が0.6640367702678489と、三者すべてが異なる値を返す。全入力の約4分の1でglibc対libsystem_mの差異(1 ULP程度)が生じる。

Chrome 147以前はfdlibmで統一された計算を行っていたため、OSを特定できなかった。Chrome 148・149・150はこの差異が発生する。アンチボットシステムはUser-Agentが申告するOSと実際の演算結果を照合することで、ブラウザの偽装を検出できる。

Scrapfly社は、この差異を正確に再現するためにAppleの数学ライブラリの実装を分析した結果、(1)V8独自の数学処理との混在、(2)CSSトリグ関数やWeb Audio APIなど複数の漏洩経路、(3)ARM対x86での実装差異、(4)将来的なChrome更新への追従、という4つの課題があると報告している。

Sumber

scrapfly.dev — Baca artikel asli →