TLSフィンガープリンティングの仕組み
クライアントがHTTPS接続を開くと、対応するTLSバージョン、順序づけられた暗号スイート、対応拡張機能、楕円曲線、署名アルゴリズムを列挙したClientHelloを送信します。これらの選択はTLSライブラリとその構成によって決まるため、各クライアントスタックに固有の認識可能なパターンを形成します。
サーバーやミドルボックスはこれらのフィールドを取り込み、コンパクトなフィンガープリントにエンコードします。歴史的にはJA3、より最近ではJA4のようなスキームが使われます。このフィンガープリントはハンドシェイクを要約するため、同じクライアントソフトウェアからの接続は、IPアドレスやユーザーエージェントとは無関係に同じ値を生成します。
TLSフィンガープリンティングはHTTP層より下で動作するため、アプリケーションが説得力ある形で偽装するのは困難です。ツールは任意のユーザーエージェント文字列を設定できますが、そのTLSハンドシェイクは実際に使っているライブラリを依然として反映し、名乗ったブラウザと実際のクライアントとの食い違いを露呈させます。
デバイスではなくクライアントスタックを捉えるため、TLSフィンガープリンティングは個人を区別する点ではブラウザフィンガープリンティングより粗いものの、クライアントの種類を分類し、自動化を発見する点では優れています。
不正防止においてTLSフィンガープリンティングが重要な理由
TLSフィンガープリンティングはボットと自動化の検知に強力です。スクリプティングのツールやライブラリは、主流のブラウザとは異なるTLSシグネチャを持つからです。あるリクエストがChromeを名乗りながらスクリプティングライブラリのTLSハンドシェイクを提示すれば、その矛盾は不正の強い指標になります。ネットワーク層で動作するため、より単純なチェックを打ち破るヘッダー偽装に耐えます。
TRACIOでの扱い方
TRACIOはTLSハンドシェイクの特性を含むネットワーク層のシグナルを、サーバーサイドのSmart Signalsおよびボット検知の一部として利用します。これはクライアントサイドの識別を補完し、ブラウザのヘッダーを模倣しつつも本物のブラウザのTLSスタックは再現できない自動化を捕捉します。IP Intelligenceと組み合わせることで、名乗ったユーザーエージェントに関係なく、本物のブラウザとツールを見分けるのに役立ちます。