Tipptests erkennen Betrug, indem sie das Anschlagsprotokoll hinter jedem Ergebnis prüfen. Unserer berechnet jedes Ergebnis aus seinem Anschlagsprotokoll neu, prüft einen Hash, testet Aufbau und Timing des Protokolls und hält jedes zeitgemessene Ergebnis über 130 WPM, dessen Timing zusätzlich ungewöhnlich aussieht, von den öffentlichen Bestenlisten fern, bis du einen Bestätigungstest bestehst. Timing-Prüfungen erwischen nachlässige Bots; der Bestätigungstest zwingt einen sorgfältigen, alles noch einmal zu machen.
Der erste Bot, der unsere Timing-Prüfungen überlistete, war unser eigener.
Unser Hilfsprogramm für End-to-End-Tests drückte Tasten in einem festen Abstand von 40 ms, weil Testskripte das eben so tun. Der Server berechnete das Ergebnis neu, bestätigte den Hash und stufte den Durchlauf als verdächtig ein: null Schwankung zwischen den Anschlägen, null Rollover, identische Haltezeiten. Wir mussten zufälliges Zittern pro Wort und gelegentliche „Denkpausen“ von 80 bis 300 ms einbauen, bevor unsere eigene Testsuite ein menschlich aussehendes Ergebnis einreichen konnte. Die Option steht noch im Code, mit dem Namen humanLike.
Die Prüfungen wirken gegen alles, was sich keine Mühe gibt, und alles, was sich Mühe gibt, kann sie bestehen. Deshalb legt das Konzept das eigentliche Gewicht auf einen Bestätigungstest.
Schritt eins: alles neu berechnen
Dein Browser schickt uns keine WPM. Er schickt das Anschlagsprotokoll (jedes keydown-, keyup-, input- und composition-Ereignis, mit Zeitstempel der monotonen Uhr performance.now()), die Werte, die er berechnet hat, und einen SHA-256-Hash des kanonischen Ergebnisses.
Der Server lässt denselben Berechnungscode über das Protokoll laufen und vergleicht. Weicht irgendeine Zahl um mehr als 0,01 ab, wird das Ergebnis als metrics_mismatch abgelehnt. Passt der Hash nicht, wird es als hash_mismatch abgelehnt. Eine Browsererweiterung, die das WPM-Feld bearbeitet, der häufigste Betrug auf Seiten, die dem Client vertrauen, scheitert hier. Dieselben Funktionen erzeugen die Zahl auf deinem Bildschirm und die in der Datenbank, deshalb kann unsere Seite zu den Kennzahlen versprechen, dass ihr Rechenbeispiel auf zwei Nachkommastellen genau reproduzierbar ist.
Warum nicht die Zeit des Tests auf dem Server messen? Dann würde dein Ergebnis das Netzwerk enthalten. Jeder Anschlag käme etwas verspätet bei uns an, um einen Betrag, der mit deiner Verbindung schwankt, und eine schnelle Tipperin mit langsamer Leitung würde Tempo verlieren, das sie wirklich hatte. Das Protokoll gibt uns die Uhr des Clients für die Genauigkeit und die Neuberechnung auf dem Server für die Ehrlichkeit.
Schritt zwei: Ergibt das Protokoll Sinn?
Vor jeder Timing-Analyse kommen einfache Prüfungen der Form der Einreichung:
- Der Test muss mindestens 15 Sekunden oder 10 Wörter dauern. Kürzere Durchläufe sind zu verrauscht für eine Rangliste und am leichtesten aufzublähen.
- Ein Ergebnis kann nicht ankommen, bevor der Test vorbei sein konnte: sein Start plus seine eigene Länge. Ein 60-Sekunden-Ergebnis, das zwanzig Sekunden nach seinem Start ankommt, hat nicht stattgefunden.
- Die Zahl der Ereignisse muss zu den getippten Zeichen passen.
- Am Desktop muss jedes input-Ereignis innerhalb von 50 ms auf ein keydown folgen. Das erwischt eingefügten Text, per Skript erzeugte input-Ereignisse und die meisten Werkzeuge zum Einschleusen von Anschlägen, die Text ohne physische Taste abfeuern. Tippen über einen Eingabemethoden-Editor (IME-Komposition) ist ausgenommen, und Handy-Ergebnisse bleiben von den öffentlichen Bestenlisten fern.
- Ein Protokoll ohne Start, ohne Ende oder mit nicht monotonen Zeitstempeln ist fehlerhaft und wird sofort abgelehnt.
Nichts davon ist raffiniert, aber es räumt den Großteil weg.
Schritt drei: Was kann das Anschlags-Timing verraten?
Diesen Teil dokumentieren wir bewusst nicht vollständig: Die Liste der Merkmale ist öffentlich, Schwellenwerte und Gewichtungen sind es nicht. Ein veröffentlichter Schwellenwert ist eine Zielscheibe. Würden wir sagen „eine Standardabweichung unter N Millisekunden wird markiert“, würde die nächste Version jedes Skripts N plus eins verwenden. Die Merkmale, die wir bewerten:
Der durchschnittliche Abstand zwischen Tasten und wie stark er schwankt. Menschliches Tippen ist unregelmäßig. In der Studie von Dhakal und Kollegen von 2018 mit 168.960 Tippenden lag der durchschnittliche Abstand zwischen zwei Tasten bei etwa 239 ms mit einer Standardabweichung von etwa 112 ms. Ein Skript, das in festem Abstand tippt, schwankt fast gar nicht; eine arXiv-Studie von 2025 über ein CAPTCHA auf Basis von Anschlägen sah genau das bei ihrem Test-Bot, der mit einer festen Verzögerung von 50 ms tippte. Das ist unser stärkstes Signal, und genau darüber ist unser Hilfsprogramm gestolpert.
Der Anteil der Abstände unter 40 ms. Ein Abstand von 40 ms, durchgehalten, sind 1.500 Zeichen pro Minute oder 300 WPM bei fünf Zeichen pro Wort. Finger erzeugen durchaus einzelne so kurze Abstände, wenn sie beim Rollover Tasten überlappen, ein einzelner kurzer Abstand bedeutet also nichts. Ein Protokoll, in dem ein großer Teil der Abstände so kurz ist, ist kein Tippen.
Haltezeiten der Tasten. Echte Finger schwanken um Dutzende Millisekunden; synthetische Ereignisse haben oft identische oder nahezu null Haltezeiten, weil das Werkzeug keydown und keyup direkt hintereinander abfeuert.
Rollover-Quote. Wie oft die nächste Taste gedrückt wird, bevor die vorige wieder oben ist. Dhakal maß eine durchschnittliche Rollover-Quote von 25 %, wobei die meisten schnellen Tipper bei 40 bis 70 % der Tastendrücke überlappten und sich die Tasten im Schnitt um 30 ms überschnitten. Langsame Tipper nutzen fast keins, ein schnelles Ergebnis ohne Rollover fällt also auf. Bots überlappen Tasten selten.
Längste Pause, Temposchwankungen von Sekunde zu Sekunde und der Anteil der Abstände über einer Sekunde. Menschen zögern auf eine Art, die man einem Skript erst beibringen muss.
Ein Bewertungsmodell kombiniert diese Merkmale und kann ein Ergebnis als verdächtig markieren. Unter 130 WPM führt eine Markierung allein nicht zur Ablehnung. Dein Ergebnis wird dir nie verborgen; diese Prüfungen entscheiden nur, ob es in die Rangliste kommt.
Kann Betrug bei Tipptests an Timing-Prüfungen vorbeikommen?
Ja, wenn der Betrug sorgfältig gebaut ist. Ein arXiv-Paper von David Condrey vom Januar 2026 testete Detektoren auf Basis des Anschlags-Timings, die von Menschen getippten von KI-generiertem Text unterscheiden sollen. Vollautomatisches Einschleusen trennten sie perfekt, aber Angriffe mit menschlichem Timing (eine Person, die KI-Text abtippt, oder ein Programm, das Verzögerungen aus menschlichen Tippdaten zieht) entgingen allen fünf Klassifikatoren in mindestens 99,8 % der Fälle. Das Paper handelt von der Erkennung der Urheberschaft, nicht von Tipptests, aber die Lehre lässt sich übertragen: Schritt drei erwischt die Nachlässigen und kaum mehr.
Unser eigenes Hilfsprogramm zeigt dasselbe im Kleinen: Zufälliges Zittern und ein paar Pausen haben es von offensichtlich synthetisch zu plausibel gebracht.
Schritt drei ist also ein Filter. Das Urteil fällt in Schritt vier.
Schritt vier: der Bestätigungstest
Wenn ein zeitgemessenes Ergebnis über 130 WPM liegt und sein Timing zusätzlich ungewöhnlich aussieht, siehst du es und es wird gespeichert, aber es bleibt von den öffentlichen Bestenlisten fern, bis du einen Bestätigungstest bestehst. Das ist ein neuer 30-Sekunden-Test, und du musst mindestens 75 % des angegebenen Tempos erreichen. Ein einmaliger Glückstreffer oder ein geliehenes Protokoll übersteht keinen zweiten Durchlauf.
Warum 130 WPM? Das ist etwa das Zweieinhalbfache des Mittelwerts von 51,56 WPM in Dhakals Daten, weit jenseits der meisten Tippenden, und wer wirklich so schnell tippt, schafft es auch zweimal. Ein plötzliches schnelles Ergebnis mit seltsamem Timing ist genau das Muster, das ein geliehenes Protokoll oder ein Skript erzeugt, und wenn es ehrlich ist, ist ein zusätzlicher Test ein kleiner Preis.
Der Bestätigungstest ist ein gewöhnlicher Tipptest mit gewöhnlichem Text, kein verzerrtes Bild und keine Seite voller seltsamer Zeichen. Schwer lesbarer Text bremst alle, und am meisten bremst er die ehrlichen schnellen Tipper, die der Bestätigungstest ja freisprechen soll. Eine Überprüfung, an der ehrliche schnelle Tipper scheitern, ist schlimmer als keine. Gewöhnlicher Text macht die Prüfung außerdem fair: Das Protokoll des Bestätigungstests durchläuft dieselben Timing-Prüfungen wie jedes andere Ergebnis.
Ratenbegrenzung und Sperren
Einreichungen sind in der Rate begrenzt: dreißig pro Minute je angemeldetem Nutzer, sechzig je IP-Adresse. Ein Konto, das immer wieder an den Prüfungen hängen bleibt, wird per Shadowban gesperrt, also still von den Bestenlisten ausgeblendet, und drei schwere Anti-Cheat-Ereignisse innerhalb von 24 Stunden lösen das automatisch aus. Weil Ereignisse innerhalb eines Zeitfensters gezählt werden, kostet dich ein einzelnes seltsames Ergebnis nie dein Konto, während ein Skript, das immer wieder scheitert, schnell gestoppt wird.
Die ewigen Bestenlisten verlangen außerdem 30 Minuten Tippen auf dem Konto, sodass ein frisches Konto mit einem einzigen perfekten Durchlauf nicht an die Spitze kommt.
Wodurch du versehentlich markiert wirst
Die meisten markierten Ergebnisse sind kein Betrug. Die ehrlichen Wege, an einer Prüfung hängen zu bleiben:
Autokorrektur auf dem Handy. Eine Ersetzung kommt als ein einziges input-Ereignis an, das mehrere Zeichen ändert. Wir zählen sie als einen Tastendruck, markieren sie und halten das Ergebnis mit einem Hinweis von den öffentlichen Bestenlisten fern, ohne es abzulehnen.
Eingefügter Text. Einfügen ist gesperrt, und ein Ergebnis, bei dem es versucht wurde, wird von den Bestenlisten ausgeschlossen.
Tabwechsel. Verlässt der Fokus während eines Tests die Seite für mehr als zwei Sekunden, wird der Test als unterbrochen markiert; er wird gespeichert und angezeigt, kommt aber nicht in die Rangliste.
Pausieren. Eine Lücke von über fünf Sekunden in einem Wort- oder Zitattest markiert das Ergebnis als pausiert. Gleiche Behandlung.
IME-Komposition. Japanische, koreanische und chinesische Eingaben kommen über composition-Ereignisse an, deshalb lassen wir für sie die keydown-Regel weg. Wenn trotzdem etwas falsch aussieht, ist das ein Fehler, und wir hätten gern das Protokoll.
Offline-Ergebnisse. Ein Ergebnis, das mehr als zehn Minuten nach seinem Ende synchronisiert wird, bleibt ohne Rangliste in deinem Verlauf, weil wir seine Uhr nicht überprüfen können.
Wirklich schnell sein. Über 130 WPM begegnest du dem Bestätigungstest, wahrscheinlich an deinem ersten guten Tag.
Wie du Einspruch einlegst
Jeder Ausschluss zeigt in deinem Verlauf seinen Grund. Wenn du meinst, dass wir bei einem Ergebnis oder einer Einschränkung falschliegen, schreib von der E-Mail-Adresse deines Kontos an die Einspruchsadresse auf unserer Anti-Cheat-Seite, mit dem Link zum Ergebnis oder Datum und Uhrzeit des Tests. Ein Mensch sieht sich die Wiedergabe der Anschläge an und antwortet innerhalb weniger Tage. Über Einsprüche entscheidet nie das automatische Modell allein.
Haben wir gerade eine Anleitung veröffentlicht, wie man die Prüfungen besteht? Teilweise. Die Merkmalsliste ließ sich schon immer aus dem Verhalten ableiten, und die Schwellenwerte bleiben geheim. Der Bestätigungstest ist der Teil, auf den es ankommt, und um ihn zu bestehen, muss man tippen.
Häufig gestellte Fragen
Wie erkennen Tipptests Bots?
Gute Tests lesen das Anschlagsprotokoll: ob hinter jedem Zeichen ein Tastendruck steht, wie stark die Abstände zwischen den Tasten schwanken und wie Tasten gehalten und überlappt werden. Skripte sind meist zu regelmäßig; sorgfältige Bots können Menschen nachahmen, und deshalb setzen wir einen Bestätigungstest obendrauf.
Kann ein Bot die Betrugserkennung eines Tipptests bestehen?
Ein sorgfältiger kann Timing-Prüfungen bestehen: Forschung zu Detektoren auf Basis des Anschlags-Timings ergab, dass gefälschtes menschenähnliches Timing ihnen fast jedes Mal entging. Deshalb halten wir schnelle Ergebnisse für einen Bestätigungstest zurück, den ein Bot noch einmal bestehen muss, mit einem zweiten Protokoll, das dieselben Prüfungen besteht.
Warum kam mein Tipptest-Ergebnis nicht in die Rangliste?
Meist wegen eines Tests unter 15 Sekunden oder 10 Wörtern, einer Pause über fünf Sekunden, eines Tabwechsels oder eines Ergebnisses über 130 WPM, das auf seinen Bestätigungstest wartet. Dein Verlauf zeigt den Grund.