Keamanan Siber

Jejak Digital Baru: Fungsi Math.tanh di Browser Kini Bisa Ungkap Sistem Operasi Pengguna

Ringkasan

  • Sejak Chromium 148, fungsi Math.tanh yang umum digunakan dalam pengembangan web kini dapat digunakan untuk mengidentifikasi sistem operasi pengguna, membuka celah baru untuk fingerprinting digital.

Sebuah temuan mengejutkan dalam dunia keamanan siber dan privasi digital mengungkap bahwa fungsi matematika `Math.tanh` yang umum digunakan dalam pengembangan web, sejak versi Chromium 148, kini berpotensi menjadi alat baru untuk melakukan *fingerprinting* (sidik jari digital) guna mengidentifikasi sistem operasi (OS) yang mendasari browser pengguna.

Selama ini, teknik *fingerprinting* browser lebih dikenal melalui jejak-jejak seperti *canvas fingerprinting*, *WebGL fingerprinting*, identifikasi font, dan karakteristik audio. Namun, sebuah sinyal yang lebih halus dan tersembunyi kini teridentifikasi, yaitu pada bit-bit terakhir dari hasil perhitungan angka presisi ganda (double-precision floating-point numbers).

Perbedaan ini muncul karena implementasi fungsi `Math.tanh` pada setiap sistem operasi berbeda. Sebagai contoh, ketika fungsi `Math.tanh(0.8)` dijalankan di browser Chrome pada Linux yang menggunakan pustaka matematika `glibc`, hasilnya akan sedikit berbeda dengan hasil yang sama di macOS yang menggunakan `libsystem_m` dari Apple, atau di Windows yang bergantung pada `UCRT` (Universal C Runtime). Perbedaan ini, meskipun seringkali hanya selisih satu unit pada tempat desimal terakhir (1 ULP - Unit in the Last Place), cukup signifikan untuk membedakan ketiga platform tersebut.

Sebagai ilustrasi, pengujian pada Chrome versi 150 menunjukkan variasi yang jelas. Untuk input `Math.tanh(0.8)`, Linux, macOS, dan Windows menghasilkan nilai yang berbeda pada bit terakhirnya. Situasi serupa terjadi pada input `Math.tanh(0.7)` di mana Linux menghasilkan nilai yang sedikit berbeda dibandingkan dua sistem operasi lainnya. Hal ini menunjukkan bahwa bahkan fungsi matematika dasar yang tampaknya universal, ternyata membawa jejak spesifik dari lingkungan komputasi tempat ia dijalankan.

Perubahan ini merupakan konsekuensi dari pembaruan internal di mesin JavaScript V8 yang digunakan oleh Chromium. Sebelum versi V8 14.8.57 (yang digunakan pada Chrome 148), V8 menggunakan implementasi pustaka `fdlibm` miliknya sendiri yang menghasilkan output identik di semua OS. Namun, sejak Chrome 148, V8 beralih menggunakan `std::tanh` dari pustaka C++ standar, yang secara otomatis memanggil pustaka matematika (*libm*) yang terpasang di sistem operasi host. Peralihan ini membuka celah bagi perbedaan implementasi *libm* antar OS untuk memengaruhi hasil perhitungan `Math.tanh`.

Para peneliti menekankan bahwa perbedaan ini tidak melanggar standar IEEE 754 yang mendefinisikan format penyimpanan angka desimal. Standar tersebut tidak mewajibkan fungsi matematika seperti `sin`, `cos`, atau `tanh` untuk *correctly rounded* (dibulatkan dengan presisi sempurna) karena proses tersebut memakan banyak sumber daya komputasi. Akibatnya, setiap vendor atau sistem operasi mengoptimalkan pustaka matematika mereka dengan konstanta dan tabel reduksi yang sedikit berbeda demi kecepatan, yang pada akhirnya menghasilkan variasi bit pada output.

Selain `Math.tanh`, temuan ini juga menyoroti bahwa fungsi-fungsi matematika yang dipanggil melalui CSS (`calc()`, `sin()`, `cos()`, `atan2()`) juga dapat membocorkan informasi OS. Jalur eksekusi CSS berbeda dari `Math.*` JavaScript, dan proses reduksi sudut dalam derajat sebelum pemanggilan fungsi matematika platform turut berkontribusi pada perbedaan hasil yang unik untuk setiap OS.

Temuan ini memiliki implikasi serius bagi privasi pengguna. Kemampuan untuk membedakan OS hanya dari satu panggilan fungsi matematika dapat digunakan untuk membangun profil pengguna yang lebih akurat, bahkan ketika teknik *fingerprinting* konvensional telah diblokir atau diminimalkan. Pengembang situs web dan penegak keamanan siber perlu menyadari potensi penyalahgunaan sinyal halus ini dan mengembangkan metode pertahanan baru untuk melindungi identitas digital pengguna.

Mengapa Ini Penting

Perbedaan kecil dalam implementasi fungsi matematika dasar seperti Math.tanh kini dapat dieksploitasi untuk fingerprinting, mengancam privasi pengguna yang selama ini dilindungi oleh teknik pemblokiran fingerprinting yang lebih umum. Hal ini mendorong perlunya penelitian dan pengembangan metode deteksi serta pencegahan fingerprinting yang lebih canggih dan berlapis. Bagi industri teknologi di Indonesia, kesadaran akan celah keamanan baru ini penting untuk membangun produk dan layanan yang lebih aman serta menjaga kepercayaan pengguna.

Sumber Asli
Internasional
Tanggal
12 Juli 2026
Waktu Baca
4 menit