Bumalik sa blog

Canvas Fingerprinting at Pag-iwas: Mas Mahalaga ang Pagkakatugma kaysa Randomization

Ginagawang identifier ng Canvas fingerprinting ang maliliit na pagkakaiba sa rendering ng parehong drawing instructions sa iba't ibang hardware at software, at bihira itong gamitin nang mag-isa. Mas makatuwirang panatilihing magkakatugma ang mga katangian sa loob ng isang environment kaysa baguhin ang mga ito sa bawat pagbisita.

Hindi komplikado ang prinsipyo ng Canvas fingerprinting, pero marami sa mga karaniwang ipinapayo na paraan ng pag-iwas ay kabaligtaran ng talagang kapaki-pakinabang.

Parehong instructions, magkaibang machine, magkaibang resulta

Ang Canvas ay isang drawing component ng HTML5 na nagpapahintulot sa web page na gumuhit ng mga hugis at teksto gamit ang script. Ang parehong drawing instructions ay maaaring magkaroon ng maliliit na pagkakaiba sa rendering sa iba't ibang device dahil sa mga salik sa ilalim ng system gaya ng operating system, bersyon ng browser, font library, at graphics driver. Halos hindi ito nakikita ng mata, pero kapag ini-export bilang data ang laman ng canvas, nagiging mga value ang mga pagkakaibang iyon na maaaring ikumpara.

Ganito sa pangkalahatan ang proseso: unang gumuguhit ang page ng graphics at teksto, pagkatapos ay ginagamit ang toDataURL() para i-export ang resulta bilang Base64 string. Maaari nang gamitin ang string na iyon bilang identifier. Magkaiba ang export result ng iba't ibang device, kaya sa maraming pagkakataon ay natatangi ang value. Walang epekto rito ang pagbura ng cookies, at ganoon din ang pag-clear ng cache.

Bihira itong gamitin nang mag-isa

Limitado ang gamit ng isang Canvas value lang, at maaari itong magbago kapag nag-upgrade ang browser o na-update ang graphics driver. Sa aktuwal na paggamit, karaniwang pinagsasama ang Canvas sa iba pang katangian at kinukumpirma ang mga ito laban sa isa't isa:

  • Graphics-related data gaya ng WebGL, listahan ng mga font, at modelo ng graphics card
  • Environment-related data gaya ng UA, time zone, wika, at screen resolution
  • Session-related data gaya ng cookies, local storage, at network egress

Pinagsasama ang mga signal na ito para masuri ang consistency. Maaaring normal ang bawat item kapag tiningnan nang hiwalay, pero madaling mapansin ang mga salungatan kapag pinagsama-sama: naka-set sa United States ang time zone, puro Chinese ang language list, at tumutugma sa integrated graphics ang Canvas value habang ang UA ay nagsasabing bagong high-end device ang gamit. Hindi kailangang patunayan ng platform kung sino ka. Kailangan lang nitong makita na ang kombinasyong ito ng mga katangian ay hindi mukhang mula sa isang tunay na machine.

Kapag dinisable, lalo kang namumukod-tangi

Unang naiisip ng maraming tao ang pag-disable ng Canvas, pero maaari itong magdulot ng kabaligtarang epekto.

Halos lahat ng browser ng karaniwang user ay sumusuporta sa Canvas. Ang environment na malinaw na walang Canvas support ay kabilang sa maliit na minorya sa estadistika at halos ipinapakita na may espesyal na pagbabago itong ginawa. May mas praktikal pang problema: umaasa ang maraming website sa Canvas para sa image cropping, charts, at pag-render ng CAPTCHA. Kapag pinatay ito, maaaring masira ang ilang function ng page at madagdagan pa ang mga anomalya.

May isa pang paraan: gumamit ng bagong random na set ng values sa bawat pagbisita. May parehong problema ito dahil stable ang fingerprint ng totoong device. Ang environment na nagbabago sa bawat pagbisita ay kumikilos nang iba sa normal na device at maaaring mas madaling ihiwalay at markahan. Ang mismong randomization ay maaaring maging isang makikilalang signal.

Ang makatuwirang direksiyon ay internal consistency

Mas malapit sa tunay na sitwasyon ang pagpapanatiling magkakatugma ng mga katangian sa loob ng environment at hindi kakaiba ang kabuuang profile kaysa gawing iba ang lahat sa bawat pagbisita.

Sa praktika, dapat suportahan ng mga katangian ang isa't isa: dapat magkatugma ang time zone, wika, at heograpikong lokasyon ng egress IP. Dapat ding nasa magkatulad na antas ang device na sinasabi ng UA at ang graphics capability na ipinapakita ng Canvas at WebGL. Kailangang manatiling stable sa mahabang panahon ang environment ng parehong account at hindi dapat magkaroon ng malinaw na pagbabago sa paulit-ulit na pagbisita. Iwasang umasa sa mga plugin na basta nagdi-disable ng isang feature dahil madalas silang lumikha ng mas kapansin-pansing katangian. Kung maaari, bawasan ang third-party scripts upang lumiit ang surface na maaaring kolektahan ng data.

Kung kailangang magkakaiba ang ilang environment, iyon ay problemang dapat lutasin ng environment isolation. Kapag naghihiwalay ng mga environment para sa maraming account, karaniwang binibigyan ng mga tool gaya ng PurpleMark ang bawat account ng isang nakapirming environment sa halip na hayaang random na tumalon-talon ang mga parameter. Ang talagang mahalaga sa mga platform ay kung stable ang grupo ng mga katangian at kung lohikal ang pagkakatugma ng mga ito.

Buod

Nagagamit ang Canvas sa tracking dahil ginagawa nitong isang stable at maikukumparang string ang maliliit na pagkakaiba sa hardware at software. Ang mabisang pag-iwas ay hindi ang pag-disable nito o ang pagpapabago-bago nito nang random, kundi ang pagtiyak na tugma ito sa ibang katangian ng parehong environment. Mas ligtas ang magmukhang karaniwan kaysa magmukhang kakaiba.