Bumalik sa blog

Suriin ang browser fingerprint exposure: anim na consistency check

Maraming field sa fingerprint test page ang nababasa na talaga ng mga website. Ipinapakita ng anim na check na ito kung paano makita ang salungatan sa browser, system, rehiyon, network, at rendering data, dahil mas madaling mapansin ang magkakasalungat na signal kaysa sa isang kakaibang value lamang.

Kapag nagbukas ka ng kahit anong browser fingerprint test page, makakakita ka ng mahabang listahan ng mga field: UA, screen, time zone, fonts, Canvas rendering results, at hardware parameters. Kadalasan, “uniqueness” ang unang tinitingnan, pero iyon talaga ang hindi gaanong mahalaga. Mas mahalaga kung nagtutugma ba ang lahat ng field sa isa’t isa.

浏览器指纹暴露自查:六项核对与自洽判断的关键步骤与判断维度示意图

Ano ang nababasa na talaga ng mga website

Hindi iniimbak ang fingerprint tulad ng cookie. Puwede mong burahin o i-block ang cookies, o umiwas gamit ang private browsing; ang fingerprint ay nagmumula sa mismong configuration ng browser at device. Nasa UA ang browser type at version, pati operating system at version nito. Kasama rin ang installed plugins, screen resolution at color depth, listahan ng fonts, time zone at preferred language, CPU type, GPU model at laki ng memory, IP address, ISP at connection type, at rendering results mula sa HTML5 interfaces gaya ng Canvas at WebGL. Kapag pinagsama-sama, nagiging identifier ang mga field na ito at halos hindi nagbabago kahit magpalit ka ng IP, mag-clear ng cookies, o gumamit ng private mode. Pareho ang prinsipyong ginagamit ng mga platform kapag sinusuri kung magkakaugnay ang mga account.

Unahin ang tatlong bagay na dapat itugma sa system

Magandang unahin ang User Agent dahil ito ang paraan ng browser para ilarawan ang sarili nito. Kopyahin ang UA mula sa test page, i-check ang browser version sa browser settings, at i-check ang operating system version sa system settings. Kung hindi tugma ang system o kernel version na sinasabi ng UA sa aktuwal na machine, o kapansin-pansing luma kumpara sa karaniwang kasalukuyang versions, madali itong mapansing inconsistency.

Dapat tugma ang time zone sa rehiyon ng network exit. Karaniwang direktang ipinapakita ng test page ang kasalukuyang time zone, at makukuha rin ang parehong value sa simpleng script na kumukuha nito. Gumamit din ng anumang IP lookup page para makita kung saang rehiyon nakatalaga ang exit IP. Kung magkaibang rehiyon ang ipinapakita ng dalawa, kailangang ayusin ang mismatch.

Mahihinang signal ang language at region kapag hiwalay, pero kapaki-pakinabang kapag pinagsama. Tingnan ang listahang ibinabalik ng navigator.language at navigator.languages at ihambing ito sa mga wikang karaniwan sa exit region. Mas kapansin-pansin ang kombinasyong U.S. ang time zone, Chinese ang language, at Europe ang exit kaysa sa alinman sa mga iyon nang mag-isa.

Screen, network exit, at rendering characteristics

Sa screen at hardware parameters, dalawang bagay ang dapat tingnan: karaniwan ba ang mga value, at tugma ba ang mga ito sa device type na sinasabi ng UA? Puwedeng sabay suriin ang resolution, pixel ratio, available area, bilang ng CPU cores, at memory. Isang karaniwang kontradiksyon ang phone-sized na resolution na ipinares sa desktop UA.

Dapat hiwalay na suriin ang WebRTC dahil maaari nitong ilantad ang tunay na network information. Kadalasang may sarili itong item sa test page. Tingnan kung may ibinabalik na local network address, gaya ng nagsisimula sa 192.168 o 10, o mismong tunay na public exit address. Kung naka-proxy ka pero lumalabas pa rin ang tunay na address, hindi dumaraan sa proxy ang traffic na iyon. Ito ang may pinakamataas na priority.

Para sa Canvas at WebGL, tingnan kung stable ang mga result at kung tugma ang mga ito sa sinasabing GPU model. May isang mahalagang detalye: kung maraming environment sa iisang machine ang sabay na bukas at eksaktong pareho ang rendering values, mas madali silang maiugnay kaysa kung may kaunting variation o noise ang mga value.

Mas kapansin-pansin ang kontradiksyon kaysa sa hindi perpektong realism

Hindi naman hinihingi ng platform na ganap na unique ang bawat device. Ang sinusuri nito ay kung mukhang galing sa isang normal na machine ang buong set ng impormasyon. Ang isang value na hindi gaanong “realistic,” tulad ng bihirang resolution, ay kadalasang mahina lang na signal. Pero kapag nagsasalungatan ang ilang field, mas madaling makita ang problema. Halimbawa, Windows ang sinasabi ng UA pero mukhang macOS ang font list; U.S. ang time zone, Chinese ang language, at Europe ang exit; o phone-sized ang resolution pero desktop browser ang nasa UA. Kahit isa sa mga kombinasyong ito ay maaaring bumigat kaysa sa masusing fine-tuning ng ibang parameter. Kaya sa self-check, unahin ang malinaw na kontradiksyon bago ang detalye ng bawat parameter.

Kung tatlong bagay lang ang gusto mong ayusin

Una ang WebRTC leak dahil tunay na network information ang inilalantad nito. Pangalawa ang pagtutugma ng time zone at language sa exit region, dahil madaling magsama-sama ang mga mismatch na ito para maging abnormal ang profile. Pangatlo ang paghawak sa Canvas at WebGL para hindi direktang mailantad ng parehong machine ang isang stable at unique na rendering value.

May praktikal ding limitasyon: makakaharang ang pag-disable o paghigpit sa JavaScript sa ilang data collection, pero kapansin-pansing bababa ang usability ng maraming website. May built-in protections ang privacy browsers at madalas sapat sa araw-araw na browsing, pero mas limitado kapag kailangan mong panatilihin nang matagal ang maraming magkakahiwalay na identity.

Paano magpanatili ng maraming environment

Hindi kailangang gumawa ng ganap na random na fingerprint sa bawat pagkakataon. Ang mahalaga ay stable ang bawat environment sa loob nito at naiiba ito sa iba. Sa PurpleMark, gumawa ng hiwalay na browser environment para sa bawat account, hiwalay na pangasiwaan ang mga parameter gaya ng Canvas, at pagkatapos ay i-check ang consistency ng bawat environment sa isang fingerprint test page. Ang environment na pumasa sa ganitong review ang mas angkop panatilihin sa pangmatagalan.

Sa huli, dalawa lang ang gamit ng fingerprint testing: makita kung ano ang inilalantad mo at matiyak na may lohika ang impormasyon kapag pinagsama-sama. Ang uniqueness ang hindi dapat pinakaaabalahan.