Kā rakstīšanas testi atklāj krāpšanos? Kā mēs pārbaudām savējo

Rakstīšanas testi atklāj krāpšanos, pārbaudot taustiņu žurnālu aiz katra rezultāta. Mūsu tests pārrēķina katru rezultātu no tā taustiņu žurnāla, pārbauda jaucējvērtību (hash), pārbauda žurnāla struktūru un ritmu un jebkuru rezultātu testā ar laiku virs 130 WPM, kura ritms arī izskatās neparasts, netur publiskajās tabulās, kamēr neizturi atkārtotu testu. Ritma pārbaudes noķer paviršus botus; atkārtotais tests liek rūpīgam botam visu izdarīt vēlreiz.

Pirmais bots, kas apspēlēja mūsu ritma pārbaudes, bija mūsu pašu.

Mūsu pilna cikla testu palīgrīks spieda taustiņus ar fiksētu 40 ms intervālu, jo tā testu skripts dara. Serveris pārrēķināja rezultātu, apstiprināja jaucējvērtību un novērtēja braucienu kā aizdomīgu: nulle variācijas starp nospiedieniem, nulle pārklāšanās, vienādi turēšanas laiki. Mums nācās pievienot nejaušu svārstību katram vārdam un laiku pa laikam 80 līdz 300 ms „domāšanas” pauzes, pirms mūsu pašu testu komplekts varēja iesniegt cilvēcīgu rezultātu. Šī opcija joprojām ir kodā ar nosaukumu humanLike.

Pārbaudes darbojas pret visu, kas necenšas, un viss, kas cenšas, var tās izturēt, tāpēc galvenais svars ir likts uz atkārtotu testu.

Pirmais solis: pārrēķināt visu

Tavs pārlūks mums nesūta WPM. Tas sūta taustiņu žurnālu (katru keydown, keyup, input un composition notikumu ar laika zīmogu no monotonā performance.now() pulksteņa), aprēķinātos rādītājus un kanoniskā rezultāta SHA-256 jaucējvērtību.

Serveris palaiž to pašu rādītāju kodu ar žurnālu un salīdzina. Ja kāds skaitlis atšķiras vairāk nekā par 0,01, rezultāts tiek noraidīts kā metrics_mismatch. Ja jaucējvērtība nesakrīt, tas tiek noraidīts kā hash_mismatch. Pārlūka paplašinājums, kas labo WPM lauku – visbiežākā krāpšana vietnēs, kas uzticas klientam, – šeit izgāžas. Tās pašas funkcijas rada skaitli gan tavā ekrānā, gan datubāzē, tāpēc mūsu rādītāju lapa var apsolīt, ka tās aprēķina piemērs atkārtojas līdz divām zīmēm aiz komata.

Kāpēc nemērīt testa laiku serverī? Tad tavā rezultātā būtu iekļauts tīkls. Katrs nospiediens pie mums nonāktu mazliet novēloti, par lielumu, kas mainās atkarībā no tava savienojuma, un ātrs rakstītājs ar lēnu līniju zaudētu ātrumu, kas viņam patiešām bija. Žurnāls mums dod klienta pulksteni precizitātei un servera pārrēķinu godīgumam.

Otrais solis: vai žurnālam ir jēga?

Pirms jebkādas ritma analīzes – vienkāršas pārbaudes iesnieguma formai:

  • Testam jāilgst vismaz 15 sekundes vai 10 vārdi. Īsāki braucieni ir pārāk trokšņaini, lai tos ierindotu, un visvieglāk uzpūšami.
  • Rezultāts nevar pienākt agrāk, nekā tests varēja beigties: tā sākums plus tā garums. 60 sekunžu rezultāts, kas pienāk divdesmit sekundes pēc sākuma, nav noticis.
  • Notikumu skaitam jāatbilst uzrakstītajām rakstzīmēm.
  • Galddatorā katram input notikumam jānāk ne vēlāk kā 50 ms pēc keydown notikuma. Tas noķer ielīmētu tekstu, skriptētus input notikumus un vairumu taustiņu injicēšanas rīku, kas ievada tekstu bez fiziska taustiņa. Rakstīšana ar ievades metodes redaktoru (IME kompozīcija) ir izņēmums, un telefona rezultāti netiek iekļauti publiskajās tabulās.
  • Žurnāls bez sākuma, bez beigām vai ar nemonotoniem laika zīmogiem ir bojāts un tiek uzreiz noraidīts.

Nekas no tā nav gudrs, taču tas novāc lielāko daļu apjoma.

Trešais solis: ko var atklāt taustiņu nospiedienu ritms?

Šo daļu mēs apzināti pilnībā nedokumentējam: pazīmju saraksts ir publisks, sliekšņi un svari – nē. Publicēts slieksnis ir mērķis. Ja mēs teiktu „standartnovirze zem N milisekundēm tiek atzīmēta”, katra skripta nākamā versija pievienotu N plus vienu. Pazīmes, ko mēs vērtējam:

Vidējā pauze starp taustiņiem un tas, cik tā svārstās. Cilvēka rakstīšana ir neregulāra. Dhakala un kolēģu 2018. gada pētījumā ar 168 960 rakstītājiem vidējais intervāls starp taustiņiem bija aptuveni 239 ms ar standartnovirzi aptuveni 112 ms. Skriptam, kas raksta ar fiksētu intervālu, gandrīz nav variācijas; 2025. gada arXiv pētījumā par taustiņu nospiedienos balstītu CAPTCHA tieši to novēroja testa botam, kas rakstīja ar fiksētu 50 ms aizkavi. Šis ir mūsu spēcīgākais signāls, un tieši uz tā paklupa mūsu palīgrīks.

Pauzu daļa zem 40 ms. 40 ms pauze, ja to notur, ir 1500 rakstzīmju minūtē jeb 300 WPM, rēķinot piecas rakstzīmes uz vārdu. Pirksti tiešām rada atsevišķas tik īsas pauzes, kad pārklāj taustiņus, tāpēc viena īsa pauze neko nenozīmē. Žurnāls, kurā liela daļa pauzu ir tik īsas, nav rakstīšana.

Taustiņu turēšanas laiki. Īstiem pirkstiem tie svārstās par desmitiem milisekunžu; sintētiskiem notikumiem tie bieži ir vienādi vai gandrīz nulle, jo rīks izsauc keydown un keyup vienu tūlīt pēc otra.

Pārklāšanās daļa. Cik bieži nākamais taustiņš tiek nospiests, pirms iepriekšējais ir atlaists. Dhakals izmērīja vidējo pārklāšanās daļu 25%, lielākajai daļai ātro rakstītāju pārklājot 40 līdz 70% nospiedienu, un taustiņi vidēji pārklājās par 30 ms. Lēni rakstītāji to gandrīz neizmanto, tāpēc ātrs rezultāts bez pārklāšanās izceļas. Boti taustiņus pārklāj reti.

Garākā pauze, ātruma svārstības no sekundes uz sekundi un pauzu daļa virs vienas sekundes. Cilvēki vilcinās veidos, kurus skriptam ir īpaši jāliek atdarināt.

Vērtēšanas modelis tos apvieno un var atzīmēt rezultātu kā aizdomīgu. Zem 130 WPM atzīme pati par sevi neko nenoraida. Tavs rezultāts nekad netiek no tevis paslēpts; šīs pārbaudes izlemj tikai to, vai tas tiek ierindots.

Vai krāpšanās rakstīšanas testā var apiet ritma pārbaudes?

Jā, ja krāpšanās rīks ir veidots rūpīgi. Deivida Kondrija (David Condrey) 2026. gada janvāra arXiv rakstā tika pārbaudīti taustiņu ritma detektori, kas paredzēti, lai atšķirtu cilvēka rakstītu tekstu no MI ģenerēta. Pilnībā automatizētu injicēšanu tie atšķīra perfekti, bet uzbrukumi ar cilvēcīgu ritmu (cilvēks pārraksta MI tekstu vai programma ņem aizkaves no cilvēku rakstīšanas datiem) apgāja visus piecus klasifikatorus vismaz 99,8% gadījumu. Raksts ir par autorības noteikšanu, nevis rakstīšanas testiem, taču mācība ir pārnesama: trešais solis noķer paviršos, bet ne daudz ko citu.

Mūsu pašu testu palīgrīks to pašu parāda mazā mērogā: nejauša svārstība un dažas pauzes to pārvērta no acīmredzami sintētiska par ticamu.

Tātad trešais solis ir filtrs. Spriedumu dod ceturtais solis.

Ceturtais solis: apstiprinājuma tests

Ja rezultāts testā ar laiku ir virs 130 WPM un tā ritms arī izskatās neparasts, tu to redzi un tas tiek saglabāts, bet publiskajās tabulās tas neparādās, kamēr neizturi apstiprinājuma testu. Tas ir jauns 30 sekunžu tests, un tajā jāsasniedz vismaz 75% no deklarētā ātruma. Vienreizēja nejaušība vai aizņemts žurnāls otru braucienu neizdzīvo.

Kāpēc 130 WPM? Tas ir aptuveni divarpus reizes vairāk nekā Dhakala datu vidējie 51,56 WPM, krietni virs vairuma rakstītāju, un ikviens, kas patiešām raksta tik ātri, var to izdarīt divreiz. Pēkšņs ātrs rezultāts ar dīvainu ritmu ir tieši tāds, kādu rada aizņemts žurnāls vai skripts, un, ja tas ir godīgs, viens papildu tests ir neliela cena.

Atkārtotais tests ir parasts rakstīšanas tests ar parastu tekstu, nevis izkropļots attēls vai lapa ar dīvainiem simboliem. Grūti salasāms teksts palēnina visus, un visvairāk tas palēnina tieši godīgos ātros rakstītājus, kurus atkārtotajam testam jāattaisno. Apstiprināšana, kurā godīgi ātri rakstītāji izgāžas, ir sliktāka nekā nekāda. Parasts teksts arī padara pārbaudi godīgu: atkārtotā testa žurnāls iziet tās pašas ritma pārbaudes kā jebkurš cits rezultāts.

Iesniegumu ierobežojumi un bloķēšana

Iesniegumu skaits ir ierobežots: trīsdesmit minūtē uz pieteikušos lietotāju, sešdesmit uz IP adresi. Konts, kas atkal un atkal iekrīt pārbaudēs, saņem ēnas bloķēšanu (shadow ban), tas ir, tiek klusi paslēpts no tabulām, un trīs nopietni krāpšanas novēršanas notikumi 24 stundās to izraisa automātiski. Notikumu skaitīšana laika logā nozīmē, ka viens dīvains rezultāts tev nekad nemaksās kontu, bet skripts, kas izgāžas atkal un atkal, ātri tiek apturēts.

Visu laiku līderu tabulām kontā arī jābūt 30 minūtēm rakstīšanas, tāpēc jauns konts ar vienu perfektu braucienu nevar nonākt to virsotnē.

Kas var izraisīt nejaušu atzīmi

Lielākā daļa atzīmēto rezultātu nav krāpšanās. Godīgi veidi, kā iekrist pārbaudē:

Automātiskā labošana telefonā. Aizstājums pienāk kā viens input notikums, kas maina vairākas rakstzīmes. Mēs to skaitām kā vienu nospiedienu, atzīmējam un rezultātu neiekļaujam publiskajās tabulās, pievienojot piezīmi, nevis noraidot.

Ielīmēts teksts. Ielīmēšana ir bloķēta, un rezultāts, kurā tā tika mēģināta, tiek izslēgts no tabulām.

Cilņu pārslēgšana. Ja testa laikā fokuss atstāj lapu ilgāk par divām sekundēm, tests tiek atzīmēts kā pārtraukts; tas tiek saglabāts un parādīts, bet netiek ierindots.

Pauzes. Pauze ilgāka par piecām sekundēm vārdu vai citātu testā atzīmē rezultātu kā pauzētu. Attieksme tāda pati.

IME kompozīcija. Japāņu, korejiešu un ķīniešu ievade pienāk ar composition notikumiem, tāpēc keydown noteikumu tiem izlaižam. Ja kaut kas tomēr izskatās nepareizi, tā ir kļūda, un mēs labprāt saņemtu žurnālu.

Bezsaistes rezultāti. Rezultāts, kas sinhronizēts vairāk nekā desmit minūtes pēc tā beigām, paliek tavā vēsturē neierindots, jo mēs nevaram pārbaudīt tā pulksteni.

Patiess ātrums. Virs 130 WPM tu sastapsies ar atkārtoto testu, visticamāk, savā pirmajā labajā dienā.

Kā pārsūdzēt

Katra izslēgšana tavā vēsturē parāda savu iemeslu. Ja uzskati, ka esam kļūdījušies par kādu rezultātu vai ierobežojumu, raksti uz pārsūdzību adresi, kas norādīta mūsu krāpšanas novēršanas lapā, no sava konta e-pasta adreses, pievienojot rezultāta saiti vai testa datumu un laiku. Cilvēks noskatās taustiņu atskaņojumu un atbild dažu dienu laikā. Pārsūdzības nekad neizlemj tikai automātiskais modelis.

Vai mēs tikko publicējām instrukciju, kā izturēt pārbaudes? Daļēji. Pazīmju sarakstu vienmēr varēja noskaidrot pēc uzvedības, un sliekšņi paliek privāti. Svarīgākā daļa ir atkārtotais tests, un veids, kā to izturēt, ir rakstīt.

Biežāk uzdotie jautājumi

Kā rakstīšanas testi atklāj botus?

Labie lasa taustiņu žurnālu: vai aiz katras rakstzīmes ir taustiņa nospiediens, cik svārstās pauzes starp taustiņiem un kā taustiņi tiek turēti un pārklāti. Skripti mēdz būt pārāk regulāri; rūpīgi boti var atdarināt cilvēkus, tāpēc mēs pievienojam atkārtotu testu.

Vai bots var apiet rakstīšanas testa krāpšanas novēršanu?

Rūpīgs bots var izturēt ritma pārbaudes: pētījums par taustiņu ritma detektoriem atklāja, ka viltots cilvēcīgs ritms tos apgāja gandrīz katru reizi. Tāpēc mēs ātrus rezultātus aizturam līdz atkārtotajam testam, kas botam jāiztur vēlreiz ar otru žurnālu, kurš iziet tās pašas pārbaudes.

Kāpēc mans rakstīšanas testa rezultāts netika ierindots?

Parasti tāpēc, ka tests bija īsāks par 15 sekundēm vai 10 vārdiem, bija pauze ilgāka par piecām sekundēm, cilnes pārslēgšana vai rezultāts virs 130 WPM gaida atkārtoto testu. Tava vēsture parāda iemeslu.

Avoti