Testi tipkanja goljufanje odkrivajo tako, da preverijo dnevnik pritiskov tipk za vsakim rezultatom. Naš test vsak rezultat preračuna iz dnevnika pritiskov, preveri zgoščeno vrednost (hash), preizkusi zgradbo in časovni potek dnevnika, vsak časovno omejen rezultat nad 130 WPM, katerega časovni potek je tudi nenavaden, pa zadrži zunaj javnih lestvic, dokler ne opraviš ponovnega testa. Časovna preverjanja ujamejo površne bote; ponovni test pa skrbnega bota prisili, da vse naredi še enkrat.
Prvi bot, ki je premagal naša časovna preverjanja, je bil naš.
Naš pomočnik za celovite (end-to-end) teste je tipke pritiskal v stalnem razmiku 40 ms, ker to pač počne testna skripta. Strežnik je rezultat preračunal, potrdil zgoščeno vrednost in tek ocenil kot sumljiv: nič variance med pritiski, nič prekrivanja, enaki časi držanja. Dodati smo morali naključno tresenje (jitter) za vsako besedo in občasne 80- do 300-milisekundne premore „za razmislek“, preden je naš lasten nabor testov lahko oddal rezultat, ki je bil videti človeški. Možnost je še vedno v kodi, z oznako humanLike.
Preverjanja delujejo proti vsemu, kar se ne trudi, in vse, kar se trudi, jih lahko prestane, zato je v zasnovi prava teža na ponovnem testu.
Prvi korak: preračunaj vse
Tvoj brskalnik nam ne pošlje WPM. Pošlje dnevnik pritiskov tipk (vsak dogodek keydown, keyup, input in composition, s časovnim žigom monotone ure performance.now()), metrike, ki jih je izračunal, in zgoščeno vrednost SHA-256 kanoničnega rezultata.
Strežnik na dnevniku zažene isto kodo za metrike in primerja. Če se katera koli številka razlikuje za več kot 0,01, je rezultat zavrnjen kot metrics_mismatch. Če se zgoščena vrednost ne ujema, je zavrnjen kot hash_mismatch. Razširitev brskalnika, ki spremeni polje WPM, najpogostejša goljufija na straneh, ki zaupajo odjemalcu, tu pade. Iste funkcije ustvarijo številko na tvojem zaslonu in v bazi podatkov, zato lahko naša stran o metrikah obljubi, da se njen izračunani primer ponovi na dve decimalki natančno.
Zakaj testa ne merimo na strežniku? Ker bi tvoj rezultat potem vključeval omrežje. Vsak pritisk tipke bi do nas prišel malo pozno, za čas, ki je odvisen od tvoje povezave, in hiter tipkar na počasni liniji bi izgubil hitrost, ki jo je resnično imel. Dnevnik nam da uro odjemalca za natančnost in preračun na strežniku za poštenost.
Drugi korak: ali je dnevnik smiseln?
Pred kakršno koli časovno analizo preprosta preverjanja oblike oddaje:
- Test mora trajati vsaj 15 sekund ali 10 besed. Krajši teki so preveč šumni za uvrstitev in jih je najlažje napihniti.
- Rezultat ne more prispeti, preden bi se test lahko končal: njegov začetek plus njegova lastna dolžina. 60-sekundni rezultat, ki prispe dvajset sekund po začetku, se ni zgodil.
- Število dogodkov se mora ujemati z natipkanimi znaki.
- Na namiznem računalniku mora vsakemu dogodku input v 50 ms slediti keydown. To ujame prilepljeno besedilo, skriptne dogodke input in večino orodij za vbrizgavanje pritiskov tipk, ki besedilo sprožijo brez fizične tipke. Tipkanje prek urejevalnika vnosne metode (IME composition) je izvzeto, rezultati s telefona pa se ne uvrščajo na javne lestvice.
- Dnevnik brez začetka, brez konca ali z nemonotonimi časovnimi žigi je pokvarjen in takoj zavrnjen.
Nič od tega ni domiselno, a odstrani večino količine.
Tretji korak: kaj lahko razkrije časovni potek pritiskov?
To je del, ki ga namenoma ne dokumentiramo v celoti: seznam značilnosti je javen, meje in uteži pa ne. Objavljena meja je tarča. Če bi rekli „standardni odklon pod N milisekund je označen“, bi naslednja različica vsake skripte dodala N plus ena. Značilnosti, ki jih ocenjujemo:
Povprečni razmik med tipkami in koliko niha. Človeško tipkanje je nepravilno. V študiji Dhakala in sodelavcev iz leta 2018 na 168.960 tipkarjih je bil povprečni razmik med tipkami približno 239 ms s standardnim odklonom približno 112 ms. Skripta, ki tipka v stalnem razmiku, skoraj ne niha; študija CAPTCHA na podlagi pritiskov tipk na arXivu iz leta 2025 je natanko to videla pri svojem testnem botu, ki je tipkal s stalno zakasnitvijo 50 ms. To je naš najmočnejši signal in tisti, na katerem je padel naš pomočnik.
Delež razmikov pod 40 ms. Vzdrževan 40-milisekundni razmik je 1.500 znakov na minuto oziroma 300 WPM pri petih znakih na besedo. Prsti posamezne tako kratke razmike sicer ustvarijo, ko pri rolloverju tipke prekrivajo, zato en kratek razmik ne pomeni ničesar. Dnevnik, v katerem je velik delež razmikov tako kratek, ni tipkanje.
Časi držanja tipk. Pri pravih prstih nihajo za več deset milisekund; sintetični dogodki imajo pogosto enake ali skoraj ničelne čase držanja, ker orodje sproži keydown in keyup takoj drug za drugim.
Delež prekrivanja (rollover). Kako pogosto gre naslednja tipka dol, preden pride prejšnja gor. Dhakal je izmeril povprečni delež prekrivanja 25 %, pri čemer je večina hitrih tipkarjev tipke prekrivala pri 40 do 70 % pritiskov, tipke pa so se v povprečju prekrivale za 30 ms. Počasni tipkarji prekrivanja skoraj ne uporabljajo, zato hiter rezultat brez prekrivanja izstopa. Boti tipke redko prekrivajo.
Najdaljši premor, nihanja hitrosti iz sekunde v sekundo in delež razmikov, daljših od ene sekunde. Ljudje okolevajo na načine, ki jih je treba skripti posebej naročiti, da jih posnema.
Model ocenjevanja te značilnosti združi in lahko rezultat označi kot sumljiv. Pod 130 WPM oznaka sama po sebi ničesar ne zavrne. Tvoj rezultat ti ni nikoli skrit; ta preverjanja odločajo samo o tem, ali se uvrsti.
Ali lahko goljufanje pri testu tipkanja zaobide časovna preverjanja?
Da, če je goljufija skrbno izdelana. Članek Davida Condreyja na arXivu iz januarja 2026 je preizkusil detektorje časovnega poteka pritiskov, ki naj bi ločili besedilo, ki ga je natipkal človek, od besedila, ki ga je ustvarila umetna inteligenca. Popolnoma avtomatizirano vbrizgavanje so ločili brezhibno, napadi s človeškim časovnim potekom (človek, ki pretipka besedilo umetne inteligence, ali program, ki zakasnitve vzorči iz podatkov človeškega tipkanja) pa so se vsem petim klasifikatorjem izognili v najmanj 99,8 % primerov. Članek govori o odkrivanju avtorstva, ne o testih tipkanja, a nauk velja tudi tu: tretji korak ujame površne in ne veliko več.
Naš lastni testni pomočnik to pokaže v malem: naključno tresenje in nekaj premorov sta ga premaknila od očitno sintetičnega do verjetnega.
Tretji korak je torej filter. Razsodbo da četrti korak.
Četrti korak: ponovni test za potrditev
Če je časovno omejen rezultat nad 130 WPM in je tudi njegov časovni potek nenavaden, ga vidiš in je shranjen, a ostane zunaj javnih lestvic, dokler ne opraviš ponovnega testa za potrditev. To je nov 30-sekundni test, pri katerem moraš doseči vsaj 75 % hitrosti, ki si jo prijavil. Enkratno naključje ali izposojen dnevnik drugega teka ne preživi.
Zakaj 130 WPM? To je približno dvainpolkrat več od povprečja 51,56 WPM v Dhakalovih podatkih, precej nad večino tipkarjev, in kdor res tipka tako hitro, to zmore dvakrat. Nenaden hiter rezultat s čudnim časovnim potekom ima obliko, ki jo ustvari izposojen dnevnik ali skripta, in če je pošten, je en dodaten test majhna cena.
Ponovni test je običajen test tipkanja z običajnim besedilom, ne popačena slika ali stran nenavadnih simbolov. Težko berljivo besedilo upočasni vse, najbolj pa poštene hitre tipkarje, ki naj bi jih ponovni test oprostil suma. Potrditev, ki je pošteni hitri tipkarji ne opravijo, je slabša od nobene. Običajno besedilo poskrbi tudi za pošteno preverjanje: dnevnik ponovnega testa gre skozi enaka časovna preverjanja kot kateri koli drug rezultat.
Omejitve pogostosti in prepovedi
Oddaje so omejene: trideset na minuto na prijavljenega uporabnika, šestdeset na naslov IP. Račun, ki vedno znova sproža preverjanja, dobi prikrito prepoved (shadow ban), kar pomeni, da je tiho skrit z lestvic, trije resni dogodki zaščite pred goljufanjem v 24 urah pa to sprožijo samodejno. Štetje dogodkov v časovnem oknu pomeni, da te en čuden rezultat nikoli ne stane računa, skripta, ki znova in znova pade, pa se hitro ustavi.
Vseh časov lestvice zahtevajo tudi 30 minut tipkanja na računu, zato nov račun z enim popolnim tekom ne more priti na vrh.
Kaj te lahko po nesreči označi
Večina označenih rezultatov ni goljufanje. Pošteni načini, kako sprožiš preverjanje:
Samodejno popravljanje na telefonu. Zamenjava prispe kot en dogodek input, ki spremeni več znakov. Štejemo jo kot en pritisk tipke, jo označimo in rezultat z opombo zadržimo zunaj javnih lestvic, ne zavrnemo ga.
Prilepljeno besedilo. Lepljenje je blokirano, rezultat, pri katerem je bilo poskušeno, pa je izključen z lestvic.
Preklapljanje zavihkov. Če fokus med testom zapusti stran za več kot dve sekundi, je test označen kot prekinjen; shrani se in prikaže, a se ne uvrsti.
Premori. Razmik, daljši od pet sekund, pri testu z besedami ali citatom rezultat označi kot zaustavljen. Enaka obravnava.
IME composition. Vnos v japonščini, korejščini in kitajščini prispe prek dogodkov composition, zato pri njih pravilo keydown preskočimo. Če je kaj vseeno videti narobe, je to hrošč in bi radi videli dnevnik.
Rezultati brez povezave. Rezultat, sinhroniziran več kot deset minut po koncu, ostane v tvoji zgodovini neuvrščen, ker njegove ure ne moremo preveriti.
Resnična hitrost. Nad 130 WPM boš naletel na ponovni test, verjetno že na svoj prvi dober dan.
Kako se pritožiti
Vsaka izključitev v tvoji zgodovini pokaže svoj razlog. Če misliš, da se glede rezultata ali omejitve motimo, z naslova, povezanega s tvojim računom, pošlji e-pošto na naslov za pritožbe na naši strani o preprečevanju goljufanja, skupaj s povezavo do rezultata ali datumom in uro testa. Človek pogleda posnetek pritiskov tipk in odgovori v nekaj dneh. O pritožbah nikoli ne odloča samo avtomatski model.
Smo pravkar objavili navodila, kako prestati preverjanja? Deloma. Seznam značilnosti je bilo iz vedenja vedno mogoče razbrati, meje pa ostajajo zasebne. Pomemben del je ponovni test, prestaneš pa ga tako, da tipkaš.
Pogosta vprašanja
Kako testi tipkanja odkrivajo bote?
Dobri preberejo dnevnik pritiskov tipk: ali je za vsakim znakom pritisk tipke, koliko nihajo razmiki med tipkami ter kako so tipke držane in prekrivane. Skripte so navadno preveč pravilne; skrbni boti lahko posnemajo ljudi, zato dodamo ponovni test.
Ali lahko bot prestane zaščito pred goljufanjem pri testu tipkanja?
Skrben bot lahko prestane časovna preverjanja: raziskava detektorjev časovnega poteka pritiskov je pokazala, da se jim je ponarejen, človeku podoben časovni potek izognil skoraj vsakič. Zato hitre rezultate zadržimo za ponovni test, ki ga mora bot opraviti znova, z drugim dnevnikom, ki mora prestati enaka preverjanja.
Zakaj moj rezultat testa tipkanja ni bil uvrščen?
Navadno zaradi testa, krajšega od 15 sekund ali 10 besed, premora, daljšega od pet sekund, preklopa zavihka ali rezultata nad 130 WPM, ki čaka na ponovni test. Razlog je prikazan v tvoji zgodovini.