JavaScript-sormenjäljet ja bottien tunnistaminen: Näin verkkosivustot selvittävät henkilöllisyytesi

1,316 katselukertaa · tykkäystä · 16 jakoa
Jaa
Kirjoittanut Unled Network · 5. huhtikuuta 2026 · Lukuaika 17 min
JavaScript-sormenjäljet ja bottien tunnistus: Näin verkkosivustot tunnistavat kävijänsä

Tärkeimmät huomiot

  • JavaScript-sormenjälkitunnistus kerää yli 50 selaimen ominaisuutta luodakseen uniikin tunnisteen, joka on evästeitä pysyvämpi ja vaikeammin torjuttavissa.
  • Keskeisiä sormenjälkitunnistuksen signaaleja ovat Canvas, WebGL, AudioContext, fontit, näytön ominaisuudet sekä navigator-rajapinnan data..
  • Bottien vastaiset järjestelmät yhdistävät JS-sormenjälkitunnistuksen TLS-sormenjälkitunnistukseen (JA3/JA4) ja käyttäytymisanalyysiin, jolla saavutetaan erittäin tarkka bottien tunnistus.
  • Päätönselaimet (Puppeteer, Playwright) ja automaatiotyökalut jättävät jälkeensä havaittavia jälkiä, jotka sormenjälkitunnistus paljastaa: puuttuvia rajapintoja, identtisiä tulosteita ja ajoituspoikkeamia.
  • Sormenjälkien väärentäminen on mahdollista, mutta vaikeutuu jatkuvasti. Bottien vastaiset järjestelmät hyödyntävät yhdenmukaisuustarkistuksia, jotka paljastavat väärennettyjen arvojen ristiriitaisuudet.

Jokaisella verkkosivustokäynnillä selaimesi paljastaa huomaamatta kymmeniä ainutlaatuisia ominaisuuksia. Näitä ovat muun muassa näytön tarkkuus, näytönohjaimen malli, asennetut fontit, äänenkäsittelyn erityispiirteet sekä tapa, jolla selaimesi piirtää näkymättömiä canvas-elementtejä. Yhteenlaskettuna nämä signaalit muodostavat selaimen sormenjäljen, joka on yhtä ainutlaatuinen kuin ihmisen sormenjälki.

Tämä teknologia on modernien bottien tunnistusjärjestelmien, petosten ehkäisyn ja automaation torjunnan ytimessä. Sen toiminnan ymmärtäminen on olennaista, olipa kyse sitten verkkosivustosi suojaamisesta boteilta tai sen selvittämisestä, miksi tietyt turvajärjestelmät haastavat liikennettäsi.

Mitä JavaScript-sormenjälkitunnistus tarkoittaa?

JavaScript-sormenjälkitunnistus on menetelmä, jossa selaimen JavaScript-rajapintoja hyödyntäen kerätään laitteen ja ympäristön ominaisuuksia. Näin luodaan jokaiselle selainistunnolle yksilöllinen tunniste. Toisin kuin evästeet, jotka käyttäjät voivat poistaa, tai IP-osoitteet, jotka voivat muuttua, sormenjäljet ovat:

Ainutlaatuisuustilastoja: EFF:n Panopticlick-projektin tutkimus osoitti, että 83,6 % selaimista omaa ainutlaatuisen sormenjäljen. Kun mukaan otetaan canvas-sormenjälkitunnistus, ainutlaatuisuus ylittää 95 %. Nykyaikaiset järjestelmät, jotka hyödyntävät yli 50 signaalia, saavuttavat lähes 100 % ainutlaatuisuuden tyypillisten käyttäjäpopulaatioiden keskuudessa.

Miten selaimen sormenjälkitunnistus toimii?

Sormenjälkitunnistusskripti toimii yleensä kolmessa vaiheessa:

  1. Kerääminen: JavaScript-rajapinnat hakevat selaimen ominaisuuksia: muun muassa navigator-objektin, näytön ominaisuudet, canvas-renderöinnin, WebGL-ominaisuudet ja AudioContext-käsittelyn.
  2. Tiivistäminen: Kerätyt arvot yhdistetään ja tiivistetään (yleensä SHA-256 tai MurmurHash3) kompaktiksi sormenjälkijonoksi.
  3. Vertailu: Tiivisteet verrataan tunnettuihin sormenjälkiin, kuten aiemman kävijän, tunnetun bottityökalun tai väärennetyn ympäristön tiivisteisiin.

Keskeiset sormenjälkitunnistuksen signaalit

Canvas-sormenjälkitunnistus

Tämä on tehokkain sormenjälkitunnistuksen signaali. Piilotettu <canvas>-elementti piirtää tekstiä, muotoja ja liukuvärejä. Pikselikohtainen tuloste vaihtelee näytönohjaimen, ajurin version, fontin renderöintimoottorin ja reunojen pehmennyksen toteutuksen mukaan. Kaksi eri laitetta eivät juuri koskaan tuota identtistä canvas-tulostetta.

WebGL-sormenjälki

WebGL paljastaa näytönohjaimen tietoja, kuten valmistajan ja renderöintiyksikön. Se tuottaa myös yksilöllistä renderöintijälkeä. WEBGL_debug_renderer_info-laajennus kertoo tarkan GPU-mallin. Kun nämä yhdistetään WebGL-renderöintitesteihin, saadaan aikaan vahva laitteistosormenjälki.

AudioContext-sormenjälki

Laitteisto- ja ohjelmistoerojen vuoksi Web Audio API käsittelee äänisignaaleja eri tavoin jokaisella laitteella. Kun skripti luo oskillaattorin ja analysoi sen tuottaman äänen, se pystyy tallentamaan laitteen ainutlaatuiset äänenkäsittelyominaisuudet.

Fonttisormenjälki

Eri käyttöjärjestelmäversiot, kielipaketit ja asennetut sovellukset luovat laitteisiin ainutlaatuisia kirjasinkokoelmia. Mittaamalla tekstin renderöinnin leveyttä ja korkeutta eri fonteilla, skriptit pystyvät selvittämään, mitkä fontit ovat asennettuna. Näin syntyy kirjasinpohjainen sormenjälki.

Navigaattorin ja näytön ominaisuudet

SignaaliMitä se paljastaaEntropia
navigator.userAgentSelaimen versio, käyttöjärjestelmä, laitetyyppiKeskitaso (helposti väärennettävissä)
navigator.languageEnsisijaiset kieletMatala-keskitaso
navigator.hardwareConcurrencySuorittimen ydinten määräMatala
navigator.deviceMemoryRAM-muistin määrä (likimääräinen)Matala
screen.width/heightNäytön tarkkuusKeskitaso
screen.colorDepthVärisyvyyden tukiMatala
navigator.platformKäyttöjärjestelmän alustamerkkijonoMatala (poistettu käytöstä)
navigator.maxTouchPointsKosketusominaisuusMatala
Intl.DateTimeFormat().resolvedOptions().timeZoneAikavyöhykeKeskitaso

Muita arvokkaita signaaleja

TLS-sormenjälki (JA3/JA4)

TLS-sormenjälkien tunnistus toimii yhteystasolla, jo ennen kuin mitään JavaScriptiä suoritetaan:

JA3-sormenjälki

Salesforce kehitti JA3:n, joka tiivistää TLS Client Hello -viestin komponentit: SSL-version, salauskirjeet, laajennukset, elliptiset käyrät ja EC-pisteiden formaatit. Jokainen HTTP-asiakas (Chrome, Firefox, Python requests, Go http, curl) tuottaa oman JA3-tiivisteen. Tämä tunnistaa varsinaisen asiakkasohjelmiston vaikka käyttäjäagentti-otsikot olisivat väärennetyt.

JA4-sormenjälki

JA4 on uudempi standardi, joka parantaa JA3:a entistä luettavammalla muodolla ja paremmalla versioseurannalla. Se luo sormenjälkimerkkijonon kuten "t13d1715h2_8daaf6152771_b0da82dd1658", joka koodaa TLS-version, salauskirjeiden määrän, laajennusten määrän ja ALPN-arvot.

Miksi TLS-sormenjälki on hävittävä boteille: TLS-sormenjäljen väärentäminen vaatii TLS-kirjaston muokkaamista C/C++-tasolla - paljon vaikeampaa kuin käyttäjäagentti-merkkijonojen muuttaminen. Useimmat bottien kehittäjät käyttävät Python-, Go- tai Node.js-HTTP-kirjastoja, joilla on omat helposti tunnistettavat JA3-tiivisteet, jotka paljastuvat ei-selain-asiakkaiksi.

Kuinka anti-bot-järjestelmät käyttävät sormenjälkiä

Moderni anti-bot-ratkaisut kuten Cloudflare Bot Management, Akamai Bot Manager ja DataDome yhdistävät sormenjälkitoiminnon useisiin tunnistuskerroksiin:

  1. TLS-sormenjälki-tarkistus: Varmista, että yhteys tulee oikealta selaimelta, ei HTTP-kirjastolta
  2. JavaScript-suoritus: Suorita sormenjälki-keräyskomentosarjat - botit, jotka eivät voi suorittaa JS-koodia, merkitään välittömästi
  3. Yhteensopivuustarkistus: Tarkista, että JS-sormenjälki vastaa TLS-sormenjälkeä (esimerkiksi jos JA3 sanoo Chrome mutta canvas sanoo headless, merkitse se)
  4. Tunnettujen bottien vertailu: Vertaa sormenjälkeä tunnettujen bottityökalujen allekirjoitustietokantaan
  5. Käyttäytymiskerroin: Yhdistä sormenjälkipistemäärä hiiren liikkeisiin, napsautustimingiin ja vieritystapoihin

Headless-selainten havaitseminen

Headless-selaimet (Chrome headless, Puppeteer, Playwright) jättävät tunnistusmerkejä:

Sormenjäljen väärentäminen ja anti-detection

Useat työkalut yrittävät muuttaa selainten sormenjälkiä:

TyökaluLähestymistapaHavaitsemisriski
GoLoginMukautettu Chromium ja säädettävät sormenjälkiprofiilitKeskitaso
MultiloginSelainten jäljittely ja syvä sormenjälkirakentaminenKeskitaso
Puppeteer Extra (Stealth)Laajennus, joka korjaa havaittavat Puppeteer-jäämätKeskitaso-korkea
undetected-chromedriverMuokattu ChromeDriver, joka kiertää tavalliset havaitsemisjärjestelmätKeskitaso-korkea
Selaimen laajennuksetCanvas-esto, WebGL-spoofingKorkea (tuottaa havaittavia jälkiä)
Spoofaamisen perushaaste: Canvas-tuotoksen muuttaminen vastaamaan toisen näytönohjaimen tulosta vaatii kyseisen ohjaimen renderointiputken täydellistä simulointia. Botinvastaiset järjestelmät testaavat satoja pieniä muunnelmia, joita on lähes mahdotonta spoofata johdonmukaisesti. Spoofattujen arvojen epäjohdonmukaisuus on usein havaittavampaa kuin alkuperäinen sormenjälki.

Puolustusstrategiat verkkosivustojen omistajille

Jos suojaat verkkosivustoasi botuilla, ota sormenjälkiotto osaksi monitasoista puolustusta:

Yksityisyyden kannalta merkittävät seikat

Selaimen sormenjälkiotto herättää merkittäviä yksityisyyden huolia. Suuret selaimet rajoittavat yhä enemmän sormenjälkioton mahdollisuuksia:

Suojaa verkkosivustosi bottihyökkäyksiltä

Turvallisuustiimimme toteuttaa kattavaa botinenhavaitsemista, sormenjälkiottoa, DDoS-suojaa ja WAF-konfigurointia hyökkäysten kohteena oleville verkkosivustoille ja sovelluksille.

Telegram: @unlednetwork →    WhatsApp Us →

Kommentit

Onko sinulla kysymys tai kokemus? Osallistu keskusteluun.

    Maria S.

    We implemented this last month and already seeing positive signals.

    Author

    Thanks for the feedback. Based on our experience across hundreds of accounts, this approach shows results within 2-4 weeks.

Osallistu keskusteluun

Ei HTML:ää. Kommentit tarkistetaan.

WhatsApp Telegram