Π˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° ΠΏΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌ TLS ClientHello β€” Π΄ΠΎ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ HTTP-запрос ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Π½. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ TLS-ΠΊΠ»ΠΈΠ΅Π½Ρ‚ (Π±Ρ€Π°ΡƒΠ·Π΅Ρ€, curl, Python requests, Go http) Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€Π½Ρ‹ΠΉ Β«ΠΎΡ‚ΠΏΠ΅Ρ‡Π°Ρ‚ΠΎΠΊΒ», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ΄Π΄Π΅Π»Π°Ρ‚ΡŒ Π±Π΅Π· Π·Π°ΠΌΠ΅Π½Ρ‹ TLS-стСка.

Как Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚

ΠŸΡ€ΠΈ TLS-Ρ…Π΅Π½Π΄ΡˆΠ΅ΠΉΠΊΠ΅ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ отправляСт ClientHello с Π½Π°Π±ΠΎΡ€ΠΎΠΌ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ²:

  • ВСрсия TLS
  • Cipher suites (порядок ΠΈ Π½Π°Π±ΠΎΡ€)
  • Extensions (SNI, ALPN, supported groups, signature algorithms)
  • Compression methods

Π₯Сш этих ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² = fingerprint. Один ΠΈ Ρ‚ΠΎΡ‚ ΠΆΠ΅ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ Π½Π° Ρ€Π°Π·Π½Ρ‹Ρ… ΠΌΠ°ΡˆΠΈΠ½Π°Ρ… Π΄Π°Ρ‘Ρ‚ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ΠΉ ΠΎΡ‚ΠΏΠ΅Ρ‡Π°Ρ‚ΠΎΠΊ.

JA3 vs JA4

JA3JA4
Π€ΠΎΡ€ΠΌΠ°Ρ‚MD5-Ρ…Π΅Ρˆ строки парамСтровЧитаСмая строка t13d1516h2_...
Π£ΡΡ‚ΠΎΠΉΡ‡ΠΈΠ²ΠΎΡΡ‚ΡŒΠ›ΠΎΠΌΠ°Π΅Ρ‚ΡΡ ΠΏΡ€ΠΈ Ρ€Π°Π½Π΄ΠΎΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ порядка extensions (Chrome 110+)Π‘ΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ extensions β€” устойчив ΠΊ Ρ€Π°Π½Π΄ΠΎΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ
ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ°Π¨ΠΈΡ€ΠΎΠΊΠ°Ρ (Cloudflare, Suricata, Zeek)Растёт (FoxIO, fingerproxy, Auth0)

JA4 β€” Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅ΠΌΡ‹ΠΉ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ Π½Π° 2025+.

Π§Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ

JA4 fingerprintΠšΠ»ΠΈΠ΅Π½Ρ‚
Π£Π½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ для Chrome/EdgeChromium-based Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Ρ‹
Π£Π½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ для FirefoxFirefox
Π£Π½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ для SafariSafari/WebKit
python-requests/*Python requests β€” Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€Π½Ρ‹ΠΉ Π½Π°Π±ΠΎΡ€ cipher suites
go-http-client/*Go http.Client
node-fetch/*Node.js fetch/undici

Headless Chrome (Puppeteer/Playwright) ΠΈΠΌΠ΅Π΅Ρ‚ Ρ‚ΠΎΡ‚ ΠΆΠ΅ JA4, Ρ‡Ρ‚ΠΎ ΠΈ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ Chrome β€” эта Ρ‚Π΅Ρ…Π½ΠΈΠΊΠ° Π½Π΅ ΠΎΡ‚Π»ΠΈΡ‡Π°Π΅Ρ‚ headless ΠΎΡ‚ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠ³ΠΎ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°. Но отсСкаСт всС Π½Π΅-Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π½Ρ‹Π΅ HTTP-ΠΊΠ»ΠΈΠ΅Π½Ρ‚Ρ‹.

Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚Ρ‹

fingerproxy (Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅ΠΌΡ‹ΠΉ)

Go reverse proxy (~10 MB), Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΈΡ€ΡƒΠ΅Ρ‚ TLS, вычисляСт JA3/JA4, добавляСт Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ, проксируСт Π½Π° upstream ΠΏΠΎ HTTP.

Client β†’ fingerproxy (TLS termination + JA4) β†’ nginx (HTTP) β†’ App
# Docker Compose
fingerproxy:
  image: ghcr.io/wi1dcard/fingerproxy:latest
  ports:
    - "443:443"
  environment:
    - UPSTREAM=nginx:80
  volumes:
    - ./certs:/certs:ro

ΠŸΡ€ΠΎΠ΄Π°ΠΊΡˆΠ½-ready: Subscan.io ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ 40M req/day Ρ‡Π΅Ρ€Π΅Π· fingerproxy.

ja4-nginx-module

Нативный nginx-ΠΌΠΎΠ΄ΡƒΠ»ΡŒ ΠΎΡ‚ FoxIO. Π’Ρ€Π΅Π±ΡƒΠ΅Ρ‚ пСрСсборку nginx с ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΌ. ΠŸΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½Π΅Π΅ fingerproxy (Π½Π΅Ρ‚ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ hop), Π½ΠΎ слоТнСС Π² Π΄Π΅ΠΏΠ»ΠΎΠ΅.

Cloudflare

ΠŸΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΠ΅Ρ‚ JA3/JA4 ΠΈΠ· ΠΊΠΎΡ€ΠΎΠ±ΠΊΠΈ Π² cf-ja3-fingerprint Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ΅. НС Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎ для Π Π€ (см. Π—Π°Ρ‰ΠΈΡ‚Π° API ΠΎΡ‚ скрСйпинга).

Π€Π°Π·Ρ‹ внСдрСния

  1. Π›ΠΎΠ³ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ (2 Π½Π΅Π΄Π΅Π»ΠΈ) β€” Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π·Π°ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ JA4 Π² access log, ΡΠΎΠ±ΠΈΡ€Π°Ρ‚ΡŒ fingerprints Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ
  2. Allowlist β€” ΡΡ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ список Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π½Ρ‹Ρ… fingerprints
  3. Мягкая Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ° β€” нСизвСстныС fingerprints β†’ ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½Π½Ρ‹ΠΉ suspicion score ΠΈΠ»ΠΈ tarpit
  4. Жёсткая Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ° β€” blocklist извСстных scraping-Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ

ΠžΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΡ

  • НС ΠΎΡ‚Π»ΠΈΡ‡Π°Π΅Ρ‚ headless Chrome ΠΎΡ‚ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠ³ΠΎ Chrome
  • ΠŸΡ€ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΈ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π° fingerprint ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒΡΡ β€” allowlist Π½ΡƒΠΆΠ½ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡ‚ΡŒ
  • Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ hop (fingerproxy) добавляСт ~1ms латСнтности
  • НС Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ для HTTP (Π±Π΅Π· TLS) β€” Ρ‚ΠΎΠ»ΡŒΠΊΠΎ HTTPS

Π‘Ρ‚ΠΎΠΉΠΊΠΎΡΡ‚ΡŒ

Высокая β€” ΠΏΠΎΠ΄ΠΌΠ΅Π½ΠΈΡ‚ΡŒ JA4 Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π±Π΅Π·:

  • Π—Π°ΠΌΠ΅Π½Ρ‹ TLS-Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ curl-impersonate вмСсто curl)
  • Использования headless Chrome (Π΄ΠΎΡ€ΠΎΠ³ΠΎ ΠΏΠΎ рСсурсам)
  • ΠŸΡ€ΠΎΠΊΡΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ Ρ‡Π΅Ρ€Π΅Π· Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹ΠΉ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€

Π­Ρ‚ΠΎ ΠΎΠ΄Π½Π° ΠΈΠ· самых Π½Π°Π΄Ρ‘ΠΆΠ½Ρ‹Ρ… Ρ‚Π΅Ρ…Π½ΠΈΠΊ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ Π½Π° 2025-2026.

БвязанныС Π·Π°ΠΌΠ΅Ρ‚ΠΊΠΈ