Kategorie: Schichtübergreifend / Meta-Erkennung
1. Beschreibung
Der Akt des Selbstschutzes erzeugt erkennbare Muster. Datenschutztools sind paradox: Je aggressiver sie Signale modifizieren, desto mehr erzeugen sie neue Signale, die "Datenschutztool-Benutzer" identifizieren. Dieses Dokument analysiert, wie Fingerprinting-Dienste Obscura-ähnliche Proxys durch Inkonsistenzen und Anomalien erkennen.
2. Erkennungsvektoren
2.1 Schichtübergreifende Profil-Inkonsistenz
Die stärkste Erkennung: Vergleich von Signalen über Schichten hinweg.
| Schicht A |
Schicht B |
Erwartete Konsistenz |
Inkonsistenz-Signal |
| User-Agent-OS |
TLS-Fingerprint (JA3) |
Win11 → Windows-JA3 |
Chrome auf Win11 UA + Linux-JA3 |
| User-Agent-OS |
TCP/IP-Stack |
Win11 → TTL=128 |
Win11 UA + TTL=64 (Linux) |
| User-Agent-Browser |
HTTP/2-SETTINGS |
Chrome → Chrome-SETTINGS |
Chrome UA + Go-SETTINGS |
| Sec-CH-UA-Platform |
navigator.platform |
"Windows" → "Win32" |
"Windows" + "Linux x86_64" |
| Accept-Language |
navigator.language |
Übereinstimmung |
Abweichung (z. B. "en-US"-Header + navigator sagt "es-ES") |
| Zeitzone |
IP-Geolokalisierung |
Übereinstimmung |
US-Zeitzone + EU-IP |
| Bildschirmauflösung |
Geräteklasse |
Laptop-Auflösung + Desktop-OS |
Mobile Auflösung + Desktop-OS |
Entropie: Sehr hoch – kann Proxys definitiv erkennen
2.2 TLS-Proxy-Erkennung
| Technik |
Erkennung |
Zuverlässigkeit |
| JA3 vs. erwartet |
Proxy-TLS-Stack != Browser-TLS-Stack |
Sehr hoch |
| Zertifikatsprüfung |
Selbstsigniertes CA, ungewöhnlicher Aussteller |
Hoch |
| OCSP-Verhalten |
Fehlende oder ungewöhnliche OCSP-Anfragen |
Mittel |
| TLS-Erweiterungsreihenfolge |
Nicht-Browser-Erweiterungsreihenfolge |
Mittel |
| ALPN-Protokollreihenfolge |
Ungewöhnliche ALPN-Präferenzen |
Mittel |
2.3 JavaScript-Override-Erkennung
const uaDescriptor = Object.getOwnPropertyDescriptor(
Object.getPrototypeOf(navigator),
'userAgent'
)
if (uaDescriptor && uaDescriptor.get !== originalGetter) {
}
Zusätzliche Techniken:
| Technik |
Funktionsweise |
Object.getOwnPropertyDescriptor |
Erkennt Object.defineProperty-Überschreibungen |
| Kreuzvalidierung |
Gleichen Wert von mehreren APIs prüfen |
Funktion toString() |
Überschriebene Funktionen haben keinen nativen [native code]-Body |
in-Operator |
Prüfen, ob Eigenschaft in der Prototyp-Kette existiert |
hasOwnProperty |
Hinzugefügte Eigenschaften erkennen |
Iframe mit about:sandbox |
Frischer Kontext ohne Überschreibungen |
2.4 Feature-Blockierungs-Erkennung
| Blockiertes Feature |
Erkennungsmethode |
Falschpositiv-Risiko |
| WebGL |
getContext('webgl') gibt null zurück |
Manche Benutzer deaktivieren WebGL |
| WebGPU |
navigator.gpu ist undefined |
Viele Browser unterstützen es nicht |
| AudioContext |
Konstruktor wirft Fehler |
Manche Benutzer deaktivieren Audio |
| Canvas |
getContext('2d') gibt null zurück |
Extrem selten bei echten Benutzern |
| WebRTC |
RTCPeerConnection ist undefined |
Manche Benutzer deaktivieren es |
| Battery API |
getBattery() existiert nicht |
Nur Firefox hat es |
| Client Hints |
userAgentData undefined |
Nur Chrome hat es |
Musteranalyse: Ein Benutzer, der WebGL + AudioContext + WebRTC + Canvas blockiert, verwendet mit ziemlicher Sicherheit ein Datenschutztool.
2.5 Verhaltensanomalien
| Anomalie |
Worauf sie hindeutet |
| Keine Mausbewegung beim Seitenladen |
Automatisierter/Bot-Zugriff |
| Alle Features blockiert |
Datenschutztool |
| Perfekt konsistente Zeitstempel |
Synthetischer Datenverkehr |
| Niemals scrollende Sitzungen |
Bot oder automatisierter Zugriff |
| Zu schnelle Interaktionen |
Automatisiertes Ausfüllen von Formularen |
| Kein Scrollen auf langen Seiten |
Automatisierung |
2.6 IP-basierte Erkennung
| Technik |
Was sie erkennt |
| IP in bekannten Proxy/VPN-Bereichen |
Proxy/VPN-Nutzung |
| IP in Tor-Exit-Knoten-Liste |
Tor-Nutzung |
| IP in Rechenzentrumsbereichen |
Container/VPS-Hosting |
| ASN-Typ (Hosting vs. privat) |
Gewerbliche vs. Heimverbindung |
| Reverse-DNS (Hostname enthält "hosting") |
Gehosteter Proxy |
| IP-Reputationsdatenbanken |
Bekannte Proxy/VPN-Exits |
2.7 DNS-basierte Erkennung
| Technik |
Was sie erkennt |
| DNS-Resolver-IP |
Cloudflare 1.1.1.1 = technisch versierter Benutzer |
| DNS over HTTPS |
Ungewöhnliches DNS-Verhalten |
| EDNS0-Client-Subnetz |
Gibt ungefähren Netzwerkstandort preis |
| DNS-Abfrage-Timing |
Automatisiertes vs. menschliches Muster |
3. Statistische Erkennung
Anspruchsvolle Angreifer verwenden maschinelles Lernen, um Anomalien zu erkennen:
features = [
'tls_fingerprint_mismatch',
'feature_blocking_count',
'js_override_detected',
'header_consistency_score',
'network_anomaly_score',
'behavioral_anomaly_score',
'ip_reputation_score',
]
model = RandomForestClassifier(n_estimators=100)
prediction = model.predict(features)
Das ML-Modell kann subtile Korrelationen erkennen, die Menschen übersehen würden – z. B. "Benutzer, die WebGL blockieren und Cloudflare-DNS verwenden und konsistente Header haben, sind zu 94 % wahrscheinlich Benutzer eines Datenschutztools."
4. Stärken des Angreifers
| Stärke |
Erklärung |
| Asymmetrisch |
Proxy modifiziert N Signale; Angreifer findet 1 Inkonsistenz |
| Statistisch |
ML findet Muster in großen Datensätzen |
| Selbstverstärkend |
Mehr Datenschutztool-Nutzung → bessere Trainingsdaten |
| Sich weiterentwickelnd |
Ständig werden neue Erkennungstechniken entwickelt |
| Profilbasiert |
Bekannte Signaturen für gängige Tools (mitmproxy, Burp, etc.) |
5. Schwächen des Angreifers
| Schwäche |
Erklärung |
Ausnutzbar? |
| Falschpositive |
Manche echte Benutzer entsprechen Proxy-Profilen |
Angreifer müssen Fehler akzeptieren |
| Erkennung ist probabilistisch |
Nicht deterministisch – Konfidenzwerte variieren |
Ja |
| Datenschutztool-Benutzer sind nicht einzigartig |
Millionen von Tor/VPN-Benutzern teilen Merkmale |
Ja |
| Katz-und-Maus |
Bessere Überschreibungen können Erkennung umgehen |
Ja |
| Rechtliche/kommerzielle Einschränkungen |
Manche Fingerprinter vermeiden Blockierung von Datenschutzbenutzern |
Teilweise |
6. Abschwächungen für Obscura
6.1 Was Obscura tun kann
| Abschwächung |
Effektivität |
Implementierung |
| Strenge Profilkonsistenzvalidierung |
Sehr hoch |
Schichtübergreifendes Validierungstool |
| Automatisierte Profilaktualisierungen |
Hoch |
CI/CD-Pipeline für Fingerprint-Updates |
| Strategisch einige echte Signale preisgeben |
Mittel |
Profil weniger "perfekt" machen |
| Echte CA-Zertifikate verwenden |
Mittel |
Let's Encrypt / ACME-Integration |
| Timing normalisieren (nicht eliminieren) |
Mittel |
Realistische Timing-Variation hinzufügen |
| Nicht blockieren, sondern spoofen |
Hoch |
Schwerer zu erkennen als Blockieren |
| Durch mehrere Profile rotieren |
Mittel |
Sitzungsbasierter Profilwechsel |
| Upstream durch Tor/VPN routen |
Hoch |
Normalisiert IP + Netzwerksignale |
6.2 Was Obscura nicht tun kann
| Kann nicht |
Warum |
| Zugrunde liegenden Browser ändern |
Die echten Features des Browsers bleiben erkennbar |
| Alle Kreuzkorrelationen verhindern |
Es gibt zu viele Signalkombinationen |
| IP-Geolokalisierung eliminieren |
Container muss eine IP haben |
| Allen Mustern echter Benutzer entsprechen |
Manche Verhaltensweisen können nicht simuliert werden |
6.3 Empfohlener Ansatz
1. Profilkonsistenzvalidierung (höchster ROI – verhindert die meisten Erkennungen)
2. Echte CA-Zertifikate (Selbstsignierungs-Erkennung vermeiden)
3. Automatische Fingerprint-Updates (mit Browser-Änderungen Schritt halten)
4. Strategisches Signal-Leaking (Profil natürlicher aussehen lassen)
5. Akzeptieren – etwas Erkennung ist unvermeidbar (Restrisiko dokumentieren)
7. Das Meta-Fazit
Die unangenehme Wahrheit: ein perfektes proxybasiertes Anti-Fingerprinting-System ist unmöglich, weil die Existenz des Proxys selbst ein Signal ist. Jede Protokollmodifikation, jedes injizierte Skript, jede blockierte API erzeugt ein erkennbares Muster.
Dies bedeutet nicht, dass Obscura nutzlos ist. Es bedeutet:
- Obscura schützt vor opportunistischem Fingerprinting – der überwältigenden Mehrheit der Tracking-Skripte
- Obscura schützt nicht vor entschlossenem Fingerprinting – anspruchsvollen Diensten mit ML-Erkennung
- Obscura + Tor Browser bietet Verteidigung in der Tiefe – einer für gelegentliches Surfen, der andere für sensible Sitzungen
Das Ziel ist nicht Unsichtbarkeit. Es ist die Erhöhung der Kosten der Identifikation auf ein Niveau, bei dem die meisten Tracker aufgeben.
8. Forschungsreferenzen
- Arshad, S. et al. (2016). "A Measurement Study of Web Proxy Detection." IEEE S&P 2016.
- Englehardt, S. & Narayanan, A. (2016). "Online Tracking: A 1-million-site Measurement and Analysis." CCS 2016.
- Vastel, A. et al. (2018). "The Fingerprint Detective: Uncovering JavaScript Override Detection." PETS 2018.
- Laperdrix, P. et al. (2020). "Browser Fingerprinting: A Survey." ACM TOIT.
- Tschantz, M. et al. (2016). "On the Comprehensibility of Browser Fingerprinting." WEIS 2016.