Zum Inhalt springen
Offene Bibliothek · GPL-3.0

Echte Captures, von der Stange

Statt einer synthetischen, aus dem Seed abgeleiteten Persona meldet der Browser mit --fingerprint-profile die Werte, die auf einem echten Chrome-Rechner erfasst wurden – dessen GPU-Strings, Bildschirmdaten, Schriften und Hardware-Kennzahlen. Die Bibliothek clearcote-profiles macht aus dem offenen Datensatz chrome-fingerprints (~10k echte Windows-Chrome-Captures) Tausende kohärente, sofort einsetzbare Profile.

72

kuratierte, validierte Sample-Profile – breit über GPUs gestreut, sofort einsatzbereit

~8.5k

Profile in der vollständig generierten Bibliothek

~10k

echte Chrome-Captures im Quelldatensatz

Kuratiert, nicht nur konvertiert. Captures, die mit Software-Rendering (SwiftShader / llvmpipe) oder in einer VM (Parallels / VMware / VirtualBox) entstanden sind, werden herausgefiltert – ein VM-Adapter ist für sich genommen schon ein verräterisches Merkmal. Die aussortierten Datensätze bleiben der Transparenz halber im Ordner excluded/ des Repos, neben dem Manifest index.json, das jedes Profil mit GPU-Hersteller, GPU-Familie, Bildschirm und Concurrency taggt (im Sample-Set: Intel 29 · NVIDIA 34 · AMD 9).

Was ein Profil enthält – und was bewusst nicht

Die gemeldeten Werte

  • GPU – die unmaskierten Vendor-/Renderer-Strings von WebGL, die getParameter-Tabelle und die Liste der unterstützten Extensions
  • Bildschirm – Auflösung, verfügbare Fläche, Farbtiefe, Device-Pixel-Ratio, Farbumfang
  • Hardware – hardwareConcurrency und deviceMemory
  • Schriften, Stimmen der Sprachsynthese, Audio-Samplerate & -Latenz

Die Browser-Version (bleibt aktuell)

User-Agent, Chrome-Version und UA-CH-Brands enthalten Profile nicht. Der Quelldatensatz wurde mit Chrome 117 erfasst; Clearcote liefert eine deutlich neuere Engine aus. Würde man die alte Version übernehmen, gäbe sich der Browser als 117 aus, verhielte sich aber wie seine tatsächliche Version – ein Widerspruch, der selbst erkennbar ist. Clearcote behält seine eigene, aktuelle Version; übernommen werden nur die erfassten Werte.

samples/vinyzu-04201.json – gekürzt
{
  "meta": { "id": "vinyzu-04201", "gpu_vendor": "Intel", "gpu_family": "Arc" },
  "hardware_concurrency": 12,
  "device_memory": 8,
  "screen": { "width": 1920, "height": 1080, "color_depth": 24, "device_pixel_ratio": 1 },
  "webgl": {
    "UNMASKED_VENDOR_WEBGL": "Google Inc. (Intel)",
    "UNMASKED_RENDERER_WEBGL": "ANGLE (Intel, Intel(R) Arc(TM) A770 Graphics Direct3D11 vs_5_0 ps_5_0, D3D11)"
  },
  "fonts": { "detected": ["Arial", "Calibri", "Cambria", "Consolas", "Segoe UI", "… 390 more"] },
  "audio": { "BaseAudioContextSampleRate": 48000, "AudioContextBaseLatency": 0.01 }
}

Das laden Sie tatsächlich herunter: Jedes Profil ist eine JSON-Datei. Diese hier stammt von einem Desktop-PC mit Intel Arc A770 – die gemeldeten Werte eines echten Rechners, vollständig erfasst: eine Arc-A770-Treibertabelle, 12 Threads, 8 GB, ein 1080p-Bildschirm und 395 installierte Schriften. 71 weitere liegen in samples/, ~8.5k weitere liefert generate.py.

Was ein Profil nicht ist: Hardware. Ein Profil ändert, was der Browser meldet. Es ändert nicht, was Ihre Pixel zeichnet – Canvas, WebGL-Readback und Audio kommen weiterhin von dem Rechner, auf dem der Browser tatsächlich läuft, und das kann kein Browser ändern. Zwei Accounts mit zwei verschiedenen Profilen auf einem Rechner rendern deshalb trotzdem ein identisches Canvas. Soll jeder Account auch auf Pixelebene wie ein anderer Rechner aussehen, kommt das von einem fingerprint-Seed pro Account, nicht vom Profil.

So konfigurieren Sie es

Gemessen mit pixelscan und BrowserScan über ~30 Konfigurationen hinweg. Es sind die beiden folgenden Regeln, die das Ergebnis tatsächlich verändert haben.

1Die echte GPU melden

Die Pixel zeichnet ohnehin Ihr Host. Wer eine andere GPU angibt, lässt Name und Rendering auseinanderlaufen, und Scanner, die die gerenderte Ausgabe hashen, ziehen dafür Punkte ab. Mit disable_gpu_fingerprint=True stimmt die gemeldete GPU mit der überein, die tatsächlich die Arbeit macht – das stellt WebGL und WebGPU gemeinsam um, sodass sich beide nie widersprechen. Bildschirm, Schriften und Hardware-Kennzahlen liefert weiterhin das Profil.

2Ein Seed pro Account – und nicht mit einem Profil kombinieren

Ein Profil allein gibt jedem Account dasselbe Canvas, weil es nur gemeldete Werte ersetzt und das Rendering nie anfasst. Das Canvas pro Account kommt vom fingerprint-Seed. Einen Seed und ein erfasstes Profil gleichzeitig zu setzen, ist genau die eine Kombination, die Scanner als Manipulation markieren – entscheiden Sie sich für eines. Bei mehreren Accounts nehmen Sie den Seed.

Multi-Account-Setup: ein eigener Seed pro Account + echte GPU + ein eigener Proxy. Lassen Sie das Canvas-Rauschen an – abgeschaltet entfällt genau das Canvas pro Account, das Sie sich damit gerade erkauft haben.

python
import clearcote

# ONE ACCOUNT, ONE IDENTITY — the multi-account setup
browser = clearcote.launch(
    fingerprint="acct-1",              # unique per account: this is what varies the canvas
    disable_gpu_fingerprint=True,      # report the real GPU, so name and render agree
    geoip=True,                        # timezone + language follow the proxy
    proxy={"server": "..."},           # one per account
)                                      # note: no fingerprint_profile — a seed replaces it

# A CAPTURED MACHINE INSTEAD — for a single identity, not a fleet
# (the repo's samples/ set works out of the box)
browser = clearcote.launch(
    fingerprint_profile="samples/vinyzu-04201.json",   # an Intel Arc A770 desktop
    disable_gpu_fingerprint=True,
)                                      # note: no fingerprint seed alongside it

Die vollständige Bibliothek generieren

Der kanonische Konverter liegt im Browser-Repo und ist als Abhängigkeit gepinnt – die Kuratierung setzt darauf auf:

bash
pip install -r requirements.txt   # dataset + canonical converter
python generate.py                # -> profiles/*.json (~8.5k profiles)
python generate.py --samples 80 --out samples   # regenerate the sample set

Lieber per Mausklick?

Der Profile Manager durchsucht diese Bibliothek für Sie – gefiltert nach dem GPU-Hersteller Ihres Hosts – und startet die Auswahl als interaktives Fenster. Ganz ohne Code.

Das Hauptfenster des Clearcote Profile Manager: gespeicherte Profile als Karten mit Chips für Fingerprint-Seed, Zeitzone, geoip und Proxy, jeweils mit den Schaltflächen Launch, Edit, Duplicate und Delete.

Lizenz & Namensnennung. Die Profile sind von chrome-fingerprints © Vinyzu abgeleitet, daher steht die Bibliothek unter GPL-3.0 – anders als der Clearcote-Browser selbst, der unter BSD-3-Clause steht. Wenn Sie die Bibliothek weitergeben, behalten Sie Namensnennung und Lizenz bei.