Erklärt
Wenn Ihr Client eine TLS-Verbindung öffnet, sind die allerersten Bytes ein ClientHello-Paket, das beschreibt, welche Cipher Suites, TLS-Versionen, Erweiterungen, elliptischen Kurven und ALPN-Werte Ihr Client unterstützt. Die genaue Liste und Reihenfolge dieser Attribute ist implementierungsspezifisch - Chromes ClientHello sieht anders aus als das von Firefox, das sich von curl unterscheidet, das sich von Pythons `requests`-Bibliothek unterscheidet, und so weiter.
JA3 (und sein Nachfolger JA4) ist ein Hash-Format, das die Struktur des ClientHello in einen kurzen Bezeichner umwandelt. Anti-Bot-Anbieter berechnen diesen Hash für jede eingehende TLS-Verbindung und gleichen ihn mit bekannten Signaturen ab. Wenn Ihr Scraper Python `requests` verwendet, stimmt Ihr TLS-Fingerprint mit dem OpenSSL-Standard überein und ist sofort als 'kein echter Browser' identifizierbar - noch bevor Sie ein einziges HTTP-Byte senden.
Das ist der Grund, warum so viele Scraper bei Cloudflare, Akamai und ähnlichen Systemen scheitern, selbst wenn IP und User-Agent korrekt aussehen. Die TLS-Schicht verrät, dass die Anfrage nicht von Chrome kam. Moderne Stealth-Bibliotheken (wie `curl_cffi`, `tls-client`, Playwright mit den richtigen Launch-Flags) imitieren echte Browser-TLS-Fingerprints, um dies zu vermeiden.
So funktioniert es
JA3 erstellt den Fingerprint aus fünf Feldern des ClientHello: TLS-Version, unterstützte Cipher Suites, unterstützte Erweiterungen, unterstützte elliptische Kurven und unterstützte Punktformate elliptischer Kurven. Diese werden zusammengefügt, das Ergebnis wird MD5-gehasht und ergibt eine 32-Zeichen-Signatur.
JA4 (der moderne Nachfolger) erweitert dies um ALPN, Version, SNI-Präsenz, GREASE-Behandlung und ordnet Erweiterungen auf eine stabile Weise, die gegenüber Randomisierung robust ist. JA4 hat auch Varianten für QUIC (JA4Q), HTTP (JA4H) und SSL-Session (JA4S). Server berechnen den Fingerprint und gleichen ihn entweder mit Zulassungs-/Sperrlisten ab oder speisen ihn zusammen mit anderen Signalen in ein Risikobewertungsmodell ein.