Du schaltest ein VPN ein, wählst einen Server in Amsterdam und lädst eine Seite. Deine IP-Adresse geht auf jeder IP-Check-Seite, die du ausprobierst, als niederländisch durch. Und trotzdem hängt der Checkout einen zusätzlichen Verifizierungsschritt dran, der Streaming-Katalog bleibt der falsche, oder ein Login löst eine „Neues Gerät“-Mail aus. Was dich verraten hat, passt in eine Zeile JavaScript: Intl.DateTimeFormat().resolvedOptions().timeZone.
Dieser Aufruf liefert die Zeitzone, auf die dein Betriebssystem eingestellt ist, und darauf hat ein VPN exakt null Einfluss. Deine Pakete kommen jetzt aus Amsterdam; dein Browser meldet weiterhin fröhlich America/New_York. Das Widget auf dieser Seite führt genau den Vergleich aus, den auch ein Fraud-Script fahren würde: Es schlägt die Zeitzone nach, die deine IP-Adresse nahelegt, liest die Zeitzone aus, die dein Browser meldet, und prüft, ob die beiden übereinstimmen.
Zwei Antworten auf eine Frage
Die erste Antwort kommt aus dem Netzwerk. Eine Website sieht die IP, mit der du dich verbindest, und schlägt sie in einer Geolocation-Datenbank nach: ipinfo.io, MaxMind und ihre Konkurrenten liefern alle zum Standort auch eine Zeitzone. Mit eingeschaltetem VPN zeigt diese Antwort auf den Exit-Server: Verbindest du dich über Amsterdam, sagt die Datenbank Europe/Amsterdam. Wie diese Datenbanken gebaut werden und wie weit sie bei deiner Straßenadresse danebenliegen können, haben wir in unserem Artikel zur IP-Geolokalisierung erzählt. Auf Zeitzonen-Ebene liegen sie aber so gut wie nie falsch.
Die zweite Antwort kommt aus deinem Betriebssystem. JavaScript kann den lokalen UTC-Offset seit den Neunzigern über new Date().getTimezoneOffset() auslesen, und moderne Browser rücken über die Intl-API den vollständigen IANA-Zonennamen heraus. Kein Berechtigungs-Prompt, keine Nutzergeste, kein Eintrag in irgendeinem Privacy-Dashboard. All das läuft unter gewöhnliche Metadaten, dieselbe Kategorie wie deine Bildschirmgröße.
198.51.100.7 Geo-Datenbank Europe/AmsterdamIntl.DateTimeFormat() America/New_YorkEurope/Amsterdam ≠ America/New_York —
entlarvt von einem einzigen String-Vergleich, bevor du überhaupt etwas angeklickt hast.Der Vergleich der beiden ist gratis, also macht ihn jeder, der einen Grund dazu hat: Payment-Fraud-Scoring, Regionssperren beim Streaming, Ad-Fraud-Filter, Account-Sicherheitssysteme und die Anti-Bot-Stacks, die sowieso schon ein Dutzend anderer Konsistenz-Checks fahren.
Warum das VPN das nicht reparieren kann
Ein VPN verschlüsselt deinen Traffic und tauscht die IP-Adresse aus, die Server zu sehen bekommen. Das ist die komplette Stellenbeschreibung. Alles andere, woran eine Seite das VPN erkennt, vom Eigentümer der IP bis zu WebRTC, steht in wie Websites dein VPN erkennen. Deine Zeitzone reist nie durch den Tunnel, weil sie überhaupt nicht reist. Sie liegt in deinen OS-Einstellungen, der Browser liest sie lokal aus und meldet sie jedem Script, das danach fragt.
Die Seite erfährt dabei nicht deine Uhrzeit, sondern den Zonen-Identifier. America/New_York ist eine Standortbehauptung, präzise bis auf einen vertikalen Streifen des Planeten, und sie liegt gut sichtbar neben navigator.language und dem Accept-Language-Header, die dieselbe Art von Behauptung darüber aufstellen, wo du wohnst.
Fairerweise: Ein Mismatch beweist für sich genommen gar nichts. Menschen fliegen mit Laptops herum, die noch glauben, zu Hause zu sein, und Remote-Worker behalten die Zeitzone ihres Teams mit Absicht. Detection-Systeme wissen das, weshalb der Mismatch in einen Risiko-Score einfließt, statt direkt eine Sperre auszulösen. Aber Scores summieren sich: Ein Zeitzonen-Mismatch plus eine Rechenzentrums-IP plus ein WebRTC-Leak ist nicht mehr mehrdeutig, und jedes Signal lässt das nächste schwerer wiegen.
Die Halb-Spoof-Falle
Der naheliegende Fix ist, bei der Zeitzone einfach mitzulügen, und es gibt einen ganzen Stapel Extensions, die genau das anbieten. Die meisten überschreiben Intl.DateTimeFormat, sodass resolvedOptions().timeZone zurückgibt, was immer du konfigurierst. Das Problem: Dein Browser verkündet seine Zeitzone an mehr als einer Stelle:
new Date().getTimezoneOffset()meldet über einen komplett anderen Codepfad, wie viele Minuten deine Uhr hinter UTC liegt.Date.prototype.toString()buchstabiert die Zone in Worten aus: „GMT-0400 (Eastern Daylight Time)“.- Das Formatieren eines Datums für einen beliebigen Tag des Jahres legt deine Sommerzeitregeln offen, und die gehören zur Identität der Zone.
Ein fester Offset ist keine Zeitzone. Amsterdam liegt im Juli auf UTC+2, im Januar aber auf UTC+1, und es stellt an anderen Terminen um als New York: Die EU dreht am letzten Sonntag im März an der Uhr, die USA zwei bis drei Wochen früher. Ein Script kann fragen, welchen Offset du am ersten Januar und am ersten Juli hattest, und prüfen, ob das Paar zu der Zone passt, die du behauptest. Ein Spoof, der einen Offset das ganze Jahr über festnagelt, passt zu keinem Ort, der jemals an der Uhr dreht, und ganz sicher nicht zu dem Amsterdam, das er zu sein vorgibt.
Übersiehst du auch nur eine dieser Stellen, fängt dein Browser an, sich mit sich selbst zu streiten:
Europe/Amsterdam America/New_York UTC−4 Diese Falle hat noch eine zweite Ebene. Ein überschriebenes Intl.DateTimeFormat sieht nicht mehr nativ aus, sobald ein Script seinen Quelltext inspiziert. Es ist dieselbe verräterische Signatur gepatchter Funktionen, die auch Stealth-Plugins auffliegen lässt und die wir im Artikel über Bot-Erkennung durchgegangen sind. Ein sauberer Mismatch sagt „wahrscheinlich ein VPN“. Eine gepatchte API sagt „diese Person manipuliert aktiv ihren Browser“, und jedes ernsthafte Scoring-System bepreist das höher.
Was du konkret tun solltest
- Erst testen, dann vertrauen. Das Widget auf dieser Seite vergleicht die Zeitzone deines Browsers genau jetzt mit der deiner IP, und der komplette Browser-Scan lässt den Check neben den WebRTC-, Plattform- und Fingerprint-Prüfungen laufen. Lass ihn mit eingeschaltetem VPN laufen. Wenn dich das Widget flaggt, flaggt dich auch jedes Fraud-Script.
- Stell deine Uhr mit deinem VPN um. Der langweilige Fix ist der solide: Setz deine OS-Zeitzone vor dem Verbinden auf die Exit-Stadt. Da gibt es nichts zu erkennen, weil nichts gefälscht ist: Jede API meldet dieselbe Zone aus derselben Quelle. Die Alternative für die Privacy-Fraktion ist der Tor Browser, der bei allen Nutzern UTC meldet; deine echte Zone bleibt verborgen, zum Preis, exakt wie der Tor Browser auszusehen.
- Wenn du mehrere Identitäten fährst, hör auf, das von Hand zu machen. Accounts über Regionen hinweg zu verwalten heißt: Jedes Profil braucht seine eigene IP, Zeitzone, Sprache und seinen eigenen Fingerprint, alles im Einklang miteinander, in jeder Session. Genau diese Buchhaltung automatisieren Anti-Detect-Browser: Incogniton leitet die Zeitzone jedes Profils aus dessen Proxy-IP ab, sodass die beiden Antworten aus diesem Artikel gar nicht erst auseinanderlaufen.
Der Zeitzonen-Check ist der billigste Geolocation-Quercheck, den ein Script fahren kann, und genau deshalb läuft er überall. Dreißig Sekunden mit dem Widget oben sagen dir, auf welcher Seite davon du stehst.