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

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

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

特表2024-537656ウェブトラッカのための追跡防止回避技術に対してユーザデータプライバシーを保護するためのシステム及び方法
<>
  • 特表-ウェブトラッカのための追跡防止回避技術に対してユーザデータプライバシーを保護するためのシステム及び方法 図1
  • 特表-ウェブトラッカのための追跡防止回避技術に対してユーザデータプライバシーを保護するためのシステム及び方法 図2
  • 特表-ウェブトラッカのための追跡防止回避技術に対してユーザデータプライバシーを保護するためのシステム及び方法 図3
  • 特表-ウェブトラッカのための追跡防止回避技術に対してユーザデータプライバシーを保護するためのシステム及び方法 図4
  • 特表-ウェブトラッカのための追跡防止回避技術に対してユーザデータプライバシーを保護するためのシステム及び方法 図5
  • 特表-ウェブトラッカのための追跡防止回避技術に対してユーザデータプライバシーを保護するためのシステム及び方法 図6
  • 特表-ウェブトラッカのための追跡防止回避技術に対してユーザデータプライバシーを保護するためのシステム及び方法 図7
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-10-16
(54)【発明の名称】ウェブトラッカのための追跡防止回避技術に対してユーザデータプライバシーを保護するためのシステム及び方法
(51)【国際特許分類】
   G06F 21/62 20130101AFI20241008BHJP
【FI】
G06F21/62 363
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2024515958
(86)(22)【出願日】2022-08-31
(85)【翻訳文提出日】2024-03-12
(86)【国際出願番号】 US2022042185
(87)【国際公開番号】W WO2023055522
(87)【国際公開日】2023-04-06
(31)【優先権主張番号】17/487,052
(32)【優先日】2021-09-28
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.JAVASCRIPT
2.Linux
3.WINDOWS MOBILE
4.SOLARIS
5.JUNOS
6.macOS
7.UNIX
(71)【出願人】
【識別番号】501113353
【氏名又は名称】ジェン デジタル インコーポレイテッド
(74)【代理人】
【識別番号】100147485
【弁理士】
【氏名又は名称】杉村 憲司
(74)【代理人】
【識別番号】110002848
【氏名又は名称】弁理士法人NIP&SBPJ国際特許事務所
(72)【発明者】
【氏名】サンチェス ローラ、イスカンデル
(57)【要約】
ウェブトラッカのための追跡防止回避技術に対してユーザデータプライバシーを保護するための開示されるコンピュータ実装方法は、(i)ブラウザアプリケーションに表示されたウェブサイトに関連付けられたハイパーテキストマークアップ言語(HTML)を検出することと、(ii)ウェブサイトからのウェブ追跡コードを実行することができるHTML内の1つ以上の要素を識別することと、(iii)HTML要素をウェブサイトに埋め込むことを担うスクリプトプログラミングコードを記述する情報に基づいて、隠しウェブ追跡スクリプトの存在を判定することと、(iv)隠しウェブ追跡スクリプトがブラウザアプリケーション内のウェブ追跡コードを実行することを防止することによって、ユーザデータプライバシーの潜在的な侵害に対して保護するセキュリティアクションを実行することと、を含むことができる。様々な他の方法、システム、及びコンピュータ可読媒体もまた、開示される。
【特許請求の範囲】
【請求項1】
ウェブトラッカのための追跡防止回避技術に対してユーザデータプライバシーを保護するコンピュータ実装方法であって、前記方法の少なくとも一部分が少なくとも1つのプロセッサを備えるコンピューティングデバイスによって実施され、前記方法は、
前記1つ以上のコンピューティングデバイスによって、ブラウザアプリケーションに表示されたウェブサイトに関連付けられたハイパーテキストマークアップ言語(HTML)を検出することと
前記1つ以上のコンピューティングデバイスによって、前記ウェブサイトからのウェブ追跡コードを実行することができる前記HTML内の1つ以上の要素を識別することと、
前記1つ以上のコンピューティングデバイスによって、前記HTML要素を前記ウェブサイトに埋め込むことを担うスクリプトプログラミングコードを記述する情報に基づいて、隠しウェブ追跡スクリプトの存在を判定することと、
前記1つ以上のコンピューティングデバイスによって、前記隠しウェブ追跡スクリプトが前記ブラウザアプリケーション内の前記ウェブ追跡コードを実行することを防止することによって、ユーザデータプライバシーの潜在的な侵害に対して保護するセキュリティアクションを実行することと、
を含む、コンピュータ実装方法。
【請求項2】
前記ウェブサイトに関連付けられた前記HTMLを検出することは、
前記ウェブサイト上に現在表示されているウェブページをレンダリングするHTML文書を検索することと、
前記HTML文書内の前記HTMLを検出することと、を含む、請求項1に記載のコンピュータ実装方法。
【請求項3】
前記ウェブ追跡コードを実行することができる前記HTMLを識別することは、スクリプトHTML要素を識別することを含む、請求項1に記載のコンピュータ実装方法。
【請求項4】
前記ウェブ追跡コードを実行することができる前記HTMLを識別することは、インラインフレーム(iframe)HTML要素を識別することを含む、請求項1に記載のコンピュータ実装方法。
【請求項5】
隠しウェブ追跡スクリプトの前記存在を判定することは、
前記スクリプトプログラミングコードに関連付けられたドメインが、前記ウェブサイトのウェブページに関連付けられたドメインと無関係であると判定することと、
前記スクリプトプログラミングコードを前記隠しウェブ追跡スクリプトとして識別することと、を含む、請求項1に記載のコンピュータ実装方法。
【請求項6】
前記セキュリティアクションは、前記隠しウェブ追跡スクリプトがウェブ追跡識別子を生成するのを阻止することを含む、請求項1に記載のコンピュータ実装方法。
【請求項7】
前記ウェブ追跡識別子は、
ウェブ追跡クッキー、又は
ユーザデータを記憶するために利用されるローカルストレージ識別子のうちの少なくとも1つを含む、請求項6に記載のコンピュータ実装方法。
【請求項8】
前記セキュリティアクションは、前記隠しウェブ追跡スクリプトが、プライベートユーザデータを取得するために利用されるプログラミングコード関数を検索することを阻止することを含む、請求項1に記載のコンピュータ実装方法。
【請求項9】
前記セキュリティアクションは、プライベートユーザデータを取得するために利用されるプログラミングコード関数を検索することを防止するように、前記隠しウェブ追跡スクリプトの実行を修正することを含む、請求項1に記載のコンピュータ実装方法。
【請求項10】
プライベートユーザデータを取得するために利用されるプログラミングコード関数を検索することを防止するように前記隠しウェブ追跡スクリプトの実行を修正することは、前記プログラミングコード関数を検索するための要求を、無害なデータを検索するための要求に置き換えることを含む、請求項9に記載のコンピュータ実装方法。
【請求項11】
ウェブトラッカのための追跡防止回避技術に対してユーザデータプライバシーを保護するためのシステムであって、前記システムは、
少なくとも1つの物理プロセッサ、
コンピュータ実行可能命令及び1つ以上のモジュールを含む物理メモリであって、前記コンピュータ実行可能命令は、前記物理プロセッサによって実行されると、前記物理プロセッサに、
検出モジュールによって、ブラウザアプリケーションに表示されたウェブサイトに関連付けられたハイパーテキストマークアップ言語(HTML)を検出させ、
識別モジュールによって、前記ウェブサイトからのウェブ追跡コードを実行することが可能な前記HTML内の1つ以上の要素を識別させ、
判定モジュールによって、前記HTML要素を前記ウェブサイトに埋め込むことを担うスクリプトプログラミングコードを記述する情報に基づいて、隠しウェブ追跡スクリプトの存在を判定させ、
セキュリティモジュールによって、前記隠しウェブ追跡スクリプトが前記ブラウザアプリケーション内の前記ウェブ追跡コードを実行することを防止することによって、ユーザデータプライバシーの潜在的な侵害に対して保護するセキュリティアクションを実行させる、物理メモリと、
を備える、システム。
【請求項12】
検出モジュールは、前記ウェブサイトに関連付けられた前記HTMLを、
前記ウェブサイト上に現在表示されているウェブページをレンダリングするHTML文書を検索することと、
前記HTML文書内の前記HTMLを検出することと、によって検出する、請求項11に記載のシステム。
【請求項13】
前記識別モジュールは、スクリプトHTML要素を識別することによって、前記ウェブ追跡コードを実行することができる前記HTMLを識別する、請求項11に記載のシステム。
【請求項14】
前記識別モジュールは、インラインフレーム(iframe)HTML要素を識別することによって、前記ウェブ追跡コードを実行することができる前記HTMLを識別する、請求項11に記載のシステム。
【請求項15】
前記判定モジュールは、隠しウェブ追跡スクリプトの前記存在を、
前記スクリプトプログラミングコードに関連付けられたドメインが、前記ウェブサイトのウェブページに関連付けられたドメインと無関係であると判定することと、
前記スクリプトプログラミングコードを前記隠しウェブ追跡スクリプトとして識別することと、によって判定する、請求項11に記載のシステム。
【請求項16】
前記セキュリティモジュールは、前記隠しウェブ追跡スクリプトがウェブ追跡識別子を生成するのを阻止することによって、前記セキュリティアクションを実行する、請求項11に記載のシステム。
【請求項17】
前記ウェブ追跡識別子は、
ウェブ追跡クッキー、又は
ユーザデータを記憶するために利用されるローカルストレージ識別子のうちの少なくとも1つを含む、請求項16に記載のシステム。
【請求項18】
前記セキュリティモジュールは、前記隠しウェブ追跡スクリプトがプライベートユーザデータを取得するために利用されるプログラミングコード関数を検索することを阻止することによって、前記セキュリティアクションを実行する、請求項11に記載のシステム。
【請求項19】
前記セキュリティモジュールは、プライベートユーザデータを取得するために利用されるプログラミングコード関数を検索することを防止するために、前記隠しウェブ追跡スクリプトの実行を修正することによって、前記セキュリティアクションを実行する、請求項11に記載のシステム。
【請求項20】
非一時的コンピュータ可読媒体であって、1つ以上のコンピュータ実行可能命令を含み、前記命令は、コンピューティングデバイスの少なくとも1つのプロセッサによって実行されると、前記コンピューティングデバイスに、
ブラウザアプリケーションに表示されたウェブサイトに関連付けられたハイパーテキストマークアップ言語(HTML)を検出させ、
前記ウェブサイトからのウェブ追跡コードを実行することが可能な前記HTML内の1つ以上の要素を識別させ、
前記HTML要素を前記ウェブサイトに埋め込むことを担うスクリプトプログラミングコードを記述する情報に基づいて、隠しウェブ追跡スクリプトの存在を判定させ、
前記隠しウェブ追跡スクリプトが前記ブラウザアプリケーション内の前記ウェブ追跡コードを実行することを防止することによって、ユーザデータプライバシーの潜在的な侵害に対して保護するセキュリティアクションを実行させる、非一時的コンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【0001】
(関連出願の相互参照)
本出願は、「SYSTEMS AND METHODS FOR PROTECTING USER DATA PRIVACY AGAINST ANTI-TRACKING EVASION TECHNIQUES FOR WEB TRACKERS」と題され、2021年9月28日に出願された米国非仮出願第17/487,052号の優先権を主張し、当該米国非仮出願の内容全体は、参照により本明細書に組み込まれる。
【背景技術】
【0002】
企業及びホームコンピュータネットワークを介してウェブサイトにアクセスすることを含むインターネット閲覧活動は、多くの場合、プライベートユーザデータを維持及び/又は利用することによって、ユーザプライバシーを損なう可能性がある閲覧セッション中のウェブ追跡を含む。例えば、ユーザによってウェブサイト上で閲覧されているコンテンツは、識別情報(例えば、ユーザの閲覧履歴又はコンタクト情報)をブラウザクッキー内に、又はローカルストレージデバイス上のフィンガープリントとして記憶するように構成されたサードパーティウェブサイトトラッカを含むことができ、それにより、同じコンテンツが異なるウェブサイトによってロードされるとき、ウェブサイトトラッカは、ユーザの同意なしに追加のコンテンツをユーザに提供し続けることができる。
【0003】
望ましくないウェブ追跡に対処するための従来の方法は、サードパーティウェブサイトドメインの識別を介して検出可能なウェブトラッカによって利用されるネットワーク要求又はブラウザクッキーを阻止するように構成された追跡防止機能を有する拡張ウェブブラウザ又はブラウザ拡張機能を利用することを含む。追跡防止に対する応答として、ウェブ追跡会社は、多くの場合、サードパーティドメインを、従来の方法によって検出されないファーストパーティドメインとして偽装することによって、以前に検出可能であったトラッカを隠す回避技術を利用することがある。
【発明の概要】
【0004】
以下でより詳細に説明されるように、本開示は、ウェブトラッカのための追跡防止回避技術に対してユーザデータプライバシーを保護するための様々なシステム及び方法を説明する。
【0005】
一例では、ウェブトラッカのための追跡防止回避技術に対してユーザデータプライバシーを保護するための方法は、(i)1つ以上のコンピューティングデバイスによって、ブラウザアプリケーションに表示されたウェブサイトに関連付けられたハイパーテキストマークアップ言語(HTML)を検出することと、(ii)1つ以上のコンピューティングデバイスによって、ウェブサイトからのウェブ追跡コードを実行することができるHTML内の1つ以上の要素を識別することと、(iii)1つ以上のコンピューティングデバイスによって、HTML要素をウェブサイトに埋め込むことを担うスクリプトプログラミングコードを記述する情報に基づいて、隠しウェブ追跡スクリプトの存在を判定することと、(iv)1つ以上のコンピューティングデバイスによって、隠しウェブ追跡スクリプトがブラウザアプリケーション内のウェブ追跡コードを実行することを防止することによって、ユーザデータプライバシーの潜在的な侵害に対して保護するセキュリティアクションを実行することと、を含むことができる。
【0006】
いくつかの例では、ウェブサイトに関連付けられたHTMLは、(i)ウェブサイト上に現在表示されているウェブページをレンダリングするHTML文書を検索することと、(ii)HTML文書内のHTMLを検出することとによって検出され得る。いくつかの実施形態では、ウェブ追跡コードを実行することができるHTMLは、スクリプトHTML要素を識別することによって、及び/又はインラインフレーム(iframe)HTML要素を識別することによって識別され得る。
【0007】
いくつかの例では、隠しウェブ追跡スクリプトの存在は、(i)スクリプトプログラミングコードに関連付けられたドメインがウェブサイトのウェブページに関連付けられたドメインと無関係であると判定することと、(ii)スクリプトプログラミングコードを隠しウェブ追跡スクリプトとして識別することと、によって判定されてもよい。いくつかの実施形態では、セキュリティアクションは、隠しウェブ追跡スクリプトが、ウェブ追跡クッキー又はユーザデータを記憶するために利用されるローカルストレージ識別子等のウェブ追跡識別子を生成することを阻止することを含んでもよい。追加又は代替として、セキュリティアクションは、プライベートユーザデータを取得するために利用されるプログラミングコード関数を検索することを防止するように、隠しウェブ追跡スクリプトの実行を修正することを含み得る。例えば、プログラミングコード関数を検索するための要求は、無害なデータ(例えば、画像ファイル又は偽の識別子)を検索するための要求と置き換えられ得る。
【0008】
一実施形態では、ウェブトラッカのための追跡防止回避技術に対してユーザデータプライバシーを保護するためのシステムは、少なくとも1つの物理プロセッサ、コンピュータ実行可能命令及び1つ以上のモジュールを含む物理メモリであって、コンピュータ実行可能命令は、物理プロセッサによって実行されると、物理プロセッサに、検出モジュールによって、ブラウザアプリケーションに表示されたウェブサイトに関連付けられたHTMLを検出させ、(ii)識別モジュールによって、ウェブサイトからのウェブ追跡コードを実行することが可能なHTML内の1つ以上の要素を識別させ、(iii)判定モジュールによって、HTML要素をウェブサイトに埋め込むことを担うスクリプトプログラミングコードを記述する情報に基づいて、隠しウェブ追跡スクリプトの存在を判定させ、(iv)セキュリティモジュールによって、隠しウェブ追跡スクリプトがブラウザアプリケーション内のウェブ追跡コードを実行することを防止することによって、ユーザデータプライバシーの潜在的な侵害から保護するセキュリティアクションを実行させる、物理メモリと、を含んでもよい。
【0009】
いくつかの実施例では、上述の方法は、非一時的コンピュータ可読媒体上のコンピュータ可読命令としてコード化されてもよい。例えば、コンピュータ可読媒体は、1つ以上のコンピュータ実行可能命令を含んでもよく、命令は、コンピューティングデバイスの少なくとも1つのプロセッサによって実行されると、コンピューティングデバイスに、(i)ブラウザアプリケーションに表示されたウェブサイトに関連付けられたハイパーテキストマークアップ言語(HTML)を検出させ、(ii)ウェブサイトからのウェブ追跡コードを実行することができるHTML内の1つ以上の要素を識別させ、(iii)HTML要素をウェブサイトに埋め込むことを担うスクリプトプログラミングコードを記述する情報に基づいて、隠しウェブ追跡スクリプトの存在を判定させ、(iv)隠しウェブ追跡スクリプトがブラウザアプリケーション内のウェブ追跡コードを実行することを防止することによって、ユーザデータプライバシーの潜在的な侵害に対して保護するセキュリティアクションを実行させてもよい。
【0010】
本明細書に記載される実施形態のいずれかによる特徴は、本明細書に記載される一般原理にしたがって、互いに組み合わせて使用され得る。これら及び他の実施形態、特徴、及び利点は、添付の図面及び特許請求の範囲と併せて以下の発明を実施するための形態を読むことによって更に十分に理解されるだろう。
【図面の簡単な説明】
【0011】
添付の図面は、いくつかの例示的な実施形態を図示するものであり、本明細書の一部である。以下の説明と併せて、これらの図面は、本開示の様々な原理を実証及び説明する。
【0012】
図1】ウェブトラッカのための追跡防止回避技術に対してユーザデータプライバシーを保護するための例示的なシステムのブロック図である。
図2】ウェブトラッカのための追跡防止回避技術に対してユーザデータプライバシーを保護するための追加の例示的なシステムのブロック図である。
図3】ウェブトラッカのための追跡防止回避技術に対してユーザデータプライバシーを保護するための例示的な方法のフロー図である。
図4】ウェブトラッカのための追跡防止回避技術に対して保護するための例示的なシステムにおいて、ウェブ追跡プログラミングコードを含むことが可能な例示的なHTML要素を示すブロック図である。
図5】ウェブトラッカのための追跡防止回避技術に対して保護するための例示的なシステムにおいて実行され得る例示的なセキュリティアクションを示すブロック図である。
図6】本明細書に記載及び/又は図示される実施形態のうちの1つ以上を実装できる例示的なコンピューティングシステムのブロック図である。
図7】本明細書に記載及び/又は図示される実施形態のうちの1つ以上を実装できる例示的なコンピューティングネットワークのブロック図である。
【0013】
図面を通して、同一の参照符号及び記述は、必ずしも同一ではないが、類似の要素を示す。本明細書で説明される例示的な実施形態は、様々な修正形態及び代替的な形態が可能であるが、特定の実施形態が例として図面に示されており、本明細書に詳細に記載される。しかしながら、本明細書に記載される例示的な実施形態は、開示される特定の形態に限定されることを意図しない。むしろ、本開示は、添付の特許請求の範囲の範囲内にある全ての修正形態、等価形態、及び代替形態を網羅する。
【発明を実施するための形態】
【0014】
本開示は、概して、ウェブトラッカのための追跡防止回避技術に対してユーザデータプライバシーを保護するためのシステム及び方法を対象とする。本明細書でより詳細に説明されるように、リアルタイム汚染(すなわち、既知の追跡スクリプトについての情報を、これらのスクリプトを実行することができる作成又は修正されたHTML要素に関連付けること)を実行することによって、本明細書で説明されるシステム及び方法は、追跡スクリプトが、ユーザを識別するために利用され得るネイティブコードを検索することを防止し、それによって、ユーザのプライバシーを攻撃するために使用され得るデータの収集を防止することによって、隠されたサードパーティトラッカのアクションを識別及び制御し得る。
【0015】
加えて、本明細書で説明されるシステム及び方法は、ウェブ閲覧セッション中にプライベートデータ(例えば、プライベートユーザデータを含むウェブブラウザクッキー)を取得するように意図されたスクリプトを実行するウェブサイトトラッカを識別し、それによって、これらのウェブサイトトラッカを利用する悪意のあるアクタによる潜在的なプライバシー攻撃(例えば、フィッシング攻撃)から保護することによって、コンピュータネットワークセキュリティを改善することができる。
【0016】
以下は、図1図2を参照して、ウェブトラッカのための追跡防止回避技術に対してユーザデータプライバシーを保護するための例示的なシステムの詳細な説明を提供する。対応するコンピュータ実装方法の詳細な説明も図3に関連して提供される。加えて、ウェブトラッカのための追跡防止回避技術に対して保護するための例示的なシステムにおいて、ウェブ追跡プログラミングコードを含むことが可能な例示的なHTML要素の詳細な説明も、図4に関連して提供される。加えて、ウェブトラッカのための追跡防止回避技術に対して保護するための例示的なシステムにおいて実行され得る例示的なセキュリティアクションの詳細な説明もまた、図5に関連して提供される。更に、本明細書に説明される実施形態のうちの1つ以上を実装することができる例示的なコンピューティングシステム及びネットワークアーキテクチャの詳細な説明が、それぞれ、図6及び図7に関連して提供される。
【0017】
この図に示されるように、例示的なシステム100は、1つ以上のタスクを実施するための1つ以上のモジュール102を含み得る。以下でより詳細に説明するように、モジュール102は、ウェブサイト112に関連付けられたHTML114を検出する検出モジュール104を含むことができる。例示的なシステム100は、ウェブサイト112からのウェブ追跡コードを実行することができる1つ以上のHTML要素116を識別する識別モジュール106を更に含むことができる。例示的なシステム100はまた、HTML要素116をウェブサイト112に埋め込む役割を担うスクリプトプログラミングコードを記述する情報に基づいて、隠しウェブ追跡スクリプト118の存在を判定する判定モジュール108を含んでもよい。例示的なシステム100は、ウェブ追跡コードから隠しウェブ追跡スクリプト118を防止することによって、ユーザデータプライバシーの潜在的な侵害から保護するセキュリティアクションを実行するセキュリティモジュール110を更に含むことができる。別々の要素として図示されるが、図1のモジュール102のうちの1つ以上は、単一のモジュール又はアプリケーションの部分を表し得る。
【0018】
特定の実施形態では、図1のモジュール102のうちの1つ以上は、コンピューティングデバイスによって実行されると、コンピューティングデバイスに1つ以上のタスクを実施させ得る、1つ以上のソフトウェアアプリケーション又はプログラムを表し得る。例えば、及びより詳細に後述するように、モジュール102のうちの1つ以上は、図2に示されるデバイス(例えば、コンピューティングデバイス202及び/又はサーバ206)、などの1つ以上のコンピューティングデバイスに記憶され、及びその上で作動するように構成される、モジュールを表してもよい。図1のモジュール102のうちの1つ以上はまた、1つ以上のタスクを実施するように構成された1つ以上の専用コンピュータの全て又は部分を表し得る。
【0019】
図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つ以上の変形形態若しくは組み合わせ、及び/又は任意の他の好適な記憶メモリが挙げられる。
【0020】
図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つ以上の変形形態若しくは組み合わせ、及び/又は任意の他の好適な物理プロセッサが挙げられる。
【0021】
図1に示すように、例示的なシステム100は、データを記憶するためのデータストレージ120も含み得る。一例では、データ記憶装置120は、HTML114を含むウェブサイト112を記憶することができる。データ記憶装置120はまた、HTML要素116及び隠しウェブ追跡スクリプト118を記憶することができる。
【0022】
図1の例示的なシステム100は、様々な方法で実装され得る。例えば、例示的なシステム100のうちの全て又は一部分は、図2における例示的なシステム200の部分を表してもよい。図2に示されるように、システム200は、ネットワーク204を介してサーバ206と通信するコンピューティングデバイス202を含んでもよい。一実施例では、モジュール102の機能のうちの全て又は一部分は、コンピューティングデバイス202、サーバ206、及び/又は任意の他の好適なコンピューティングシステムによって実施され得る。より詳細に後述するように、図1のモジュール102のうちの1つ以上は、コンピューティングデバイス202及び/又はサーバ206のうちの少なくとも1つのプロセッサによって実行されると、コンピューティングデバイス202及び/又はサーバ206がウェブトラッカの追跡防止回避技術からユーザデータプライバシーを保護することを可能にすることができる。
【0023】
例えば、検出モジュール104は、ウェブサイト112に関連付けられたHTML114を検出してもよい。次いで、識別モジュール106は、ウェブサイト112及び/又はウェブサイト212からのウェブ追跡コードを実行することができる1つ以上のHTML要素116を識別することができる。次に、判定モジュール108は、ウェブトラッカデータ214(すなわち、HTML要素116をウェブサイト112に埋め込む役割を果たすスクリプトプログラミングコード208を記述する情報)に基づいて、隠しウェブ追跡スクリプト118の存在を判定することができる。最後に、セキュリティモジュール110は、隠しウェブ追跡スクリプト118がスクリプトプログラミングコード208を実行することを防止することによって、ユーザデータプライバシーの潜在的な侵害から保護するセキュリティアクション210を実行することができる。
【0024】
コンピューティングデバイス202は、一般に、コンピュータ実行可能命令を読み取ることができる任意のタイプ又は形態のコンピューティングデバイスを表す。いくつかの例では、コンピューティングデバイス202は、ユーザウェブ閲覧セッションに関連するオンラインプライバシー保護を含むクライアント側セキュリティソフトウェアを実行するエンドポイントデバイスであってもよい。コンピューティングデバイス202の追加の例としては、非限定的に、ラップトップ、タブレット、デスクトップ、サーバ、セルラー電話、携帯情報端末(Personal Digital Assistant、PDA)、マルチメディアプレーヤ、埋め込みシステム、ウェアラブルデバイス(例えば、スマートウォッチ、スマートグラスなど)、スマート車両、スマートパッケージング(例えば、アクティブ又はインテリジェントパッケージング)、ゲーム機、いわゆるモノのインターネットデバイス(例えば、スマート家電など)、それらのうちの1つ以上の変形形態若しくは組み合わせ、及び/又は他の任意の好適なコンピューティングデバイスが挙げられる。
【0025】
サーバ206は、概して、1つ以上のクライアントデバイスからのユーザウェブサイト要求にサービス提供すること、並びにサードパーティウェブトラッカデータを記憶することが可能である、任意のタイプ又は形態のコンピューティングデバイスを表す。いくつかの例では、サーバ206の各々は、互いに連携して機能及び/又は動作する複数のサーバを表し得る。サーバ206の追加の例としては、非限定的に、特定のソフトウェアアプリケーションを実行する、かつ/又は様々なセキュリティサービス、ウェブサービス、ストレージサービス、及び/又はデータベースサービスを提供するように構成された、セキュリティサーバ、アプリケーションサーバ、ウェブサーバ、ストレージサーバ、及び/又はデータベースサーバが挙げられる。
【0026】
ネットワーク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つ以上の変形形態若しくは組み合わせ、及び/又は任意の他の好適なネットワークが挙げられる。
【0027】
図3は、ウェブトラッカのための追跡防止回避技術に対してユーザデータプライバシーを保護するための例示的なコンピュータ実装方法300のフロー図である。図3に示されるステップは、図1のシステム100、図2のシステム200、及び/又はそれらのうちの1つ以上の変形形態若しくは組み合わせを含む、任意の好適なコンピュータ実行可能コード及び/又はコンピューティングシステムによって実施され得る。一例では、図3に示されている工程の各々は、複数の副工程を含む及び/又はそれらによって表される構造を有するアルゴリズムを表すものであり得、これらの例を以下に詳細に示す。
【0028】
図3に示すように、ステップ302において、本明細書に記載のシステムのうちの1つ以上は、ブラウザアプリケーションに表示されたウェブサイトに関連付けられたHTMLを検出することができる。例えば、検出モジュール104は、図2のコンピューティングデバイス202の一部として、ユーザのためのブラウザアプリケーションに表示され得るウェブサイト112に関連付けられたHTML114を検出し得る。
【0029】
検出モジュール104は、様々な方法でHTML114を検出することができる。いくつかの実施形態では、検出モジュール104は、ウェブサイト112上に現在表示されているウェブページをレンダリングするHTML文書を検索し、次いで、HTML文書内のHTML114を検出することができる。
【0030】
ステップ304において、本明細書で説明されるシステムのうちの1つ以上は、ステップ302において検出された、ウェブサイトからのウェブ追跡コードを実行することが可能なHTML内の1つ以上の要素を識別し得る。例えば、識別モジュール106は、図2のコンピューティングデバイス202の一部として、ウェブサイト112からのウェブ追跡コードを実行することができるHTML要素116を識別することができる。
【0031】
識別モジュール106は、様々な方法で、HTML要素116を識別することができる。いくつかの実施形態では、識別モジュール106は、ウェブサイト112のHTML114内に含まれる1つ以上のスクリプトHTML要素(すなわち、<script>)を識別することができる。追加又は代替として、識別モジュールは、ウェブサイト112のHTML114内に含まれるIframe HTML要素(すなわち、<iframe>)を識別することができる。いくつかの例では、図4に示すように、HTML要素400は、実行可能プログラムコード404及び実行可能プログラムコード408をそれぞれ含むスクリプト402要素及びiframe 406要素を含むことができる。プログラムコード404及びプログラムコード408は、ウェブ追跡コード(例えば、「document.createElement」)を表してもよい。
【0032】
ステップ306において、本明細書で説明されるシステムのうちの1つ以上は、HTML要素をウェブサイトに埋め込むことを担うスクリプトプログラミングコードを記述する情報に基づいて、隠しウェブ追跡スクリプトの存在を判定し得る。例えば、判定モジュール108は、図2のコンピューティングデバイス202の一部として、HTML要素116をウェブサイト112に埋め込む役割を担うスクリプトプログラミングコード208を記述する情報に基づいて、隠しウェブ追跡スクリプト118の存在を判定してもよい。
【0033】
判定モジュール108は、様々な方法で隠しウェブ追跡スクリプト118の存在を判定することができる。いくつかの実施形態では、判定モジュール108は、スクリプトプログラミングコード208に関連付けられたドメインがウェブサイト112のウェブページに関連付けられたドメインと無関係であると判定し、次いで、スクリプトプログラミングコード208を隠しウェブ追跡スクリプト118として識別してもよい。例えば、判定モジュール108は、ドメイン「tracker.net」に関連付けられたウェブトラッカがウェブサイト「example.com」のメインウェブページにスクリプトを埋め込むと判定してもよい。この判定に基づいて、判定モジュール108は、ドメイン「tracker.net」のスクリプトプログラミングコードを隠しウェブ追跡スクリプトとして識別することができる(すなわち、「tracker.net」に関連付けられたウェブトラッカは、現在実装されている可能性がある任意のウェブブラウザ追跡防止ソリューションをバイパスするために、それ自体を「example.com」に偽装している)。
【0034】
ステップ308において、本明細書で説明されるシステムのうちの1つ以上は、隠しウェブ追跡スクリプトがブラウザアプリケーションにおいてウェブ追跡コードを実行することを防止することによって、ユーザデータプライバシーの潜在的な侵害に対して保護するセキュリティアクションを実行し得る。例えば、セキュリティモジュール110は、図2のコンピューティングデバイス202の一部として、隠しウェブ追跡スクリプト118の実行を防止する1つ以上のセキュリティアクション210を実行してもよい。
【0035】
セキュリティモジュール110は、様々な方法でセキュリティアクション210を実行してもよい。例えば、図5に示すように、セキュリティモジュール110は、隠しウェブ追跡スクリプト508を阻止するアクション及び隠しウェブ追跡スクリプト502を修正するアクションを含むが、これらに限定されない様々なセキュリティアクション500を実行することができる。いくつかの実施形態において、隠しウェブ追跡スクリプト502の動作を阻止することは、隠しウェブ追跡スクリプト118が、クッキー504及び/又はローカルストレージ識別子506などのウェブ追跡識別子を生成することを防止することを含み得る。追加的又は代替的に、隠しウェブ追跡スクリプト502のアクションを阻止することは、隠しウェブ追跡スクリプト118が、ウェブサイトユーザを識別するために利用される特定のJAVASCRIPT関数のネイティブコードを検索するのを防止することを含むことができる。例えば、隠しウェブ追跡スクリプト118が、そのソースとして「window.location.host」を有するiframeを作成し、次いで、「iframe.contentWindow」を使用してネイティブ関数コードを検索しようと試みる場合、隠しウェブ追跡スクリプト502のアクションを阻止すると、隠しウェブ追跡スクリプト118が、ユーザのプライバシーを攻撃するために使用され得る情報(すなわち、プライベートユーザデータ)を取得できないように、検索の試みを停止し得る。いくつかの実施形態では、隠しウェブ追跡スクリプト508アクションを修正するアクションは、プログラミングコード関数を検索するための要求を無害なデータを検索するための要求で置き換えることを含むことができる。例えば、隠しウェブ追跡スクリプト118が、ウェブサイトユーザを識別するために利用されるJAVASCRIPT機能を検索する要求を送信しようと試みる場合、隠しウェブ追跡スクリプト508を修正するアクションは、要求された機能の代わりに無害なデータ(例えば、偽の識別子又は画像ファイル)が返されるように、この要求を修正することができる。
【0036】
上記の方法300に関連して説明したように、本明細書で説明するシステム及び方法は、ウェブトラッカのための追跡防止回避技術に対してユーザデータプライバシーを保護することを提供する。本明細書で説明されるシステム及び方法は、リアルタイム汚染(すなわち、既知の追跡スクリプトについての情報を、これらのスクリプトを実行することが可能な作成又は修正されたHTML要素と関連付けること)を実行するために汚染段階を利用し得る。本明細書で説明されるシステム及び方法はまた、追跡スクリプトが、ユーザをフィンガープリントするために利用され得るネイティブコードを検索することを防止し、それによって、ユーザのプライバシーを攻撃するために使用され得るデータの収集を防止することによって、隠れたサードパーティトラッカのアクションを識別及び制御するために、制御段階を利用し得る。
【0037】
図6は、本明細書に記載及び/又は図示される実施形態のうちの1つ以上を実装することができる例示的なコンピューティングシステム610のブロック図である。例えば、コンピューティングシステム610のうちの全て又は一部分は、単独で又は他の要素と組み合わせてのいずれかで、本明細書に記載されるステップのうちの1つ以上(図3に示されるステップのうちの1つ以上など)を実施し得る、かつ/又はそれを実施するための手段であってもよい。コンピューティングシステム610のうちの全て又は一部分はまた、本明細書に記載及び/若しくは図示される任意の他のステップ、方法、若しくはプロセスを実施し得る、かつ/又はそれを実施するための手段であってもよい。
【0038】
コンピューティングシステム610は、コンピュータ可読命令を実行することができる任意のシングル又はマルチプロセッサのコンピューティングデバイス又はシステムを幅広く表す。コンピューティングシステム610の例としては、非限定的に、ワークステーション、ラップトップ、クライアント側端末、サーバ、分散型コンピューティングシステム、ハンドヘルドデバイス、又は他の任意のコンピューティングシステム若しくはデバイスが挙げられる。その最も基本的な構成において、コンピューティングシステム610は、少なくとも1つのプロセッサ614及びシステムメモリ616を含んでもよい。
【0039】
プロセッサ614は、一般に、データを処理すること又は命令を解釈及び実行することができる、任意のタイプ又は形態の物理処理ユニット(例えば、ハードウェア実装型中央処理ユニット)を表す。特定の実施形態において、プロセッサ614は、ソフトウェアアプリケーション又はモジュールから命令を受信してもよい。これらの命令は、プロセッサ614に、本明細書に記載及び/又は図示される例示的な実施形態のうちの1つ以上の機能を実施させてもよい。
【0040】
システムメモリ616は、一般に、データ及び/又は他のコンピュータ可読命令を記憶することができる、任意のタイプ又は形態の揮発性又は不揮発性の記憶デバイス又は媒体を表す。システムメモリ616の例としては、非限定的に、ランダムアクセスメモリ(RAM)、読み取り専用メモリ(ROM)、フラッシュメモリ、又は任意の他の好適なメモリデバイスが挙げられる。必須ではないが、特定の実施形態において、コンピューティングシステム610は、揮発性メモリユニット(例えば、システムメモリ616など)及び不揮発性記憶デバイス(例えば、後に詳述するような一次記憶デバイス632など)の両方を含んでもよい。一実施例では、図1のモジュール102のうちの1つ以上は、システムメモリ616内にロードされ得る。
【0041】
いくつかの実施例では、システムメモリ616は、プロセッサ614による実行のために、オペレーティングシステム640を記憶及び/又はロードし得る。一実施例では、オペレーティングシステム640は、コンピュータハードウェア及びソフトウェアリソースを管理し、かつ/又はコンピューティングシステム610上のコンピュータプログラム及び/若しくはアプリケーションに共通のサービスを提供する、ソフトウェアを含む、かつ/又は表すことができる。オペレーティングシステム640の例としては、非限定的に、LINUX、JUNOS、MICROSOFT WINDOWS、WINDOWS MOBILE、MAC OS、APPLEのIOS、UNIX、GOOGLE CHROME OS、GOOGLEのANDROID、SOLARIS、それらのうちの1つ以上の変形形態、及び/又は任意の他の好適なオペレーティングシステムが挙げられる。
【0042】
特定の実施形態では、例示的なコンピューティングシステム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)、又は類似のバスなど)及びネットワークが挙げられる。
【0043】
メモリコントローラ618は、一般に、メモリ若しくはデータを扱うこと、又はコンピューティングシステム610の1つ以上の構成要素間の通信を制御することができる、任意のタイプ又は形態のデバイスを表す。例えば、特定の実施形態では、メモリコントローラ618は、通信基盤612を介して、プロセッサ614、システムメモリ616、及びI/Oコントローラ620の間の通信を制御してもよい。
【0044】
I/Oコントローラ620は、一般に、コンピューティングデバイスの入出力機能を調整及び/又は制御することができる、任意のタイプ又は形態のモジュールを表す。例えば、特定の実施形態では、I/Oコントローラ620は、プロセッサ614、システムメモリ616、通信インターフェース622、ディスプレイアダプタ626、入力インターフェース630、及び記憶インターフェース634などの、コンピューティングシステム610の1つ以上の要素間のデータ転送を制御又は容易にし得る。
【0045】
図6に示すように、コンピューティングシステム610はまた、ディスプレイアダプタ626を介してI/Oコントローラ620に連結された少なくとも1つのディスプレイデバイス624も含み得る。ディスプレイデバイス624は、一般に、ディスプレイアダプタ626によって転送された情報を視覚的に表示することができる、任意のタイプ又は形態のデバイスを表す。同様に、ディスプレイアダプタ626は、一般に、ディスプレイデバイス624上に表示するために通信基盤612から(又は当該技術分野において既知であるように、フレームバッファから)グラフィックス、テキスト、及び他のデータを転送するように構成された任意のタイプ又は形態のデバイスを表す。
【0046】
図6に示すように、例示的なコンピューティングシステム610はまた、入力インターフェース630を介してI/Oコントローラ620に連結された少なくとも1つの入力デバイス628も含み得る。入力デバイス628は、一般に、コンピュータ又は人間のいずれかが生成した入力を例示的なコンピューティングシステム610に提供することができる任意のタイプ又は形態の入力デバイスを表す。入力デバイス628の例としては、非限定的に、キーボード、ポインティングデバイス、音声認識デバイス、それらのうちの1つ以上の変形形態若しくは組み合わせ、及び/又は任意の他の入力デバイスが挙げられる。
【0047】
付加的に、又は代替的に、例示的なコンピューティングシステム610は、追加のI/Oデバイスを含み得る。例えば、例示的なコンピューティングシステム610は、I/Oデバイス636を含み得る。この実施例では、I/Oデバイス636は、コンピューティングシステム610との人間の相互作用を容易にするユーザインターフェースを含み得る、かつ/又はそれを表し得る。I/Oデバイス636の例としては、非限定的に、コンピュータマウス、キーボード、モニタ、プリンタ、モデム、カメラ、スキャナ、マイクロフォン、タッチスクリーンデバイス、それらのうちの1つ以上の変形形態若しくは組み合わせ、及び/又は任意の他のI/Oデバイスが挙げられる。
【0048】
通信インターフェース622は、例示的なコンピューティングシステム610と1つ以上の追加のデバイスとの間の通信を容易にすることができる、任意のタイプ又は形態の通信デバイス又はアダプタを幅広く表す。例えば、特定の実施形態では、通信インターフェース622は、コンピューティングシステム610と、追加のコンピューティングシステムを含むプライベート又はパブリックネットワークとの間の通信を容易にし得る。通信インターフェース622の例としては、非限定的に、有線ネットワークインターフェース(ネットワークインターフェースカードなど)、無線ネットワークインターフェース(無線ネットワークインターフェースカードなど)、モデム、及び任意の他の好適なインターフェースが挙げられる。少なくとも1つの実施形態では、通信インターフェース622は、インターネットなどのネットワークへの直接リンクを介してリモートサーバへの直接接続を提供し得る。通信インターフェース622はまた、例えば、ローカルエリアネットワーク(イーサネット(登録商標)ネットワークなど)、パーソナルエリアネットワーク、電話若しくはケーブルネットワーク、セルラー電話接続、衛星データ接続、又は他の任意の好適な接続を通して、このような接続を間接的に提供してもよい。
【0049】
特定の実施形態では、通信インターフェース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は、実行のために、リモートデバイスから命令を受信してもよく、又はリモートデバイスに命令を送信してもよい。
【0050】
いくつかの実施例では、システムメモリ616は、プロセッサ614による実行のために、ネットワーク通信プログラム638を記憶及び/又はロードし得る。一実施例では、ネットワーク通信プログラム638は、コンピューティングシステム610が、別のコンピューティングシステム(図6には図示せず)とのネットワーク接続642を確立すること、及び/又は通信インターフェース622を介して他のコンピューティングシステムと通信すること、を可能にする、ソフトウェアを含み得る、かつ/又はそれを表し得る。この実施例では、ネットワーク通信プログラム638は、ネットワーク接続642を介して他のコンピューティングシステムに送信される発信トラフィックの流れを指示し得る。付加的に、又は代替的に、ネットワーク通信プログラム638は、プロセッサ614と関連してネットワーク接続642を介して他のコンピューティングシステムから受信された着信トラフィックの処理を指示し得る。
【0051】
図6にはこのようには示されていないが、ネットワーク通信プログラム638は、代替として、通信インターフェース622に記憶及び/又はロードされ得る。例えば、ネットワーク通信プログラム638は、通信インターフェース622に組み込まれたプロセッサ及び/又は特定用途向け集積回路(ASIC)によって実行されるソフトウェア及び/又はファームウェアの少なくとも一部分を含み得る、かつ/又はそれを表し得る。
【0052】
図6に示すように、例示的なコンピューティングシステム610はまた、記憶インターフェース634を介して通信基盤612に連結された、一次記憶デバイス632及びバックアップ記憶デバイス633も含み得る。記憶デバイス632及び633は、一般に、データ及び/又は他のコンピュータ可読命令を記憶することができる、任意のタイプ又は形態の記憶デバイス又は媒体を表す。例えば、記憶デバイス632及び633は、磁気ディスクドライブ(例えば、いわゆるハードドライブ)、ソリッドステートドライブ、フロッピー(登録商標)ディスクドライブ、磁気テープドライブ、光ディスクドライブ、フラッシュドライブなどであり得る。記憶インターフェース634は、一般に、記憶デバイス632及び633とコンピューティングシステム610の他の構成要素との間でデータを転送するための、任意のタイプ又は形態のインターフェース又はデバイスを表す。一実施例では、図1からのデータストレージ120は、一次記憶デバイス632内に記憶及び/又はロードされ得る。
【0053】
特定の実施形態では、記憶デバイス632及び633は、コンピュータソフトウェア、データ、又は他のコンピュータ可読情報を記憶するように構成された取り外し可能な記憶ユニットから読み取る及び/又はそれに書き込むように構成され得る。好適な取り外し可能な記憶ユニットの例としては、非限定的に、フロッピー(登録商標)ディスク、磁気テープ、光ディスク、フラッシュメモリデバイスなどが挙げられる。記憶デバイス632及び633はまた、コンピュータソフトウェア、データ、又は他のコンピュータ可読命令がコンピューティングシステム610内にロードされることを可能にするための、他の同様の構造体又はデバイスを含んでもよい。例えば、記憶デバイス632及び633は、ソフトウェア、データ、又は他のコンピュータ可読情報を読み書きするように構成され得る。記憶デバイス632及び633はまた、コンピューティングシステム610の一部であってもよいし、又は他のインターフェースシステムを介してアクセスされる別個のデバイスであってもよい。
【0054】
他の多くのデバイス又はサブシステムが、コンピューティングシステム610に接続され得る。反対に、図6に示す構成要素及びデバイスの全てが、本明細書に記載及び/又は図示される実施形態を実践するために存在する必要があるわけではない。上で言及したデバイス及びサブシステムはまた、図6に示されるものとは異なる手段で相互接続されてもよい。コンピューティングシステム610はまた、任意の数のソフトウェア、ファームウェア、及び/又はハードウェア構成を用いてもよい。例えば、本明細書で開示する例示的な実施形態のうちの1つ以上は、コンピュータ可読媒体上で、コンピュータプログラム(コンピュータソフトウェア、ソフトウェアアプリケーション、コンピュータ可読命令、又はコンピュータ制御論理とも称される)としてコード化されてもよい。「コンピュータ可読媒体」という用語は、本明細書で使用される場合、一般に、コンピュータ可読命令を記憶又は保有することができる、任意の形態のデバイス、キャリア、又は媒体を指す。コンピュータ可読媒体の例としては、非限定的に、搬送波などの伝送型媒体、並びに磁気記憶媒体(例えば、ハードディスクドライブ、テープドライブ、及びフロッピー(登録商標)ディスク)、光学記憶媒体(例えば、コンパクトディスク(Compact Disk、CD)、デジタルビデオディスク(Digital Video Disk、DVD)、及びブルーレイ(BLU-RAY)ディスク(登録商標))、電子記憶媒体(例えば、ソリッドステートドライブ及びフラッシュ媒体)、並びに他の分散システムなどの非一時的媒体が挙げられる。
【0055】
コンピュータプログラムを包含するコンピュータ可読媒体は、コンピューティングシステム610内にロードされ得る。コンピュータ可読媒体に記憶されているコンピュータプログラムのうちの全て又は一部分は、次いで、システムメモリ616内に、並びに/又は記憶デバイス632及び633の様々な部分内に記憶され得る。プロセッサ614によって実行されると、コンピューティングシステム610内にロードされたコンピュータプログラムは、プロセッサ614に、本明細書に記載及び/若しくは図示される例示的な実施形態のうちの1つ以上の機能を実施させることができ、かつ/又はそれらを実施するための手段とすることができる。付加的に、又は代替的に、本明細書に記載及び/又は図示される例示的な実施形態のうちの1つ以上は、ファームウェア及び/又はハードウェアに実装されてもよい。例えば、コンピューティングシステム610は、本明細書に開示される例示的な実施形態のうちの1つ以上を実装するように適合された特定用途向け集積回路(ASIC)として構成され得る。
【0056】
図7は、クライアントシステム710、720、及び730、並びにサーバ740及び745がネットワーク750に連結され得る例示的なネットワークアーキテクチャ700のブロック図である。上で詳述したように、ネットワークアーキテクチャ700のうちの全て又は一部分は、単独で又は他の要素と組み合わせてのいずれかで、本明細書に開示されるステップのうちの1つ以上(図3に示されるステップのうちの1つ以上など)を実施し得る、かつ/又はそれを実施するための手段であり得る。ネットワークアーキテクチャ700のうちの全て又は一部分はまた、本開示に記載される他のステップ及び特徴を実施するために使用されてもよく、並びに/又はこれらを実施するための手段であってもよい。
【0057】
クライアントシステム710、720、及び730は、一般に、図6の例示的なコンピューティングシステム610など、任意のタイプ又は形態のコンピューティングデバイス又はシステムを表す。同様に、サーバ740及び745は、一般に、様々なデータベースサービスを提供する及び/又は特定のソフトウェアアプリケーションを実行するように構成された、アプリケーションサーバ又はデータベースサーバなどのコンピューティングデバイス又はシステムを表す。ネットワーク750は、一般に、例えば、イントラネット、WAN、LAN、PAN、又はインターネットを含む、任意の電気通信ネットワーク又はコンピュータネットワークを表す。一実施例では、クライアントシステム710、720、及び/若しくは730、並びに/又はサーバ740及び/若しくは745は、図1のシステム100のうちの全て又は一部分を含み得る。
【0058】
図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)デバイスを表してもよい。
【0059】
サーバ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は、一般に、データ及び/又は他のコンピュータ可読命令を記憶することができる、任意のタイプ又は形態の記憶デバイス又は媒体を表す。
【0060】
特定の実施形態では、及び図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は、データを交換するために(インターネットなどの)ネットワークを使用することを示しているが、本明細書に記載及び/又は図示される実施形態は、インターネット又は任意の特定のネットワークベースの環境に限定されない。
【0061】
少なくとも1つの実施形態では、本明細書に開示される例示的な実施形態のうちの1つ以上のうちの全て又は一部分は、コンピュータプログラムとしてコード化され、サーバ740、サーバ745、記憶デバイス760(1)~(N)、記憶デバイス770(1)~(N)、記憶デバイス790(1)~(N)、インテリジェント記憶アレイ795、又はこれらの任意の組み合わせ上にロードされ、これらによって実行され得る。本明細書に開示される例示的な実施形態のうちの1つ以上のうちの全て又は一部分はまた、コンピュータプログラムとしてコード化され、サーバ740に記憶され、サーバ745によって実行され、ネットワーク750を通じてクライアントシステム710、720、及び730に分散されてもよい。
【0062】
上で詳述したように、コンピューティングシステム610、及び/又はネットワークアーキテクチャ700の1つ以上の構成要素は、単独で又は他の要素と組み合わせて、ウェブトラッカの追跡防止回避技術からユーザデータプライバシーを保護するための例示的な方法の1つ以上のステップを実施してもよく、かつ/又は実施するための手段であってもよい。
【0063】
前述の開示は、特定のブロック図、フローチャート、及び実施例を使用して様々な実施形態を記載しているが、本明細書に記載及び/又は図示されるそれぞれのブロック図の構成要素、フローチャートのステップ、動作、及び/又は構成要素は、個別に及び/又は集合的に、広範なハードウェア、ソフトウェア、又はファームウェア(若しくはそれらの任意の組み合わせ)の構成を使用して実装されてもよい。加えて、同じ機能性を達成するように他の多くのアーキテクチャを実装することができるので、他の構成要素内に包含される構成要素のいかなる開示も、本質的に例示とみなされるべきである。
【0064】
いくつかの実施例では、図1の例示的なシステム100のうちの全て又は一部分は、クラウドコンピューティング環境又はネットワークベースの環境の部分を表してもよい。クラウドコンピューティング環境は、インターネットを介して、様々なサービス及びアプリケーションを提供してもよい。これらのクラウドベースのサービス(例えば、サービスとしてのソフトウェア、サービスとしてのプラットフォーム、サービスとしての基盤など)は、ウェブブラウザ又は他のリモートインターフェースを通してアクセス可能であってもよい。本明細書に記載される様々な機能は、リモートデスクトップ環境又は任意の他のクラウドベースのコンピューティング環境を通して提供されてもよい。
【0065】
様々な実施形態では、図1の例示的なシステム100のうちの全て又は一部分は、クラウドベースのコンピューティング環境内におけるマルチテナンシーを容易にしてもよい。換言すれば、本明細書に記載されるソフトウェアモジュールは、本明細書に記載される機能のうちの1つ以上に対するマルチテナンシーを容易にするように、コンピューティングシステム(例えば、サーバ)を構成してもよい。例えば、本明細書に記載されるソフトウェアモジュールのうちの1つ以上は、2つ以上のクライアント(例えば、顧客)がサーバ上で実行しているアプリケーションを共有するのを可能にするように、サーバをプログラムしてもよい。このようにプログラムされたサーバは、複数の顧客(すなわち、テナント)の間で、アプリケーション、オペレーティングシステム、処理システム、及び/又は記憶システムを共有してもよい。本明細書に記載されるモジュールのうちの1つ以上はまた、ある顧客が別の顧客のデータ及び/又は設定情報にアクセスできないように、顧客ごとにマルチテナントアプリケーションのデータ及び/又は設定情報を分割してもよい。
【0066】
様々な実施形態によれば、図1の例示的なシステム100のうちの全て又は一部分は、仮想環境内で実装されてもよい。例えば、本明細書に記載されるモジュール及び/又はデータは、仮想機械内で常駐及び/又は実行してもよい。本明細書で使用される場合、「仮想機械」という用語は、一般に、仮想機械マネージャ(例えば、ハイパーバイザ)によってコンピューティングハードウェアから抽象化される、任意のオペレーティングシステム環境を指す。付加的に、又は代替的に、本明細書に記載されるモジュール及び/又はデータは、仮想化層内で常駐及び/又は実行してもよい。本明細書で使用される場合、「仮想化層」という用語は、概して、オペレーティングシステム環境にオーバーレイする、かつ/又はそこから抽象化される、任意のデータ層及び/又はアプリケーション層を指す。仮想化層は、基礎となる基本オペレーティングシステムの一部であるかのように仮想化層を提示する、ソフトウェア仮想化ソリューション(例えば、ファイルシステムフィルタ)によって管理されてもよい。例えば、ソフトウェア仮想化ソリューションは、最初に基本ファイルシステム及び/又はレジストリ内の場所に方向付けられるコールを、仮想化層内の場所にリダイレクトしてもよい。
【0067】
いくつかの実施例では、図1の例示的なシステム100のうちの全て又は一部分は、モバイルコンピューティング環境の部分を表してもよい。モバイルコンピューティング環境は、携帯電話、タブレットコンピュータ、電子ブックリーダ、携帯情報端末、ウェアラブルコンピューティングデバイス(例えば、ヘッドマウントディスプレイを有するコンピューティングデバイス、スマートウォッチなど)などを含む、広範なモバイルコンピューティングデバイスによって実装されてもよい。いくつかの実施例では、モバイルコンピューティング環境は、例えば、バッテリ電力への依存、任意の所与の時間での1つのみのフォアグラウンドアプリケーションの提示、リモート管理特性、タッチスクリーン特性、場所及び移動データ(例えば、グローバルポジショニングシステム、ジャイロスコープ、加速度計などによって提供される)、システムレベルの構成への修正を制限する、かつ/又は第3者のソフトウェアが他のアプリケーションの挙動を検査する能力を限定する制限されたプラットフォーム、アプリケーションのインストールを(例えば、認可されたアプリケーションストアからのみ生じるように)制限する制御などを含む、1つ以上の個別の特性を有することができる。本明細書で説明される様々な機能は、モバイルコンピューティング環境に対して提供され得る、かつ/又はモバイルコンピューティング環境と相互作用し得る。
【0068】
加えて、図1の例示的なシステム100のうちの全て又は一部分は、情報管理のための1つ以上のシステムの部分を表してもよく、それと相互作用してもよく、それによって作成されるデータを消費してもよく、かつ/又はそれによって消費されるデータを作成してもよい。本明細書で使用される場合、「情報管理」という用語は、データの保護、組織化、及び/又は記憶を指してもよい。情報管理のためのシステムの例としては、非限定的に、記憶システム、バックアップシステム、アーカイブシステム、複製システム、高可用性システム、データ検索システム、仮想化システムなどを挙げることができる。
【0069】
いくつかの実施形態では、図1の例示的なシステム100のうちの全て又は一部分は、情報セキュリティのための1つ以上のシステムの部分を表してもよく、それによって保護されるデータを作成してもよく、かつ/又はそれと通信してもよい。本明細書で使用される場合、「情報セキュリティ」という用語は、保護されたデータに対するアクセスの制御を指してもよい。情報セキュリティのためのシステムの例としては、非限定的に、管理されたセキュリティサービスを提供するシステム、データ損失防止システム、本人認証システム、アクセス制御システム、暗号化システム、ポリシー遵守システム、侵入検出及び防止システム、電子証拠開示システムなどを挙げることができる。
【0070】
いくつかの実施例によれば、図1の例示的なシステム100のうちの全て又は一部分は、エンドポイントセキュリティのための1つ以上のシステムの部分を表してもよく、それと通信してもよく、かつ/又はそれから保護を受けてもよい。本明細書で使用される場合、「エンドポイントセキュリティ」という用語は、不正及び/若しくは違法な使用、アクセス、並びに/又は制御からのエンドポイントシステムの保護を指してもよい。エンドポイント保護のためのシステムの例としては、非限定的に、アンチマルウェアシステム、ユーザ認証システム、暗号化システム、プライバシーシステム、スパムフィルタリングサービスなどを挙げることができる。
【0071】
本明細書に記載及び/又は図示されるプロセスパラメータ及びステップの順序は、単なる例として与えられるものであり、所望に応じて変更することができる。例えば、本明細書に図示及び/又は記載されるステップは特定の順序で図示又は考察されることがあるが、これらのステップは、必ずしも図示又は考察される順序で実施される必要はない。本明細書に記載及び/又は図示される様々な例示的な方法はまた、本明細書に記載及び/又は図示されるステップのうちの1つ以上を省略してもよく、又は開示されるものに加えて追加のステップを含んでもよい。
【0072】
様々な実施形態が、完全に機能的なコンピューティングシステムの文脈において本明細書に記載及び/又は図示されているが、これら例示的な実施形態のうちの1つ以上は、実際に分散を行うために使用されるコンピュータ可読媒体の特定のタイプにかかわらず、様々な形態のプログラム製品として分散され得る。本明細書に開示される実施形態はまた、特定のタスクを実施するソフトウェアモジュールを使用して実装されてもよい。これらのソフトウェアモジュールは、コンピュータ可読記憶媒体又はコンピューティングシステムに記憶されてもよい、スクリプト、バッチ、若しくは他の実行可能ファイルを含んでもよい。いくつかの実施形態では、これらのソフトウェアモジュールは、本明細書に開示される例示的な実施形態のうちの1つ以上を実施するようにコンピューティングシステムを構成してもよい。
【0073】
加えて、本明細書に記載されるモジュールのうちの1つ以上は、データ、物理的デバイス、及び/又は物理的デバイスの表現を、1つの形態から別の形態へと変換してもよい。付加的に、又は代替的に、本明細書に列挙されるモジュールのうちの1つ以上は、コンピューティングデバイス上で実行し、コンピューティングデバイスにデータを記憶し、かつ/又は別の方法でコンピューティングデバイスと相互作用することによって、プロセッサ、揮発性メモリ、不揮発性メモリ、及び/又は物理的コンピューティングデバイスの任意の他の部分を、1つの形態から別の形態へと変換してもよい。
【0074】
上述の記載は、本明細書に開示される例示的な実施形態の様々な態様を他の当業者が最良に利用するのを可能にするために提供されてきた。この例示的な記載は、網羅的であることを意図するものではなく、又は開示される任意の正確な形態に限定することを意図するものではない。本開示の趣旨及び範囲から逸脱することなく、多くの修正形態及び変形形態が可能である。本明細書に開示される実施形態は、あらゆる点で例示的であり、限定的ではないとみなされるべきである。本開示の範囲を決定する際に、添付の特許請求の範囲及びそれらの等価物を参照するべきである。
【0075】
別途記載のない限り、「~に接続される」及び「~に連結される」という用語(並びにそれらの派生語)は、本明細書及び特許請求の範囲で使用される場合、直接的接続及び間接的接続(すなわち、他の要素若しくは構成要素を介する)の両方を許容するものとして解釈されるものである。加えて、「a」又は「an」という用語は、本明細書及び特許請求の範囲で使用される場合、「~のうち少なくとも1つ」を意味するものとして解釈されるものである。最後に、簡潔にするため、「含む」及び「有する」という用語(並びにそれらの派生語)は、本明細書及び特許請求の範囲で使用される場合、「備える」という単語と互換性があり、同じ意味を有する。
図1
図2
図3
図4
図5
図6
図7
【手続補正書】
【提出日】2024-03-12
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
ウェブトラッカのための追跡防止回避技術に対してユーザデータプライバシーを保護するコンピュータ実装方法であって、前記方法の少なくとも一部分が少なくとも1つのプロセッサを備えるコンピューティングデバイスによって実施され、前記方法は、
前記1つ以上のコンピューティングデバイスによって、ブラウザアプリケーションに表示されたウェブサイトに関連付けられたハイパーテキストマークアップ言語(HTML)を検出することと
前記1つ以上のコンピューティングデバイスによって、前記ウェブサイトからのウェブ追跡コードを実行することができる前記HTML内の1つ以上の要素を識別することと、
前記1つ以上のコンピューティングデバイスによって、前記HTML要素を前記ウェブサイトに埋め込むことを担うスクリプトプログラミングコードを記述する情報に基づいて、隠しウェブ追跡スクリプトの存在を判定することと、
前記1つ以上のコンピューティングデバイスによって、前記隠しウェブ追跡スクリプトが前記ブラウザアプリケーション内の前記ウェブ追跡コードを実行することを防止することによって、ユーザデータプライバシーの潜在的な侵害に対して保護するセキュリティアクションを実行することと、
を含む、コンピュータ実装方法。
【請求項2】
前記ウェブサイトに関連付けられた前記HTMLを検出することは、
前記ウェブサイト上に現在表示されているウェブページをレンダリングするHTML文書を検索することと、
前記HTML文書内の前記HTMLを検出することと、を含む、請求項1に記載のコンピュータ実装方法。
【請求項3】
前記ウェブ追跡コードを実行することができる前記HTMLを識別することは、スクリプトHTML要素を識別することを含む、請求項1に記載のコンピュータ実装方法。
【請求項4】
前記ウェブ追跡コードを実行することができる前記HTMLを識別することは、インラインフレーム(iframe)HTML要素を識別することを含む、請求項1又は2に記載のコンピュータ実装方法。
【請求項5】
隠しウェブ追跡スクリプトの前記存在を判定することは、
前記スクリプトプログラミングコードに関連付けられたドメインが、前記ウェブサイトのウェブページに関連付けられたドメインと無関係であると判定することと、
前記スクリプトプログラミングコードを前記隠しウェブ追跡スクリプトとして識別することと、を含む、請求項1に記載のコンピュータ実装方法。
【請求項6】
前記セキュリティアクションは、前記隠しウェブ追跡スクリプトがウェブ追跡識別子を生成するのを阻止することを含む、請求項1に記載のコンピュータ実装方法。
【請求項7】
前記ウェブ追跡識別子は、
ウェブ追跡クッキー、又は
ユーザデータを記憶するために利用されるローカルストレージ識別子のうちの少なくとも1つを含む、請求項6に記載のコンピュータ実装方法。
【請求項8】
前記セキュリティアクションは、前記隠しウェブ追跡スクリプトが、プライベートユーザデータを取得するために利用されるプログラミングコード関数を検索することを阻止することを含む、請求項1又は6に記載のコンピュータ実装方法。
【請求項9】
前記セキュリティアクションは、プライベートユーザデータを取得するために利用されるプログラミングコード関数を検索することを防止するように、前記隠しウェブ追跡スクリプトの実行を修正することを含む、請求項1又は6に記載のコンピュータ実装方法。
【請求項10】
プライベートユーザデータを取得するために利用されるプログラミングコード関数を検索することを防止するように前記隠しウェブ追跡スクリプトの実行を修正することは、前記プログラミングコード関数を検索するための要求を、無害なデータを検索するための要求に置き換えることを含む、請求項9に記載のコンピュータ実装方法。
【請求項11】
ウェブトラッカのための追跡防止回避技術に対してユーザデータプライバシーを保護するためのシステムであって、前記システムは、
少なくとも1つの物理プロセッサ、
コンピュータ実行可能命令及び1つ以上のモジュールを含む物理メモリであって、前記コンピュータ実行可能命令は、前記物理プロセッサによって実行されると、前記物理プロセッサに、
検出するための手段によって、ブラウザアプリケーションに表示されたウェブサイトに関連付けられたハイパーテキストマークアップ言語(HTML)を検出させ、
識別するための手段によって、前記ウェブサイトからのウェブ追跡コードを実行することが可能な前記HTML内の1つ以上の要素を識別させ、
判定するための手段によって、前記HTML要素を前記ウェブサイトに埋め込むことを担うスクリプトプログラミングコードを記述する情報に基づいて、隠しウェブ追跡スクリプトの存在を判定させ、
セキュリティのための手段によって、前記隠しウェブ追跡スクリプトが前記ブラウザアプリケーション内の前記ウェブ追跡コードを実行することを防止することによって、ユーザデータプライバシーの潜在的な侵害に対して保護するセキュリティアクションを実行させる、物理メモリと、
を備える、システム。
【請求項12】
前記検出するための手段は、前記ウェブサイトに関連付けられた前記HTMLを、
前記ウェブサイト上に現在表示されているウェブページをレンダリングするHTML文書を検索することと、
前記HTML文書内の前記HTMLを検出することと、によって検出する、請求項11に記載のシステム。
【請求項13】
前記識別するための手段は、スクリプトHTML要素を識別することによって、前記ウェブ追跡コードを実行することができる前記HTMLを識別する、請求項11に記載のシステム。
【請求項14】
前記識別するための手段は、インラインフレーム(iframe)HTML要素を識別することによって、前記ウェブ追跡コードを実行することができる前記HTMLを識別する、請求項11又は13に記載のシステム。
【請求項15】
前記判定するための手段は、隠しウェブ追跡スクリプトの前記存在を、
前記スクリプトプログラミングコードに関連付けられたドメインが、前記ウェブサイトのウェブページに関連付けられたドメインと無関係であると判定することと、
前記スクリプトプログラミングコードを前記隠しウェブ追跡スクリプトとして識別することと、によって判定する、請求項11に記載のシステム。
【国際調査報告】