← ブログに戻る

メディアデバイスフィンガープリントとは?カメラとマイクの情報がブラウザ識別に使われる仕組み

核心のまとめ:メディアデバイスフィンガープリントは、ブラウザが提供するメディアデバイス情報をサイトが補助的な識別手がかりにする仕組みです。ページは列挙APIでカメラ・マイク・スピーカーのリストを読み取ります。どの程度の情報まで取れるかは、プライバシー制限と権限状態で決まります。台数・種別・グループ分けは識別の補助にはなっても、それだけでユーザーの身元を確定することはできません。以下、列挙の仕組み、識別の原理、影響する要素、確認手順、MostMateでのチェックの順に解説します。

ビデオ会議の開始前、ブラウザは使えるカメラとマイクを一覧にして選ばせてくれます。裏で動いているのはメディアデバイス列挙APIのenumerateDevices()です。このAPIは他のページからも呼び出せます。ユーザーが権限を与えていなくても、多くのブラウザは限定的なデバイス情報を返します。名前・識別子・見える台数は、権限とプライバシーポリシーの制限を受けます。MostMateはアンチディテクトブラウザです。製品全体の紹介はMostMateとはをご覧ください。メディアデバイスの読み取り値は、環境の一貫性チェックで見落とされがちな項目です。この記事で整理します。

メディアデバイスフィンガープリントとは

メディアデバイスフィンガープリントとは、ブラウザから見えるメディアデバイス情報から作られる識別特徴のことです。列挙APIが返すデバイスの台数・種別・グループ分けは、ブラウザの目に映るこのマシンの音響・映像ハードウェア構成を表します。APIの正式名称はenumerateDevicesです。MediaDevicesファミリーの一員です。カメラ権限を要求するgetUserMediaと親戚のような関係にあたります。権限を求めるときにはユーザーの同意が必要です。デバイスを一覧するだけなら、同意は要りません。

APIの詳細はMDNのenumerateDevicesドキュメントを参照してください。

返り値では各デバイスが1レコードを占めます。フィールドは4つです。kindは種別を示します。音声入力・音声出力・映像入力に分かれます。deviceIdはデバイスの識別子、labelはデバイス名です。groupIdは同じ物理ハードウェアを共用するデバイス同士を結び付けます。情報量は権限状態次第です。注意点は次のとおりです。

フィールド主な用途注意点
kind音声入力・音声出力・映像入力の区別返り値はブラウザの制限を受けることがある
deviceIdデバイスやエントリの区別権限・ブラウザ設定・データ消去の影響を受けることがある
labelデバイス名の表示完全な名前は通常、許可後に読み取れる
groupId同一物理ハードウェアの関連付けブラウザのプライバシー・権限ポリシーの制限を受ける

未許可でも、ブラウザは通常ページからの列挙API呼び出しを許します。ただし返ってくるリストは制限されることがあります。非デフォルトのデバイスを隠すブラウザもあります。名前や識別子が空になることもあります。処理の仕方はブラウザごとに違います。検出結果が、実際に接続中の全デバイスと一致するとは限りません。実測を優先してください。

デバイス権限は通常、サイトごとに管理されます。権限を得たページはより多くのデバイス情報を読めます。ただし実際の返り値は、ブラウザとデバイスの状態に左右されます。

デバイス列挙のイメージ

サイトはデバイス情報でブラウザ環境をどう識別するか

デバイス情報の識別的な価値は長期安定にあります。ただし区別力は限定的です。あくまで補助シグナルです。三点に分けて述べます。

  • 安定性には条件があります。ハードウェアとブラウザ設定が変わらなければ、リストはしばらく安定します。補助シグナルとして使えます。デバイスの接続状態、権限の変化、データ消去、プライバシーポリシーが結果に影響し得ます。
  • 組み合わせとグループ分け。groupIdは同じ物理デバイスグループに属するデバイス同士を結び付けます。カメラとマイクを一体化したモニターが典型例です。得られるのはデバイス間の関連情報です。ハードウェアの型番や真正性を直接証明するものではありません。サイトは他の情報と組み合わせた補助特徴として扱います。
  • 限界は認識しておくこと。多くのユーザーのデバイス構成は同じです。ノートパソコン1台にイヤホン1つなら、返る台数と種別は完全に一致します。似た構成のユーザーが多いため、メディアデバイス情報だけの区別力は限られます。サイトはフォントや画面パラメータなど、他のシグナルも組み合わせます。これでブラウザ環境の区別精度を上げます。

具体例をひとつ挙げます。

両方の環境がmacOSだとします。一方は映像入力1つと音声デバイス2つを検出しました。もう一方は音声デバイス1つだけを返しました。この差はデバイス構成から来るかもしれません。権限状態やブラウザポリシーに由来するかもしれません。識別には追加情報を与えます。ただしこの差だけを根拠に「別デバイスだ」と判断することはできません。収集するシグナルが多いほど、環境の全体像は完成に近づきます。

メディアデバイス検出結果の変化に対する3つの切り分け経路

メディアデバイスフィンガープリントに影響する要素

同じ環境でもメディアデバイスの読み取り値は条件で変わります。異常な結果は、まずよくある原因を疑ってから結論を出しましょう。4つのケースです。

  • リストが空になる場合。デバイスが実際に無い、ブラウザのプライバシー保護、実行環境などが関係します。カメラのないデスクトップは普通の構成です。空のリストだけで自動化環境と判断してはいけません。
  • 台数が変わる場合。外付けデバイスの抜き挿しでも、返り値は変わります。権限設定の変更も同じです。
  • 名前やIDが変わる場合。多くは権限状態、ブラウザデータの消去、デバイス交換と関係します。
  • ブラウザごとに結果が違う場合。列挙APIのプライバシーポリシーは各社で異なり、リストのブラウザ間比較には意味がありません。

デバイスの変更自体は普通の出来事です。実在のユーザーも外付け機器を頻繁に付け替えます。結果が期待と違うときに、初めて切り分けます。見るのはデバイスの接続状態、権限、ブラウザ設定です。

ブラウザのメディアデバイスフィンガープリントの調べ方

追加ツールは不要です。デモページで前後比較をすれば、メディアデバイスの列挙結果をざっと把握できます。大切なのは結果を正しく読み取ることです。次の順に進めます。

  1. 現在のリストを確認する。ブラウザでWebRTC公式サンプルのデバイス列挙ページを開きます。3つのプルダウンに、音声入力・音声出力・映像ソースが並びます。各種別の台数と項目を記録してください。検出ページはHTTPSなどのセキュアコンテキストで開く必要があります。結果が返らないときは、まずコンテキストと権限を確認します。デバイスが存在しないと決めつけないことです。
  2. 条件を変えて観察する。権限状態はそろえたままにします。別のブラウザか環境で同じページを開き、2回の結果を比べます。
  3. 変化の原因を切り分ける。リストが合わないときは、まずハードウェアの接続と権限設定、次にブラウザ設定、その後に環境側の設定を疑います。順番が大事です。

見るのは台数・種別・組み合わせです。具体的な数値を追いかけるものではありません。検出ページごとに表示の詳細は異なります。サイトをまたいだ比較には意味がありません。有効なのは、同じツール内での前後比較だけです。

アンチディテクトブラウザ利用時にメディアデバイス情報を確認する方法

MostMateの指紋設定(指纹设置)には現在、メディアデバイスの独立した設定項目がありません。カメラ・マイク・スピーカーの列挙結果は、パラメータから直接変更できません。

日々の確認は3ステップです。環境を作成または編集するとき、まず指紋設定を開きます。OSプロファイルを確認します。次に環境を開きます。前のセクションの検出を一回実行し、結果を記録します。結果が期待と違うときは、デバイスの接続と権限、ブラウザ設定の順に確認します。そのうえで、他のフィンガープリント結果と合わせて分析します。

デバイス接続、ブラウザ権限、環境設定を変更したら、検出をもう一度実行します。結果が変わったか確認します。ここまでが一巡です。プロキシや他のフィンガープリントパラメータも同時に触った場合は、チェック対象を分けます。ネットワーク情報と該当するフィンガープリント項目を、それぞれ確認します。検出対象は2種類で別物です。混同しないことです。

混同しやすい2つの機能の境界をはっきりさせましょう。指紋設定のWebRTCが扱うのはネットワークアドレスの露出です。リアルタイム通信の接続は、STUNサーバーに問い合わせることがあります。問い合わせるのは、自マシンのネットワークアドレスです。実際のIPが露出するかどうかは、ブラウザ・プロキシ・具体的な設定次第です。設定の考え方はアンチディテクトブラウザのWebRTCとはの記事で解説しました。

AudioContextはレンダリング型のフィンガープリントです。ブラウザが音声信号を処理するときの差を測ります。設定の考え方は音声フィンガープリント編で解説しました。どちらもメディアデバイス列挙の制御とは別物です。デバイス一覧の検出を代替するものでもありません。環境分離の境界は環境分離とはの記事を参照してください。デバイスリストの読み取り値は、分離そのものには影響しません。ただしサイトはそれをクロスチェックに使います。

MostMateの指紋設定

よくある質問

カメラとマイクを許可しなくても、サイトはデバイス情報を読めますか?

一部は読めます。未許可でも列挙API自体は呼び出せますが、リストは制限されることがあります。非デフォルトのデバイスを隠すブラウザもあります。名前や識別子が空のままの場合もあります。権限はサイトごとに管理されます。そのため許可したことのあるサイトほど、完全なフィールドまで読めます。細かな挙動はブラウザとバージョンで変わります。

メディアデバイスフィンガープリントで特定の1台を割り出せますか?

割り出せません。デバイスリストは多数のユーザーの間で重複します。サイトはほかのシグナルとのクロス検証が必要です。使うのはIP、フォント、画面パラメータなどです。デバイス情報は、その補助証拠の1つにすぎません。

メディアデバイスフィンガープリントとWebRTCリークは同じものですか?

別の問題です。メディアデバイス列挙はブラウザAPI経由でデバイス情報を取得します。WebRTCのIP露出はリアルタイム通信の中で起こります。扱うのはネットワークアドレスです。検出対象も原理も切り分け方も異なります。そのためWebRTCのIP検出結果を、メディアデバイス検出の代わりには使えません。

カメラやマイクを替えるとフィンガープリントは変わりますか?

変わります。デバイスリストはハードウェアに連動します。外付け機器の抜き挿しやイヤホンの交換でも、列挙結果は変わります。1つの環境にとってデバイスの変更は普通の出来事です。結果が期待と違うときは、デバイス接続・権限・ブラウザ設定の順に確認してください。

アンチディテクトブラウザでメディアデバイスフィンガープリントを変更できますか?

MostMateには現在、メディアデバイスの独立した設定項目がありません。列挙結果をパラメータで直接変更することもできません。できるのは、環境プロファイルを妥当に保つことです。そのうえで環境の中で実際の読み取り値を測り、他のフィンガープリントパラメータと整合を確認します。

まとめ

メディアデバイスの列挙は、複雑なグラフィックや音声のレンダリングを必要としません。APIを1回呼ぶだけです。ブラウザが現在アクセスを許しているメディアデバイス情報を取得できます。区別力は限られています。それでも一部の識別シーンでは、他のブラウザ特徴と組み合わせて使えます。その信号の区別力は限定的で、一部の識別シーンでは他の特徴と並んで補助的な判断に使われます。アンチディテクトブラウザを使うなら、環境ごとにデバイス一覧を一度実測してください。結果が変わったら、ハードウェア・権限・ブラウザ設定の順に切り分けます。ゼロから環境を整えたい方は、MostMateをダウンロードから始めてください。構築後は1環境ずつ検証してから、本番に移りましょう。

MOSTMATE

安全な複数アカウント管理を、もっと簡単に

最初のアカウントから、MostMate でより安全でスマート、効率的な複数アカウント運用を始めましょう。

  • 独立したプロファイル。一貫した識別情報。
  • AI 自動化 · アカウント健全性 · チーム運用
MostMate をダウンロード