Canvas API は、Web ブラウザでグラフィックを描画するために設計されています。アニメーション、ゲーム グラフィックス、データ視覚化、画像編集、リアルタイム ビデオ処理などに使用できます。ブラウザ フィンガープリントによるオンライン追跡にも使用できます。このテクノロジーは、さまざまな Web ブラウザーやプラットフォーム間でキャンバス画像がレンダリングされる方法の変更に依存して、ユーザーのブラウザーのパーソナライズされたデジタル フィンガープリントを作成します。ただし、同じ機器環境下で繰り返すことは可能です。
キャンバス関数の検出
- Canvas 2D API
- Text API for Canvas
- Canvas toDataURL(指紋認証によく使用されます)
- OffscreenCanvas API
- Canvas native
Canvas toDataURL 関数はブラウザのプラグインによっても変更できますが、簡単に識別できます。
- 安定性
Canvas は同じデバイスとブラウザ環境で安定しています
- 人間以外の騒音
一部のフィンガープリント ブラウザまたはフィンガープリント プラグインはキャンバス ノイズにパラメータを追加できますが、それでも認識される可能性があります。
画像の詳細
サンプル画像 | |||
ファイルサイズ | 0 bytes | ||
色量 | 0 | ||
PNG キー データ ブロック | |||
データブロック名 | 長さ | CRC | 説明する |
キャンバスフィンガープリントの原因
Canvas イメージがキャンバス上にレンダリングされる方法は、Web ブラウザー、オペレーティング システム、グラフィック カード、その他の要因によって異なる場合があり、その結果、フィンガープリントの作成に使用できる固有のイメージが生成されます。
1. アンチエイリアシング
アンチエイリアシング技術はビューティーフィルターの一種であり、広く使用されています。オペレーティング システムでフォント スムージングが有効になっていない場合、一部のフォントはコンピューターのモニター上で見にくくなります。一般に、Windows オペレーティング システムでは、フォントと画像のスムージングがデフォルトで有効になっています。 Mac OS X では、アンチエイリアスは特定のサイズ以下のフォントに対してのみ機能するようです。オペレーティング システム レベルだけでなく、一部のブラウザには独自のアンチエイリアス テクノロジが組み込まれています。たとえば、Safari は独自の組み込みフォント レンダリング エンジンを使用します。そして何よりも、アンチエイリアス技術は、Canvas 上でフォントや画像を描画するときにも機能します。
次の図に示すように、左側はフォント スムージングが有効になっていない状態を示し、右側はフォント スムージングが有効になっている状態を示します。
アンチエイリアス技術はいくつかの非純色ピクセルを生成し、これらの中間状態のピクセル値はグラフィックス カードのカラー プロファイルの影響を受けるため、これをノイズと呼びます。十分な大きさのキャンバスに同じフォントと画像を描画し、すべてのピクセル データを計算することで、比較的ユニークな指紋データを取得できます。
2. フォントのヒント
微調整の機能の 1 つはグリッド フィッティングです。これは、フォント文字の高さと幅を変更して、画面上に表示されている設定されたピクセル グリッドに揃えることを意味します。画像は、小さな正方形のグリッドとして画面上に表示されます。これは、フォントの形状とレイアウトが異なる場所でもほぼ同じに見えるようにするためでもあります。スクリーン。
数十の異なるユーザーからのキャンバス画像のコレクションである次の GIF 画像を通じて、異なるデバイス環境での同じコードの表示の違いを直感的に確認できます。
![diff](/dist/diff.CIEvsrvw.gif)
上記の画像の詳細に示されているように、一般的に、toDataURL 関数を呼び出して Canvas 画像の Base64 データを取得するか、Canvas によって生成された PNG 画像のデータ ブロックから IDAT ブロックの CRC チェックサムを取得できます。次に、その文字列のハッシュ (base64 または CRC チェックサム) (正確なアルゴリズムはサイトによって異なります) を Canvas フィンガープリントとして計算できます。
注: Canvas フィンガープリントが Web サイトごとに異なる理由は数多くあります。使用される文字列 (base64 または CRC チェックサム)、ハッシュ アルゴリズム (MD5、SHA、MUMUHASH など) が異なると、Canvas フィンガープリントは完全に異なります。 Canvas フィンガープリントは安定しているため、同じブラウザおよびデバイス環境下では、同じ Web サイト内の Canvas フィンガープリントが固定されます。これは、安定した特性を持つユーザー支援識別に使用される Canvas フィンガープリントの理論的基礎でもあります。