IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ シマンテック コーポレーションの特許一覧

特許7570494ユーザプライバシーを強化するためのシステム及び方法
<>
  • 特許-ユーザプライバシーを強化するためのシステム及び方法 図1
  • 特許-ユーザプライバシーを強化するためのシステム及び方法 図2
  • 特許-ユーザプライバシーを強化するためのシステム及び方法 図3
  • 特許-ユーザプライバシーを強化するためのシステム及び方法 図4
  • 特許-ユーザプライバシーを強化するためのシステム及び方法 図5
  • 特許-ユーザプライバシーを強化するためのシステム及び方法 図6
  • 特許-ユーザプライバシーを強化するためのシステム及び方法 図7
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-10-10
(45)【発行日】2024-10-21
(54)【発明の名称】ユーザプライバシーを強化するためのシステム及び方法
(51)【国際特許分類】
   G06F 21/62 20130101AFI20241011BHJP
   H04L 67/02 20220101ALI20241011BHJP
   H04L 67/565 20220101ALI20241011BHJP
【FI】
G06F21/62 363
H04L67/02
H04L67/565
【請求項の数】 10
(21)【出願番号】P 2023505411
(86)(22)【出願日】2021-08-27
(65)【公表番号】
(43)【公表日】2023-08-21
(86)【国際出願番号】 US2021048089
(87)【国際公開番号】W WO2022047253
(87)【国際公開日】2022-03-03
【審査請求日】2023-01-25
(31)【優先権主張番号】17/006,870
(32)【優先日】2020-08-30
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】501113353
【氏名又は名称】ジェン デジタル インコーポレイテッド
(74)【代理人】
【識別番号】100147485
【弁理士】
【氏名又は名称】杉村 憲司
(72)【発明者】
【氏名】リー、チン
(72)【発明者】
【氏名】チボロフスキ、クリス
【審査官】三森 雄介
(56)【参考文献】
【文献】米国特許出願公開第2013/0212465(US,A1)
【文献】特表2009-501392(JP,A)
【文献】桐生 直輝 Naoki KIRYU,Web Workersを用いた演算処理性能の差によるCPUコア数の推定 Estimation of Number of CPU Cores Using with Web Workers,CSS2014 コンピュータセキュリティシンポジウム2014 論文集 合同開催 マルウェア対策研究人材育成ワークショップ2014 情報処理学会シンポジウムシリーズ Vol.2014 No.2 [CD-ROM] ,日本,一般社団法人情報処理学会 コンピュータセキュリティ研究会,2014年10月15日,第2014巻,p.386-393
【文献】芳賀 夢久 Yumehisa Haga,Canvas Fingerprintingを用いたWebトラッキングの検証と実態調査 A Large-scale Study of the Canvas Fingerprinting and Its Implications,CSS2015 コンピュータセキュリティシンポジウム2015 論文集 合同開催 マルウェア対策研究人材育成ワークショップ2015 プライバシーワークショップ2015 情報処理学会シンポジウムシリーズ Vol.2015 No.3 [CD-ROM] ,日本,一般社団法人情報処理学会 コンピュータセキュリティ研究会 セキュリティ心理学とトラスト研究会,2015年10月14日,第2015巻,p.686-693
(58)【調査した分野】(Int.Cl.,DB名)
G06F 12/14
G06F 21/00-21/88
H04L 51/00-51/58
H04L 67/00-67/75
(57)【特許請求の範囲】
【請求項1】
ユーザプライバシーを強化するためのコンピュータ実装方法であって、前記方法の少なくとも一部分が、少なくとも1つのプロセッサを備えるコンピューティングデバイスによって実施され、前記方法が
プライバシー保護ネットワークプロキシによって、クライアントデバイスとサーバデバイスとの間のネットワークトラフィックを傍受することであって、前記クライアントデバイスは、前記プライバシー保護ネットワークプロキシを介したブラウザフィンガープリンティングを抑制するネットワークベースのプライバシーソリューションによって保護されている、ことと、
前記プライバシー保護ネットワークプロキシにおいて、前記クライアントデバイス上でブラウザフィンガープリンティングを実行するためのブラウザフィンガープリンティングサービスによる試みを前記ネットワークトラフィックが示すことを検出することと、
前記プライバシー保護ネットワークプロキシにおいて、ブラウザフィンガープリンティングを実行するための前記試みの前記検出に基づいて、前記ブラウザフィンガープリンティングサービスによって実行されるブラウザフィンガープリンティングが少なくとも部分的に抑制されるように、前記傍受されたネットワークトラフィックを修正することと、
を含み、
前記傍受されたネットワークトラフィックを修正することは、前記クライアントデバイスに向けられたネットワークペイロードにスクリプトを注入することを含み、前記スクリプトは、フィンガープリンティング情報を収集するように構成されたアプリケーションプログラミングインターフェースコールをオーバーライドするものであり、
前記クライアントデバイス上でブラウザフィンガープリンティングを実行するための前記ブラウザフィンガープリンティングサービスによる前記試みを前記ネットワークトラフィックが示すことを検出することは、ブラウザフィンガープリンティングデータを収集することを実質的に対象とするものとして以前に分類されたネットワークロケーションにおいて前記クライアントデバイスが前記ブラウザフィンガープリンティングサービスにデータをアップロードしようと試みていることを検出することを含み、又は
前記クライアントデバイスと前記サーバデバイスとの間の前記ネットワークトラフィックを傍受することは、ハイパーテキスト転送プロトコルプロキシを介して前記ネットワークトラフィックを傍受することを含む、コンピュータ実装方法。
【請求項2】
前記ネットワークロケーションは、前記ブラウザフィンガープリンティングサービスのためのドメインを含む、請求項1に記載のコンピュータ実装方法。
【請求項3】
前記ネットワークロケーションは、ブラウザフィンガープリンティングデータを収集することを実質的に対象とするものとして分類されるネットワークロケーションのクラウドソーシングされたリスト上に列挙される、請求項1に記載のコンピュータ実装方法。
【請求項4】
前記スクリプトは、キャンバスフィンガープリントが毎回変化することを保証する、請求項1に記載のコンピュータ実装方法。
【請求項5】
前記ネットワークペイロードは、ハイパーテキストマークアップ言語ペイロードを含む、請求項1に記載のコンピュータ実装方法。
【請求項6】
前記ブラウザフィンガープリンティングサービスによって実行されるフィンガープリンティングを抑制することは、ブラウザに依存しない態様で実行される、請求項1に記載のコンピュータ実装方法。
【請求項7】
ユーザプライバシーを強化するためのシステムであって、
プライバシー保護ネットワークプロキシの一部として、クライアントデバイスとサーバデバイスとの間のネットワークトラフィックを傍受する方法であって、前記クライアントデバイスは、前記プライバシー保護ネットワークプロキシを介したブラウザフィンガープリンティングを抑制するネットワークベースのプライバシーソリューションによって保護されている、方法と、
前記プライバシー保護ネットワークプロキシの一部として、前記クライアントデバイス上でブラウザフィンガープリンティングを実行するためのブラウザフィンガープリンティングサービスによる試みを前記ネットワークトラフィックが示すことを検出する、方法と、
前記プライバシー保護ネットワークプロキシにおいて、ブラウザフィンガープリンティングを実行するための前記試みの前記検出に基づいて、前記ブラウザフィンガープリンティングサービスによって実行されるブラウザフィンガープリンティングが少なくとも部分的に抑制されるように、前記傍受されたネットワークトラフィックを修正する、方法と、
前記傍受する方法、前記検出する方法、及び前記修正する方法を実行するように構成された少なくとも1つの物理プロセッサと、を備え、
前記修正する方法は、前記クライアントデバイスに向けられたネットワークペイロードにスクリプトを注入することによって、前記傍受されたネットワークトラフィックを修正し、前記スクリプトは、フィンガープリンティング情報を収集するように構成されたアプリケーションプログラミングインターフェースコールをオーバーライドするものであり、
前記検出する方法は、ブラウザフィンガープリンティングデータを収集することを実質的に対象とするものとして以前に分類されたネットワークロケーションにおいて前記クライアントデバイスが前記ブラウザフィンガープリンティングサービスにデータをアップロードしようと試みていることを検出することによって、前記クライアントデバイス上でブラウザフィンガープリンティングを実行するための前記ブラウザフィンガープリンティングサービスによる前記試みを前記ネットワークトラフィックが示すことを検出し、又は
前記傍受する方法は、少なくとも部分的に、ハイパーテキスト転送プロトコルプロキシを介して前記ネットワークトラフィックを傍受することによって、前記クライアントデバイスと前記サーバデバイスとの間の前記ネットワークトラフィックを傍受する、システム。
【請求項8】
前記ネットワークロケーションは、前記ブラウザフィンガープリンティングサービスのためのドメインを含む、請求項に記載のシステム。
【請求項9】
前記ネットワークロケーションが、ブラウザフィンガープリンティングデータを収集することを実質的に対象とするものとして分類されるネットワークロケーションのクラウドソーシングされたリスト上に列挙される、請求項に記載のシステム。
【請求項10】
1つ以上のコンピュータ可読命令を含む非一時的コンピュータ可読媒体であって、前記命令は、コンピューティングデバイスの少なくとも1つのプロセッサによって実行されると、前記コンピューティングデバイスに、
プライバシー保護ネットワークプロキシによって、クライアントデバイスとサーバデバイスとの間のネットワークトラフィックを傍受することであって、前記クライアントデバイスは、前記プライバシー保護ネットワークプロキシを介したブラウザフィンガープリンティングを抑制するネットワークベースのプライバシーソリューションによって保護されている、ことと、
前記プライバシー保護ネットワークプロキシにおいて、前記クライアントデバイス上でブラウザフィンガープリンティングを実行するためのブラウザフィンガープリンティングサービスによる試みを前記ネットワークトラフィックが示すことを検出することと、
前記プライバシー保護ネットワークプロキシにおいて、ブラウザフィンガープリンティングを実行するための前記試みの前記検出に基づいて、前記ブラウザフィンガープリンティングサービスによって実行されるブラウザフィンガープリンティングが少なくとも部分的に抑制されるように、前記傍受されたネットワークトラフィックを修正することと、を行わせ、
前記傍受されたネットワークトラフィックを修正することは、前記クライアントデバイスに向けられたネットワークペイロードにスクリプトを注入することを含み、前記スクリプトは、フィンガープリンティング情報を収集するように構成されたアプリケーションプログラミングインターフェースコールをオーバーライドするものであり、
前記クライアントデバイス上でブラウザフィンガープリンティングを実行するための前記ブラウザフィンガープリンティングサービスによる前記試みを前記ネットワークトラフィックが示すことを検出することは、ブラウザフィンガープリンティングデータを収集することを実質的に対象とするものとして以前に分類されたネットワークロケーションにおいて前記クライアントデバイスが前記ブラウザフィンガープリンティングサービスにデータをアップロードしようと試みていることを検出することを含み、又は
前記クライアントデバイスと前記サーバデバイスとの間の前記ネットワークトラフィックを傍受することは、ハイパーテキスト転送プロトコルプロキシを介して前記ネットワークトラフィックを傍受することを含む、非一時的コンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本出願は、「SYSTEMS AND METHODS FOR ENHANCING USER PRIVACY」と題され、2020年8月30日に出願された米国非仮出願第17/006,870号の優先権を主張し、その内容全体が参照により本明細書に組み込まれる。
【背景技術】
【0002】
ブラウザフィンガープリンティングは、クッキーを使用せずにインターネット上のユーザを識別及び追跡するために、クライアントブラウザ及びオペレーティングシステム上の複数のデータソースを利用する。ユーザがプライベートモード又はインコグニトモードでブラウザを実行する場合であっても、ウェブ分析会社は、ユーザのブラウザ及びオペレーティングシステム上の固定された設定をプロファイリングすることによって、ウェブ全体にわたってユーザをかなりの程度まで依然として追跡することができる。このデータは複数のソースから収集することができ、各ソースは様々な程度の一意性を提供することができる。これらの情報項目を導出するための主なベクトルは、JavaScript(登録商標)である。しかし、ハイパーテキスト転送プロトコル(Hypertext Transfer Protocol、HTTP)コンテンツ、TCP/IPスタック、及びフラッシュプレーヤから追加情報を得ることができる。明らかに、クッキーサポートなどの項目は、わずかな一意性しか提供しないが、キャンバスフィンガープリント、ユーザエージェント、及びサポートされるフォントのリストなどの項目は、実際には、ユーザを識別するために使用することができる大量のエントロピーを提供することができる。この情報収集及び相関は、ユーザプライバシーにとって重大な課題である。したがって、本開示は、ユーザプライバシーを強化するためのシステム及び方法に対する必要性を識別し、それに対処する。
【発明の概要】
【0003】
より詳細に後述するように、本開示は、ユーザプライバシーを強化するための様々なシステム及び方法を説明する。一例では、ユーザプライバシーを強化するためのコンピュータ実装方法は、(i)プライバシー保護ネットワークプロキシによって、クライアントデバイスとサーバデバイスとの間のネットワークトラフィックを傍受することであって、クライアントデバイスは、プライバシー保護ネットワークプロキシを通してブラウザフィンガープリンティングを抑制するネットワークベースのプライバシーソリューションによって保護される、ことと、(ii)プライバシー保護ネットワークプロキシにおいて、ネットワークトラフィックが、クライアントデバイス上でブラウザフィンガープリンティングを実行するためのブラウザフィンガープリンティングサービスによる試みを示すことを検出することと、(iii)プライバシー保護ネットワークプロキシにおいて、ブラウザフィンガープリンティングを実行するための試みの検出に基づいて、ブラウザフィンガープリンティングサービスによって実行されるブラウザフィンガープリンティングが少なくとも部分的に抑制されるように、傍受されたネットワークトラフィックを修正することとを含み得る。
【0004】
いくつかの例では、ネットワークトラフィックが、クライアントデバイス上でブラウザフィンガープリンティングを実行するためのブラウザフィンガープリンティングサービスによる試みを示すことを検出することは、ブラウザフィンガープリンティングデータを収集することを実質的に対象とするものとして以前に分類されたネットワークロケーションにおいてクライアントデバイスがブラウザフィンガープリンティングサービスにデータをアップロードしようと試みていることを検出することを含み得る。一実施形態では、ネットワークロケーションは、ブラウザフィンガープリンティングサービスのためのドメインを含み得る。一実施形態では、ネットワークロケーションは、ブラウザフィンガープリンティングデータを収集することを実質的に対象とするものとして分類されるネットワークロケーションのクラウドソーシングされたリスト上に列挙される。
【0005】
いくつかの例では、クライアントデバイスとサーバデバイスとの間のネットワークトラフィックを傍受することは、ハイパーテキスト転送プロトコルプロキシを通してネットワークトラフィックを傍受することを含み得る。いくつかの例では、傍受されたネットワークトラフィックを修正することは、クライアントデバイスに向けられたネットワークペイロードにスクリプトを注入することを含み得る。一実施形態では、ネットワークペイロードとしては、ハイパーテキストマークアップ言語(Hypertext Markup Language、HTML)ペイロードが挙げられ得る。一実施形態において、スクリプトは、フィンガープリンティング情報を収集するように構成されたアプリケーションプログラミングインターフェースコールをオーバーライドする。
【0006】
いくつかの例では、傍受されたネットワークトラフィックを修正することは、クライアントデバイスがサーバデバイスにアップロードしようと試みているフィンガープリンティングオブジェクトを難読化することを含み得る。一実施形態では、ブラウザフィンガープリンティングサービスによって実行されるフィンガープリンティングを抑制することは、ブラウザに依存しない態様で実行される。
【0007】
一実施形態では、上述の方法を実装するためのシステムは、(i)プライバシー保護ネットワークプロキシの一部として、クライアントデバイスとサーバデバイスとの間のネットワークトラフィックを傍受する、メモリに記憶された傍受モジュールであって、クライアントデバイスは、プライバシー保護ネットワークプロキシを通してブラウザフィンガープリンティングを抑制するネットワークベースのプライバシーソリューションによって保護される、傍受モジュールと、(ii)プライバシー保護ネットワークプロキシの一部として、ネットワークトラフィックが、クライアントデバイス上でブラウザフィンガープリンティングを実行するためのブラウザフィンガープリンティングサービスによる試みを示すことを検出する、メモリに記憶された検出モジュールと、(iii)ブラウザフィンガープリンティングサービスによって実行されるブラウザフィンガープリンティングが少なくとも部分的に抑制されるように、プライバシー保護ネットワークプロキシにおいて、傍受されたネットワークトラフィックを、ブラウザフィンガープリンティングを実行するための試みの検出に基づいて修正する、メモリに記憶された修正モジュールと、(iv)傍受モジュール、検出モジュール、及び修正モジュールを実行するように構成された少なくとも1つの物理プロセッサとを含み得る。いくつかの例では、検出モジュールは、複数の異なる独立したブラウザフィンガープリンティングスクリプトにおいて以前に検出された共通の技術的DNAのインスタンスを検出モジュールが検出することに少なくとも部分的に基づいて、ネットワークトラフィックが、ブラウザフィンガープリンティングを実行するためのブラウザフィンガープリンティングサービスによる試みを示すことを検出する。
【0008】
いくつかの実施例では、上述の方法は、非一時的コンピュータ可読媒体上のコンピュータ可読命令としてコード化されてもよい。例えば、コンピュータ可読媒体は、コンピューティングデバイスの少なくとも1つのプロセッサによって実行されると、コンピューティングデバイスに、(i)プライバシー保護ネットワークプロキシによって、クライアントデバイスとサーバデバイスとの間のネットワークトラフィックを傍受させ、クライアントデバイスは、プライバシー保護ネットワークプロキシを通じてブラウザフィンガープリンティングを抑制するネットワークベースのプライバシーソリューションによって保護され、(ii)プライバシー保護ネットワークプロキシにおいて、ネットワークトラフィックがクライアントデバイス上でブラウザフィンガープリンティングを実行するためのブラウザフィンガープリンティングサービスによる試みを示すことを検出させ、(iii)プライバシー保護ネットワークプロキシにおいて、ブラウザフィンガープリンティングを実行するための試みの検出に基づいて、ブラウザフィンガープリンティングサービスによって実行されるブラウザフィンガープリンティングが少なくとも部分的に抑制されるように、傍受されたネットワークトラフィックを修正させ得る1つ以上のコンピュータ実行可能命令を含み得る。
【0009】
本明細書に記載される実施形態のいずれかによる特徴は、本明細書に記載される一般原理にしたがって、互いに組み合わせて使用され得る。これら及び他の実施形態、特徴、及び利点は、添付の図面及び特許請求の範囲と併せて以下の発明を実施するための形態を読むことによって更に十分に理解されるだろう。
【図面の簡単な説明】
【0010】
添付の図面は、いくつかの例示的な実施形態を図示するものであり、本明細書の一部である。以下の説明と併せて、これらの図面は、本開示の様々な原理を実証及び説明する。
【0011】
図1】ユーザプライバシーを強化するための例示的なシステムのブロック図である。
図2】ユーザプライバシーを強化するための追加の例示的なシステムのブロック図である。
図3】ユーザプライバシーを強化するための例示的な方法のフロー図である。
図4】ユーザプライバシーを強化するための例示的なワークフローを示す。
図5】ユーザプライバシーを強化するための例示的な方法に対応する3つのタイミング図のセットを示す。
図6】本明細書に記載及び/又は図示される実施形態のうちの1つ以上を実装できる例示的なコンピューティングシステムのブロック図である。
図7】本明細書に記載及び/又は図示される実施形態のうちの1つ以上を実装できる例示的なコンピューティングネットワークのブロック図である。
【0012】
図面を通して、同一の参照符号及び記述は、必ずしも同一ではないが、類似の要素を示す。本明細書で説明される例示的な実施形態は、様々な修正形態及び代替的な形態が可能であるが、特定の実施形態が例として図面に示されており、本明細書に詳細に記載される。しかしながら、本明細書に記載される例示的な実施形態は、開示される特定の形態に限定されることを意図しない。むしろ、本開示は、添付の特許請求の範囲の範囲内にある全ての修正形態、等価形態、及び代替形態を網羅する。
【発明を実施するための形態】
【0013】
本開示は、一般に、ユーザプライバシーを強化するためのシステム及び方法を対象とする。開示される主題は、プライバシー保護ソリューションをクライアントデバイスからプロキシデバイスに再配置することによって、関連技術を改善することができる。プライバシー保護ソリューションをプロキシデバイスに再配置することは、ユーザがクライアントデバイスにおいてそのようなソリューションを構成するための面倒な要件を排除し得る。再配置プロセスはまた、別個のローカルプライバシー保護ソリューションを用いて各クライアントデバイスを構成するのではなく、複数のクライアントデバイスが同じプロキシデバイスによって保護されることを可能にし得る。開示される主題はまた、フィンガープリンティングプロセスを難読化するための新規かつ発明的な技法を活用することによって、関連技術を改善することができる。特に、これらの技術は、クライアントデバイスに向けられ、フィンガープリンティング情報を収集するように構成されたウェブコンテンツを、実際のフィンガープリンティング情報が歪められるか又は無価値になるように修正することを含み得る。これらの技法はまた、クライアントデバイスからフィンガープリンティングサービスに送信されるフィンガープリンティングオブジェクトを修正し、それによってこのオブジェクトを歪め、フィンガープリンティングサービスがフィンガープリンティング動作を正常に実行することを妨げることを伴い得る。
【0014】
図1図2を参照すると、以下は、ユーザプライバシーを強化するための例示的なシステムの詳細な説明を提供する。対応するコンピュータ実装方法の詳細な説明についても、図3図5に関連して提供される。更に、本明細書に記載される実施形態のうちの1つ以上を実装することができる例示的なコンピューティングシステム及びネットワークアーキテクチャの詳細な説明が、それぞれ、図6及び図7に関連して提供される。
【0015】
図1は、ユーザプライバシーを強化するための例示的なシステム100のブロック図である。この図に示されるように、例示的なシステム100は、1つ以上のタスクを実施するための1つ以上のモジュール102を含み得る。例えば、より詳細に以下で説明されるように、例示的なシステム100は、プライバシー保護ネットワークプロキシの一部として、クライアントデバイスとサーバデバイスとの間のネットワークトラフィック122を傍受する傍受モジュール104を含んでもよく、クライアントデバイスは、プライバシー保護ネットワークプロキシを介したブラウザフィンガープリンティングを抑制するネットワークベースのプライバシーソリューションによって保護される。例示的なシステム100は、プライバシー保護ネットワークプロキシの一部として、ネットワークトラフィック122が、クライアントデバイス上でブラウザフィンガープリンティングを実行するためのブラウザフィンガープリンティングサービスによる試みを示すことを検出する検出モジュール106を更に含み得る。例示的なシステム100はまた、プライバシー保護ネットワークプロキシにおいて、ブラウザフィンガープリンティングを実行するための試みの検出に基づいて、ブラウザフィンガープリンティングサービスによって実行されるブラウザフィンガープリンティングが少なくとも部分的に抑制されるように、傍受されたネットワークトラフィック122を修正する修正モジュール108を含んでもよい。別々の要素として図示されるが、図1のモジュール102のうちの1つ以上は、単一のモジュール又はアプリケーションの部分を表してもよい。
【0016】
特定の実施形態では、図1のモジュール102のうちの1つ以上は、コンピューティングデバイスによって実行されると、コンピューティングデバイスに1つ以上のタスクを実施させ得る、1つ以上のソフトウェアアプリケーション又はプログラムを表し得る。例えば、及びより詳細に後述するように、モジュール102のうちの1つ以上は、図2に示されるデバイス(例えば、コンピューティングデバイス202及び/又はサーバ206)、などの1つ以上のコンピューティングデバイスに記憶され、及びその上で作動するように構成される、モジュールを表してもよい。図1のモジュール102のうちの1つ以上はまた、1つ以上のタスクを実施するように構成された1つ以上の専用コンピュータの全て又は部分を表し得る。
【0017】
図1に示すように、例示的なシステム100はまた、メモリ140などの1つ以上のメモリデバイスも含み得る。メモリ140は、一般に、データ及び/又はコンピュータ可読命令を記憶することができる任意のタイプ又は形態の揮発性又は不揮発性の記憶デバイス又は媒体を表す。一実施例では、メモリ140は、モジュール102のうちの1つ以上を記憶、ロード、及び/又は維持してもよい。メモリ140の例としては、非限定的に、ランダムアクセスメモリ(Random Access Memory、RAM)、読み取り専用メモリ(Read Only Memory、ROM)、フラッシュメモリ、ハードディスクドライブ(Hard Disk Drive、HDD)、ソリッドステートドライブ(Solid-State Drive、SSD)、光ディスクドライブ、キャッシュ、それらのうちの1つ以上の変形形態若しくは組合せ、及び/又は任意の他の好適な記憶メモリが挙げられる。
【0018】
図1に示すように、例示的なシステム100はまた、物理プロセッサ130などの1つ以上の物理プロセッサも含み得る。物理プロセッサ130は、一般に、コンピュータ可読命令を解釈及び/又は実行することができる任意のタイプ又は形態のハードウェア実装処理ユニットを表す。一実施例では、物理プロセッサ130は、メモリ140に記憶されているモジュール102のうちの1つ以上にアクセスし、かつ/又はそれを修正することができる。追加して、又は代替として、物理プロセッサ130は、ユーザプライバシーを強化することを容易にするために、モジュール102のうちの1つ以上を実行し得る。物理プロセッサ130の例としては、非限定的に、マイクロプロセッサ、マイクロコントローラ、中央処理装置(Central Processing Unit、CPU)、ソフトコアプロセッサを実装するフィールドプログラマブルゲートアレイ(Field-Programmable Gate Array、FPGA)、特定用途向け集積回路(Application-Specific Integrated Circuit、ASIC)、それらのうちの1つ以上の部分、それらのうちの1つ以上の変形形態若しくは組合せ、及び/又は任意の他の好適な物理プロセッサが挙げられる。
【0019】
図1の例示的なシステム100は、様々な方法で実装され得る。例えば、例示的なシステム100のうちの全て又は一部分は、図2における例示的なシステム200の部分を表してもよい。図2に示されるように、システム200は、ネットワーク204を介してサーバ206と通信するコンピューティングデバイス202を含んでもよい。一実施例では、モジュール102の機能のうちの全て又は一部分は、コンピューティングデバイス202、サーバ206、及び/又は任意の他の好適なコンピューティングシステムによって実施され得る。より詳細に後述するように、図1によるモジュール102のうちの1つ以上は、コンピューティングデバイス202及び/又はサーバ206のうちの少なくとも1つのプロセッサによって実行されると、コンピューティングデバイス202及び/又はサーバ206がユーザプライバシーを強化することを可能にし得る。
【0020】
例えば、及びより詳細に後述するように、傍受モジュール104は、サーバ206に対応するプライバシー保護ネットワークプロキシの一部として、コンピューティングデバイス202に対応し得るクライアントデバイスとサーバ208に対応し得るサーバデバイスとの間のネットワークトラフィック122を傍受し得る。これらの例では、コンピューティングデバイス202は、サーバ206を介したブラウザフィンガープリンティングを抑制するネットワークベースのプライバシーソリューションによって保護され得る。検出モジュール106は、サーバ206の一部として、ネットワークトラフィック122がコンピューティングデバイス202上でブラウザフィンガープリンティングを実行するためのブラウザフィンガープリンティングサービス250による試みを示すことを検出することができる。修正モジュール108は、サーバ206の一部として、ブラウザフィンガープリンティングを実行するための試みの検出に基づいて、ブラウザフィンガープリンティングサービス250によって実行されるブラウザフィンガープリンティングが少なくとも部分的に抑制されるように、傍受されたネットワークトラフィック122を修正することができる。
【0021】
図2は、モジュール102がサーバ206に対応する典型的なネットワークプロキシデバイス内に配置される実施形態を示す。それにもかかわらず、追加又は代替の例では、検出モジュール106及び/又は修正モジュール108のうちの1つ以上は、サーバ206の代わりに追加の処理を実行することができるサーバ230内に配置され得る。例えば、サーバ230は、サーバ230が、プロキシとしてサーバ206によって提供される機能を効果的に拡張又は補足するように、インターネットコンテンツ適応プロトコルにしたがってサーバ206と通信することができる。これらの例では、サーバ206及びサーバ230のうちの1つ以上は、以下で説明するように、方法300のプライバシー保護ネットワークプロキシに対応し得る。追加して、図2はまた、コンピューティングデバイス202が、ネットワークトラフィック122を生成又は開始するアプリケーションであり得るアプリケーション220をどのように実行し得るかを示す。
【0022】
コンピューティングデバイス202は、一般に、コンピュータ実行可能命令を読み取ることができる任意のタイプ又は形態のコンピューティングデバイスを表す。いくつかの例示的な例では、コンピューティングデバイス202は、例えば、ユーザが家庭環境内で使用するパーソナル又はレクリエーションのモバイルコンピューティングデバイスに対応し得る。コンピューティングデバイス202の追加の例としては、非限定的に、ラップトップ、タブレット、デスクトップ、サーバ、セルラー電話、携帯情報端末(Personal Digital Assistant、PDA)、マルチメディアプレーヤ、埋め込みシステム、ウェアラブルデバイス(例えば、スマートウォッチ、スマートグラスなど)、スマートビークル、スマートパッケージング(例えば、アクティブ又はインテリジェントパッケージング)、ゲーム機、いわゆるモノのインターネットデバイス(例えば、スマート家電など)、それらのうちの1つ以上の変形形態若しくは組合せ、及び/又は他の任意の好適なコンピューティングデバイスが挙げられる。
【0023】
サーバ206は、一般に、図3に関連して以下で説明するように、方法300を実行できる、又は方法300の実行を容易にすることができる、任意のタイプ又は形態のコンピューティングデバイスを表す。サーバ206の追加の例としては、非限定的に、特定のソフトウェアアプリケーションを実行する、並びに/あるいは様々なセキュリティサービス、ウェブサービス、ストレージサービス、及び/又はデータベースサービスを提供するように構成された、セキュリティサーバ、アプリケーションサーバ、ウェブサーバ、ストレージサーバ、及び/又はデータベースサーバが挙げられる。図2では単一のエンティティとして示されているが、サーバ206は、互いに連携して作動及び/又は動作する複数のサーバを含む、かつ/又はそれらを表してもよい。
【0024】
ネットワーク204は、一般に、通信若しくはデータ転送を容易にすることが可能な、任意の媒体又はアーキテクチャを表す。一実施例では、ネットワーク204は、コンピューティングデバイス202とサーバ206との間の通信を容易にすることができる。この実施例では、ネットワーク204は、無線接続及び/又は有線接続を使用して、通信又はデータ転送を容易にしてもよい。ネットワーク204の例としては、非限定的に、イントラネット、広域ネットワーク(Wide Area Network、WAN)、ローカルエリアネットワーク(Local Area Network、LAN)、パーソナルエリアネットワーク(Personal Area Network、PAN)、インターネット、電力線通信(Power Line Communications、PLC)、セルラーネットワーク(例えば、Global System for Mobile Communications(GSM)ネットワーク)、それらのうちの1つ以上の部分、それらのうちの1つ以上の変形形態若しくは組合せ、及び/又は任意の他の好適なネットワークが挙げられる。
【0025】
図3は、ユーザプライバシーを強化するための例示的なコンピュータ実装方法300のフロー図である。図3に示されるステップは、図1のシステム100、図2のシステム200、及び/又はそれらのうちの1つ以上の変形形態若しくは組合せを含む、任意の好適なコンピュータ実行可能コード及び/又はコンピューティングシステムによって実施され得る。一実施例では、図3に示すステップの各々は、その構造が後に例を詳述する複数のサブステップを含む、及び/又はサブステップによって表されるアルゴリズムを表してもよい。
【0026】
図3に示されているように、ステップ302において、本明細書に記載されているシステムのうちの1つ以上は、プライバシー保護ネットワークプロキシの一部として、クライアントデバイスとサーバデバイスとの間のネットワークトラフィックを傍受することができ、クライアントデバイスは、プライバシー保護ネットワークプロキシを介したブラウザフィンガープリンティングを抑制するネットワークベースのプライバシーソリューションによって保護されている。例えば、傍受モジュール104は、サーバ206の一部として、クライアントデバイスとサーバデバイスとの間のネットワークトラフィックを傍受してもよく、クライアントデバイスは、プライバシー保護ネットワークプロキシを介したブラウザフィンガープリンティングを抑制するネットワークベースのプライバシーソリューションによって保護される。
【0027】
本明細書で使用される場合、「プライバシー保護ネットワークプロキシ」という用語は、一般に、対応するユーザのプライバシーを保護するための少なくとも1つの機能項目を提供するように構成されたネットワークプロキシを指す。更に、本明細書で使用される場合、「ネットワークプロキシ」という用語は、一般に、ネットワークセキュリティ及び/又はプライバシー保護の目的のためのポリシーを含む1つ以上のポリシーをネットワークトラフィックに任意選択で適用もしながら、ソースと宛先との間のネットワークトラフィックを傍受又は閲覧することができる中間ネットワークデバイスを指す。
【0028】
本明細書で使用される場合、「ブラウザフィンガープリンティング」という用語は、一般に、クライアントデバイス及び/又は対応するユーザを一意に識別するのを助けるために、クライアントデバイスにおいて実行されるブラウザからの、及び/又はブラウザに関する識別情報を抽出することを指す。更に、本明細書で使用される場合、「ネットワークベースのプライバシーソリューション」という用語は、一般に、ソースクライアントデバイス及び/又はサーバ宛先デバイス内で主に実行されるプライバシーソリューションとは異なり、上記で説明したように、主にネットワークプロキシデバイスを使用してユーザのプライバシーを少なくとも部分的に保護する技術的ソリューションを指す。言い換えれば、ユーザのプライバシーを保護するために使用される機能は、ソースと宛先との間の1つ以上の中間ネットワークノード内に埋め込まれ、それによって、ソースから宛先への対応するネットワークトラフィックに1つ以上のプライバシー保護ポリシーを適用することができる。クライアントベースのプライバシーソリューションとは異なるネットワークベースのプライバシーソリューションの使用は、ユーザがクライアント側プライバシーソリューションをカスタマイズ又は構成するための面倒なプロセスを排除すること、並びに同じ単一のネットワークプロキシデバイスが複数の異なるクライアントデバイスを保護するためのプライバシー保護機能を提供することを可能にすることを含む、関連技術に勝るいくつかの利益を提供し得る。特に、クライアントベースのソリューションは、ブラウザタイプごとに異なり得る(例えば、FireFoxブラウザのためのソリューションは、Internet Explorerブラウザのために作成されたソリューションと完全に同じではない)。これらの異なるクライアントベースのソリューションの有効性も同様に変化する。対照的に、ネットワークベースのソリューションは、エンドユーザがどのブラウザを使用しているかにかかわらず、これらのソリューションが実質的に同じ保護及び利益を提供し得るという意味で、効果的に又は実質的にブラウザに依存しないものであり得る。
【0029】
傍受モジュール104は、様々な方法でステップ302を実施することができる。一般的に言えば、傍受モジュール104は、コンピューティングデバイス202とサーバ208との間のネットワーク経路が、サーバ206が、ネットワークトラフィックが宛先としてのサーバ208への途中で通過するインライン又は中間デバイスに対応するように構成されることによって、少なくとも部分的にネットワークトラフィックを傍受することができる。いくつかの例では、これは、ネットワークトラフィックをサーバ206に送信し、ネットワークトラフィックをサーバ208などの宛先にルーティングするようにコンピューティングデバイス202を単に構成することによって達成され得る。追加して、又は代替として、これは、コンピューティングデバイス202とサーバ208との間のネットワーク経路に沿ってサーバ206を物理的に又は別様に配置することによって達成され得る。サーバ206をコンピューティングデバイス202とサーバ208との間のネットワーク経路に沿った中間ネットワークノードとして配置又は構成することは、サーバ206が、対応するネットワークトラフィックを潜在的に復号すること、及び/又は以下でより詳細に説明するように、セキュリティ固有ポリシー及び/又はプライバシー保護ポリシーを含む1つ以上のポリシーを適用することを可能にし得る。
【0030】
いくつかの例では、傍受モジュール104は、ハイパーテキスト転送プロトコルプロキシを介してネットワークトラフィックを傍受することによって、少なくとも部分的にステップ302を実行することができる。例えば、ハイパーテキスト転送プロトコルプロキシの使用は、ステップ304~306に関連して以下でより詳細に説明するように、図5のワークフロー502及びワークフロー504に対応する実施形態に含まれ得る。
【0031】
図4は、方法300に対応する例示的なワークフロー400を示し、NortonLifeLockなどのセキュリティプロバイダによって提供され得るセキュリティソリューション及び保護のより大きな環境内に示されている。この図に更に示されるように、モバイルデバイスセキュリティ保護製品402は、5G/LTE接続414、ゲートウェイGPRSサポートノード(Gateway GPRS Support Node、GGSN)若しくはパケットデータネットワークゲートウェイ(Packet Data Network Gateway、P-GW)接続416、及び/又は直接接続若しくは仮想プライベートネットワークゲートウェイ接続412を通して、インターネット又は他のネットワークに接続し得る。モバイルデバイスセキュリティ保護製品402は、例えば、NORTON MOBILE SECURITYに対応してもよい。追加して、ホームデバイスセキュリティ保護製品404は、同様に、直接接続又は仮想プライベートネットワークゲートウェイ接続412を通してインターネットに接続し得る。これらの接続を通して1つ以上のコンピューティングデバイスを操作するユーザは、ユーザ関与406に関与してもよく、ネットワークトラフィックは、1つ以上のパートナ又はセキュリティプロバイダアプリケーション408によって生成又は監視されてもよい。アプリケーション408は、アプリケーションプログラミングインターフェースサーバ426によって提供され得るパブリックアプリケーションプログラミングインターフェースサービス410を介してネットワークトラフィックを受信し得る。
【0032】
上で概説した接続を通じて、セキュリティパッケージ430は、対応するユーザに利益を与える及び/又は対応するユーザを保護するためにセキュリティプロバイダによって適用され得る。例えば、セキュリティパッケージ430は、サービス品質サービス418、課金サービス420、及び/又はショートメッセージサービスサービス422を含むモバイルネットワーク事業者サービスとインターフェースし得る。追加して、セキュリティパッケージ430は、マルウェア検出、アドブロッキング、ブラウザフィンガープリンティング難読化、モバイルアプリケーション分類、ボットネットブロッキング、ユニフォームリソースロケータ識別、及び/又はデータ分析を含む、この図に更に示される多数の異なるサービスのうちの1つ以上を適用し得る。これらのサービスのうちの1つ以上は、対応するサービスブレードを通して提供され得る。
【0033】
本出願の文脈において、モジュール102のうちの1つ以上は、図4に示されるブラウザフィンガープリンティング難読化サービスの一部として配置されてもよい。特に、ステップ302において、サーバ206内に配置された傍受モジュール104は、ネットワーク接続412、414、及び/又は416のうちの1つ以上から生じ得るネットワークトラフィック122を傍受し得、その結果、ブラウザフィンガープリンティング難読化が、図4に示される対応するサービスブレードによって実行される。セキュリティパッケージ430はまた、この図に更に示されるように、データレイク424内にセキュリティ関連情報の1つ以上の項目を記憶し得る。ワークフロー400の終わりに、上に列挙したサービスブレードを介して1つ以上のポリシーを適用した後、インターネットへの、及びインターネットからの安全なトラフィックを許可することができる。更に、バックエンドセキュリティモジュールの複数のインスタンスは、常時オンのスケーラビリティを確実にするのに役立ち得る。
【0034】
ステップ304において、本明細書で説明されるシステムのうちの1つ以上は、プライバシー保護ネットワークプロキシにおいて、ネットワークトラフィックが、クライアントデバイス上でブラウザフィンガープリンティングを実行するためのブラウザフィンガープリンティングサービスによる試みを示すことを検出し得る。例えば、検出モジュール106は、サーバ206の一部として、ネットワークトラフィック122が、クライアントデバイス上でブラウザフィンガープリンティングを実行するためのブラウザフィンガープリンティングサービス250による試みを示すことを検出し得る。
【0035】
検出モジュール106は、様々な方法でステップ304を実施することができる。いくつかの例では、検出モジュール106は、ブラウザフィンガープリンティングデータを収集することを実質的に対象とするものとして以前に分類されたネットワークロケーションにおいてクライアントデバイスがブラウザフィンガープリンティングサービスにデータをアップロードしようと試みていることを検出することによって、ネットワークトラフィックが、クライアントデバイス上でブラウザフィンガープリンティングを実行するためのブラウザフィンガープリンティングサービスによる試みを示すことを検出し得る。これらの例では、修正モジュール108は、方法300のステップ306及び図5のワークフロー506のステップ2に関連して以下で更に説明するように、単にアップロードをブロックすることによって、ブラウザフィンガープリンティングサービスにデータをアップロードする試みのこの検出に応答することができる。特に、ワークフロー506のステップ2において、ハイパー転送プロトコルPOST又はGETメッセージ又はクエリがブロックされ得る。これらのメッセージは、ワークフロー506のこの例では、サーバ206に対応し得るハイパーテキスト転送プロトコルプロキシの使用を通じてブロックされ得る。代替として、サーバ206がネットワークペイロードを必ずしも復号しないインラインデバイスに対応するワークフロー506の例では、サーバ208への1つ以上の接続は、トランスポート層セキュリティ(Transport Layer Security、TLS)サーバ名指示(Server Name Indication、SNI)及び/又はSSL証明書コモンネームに基づいてブロックされ得る。更に、暗号化されたネットワークトラフィックの例では、復号手順なしで、ユーザは、対応する接続のブロックから依然として利益を得ることができ、これは、SSL証明書又は他の暗号化証明書内のサブジェクトフィールドを検査することによって実行することができ、それによって、検出モジュール106に、接続のためのユニフォームリソースロケータ又はドメインを示す情報を提供し、これは、上で説明したように、既知のブラウザフィンガープリンティングドメインのリストに対してチェックすることができる。
【0036】
図5は、方法300の様々な実施形態の例示的なワークフロー502、例示的なワークフロー504、及び例示的なワークフロー506を示す。いくつかの例では、これらの異なるワークフローのうちの1つ以上は、方法300の実行において、互いに組み合わされてもよく、又は互いに補足されてもよく、又は他の方法で重複されてもよい。特に、ワークフロー506は、クライアントデバイスが、ブラウザフィンガープリンティングデータを収集することを実質的に対象とするものとして以前に分類されたネットワークロケーションにおけるブラウザフィンガープリンティングサービスにデータをアップロードしようと試みているシナリオにおける例示的なワークフローを示す。ワークフロー506では、ステップ1において、コンピューティングデバイス202は、サーバ208に対応し得るネットワーク宛先にデータを送信し得る。サーバ208への途中で、サーバ206は、コンピューティングデバイス202によって送信された要求を最初に傍受することができる。サーバ206において、検出モジュール106は、ステップ1において送信されたデータがサーバ208に向けられていることを検出し、更に、サーバ208がブラウザフィンガープリンティングサービスを完全に又は実質的に実行するサーバに対応することを検出することができる。検出モジュール106は、SSL又はTLSなどの暗号化プロトコルにしたがってネットワークパケット内で暗号化された1つ以上のペイロードを必ずしも復号することなく、サーバ208のインターネットプロトコルアドレス又は他の識別子を識別する対応するネットワークパケットの1つ以上の外層を単に検査することによって、この検出ステップを実行することができる。一実施形態では、ネットワークロケーションは、ブラウザフィンガープリンティングサービスのためのドメインを含み得る。例えば、いくつかのドメインは、分析及び/又はフィンガープリンティングデータを収集する以外の目的を果たさないことが知られている場合がある。追加して、又は代替として、ネットワークロケーションは、ブラウザフィンガープリンティングデータを収集することを実質的に対象とするものとして分類されるネットワークロケーションのクラウドソーシングされたリスト上に列挙され得る。そのようなクラウドソーシングされたリストは、DISCONNECT又はDUCKDUCKGO TRACKER RADARなどのサービスによって維持及び/又は管理され得る。追加して、又は代替として、これらの公開リストは、NortonLifeLockにいる者などのセキュリティアナリスト又は研究者によって識別されたフィンガープリンティングネットワークロケーションの追加のリストによって補足され得る。したがって、ワークフロー506のステップ2において、修正モジュール108は、ステップ1において送信されたデータの送信を効果的にブロックすることができる。
【0037】
上記に鑑みて、これらの例では、モジュール102は、完全に暗号化されたデータを含むデータのアップロードを、単にデータがブラウザフィンガープリンティングサービスに送信されたという判定に基づいて、必ずしもデータを復号してその内容を見ることなく、効果的にブロックすることができる。それによって、ワークフロー502は、ワークフロー504及びワークフロー506からある意味で区別され得る。なぜなら、これらの追加のワークフローは、以下でより詳細に説明するように、復号されたネットワークトラフィックに1つ以上のポリシーを適用するために、サーバ206における1つ以上の復号手順を含み得るからである。更に、ワークフロー502及びワークフロー504は、単にネットワークトラフィック122をブロックすることとは異なり、ネットワークトラフィック122の実質的な修正を含んでもよく、したがって、以下で説明するように、方法300のステップ306に関連してより顕著に説明される。
【0038】
ステップ306において、本明細書で説明されるシステムのうちの1つ以上は、プライバシー保護ネットワークプロキシにおいて、ブラウザフィンガープリンティングを実行するための試みの検出に基づいて、ブラウザフィンガープリンティングサービスによって実行されるブラウザフィンガープリンティングが少なくとも部分的に抑制されるように、傍受されたネットワークトラフィックを修正してもよい。例えば、修正モジュール108は、サーバ206において、ブラウザフィンガープリンティングを実行するための試みの検出に基づいて、ブラウザフィンガープリンティングサービス250によって実行されるブラウザフィンガープリンティングが少なくとも部分的に抑制されるように、傍受されたネットワークトラフィック122を修正することができる。
【0039】
修正モジュール108は、様々な方法でステップ306を実施することができる。いくつかの例では、修正モジュール108は、クライアントデバイスに向けられたネットワークペイロードにスクリプトを注入することによって、傍受されたネットワークトラフィックを修正することができる。いくつかの例では、スクリプトは、JavaScript(登録商標)コードに対応し得、このJavaScript(登録商標)コードは、ハイパーテキストマークアップ言語ペイロード内に注入され得る。図5に戻ると、ワークフロー502は、修正モジュール108が傍受されたネットワークトラフィックを修正し得るシナリオを示す。特に、ワークフロー502は、ステップ1から開始してもよく、それによって、コンピューティングデバイス202は、サーバ208などのウェブサーバからいくつかのウェブコンテンツを要求してもよい。ステップ2において、サーバ206は、プロキシとして、サーバ208からのウェブコンテンツに対する要求を転送することができる。ステップ3において、サーバ208は、コンピューティングデバイス202に向けられたウェブコンテンツを送信することによって要求を満たすことができる。それにもかかわらず、コンピューティングデバイス202に到着する前に、サーバ208から送信されたウェブコンテンツは、サーバ206によって傍受され得る。したがって、ワークフロー502のステップ3の後、サーバ206における修正モジュール108は、サーバ208から受信したウェブコンテンツを効果的に修正することができる。例えば、修正モジュール108は、コンピューティングデバイス202に向けられたネットワークペイロード又はウェブコンテンツにスクリプトを注入することができる。いくつかの例では、ネットワークペイロードは、ハイパーテキストマークアップ言語ペイロード(例えば、ウェブコンテンツに対応する)を含み得る。追加して又は代替として、いくつかの例では、スクリプトは、フィンガープリンティング情報を収集するように構成されたアプリケーションプログラミングインターフェースコールをオーバーライドする。
【0040】
単純なオーバーライドの複数の例が、修正モジュール108によって実装され得る。例えば、修正モジュール108は、キャンバス機能(例えば、toDataUrl()キャンバス機能)をオーバーライドすることができる。修正モジュール108は、これらの例では、キャンバスフィンガープリントを任意選択的にランダム化し、かつ/又はキャンバスフィンガープリントを他の方法で歪ませることができる。追加して、又は代替として、修正モジュール108は、対応する次元がわずかにランダム化され、及び/又は丸められるように、ブラウザの画面オブジェクトを微調整又は変更し得る。
【0041】
いくつかの例では、修正モジュール108は、クライアントデバイスがサーバデバイスにアップロードしようと試みているフィンガープリンティングオブジェクトを難読化することによって、傍受されたネットワークトラフィックを修正することができる。ワークフロー504は、この実施形態に対応し得るシナリオを示す。ワークフロー504のステップ1及びステップ2は、ワークフロー502のステップ1及びステップ2と並行してもよく、これらのステップは、コンピューティングデバイス202が、サーバ208などのウェブサーバからウェブコンテンツのアイテムをどのように要求し得るかを示し得る。同様に、ワークフロー504のステップ3及びステップ4は、ウェブコンテンツがサーバ206によってコンピューティングデバイス202に転送されるという意味で、ワークフロー502のステップ3及びステップ4に類似し得る。それにもかかわらず、ワークフロー504の例では、修正モジュール108は、任意選択で、ステップ3及びステップ4で送信されたウェブコンテンツの修正を省略することができる。代わりに、修正モジュール108は、ウェブコンテンツが、コンピューティングデバイス202からブラウザフィンガープリンティング情報を予測可能に抽出する1つ以上の機能、スクリプト、及び/又は特徴を含む場合であっても、このウェブコンテンツがコンピューティングデバイス202に送信されることを可能にすることができる。したがって、修正モジュール108は、このウェブコンテンツがブラウザフィンガープリンティング情報の1つ以上の項目を成功裏に抽出することを期待することができ、ブラウザフィンガープリンティング情報は、フィンガープリンティングオブジェクトとしてステップ5で送信され得る。セキュリティ分析者(例えば、NortonLifeLockにいる)による調査は、そのようなフィンガープリンティングオブジェクトを生成するために30以上の異なる第3者のブラウザフィンガープリンティング技術が存在し得ることを確立している。更に、これらの異なるスクリプトに基づくブラウザフィンガープリンティングサービスは、何千ものウェブサイトに販売され得る。更に、これらのスクリプトの多くは、共通の技術的DNAを共有し、それによって、検出モジュール106は、傍受モジュール104によって傍受されたときにそれらを識別することができる。本明細書で使用される場合、「共通の技術的DNA」という用語は、複数の異なる独立したブラウザフィンガープリンティングサービスにおいて本質的に同じであると以前に(すなわち、方法300の実行前に)見出されたものとして分類されたコーディングコンテンツを指す。これらのスクリプトは、通常、ハイパーテキスト転送プロトコルGETクエリ文字列(例えば、GETメッセージがユニフォームリソースロケータクエリ文字列内にブラウザフィンガープリンティングを含む場合)及び/又はハイパーテキスト転送プロトコルPOSTメッセージ(例えば、テキストのアイテム又はJavaScript(登録商標)Object Notation(JSON)ドキュメントを含む)のいずれかを使用してフィンガープリンティングオブジェクトをアップロードする。したがって、これらの例では、サーバ206などのハイパーテキスト転送プロトコルプロキシは、ファクタの組合せに基づいてこれらのアップロードを識別することができ、次いで、修正モジュール108は、フィンガープリントを難読化するためにペイロードを修正することができる。識別要素は、メソッド、ホストドメイン、パス、及び/又はクエリ文字列を含むことができる。更に、ハイパーテキスト転送プロトコルプロキシの使用は、ネットワークトラフィックを効果的に復号して、ユニフォームリソースロケータドメイン、対応するメソッド、及び/又はクエリ文字列が存在するかどうかを決定することができる。フィンガープリントユーザに知られているドメインの場合、特に、要求がPOSTメソッド又はGETクエリ文字列を介してデータを抽出している場合、要求をブロックすることができる。
【0042】
それにもかかわらず、ワークフロー504に更に示されるように、ステップ5において送信されたフィンガープリンティングオブジェクトは、サーバ206によって傍受されてもよく、修正モジュール108は、コンピューティングデバイス202及び/又は対応するユーザを一意に識別することに関してその値を低減又は排除するために、フィンガープリンティングオブジェクトを効果的に修正又は歪めてもよい。ステップ5におけるアップロードは、ハイパーテキスト転送プロトコルPOST要求を送信することによって実行されてもよい。
【0043】
ステップ5の後の修正モジュール108による修正は、比較的軽微及び/又は非常に実質的であり得、それにもかかわらず、比較的軽微な修正であっても、コンピューティングデバイス202によって送信されるフィンガープリンティングオブジェクトのフィンガープリンティング値を効果的に無効にし得る。ステップ6において、修正モジュール108は、元の修正されていないフィンガープリンティングオブジェクトを転送するのではなく、歪んだフィンガープリンティングオブジェクトを転送することができ、その結果、サーバ208は、上で説明したように、ブラウザフィンガープリンティングの観点から価値がないことが証明され得る歪んだフィンガープリンティングオブジェクトを受信する。
【0044】
ワークフロー504のステップ5の後に修正モジュール108によって修正されたフィンガープリンティングオブジェクトの例示的な例は、キャンバスフィンガープリント、フォントリスト、画面寸法、ユーザエージェント画面、プラグインリスト、webGLフィンガープリント、及び/又はAudioContextフィンガープリントを含み得る。キャンバスフィンガープリントは、ハイパーテキストマークアップ言語バージョン5キャンバスアプリケーションプログラミングインターフェースを使用し、次いで、追加のアプリケーションプログラミングインターフェースコール(例えば、toDataUrl())を使用して画像の128ビットハッシュを取得する、不可視画像のフィンガープリンティングスクリプト描画を指すことがあり、ここで、このハッシュは全く一意であり得、ハッシュはユーザのブラウザを識別するために使用され得る。フォントリストは、ユーザシステムにインストールされた全てのフォントのリストを指すことができる。近年、Firefox、Tor、及びSafariなどのブラウザは、工場デフォルトフォントを公開するだけで、ブラウザエントロピーのソースとしてのフォントの有効性を軽減するように機能している。画面寸法は、JavaScript(登録商標)スクリーンオブジェクトに記憶され得るスクリーンプロパティを指すことができる。ユーザエージェント文字列は、JavaScript(登録商標)ナビゲータオブジェクトに記憶されたユーザエージェントを参照し得る。プラグインリストは、ユーザによってインストールされたプラグインのリストを指すことができる。非常に多くの場合、期限切れのプラグインはフィンガープリントの一意性を高めることができる。webGLフィンガープリントは、ユーザシステム上のwebGLの能力を精査することによって抽出され得る。AudioContextフィンガープリントは、キャンバスフィンガープリントと同様であり得るが、ユーザシステムオーディオスタックに適用され得る。上に列挙したフィンガープリンティングオブジェクトのうちの1つ以上を成功裏に修正及び/又はブロックするために、対応するフィンガープリンティングオブジェクトが傍受可能であり(例えば、オブジェクトが成功裏に識別及び/又は抽出され得るか?)、安全である(例えば、対応するウェブコンテンツの機能を部分的に又は完全に破壊することなくフィンガープリンティングオブジェクトの修正又はブロックが実行され得るか?)ことが有用であり得る。
【0045】
キャンバスフィンガープリントに関して、スクリプト(例えば、JavaScript(登録商標))を、以下のステップを実行する要求されたウェブページに挿入することができる。スクリプトは、toDataUrl()キャンバスアプリケーションプログラミングインターフェース機能コールを再実装することができる。ここで、これらのアプリケーションプログラミングインターフェースが呼び出されると、機能(例えば、操作())がキャンバスイメージをキャプチャすることができる。追加して、この機能は更に、2つの整数の間(例えば、5と15との間)のランダムシフト値を生成し、ピクセルマップを斜めに進んで10個のピクセルを選択し、これらの10個のピクセルのRGP色値をシフトし、及び/又は元のアプリケーションプログラミングインターフェース機能(例えば、toDataUrl())を呼び出してわずかに修正された画像の値を返すことができる。このスクリプトの使用は、基本的に、キャンバスフィンガープリントが毎回変化することを保証する。上に列挙したブラウザ設定のほとんどを、傍受及び修正することができる。
【0046】
上で概説した主題の様々な実施形態は、様々な方法で関連技術を改善することができる。ブラウザフィンガープリンティングに対する現在の防御の全ては、エンドユーザに、拡張をインストールすること、及び/又は特定のデバイス上にインストールされ得るブラウザの全てに対して構成変更を行うことを要求し得る。対照的に、方法300に対応するネットワークベースのソリューションは、この複雑なソフトウェア構成の全てを排除することができる。追加して、いくつかのモバイルアプリケーションは、方法300に対応するネットワークベースのサービスの使用を通じてユーザのフィンガープリンティングを実行することのみが防止され得る埋め込みブラウザを含む場合があり、これは、これらの埋め込みブラウザが、クライアントデバイス上でローカルにこれらの手順を防止するために、ユーザがブラウザ拡張又は設定をインストール及び/又は構成することを防止し得るという事実に起因する。言い換えれば、方法300に関連して上で概説したネットワークベースのソリューションなしでは、関連技術は、エンドユーザデバイス上のそのような最小量の構成でブラウザフィンガープリントを介したユーザの追跡を抑制することができない(例えば、方法300に関与する唯一のローカルクライアントデバイス構成は、サーバ206を介して方法300の実行をトリガするオンラインサービスにログイン及び/又はサインアップするユーザを含むことができる)。構成することができない埋め込みブラウザを提供するモバイルアプリケーションの場合、方法300に対応するソリューションは、アプリケーションプロバイダがユーザをフィンガープリンティングすることを防ぐことができる唯一のソリューションであり得る。埋め込みウェブブラウザは、WEBKIT及びALAMOFIREなどの実装を通じて提供され得る。モバイルアプリケーションプロバイダは、ユーザが、対応するアプリケーションにログインしている可能性が高いという事実により、フィンガープリント及び対応するアイデンティティを共有することができる。一般的に言えば、方法300に対応するソリューションは、いくつかの例では、セキュリティ保護のクラウド中心展開における重要な技術的柱を構成し得る。
【0047】
図6は、本明細書に記載及び/又は図示される実施形態のうちの1つ以上を実装することができる例示的なコンピューティングシステム610のブロック図である。例えば、コンピューティングシステム610のうちの全て又は一部分は、単独で又は他の要素と組み合わせてのいずれかで、本明細書に記載されるステップのうちの1つ以上(図3に示されるステップのうちの1つ以上など)を実施し得る、かつ/又はそれを実施するための手段であってもよい。コンピューティングシステム610のうちの全て又は一部分はまた、本明細書に記載及び/若しくは図示される任意の他のステップ、方法、若しくはプロセスを実施し得る、かつ/又はそれを実施するための手段であってもよい。
【0048】
コンピューティングシステム610は、コンピュータ可読命令を実行することができる任意のシングル又はマルチプロセッサのコンピューティングデバイス又はシステムを幅広く表す。コンピューティングシステム610の例としては、非限定的に、ワークステーション、ラップトップ、クライアント側端末、サーバ、分散型コンピューティングシステム、ハンドヘルドデバイス、又は他の任意のコンピューティングシステム若しくはデバイスが挙げられる。その最も基本的な構成において、コンピューティングシステム610は、少なくとも1つのプロセッサ614及びシステムメモリ616を含んでもよい。
【0049】
プロセッサ614は、一般に、データを処理すること又は命令を解釈及び実行することができる、任意のタイプ又は形態の物理処理ユニット(例えば、ハードウェア実装型中央処理ユニット)を表す。特定の実施形態において、プロセッサ614は、ソフトウェアアプリケーション又はモジュールから命令を受信してもよい。これらの命令は、プロセッサ614に、本明細書に記載及び/又は図示される例示的な実施形態のうちの1つ以上の機能を実施させてもよい。
【0050】
システムメモリ616は、一般に、データ及び/又は他のコンピュータ可読命令を記憶することができる、任意のタイプ又は形態の揮発性又は不揮発性の記憶デバイス又は媒体を表す。システムメモリ616の例としては、非限定的に、ランダムアクセスメモリ(RAM)、読み取り専用メモリ(ROM)、フラッシュメモリ、又は任意の他の好適なメモリデバイスが挙げられる。必須ではないが、特定の実施形態において、コンピューティングシステム610は、揮発性メモリユニット(例えば、システムメモリ616など)及び不揮発性記憶デバイス(例えば、後に詳述するような一次記憶デバイス632など)の両方を含んでもよい。一実施例では、図1のモジュール102のうちの1つ以上は、システムメモリ616内にロードされ得る。
【0051】
いくつかの実施例では、システムメモリ616は、プロセッサ614による実行のために、オペレーティングシステム640を記憶及び/又はロードし得る。一実施例では、オペレーティングシステム640は、コンピュータハードウェア及びソフトウェアリソースを管理し、かつ/又はコンピューティングシステム610上のコンピュータプログラム及び/若しくはアプリケーションに共通のサービスを提供する、ソフトウェアを含む、かつ/又は表すことができる。オペレーティングシステム640の例としては、非限定的に、LINUX、JUNOS、MICROSOFT WINDOWS、WINDOWS MOBILE、MAC OS、APPLEのIOS、UNIX、GOOGLE CHROME OS、GOOGLEのANDROID、SOLARIS、それらのうちの1つ以上の変形形態、及び/又は任意の他の好適なオペレーティングシステムが挙げられる。
【0052】
特定の実施形態では、例示的なコンピューティングシステム610はまた、プロセッサ614及びシステムメモリ616に加えて、1つ以上の構成要素又は要素も含み得る。例えば、図6に示すように、コンピューティングシステム610は、メモリコントローラ618、入力/出力(Input/Output、I/O)コントローラ620、及び通信インターフェース622を含み得、これらの各々は、通信基盤612を介して相互接続され得る。通信基盤612は、一般に、コンピューティングデバイスの1つ以上の構成要素間の通信を容易にすることができる、任意のタイプ又は形態の基盤を表す。通信基盤612の例としては、非限定的に、通信バス(業界標準アーキテクチャ(Industry Standard Architecture、ISA)、周辺装置相互接続(Peripheral Component Interconnect、PCI)、PCIエクスプレス(PCI Express、PCIe)、又は類似のバスなど)及びネットワークが挙げられる。
【0053】
メモリコントローラ618は、一般に、メモリ若しくはデータを扱うこと、又はコンピューティングシステム610の1つ以上の構成要素間の通信を制御することができる、任意のタイプ又は形態のデバイスを表す。例えば、特定の実施形態では、メモリコントローラ618は、通信基盤612を介して、プロセッサ614、システムメモリ616、及びI/Oコントローラ620の間の通信を制御してもよい。
【0054】
I/Oコントローラ620は、一般に、コンピューティングデバイスの入出力機能を調整及び/又は制御することができる、任意のタイプ又は形態のモジュールを表す。例えば、特定の実施形態では、I/Oコントローラ620は、プロセッサ614、システムメモリ616、通信インターフェース622、ディスプレイアダプタ626、入力インターフェース630、及び記憶インターフェース634などの、コンピューティングシステム610の1つ以上の要素間のデータ転送を制御又は容易にし得る。
【0055】
図6に示すように、コンピューティングシステム610はまた、ディスプレイアダプタ626を介してI/Oコントローラ620に連結された少なくとも1つのディスプレイデバイス624も含み得る。ディスプレイデバイス624は、一般に、ディスプレイアダプタ626によって転送された情報を視覚的に表示することができる、任意のタイプ又は形態のデバイスを表す。同様に、ディスプレイアダプタ626は、一般に、ディスプレイデバイス624上に表示するために通信基盤612から(又は当該技術分野において既知であるように、フレームバッファから)グラフィックス、テキスト、及び他のデータを転送するように構成された任意のタイプ又は形態のデバイスを表す。
【0056】
図6に示すように、例示的なコンピューティングシステム610はまた、入力インターフェース630を介してI/Oコントローラ620に連結された少なくとも1つの入力デバイス628も含み得る。入力デバイス628は、一般に、コンピュータ又は人間のいずれかが生成した入力を例示的なコンピューティングシステム610に提供することができる任意のタイプ又は形態の入力デバイスを表す。入力デバイス628の例としては、非限定的に、キーボード、ポインティングデバイス、音声認識デバイス、それらのうちの1つ以上の変形形態若しくは組合せ、及び/又は任意の他の入力デバイスが挙げられる。
【0057】
追加して、又は代替として、例示的なコンピューティングシステム610は、追加のI/Oデバイスを含み得る。例えば、例示的なコンピューティングシステム610は、I/Oデバイス636を含み得る。この実施例では、I/Oデバイス636は、コンピューティングシステム610との人間の相互作用を容易にするユーザインターフェースを含み得る、かつ/又はそれを表し得る。I/Oデバイス636の例としては、非限定的に、コンピュータマウス、キーボード、モニタ、プリンタ、モデム、カメラ、スキャナ、マイクロフォン、タッチスクリーンデバイス、それらのうちの1つ以上の変形形態若しくは組合せ、及び/又は任意の他のI/Oデバイスが挙げられる。
【0058】
通信インターフェース622は、例示的なコンピューティングシステム610と1つ以上の追加のデバイスとの間の通信を容易にすることができる、任意のタイプ又は形態の通信デバイス又はアダプタを幅広く表す。例えば、特定の実施形態では、通信インターフェース622は、コンピューティングシステム610と、追加のコンピューティングシステムを含むプライベート又はパブリックネットワークとの間の通信を容易にし得る。通信インターフェース622の例としては、非限定的に、有線ネットワークインターフェース(ネットワークインターフェースカードなど)、無線ネットワークインターフェース(無線ネットワークインターフェースカードなど)、モデム、及び任意の他の好適なインターフェースが挙げられる。少なくとも1つの実施形態では、通信インターフェース622は、インターネットなどのネットワークへの直接リンクを介してリモートサーバへの直接接続を提供し得る。通信インターフェース622はまた、例えば、ローカルエリアネットワーク(イーサネット(登録商標)ネットワークなど)、パーソナルエリアネットワーク、電話若しくはケーブルネットワーク、セルラー電話接続、衛星データ接続、又は他の任意の好適な接続を通して、このような接続を間接的に提供してもよい。
【0059】
特定の実施形態では、通信インターフェース622はまた、外部バス又は通信チャネルを介したコンピューティングシステム610と1つ以上の追加のネットワーク又は記憶デバイスとの間の通信を容易にするように構成されたホストアダプタも表し得る。ホストアダプタの例としては、非限定的に、小型コンピュータシステムインターフェース(Small Computer System Interface、SCSI)ホストアダプタ、ユニバーサルシリアルバス(Universal Serial Bus、USB)ホストアダプタ、米国電気電子学会(Institute of Electrical and Electronics Engineers、IEEE)1394ホストアダプタ、アドバンストテクノロジーアタッチメント(Advanced Technology Attachment、ATA)ホストアダプタ、パラレルATA(Parallel ATA、PATAホストアダプタ)、シリアルATA(Serial ATA、SATA)ホストアダプタ、及び外部SATA(External SATA、eSATA)ホストアダプタ、ファイバーチャネルインターフェースアダプタ、イーサネット(登録商標)アダプタなどが挙げられる。通信インターフェース622はまた、コンピューティングシステム610が分散型又はリモートコンピューティングに関与することも可能にし得る。例えば、通信インターフェース622は、実行のために、リモートデバイスから命令を受信してもよく、又はリモートデバイスに命令を送信してもよい。
【0060】
いくつかの実施例では、システムメモリ616は、プロセッサ614による実行のために、ネットワーク通信プログラム638を記憶及び/又はロードし得る。一実施例では、ネットワーク通信プログラム638は、コンピューティングシステム610が、別のコンピューティングシステム(図6には図示せず)とのネットワーク接続642を確立すること、及び/又は通信インターフェース622を介して他のコンピューティングシステムと通信すること、を可能にする、ソフトウェアを含み得る、かつ/又はそれを表し得る。この実施例では、ネットワーク通信プログラム638は、ネットワーク接続642を介して他のコンピューティングシステムに送信される発信トラフィックの流れを指示し得る。追加して、又は代替として、ネットワーク通信プログラム638は、プロセッサ614と関連してネットワーク接続642を介して他のコンピューティングシステムから受信された着信トラフィックの処理を指示し得る。
【0061】
図6にはこのようには示されていないが、ネットワーク通信プログラム638は、代替として、通信インターフェース622に記憶及び/又はロードされ得る。例えば、ネットワーク通信プログラム638は、通信インターフェース622に組み込まれたプロセッサ及び/又は特定用途向け集積回路(ASIC)によって実行されるソフトウェア及び/又はファームウェアの少なくとも一部分を含み得る、かつ/又はそれを表し得る。
【0062】
図6に示すように、例示的なコンピューティングシステム610はまた、記憶インターフェース634を介して通信基盤612に連結された、一次記憶デバイス632及びバックアップ記憶デバイス633も含み得る。記憶デバイス632及び633は、一般に、データ及び/又は他のコンピュータ可読命令を記憶することができる、任意のタイプ又は形態の記憶デバイス又は媒体を表す。例えば、記憶デバイス632及び633は、磁気ディスクドライブ(例えば、いわゆるハードドライブ)、ソリッドステートドライブ、フロッピー(登録商標)ディスクドライブ、磁気テープドライブ、光ディスクドライブ、フラッシュドライブなどであり得る。記憶インターフェース634は、一般に、記憶デバイス632及び633とコンピューティングシステム610の他の構成要素との間でデータを転送するための、任意のタイプ又は形態のインターフェース又はデバイスを表す。
【0063】
特定の実施形態では、記憶デバイス632及び633は、コンピュータソフトウェア、データ、又は他のコンピュータ可読情報を記憶するように構成された取り外し可能な記憶ユニットから読み取る及び/又はそれに書き込むように構成され得る。好適な取り外し可能な記憶ユニットの例としては、非限定的に、フロッピー(登録商標)ディスク、磁気テープ、光ディスク、フラッシュメモリデバイスなどが挙げられる。記憶デバイス632及び633はまた、コンピュータソフトウェア、データ、又は他のコンピュータ可読命令がコンピューティングシステム610内にロードされることを可能にするための、他の同様の構造体又はデバイスを含んでもよい。例えば、記憶デバイス632及び633は、ソフトウェア、データ、又は他のコンピュータ可読情報を読み書きするように構成され得る。記憶デバイス632及び633はまた、コンピューティングシステム610の一部であってもよいし、又は他のインターフェースシステムを介してアクセスされる別個のデバイスであってもよい。
【0064】
他の多くのデバイス又はサブシステムが、コンピューティングシステム610に接続され得る。反対に、図6に示す構成要素及びデバイスの全てが、本明細書に記載及び/又は図示される実施形態を実践するために存在する必要があるわけではない。上で言及したデバイス及びサブシステムはまた、図6に示されるものとは異なる手段で相互接続されてもよい。コンピューティングシステム610はまた、任意の数のソフトウェア、ファームウェア、及び/又はハードウェア構成を用いてもよい。例えば、本明細書で開示する例示的な実施形態のうちの1つ以上は、コンピュータ可読媒体上で、コンピュータプログラム(コンピュータソフトウェア、ソフトウェアアプリケーション、コンピュータ可読命令、又はコンピュータ制御論理とも称される)としてコード化されてもよい。「コンピュータ可読媒体」という用語は、本明細書で使用される場合、一般に、コンピュータ可読命令を記憶又は保有することができる、任意の形態のデバイス、キャリア、又は媒体を指す。コンピュータ可読媒体の例としては、非限定的に、搬送波などの伝送型媒体、並びに磁気記憶媒体(例えば、ハードディスクドライブ、テープドライブ、及びフロッピー(登録商標)ディスク)、光学記憶媒体(例えば、コンパクトディスク(Compact Disk、CD)、デジタルビデオディスク(Digital Video Disk、DVD)、及びブルーレイ(BLU-RAY)ディスク(登録商標))、電子記憶媒体(例えば、ソリッドステートドライブ及びフラッシュメディア)、並びに他の分散システムなどの非一時的媒体が挙げられる。
【0065】
コンピュータプログラムを包含するコンピュータ可読媒体は、コンピューティングシステム610内にロードされ得る。コンピュータ可読媒体に記憶されているコンピュータプログラムのうちの全て又は一部分は、次いで、システムメモリ616内に、並びに/又は記憶デバイス632及び633の様々な部分内に記憶され得る。プロセッサ614によって実行されると、コンピューティングシステム610内にロードされたコンピュータプログラムは、プロセッサ614に、本明細書に記載及び/若しくは図示される例示的な実施形態のうちの1つ以上の機能を実施させることができ、かつ/又はそれらを実施するための手段とすることができる。追加して、又は代替として、本明細書に記載及び/又は図示される例示的な実施形態のうちの1つ以上は、ファームウェア及び/又はハードウェアに実装されてもよい。例えば、コンピューティングシステム610は、本明細書に開示される例示的な実施形態のうちの1つ以上を実装するように適合された特定用途向け集積回路(ASIC)として構成され得る。
【0066】
図7は、クライアントシステム710、720、及び730、並びにサーバ740及び745がネットワーク750に連結され得る例示的なネットワークアーキテクチャ700のブロック図である。上で詳述したように、ネットワークアーキテクチャ700のうちの全て又は一部分は、単独で又は他の要素と組み合わせてのいずれかで、本明細書に開示されるステップのうちの1つ以上(図3に示されるステップのうちの1つ以上など)を実施し得る、かつ/又はそれを実施するための手段であり得る。ネットワークアーキテクチャ700のうちの全て又は一部分はまた、本開示に記載される他のステップ及び特徴を実施するために使用されてもよく、並びに/又はこれらを実施するための手段であってもよい。
【0067】
クライアントシステム710、720、及び730は、一般に、図6の例示的なコンピューティングシステム610など、任意のタイプ又は形態のコンピューティングデバイス又はシステムを表す。同様に、サーバ740及び745は、一般に、様々なデータベースサービスを提供する及び/又は特定のソフトウェアアプリケーションを実行するように構成された、アプリケーションサーバ又はデータベースサーバなどのコンピューティングデバイス又はシステムを表す。ネットワーク750は、一般に、例えば、イントラネット、WAN、LAN、PAN、又はインターネットを含む、任意の電気通信ネットワーク又はコンピュータネットワークを表す。一実施例では、クライアントシステム710、720、及び/若しくは730、並びに/又はサーバ740及び/若しくは745は、図1のシステム100のうちの全て又は一部分を含み得る。
【0068】
図7に示すように、1つ以上の記憶デバイス760(1)~(N)は、サーバ740に直接取り付けられ得る。同様に、1つ以上の記憶デバイス770(1)~(N)は、サーバ745に直接取り付けられ得る。記憶デバイス760(1)~(N)及び記憶デバイス770(1)~(N)は、一般に、データ及び/又は他のコンピュータ可読命令を記憶することができる、任意のタイプ又は形態の記憶デバイス又は媒体を表す。特定の実施形態では、記憶デバイス760(1)~(N)及び記憶デバイス770(1)~(N)は、ネットワークファイルシステム(Network File System、NFS)、サーバメッセージブロック(Server Message Block、SMB)、又は共通インターネットファイルシステム(Common Internet File System、CIFS)など、様々なプロトコルを使用して、サーバ740及び745と通信するように構成された、ネットワーク接続ストレージ(Network-Attached Storage、NAS)デバイスを表してもよい。
【0069】
サーバ740及び745はまた、ストレージエリアネットワーク(Storage Area Network、SAN)ファブリック780に接続されてもよい。SANファブリック780は、一般に、複数の記憶デバイス間の通信を容易にすることができる、任意のタイプ又は形態のコンピュータネットワーク又はアーキテクチャを表す。SANファブリック780は、サーバ740及び745と、複数の記憶デバイス790(1)~(N)及び/又はインテリジェント記憶アレイ795と、の間の通信を容易にし得る。また、SANファブリック780は、デバイス790(1)~(N)及びアレイ795が、クライアントシステム710、720、及び730にローカルに取り付けられたデバイスとして現れるような方式で、ネットワーク750並びにサーバ740及び745を介し、クライアントシステム710、720、及び730と記憶デバイス790(1)~(N)及び/又はインテリジェント記憶アレイ795との間の通信を容易にし得る。記憶デバイス760(1)~(N)及び記憶デバイス770(1)~(N)と同様に、記憶デバイス790(1)~(N)及びインテリジェント記憶アレイ795は、一般に、データ及び/又は他のコンピュータ可読命令を記憶することができる、任意のタイプ又は形態の記憶デバイス又は媒体を表す。
【0070】
特定の実施形態では、及び図6の例示的なコンピューティングシステム610を参照すると、図6の通信インターフェース622などの通信インターフェースは、各クライアントシステム710、720、及び730とネットワーク750との間の接続性を提供するために使用され得る。クライアントシステム710、720、及び730は、例えば、ウェブブラウザ又は他のクライアントソフトウェアを使用して、サーバ740又は745上の情報にアクセスすることが可能であり得る。かかるソフトウェアは、クライアントシステム710、720、及び730が、サーバ740、サーバ745、記憶デバイス760(1)~(N)、記憶デバイス770(1)~(N)、記憶デバイス790(1)~(N)、又はインテリジェント記憶アレイ795によってホストされたデータにアクセスすることを可能にし得る。図7は、データを交換するために(インターネットなどの)ネットワークを使用することを示しているが、本明細書に記載及び/又は図示される実施形態は、インターネット又は任意の特定のネットワークベースの環境に限定されない。
【0071】
少なくとも1つの実施形態では、本明細書に開示される例示的な実施形態のうちの1つ以上のうちの全て又は一部分は、コンピュータプログラムとしてコード化され、サーバ740、サーバ745、記憶デバイス760(1)~(N)、記憶デバイス770(1)~(N)、記憶デバイス790(1)~(N)、インテリジェント記憶アレイ795、又はこれらの任意の組合せ上にロードされ、これらによって実行され得る。本明細書に開示される例示的な実施形態のうちの1つ以上のうちの全て又は一部分はまた、コンピュータプログラムとしてコード化され、サーバ740に記憶され、サーバ745によって実行され、ネットワーク750を通じてクライアントシステム710、720、及び730に分散されてもよい。
【0072】
上で詳述したように、コンピューティングシステム610及び/又はネットワークアーキテクチャ700の1つ以上の構成要素は、単独で又は他の要素と組み合わせてのいずれかで、ユーザプライバシーを強化するための例示的な方法の1つ以上のステップを実施し得、及び/又はそれを実施するための手段であり得る。
【0073】
前述の開示は、特定のブロック図、フローチャート、及び実施例を使用して様々な実施形態を記載しているが、本明細書に記載及び/又は図示されるそれぞれのブロック図の構成要素、フローチャートのステップ、動作、及び/又は構成要素は、個別に及び/又は集合的に、広範なハードウェア、ソフトウェア、又はファームウェア(若しくはそれらの任意の組合せ)の構成を使用して実装されてもよい。加えて、同じ機能性を達成するように他の多くのアーキテクチャを実装することができるので、他の構成要素内に包含される構成要素のいかなる開示も、本質的に例示とみなされるべきである。
【0074】
いくつかの実施例では、図1の例示的なシステム100のうちの全て又は一部分は、クラウドコンピューティング環境又はネットワークベースの環境の部分を表してもよい。クラウドコンピューティング環境は、インターネットを介して、様々なサービス及びアプリケーションを提供してもよい。これらのクラウドベースのサービス(例えば、サービスとしてのソフトウェア、サービスとしてのプラットフォーム、サービスとしての基盤など)は、ウェブブラウザ又は他のリモートインターフェースを通してアクセス可能であってもよい。本明細書に記載される様々な機能は、リモートデスクトップ環境又は任意の他のクラウドベースのコンピューティング環境を通して提供されてもよい。
【0075】
様々な実施形態では、図1の例示的なシステム100のうちの全て又は一部分は、クラウドベースのコンピューティング環境内におけるマルチテナンシーを容易にしてもよい。換言すれば、本明細書に記載されるソフトウェアモジュールは、本明細書に記載される機能のうちの1つ以上に対するマルチテナンシーを容易にするように、コンピューティングシステム(例えば、サーバ)を構成してもよい。例えば、本明細書に記載されるソフトウェアモジュールのうちの1つ以上は、2つ以上のクライアント(例えば、顧客)がサーバ上で作動しているアプリケーションを共有するのを可能にするように、サーバをプログラムしてもよい。このようにプログラムされたサーバは、複数の顧客(すなわち、テナント)の間で、アプリケーション、オペレーティングシステム、処理システム、及び/又は記憶システムを共有してもよい。本明細書に記載されるモジュールのうちの1つ以上はまた、ある顧客が別の顧客のデータ及び/又は設定情報にアクセスできないように、顧客ごとにマルチテナントアプリケーションのデータ及び/又は設定情報を分割してもよい。
【0076】
様々な実施形態によれば、図1の例示的なシステム100のうちの全て又は一部分は、仮想環境内で実装されてもよい。例えば、本明細書に記載されるモジュール及び/又はデータは、仮想機械内で常駐及び/又は実行してもよい。本明細書で使用される場合、「仮想機械」という用語は、一般に、仮想機械マネージャ(例えば、ハイパーバイザ)によってコンピューティングハードウェアから抽象化される、任意のオペレーティングシステム環境を指す。追加して、又は代替として、本明細書に記載されるモジュール及び/又はデータは、仮想化層内で常駐及び/又は実行してもよい。本明細書で使用される場合、「仮想化層」という用語は、一般に、オペレーティングシステム環境にオーバーレイする、かつ/又はそこから抽象化される、任意のデータ層及び/又はアプリケーション層を指す。仮想化層は、基礎となる基本オペレーティングシステムの一部であるかのように仮想化層を提示する、ソフトウェア仮想化ソリューション(例えば、ファイルシステムフィルタ)によって管理されてもよい。例えば、ソフトウェア仮想化ソリューションは、最初に基本ファイルシステム及び/又はレジストリ内の場所に方向付けられるコールを、仮想化層内の場所にリダイレクトしてもよい。
【0077】
いくつかの実施例では、図1の例示的なシステム100のうちの全て又は一部分は、モバイルコンピューティング環境の部分を表してもよい。モバイルコンピューティング環境は、携帯電話、タブレットコンピュータ、電子ブックリーダ、携帯情報端末、ウェアラブルコンピューティングデバイス(例えば、ヘッドマウントディスプレイを有するコンピューティングデバイス、スマートウォッチなど)などを含む、広範なモバイルコンピューティングデバイスによって実装されてもよい。いくつかの実施例では、モバイルコンピューティング環境は、例えば、バッテリ電力への依存、任意の所与の時間での1つのみのフォアグラウンドアプリケーションの提示、リモート管理特性、タッチスクリーン特性、場所及び移動データ(例えば、グローバルポジショニングシステム、ジャイロスコープ、加速度計などによって提供される)、システムレベルの構成への修正を制限する、かつ/又は第3者のソフトウェアが他のアプリケーションの挙動を検査する能力を限定する制限されたプラットフォーム、アプリケーションのインストールを(例えば、認可されたアプリケーションストアからのみ生じるように)制限する制御などを含む、1つ以上の個別の特性を有することができる。本明細書で説明される様々な機能は、モバイルコンピューティング環境に対して提供され得る、かつ/又はモバイルコンピューティング環境と相互作用し得る。
【0078】
加えて、図1の例示的なシステム100のうちの全て又は一部分は、情報管理のための1つ以上のシステムの部分を表してもよく、それと相互作用してもよく、それによって作成されるデータを消費してもよく、かつ/又はそれによって消費されるデータを作成してもよい。本明細書で使用される場合、「情報管理」という用語は、データの保護、組織化、及び/又は記憶を指してもよい。情報管理のためのシステムの例としては、非限定的に、記憶システム、バックアップシステム、アーカイブシステム、複製システム、高可用性システム、データ検索システム、仮想化システムなどを挙げることができる。
【0079】
いくつかの実施形態では、図1の例示的なシステム100のうちの全て又は一部分は、情報セキュリティのための1つ以上のシステムの部分を表してもよく、それによって保護されるデータを作成してもよく、かつ/又はそれと通信してもよい。本明細書で使用される場合、「情報セキュリティ」という用語は、保護されたデータに対するアクセスの制御を指してもよい。情報セキュリティのためのシステムの例としては、非限定的に、管理されたセキュリティサービスを提供するシステム、データ損失防止システム、本人認証システム、アクセス制御システム、暗号化システム、ポリシー遵守システム、侵入検出及び防止システム、電子証拠開示システムなどを挙げることができる。
【0080】
いくつかの実施例によれば、図1の例示的なシステム100のうちの全て又は一部分は、エンドポイントセキュリティのための1つ以上のシステムの部分を表してもよく、それと通信してもよく、かつ/又はそれから保護を受けてもよい。本明細書で使用される場合、「エンドポイントセキュリティ」という用語は、不正及び/若しくは違法な使用、アクセス、並びに/又は制御からのエンドポイントシステムの保護を指してもよい。エンドポイント保護のためのシステムの例としては、非限定的に、アンチマルウェアシステム、ユーザ認証システム、暗号化システム、プライバシーシステム、スパムフィルタリングサービスなどを挙げることができる。
【0081】
本明細書に記載及び/又は図示されるプロセスパラメータ及びステップの順序は、単なる例として与えられるものであり、所望に応じて変更することができる。例えば、本明細書に図示及び/又は記載されるステップは特定の順序で図示又は考察されることがあるが、これらのステップは、必ずしも図示又は考察される順序で実施される必要はない。本明細書に記載及び/又は図示される様々な例示的な方法はまた、本明細書に記載及び/又は図示されるステップのうちの1つ以上を省略してもよく、又は開示されるものに加えて追加のステップを含んでもよい。
【0082】
様々な実施形態が、完全に機能的なコンピューティングシステムの文脈において本明細書に記載及び/又は図示されているが、これら例示的な実施形態のうちの1つ以上は、実際に分散を行うために使用されるコンピュータ可読媒体の特定のタイプにかかわらず、多様な形態のプログラム製品として分散され得る。本明細書に開示される実施形態はまた、特定のタスクを実施するソフトウェアモジュールを使用して実装されてもよい。これらのソフトウェアモジュールは、コンピュータ可読記憶媒体又はコンピューティングシステムに記憶されてもよい、スクリプト、バッチ、若しくは他の実行可能ファイルを含んでもよい。いくつかの実施形態では、これらのソフトウェアモジュールは、本明細書に開示される例示的な実施形態のうちの1つ以上を実施するようにコンピューティングシステムを構成してもよい。
【0083】
加えて、本明細書に記載されるモジュールのうちの1つ以上は、データ、物理的デバイス、及び/又は物理的デバイスの表現を、1つの形態から別の形態へと変換してもよい。追加して、又は代替として、本明細書に列挙されるモジュールのうちの1つ以上は、コンピューティングデバイス上で実行し、コンピューティングデバイスにデータを記憶し、かつ/又は別の方法でコンピューティングデバイスと相互作用することによって、プロセッサ、揮発性メモリ、不揮発性メモリ、及び/又は物理的コンピューティングデバイスの任意の他の部分を、1つの形態から別の形態へと変換してもよい。
【0084】
上述の記載は、本明細書に開示される例示的な実施形態の様々な態様を他の当業者が最良に利用するのを可能にするために提供されてきた。この例示的な記載は、網羅的であることを意図するものではなく、又は開示される任意の正確な形態に限定することを意図するものではない。本開示の趣旨及び範囲から逸脱することなく、多くの修正形態及び変形形態が可能である。本明細書に開示される実施形態は、あらゆる点で例示的であり、限定的ではないとみなされるべきである。本開示の範囲を決定する際に、添付の特許請求の範囲及びそれらの等価物を参照するべきである。
【0085】
別途記載のない限り、「~に接続される」及び「~に連結される」という用語(並びにそれらの派生語)は、本明細書及び特許請求の範囲で使用される場合、直接的接続及び間接的接続(すなわち、他の要素若しくは構成要素を介する)の両方を許容するものとして解釈されるものである。加えて、「a」又は「an」という用語は、本明細書及び特許請求の範囲で使用される場合、「~のうち少なくとも1つ」を意味するものとして解釈されるものである。最後に、簡潔にするため、「含む」及び「有する」という用語(並びにそれらの派生語)は、本明細書及び特許請求の範囲で使用される場合、「備える」という単語と互換性があり、同じ意味を有する。
図1
図2
図3
図4
図5
図6
図7