JA3・JA4 TLS フィンガープリンティング徹底解説(自分のフィンガープリントを確認する方法)

2026年6月4日公開 · 約9分で読めます

あなたのスクレイパーは完璧な Chrome ヘッダーを送り、クリーンな residential IP の背後で動作しているのに、最初のリクエストでいきなり 403 を返される。captcha もチャレンジページもなく、解くべきものは何もない。サイトは HTTP のバイトが 1 つもやり取りされる前に、つまり TLS handshake の段階であなたを識別したのです。

この記事では、JA3 と JA4 のフィンガープリンティングが実際にどう機能するのか、なぜそれが 2026 年のあらゆる主要な anti-bot システムの静かな主力になっているのか、そして自分のフィンガープリントを 10 秒で確認する方法を解説します。先に bypass のためのツールが知りたい場合は、curl_cffi & tls-client で TLS フィンガープリンティングを回避するで扱いました。本記事はその姉妹編で、検出側がどう動くかを扱います。

10 秒テスト

理論に入る前に、自分自身の handshake を見てみましょう。当社の無料 JA3/JA4 チェッカーを開いてください。あなたのクライアントが今提示した TLS フィンガープリントをそのまま返し、それが何に一致するかを教えてくれます:

# From a terminal - see what curl's TLS looks like:
curl https://www.jibaoproxy.com/tools/fingerprint.html

# Then open the same URL in Chrome and compare.

両方を実行すれば、この記事全体の要点が見えてきます。User-Agent ヘッダーに何を設定しようと、curl と Chrome はまったく異なるフィンガープリントを生成するのです。

TLS Handshake で何が起きるか

すべての HTTPS 接続は ClientHello メッセージから始まり、これは暗号化が始まる前に平文で送信されます。その中で、あなたのクライアントは次のことを宣言します:

ここに検出の核心があります。これらのリストとその正確な順序は、あなたのクライアントがコンパイルされた TLS ライブラリに焼き付けられています。Chrome の BoringSSL は特定の組み合わせを 1 つ宣言します。Python の OpenSSL は別のものを宣言します。Go の crypto/tls は 3 つ目を宣言します。これはヘッダーでは変えられません。HTTP レイヤーの下、ライブラリ自身によってネゴシエートされるからです。

JA3: Handshake のハッシュ化

JA3(Salesforce、2017 年)は ClientHello の 5 つのフィールド(TLS バージョン、cipher、extension、曲線、point format)を 1 つの文字列に連結し、それを MD5 でハッシュ化します:

771,4865-4866-4867-49195-49199,0-23-65281-10-11-35-16,29-23-24,0
              |
              v  MD5
        cd08e31494f9531f560d64c695473da9

TLS スタックごとに 1 つのハッシュ。Windows 上の Chrome 137 はどのコピーでも(ほぼ)同じ JA3 を生成し、OpenSSL 3.x 上の python-requests はどれも同じ別の JA3 を生成します。防御側はルックアップテーブルを保持しています。ハッシュ X = Chrome、ハッシュ Y = requests、ハッシュ Z = Go bot。User-Agent が Chrome だと言っているのに JA3 が OpenSSL だと言えば、即座に、静かに、安価にブロックされます。

JA4: 2026 年の標準

JA3 には問題がありました。Chrome は 2023 年に extension の順序をランダム化し始め(素朴な JA3 を壊し)、MD5 は構造を持たないため、1 つのハッシュからは 2 つのクライアントがなぜ異なるのかが何もわかりません。JA4(FoxIO、2023 年)はその両方を解決し、今日まともなベンダーが採用しているものです:

JA4 = t13d1516h2_8daaf6152771_b0da82dd1658
       |            |             |
       a: protocol  b: ciphers    c: extensions
       (TLS 1.3, 16 ciphers,      (sorted, truncated
        h2 ALPN, domain SNI)       SHA256)

これを誰があなたに対して使っているか

重要なシステムはすべてです。Cloudflare は JA3/JA4 を bot-management ルールに直接公開しています。DataDome と PerimeterX はそれをネットワークレイヤーのスコアリングに取り込んでいます(当社の DataDome/PerimeterX ガイドを参照)。Akamai は誰よりも長く TLS フィンガープリンティングを運用してきました。これが人気なのは、計算が無料で、HTTP レイヤーから偽装するのが不可能で、素朴な自動化の 90% を捕捉するからです。これまで書かれたあらゆる requests/httpx/axios/Go-http スクリプトを、JavaScript が実行される前に捕まえます。

なぜ proxy だけでは助けにならないか

これは人を驚かせます。proxy は IP を変えますが、TLS handshake はそのまま通過します。CONNECT トンネル(または SOCKS5 ストリーム)はあなたの ClientHello バイトをそっくりそのままターゲットへ運びます。Residential IP + requests ライブラリの JA3 = 「residential IP 上で動く bot」。datacenter IP よりはマシですが、それでも bot です。

IP と TLS フィンガープリントは独立したシグナルであり、両方をクリーンにする必要があります:

IPTLS フィンガープリント2026 年の判定
Datacenterライブラリ(requests/Go)気にするサイトすべてでブロック
ResidentialライブラリJA4 をチェックするサイトでブロック
Datacenterブラウザ偽装IP レピュテーションでブロック
Residentialブラウザ偽装ネットワークレイヤーのチェックを通過

フィンガープリントを「設定」に一致させる

ツール別に 2 つの道があります:

HTTP クライアント。ブラウザの正確な ClientHello を再実装する偽装ライブラリを使います: curl_cffi(Python)、tls-client(Python/Go)、got-scraping(Node)。完全に動くコードは curl_cffi ガイドにあります:

from curl_cffi import requests

r = requests.get(
    "https://target.example",
    impersonate="chrome",
    proxies={"https": "socks5h://USERNAME:PASSWORD@us.jibaoproxy.com:913"},
)

実ブラウザ(Playwright、ブラウザエージェント、anti-detect ブラウザ)。TLS レイヤーでやることは何もありません。フィンガープリントは本物の Chrome のものです。リスクは別の場所にあります。IP レピュテーションと CDP 検出です。

そして仮定せず、検証してください。バージョンはずれていきます。Chrome 120 の handshake にピン留めされた偽装ライブラリは、2026 年には「疑わしいほど古いブラウザ」と読み取られます。依存関係を更新するたびに再テストしてください:

Free tool · no signup

今すぐ自分の JA3 / JA4 を確認

当社のチェッカーは、あなたのクライアントが提示する TLS フィンガープリントをそのまま返し、それがどのスタック(Chrome / Firefox / OpenSSL / Go)に一致するかを識別し、UA と TLS の不一致をフラグします。anti-bot システムが実行するのとまさに同じチェックです。

自分の TLS フィンガープリントをテスト →

フィンガープリントはクリーンなのにまだブロックされる? もう半分は IP レピュテーションです。500MB の無料トラフィックで residential IP をテスト →

まとめ

クリーンなフィンガープリント、クリーンな IP

偽装した TLS と residential IP を組み合わせましょう。500MB の無料トラフィック、カード不要。

無料トライアルを開始

すべてのIP製品に対応 · 膨大なノードプールをいつでも利用可能

今すぐ登録して、チャージ額の最大 100% をキャッシュバック

新規ユーザーは登録時に500MBを獲得、さらに初回チャージにボーナスが付きます。期間限定オファーです。