Browserul te tradă prin matematică: cum te identifică site-urile prin Math.tanh în 2026
Chrome 148+ dezvăluie sistemul tău de operare prin funcția matematică Math.tanh. Iată cum funcționează, cine te poate urmări și ce poți face.
Table of Contents
- Ce este Math.tanh și de ce contează
- Valorile concrete: ce returnează Math.tanh(0.8) pe fiecare sistem
- Cum funcționează fingerprinting-ul prin matematică
- De ce contează pentru tine — scenarii reale
- Nu doar Math.tanh — alte funcții care scurg informații
- Apple Silicon: când un singur calculator are două păreri
- Ce poți face tu — ghid de protecție
- Ce pot face dezvoltatorii web
- Imaginea de ansamblu: fingerprinting-ul în 2026
- Întrebări frecvente
- Ce urmează
Poți folosi VPN, poți bloca cookie-urile, poți dezactiva JavaScript-ul — și tot să fii identificat. Începând cu Chrome 148, browserul tău dezvăluie sistemul de operare pe care-l folosești printr-o funcție matematică banală: Math.tanh(). Nu prin setări, nu prin user agent, nu prin ceva ce poți controla. Prin rezultatul unei calcule matematice pe care orice site ți-l poate cere.
Acest tip de fingerprinting e invizibil, nu folosește cookie-uri și nu poate fi șters. În plus, se adaugă la alte tehnici de identificare pe care deja le cunoaștem — canvas, WebGL, fonturi, audio. Și afectează sute de milioane de utilizatori de Chrome, Edge, Brave, Opera și orice alt browser bazat pe Chromium.
Ce vei găsi în acest articol:
- Ce este Math.tanh și de ce Chrome 148+ îți trădează sistemul de operare prin ea
- Cum funcționează exact mecanismul — cu cifre concrete pentru Linux, macOS și Windows
- De ce această schimbare contează pentru intimitatea ta, chiar dacă diferențele sunt minuscule
- Ce alte funcții JavaScript și CSS scurg informații similare despre dispozitivul tău
- Cum te protejezi practic — ce funcționează, ce nu funcționează și de ce
Ce este Math.tanh și de ce contează
Math.tanh(x) este o funcție matematică standard din JavaScript care calculează tangenta hiperbolică a unui număr. Nu-ți face griji, nu trebuie să știi matematică — important e ce face browserul tău cu ea.
Până la Chrome 147, motorul JavaScript V8 (care stă la baza tuturor browserelor Chromium) folosea propria bibliotecă matematică, numită fdlibm. Aceasta returna aceleași rezultate indiferent de sistemul de operare: Linux, macOS sau Windows. Era predictibilă, consistentă și nu scurgea nimic.
Începând cu Chrome 148, echipa V8 a decis să folosească biblioteca matematică a sistemului de operare gazdă — std::tanh în loc de implementarea proprie. Motivul a fost probabil performanță sau optimizare. Efectul secundar? Acum Math.tanh(0.8) returnează valori ușor diferite pe fiecare sistem de operare.
Diferențele sunt infime — una sau două unități în ultima cifră (ULP). Dar sunt consistente. Aceleași valori apar de fiecare dată, pe același sistem. Și asta le transformă în unelte perfecte de identificare.
Ce înseamnă ULP
Valorile concrete: ce returnează Math.tanh(0.8) pe fiecare sistem
Hai să vedem exact ce se întâmplă. Dacă un site rulează Math.tanh(0.8) în browserul tău, primește una dintre aceste valori:
| Sistem de operare | Bibliotecă | Rezultat Math.tanh(0.8) |
|---|---|---|
| Linux (glibc) | libm din glibc | 0.6640367702678491 |
| macOS (libsystem_m) | libsystem_m | 0.664036770267849 |
| Windows (UCRT) | Universal C Runtime | 0.6640367702678489 |
Observi? Pe Linux ai ...8491, pe macOS ...849, pe Windows ...8489. Acea ultimă cifră e diferită — și e mereu aceeași, pe același sistem. Un site nu trebuie decât să compare rezultatul cu o bază de date și știe imediat pe ce sistem de operare ești.
Schimbarea a fost introdusă în commit-ul V8 c1486295ae5, livrat prima dată în V8 14.8.57 — care corespunde Chrome 148. Chrome 147 și versiunile anterioare nu scurg această informație. Chrome 148, 149 și 150 da.
Verifică versiunea de Chrome
Cum funcționează fingerprinting-ul prin matematică
Mecanismul e surprinzător de simplu. Un site rulează un script care cere browserului tău să calculeze Math.tanh() cu un anumit număr. Rezultatul — care ar trebui să fie identic pe toate sistemele — diferă în funcție de biblioteca matematică a sistemului de operare.
Iată pașii concreți:
- Site-ul rulează
const result = Math.tanh(0.8);în browserul tău - Compară rezultatul cu valorile cunoscute pentru fiecare OS
- Dacă rezultatul e
0.6640367702678491→ ești pe Linux - Dacă rezultatul e
0.664036770267849→ ești pe macOS - Dacă rezultatul e
0.6640367702678489→ ești pe Windows
Codul JavaScript care face asta are mai puțin de 10 linii. Orice dezvoltator web îl poate adăuga pe un site în câteva minute. Și nu ai nevoie de nicio permisiune specială — JavaScript-ul rulează normal, ca orice alt cod de pe pagină.
De ce e asta o problemă? Pentru că nu poți controla rezultatul. Nu există un buton, o extensie sau o setare care să schimbe valoarea returnată de Math.tanh(). Browserul tău pur și simplu întreabă sistemul de operare „ce rezultat ai pentru tangent hiperbolic de 0.8?” și primește răspunsul nativ.
De ce contează pentru tine — scenarii reale
Poate te gândești: „Și ce dacă un site știe că sunt pe Windows?”. Problema nu e informația în sine, ci ce se poate face cu ea.
Anti-bot și verificare identitate
Sistemele anti-bot (Cloudflare, Akamai, DataDome) verifică deja zeci de semnale pentru a detecta browsere falsificate. Acum au încă unul. Dacă user agent-ul tău spune „macOS” dar Math.tanh() returnează valoarea de Linux, sistemul știe că browserul tău e falsificat sau că folosești un proxy care nu e transparent.
VPN-uri și anonimizare
Folosești VPN și te prefaci că ești pe un Mac din Germania? Dacă browserul tău e Chrome pe Linux, Math.tanh() va trăda discrepanța. Site-urile pot compara user agent-ul cu rezultatele matematice și să detecteze inconsecvența.
Publicitate și profiling
Companiile de publicitate construiesc profiluri de utilizatori combinând sute de semnale. „Utilizator A folosește Chrome pe Linux, cu rezoluție 1920x1080, fus orar Europe/Bucharest, limba română” — deja ai redus grupul la câteva mii de persoane. Adaugă alte semnale (canvas fingerprint, WebGL renderer, fonturi instalate) și devii unic.
Ce nu poți face
- Nu poți modifica rezultatul — nu există extensie care să intercepteze
Math.tanh()și să returneze altceva fără a cauza erori în alte coduri - Nu poți șterge amprenta — nu e un cookie, nu e o setare, e o proprietate a sistemului de operare
- Nu poți folosi un alt browser Chromium — Edge, Brave, Opera, Vivaldi, toate folosesc V8 și sunt afectate
uBlock Origin și Brave Shields nu ajută
Nu doar Math.tanh — alte funcții care scurg informații
Math.tanh e doar vârful aisbergului. Cercetătorii au descoperit că mai multe funcții JavaScript și CSS scurg informații similare despre sistemul tău.
Funcții CSS trigonometrice
CSS-ul modern are funcții trigonometrice: sin(), cos(), tan(), asin(), acos(), atan(), atan2(). Acestea sunt folosite pentru animații și layout-uri avansate. Și ele rutează prin biblioteca matematică a sistemului de operare, nu prin cod bundled. Dacă un site le folosește într-un <div style="width: calc(sin(0.8) * 100px)">, browserul tău va returna valori diferite pe Linux, macOS și Windows.
Web Audio API — compressor
Web Audio API include un nod de compresie audio (DynamicsCompressorNode). Acesta folosește funcții matematice interne care, la fel, sunt rutate prin biblioteca sistemului. Un site poate crea un compresor, să-l aplice pe un ton generat și să analizeze rezultatul pentru a detecta sistemul de operare.
Ce funcții Math.* NU scurg informații
Interesant e că doar Math.tanh scurge printre funcțiile Math.* din JavaScript. Funcțiile mai populare — Math.sin(), Math.cos(), Math.exp(), Math.pow() — folosesc cod bundled în V8 și returnează aceleași valori pe toate sistemele. Schimbarea a afectat selectiv funcții care erau rutate prin biblioteca nativă a sistemului.
Apple Silicon: când un singur calculator are două păreri
Lucrurile devin și mai interesante pe Mac-urile cu procesoare Apple Silicon (M1, M2, M3, M4). Acestea au două biblioteci matematice care nu sunt de acord:
- libsystem_m — biblioteca scalară, folosită pentru calcule individuale (cum e
Math.tanh) - Accelerate framework — biblioteca vectorială, optimizată pentru calcole în paralel
Cele două pot returna valori diferite pentru aceeași operație matematică. Asta înseamnă că un Mac cu Apple Silicon poate fi identificat și mai precis — nu doar ca „macOS”, ci ca „macOS pe ARM cu Apple Silicon”.
Arhitectura CPU ca semnal suplimentar
Pe lângă sistemul de operare, arhitectura procesorului (ARM vs x86) scurge și ea informații. Două mecanisme principale:
- Fused Multiply-Add (FMA) — operații matematice care combină înmulțirea și adunarea într-un singur pas. ARM și x86 tratează această operație ușor diferit, generând rezultate diferite în anumite cazuri.
- Propagarea NaN (Not a Number) — când o operație matematică e invalidă, rezultatul e NaN. Dar modul în care NaN se propagă prin calcule diferă între arhitecturi.
Aceste diferențe nu sunt noi — dar acum, când Chrome le expune prin funcții JavaScript standard, orice site le poate citi fără efort.
Ce poți face tu — ghid de protecție
Să fim sinceri: protecția împotriva fingerprinting-ului matematic e dificilă. Nu există o soluție perfectă. Dar există opțiuni care reduc expunerea.
- Folosește Firefox ca browser principal — nu folosește V8 și nu are această problemă specifică
- Folosește Tor Browser pentru sesiunile unde intimitatea e critică — randomizează sau blochează multe semnale de fingerprinting
- Verifică versiunea de Chrome — dacă ești pe 147 sau mai jos, nu ești afectat (încă)
- Instalează extensii de anti-fingerprinting precum Canvas Blocker sau Privacy Badger — nu blochează Math.tanh specific, dar reduc alte semnale
- Folosește Safari pe Mac — WebKit nu are această problemă specifică
- Nu te baza pe uBlock Origin sau Brave Shields pentru acest tip de fingerprinting
Firefox — alternativa cea mai simplă
Firefox folosește motorul SpiderMonkey, nu V8. Nu are această problemă specifică cu Math.tanh. Dacă intimitatea ta online contează, Firefox e prima recomandare. E gratuit, open-source și disponibil pe toate platformele.
Dacă vrei să mergi mai departe cu protecția pe Firefox, activează Enhanced Tracking Protection la nivel strict și ia în considerare extensii suplimentare. Am scris mai multe despre alternative la Chrome în articolul despre moartea ad blockerelor în Chrome.
Tor Browser — protecție maximă
Tor Browser randomizează sau blochează multe semnale de fingerprinting, inclusiv cele matematice. E cea mai bună opțiune când intimitatea e prioritate absolută. Dezavantajul? E mai lent din cauza rutării prin rețeaua Tor și unele site-uri nu funcționează corect.
Safari — o opțiune subestimată
Safari folosește WebKit, nu V8. Nu are această problemă specifică. Pe Mac, e deja instalat și oferă un nivel bun de protecție anti-fingerprinting prin Intelligent Tracking Protection. Nu e perfect, dar e semnificativ mai bun decât Chrome din perspectiva intimității.
Ce nu funcționează
- VPN-urile ascund adresa IP, dar nu schimbă rezultatele Math.tanh. Dacă ești pe Linux cu VPN de Mac, fingerprinting-ul matematic te trădează.
- Extensiile de confidențialitate (uBlock Origin, Privacy Badger, Brave Shields) nu pot bloca acest tip de cod JavaScript fără a cauza probleme în alte părți ale site-ului.
- Modul incognito nu schimbă nimic — sistemul de operare e același.
- Schimbarea user agent-ului e inutilă dacă Math.tanh returnează altceva.
Pentru mai multe despre protecția intimității online, vezi ghidul nostru despre cum să cauți pe internet fără să fii urmărit și ghidul despre cum să alegi un server DNS privat.
Ce pot face dezvoltatorii web
Dacă ești dezvoltator, e important să știi că această schimbare există. Dacă folosești Math.tanh sau funcții trigonometrice CSS în codul tău, testarea pe un singur sistem de operare nu mai e suficientă.
Sfaturi practice:
- Nu folosi Math.tanh pentru detectarea OS-ului — e o practică lipsită de etică și poate încălca GDPR-ul european
- Testează pe mai multe platforme dacă folosești funcții matematice în calcole critice
- Verifică dacă rezultatele matematicii tale diferă pe sisteme diferite înainte de a le folosi în logica de business
- Fii transparent cu utilizatorii despre ce date colectezi
Imaginea de ansamblu: fingerprinting-ul în 2026
Math.tanh e doar una dintre tehnicile de fingerprinting disponibile în 2026. Alte metode includ:
- Canvas fingerprinting — browserul desenează pe un canvas invizibil, iar rezultatul diferă în funcție de GPU și drivere
- WebGL fingerprinting — similar, dar folosește API-ul 3D
- Font fingerprinting — lista de fonturi instalate e aproape unică pentru fiecare calculator
- Audio fingerprinting — Web Audio API generează sunete care diferă în funcție de hardware
- Screen resolution și color depth — deja clasice
Math.tanh se adaugă la această listă cu un avantaj major pentru trackeri: e complet invizibil, nu necesită permisiuni și funcționează pe toate browserele Chromium. Sute de milioane de utilizatori sunt afectați fără să știe.
Dacă vrei să vezi ce alte informații dezvăluie telefonul tău, citește ghidul despre ce pot vedea aplicațiile de pe iPhone — principiile sunt similare și pe Android și desktop.
Nu e un bug, e o decizie tehnică
Întrebări frecvente
Pot bloca Math.tanh cu o extensie de browser?
Nu direct. Math.tanh() e o funcție JavaScript standard, la fel ca Math.sin() sau Math.cos(). O extensie care o blochează ar putea strica funcționalitatea normală a site-urilor. Unele extensii anti-fingerprinting încearcă să „zgomotească” rezultatele funcțiilor matematice, dar această abordare nu e fiabilă și poate fi detectată de sistemele anti-bot avansate. Cea mai bună soluție e să folosești un browser care nu are problema (Firefox, Safari, Tor Browser).
Sunt afectat dacă folosesc Edge, Brave sau Opera?
Da. Toate aceste browsere sunt bazate pe Chromium și folosesc motorul V8. Schimbarea introdusă în Chrome 148 afectează toate browserele care folosesc V8 14.8.57 sau mai nou. Edge, Brave, Opera, Vivaldi, Samsung Internet — toate sunt afectate.
Diferențele sunt atât de mici, contează cu adevărat?
Da, contează. Diferențele de 1-2 ULP sunt invizibile pentru om, dar perfect detectabile pentru cod. Un site nu compară rezultatul vizual — îl compară numeric. Dacă Math.tanh(0.8) returnează 0.6640367702678491 pe Linux și 0.6640367702678489 pe Windows, acea diferență în ultimele 2 cifre e suficientă pentru identificare 100% sigură.
Poate un site să afle și versiunea de Chrome prin Math.tanh?
Nu direct. Math.tanh dezvăluie sistemul de operare, nu versiunea de browser. Dar versiunea de Chrome poate fi detectată prin alte metori (user agent, API-uri disponibile, comportamentul altor funcții). Combinând mai multe semnale, un site poate construi o amprentă foarte precisă.
De ce nu a remediat Google problema?
Din perspectiva Google, nu e neapărat o „problemă”. Schimbarea de la fdlibm la std::tanh a fost o decizie tehnică, probabil legată de performanță. Fingerprinting-ul e un efect secundar. Google nu a anunțat că va reveni la fdlibm. E posibil ca în viitor să ajusteze implementarea, dar momentan nu există semnale că se va întâmpla.
Safari sau Firefox au probleme similare?
Safari (WebKit) și Firefox (SpiderMonkey) nu au această problemă specifică cu Math.tanh. Ambele folosesc implementări proprii ale funcțiilor matematice, care returnează aceleași valori pe toate sistemele. Asta nu înseamnă că sunt imune la fingerprinting — au alte semnale care pot fi exploatate. Dar Math.tanh nu e unul dintre ele.
Ce urmează
Această situație e un memento important: intimitatea online nu se rezumă la cookie-uri și VPN-uri. Tehnicile de fingerprinting evoluează constant, iar unele dintre cele mai eficiente sunt cele la care nu te gândești — o funcție matematică banală, un nod audio, un canvas invizibil.
Nu există o soluție perfectă. Dar poți reduce expunerea semnificativ: folosește Firefox sau Safari pentru navigarea de zi cu zi, Tor Browser pentru sesiunile sensibile și fii conștient că orice browser Chromium (Chrome, Edge, Brave, Opera) expune informații suplimentare prin V8.
Dacă te preocupă intimitatea digitală, avem mai multe ghiduri practice: cum să-ți faci telefonul privat cu GrapheneOS, cum să folosești un motor de căutare privat și de ce AI chatbots nu sunt prietenii tăi când vine vorba de datele tale.
Disclaimer