
ブラウザフィンガープリント(finger print)についての解説
ブラウザフィンガープリントは、ユーザーの利用するブラウザ環境情報群を暗号化したものです。
フィンガープリントは、元データが同じなら必ず同じ値を出す特性があります(A=B)。
ブラウザフィンガープリント情報が同じなら同じユーザーである(B=A)として、Cookieの代わりにユーザーを特定する技術です。
ブラウザフィンガープリント
本記事ではWEBの世界の中で注目されている技術、ブラウザフィンガープリントについてわかりやすく紹介します。
サードパーティークッキー規制の動きにともない、その代替技術として注目を集めています。
cookieはユーザー特定を目的としていましたが、フィンガープリントの目的はブラウザ特定です。
本記事では、そもそもフィンガープリントとは何か?そしてブラウザフィンガープリントが注目される理由や用途についてご紹介します。
さらにブラウザフィンガープリントのデメリットや今後の動向などについても解説します。
フィンガープリント(finger print)とは?
そもそもフィンガープリントとは一体何か、から説明しましょう。
フィンガープリントの直訳は「指紋」
フィンガープリントの英単語表記は「Finger Print」で、直訳すると以下の様になります。
Finger…指
Print…印刷
指を印刷したもの、つまり「指紋」という事になりますね。
指紋と言えば唯一無二のものであり、全く同じ指紋を持つ人はいないとされています。
この特徴から、DNA同様に犯人捜査や人物を特定するのによく使われていますよね。
デジタルの世界でも、この「唯一無二の存在」を示す事は非常に重要です。
送受信する相手を確認する
WEBの世界では毎秒、膨大なデータの通信(やり取り)がされています。
通信には必ず「送り手」と「受け手」が存在し、常に互いを確認し合っています。
デジタルの世界では相手の顔が分かりませんから、常に誰が誰に送ったかを確認する必要があるのです。
送り主を「指紋」で特定
一番大切な事は、「送り主」からきちんとデータを受け取っているかどうかです。
もし仮に送り主からもらったと思ってたものが実はそうではなかった場合、それはデータが改ざんされた事になります。
送り主になりすまして、別の第三者から送信されたものだったりする訳ですね。
このデータ改ざんを察知する手段が「フィンガープリント」です。
フィンガープリントにより送り手の「指紋」が残せるので、送り主が正しいかどうか確認する事ができる訳です。
フィンガープリントの仕組み
ではフィンガープリントは、実際にどのような処理をするのでしょうか。
具体的には、対象データを関数と混ぜ合わせて全く別の値に変換する、いわゆる「暗号化」をおこないます。
ハッシュ関数による暗号化
例えば元のデータ「A」があり、それに関数(ハッシュ関数)を掛け合わせます。
そうすると元データが別のランダムな値になって返ってきます。
この返ってきた(暗号化された)値の事を「ハッシュ値」と言います。
ハッシュ値の特徴
このハッシュ値に関しては、以下の様な特徴があります。
・暗号化されて完全ランダム
・同じデータに対しては必ず同じ値が返ってくる
例えば「fukuoka」という文字を、関数と混ぜ合わせて「frkrse」となったとしますよね。
同様に「tokyo」という文字に関数を混ぜ合わせると「p5ae2s」といった感じで返ってきます。
ハッシュ値はこの様に、元の文字が全く分からない値として返ってきます。
値が「frkrse」である限り、元データは「fukuoka」である
ポイントは「fukuoka」を何度混ぜ合わせても、必ず同じ「frkrse」になるという点です。
入れるデータが同じであれば、暗号化後も毎回同じハッシュ値になります。
データ通信の世界で、frkrseの値を受け取っている限り、送り主は「fukuoka」である事の証明になります。
ハッシュ値から元のデータは解析できない
逆にハッシュ値から元の文字を特定する事は限りなく不可能です。
元のデータが変わればハッシュ値自体も大きく変わり、関連性を見出す事はできません。
元データからハッシュ値への変換は簡単ですが、ハッシュ値からデータを出すのはものすごく難しいのですね。
外部の第三者は「frkrse」の値から「fukuoka」を導き出す事ができないため、送り主になりすます事ができません。
この仕組みを使って、送り主が同じかどうかをチェックする事ができる訳です。
ブラウザフィンガープリントはブラウザ特定
ブラウザフィンガープリントとは、PCやスマホなどの各種デバイスで利用するWEB閲覧ソフト(ブラウザ)を特定するために使われています。
先ほど説明した「データの送り主」を特定する方法として、ブラウザ情報を利用する訳です。
ブラウザに関する様々な情報を組み合わせたものをフィンガープリントで暗号化し、相手(受け手)に送信します。
ユーザーでは無くブラウザを特定する
ブラウザフィンガープリントで特定するのはユーザー本人ではなく、あくまでユーザーが使用するデバイスやWEBブラウザです。
つまりCookieを使わずに、ブラウザ情報から送り主を特定しようとしている訳です。
アクセス解析によるユーザー特定
例えば、当ブログlpeg.infoの訪問ユーザーを例に取りましょう。
以下の様なアクセス履歴のデータがあったとします。
5月1日…AさんPC(Google Chrome)からアクセス
5月2日…Aさんスマホ(Safari)からアクセス
5月3日…Bさんがスマホ(Safari)からアクセス
5月4日…AさんがPC(Google Chrome)からアクセス
上記では、1日のアクセスと4日のアクセスが同じPCブラウザ(Google Chrome)となっていますよね。
これによりCookie情報を解析しなくとも、1日と4日に「Aさん」がアクセスした事を特定できる訳です。
元データとなる複数のブラウザ情報
ブラウザフィンガープリントの元データとなるブラウザ情報には、以下の様な様々な情報が使われます。
Aさんが使用しているブラウザ
使用言語:日本語
IPアドレス:186.12.556.23
ブラウザの種類やバージョン:Google Chrome 89
OSの種類やバージョン:mac OS Sierra 10.12.6
画面の解像度: 1366×768×32
Bさんが使用しているブラウザ
使用言語:日本語
IPアドレス:184.45.112.10
ブラウザの種類やバージョン:Micrsoft Edge 11.789.19041.0
OSの種類やバージョン:Windows10
画面の解像度: 1366×768×32
できるだけ唯一無二のハッシュ値を出す
ブラウザフィンガープリントは、これらの情報を組み合わせてハッシュ関数で暗号化し、ハッシュ値を出力します。
これだけの情報を組み合わせたものであれば、少なくとも同じ情報を持つ端末は限りなく少なくなりますよね。
鍵となるのは「出力されたハッシュ値が同じなら、同じ送り主である」という原則ルールです。
同じハッシュ値が出る限り、同じユーザーである事の証明になる訳です。
厳密にはユーザーを特定できてはいない
ただ皆さんお分かりだと思いますが、この方法は完ぺきではありません。
仮にAさんのPCをその家族であるDさんが使っても、同じブラウザ環境ですからハッシュ値は変わりませんよね。
その意味では厳密にユーザーを特定している事にはなりません。
家族や、AさんのPCを使える立場の人のアクセスを判別する事はできないのです。
ブラウザフィンガープリントは、同じブラウザ情報を毎回違う人が使う事をそもそも想定していないと言えます。
不正ログイン防止
このブラウザフィンガープリントを使うと不正ログインを防止するのに役立ちます。
ユーザー名やパスワードなどのログイン情報以外に、このブラウザフィンガープリント情報も記録する訳です。
あまりにブラウザフィンガープリントの情報が違うところからログインされた場合、ログイン情報は正確であってもシステム側が警戒する様になっています。
大抵の場合ログインができないか、別の連絡手段で認証がされる事になります。
Aさんの「なりすまし」を見抜く
Aさんのログイン情報を盗み見た第三者が不正ログインをしている可能性は少ないでしょう。
しかし仮に第三者がAさんを装って訪問しても、ブラウザフィンガープリント情報が違うため完全にAさんになりすます事ができない訳です。
結果、不正入手したログイン情報を入れてもログインができない事になります。
こういった不正ログインを防止する事にもつながります。
なぜフィンガープリントが注目されているのか
フィンガープリントの技術自体は以前からありましたが、昨今大きな注目を集めています。
それはデジタルマーケティングの世界において、広告戦略が大きな転換期を迎えているためです。
サードパーティークッキー中心の広告展開
それまで各ユーザーのWEBサイトの訪問傾向は、サードパーティークッキーを通して常にデータ収集されていました。
サードパーティークッキーにより、他のサイトを訪問していてもそのユーザーの趣味や趣向にあわせた広告が提供できていた訳です。
例えば、ユーザーが「レンタルサーバーの選び方」についてのWEBサイトを閲覧していたとしましょう。
その後別のWEBサイトを開いている時に、先ほどの「レンタルサーバー」の広告が表示される事があります。
これがまさにユーザーのサードパーティークッキー情報を取得して、それにマッチした広告を提供している例です。
Cookie情報の取得はプライバシーの侵害
ところが今は、このデータ収集の元となるCookie情報が取得できなくなりつつあります。
ユーザー特定のためにCookie情報を取得する事は、プライバシーの侵害に当たると問題視されているのです。
そこでCookie利用を制限する様々な対策が講じられるようになりました。
プライバシー保護強化対策
強化対策の草分けは、Apple社がiOSに標準実装しているITP(Intelligent Tracking Prevention)でしょう。
ITPは、SafariブラウザでCookieによるユーザー特定を阻止する仕組みです。
これにより多くの広告配信事業者はCookie(サードパーティクッキー)を用いたターゲティング配信ができなくなり、大きな打撃を受けました。
そこでCookieに代わるユーザー特定方法として、このフィンガープリントに白羽の矢が立った訳です。
ブラウザフィンガープリントとサードパーティクッキーの違い
ユーザーの特定方法が異なる
ブラウザフィンガープリントやサードパーティクッキーは、いずれもユーザーを特定する手段です。
どちらの情報からでも、訪問ユーザーにマッチした広告配信ができるようになっています。
しかし両者の特定方法には違いがあります。
サードパーティークッキー
WEBブラウザ上にクッキー情報を保存し、WEBサーバーにアクセスする際に情報を送信する事でユーザーを特定します。
ブラウザフィンガープリント
WEBブラウザ環境から得られる情報のみを使い、個々のブラウザを特定します。
ブラウザフィンガープリントはユーザーの同意が不要
WEBサイト上で「このサイトはcookieを使用しています。承認しますか?」といった注意書きを見た事はありませんか?
この様に本来、cookieの使用にはユーザーの同意が必要なのです。
それに対しブラウザフィンガープリントを取得するのに、ユーザーの同意は必要ありません。
これは例えシークレットモードであっても、ブラウザフィンガープリントは取得されます。
ブラウザフィンガープリントのデメリット
ユーザーがブラウザや端末を変更するとハッシュ値が変わる
ブラウザフィンガープリントはブラウザや端末情報のみを利用して、ハッシュ値を出しています。
そのためブラウザや端末が変わると、同じユーザーであっても同一ユーザーだと特定できなくなります。
例えば、Aさんが自宅のノートPCを買い替えたとしましょう。
買い替え前と買い替え後のどちらもユーザーはAさんです。
しかし元データのブラウザ情報は当然変わりますから、暗号化されたハッシュ値が変わり同一ユーザーとは認識されない訳です。
ブラウザ情報は常に一定ではない
ブラウザフィンガープリントはブラウザや端末情報のみを利用するため、その環境の変化に対応できません。
最近のブラウザは頻繁にアップデートされる場合があります。
さらに設定やアプリ・プラグインが追加される事によっても値は変わります。
ちょっとした変更でもユーザー特定が難しくなるのが、ブラウザフィンガープリントの難点でしょう。
フィンガープリント対策が強化されつつある
実はcookie規制と同様、フィンガープリント対策も強化されつつあります。
ブラウザフィンガープリントも「プライバシー侵害」の懸念が示されているからです。
ブラウザフィンガープリントでブラウザ情報を特定される事=「個人情報が盗まれている」=「Cookieと同じ」という考え方です。
特にブラウザフィンガープリントが不安視される点
ユーザーの同意がなくても取得できる
シークレットモードでも取得できる
各社の対応
対策強化の一環として、Apple社はフィンガープリント作成防止機能を実装しています。
フィンガープリントの各情報群を「簡略化表示」させ、ユーザー特定を難しくする工夫です。
Googleでも先日「プライバシーバジェットAPI」の発表がありました。
フィンガープリントの情報群に対し、アクセスできる1回の量に上限を設けるというものです。
まとめ
サードパーティクッキーの規制を受け、代替策としてブラウザフィンガープリントが台頭してきているのは確かです。
オープンソースライブラリ「FingerPrint2」を使用すれば、比較的容易にブラウザフィンガープリントを実装する事もできる様になっています。
しかしこのブラウザフィンガープリントも、プライバシー侵害による制限対象となる可能性があります。
ブラウザ情報の組み合わせがユーザー個人の特定となるのは少し無理があるとは思いますが。
サンドボックス提案
広告配信については、集めた情報で個人を特定せず、あくまでグループ化してその中で配信を展開していく方向になってきている様です。
例えば「Aさんにはこの広告」として広告展開するのが良くない訳ですよね。
そこでユーザーを特定せずグループ化して扱うのが「サンドボックス」です。
プライバシーは保護しつつ、適切にリーチする
Aさんはこのグループ・Bさんはこのグループ、というようにまずユーザーをタイプ別にグループ分類します。
その分類されたグループのタイプにマッチする様な広告を配信していくスタイルです。
グループ分けする事によりユーザー特定やプライバシーは保護しつつ、関心のあるユーザーに広告を出す事ができる訳です。