Architektur
Wie Clearcote Datenschutz- und Identitätskontrollen auf Chromium aufsetzt — transparent.
Der Stack
Der offene Build ist ein schlanker, prüfbarer Stack. Jede Schicht ist offen und austauschbar:
Chromium (Google, BSD-3)
|
ungoogled-chromium -> removes Google services, telemetry, integration
|
Clearcote patches -> engine-level identity & privacy controls
|
reproducible build -> checksummed, GPG-signed, rebuildable by anyone (open build)
|
Clearcote Browser + SDK (Playwright objects) / CDP endpointDer lizenzierte Build („Kostenlos mit GitHub“ und Pro) ergänzt diesen Stack um Patches, die nicht öffentlich sind. Er wird beim Download per SHA-256 verifiziert, lässt sich aber nicht aus öffentlichem Quellcode nachbauen.
Auf Engine-Ebene statt per Script-Injection
Die meisten „Stealth“-Tools injizieren JavaScript, um navigator-Eigenschaften zur Laufzeit zu überschreiben. Das ist fragil und verrät sich selbst — die Überschreibungen werden selbst zum Fingerprint (falsche Prototypketten, Getter-Timing, fehlende Native-Code-Stringifizierung).
Clearcote ändert stattdessen die C++-Engine. Die Werte, die eine Seite ausliest, entstehen in denselben Codepfaden, die Chromium immer nutzt — es gibt also keine injizierte Schicht, die sich erkennen ließe. Das umfasst auch APIs, die JavaScript überhaupt nicht sauber abfangen kann.
Kohärente Identität, Render-Rauschen pro Website (Farbling)
Wer jedes Signal unabhängig randomisiert, erzeugt eine Identität, die nicht zusammenpasst — und fällt damit sofort auf. Clearcote leitet die Persona aus einem einzigen Seed ab und das Render-Rauschen aus diesem Seed in Kombination mit der registrierbaren Domain der Website:
- In sich stimmig — Plattform, GPU, Bildschirm und Hardware passen zueinander; Zeitzone und Sprache kommen aus Ihren Optionen oder aus
geoip. - Stabil pro Website — dieselbe Website sieht während einer Session dieselbe Identität.
- Render-Rauschen pro Website — Canvas- und WebGL-Readbacks unterscheiden sich von Website zu Website, sodass Render-Hashes über Domains hinweg nicht übereinstimmen. Werte der Hardwareklasse bleiben überall gleich, so wie bei einem echten Rechner.
Dieses Rauschmodell pro eTLD+1 ist von Braves Farbling-Ansatz inspiriert. Das Rauschen ist an den Seed gekoppelt: Ohne --fingerprint-Seed gibt es keines.
Kohärente Persona — ein Seed, ein glaubwürdiger Rechner
Clearcote geht einen Schritt über Rauschen pro Signal hinaus. Aus einem einzigen --fingerprint-Seed entsteht eine kohärente Persona für die Plattform, die Sie nach außen präsentieren — ein einzelner glaubwürdiger Rechner, dessen Eigenschaften zueinander passen. Standardmäßig präsentiert das SDK Ihr Host-Betriebssystem (Windows oder Linux); ein macOS-UA und eine Android-Persona auf Best-Effort-Basis sind auf Wunsch verfügbar. Aus dem Seed zieht es eine Hardwarestufe (CPU-Kerne und RAM, die tatsächlich zusammen verbaut werden — nie 20 Kerne mit 4 GB), eine passende Bildschirmauflösung, Farbtiefe und Device-Pixel-Ratio, eine kohärente GPU und eine echte Chrome-Version.
Ab dem lizenzierten Chromium-156-Build (r51) wird die Persona im Clearcote-Persona-Dienst abgeleitet, nicht mehr im Browser: Bei jedem Start schickt der Launcher (SDK, Profile Manager oder Docker-Image) Ihren Seed bzw. Ihre Profilauswahl zusammen mit dem Run-Token der Lizenz dorthin und übergibt die signierte Persona an den Browser, der ohne sie nicht startet. Das Ergebnis bleibt gleich — ein Seed ergibt auf r51 dieselbe Persona wie auf r50 —, aber eine kopierte Engine ohne Lizenz startet nichts.
Eigenschaften der Hardwareklasse bleiben während der Session konstant — ein echter Rechner ändert seine Kernzahl oder Bildschirmgröße nicht von einer Website zur nächsten —, während die veränderten Render-Oberflächen (Canvas- und WebGL-Pixel) pro Website per Farbling verrauscht bleiben, sodass Sie über Domains hinweg dekorreliert bleiben. Client-Rects und gerendertes Audio werden nicht verändert — allerdings kommen sampleRate, baseLatency und outputLatency von AudioContext aus der Persona, sobald eine aktiv ist; was per Farbling verrauscht wird und was bewusst nicht erklärt diesen Kompromiss.
Warum das wichtig ist: Das stärkste Signal moderner Erkennung ist kein einzelner Wert, sondern ein innerer Widerspruch — ein Rechner, der ein Betriebssystem behauptet, aber wie ein anderes rendert, oder der eine CPU mit vielen Kernen mit zu wenig RAM kombiniert. Werden alle Signale aus einer Persona-Tabelle abgeleitet, erzählen sie dieselbe Geschichte. Das Ganze läuft über denselben --fingerprint-Seed, den Sie ohnehin übergeben (keine neuen Flags).
Es gibt drei Wege, eine Identität darzustellen: das light-stealth-Preset (einige Metadatenwerte, kein Seed, kein Rauschen), die oben beschriebene Seed-basierte Persona oder ein erfasstes Profil eines echten Rechners (fingerprint_profile oder profile="auto" aus der lizenzierten Profilbibliothek). Womit Sie am besten anfangen, steht unter Empfehlungen.
Was Clearcote steuert
Build-Ziel
Der offene Build zielt auf Windows x64 (per Cross-Compile unter Linux gebaut) und Linux x64 (nativ), auf Basis von Chromium 151; der lizenzierte Build basiert auf Chromium 156. Das vollständige Rezept des offenen Builds — samt jeder Stolperfalle beim Cross-Build — ist dokumentiert, damit es jeder nachbauen kann. Siehe Aus dem Quellcode bauen.
38.921 Zeilen zwischen Standard-Chromium und Clearcote Pro.
So weit ist der Pro-Build von dem Chromium entfernt, das Google ausliefert. Jeder Wert, den eine Website lesen kann, wird dort gesetzt, wo Chromium ihn berechnet. So beschreiben die Seite, ihre Worker und ihre iframes alle dasselbe Gerät.
- Canvas
- WebGL
- WebGPU
- Audio
- Schriften
- Bildschirm und Fenster
- WebRTC
- TLS
- Client Hints
- Eingabe-Timing
- Stimmen und Codecs
Pro-Build, gezählt am Patch-Stack von r57 (Chromium 156.0.8078.47). Der kostenlose offene Build ist ein kleinerer, öffentlicher Patch-Satz.
345 files changed, 35915 insertions(+), 3006 deletions(-)
240 Patches
Geänderte Dateien nach Bereich
- Rendering-Engine (Blink)118
- Browser (chrome/)52
- Content-Schicht42
- Komponenten39
- Netzwerk-Stack22
- UI und Fenster14
- TLS (BoringSSL)11
- V8 und URL17
- Alles andere30