(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-10-30
(45)【発行日】2023-11-08
(54)【発明の名称】暗号学的に安全な要求の検証
(51)【国際特許分類】
G06F 21/62 20130101AFI20231031BHJP
G06F 21/64 20130101ALI20231031BHJP
【FI】
G06F21/62 318
G06F21/64
(21)【出願番号】P 2022548001
(86)(22)【出願日】2020-10-27
(86)【国際出願番号】 US2020057554
(87)【国際公開番号】W WO2022093202
(87)【国際公開日】2022-05-05
【審査請求日】2022-09-21
(73)【特許権者】
【識別番号】502208397
【氏名又は名称】グーグル エルエルシー
【氏名又は名称原語表記】Google LLC
【住所又は居所原語表記】1600 Amphitheatre Parkway 94043 Mountain View, CA U.S.A.
(74)【代理人】
【識別番号】100108453
【氏名又は名称】村山 靖彦
(74)【代理人】
【識別番号】100110364
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100133400
【氏名又は名称】阿部 達彦
(72)【発明者】
【氏名】ガン・ワン
(72)【発明者】
【氏名】セルゲイ・アクリッチ
(72)【発明者】
【氏名】スティーブン・ダブリュー・ルップ
(72)【発明者】
【氏名】シュリーダー・マダヴァペッディ
【審査官】岸野 徹
(56)【参考文献】
【文献】特表2008-525863(JP,A)
【文献】特開2012-137995(JP,A)
【文献】特開2006-048653(JP,A)
【文献】特開2020-068388(JP,A)
【文献】米国特許出願公開第2019/0199530(US,A1)
【文献】米国特許出願公開第2013/0036304(US,A1)
【文献】国際公開第2006/041462(WO,A2)
【文献】米国特許出願公開第2006/0002556(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 21/62
G06F 21/64
(57)【特許請求の範囲】
【請求項1】
エンティティがユーザのデータをどのようにして収集、記憶、および使用するかを定義するデータプライバシー設定を前記ユーザが指定することを可能にするユーザインターフェースコントロールを提示するためにクライアントデバイスのユーザインターフェースを更新するステップと、
前記ユーザインターフェースコントロールのうちの1つまたは複数とのユーザインタラクションに基づいて、前記クライアントデバイスから、1つまたは複数のエンティティに関するデータプライバシー設定を修正する要求を受信するステップであって、前記要求が、前記ユーザの短期ユーザ識別子およびアテステーショントークンを含み、前記短期ユーザ識別子が、前記クライアントデバイスの電話番号に基づく、ステップと、
少なくとも前記ユーザの前記短期ユーザ識別子および前記アテステーショントークンを使用して前記要求の有効性を確認するステップと、
前記要求の有効性の確認に応じて、前記1つまたは複数のエンティティの各々に、前記修正された所与のデータプライバシー設定に基づいてユーザデータの使用法を修正するよう前記エンティティに命令するデータを送信するステップとを含む、コンピュータによって実施される方法。
【請求項2】
前記ユーザインターフェースを更新する前に、
パブリッシャから、前記ユーザの前記電話番号に関する講読トークンを要求するトークン要求を受信するステップと、
前記クライアントデバイスに、(i)前記ユーザインターフェースを含む電子リソースのリソースロケータ、および(ii)前記ユーザの前記短期ユーザ識別子を含むメッセージを送信するステップとをさらに含む請求項1に記載のコンピュータによって実施される方法。
【請求項3】
前記短期ユーザ識別子が、前記ユーザの(i)前記電話番号または(ii)電子メールアドレスを暗号化することによって生成された暗号化された結果を含む請求項1または2に記載のコンピュータによって実施される方法。
【請求項4】
前記要求が、前記クライアントデバイスの公開鍵をさらに含み、
前記要求の有効性を確認するステップが、前記短期ユーザ識別子と前記クライアントデバイスの前記公開鍵との間の関連付けを検証することをさらに含む請求項1から3のいずれか一項に記載のコンピュータによって実施される方法。
【請求項5】
前記短期ユーザ識別子を検証することが、
前記短期ユーザ識別子を復号しようと試みることと、
前記短期ユーザ識別子が成功裏に復号されるときに、前記短期ユーザ識別子が成功裏に検証されると判定することとを含む請求項4に記載のコンピュータによって実施される方法。
【請求項6】
前記アテステーショントークンおよび前記更新された設定を監査ログに記憶するステップをさらに含む請求項1から5のいずれか一項に記載のコンピュータによって実施される方法。
【請求項7】
前記要求が、ウェブクッキーを含み、
前記要求の有効性を確認するステップが、
前記短期ユーザ識別子を復号することと、
前記短期ユーザ識別子を使用して前記ウェブクッキーを検証することとを含む請求項1から6のいずれか一項に記載のコンピュータによって実施される方法。
【請求項8】
前記アテステーショントークンが、
1組のデータ、および
前記1組のデータのデジタル署名を含み、
前記アテステーショントークンを検証することが、前記1組のデータに基づいて、前記デジタル署名が有効であると判定することを含む請求項1から7のいずれか一項に記載のコンピュータによって実施される方法。
【請求項9】
前記アテステーショントークンが、前記アテステーショントークンが作成された時間を示すトークン作成タイムスタンプを含み、
前記アテステーショントークンを検証することが、前記アテステーショントークンが作成された前記時間が前記要求が受信された時間の閾値の継続時間以内であると判定することを含む請求項1から8のいずれか一項に記載のコンピュータによって実施される方法。
【請求項10】
前記アテステーショントークンが、前記クライアントデバイスまたは前記クライアントデバイス上で実行されるアプリケーションの信頼性の判断を含む完全性トークンを含み、
前記アテステーショントークンを検証することが、前記完全性トークンを検証することを含む請求項1から9のいずれか一項に記載のコンピュータによって実施される方法。
【請求項11】
1つまたは複数のプロセッサと、
前記1つまたは複数のプロセッサによって実行されるとき、前記1つまたは複数のプロセッサに請求項1から10のいずれか一項に記載の方法を実行させる命令を記憶する1つまたは複数のストレージデバイスとを含むシステム。
【請求項12】
1つまたは複数のプロセッサによって実行されるとき、前記1つまたは複数のプロセッサに請求項1から10のいずれか一項に記載の方法を実行させる命令を運ぶコンピュータ可読ストレージ媒体。
【請求項13】
コンピュータによって実行されるとき、前記コンピュータに請求項1から10のいずれか一項に記載の方法のステップを実行させる命令を含む
コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本明細書は、データセキュリティおよび暗号技術に関する。
【背景技術】
【0002】
クライアントデバイスは、インターネットなどの公共ネットワーク上で要求およびその他のデータを送信する。これらの通信は、通信を傍受する者および/または通信を受信し、他者に転送する仲介者などの他者によって変更され得る。また、クライアントデバイスは、ユーザが知ることまたは認可することなしに不正な要求を送信するウイルスおよびマルウェアなどの悪意のある攻撃にさらされる。さらに、他者が、クライアントデバイスをエミュレートして、クライアントデバイスから生じるように見えるが、実際には他者のデバイスからくる要求を送信し得る。
【0003】
クライアントデバイスのユーザは、アプリケーション(たとえば、ウェブブラウザまたはネイティブアプリケーション)を使用して、様々なコンテンツプロバイダ(たとえば、検索エンジン、ソーシャルメディアプラットフォーム、ウェブサイトパブリッシャなど)からコンテンツを取得することができる。クライアントデバイスとコンテンツプロバイダのサーバとの間の通信は、デジタルコンテンツと引き換えに、名前、電子メールアドレス、電話番号などの機密情報(たとえば、ユーザの個人情報(PII: personally identifiable information))の共有を含み得る。たとえば、講読に基づくコンテンツ配信は、ユーザにコンテンツを配信するためにPIIを使用し得る。
【発明の概要】
【課題を解決するための手段】
【0004】
本明細書は、ユーザのプライバシーを保護することに関するテクノロジーを説明する。概して、本明細書に記載の対象の1つの革新的な態様は、所与のユーザに関する講読トークンの要求を、データセキュリティシステムによって、パブリッシャのパブリッシャコンピューティングシステムから受信するステップを含む方法に具現化され得る。要求は、パブリッシャの電子コンテンツを購読するときに所与のユーザによってパブリッシャに提供されたユーザ識別情報を含む。講読トークンの要求の受信に応じて、データセキュリティシステムは、パブリッシャおよび所与のユーザのために講読トークンを生成する。講読トークンは、(i)データセキュリティシステムの暗号化鍵を使用して、所与のユーザを特定するためにデータセキュリティシステムによって使用される所与のユーザの第1のユーザ識別子を暗号化することによって生成された第1の暗号化されたユーザ識別子を含む1組のデータと、1つまたは複数のコンテンツプラットフォームの各々に関して、(ii)コンテンツプラットフォームの暗号化鍵を使用して、所与のユーザを特定するためにコンテンツプラットフォームによって使用される所与のユーザの第2のユーザ識別子を暗号化し、講読トークンをパブリッシャコンピューティングシステムに送信することによって生成された第2の暗号化されたユーザ識別子を含む付属要素とを含む。この態様のその他の実装は、コンピュータストレージデバイス上に符号化された、方法の態様を実行するように構成された対応する装置、システム、およびコンピュータプログラムを含む。
【0005】
これらのおよびその他の実装は、任意で、以下の特徴のうちの1つまたは複数をそれぞれ含み得る。一部の態様において、データセキュリティシステムは、電子メールプロバイダのコンピューティングシステムを含み、ユーザ識別情報は、電子メールプロバイダでの所与のユーザの電子メールアカウントのための所与のユーザの電子メールアドレスを含む。
【0006】
一部の態様において、所与のユーザの第1のユーザ識別子は、(i)電子メールプロバイダでの所与のユーザの電子メールアカウントのための所与のユーザの電子メールアドレス、または(ii)所与のユーザの電子メールアドレスに対応する別のユーザ識別子のうちの1つを含む。一部の態様において、ユーザ識別情報は、所与のユーザの電話番号を含む。
【0007】
一部の態様において、各コンテンツプラットフォームに関する付属要素は、データセキュリティシステムのプライベート鍵を使用して生成された、1組のデータおよび付属要素の第2の暗号化されたユーザ識別子のデジタル署名を含む。一部の態様において、講読トークンは、1組のデータおよび各付属要素のデジタル署名を含む。
【0008】
一部の態様において、パブリッシャコンピューティングシステムは、前の要求のそれぞれの第1の暗号化されたユーザ識別子を含む、所与のユーザに関する更新された講読トークンをそれぞれ求める反復的な更新要求を受信する。一部の態様においては、各更新要求に関して、前の要求の第1の暗号化されたユーザ識別子とは異なる更新された第1の暗号化されたユーザ識別子が、生成される。一部の態様において、更新された講読トークンは、更新された第1の暗号化されたユーザ識別子を含む更新された1組のデータおよび各付属要素を含む。それぞれの更新された講読トークンは、パブリッシャコンピューティングシステムに送信される。
【0009】
一部の態様において、更新された講読トークンは、講読トークンが生成されてからユーザによって更新された更新されたデータプライバシー設定をさらに含む。一部の態様において、パブリッシャおよび所与のユーザのために講読トークンを生成することは、各コンテンツプラットフォームがパブリッシャおよびユーザによって適格なコンテンツプラットフォームであるとして指定され、コンテンツプラットフォームであるそれぞれの適格なコンテンツプラットフォームがパブリッシャの電子リソースとともに所与のユーザに提示するためのデジタルコンポーネントを選択するのに適格であるように、1つまたは複数のコンテンツプラットフォームを特定することを含む。
【0010】
一部の態様において、パブリッシャおよび所与のユーザのために講読トークンを生成することは、パブリッシャおよびユーザによって適格なコンテンツプラットフォームであるとして指定された各コンテンツプラットフォームならびにコンテンツプラットフォームであるそれぞれの適格なコンテンツプラットフォームが所与のユーザのデータを収集、記憶、および使用するのに適格であるように、1つまたは複数のコンテンツプラットフォームを特定することを含む。
【0011】
一部の態様において、所与のユーザのクライアントデバイスは、1組のパブリッシャおよび1組のコンテンツプラットフォームによる所与のユーザのデータの使用を所与のユーザが管理することを可能にするインタラクティブなユーザインターフェースを提供される。一部の態様において、インタラクティブなユーザインターフェースは、パブリッシャのコンテンツとともに提示するためのデジタルコンポーネントを選択するための、パブリッシャと提携するコンテンツプラットフォームを特定するデータを含み、所与のユーザのデータを取得し、記憶するのに適格である1つまたは複数のコンテンツプラットフォームを所与のユーザが選択することを可能にする。さらに、インタラクティブなユーザインターフェースは、ユーザが、所与のユーザに関するデータを取得し、記憶するのに適格である1つまたは複数のパブリッシャを選択し、また、所与のユーザのデータが各コンテンツプラットフォームおよび各パブリッシャによって使用されるのに適格である1つまたは複数の方法を選択することを可能にする。さらに、インタラクティブなユーザインターフェースは、ユーザが、1つもしくは複数のコンテンツプラットフォームまたは1つもしくは複数のパブリッシャに、所与のユーザに関するデータを削除するように要求することを可能にする。
【0012】
一部の態様において、データセキュリティシステムは、所与のユーザのクライアントデバイスから受信されたデータに基づいて、所与のユーザがパブリッシャを所与のユーザに関するデータを取得し、記憶するのに不適格として指定したことを検出する。一部の態様において、検出後、データセキュリティシステムは、パブリッシャコンピューティングシステムから、所与のユーザに関する更新された講読トークンの要求を受信する。データセキュリティシステムは、所与のユーザがパブリッシャをユーザのデータを取得し、記憶するのに不適格として指定したことの検出に応じて、所与のユーザに関する更新された講読トークンをパブリッシャコンピューティングシステムに提供しないことを決定する。
【0013】
一部の態様において、データセキュリティシステムは、所与のユーザのクライアントデバイスから受信されたデータに基づいて、所与のユーザがパブリッシャを所与のユーザに関するデータを取得し、記憶するのに不適格として指定したことを検出する。一部の態様において、検出後、データセキュリティシステムは、パブリッシャコンピューティングシステムから、所与のユーザに関する更新された講読トークンの要求を受信する。データセキュリティシステムは、所与のユーザが所与のコンテンツプラットフォームを所与のユーザに関するデータを取得し、記憶するのに不適格として指定したことの検出に応じて、更新された講読トークンとともに所与のコンテンツプラットフォームに関する付属要素を含めないことを決定する。
【0014】
概して、本明細書に記載の対象の別の態様は、エンティティがユーザのデータをどのように使用するかを定義するデータプライバシー設定をユーザが指定すること可能にするユーザインターフェースコントロールを提示するためにユーザインターフェースを更新するアクションを含む方法に具現化され得る。1つまたは複数のエンティティに関するデータプライバシー設定を修正する要求は、ユーザの短期ユーザ識別子(ephemeral user identifier)およびアテステーション(attestation)トークンを含むユーザインターフェースコントロールのうちの1つまたは複数とのユーザインタラクションに基づいてクライアントデバイスから受信され、短期ユーザ識別子は、クライアントデバイスの電話番号に基づく。要求は、少なくともユーザの短期ユーザ識別子およびアテステーショントークンを使用して有効性を確認され、要求の有効性の確認に応じて、修正された所与のデータプライバシー設定に基づいてユーザデータの使用法を修正するようにエンティティに命令するデータが、1つまたは複数のエンティティの各々に送信される。この態様のその他の実装は、コンピュータストレージデバイス上に符号化された、方法の態様を実行するように構成された対応する装置、システム、およびコンピュータプログラムを含む。
【0015】
これらのおよびその他の実装は、任意で、以下の特徴のうちの1つまたは複数をそれぞれ含み得る。一部の態様においては、ユーザインターフェースを更新する前に、ユーザの電話番号に関する講読トークンを要求するトークン要求が、パブリッシャから受信され、(i)ユーザインターフェースを含む電子リソースのリソースロケータ、および(ii)ユーザの短期ユーザ識別子を含むメッセージが、クライアントデバイスに送信される。
【0016】
一部の態様において、短期ユーザ識別子は、ユーザの電話番号または電子メールアドレスを暗号化することによって生成された暗号化された結果を含む。一部の態様において、要求は、クライアントデバイスの公開鍵をさらに含み、要求の有効性を確認することは、短期ユーザ識別子とクライアントデバイスの公開鍵との間の関連付けを検証することをさらに含む。
【0017】
一部の態様において、短期ユーザ識別子を検証することは、短期ユーザ識別子を復号しようと試みることと、短期ユーザ識別子が成功裏に復号されるときに、短期ユーザ識別子が成功裏に検証されると判定することとを含む。
【0018】
一部の態様において、アテステーショントークンおよび更新された設定は、監査ログに記憶される。
【0019】
一部の態様において、要求は、ウェブクッキーを含む。一部の態様において、要求の有効性を確認することは、短期ユーザ識別子を復号することと、短期ユーザ識別子を使用してウェブクッキーを検証することとを含む。
【0020】
一部の態様において、アテステーショントークンは、1組のデータおよび1組のデータのデジタル署名を含む。一部の態様において、アテステーショントークンを検証することは、1組のデータに基づいて、デジタル署名が有効であると判定することを含む。
【0021】
一部の態様において、アテステーショントークンは、アテステーショントークンが作成された時間を示すトークン作成タイムスタンプを含み、アテステーショントークンを検証することは、アテステーショントークンが作成された時間が要求が受信された時間の閾値の継続時間以内であると判定することを含む。
【0022】
一部の態様において、アテステーショントークンは、クライアントデバイスまたはクライアントデバイス上で実行されるアプリケーションの信頼性の判断を含む完全性トークン(integrity token)を含み、アテステーショントークンを検証することは、完全性トークンを検証することを含む。
【0023】
本明細書に記載の対象は、以下の利点のうちの1つまたは複数を実現するように特定の実施形態に実装され得る。オンラインエコシステム全体にわたってデータプライバシー設定を管理するためのプラットフォームをユーザに提供することは、どのオンラインエンティティが機密情報を含む可能性があるユーザのデータにアクセスすることができるかをユーザが見通すことができるようにし、どのエンティティがユーザのデータを保存することができ、エンティティがユーザのデータをどのように使用するかをユーザが制御することを可能にする。プライバシー設定のこの透明性があり効率的な制御は、どのオンラインエンティティがユーザデータにアクセスすることができるか、どのオンラインエンティティがユーザデータにアクセスすることができないか、および各エンティティがどのようにしてデータを記憶および使用するかをユーザが決定することを可能にする。既存の技術と比較して、本明細書に記載の方法は、第三者エンティティとの機密のユーザ情報の共有をさらに防ぎ、それによって、ユーザのプライバシーを維持する。
【0024】
技術は、データ配信およびユーザプライバシープロトコルの遵守を検証し、ユーザデータを悪用している可能性があるすべてのルージュエンティティ(rouge entity)を特定するために、ユーザデータにアクセスすることができるオンラインエンティティを監査する目的で、ユーザプライバシー設定およびプライバシー設定を修正するユーザアクションなどの情報を記憶することを含み得る。技術は、それぞれ1人または複数の受信者に関するものである1つまたは複数の付属要素を有する講読トークンを使用することを含み、各付属要素は、その受信者のためのデータ、たとえば、暗号化されたデータを含み得る。講読トークン内に各エンティティに関するデータを含めるのではなく、講読トークンとともに別々のデータ構造として付属要素を含めることによって、講読トークンを検証する受信者の能力に影響を与えることなく、付属要素がメッセージ全体またはその他の電子的な通信から削除され得る。これは、受信者のうちの1人が講読トークンおよび付属要素のすべてを受信し、それぞれのその他の受信者に関して、その受信者に関する付属要素のみを講読トークンとともに転送することを可能にする。
【0025】
さらに、これは、アテステーショントークンを検証するために必要とされる処理能力および計算リソース(たとえば、CPUサイクル)を削減する。たとえば、各受信者に関するデータがアテステーショントークンに含まれていた場合、受信者のデバイスは、アテステーショントークンのデジタル署名を検証するために、アテステーショントークンのその他のデータに加えてこのデータのすべてをスキャンすることを要求される。各受信者に関する付属要素を生成することによって、各受信者のデバイスは、たとえば、各受信者に関するデータをスキャンすることなく、署名を検証するためにその他のアテステーションデータをスキャンしさえすればよい。さらに、これは、受信者のデータをその他の受信者に提供しないことによって、各受信者のデータをより安全に保護する。たとえデータがアテステーショントークン内で暗号化されるとしても、暗号化されたデータは、データを復号する方法を見つける別のエンティティに対して脆弱である。
【0026】
一部の実装において、各付属要素のそれぞれのデジタル署名ではなく、付属要素のすべてを含む講読トークン全体の単一のデジタル署名を含むことによって、講読トークンのデータサイズが削減され得る。これは、講読トークンのデータストレージの要件を下げ、クライアントデバイスから講読トークンを送信するときの帯域幅の消費を削減することができる。1日あたり数千または数百万回の送信について集計されると、これは、データストレージおよび帯域幅を大幅な節約をもたらし得る。
【0027】
電子メールプロバイダは、ユーザが自分のデータが様々なオンラインエンティティによってどのように使用されるかを管理することを可能にするメカニズム、たとえば、プラットフォームおよび/またはユーザインターフェースを提供する中央機関として働き得る。このようにして、ユーザは、ユーザの潜在的な機密データを記憶するために、ユーザが既に信頼しているエンティティによって自分のデータが1つの集中的な場所においてどのように使用されるかをより簡単に管理することができる。
【0028】
電子メールプロバイダまたはその他の中央機関は、ユーザのデータを使用して、そのようなデータに基づいてユーザのためのコンテンツ、たとえば、デジタルコンポーネントを選択するコンテンツプラットフォームと連携するパブリッシャに講読トークンを発行することができる。これらのトークンは、その他のエンティティがユーザを追跡することを防止し、コンテンツプラットフォームがそれらの同意設定に従ってユーザデータを使用していることを証明することを可能にし、そのようなデータの改ざんを防止する暗号化およびプライバシー保護の機能を含む。ユーザは、中央機関(たとえば、電子メールプロバイダ)によって提供されるユーザインターフェースとインタラクションすることによって、どのエンティティが自分のデータを受信および/または使用し得るかを容易に管理することができ、エンティティがブロックされる場合、中央機関は、エンティティが講読トークンを受信することができないようにする、および/または(たとえば、トークンとともにユーザのエンティティのユーザ識別子を含む付属要素を提供しないことにより)トークンをユーザと相互に関連付けることを防止することができる。
【0029】
歴史的に、インターネットを介してクライアントデバイスからデータを収集するために、サードパーティクッキー(すなわち、クライアントデバイスによってレンダリングされているリソースとは異なるドメインからのクッキー)が使用されてきた。ただし、一部のブラウザは、サードパーティクッキーの使用をブロックしており、それによって、サードパーティクッキーを使用するデータの収集を防止する。これは、収集されたデータを利用してオンラインブラウジング体験を向上させようと試みるときに問題を生じる。言い換えると、サードパーティクッキーを使用しないと、以前に収集されたデータの多くが、もはや利用不可能になり、このことは、コンピューティングシステムがそのデータを使用することができないようにする。本明細書に記載の講読トークンは、同様の機能を、ただし、ユーザに対して透明性のある方法で可能にし、ユーザが自分のデータがどのように収集され、使用されるかをきめ細かく制御することを可能にする。
【0030】
講読トークンの受信者は、その他の受信者に関する付属要素を削除することによってデータストレージの要件を下げることができる。トークンが複数のイベントに関してユーザデータを使用するためのユーザの同意を与えるとき、複数のイベントに関して単一のトークンを記憶することによって、データストレージの要件がさらに下げられ得る。その代わりに、監査ログが、各イベントに関して、対応する講読トークンの識別子または参照を含み得る。講読トークンを含む要求またはその他の通信毎ではなく、特定の時間の期間毎に講読トークンを発行することによって、トークンを生成するために必要とされる計算リソースの量が削減され、講読トークンをパブリッシャに配信するために消費される帯域幅の量が削減され、受信者による講読トークンの記憶のためのデータストレージの要件が下げられる。
【0031】
上述の対象の様々な特徴および利点が、図面に関連して下で説明される。さらなる特徴および利点は、本明細書および請求項において説明される対象から明らかである。
【図面の簡単な説明】
【0032】
【
図1】データセキュリティシステムがユーザデータのセキュリティおよびプライバシーを管理する環境のブロック図である。
【
図2】電子メールプロバイダおよび中央機関がユーザデータのセキュリティおよびプライバシーを管理する例示的な環境のブロック図である。
【
図3】講読トークンを使用してデジタルコンポーネントを提供するための例示的なプロセスのスイムレーン図である。
【
図4】講読トークンを生成するための例示的なプロセスの流れ図である。
【
図5】講読トークンを更新するための例示的なプロセスの流れ図である。
【
図6】データセキュリティシステムによって提供されるアプリケーションを使用して短期ユーザ識別子を受信するための例示的なプロセスのスイムレーン図である。
【
図7】ユーザがデータプライバシー設定を調整することを可能にするユーザインターフェースを生成し、提供するための例示的なプロセスのスイムレーン図である。
【
図8】データセキュリティシステムによって提供されるアプリケーションを使用してユーザデータを削除するための例示的なプロセスのスイムレーン図である。
【
図9】データセキュリティシステムのウェブベースのユーザインターフェースにアクセスするための例示的なプロセスのスイムレーン図である。
【
図10】ユーザインターフェースコントロールを使用して、修正されたデータプライバシー設定に基づいてユーザデータの使用法を修正するための例示的なプロセスの流れ図である。
【
図11】例示的なコンピュータシステムのブロック図である。
【発明を実施するための形態】
【0033】
様々な図面における同様の参照番号および参照指示は、同様の要素を示す。
【0034】
概して、本明細書は、ユーザが中央プラットフォームから、安全で暗号学的に証明可能な方法で、オンラインエコシステム全体のデータプライバシー設定を管理することを可能にするシステムおよび技術を説明する。技術は、ユーザのデータが収集および/または記憶され得るかどうかと、もしそうである場合に、そのデータがどのようにして、どの継続時間の間使用されるのかとを定義する、コンテンツプラットフォームなどのオンラインエンティティへのパーミッションを各ユーザが制御(たとえば、許可および/または取り消し)することを可能にする。
【0035】
1つまたは複数のデータセキュリティシステムは、それぞれ、講読トークンを使用して、ユーザのデータプライバシーを管理する(たとえば、どのエンティティがユーザのデータを収集、記憶、および使用し得るかを管理する)中央プラットフォームとして働くことができる。一部の実装において、データセキュリティシステムは、電子メールプロバイダによって運用されることが可能であり、各電子メールプロバイダは、電子メールプロバイダに電子メールアカウントを有するユーザのデータプライバシーを管理することができる。デフォルトのデータセキュリティシステムは、参加する電子メールプロバイダの電子メールアカウントを確かに有するユーザのデータプライバシーを管理することができる。
【0036】
図1は、データセキュリティシステム180がユーザデータのセキュリティおよびプライバシーを管理する環境100のブロック図である。例示的な環境100は、ローカルエリアネットワーク(LAN)、広域ネットワーク(WAN)、インターネット、モバイルネットワーク、またはこれらの組合せなどのデータ通信ネットワーク105を含む。ネットワーク105は、クライアントデバイス110、デジタルコンポーネントプロバイダ170、デマンドサイドプラットフォーム(DSP)160、サプライサイドプラットフォーム(SSP)150、データセキュリティシステム180、パブリッシャ140、およびウェブサイト142を接続する。例示的な環境100は、多くの異なるクライアントデバイス110、デジタルコンポーネントプロバイダ170、DSP 160、SSP 150、データセキュリティシステム180、パブリッシャ140、およびウェブサイト142を含んでよい。
【0037】
クライアントデバイス110は、ネットワーク105を介して通信することができる電子デバイスである。例示的なクライアントデバイス110は、パーソナルコンピュータ、モバイル通信デバイス、たとえば、スマートフォン、およびネットワーク105を介してデータを送受信することができるその他のデバイスを含む。クライアントデバイスは、マイクロフォンを通じてオーディオ入力を受け付け、スピーカを通じてオーディオ出力を出力するデジタルアシスタントデバイスも含み得る。デジタルアシスタントは、オーディオ入力を受け付けるためにマイクロフォンを作動させる「ホットワード」または「ホットフレーズ」を検出するときに、(たとえば、オーディオ入力を受け付ける準備ができている)リスニングモードにされ得る。デジタルアシスタントデバイスは、画像を取り込み、情報を視覚的に提示するためのカメラおよび/またはディスプレイを含むこともできる。デジタルアシスタントは、ウェアラブルデバイス(たとえば、腕時計もしくは眼鏡)、スマートフォン、スピーカデバイス、タブレットデバイス、またはその他のハードウェアデバイスを含む、異なる形態のハードウェアデバイスに実装され得る。クライアントデバイスは、デジタルメディアデバイス、たとえば、テレビまたはその他のディスプレイに接続されてテレビにビデオをストリーミングするストリーミングデバイスを含むこともできる。
【0038】
概して、クライアントデバイス110は、ネットワーク105を介したデータの送受信を容易にするための、ウェブブラウザおよび/またはネイティブアプリケーションなどのアプリケーション112を含む。ネイティブアプリケーションは、特定のプラットフォームまたは特定のデバイス(たとえば、特定のオペレーティングシステムを有するモバイルデバイス)向けに開発されたアプリケーションである。パブリッシャ140は、ネイティブアプリケーションを開発し、クライアントデバイス110に提供する、たとえば、ダウンロードを可能にすることができる。ウェブブラウザは、たとえば、クライアントデバイス110のユーザによるウェブブラウザのアドレスバーへのリソース145のリソースアドレスの入力またはリソースアドレスを参照するリンクの選択に応じて、パブリッシャ140のウェブサイト142をホストするウェブサーバにリソース145を要求することができる。同様に、ネイティブアプリケーションが、パブリッシャのリモートサーバにアプリケーションのコンテンツを要求し得る。
【0039】
クライアントデバイス110は、信頼できるプログラム111をさらに含み得る。信頼できるプログラム111は、改ざんすることが難しい信頼性の高いソースからの信頼できるコードを含み得る。たとえば、信頼できるプログラム111は、オペレーティングシステム、オペレーティングシステムの一部、ウェブブラウザなどであることが可能である。一部の実装において、信頼できるプログラム111は、クライアントデバイス110上で信頼できるプログラム111によってのみアクセス可能な、クライアントデバイス110のための安全なストレージ(たとえば、鍵ストア114)を含むこともできる。
【0040】
一部のリソース、アプリケーションページ、またはその他のアプリケーションのコンテンツは、リソース145またはアプリケーションページとともにデジタルコンポーネントを提示するためのデジタルコンポーネントスロットを含み得る。デジタルコンポーネントスロットは、デジタルコンポーネントを要求するためのコンピュータ可読コードを含む、リソースに埋め込まれたデジタルコンポーネントタグであることが可能である。本明細書全体を通じて使用されるとき、語句「デジタルコンポーネント」は、デジタルコンテンツまたはデジタル情報の別々の単位(たとえば、ビデオクリップ、オーディオクリップ、マルチメディアクリップ、画像、テキスト、またはコンテンツの別の単位)を指す。デジタルコンポーネントは、物理的なメモリデバイスに単一のファイルとしてまたはファイルの集合に電子的に記憶されることが可能であり、デジタルコンポーネントは、ビデオファイル、オーディオファイル、マルチメディアファイル、画像ファイル、またはテキストファイルの形態を取り、広告が一種のデジタルコンポーネントであるように広告情報を含むことが可能である。たとえば、デジタルコンポーネントは、アプリケーション112によって提示されるウェブページまたはその他のリソースのコンテンツを補完するように意図されるコンテンツであってよい。より詳細には、デジタルコンポーネントは、リソースのコンテンツに関連するデジタルコンテンツを含んでよい(たとえば、デジタルコンポーネントは、ウェブページのコンテンツと同じトピックまたは関連するトピックに関連する場合がある)。したがって、デジタルコンポーネントの提供は、ウェブページまたはアプリケーションのコンテンツを補完し、概して向上させることができる。
【0041】
アプリケーション112が1つまたは複数のデジタルコンポーネントスロットを含むリソース(またはアプリケーションのコンテンツ)をロードするとき、アプリケーション112は、各スロットのためのデジタルコンポーネントを要求し得る。一部の実装において、デジタルコンポーネントスロットは、アプリケーション112に、クライアントデバイス110のユーザに提示するためのデジタルコンポーネントを要求させるコード(たとえば、スクリプト)を含むことができる。
【0042】
一部のパブリッシャ140は、そのリソース145および/またはアプリケーションのデジタルコンポーネントスロットのためのデジタルコンポーネントを取得するプロセスを管理するためにSSP 150を使用する。SSP 150は、リソースおよび/またはアプリケーションのためのデジタルコンポーネントを取得するプロセスを自動化する、ハードウェアおよび/またはソフトウェアに実装されたテクノロジープラットフォームである。SSP 150は、1つまたは複数のDSP 160とインタラクションして、デジタルコンポーネントスロットのためのデジタルコンポーネントを選択するために使用され得る情報を取得することができる。各パブリッシャ140は、対応する1つのSSP 150または複数のSSP 150を有し得る。複数のパブリッシャ140が、同じSSP 150を使用する場合がある。
【0043】
デジタルコンポーネントプロバイダ170は、パブリッシャのリソースおよびアプリケーションのデジタルコンポーネントスロットに提示されるデジタルコンポーネントを作成する(またはそうでなければ公開する)ことができる。デジタルコンポーネントプロバイダ170は、デジタルコンポーネントスロットにおける提示のためのそのデジタルコンポーネントのプロビジョニングを管理するためにDSP 160を使用することができる。DSP 160は、リソースおよび/またはアプリケーションとともに提示するためのデジタルコンポーネントを配信するプロセスを自動化する、ハードウェアおよび/またはソフトウェアに実装されたテクノロジープラットフォームである。DSP 160は、複数の異なるパブリッシャ140のリソースおよび/またはアプリケーションとともに提示するためのデジタルコンポーネントを提供するために、デジタルコンポーネントプロバイダ170に代わって、複数のSSP 150とインタラクションすることができる。概して、DSP 160は、(たとえば、SSP 150から直接または交換所(exchange)を経由して)デジタルコンポーネントの要求を受信し、要求に基づいて、1つまたは複数のデジタルコンポーネントプロバイダによって作成された1つまたは複数のデジタルコンポーネントに関する選択パラメータを生成(または選択)し、デジタルコンポーネント(たとえば、デジタルコンポーネント自体)および選択パラメータに関連するデータをSSP 150に提供することができる。
【0044】
場合によっては、ユーザの興味に応じたデジタルコンポーネントを受信することが、ユーザにとって有益である。一部のパブリッシャ140は、パブリッシャ140のネイティブアプリケーションをダウンロードするために、それらのパブリッシャのウェブサイト142を購読するかまたは購読情報を提供するようにユーザに要求する。その他の場合、パブリッシャ140は、非講読者には提供されない追加のサービスまたは機能を講読者に提供し得る。購読するために、ユーザは、概して、電子メールアドレスまたは電話番号などのPIIを、たとえば、パブリッシャ140のウェブサイト142またはアプリケーション112を介して、パブリッシャ140に提供する。
【0045】
通常、パブリッシャのリソース145のデジタルコンポーネントスロットのコードは、デジタルコンポーネントの要求とともにサードパーティクッキーを送信する場合がある。たとえば、ユーザが、1つまたは複数のDSP 160-1...160-Nからのその他のデジタルコンポーネントとともにニュース記事を提供するパブリッシャ140によって公開されるウェブサイトにナビゲートすると仮定する。ニュース記事を受信するために、ユーザは、ユーザの電子メールアドレスを使用してウェブサイトを購読する。カスタムデジタルコンポーネントをユーザに提供するために、コードは、(閲覧履歴などのユーザに関連するデータに関連付けられる場合がある)サードパーティクッキーをSSP 150に提供することができ、そして今度は、SSP 150が、サードパーティクッキーをDSP 160に提供することができる。ユーザデータにアクセスすることができるすべての者が検証され、および/または信頼できるとは限らないので、このユーザデータは、検証されていないおよび/または信頼できない者によって悪意のある活動に使用されることが可能であり、ユーザは、どのエンティティがデータを受信するか、またはそのようなデータがどのようにして使用されるかに関してほとんどまたはまったく把握することができない。その代わりに、ユーザは、クライアントデバイス110から様々なクッキーを削除するか、または、たとえば、そのウェブサイトにおいて受信者を1人ずつブロックしなければならない可能性がある。
【0046】
ユーザのプライバシーを保護し、ユーザデータのセキュリティを管理するために、環境100は、ユーザが、どのエンティティが自分のデータを受信するのか、どのエンティティが自分のデータを記憶することを許されるのか、それらのエンティティがどのように自分のデータを使用することを許されるのか、および/またはどれだけの継続時間の間エンティティが自分のデータを使用することを許されるのかを管理することを可能にする1つまたは複数のデータセキュリティシステム180を含む。その他のデータプライバシーおよび/またはユーザの同意の設定も、可能である。各データセキュリティシステム180は、1組のユーザに関するユーザデータのセキュリティおよびプライバシーを管理することができる。一部の実装において、各データセキュリティシステム180は、電子メールプロバイダ、たとえば、ユーザに無料の電子メールアカウントを提供する無料電子メールプロバイダによって管理される。この例において、各電子メールプロバイダは、電子メールプロバイダの電子メールアカウントを有するユーザがデータプライバシー設定を定義および調整することを可能にし、データプライバシー設定に従って講読トークンを発行するデータセキュリティシステム180を含み得る。
【0047】
環境100は、
図2を参照して下で説明されるように、各参加電子メールプロバイダ、たとえば、データプライバシー保護プログラムに参加する各電子メールプロバイダのためのデータセキュリティシステム180を含み得る。さらに、環境100は、不参加電子メールプロバイダの電子メールアドレスを有するか、または電子メールアドレスを持たないユーザが、自身のユーザプライバシー設定を管理することを可能にするデータセキュリティシステム180を含み得る。一部の実装において、環境100は、信頼できる者、たとえば、業界団体または政府機関によって管理される単一の(または複数の)データセキュリティシステム180を含み得る。
【0048】
概して、データセキュリティシステム180は、講読トークンを使用して、ユーザデータのセキュリティおよびプライバシーを管理することができる。各ユーザに関して、データセキュリティシステム180は、データセキュリティシステム180からの講読トークンを要求する適格なパブリッシャに講読トークンを発行することができる。適格なパブリッシャは、たとえば、ユーザがパブリッシャのコンテンツを受信するために購読したパブリッシャであることが可能である。たとえば、下で説明されるように、ユーザがパブリッシャを講読するとき、パブリッシャは、データセキュリティシステム180に、ユーザに関する講読トークンを要求することができる。この要求は、ユーザがパブリッシャを講読したことを示すことができ、ユーザの電子メールアドレス(または、たとえば、データセキュリティシステム180が電子メールプロバイダでない場合は、購読するために使用されたその他のPII)を含むことができる。下でより詳細に説明されるように、ユーザがデータセキュリティシステム180に、ユーザがパブリッシャを講読していないことを示さない限りまたは示すまで、データセキュリティシステム180は、パブリッシャのための講読トークンを更新することができる。
【0049】
一部の実装において、データセキュリティシステム180は、ユーザがオンラインエコシステム全体(またはその少なくとも一部)にわたってユーザプライバシー設定を管理することを可能にするインタラクティブなコントロールを用いるユーザインターフェースを提供し得る。たとえば、ユーザインターフェースは、ユーザのすべての現在の(アクティブな)または過去の(失効された)講読のリストをユーザに提示するウェブサイトまたはネイティブアプリケーションのユーザインターフェースであることが可能である。特定の例において、ユーザインターフェースは、ユーザが購読したパブリッシャのリストを含み得る。別の例において、リストは、パブリッシャのコンテンツとともに提示するためのデジタルコンポーネントを選択および/または提供するコンテンツプラットフォームも含み得る。各パブリッシャに関して、リストは、パブリッシャのコンテンツとともに提供するためのデジタルコンポーネントを取得するためにパブリッシャが提携する各コンテンツプラットフォームを含み得る。このようにして、ユーザは、どのオンラインエンティティがデジタルコンテンツおよび/もしくはデジタルコンポーネントを直接的もしくは間接的にユーザに提供するのか、ならびに/またはユーザのデータにアクセスすることができるのかを見通すことができる。ユーザは、すべての不正な購読、たとえば、ユーザが購読しなかったが購読トークンを要求したパブリッシャ、またはこれらのパブリッシャがユーザインターフェースに含められるときにユーザが購読を解除したパブリッシャを、ユーザインターフェースを使用してデータセキュリティシステム180に対して特定することできる。ユーザインターフェースは、ユーザが購読者を不正もしくは購読を解除したとして指定すること、または不正なもしくは購読を解除したパブリッシャが購読済みの(たとえば、適格な)パブリッシャであると指定することを可能にするインタラクティブなコントロール、たとえば、ボタンまたはセレクタも含むこともできる。このようにして、ユーザは、データセキュリティシステム180がどのパブリッシャに講読トークンを提供し、したがって、そのパブリッシャがユーザのユーザデータに基づいてデジタルコンポーネントを選択する際に使用するためにコンテンツプラットフォーム(たとえば、SSP 150およびDSP 160)に講読トークンを送信し得るかを制御することができる。
【0050】
ユーザインターフェースは、SSP 150およびDSP 160およびデジタルコンポーネントプロバイダ170などのコンテンツプラットフォームのリストも提供することができる。たとえば、ユーザインターフェースは、ユーザに関する講読トークンを受け取る資格がある適格なコンテンツプラットフォームのリストを含み得る。ユーザインターフェースは、ユーザがコンテンツプラットフォームを適格または不適格(たとえば、講読トークンを受信できず、したがって、ユーザのデータを受信、記憶、または使用することができない)として指定することを可能にする、インタラクティブなコントロール、たとえば、ボタンまたはセレクタを含み得る。最初に、ユーザがパブリッシャを講読するとき、パブリッシャに関連するコンテンツプラットフォームが、ユーザのための適格なコンテンツプラットフォームとして追加されてよい。たとえば、パブリッシャは、パブリッシャのコンテンツとともに提示するためのデジタルコンポーネントを調達する1組のSSP 150を有し得る。この例において、1組のSSP 150は、ユーザがパブリッシャを講読した後、最初に適格なコンテンツプラットフォームとして追加されてよい。その後、ユーザは、ユーザインターフェースを使用して、コンテンツプラットフォームを不適格として指定し得る。
【0051】
一部の実装において、ユーザインターフェースは、各エンティティ(たとえば、パブリッシャ、コンテンツプラットフォーム、もしくはデジタルコンポーネントプロバイダ)がどのユーザデータを受信し得るか、データが各エンティティによってどのように使用され得るか、ならびに/またはデータがどのくらいの間記憶および使用され得るかをユーザが定義することを可能にする。たとえば、ユーザインターフェースは、各エンティティに関して、データがどのように使用され得るかに関する1組のオプションを含むことができる。ユーザは、それぞれの適格なエンティティに関して、ゼロ個以上のオプションを選択することができる。
【0052】
ユーザのためのユーザデータのセキュリティおよびプライバシーを管理するデータセキュリティシステム180は、ユーザの現在のデータプライバシー設定を維持することができ、ユーザの履歴的なデータプライバシー設定をログに記録することができる。データプライバシー設定は、適格なおよび不適格なパブリッシャ、コンテンツプラットフォーム、およびデジタルコンポーネントプロバイダ170と、これらのエンティティの各々に関するそれぞれの設定とを示すデータを含み得る。
【0053】
一部の実装において、データセキュリティシステム180は、ユーザ講読およびデータプライバシー設定を閲覧および/または管理するためのユーザインターフェースおよびインタラクティブなコントロール116を提供することができるアプリケーション113をクライアントデバイス110に提供することができる。一部の実装において、データセキュリティシステム180は、ブラウザ内で、たとえば、ウェブページの一部として、ユーザインターフェースを提供し得る。
【0054】
例として、ユーザが、ニュース記事を提供するパブリッシャ140のウェブサイト142にナビゲートすると仮定する。ユーザは、電子メールアドレスまたは電話番号などのユーザのPIIを提供することによってウェブサイト142を講読する。パブリッシャ140は、ユーザからPIIを受け取った後、データセキュリティシステム180に連絡して、特定のPIIを有するユーザがウェブサイト142を講読したことを通知することができる。データセキュリティシステム180は、その返報として、(たとえば、ユーザに電子メールを送信することによって、またはユーザのデバイスにショートメッセージサービス(SMS)テキストメッセージを送信することによって)ユーザに連絡し、それによって、ユーザがウェブサイト142の最近の講読を閲覧および検証し、その他の講読を管理し、データプライバシー設定を調整することができるデータセキュリティシステム180のウェブサイトへのリンクをユーザにプロンプト表示する場合がある。
【0055】
一部の実装において、データセキュリティシステム180は、ユーザの電子メールアドレスの電子メールプロバイダまたは任意の信頼できる第三者機関によって実装される、ハードウェアおよび/またはソフトウェアに実装されたテクノロジープラットフォームである。そのような実装において、データセキュリティシステム180とクライアントデバイス110との間の通信は、ユーザに電子メールサービスを提供するために電子メールプロバイダによって使用されるのと同じネットワークセキュリティおよび認証プロトコルを使用することができる。
【0056】
一部の実装において、ユーザがパブリッシャ140のウェブサイト142(またはその他のコンテンツ)を購読するとき、パブリッシャ140は、講読トークンの要求を生成し、ネットワーク105を介してデータセキュリティシステム180に要求を送信することができる。データセキュリティシステム180は、ユーザに関する講読トークンを生成し、ネットワーク105を介してパブリッシャ140に講読トークンを送信する。
【0057】
概して、各講読トークンは、ユーザおよびパブリッシャに固有であり、特定のデータセキュリティシステム180によって生成される。たとえば、データセキュリティシステム180は、ユーザに関して、そのユーザのそれぞれの適格なパブリッシャのためのそれぞれの講読トークンを生成することができる。データセキュリティシステム180は、パブリッシャからの要求に応じて、パブリッシャのための講読トークンを生成することができる。たとえば、パブリッシャは、ユーザによるパブリッシャの講読に応じて、ユーザに関する講読トークンを要求し、たとえば、現在の講読トークンが失効する前に、更新された講読トークンの反復的な要求を送ることができる。
【0058】
一部の実装において、各講読トークンは、1組のデータおよび1組の付属要素を含む。1組のデータは、第1の暗号化されたユーザ識別子(短期ユーザ識別子とも呼ばれる)を含む。一部の実装において、第1の暗号化されたユーザ識別子のユーザ識別子は、パブリッシャに登録するためにユーザによって使用されたPIIである。たとえば、ユーザ識別子は、どのPIIが登録するためにユーザによって使用され、したがってパブリッシャからの要求に含められたかに応じて、ユーザの電子メールアドレスまたはユーザの電話番号であることが可能である。一部の実装において、第1の暗号化されたユーザ識別子のユーザ識別子は、データセキュリティシステム180によって維持されるユーザの内部識別子である。たとえば、データセキュリティシステム180は、内部識別子をPIIにマッピングすることができ、したがって、ユーザのプライバシーおよびデータセキュリティをよりしっかりと保護するために、PIIは、暗号化された形態であっても講読トークンに含まれない。
【0059】
第1の暗号化されたユーザ識別子は、データセキュリティシステム180にのみ知られている暗号化鍵を使用して暗号化されたユーザの電子メールアドレス(または内部識別子またはその他のPII)であることが可能であり、それによって、講読トークンを受信するその他のすべてのエンティティから平文の電子メールアドレスを隠す。このようにして、ユーザのPIIは、任意の信頼できないおよび/または検証されていないエンティティによるPIIを使用した任意の悪意のある活動を防止するために、パブリッシャ140以外のエンティティから隠される。一部の実装において、データセキュリティシステム180は、新しい第1の暗号化されたユーザ識別子を生成するようにユーザの電子メールアドレス(または内部識別子またはその他のPII)を暗号化するために、所定の時間間隔(たとえば、24時間、2日、1週間など)毎に新しい暗号化鍵または新しいナンスを生成する。
【0060】
一部の実装において、データセキュリティシステム180は、一定の時間間隔の後に生成される鍵(またはナンス)を使用して、AES128-GCMなどの確率的対称暗号化アルゴリズムを用いてPIIまたは内部識別子を暗号化することによって、第1の暗号化されたユーザ識別子を生成する。たとえば、データセキュリティシステム180は、24時間またはその他の適切な時間の期間毎に秘密鍵(またはナンス)を生成し得る。一部の実装において、確率的暗号化アルゴリズムは、あらゆる暗号化プロセスに関して一意のナンスを生成する。このようにして、ユーザに関する各講読トークンに含まれる第1の暗号化されたユーザ識別子は、たとえ同じ識別子が暗号化されていても異なり、データセキュリティシステム180は、依然として、第1の暗号化された識別子を復号することができる。暗号化された結果をこのようにして変更することによって、特定のユーザに関する複数の講読トークンを受信するエンティティは、複数の講読トークンをまとめて相互に関連付けることができず、またはトークンが同じユーザに関するものであると判定することができない。
【0061】
講読トークンの1組のデータは、講読トークンの有効期限も含み得る。各講読トークンは、有効期限によって指定された特定の時間の期間のためのものであることが可能である。たとえば、各講読トークンは、日、週、月、またはその他の適切な時間の期間のためのものであることが可能である。講読トークンは、どのエンティティがその時間の期間中にユーザのデータを受信、記憶、もしくは使用するのに適格であるか、および/または各エンティティが時間の期間中にユーザのデータをどのように使用することができるかを定義する。講読トークンを受信する各エンティティは、エンティティがその時間の期間中にユーザのデータを受信、記憶、および/または使用することをユーザによって許可されたことの検証可能な証拠として講読トークンを記憶することができる。
【0062】
講読トークンの1組のデータは、ユーザがパブリッシャとの購読を確認したかどうかを表す確認ステータスを含み得る。たとえば、同意ステータスは、ユーザがデータセキュリティシステム180にログインし、データプライバシー設定を管理するためのユーザインターフェースにアクセスし、パブリッシャ140の講読を確認したかどうかを表し得る。
【0063】
講読トークンの1組のデータは、ユーザの現在のデータプライバシー設定を示すユーザ同意データも含み得る。たとえば、ユーザ同意データは、どのコンテンツプラットフォーム、パブリッシャ、および/またはその他のエンティティが、ユーザのデータを取得、記憶、アクセス、または使用するためのユーザからの同意を得ているか、または得ていないかを表すユーザ同意文字列(user consent string)を含み得る。一部の実装において、講読トークンは、閲覧履歴などのユーザデータへのユーザのアクセスおよび/または削除などの消費者の権利を行使するユーザの要求を符号化するデータをさらに含む。たとえば、講読トークンは、エンティティがユーザのデータをすべて削除することを要求するために使用され得る。講読トークンの1組のデータは、ユースケースに固有のデータ、たとえば、特定の消費者の権利の種類および適用範囲も含み得る。
【0064】
一部の実装において、講読トークンの1組のデータは、パブリッシャ140のドメインを含む。たとえば、講読トークンは、ユーザが講読したウェブサイト142のドメインを含み得る。その他の実装において、講読トークンの1組のデータは、講読トークンを発行したPIIプロバイダまたはデータセキュリティシステム180のドメインも含み得る。たとえば、ウェブサイト142に提供されるPIIがユーザの電子メールアドレスである場合、電子メールプロバイダのドメインが、講読トークンの1組のデータに含まれる。PIIプロバイダおよび/またはウェブサイトのドメインは、eTLD+1の形態であることが可能である。eTLD+1は、実効トップレベルドメイン(eTLD: effective top-level domain)に、パブリックサフィックス(public suffix)を超える1レベルを追加したものである。例示的なeTLD+1は、「example.com」であり、「.com」が、トップレベルドメインである。
【0065】
一部の実装において、講読トークンは、パブリッシャ140のコンテンツとともに提示するためのデジタルコンポーネントを選択および/または提供する適格なコンテンツプラットフォームの各々に関する付属要素を含む。たとえば、パブリッシャ140は、パブリッシャ140によって公開されたウェブサイトおよび/またはアプリケーションのコンテンツとともに提示するためのデジタルコンポーネントを選択し、提供するためにインタラクションするSSP 150および/またはDSP 160などのコンテンツプラットフォームのリストを維持することができる。一例において、コンテンツプラットフォームのリストは、講読トークンの要求とともにデータセキュリティシステム180に送信される。データセキュリティシステム180は、コンテンツプラットフォームのリストを受信した後、リスト内のコンテンツプラットフォームの各々に関する付属要素を生成する。実装に応じて、講読トークンは、ユーザのデータを受信および/または使用するのに適格である各エンティティ(たとえば、講読トークンが発行されるパブリッシャを除く)に関する付属要素を含み得る。
【0066】
上述のように、ユーザは、どのコンテンツプラットフォームがユーザのデータを受信、記憶、および/または使用するのに適格であるかを選択することができる。この例において、データセキュリティシステム180は、適格なコンテンツプラットフォームに関する付属要素のみを生成し、含める。別の例において、ユーザは、コンテンツプラットフォームがユーザデータを取得または記憶することを許可しない可能性があるが、コンテンツプラットフォームがパーソナライズされていないデジタルコンポーネントを提供することは許可する可能性がある。そのような実装において、講読トークンは、(たとえば、パーソナライズされたデジタルコンポーネントの提供を許可されない)コンテンツプラットフォームに固有のユーザ同意を含むコンテンツプラットフォームに関する付属要素を依然として含む場合がある。このコンテンツプラットフォームはユーザのデータを使用することを許可されないので、このコンテンツプラットフォームに関する付属要素は、ユーザの(下で説明される)有効な第2の暗号化されたユーザ識別子を含まず、それによって、コンテンツプラットフォームが講読トークンをユーザと相互に関連付けることを防止する。代替的に、講読トークンは、コンテンツプラットフォームに関する付属要素を含まない場合がある。この例において、講読トークンは、コンテンツプラットフォームに固有のユーザ同意を含む場合がある。
【0067】
コンテンツプラットフォームに関する付属要素は、ユーザの第2の暗号化されたユーザ識別子を含む。このユーザ識別子は、下で説明されるように、実装に応じて変わり得る。いずれの実装においても、使用されるユーザ識別子は、コンテンツプラットフォーム(および必要に応じてデータセキュリティシステム180)のみに知られている暗号化および/または復号鍵を使用して復号可能であるように暗号化され得る。このようにして、各コンテンツプラットフォームは、そのコンテンツプラットフォームのそれぞれの付属要素のみを復号して、ユーザ識別子の平文の値を取得することができる。このユーザ識別子は、適格なコンテンツプラットフォームが、ファーストパーティまたはサードパーティクッキーがユーザデータを相互に関連付けるために使用され得る方法と同様に、複数の講読トークンを同じユーザ識別子と相互に関連付けることを可能にする。
【0068】
コンテンツプラットフォームが後でユーザによって不適格として指定されるか、またはユーザがコンテンツプラットフォームがパーソナライズされたコンテンツを提供することを阻止する場合、ユーザに関する講読トークンは、もはやそのコンテンツプラットフォームに関する付属要素を含まない(またはそのコンテンツプラットフォームのための第2の暗号化されたユーザ識別子を含まない)。コンテンツプラットフォームは、第1の暗号化されたユーザ識別子または付属要素の第2の暗号化されたユーザ識別子のいずれも復号することができないので、不適格なコンテンツプラットフォームは、ユーザに関する後続の講読トークンのいずれもユーザの以前の講読トークンと相互に関連付けることができない。
【0069】
一部の実装において、付属要素内の第2の暗号化されたユーザ識別子は、SHA256などの暗号学的ハッシュ関数を使用して生成され、それから、コンテンツプラットフォームの暗号化鍵を使用して暗号化されたユーザの電子メールアドレス(またはユーザの電話番号などのその他のPIIまたはPIIに関連付けられるデータセキュリティシステム180によって提供されたユーザ識別子)のハッシュ値である。
【0070】
一部の実装において、付属要素内の第2の暗号化されたユーザ識別子は、データセキュリティシステム180によってコンテンツプラットフォームに割り振られ、コンテンツプラットフォームの暗号化鍵を使用して暗号化されたユーザ識別子であることが可能である。ユーザ識別子は、データセキュリティシステム180によってコンテンツプラットフォームに割り振られた仮名識別子(pseudonymous identifier)であることが可能である。このユーザ識別子は、受信者のドメインによってシャーディングされる(sharded)かまたはシャーディングされないことが可能である。たとえば、データセキュリティシステム180は、非対称鍵暗号アルゴリズムを使用して、公開鍵/プライベート鍵ペアを生成することができる。そのような場合のユーザ識別子は、固定長(たとえば、16バイト)に切り詰められるSHA256などの暗号学的ハッシュ関数を使用して生成された公開鍵のハッシュ値であることが可能である。それから、ユーザ識別子は、コンテンツプラットフォームの暗号化鍵を使用して暗号化される。
【0071】
一部の実装において、データセキュリティシステム180は、データセキュリティシステム180に関連する各エンティティに関して非対称鍵暗号アルゴリズムを使用して公開鍵/プライベート鍵ペアを生成することができる。そのようなシナリオにおいて、特定のエンティティのための第2の暗号化されたユーザ識別子のユーザ識別子は、たとえば、固定長に切り詰められるSHA256などの暗号学的ハッシュ関数を使用して特定のエンティティのために生成された公開鍵のハッシュ値であることが可能である。別の例において、データセキュリティシステム180は、公開およびプライベート鍵を作成し、記憶するのとは対照的に、各ユーザの単一のプライベート鍵(マスタープライベート鍵と呼ばれる)および暗号学的関数を使用して各エンティティの公開およびプライベート鍵を生成することができ、それによって、データストレージを節約する。たとえば、特定のエンティティのプライベート鍵は、暗号学的関数g(マスタープライベート鍵, 特定のエンティティのドメイン)を使用して生成されることが可能であり、暗号学的関数gは、マスタープライベート鍵に適用され、特定のエンティティのドメインは、特定のエンティティのeTLD+1(entity_eTLD+1と呼ばれる)を表す。同様に、特定のエンティティの公開鍵は、暗号学的関数h(マスタープライベート鍵, 特定のエンティティのドメイン)を使用して生成されることが可能であり、暗号学的関数hは、マスタープライベート鍵に適用され、特定のエンティティのドメインは、特定のエンティティのeTLD+1を表す。どちらの場合も、特定のエンティティのための第2の暗号化されたユーザ識別子のユーザ識別子は、たとえば、固定長に切り詰められるSHA256などの暗号学的ハッシュ関数を使用して特定のエンティティのために生成された公開鍵のハッシュ値であることが可能である。
【0072】
SSP 150、DSP 160、およびデジタルコンポーネントプロバイダ170などのコンテンツプラットフォームは、ユーザのPIIにアクセスすることができなくてもカスタマイズされたデジタルコンポーネントを配信するために、第2の暗号化されたユーザ識別子のユーザ識別子を使用してユーザデータにアクセスすることができる。さらに、これは、ユーザが、たとえば、データプライバシーユーザインターフェースを使用してユーザのユーザ識別子をリセットし、したがって、以前のユーザ識別子と新しいユーザ識別子との相互の関連付けを防止することを可能にする。
【0073】
一部の実装において、講読トークンの各付属要素が、デジタル署名を含むこともできる。このデジタル署名は、1組のデータ(または1組のデータの少なくとも一部、たとえば、第1の暗号化されたユーザ識別子)および付属要素の第2の暗号化されたユーザ識別子のデジタル署名であることが可能である。つまり、データセキュリティシステム180は、データセキュリティシステム180の非対称プライベート鍵を使用して、講読トークンの1組のデータおよび付属要素の第2の暗号化されたユーザ識別子にデジタル署名をすることによって、付属要素のデジタル署名を生成することができる。
【0074】
各コンテンツプラットフォームは、講読トークンが生成された後、たとえば、ネットワーク105を通過中に講読トークンの内容が変更されていないことを検証するためにデジタル署名を使用することができる。コンテンツプラットフォームは、署名を生成するために使用されたプライベート鍵に対応する非対称公開鍵を使用して、デジタル署名を検証することができる。デジタル署名が生成された後に、講読トークンの1組のデータのいずれかまたは第2の暗号化されたユーザ識別子が変化する場合、デジタル署名の検証は失敗する。
【0075】
一部の実装において、講読トークンは、1組のデータおよび付属要素のすべてを含む講読トークンの内容の残りの部分に署名することによって生成されるデジタル署名を含む。このようにして、講読トークンは、多くの付属要素を含み得るが、単一のデジタル署名を含む。このようにして、講読トークンのデータサイズが削減され、その結果、データストレージの要件が引き下げられ、講読トークンをネットワーク105上で送信するときのネットワーク帯域幅の消費が削減される。
【0076】
したがって、講読トークンは、各コンテンツプラットフォームが、特定のユーザのクライアントデバイスにデジタルコンポーネントを提供する同意をそのコンテンツプラットフォームが得ているか否かを知ることを可能にする。特に、コンテンツプラットフォームは、付属要素のうちの1つの暗号化された第2のユーザ識別子を復号することができる場合にのみ、その第2のユーザ識別子によって特定されたユーザにデジタルコンポーネントを提供する同意をそのコンテンツプラットフォームが得ていることを知る。さらに、そのコンテンツプラットフォームは、第1ユーザ識別子またはその他のコンテンツプラットフォームのいずれの第2のユーザ識別子も復号することができず、認可されていない者は、第1のまたは第2のユーザ識別子のいずれも復号することができない。これは、ユーザデータのセキュリティを向上させることに役立つ。さらに、講読トークンはコンテンツプラットフォームの各々に関する付属要素を含むので、単一の講読トークンのみが、(該当する場合、所与の有効期限内に)使用される必要がある。これは、計算効率およびネットワーク効率の向上に役立つ。したがって、本技術は、計算およびネットワーク効率の良い方法で、ユーザデータのセキュリティを向上させる。さらに、説明された方法で各付属要素によってデジタル署名が提供される実施形態においては、デジタル署名が偽造された講読トークンが(たとえそれらの一部、たとえば、暗号化された第1のユーザ識別子または付属要素のうちの1つが以前に正当に生成されたとしても)検出される助けとなるので、セキュリティがさらに改善される。同時に、単一の講読トークンを有することに関連する効率は、維持される。したがって、そのような実施形態は、計算およびネットワーク効率の良い方法で、ユーザデータのセキュリティを向上させるのにさらに役立つ。
【0077】
一部の実装において、講読トークンの各付属要素は、付属要素が対応するそれぞれのコンテンツプラットフォームの識別子を含む。特定の実装に応じて、コンテンツプラットフォームの識別子の範囲は、変わる場合がある。たとえば、コンテンツプラットフォームは、各コンテンツプラットフォームがデータセキュリティシステムのドメイン内で一意に特定され得るように、(たとえば、電子メールプロバイダの)データセキュリティシステム180によって、コンテンツプラットフォームのeTLD+1とは異なる一意識別子を発行されることが可能である。別の例においては、各コンテンツプラットフォームがインターネット上でグローバルに特定され得るように、1つまたは複数の電子メールプロバイダまたは中央機関が、すべてのコンテンツプラットフォームのグローバルに認識された登録簿を共同で維持し、複数のコンテンツプラットフォームの各々に一意識別子を発行することができる。
【0078】
講読トークンの一部として各付属要素のためのコンテンツプラットフォームの識別子を含むことによって、各コンテンツプラットフォームは、そのコンテンツプラットフォームの対応する付属要素を容易に見つけ、第2の復号されたユーザ識別子を復号することができる。これは、その他の方法では最終的に正しい第2の暗号化されたユーザ識別子を復号するまで各付属要素の第2の暗号化されたユーザ識別子を復号化しようとして無駄にされたであろう計算リソースを節約することができる。
【0079】
上述のように、第1の暗号化されたユーザ識別子は、ユーザ識別子を暗号化するために使用される確率的対称暗号化アルゴリズムに基づいて、各暗号化によって変化する。したがって、この第1の暗号化されたユーザ識別子は、短期的であり、それぞれの更新された講読トークンによって変化し、第1の暗号化されたユーザ識別子が各パブリッシャに関して別々に暗号化される場合、各パブリッシャに関して異なることが可能である。これは、第1の暗号化されたユーザ識別子が時間とともに安定し、ユーザに関する講読トークンを受信する各パブリッシャで同じであったとしたらエンティティができるであろうようにエンティティがユーザを追跡することを防止する。第2の暗号化されたユーザ識別子は、所与のコンテンツプラットフォームに関する付属要素が所与のユーザに関する各講読トークンに含まれない可能性が高いので、安定的であることができる。たとえば、ユーザが、10個の異なるパブリッシャを講読し得る。各パブリッシャは、異なるコンテンツプラットフォームを使用することができる。したがって、所与のコンテンツプラットフォームに関する付属要素は、10個のパブリッシャのうちの1つのための講読トークンにのみ含まれる。この例において、第1の暗号化されたユーザ識別子が時間とともに変化する場合、エンティティは、異なるパブリッシャに送信された講読トークンを相互に関連付けることができない。
【0080】
一部の実装において、パブリッシャ140は、講読トークンを受信した後、たとえば、パブリッシャ140のウェブページまたは他のリソースで、講読トークンをクライアントデバイス110に送信する。クライアントデバイス110のユーザが1つまたは複数のデジタルコンポーネントスロットを含むウェブサイト142にナビゲートするとき、クライアントデバイス110は、1つまたは複数のデジタルコンポーネントスロットの各々のためのデジタルコンポーネントの要求を生成し、その要求は、ネットワーク105を介してDSP 160などのコンテンツプラットフォームに講読トークンとともに送信される。コンテンツプラットフォームは、デジタルコンポーネントの要求を受信した後、データセキュリティシステム180によって生成された講読トークンのデジタル署名とデータセキュリティシステム180の公開鍵を使用して講読トークンの有効性を確認する。別の例においては、パブリッシャ140(またはSSP 150)が、デジタルコンポーネントの要求を生成し、その要求をネットワーク105を介してDSP 160(またはデジタルコンポーネントプロバイダ170)に講読トークンとともに送信し得る。
【0081】
一部の実装において、パブリッシャ140は、講読トークンを受信した後、講読トークンを維持する。クライアントデバイス110が、ウェブサイト142内の1つまたは複数のデジタルコンポーネントスロットの各々のためのデジタルコンポーネントの要求を生成し、その要求をネットワーク105を介してSSP 150に送信するとき、SSP 150は、デジタルコンポーネントの要求を、講読トークンとともに、ネットワーク105を介してDSP 160またはデジタルコンポーネントプロバイダ170などのコンテンツプラットフォームに送信することができる。
【0082】
コンテンツプラットフォームは、デジタル署名によって講読トークンの有効性を確認した後、講読トークンの有効性に基づいて、クライアントデバイス110(またはパブリッシャ140、SSP 150)にデジタルコンポーネントを提供するかまたはしないかを選択することができる。たとえば、DSP 160は、講読トークンが有効期限を過ぎている場合、クライアントデバイスにデジタルコンポーネントを提供しない場合がある。別の例においては、特定のDSP 160が、特定のDSP 160の一意識別子を含むDSP 160に関連する付属要素を見つけることができない場合、クライアントデバイス110にデジタルコンポーネントを提供しない場合がある。講読トークンが成功裏に有効性を確認される場合、コンテンツプラットフォームは、第2の暗号化されたユーザ識別子を復号し、ユーザによって指定されたコンテンツプラットフォームのデータプライバシー設定に従って、ユーザ識別子に対応するユーザのデータを使用してデジタルコンポーネントを選択することができる。
【0083】
講読トークンを受信するコンテンツプラットフォームは、たとえば、講読トークンのデータプライバシー設定に従ってコンテンツプラットフォームがユーザのデータを使用したことを検証するために、講読トークンを記憶することができる。場合によっては、コンテンツプラットフォームは、有効期限の前に同じ講読トークンを複数回受信する可能性がある。たとえば、パブリッシャのための講読トークンは、24時間後に失効するように設定され得る。この例において、ユーザは、1日に複数回、パブリッシャのウェブサイトにナビゲートし得る。毎回、同じ講読トークンを含むデジタルコンポーネントの要求が、生成され得る。講読を複数回、たとえば、各要求につき1回記憶するのではなく、コンテンツプラットフォームは、各講読トークンを1回記憶することができる。コンテンツプラットフォームは、デジタルコンポーネントを選択するためにユーザデータが使用された各イベントと、各イベントに関して、コンテンツプラットフォームがユーザデータを使用することを許可した講読トークンの識別子とを示すイベントログを維持することができる。このようにして、コンテンツプラットフォームにユーザによって与えられたユーザ同意の範囲内でコンテンツプラットフォームが働いていることの監査可能な検証を引き続き提供しながら、データストレージの要件が引き下げられる。
【0084】
図2は、電子メールプロバイダ240および中央機関210がユーザデータのセキュリティおよびプライバシーを管理する例示的な環境200のブロック図である。この例において、電子メールプロバイダ240と中央機関のデフォルトデータマネージャ213とが、
図1のデータセキュリティシステム180の機能を実行する。
【0085】
中央機関210は、業界団体または政府機関などの信頼できる者であり得る。中央機関210は、オンラインエコシステム全体を通じてユーザデータのセキュリティおよびプライバシーを保護するための識別子としての電子メールアドレスの使用を管理することができる。たとえば、中央機関210は、どの電子メールプロバイダがこのデータプライバシー保護プログラムに参加するかを管理することができる。中央機関210は、参加者である各電子メールプロバイダ240を特定する電子メールプロバイダ登録簿211と、参加者である各コンテンツプラットフォーム(たとえば、SSPおよびDSP)を特定するコンテンツプラットフォーム登録簿212とを維持することができる。電子メールプロバイダおよびコンテンツプラットフォームは、データプライバシー保護プログラムに参加するために中央機関にサインアップすることができる。中央機関210は、データプライバシー保護プログラムの規則に従わない、たとえば、ユーザによって許可された以外の方法でユーザデータを使用するか、または更新された講読トークンが参加者に対して拒否されたときに失効された講読トークンに基づいてユーザデータを使用する参加者を削除することができる。
【0086】
各パブリッシャ220は、中央機関210のコンピューティングシステムとインタラクションして、どの電子メールプロバイダ240およびコンテンツプラットフォームが参加者であるかを特定することができる。たとえば、ユーザが、パブリッシャ220が以前遭遇しなかったドメインの電子メールアドレスを用いてパブリッシャ220を購読するとき、パブリッシャ220は、ドメインの電子メールプロバイダ240がデータプライバシー保護プログラムに参加するかどうかを判定するために中央機関210に問い合わせることができる。そうである場合、パブリッシャ220は、電子メールプロバイダにユーザに関する講読トークンを要求することができる。そうでない場合、パブリッシャ220は、デフォルトデータマネージャ213にユーザに関する講読トークンを要求することができる。デフォルトデータマネージャ213は、非参加者の電子メールプロバイダの電子メールアドレスを有するユーザ、または購読するためにその他のPIIを使用する、たとえば、購読するために電話番号を使用するユーザに関して、講読トークンをパブリッシャ220に発行することができる。
【0087】
パブリッシャは、講読トークンを参加者コンテンツプラットフォームに提供することができる。たとえば、パブリッシャ220は、パブリッシャ220のコンテンツ(たとえば、アプリケーションのコンテンツのウェブページ)とともに提示するためのデジタルコンポーネントを取得するために、パブリッシャ220が提携する参加者コンテンツプラットフォーム230-1から230-Nに、デジタルコンポーネントの要求とともに、ユーザに関する講読トークンを提供することができる。講読トークンは、コンテンツプラットフォーム230-1から230-Nの各々に関するそれぞれの付属要素を含み得る。コンテンツプラットフォーム230-1から230-Nは、たとえば、講読トークンがその他の参加者コンテンツプラットフォームを特定するか、またはその他の参加者コンテンツプラットフォームの識別子を有する付属要素を含む場合、講読トークンをその他の参加者コンテンツプラットフォームに転送することもできる。パブリッシャ220は、講読トークンを非参加者のコンテンツプラットフォームに転送することを許可されない場合がある。
【0088】
図3は、講読トークンを使用してデジタルコンポーネントを提供するための例示的なプロセス300を示すスイムレーン図である。プロセス300の動作は、たとえば、データセキュリティシステム180、クライアントデバイス110、パブリッシャ140、およびSSP 150によって実装され得る。プロセス300の動作は、非一時的である場合がある1つまたは複数のコンピュータ可読媒体上に記憶された命令として実装されることも可能であり、1つまたは複数のデータ処理装置による命令の実行は、1つまたは複数のデータ処理装置にプロセス300の動作を実行させることが可能である。
【0089】
この例において、クライアントデバイス110のユーザは、ウェブブラウザなどのアプリケーション112を使用して、ウェブサーバ上でホストされるパブリッシャ140のウェブサイト142にアクセスする。ウェブサイト142にアクセスするために、クライアントデバイス110は、ウェブサイト142の要求を開始することができ、ウェブサイト142をホストするウェブサーバは、クライアントデバイス110におけるウェブページ(またはその他の電子リソース)の提示を開始するコンピュータが実行可能な命令および/またはデータを送信することによって要求に応答することができる。
【0090】
クライアントデバイス110のユーザが、パブリッシャ140のウェブサイト142にナビゲートする(302)。たとえば、クライアントデバイス110のユーザは、アプリケーション112(たとえば、ブラウザ)を使用して、参照(たとえば、URL)を指定することによって、ウェブサイト142を訪問することができる。
【0091】
クライアントデバイス110が、コンテンツの要求を生成し、要求をネットワーク105を介してパブリッシャに送信する(304)。たとえば、クライアントデバイス110のユーザがウェブサイト142にナビゲートした後、アプリケーション112は、要求を生成し、その要求をネットワーク105を介してウェブサイト142をホストするウェブサーバに送信する。
【0092】
デジタルコンテンツの要求は、たとえば、パケットネットワーク105を介して送信されることが可能であり、コンテンツ要求自体は、ヘッダおよびペイロードデータを有するパケット化されたデータとしてフォーマットされることが可能である。ヘッダは、パケットの送信先を指定することができ、ペイロードデータは、上で検討された情報のいずれかを含み得る。
【0093】
パブリッシャ140、たとえば、パブリッシャ140のウェブサーバまたはコンテンツサーバが、コンテンツによって応答する(306)。たとえば、クライアントデバイス110からデジタルコンテンツ(たとえば、ウェブサイト142)の要求を受信した後、ウェブサーバは、クライアントデバイス110におけるウェブサイト142のリソース(たとえば、ウェブページ)の提示を開始するコンピュータが実行可能な命令およびデータを送信することによって応答することができる。応答は、たとえば、パケットネットワーク105を介して送信されるウェブサイトに関連するデータを含むことが可能であり、コンテンツ自体は、パケット化されたデータとしてフォーマットされ得る。
【0094】
クライアントデバイス110のユーザが、ユーザのPIIを提供し(308)、ウェブサイト142のパブリッシャ140を講読する。たとえば、パブリッシャが報道機関であり、ウェブサイト142がニュース記事を提供すると仮定する。ユーザは、ニュース記事を毎日受信するためにパブリッシャ140のウェブサイト142を購読することができる。クライアントデバイス110のユーザは、ニュース記事を受信するサービスと引き換えに、ユーザの電子メールアドレス(または電話番号またはその他のPII)をウェブサイト142のパブリッシャ140に提供することができる。
【0095】
パブリッシャ140が、データセキュリティシステム180に講読トークンの要求を送信する(310)。たとえば、クライアントデバイス110のユーザから電子メールアドレスを受信した後、パブリッシャ140は、電子メールアドレスのドメイン、たとえば、ユーザの電子メールアカウントの電子メールプロバイダを特定し、電子メールプロバイダのデータセキュリティシステム180に講読トークンの要求を送信する。PIIが電子メールアドレスでない場合、または電子メールプロバイダが参加者でない場合、パブリッシャ140は、
図2のデフォルトデータマネージャ213などの別のデータセキュリティシステム180に要求を送信することができる。
【0096】
データセキュリティシステム180が、講読トークンを生成する(312)。講読トークンの要求を受信した後、データセキュリティシステム180は、パブリッシャ140およびユーザのために講読トークンを生成する。上述のように、講読トークンは、とりわけ、第1の暗号化されたユーザ識別子を含む1組のデータを含む。一部の実装において、第1の暗号化されたユーザ識別子は、データセキュリティシステム180以外のいかなる者も講読トークンからユーザの電子メールアドレスを平文で抽出することができないように、データセキュリティシステム180の暗号化鍵を使用して暗号化される、ユーザの暗号化されたPIIまたは内部識別子である。
【0097】
一部の実装において、講読トークンは、パブリッシャ140のためのデジタルコンポーネントのプロビジョニングを管理するコンテンツプラットフォーム(たとえば、SSPおよび/またはDSP)の各々に関する付属要素を含む。講読トークンの各付属要素は、特定のコンテンツプラットフォームによって使用されるように指定される。上述のように、各付属要素は、ユーザの第2の暗号化されたユーザ識別子を含み、講読トークンの1組のデータおよび第2の暗号化されたユーザ識別子に基づいて生成されたデジタル署名を含み得る。その他の例において、講読トークンは、講読トークンの1組のデータおよび講読トークンの付属要素のすべてに基づいて生成された単一のデジタル署名を含む。
【0098】
講読トークンの認可された使用をサポートするために、付属要素は、パブリッシャ140にデジタルコンポーネントを提供するDSP 160またはデジタルコンポーネントプロバイダ170などのそれぞれのコンテンツプラットフォームの識別子を含む。コンテンツプラットフォームの識別子の範囲は、実装によって変わる場合がある。たとえば、コンテンツプラットフォームは、各コンテンツプラットフォームがデータセキュリティシステムのドメイン内で一意に特定され得るように、データセキュリティシステム180によって一意識別子を発行されることが可能である。別の例においては、各コンテンツプラットフォームが複数のドメインにまたがって特定され得るように、1つまたは複数の電子メールプロバイダまたは中央機関が、すべてのコンテンツプラットフォームのグローバルに認識された登録簿を共同で維持し、複数のコンテンツプラットフォームの各々に一意識別子を発行することができる。
【0099】
データセキュリティシステム180が、講読トークンをパブリッシャ140に送信する(314)。パブリッシャ140は、パブリッシャのウェブページまたはその他のコンテンツとともにユーザに提示するためのデジタルコンポーネントを取得する際に使用するために講読トークンを記憶することができる。
【0100】
クライアントデバイス110が、デジタルコンポーネントの要求をSSP 150に送信する(316)。たとえば、パブリッシャ140を購読した後、ユーザは、たとえば、より多くのニュース記事を見るためにパブリッシャのウェブサイト142に再びナビゲートし得る。パブリッシャのウェブページは、クライアントデバイス110にデジタルコンポーネントの要求を生成および送信させるスクリプトまたはその他のコードを含む1つまたは複数のデジタルコンポーネントスロットを含み得る。スクリプトは、パブリッシャ140からユーザに関する講読トークンを取得し(またはそれはウェブページの一部であることができる)、講読トークンを要求に含めることもできる。
【0101】
クライアントデバイス110は、デジタルコンポーネントの要求をパブリッシャ140のためのSSP 150に送信することができる。たとえば、アプリケーション112が、1つまたは複数のデジタルコンポーネントスロットに基づいて、デジタルコンポーネントの1つまたは複数の要求を生成することができる。特定の例において、アプリケーション112は、デジタルコンポーネントスロットのタグに基づいてデジタルコンポーネントの要求を生成し、要求をネットワーク105を介してSSP 150に送信することができる。
【0102】
デジタルコンポーネントの要求は、たとえば、パケットネットワーク105を介して送信されることが可能であり、コンポーネント要求自体は、ヘッダおよびペイロードデータを有するパケット化されたデータとしてフォーマットされることが可能である。ヘッダは、パケットの送信先を指定することができ、ペイロードデータは、上で検討された情報のいずれかを含み得る。
【0103】
SSP 150は、デジタルコンポーネントの要求を1つまたは複数のDSP 160に送信することができる。前述のように、デジタルコンポーネントプロバイダ170などのコンテンツプラットフォームは、1つまたは複数のDSP 160を使用して、アプリケーションで提示するためのデジタルコンポーネントを配信するプロセスを自動化することができる。要求を受信した後、SSP 150は、1つまたは複数のDSPとインタラクションし、デジタルコンポーネントの対応する要求を送信することができる。
【0104】
一部の実装において、デジタルコンポーネントの要求は、パブリッシャ140およびSSP 150に送信された、データセキュリティシステム180によって生成された講読トークンを含み得る。たとえば、SSP 150は、クライアントデバイス110からデジタルコンポーネントの要求を受信した後、講読トークンを含むデジタルコンポーネントの要求を生成し、その要求をネットワーク105を介してDSP 160に送信する。講読トークンは、ユーザのプライバシーのユーザのプリファレンスと、クライアントデバイス110にデジタルコンポーネントを提供することを許可されるコンテンツプラットフォームとを表す。
【0105】
一部の実装において、講読トークンは、講読トークンを受信することができるコンテンツプラットフォーム、または各付属要素に関して、付属要素に対応するコンテンツプラットフォームのリストを含み得る。SSP 150は、このデータを使用して、要求を送るDSP 160を特定することができる。たとえば、SSP 150は、要求を講読トークン内で特定された各DSP 160に送信するが、講読トークン内で特定されないコンテンツプラットフォームには送信しないことが可能である。
【0106】
DSP 160は、講読トークンと、任意で、ユーザに関する以前に受信された講読トークンとに基づいてデジタルコンポーネントを選択することができる。
図1を参照して前述されたように、講読トークンは、クライアントデバイス110に提供するためのデジタルコンポーネントを選択する際にユーザのデータを使用するのに適格なコンテンツプラットフォームのユーザのプリファレンスを表す。たとえば、DSP 160は、デジタル署名によって講読トークンの有効性を確認した後、認証トークンの内容に基づいて、クライアントデバイス110(またはパブリッシャ140、SSP 150)にデジタルコンポーネントを提供するかまたはしないかを選択することができる。たとえば、DSP 160は、データセキュリティシステム180によって署名を生成するために使用されたプライベート鍵に対応する非対称公開鍵を使用してデジタル署名を検証することができる。デジタル署名がデータセキュリティシステム180によって生成された後、講読トークンの1組のデータのいずれかまたは第2の暗号化されたユーザ識別子が変化する場合、デジタル署名の検証は失敗し、DSP 160はデジタルコンポーネントをSSP 150に提供しない。別の例において、DSP 160は、講読トークンが有効期限を過ぎている場合、SSP 150にデジタルコンポーネントを提供しない。別の例においては、特定のDSP 160が、特定のDSP 160の一意識別子を有する特定DSP 160に関連する付属要素を見つけることができない場合、SSP 150にデジタルコンポーネントを提供しない。
【0107】
DSP 160は、ユーザに関して受信された複数の講読トークンに基づいてデジタルコンポーネントを選択することができる。たとえば、DSP 160は、DSPのための第2の暗号化されたユーザ識別子を復号し、そのユーザ識別子を使用して、現在の講読トークンを、たとえば、ユーザに関する以前に受信された講読トークンからのユーザに関する以前に受信されたデータと相互に関連付けることができる。DSP 160は、たとえば、パブリッシャ140、ウェブページ、ウェブページのデジタルコンポーネントスロットに関する情報などを特定するコンテキストデータなどのその他のデータとともにこのデータを使用して、ウェブページとともに提示するための1つまたは複数のデジタルコンポーネントを選択することができる。
【0108】
DSP 160は、1つまたは複数の選択されたデジタルコンポーネントに関するデータをSSP 150に送信する。たとえば、講読トークンに基づいて選択された1つまたは複数のDSP 160は、1つまたは複数の選択されたデジタルコンポーネントまたはデジタルコンポーネントを特定するデータ(たとえば、デジタルコンポーネントを提示するための命令を含むクリエイティブ(creative)要素)を送信することによってSSP 150のデジタルコンポーネントの要求に応答することができる。各デジタルコンポーネントに関して、DSP 160は、デジタルコンポーネントに関する選択パラメータを生成または選択することもできる。それから、DSP 160は、SSP 150に、デジタルコンポーネントに関する選択パラメータおよびデータを送信することができる。
【0109】
SSP 150が、DSPによって特定されたデジタルコンポーネントからデジタルコンポーネントを選択する(318)。たとえば、SSP 150は、たとえば、デジタルコンポーネントに関する選択パラメータに基づいて、パブリッシャ140の最も高い期待される金額を有するデジタルコンポーネントを選択することができる。
【0110】
SSP 150が、選択されたデジタルコンポーネントに関するデータをクライアントデバイス110に送信する(322)。たとえば、SSP 150は、デジタルコンポーネントまたはデジタルコンポーネントのためのクリエイティブを、クライアントデバイス110上で実行されるアプリケーション112にネットワーク105を介して送信することができる。
【0111】
アプリケーション112が、受信されたデジタルコンポーネントを提示する(324)。たとえば、アプリケーション112は、デジタルコンポーネントをパブリッシャ140のウェブページとともに提示することができる。
【0112】
図4は、講読トークンを生成するプロセス400を示す流れ図である。プロセス400の動作は、たとえば、
図1のデータセキュリティシステム180によって実施され得る。プロセス400の動作は、非一時的である場合がある1つまたは複数のコンピュータ可読媒体上に記憶された命令として実装されることも可能であり、1つまたは複数のデータ処理装置による命令の実行は、1つまたは複数のデータ処理装置にプロセス400の動作を実行させることが可能である。簡潔にするために、プロセス400は、
図1のデータセキュリティシステム180の観点で説明される。
【0113】
所与のユーザに関する講読トークンの要求が、受信される(410)。要求は、パブリッシャの電子コンテンツを購読するときに所与のユーザによって提供された情報を含み得る。たとえば、ユーザは、ニュース記事を提供するパブリッシャ140によって発行されるウェブサイト142にナビゲートし得る。ユーザは、電子メールアドレスなどのユーザのPIIを提供することによってウェブサイトを講読する。ユーザのPIIを受信した後、パブリッシャ140のウェブサイト142は、ユーザに関する講読トークンの要求を生成し、要求をネットワーク105を介してデータセキュリティシステム180に送信する。
【0114】
データセキュリティシステム180が、講読トークンを生成する(420)。講読トークンの要求を受信した後、データセキュリティシステム180は、データセキュリティシステム180が講読トークンをユーザと相互に関連付けることを可能にするが、講読トークンのその他の受信者が相互の関連付けを実行することを防止する第1の暗号化されたユーザ識別子を含む講読トークンを生成する。一部の実装において、第1の暗号化されたユーザ識別子は、パブリッシャを講読するために使用され、データセキュリティシステム180にのみ知られている暗号化鍵を使用して暗号化されたユーザの電子メールアドレスまたはその他のPIIである。上述のように、講読トークンは、有効期限、確認ステータス、ユーザ同意データ、および/またはパブリッシャのドメインをさらに含み得る。ユーザに関する各講読トークンのユーザ同意データは、講読トークンが生成される時点におけるユーザの現在のデータプライバシー設定を示すことができる。
【0115】
講読トークンは、パブリッシャ140と提携してパブリッシャ140にデジタルコンポーネントを提供する1つまたは複数の適格なコンテンツプラットフォームの各々に関する1つまたは複数の付属要素も含む。適格なコンテンツプラットフォームは、データプライバシー保護プログラムの参加者であり、ユーザによって適格であるとして指定された(たとえば、ブロックされていない)、パブリッシャ140によって示されたパブリッシャ140のパートナーであるコンテンツプラットフォームのみを含み得る。特定のコンテンツプラットフォームに関する講読トークンの各付属要素は、特定のコンテンツプラットフォームのみが復号し得る(または任意でデータセキュリティシステム180も復号し得る)暗号化方式を使用して、パブリッシャを講読するために使用されたPII(もしくは暗号学的ハッシュされたPII)(たとえば、ユーザの電子メールアドレス)または(PIIとは異なる)仮名識別子を暗号化することによって生成された第2の暗号化されたユーザ識別子を含む。たとえば、暗号化方式は、コンテンツプラットフォームの公開鍵を使用する非対称暗号化であることが可能である。別の例において、データセキュリティシステム180および特定のコンテンツプラットフォームは、対称鍵暗号化アルゴリズムによってデータセキュリティシステム180が暗号化し、特定のコンテンツプラットフォームが復号することを可能にする共有秘密鍵を作成することができる。
【0116】
特定のコンテンツプラットフォームに関する講読トークンの各付属要素は、付属要素が対応する対応するコンテンツプラットフォームの識別子も含み得る。特定の実装に応じて、コンテンツプラットフォームのこの識別子の範囲は、変わる場合がある。一部の実装において、講読トークンは、講読トークンに付属要素が含まれるコンテンツプラットフォームのリストを含む。一部の実装において、講読トークンの各付属要素は、データセキュリティシステムの非対称プライベート鍵を使用して、講読トークンの1組のデータおよび付属要素の第2の暗号化されたユーザ識別子にデジタル署名をすることによって生成されたデジタル署名を含むこともできる。
【0117】
データセキュリティシステム180が、講読トークンをパブリッシャ140に送信する(430)。たとえば、パブリッシャ140(またはSSP 150)が、パブリッシャ140のウェブサイト142またはアプリケーションのデジタルコンポーネントスロットためにDSP 160(またはデジタルコンポーネントプロバイダ170)からデジタルコンポーネントを収集する責任を担うことができる。講読トークンが、SSP 150および/またはDSP 160(もしくはデジタルコンポーネントプロバイダ170)に配信するためにネットワーク105を介してパブリッシャ140に送信される。たとえば、パブリッシャ140は、ユーザのクライアントデバイスに送信される電子リソース(たとえば、ウェブページ)のためのコードにユーザに関する講読トークンを含めることができる。別の例において、電子リソースのデジタルコンポーネントスロットのコードは、たとえば、クライアントデバイスによるコードの実行に応じて、パブリッシャ140から講読トークンを取得することができる。このようにして、クライアントデバイス110は、クライアントデバイスによってコンテンツプラットフォーム、たとえば、SSP 150およびDSP 160に送信されるデジタルコンポーネントの要求に講読トークンを含めることができる。
【0118】
前述のように、データセキュリティシステム180は、パブリッシャ140の講読を管理し、(たとえば、パブリッシャ140と提携する)コンテンツプラットフォームにアクセスを提供するか、またはそのようなコンテンツプラットフォームがPII、ユーザの閲覧履歴などを含むユーザデータを使用することを阻止するためのプラットフォームを、クライアントデバイス110のユーザに提供することができる。一部の実装において、講読トークンは、有効期限を有し、パブリッシャ140は、有効な講読トークンを持つために、各ユーザに関する更新された講読トークンを取得しなければならない。たとえば、特定のパブリッシャ140が、ユーザに関する講読トークンをSSP 150に提供してきたと仮定する。また、この講読トークンが、講読トークンの有効期限に基づいて失効された(または間もなく失効される)と仮定する。そのようなシナリオにおいて、パブリッシャ140は、コンテンツプラットフォームに講読トークンを送信し、それによって、コンテンツプラットフォームがデジタルコンポーネントを選択する際にユーザのデータを使用することを可能にし続けるために、データセキュリティシステム180から更新された講読トークンを取得しなければならない。
【0119】
一部の実装において、パブリッシャ140は、データセキュリティシステム180に送信される反復的な更新要求を生成する。たとえば、講読トークンが24時間後に失効する場合、パブリッシャ140は、更新された講読トークンの要求を24時間毎に送ることができる。その他の適切な時間の期間が、使用されることも可能である。別の例において、パブリッシャ140は、ユーザの講読トークンが失効の閾値期間内にあることに応じて、ユーザに関する要求を生成するように構成されるコンピューティングシステムを有することが可能である。これらの要求の各々は、前の講読トークンのためにデータセキュリティシステム180によって生成された第1の暗号化されたユーザ識別子を含み得る。更新要求を受信した後、データセキュリティシステム180は、それぞれの反復的な更新要求に関して、第1の暗号化されたユーザ識別子とは異なる更新された第1の暗号化されたユーザ識別子と、最新のユーザ同意ステータスとを含む更新された講読トークンを生成し、更新された講読トークンをパブリッシャ140に送信する。講読トークンを更新する例示的なプロセスが、
図5を参照してさらに説明される。
【0120】
図5は、講読トークンを更新するプロセス500を示す流れ図である。プロセス500の動作は、たとえば、データセキュリティシステム180によって実装され得る。プロセス500の動作は、非一時的である場合がある1つまたは複数のコンピュータ可読媒体上に記憶された命令として実装されることも可能であり、1つまたは複数のデータ処理装置による命令の実行は、1つまたは複数のデータ処理装置にプロセス500の動作を実行させることが可能である。
【0121】
データセキュリティシステム180が、パブリッシャコンピューティングシステムから更新要求を受信する(510)。たとえば、ユーザ(講読者)が、電子メールアドレスまたは電話番号などのユーザのPIIを提供することによってパブリッシャ140のウェブサイト142を講読したと仮定する。PIIを受信した後、パブリッシャ140は、講読トークンの要求を生成し、データセキュリティシステム180に送信する。データセキュリティシステム180は、特定の時間の期間、たとえば、その後24時間または別の適切な時間の期間有効な講読トークンを生成する。この例において、講読トークンの1組のデータは、トークンが生成された時間から24時間の有効期限を含む。パブリッシャ140は、講読トークンを受信した後、パブリッシャ140にデジタルコンポーネントを提供する登録されたエンティティに、デジタルコンポーネントの要求とともに講読トークンを配信する。有効期限の終わりに向かって(たとえば、有効期限の閾値の量の時間内に)、パブリッシャ140は、間もなく失効される現在の講読トークン(または少なくとも、失効される講読トークンのための第1の暗号化されたユーザ識別子)を含む講読トークンの更新を要求することができる。パブリッシャは、たとえば、現在の講読トークンが失効される前に、データセキュリティシステム180に更新された講読トークンの反復的な要求を送ることができる。
【0122】
データセキュリティシステム180が、更新された第1の暗号化されたユーザ識別子を生成する(520)。間もなく失効される現在の講読トークンを含む更新要求を受信した後、データセキュリティシステム180は、現在の講読トークンを生成する間に第1の暗号化されたユーザ識別子を生成するために使用された秘密鍵(またはこの秘密鍵に対応する別の暗号化鍵)を使用して第1の暗号化されたユーザ識別子(短期ユーザ識別子)を復号する。第1の暗号化されたユーザ識別子を復号することは、平文のユーザ識別子、たとえば、ユーザのPIIまたはユーザの内部アカウント識別子を生成する。データセキュリティシステム180は、平文のユーザ識別子を使用して、生成されたユーザ識別子を、データセキュリティシステム180が講読トークンを発行した複数のユーザのユーザ識別子のリストと比較することによって、現在の講読トークンが生成されたユーザを特定する。ユーザおよび/またはユーザの識別子を特定した後、データセキュリティシステム180は、確率的対称暗号化アルゴリズムと、現在の講読トークンの第1の暗号化されたユーザ識別子を生成するために使用された秘密鍵とは異なり得る秘密鍵とを使用して、現在の講読トークンの第1の暗号化されたユーザ識別子とは異なる更新された第1の暗号化されたユーザ識別子を生成する。暗号化された結果をこのようにして変更することによって、特定のユーザに関する複数の講読トークンを受信するエンティティは、第1の暗号化されたユーザ識別子に基づいて、複数の講読トークンをまとめて相互に関連付けることができず、またはトークンが同じユーザに関するものであると判定することができない。このようにして、受信者が復号することができる第2の暗号化されたユーザ識別子を有する付属要素を講読トークンが含む受信者のみが、ユーザに関する複数の講読トークンを相互に関連付けることができる。
【0123】
データセキュリティシステム180が、更新された講読トークンを生成する(530)。
図1を参照して説明されたように、データセキュリティシステム180は、更新された第1の暗号化されたユーザ識別子と、更新された有効期限、1つまたは複数のコンテンツプラットフォームがデジタルコンポーネントを提供するためにユーザデータを使用することに対するユーザの同意を得ているかまたは得ていないかを表す更新されたユーザ同意データ(たとえば、更新されたユーザ同意文字列)などの更新された1組のデータとを含む更新された講読トークンを生成する。更新された同意設定は、前の講読トークンが生成されてから、ユーザがデータプライバシーユーザインターフェースを使用して行ったすべての変更を反映し得る。たとえば、ユーザが特定のコンテンツプラットフォームがユーザのデータを使用することを阻止した場合、更新された同意設定は、変更を反映することができ、更新された講読トークンは、特定のコンテンツプラットフォームに関する付属要素を含まない。
【0124】
データセキュリティシステム180が、更新された講読トークンをパブリッシャ140に送信する(540)。たとえば、パブリッシャ140(またはSSP 150)が、パブリッシャ140のウェブサイト142またはアプリケーションのデジタルコンポーネントスロットのためにDSP 160(またはデジタルコンポーネントプロバイダ170)からデジタルコンポーネントを収集する責任を担うことができる。更新された講読トークンが、SSP 150および/またはDSP 160(もしくはデジタルコンポーネントプロバイダ170)に配信するためにネットワーク105を介してパブリッシャ140に送信される。たとえば、パブリッシャ140は、ユーザのクライアントデバイスに送信される電子リソース(たとえば、ウェブページ)のためのコードにユーザに関する更新された講読トークンを含めることができる。別の例において、電子リソースのデジタルコンポーネントスロットのコードは、たとえば、クライアントデバイスによるコードの実行に応じて、パブリッシャ140から更新された講読トークンを取得することができる。このようにして、クライアントデバイスは、クライアントデバイスによってコンテンツプラットフォーム、たとえば、SSP 150およびDSP 160に送信されるデジタルコンポーネントの要求に更新された講読トークンを含めることができる。
【0125】
一部の実装においては、クライアントデバイスのユーザが電子メールアドレスなどのPIIをパブリッシャ140のウェブサイト142に提供するとき、クライアントデバイス110上で実行されるウェブサイト142内のスクリプトが、ユーザによって提供されたそれぞれの電子メールアドレスの電子メールプロバイダを特定する。特定された電子メールプロバイダが上述の技術および方法を実装しない(たとえば、参加者でない)状況において、スクリプトは、別のデータセキュリティプラットフォーム180、たとえば、
図2のデフォルトデータマネージャ213に講読トークンを要求することが可能である。いずれの場合も、データセキュリティプラットフォーム180は、講読およびプライバシー設定のためのユーザインターフェースを提供するデータセキュリティシステム180のウェブサイトへのURL(またはURLを参照するリンク)を含む電子メールをユーザの電子メールアドレスに送信し、講読およびプライバシー設定をチェックするようにユーザに促すことができる。電子メールに含まれるURLは、短期ユーザ識別子、たとえば、データセキュリティシステム180の秘密鍵を用いて確率的対称鍵暗号化アルゴリズムで暗号化された電子メールアドレスを含み得る。URLとインタラクションした後、データセキュリティシステム180は、アプリケーション112を使用してユーザにウェブサイトを提示するために、ウェブサイトのコンピュータが実行可能な命令およびデータをクライアントデバイス110に提供する。一部の実装において、データセキュリティシステム180とのすべての将来の通信中にアプリケーション112を特定するために、ウェブクッキーがアプリケーション112のクッキージャー(cookie jar)に置かれる。
【0126】
前述のように、PIIは、機密である場合があるユーザに関連する情報である。そのような情報の意図されていない共有は、プライバシーの問題を引き起こし得る。クライアントデバイス110のユーザが、ニュース記事を提供するパブリッシャ140によって発行されるウェブサイトにナビゲートすると仮定する。ニュース記事を受信するために、ユーザは、ユーザの電子メールアドレスの代わりにユーザの電話番号を使用してウェブサイトを購読し得る。電子メールアドレスが使用されるとき、電子メールプロバイダは、データプライバシー設定を閲覧または修正するときにユーザが本物であることを保証するための認証メカニズムを提供することができる。しかし、電話番号がパブリッシャを講読するためのPIIとして使用されるとき、同じ認証メカニズムは存在しない可能性がある。
【0127】
講読のためのユーザの電話番号を受信した後、パブリッシャ140のウェブサイト142は、講読トークンの要求を生成し、要求をネットワーク105を介してデータセキュリティシステム180に送信する。データセキュリティシステム180は、クライアントデバイス110にSMSメッセージを送信することができる。この例において、クライアントデバイス110は、電話機能、たとえば、セルラ機能を有する。たとえば、クライアントデバイス110は、セルラネットワークまたはインターネットを含み得るネットワーク105を介したスマートフォン、タブレット、ラップトップ、またはパーソナルコンピュータであることが可能である。
【0128】
一部の実装において、データセキュリティシステム180によってユーザのクライアントデバイス110に送信されるSMSメッセージは、データセキュリティプラットフォーム180のダッシュボードまたはウェブサイトへのURLなどのリソースロケータと、ユーザの短期ユーザ識別子とを含む。ユーザの短期ユーザ識別子は、確率的対称暗号化アルゴリズムおよびデータセキュリティシステム180に知られている秘密鍵を使用してユーザの電話番号(またはユーザの内部識別子)を暗号化することによって、データセキュリティシステム180によって生成される。
【0129】
一部の実装においては、SMSメッセージを受信した後、およびURL(またはURLを参照するリンク)とのユーザのインタラクションの後、ユーザは、クライアントデバイス110内のデータセキュリティシステム180によって提供されるアプリケーション(たとえば、アプリケーション113)にか、またはクライアントデバイス110上のブラウザベースのアプリケーション(たとえば、アプリケーション112)を介してデータセキュリティシステム180のウェブサイトにかのいずれかにリダイレクトされ得る。いずれの場合も、ユーザは、データプライバシー設定を管理するためのインタラクティブなユーザインターフェースを提示される。たとえば、ユーザは、上述のように、購読を不正なものとして指定するか、コンテンツプラットフォームをブロックするか、またはユーザのデータの受信者がデータをどのように使用し得るかを指定することができる。
【0130】
一部の実装において、SMSメッセージを介してクライアントデバイス110に提供された短期ユーザ識別子は、クライアントデバイス110に記憶される。たとえば、SMSメッセージを介してクライアントデバイス110に提供されたURLとインタラクションした後、ユーザは、クライアントデバイス110上で実行されているデータセキュリティシステム180によって提供されるアプリケーション113にリダイレクトされると仮定する。アプリケーション113は、SMSメッセージを解析し、ユーザの短期ユーザ識別子を抽出し、短期ユーザ識別子をクライアントデバイス110に記憶する。これが、
図6を参照してさらに説明される。
【0131】
図6は、クライアントデバイスによって短期ユーザ識別子を受信する例示的なプロセス600を示すスイムレーン図である。プロセス600の動作は、たとえば、クライアントデバイス110、パブリッシャ140のコンピューティングシステム、データセキュリティシステム180によって実装され得る。プロセス600の動作は、非一時的である場合がある1つまたは複数のコンピュータ可読媒体上に記憶された命令として実装されることが可能であり、1つまたは複数のデータ処理装置による命令の実行は、1つまたは複数のデータ処理装置にプロセス600の動作を実行させることが可能である。このプロセス600は、ウェブページをダウンロードするウェブブラウザの観点で説明されるが、ネイティブアプリケーションが、同様のプロセスで使用され得る。
【0132】
クライアントデバイス110のユーザが、パブリッシャ140のウェブサイト142にナビゲートする(602)。たとえば、クライアントデバイス110のユーザは、ブラウザアプリケーション112を使用して、リソースロケータ(たとえば、URL)を指定するかまたは検索結果のリンクを選択することによってウェブサイト142を訪問することができる。
【0133】
クライアントデバイス110が、コンテンツの要求を生成し、要求をネットワーク105を介してパブリッシャに送信する(604)。たとえば、クライアントデバイス110のユーザが参照(たとえば、URL)を使用してウェブサイト142を指定した後、アプリケーション112、すなわち、クライアントデバイス110上で実行されるウェブブラウザは、デジタルコンテンツ(すなわち、ウェブサイト142)の要求を生成し、その要求をネットワーク105を介して、ウェブサイト142をホストするパブリッシャ140のウェブサーバに送信する。
【0134】
デジタルコンテンツの要求は、たとえば、パケットネットワーク105を介して送信されることが可能であり、コンテンツ要求自体は、ヘッダおよびペイロードデータを有するパケット化されたデータとしてフォーマットされることが可能である。ヘッダは、パケットの送信先を指定することができ、ペイロードデータは、上で検討された情報のいずれかを含み得る。
【0135】
パブリッシャ140、たとえば、パブリッシャ140のウェブサーバまたはコンテンツサーバが、コンテンツによって応答する(606)。たとえば、クライアントデバイス110からコンテンツの要求(すなわち、ウェブサイト142の要求)を受信した後、ウェブサイト142をホストするウェブサーバは、クライアントデバイス110におけるウェブページの提示を開始するコンピュータが実行可能な命令およびデータを送信することによって応答することができる。応答は、たとえば、パケットネットワーク105を介して送信されるウェブページに関連するデータを含むことが可能であり、コンテンツ自体は、パケット化されたデータとしてフォーマットされ得る。
【0136】
クライアントデバイス110のユーザが、ユーザの電話番号を提供し(608)、ウェブサイト142のパブリッシャ140を講読する。たとえば、ウェブサイト142は、ニュース記事を提供すると仮定する。ユーザは、ニュース記事を毎日受信するためにパブリッシャ140のウェブサイト142を購読することができる。クライアントデバイス110のユーザは、ニュース記事を受信するサービスと引き換えに、ユーザの電話番号をウェブサイト142のパブリッシャ140に提供する。
【0137】
パブリッシャ140が、データセキュリティシステム180にトークン要求を送信する(610)。たとえば、クライアントデバイス110のユーザから電話番号を受信した後、パブリッシャ140は、トークン要求を生成し、データセキュリティシステム180、たとえば、
図2のデフォルトデータマネージャ213に送信する。
【0138】
データセキュリティシステム180が、SMSメッセージをクライアントデバイス110に送信する(612)。たとえば、データセキュリティシステム180は、電話番号に対応するスマートフォン、たとえば、電話番号を所有するスマートフォンにSMSメッセージを送信することができる。データセキュリティシステム180によってユーザのクライアントデバイス110に送信されるSMSメッセージは、データセキュリティプラットフォーム180のダッシュボードまたはウェブサイトへのリソースロケータ(たとえば、URL)と、ユーザの短期ユーザ識別子とを含み得る。ユーザの短期ユーザ識別子は、確率的対称鍵暗号化アルゴリズムおよびデータセキュリティシステム180に知られている秘密鍵を使用してユーザの電話番号(または内部識別子)を暗号化することによって、データセキュリティシステム180によって生成される。したがって、実用的目的のために、短期ユーザ識別子は、暗号化され、短期ユーザ識別子を生成するために使用された暗号化アルゴリズムに基づいて時間の経過とともに変更される。短期ユーザ識別子は、URLのパラメータとして含められ得る。
【0139】
ユーザが、アプリケーション113にリダイレクトされる(614)。たとえば、SMSを受信した後、およびURLとのユーザのインタラクションの後、ユーザは、データセキュリティシステム180によって提供され、クライアントデバイス110上にインストールされるかまたはそれ以外の方法でクライアントデバイス110上で実行されるアプリケーション(たとえば、アプリケーション113)にリダイレクトされる。アプリケーション113は、データセキュリティシステム180からユーザの講読およびプライバシー設定に関する情報を受信することができ、その情報をユーザに提示するためのユーザインターフェースを提供する。アプリケーション113は、ユーザが個々の講読およびデータプライバシー設定を選択および管理するためのコントロールをさらに含み得る。
【0140】
アプリケーション113が、短期ユーザ識別子を解析する(616)。アプリケーション113にリダイレクトされた後、アプリケーション113は、SMSメッセージを解析し、ユーザの短期ユーザ識別子を抽出し、短期ユーザ識別子をクライアントデバイス110に記憶する(618)。一部の実装において、アプリケーション113は、短期ユーザ識別子を、クライアントデバイス110の信頼できるプログラム111(たとえば、オペレーティングシステム)の鍵ストア114(またはキーチェーン(keychain))またはクライアント装置110のその他の安全なストレージに記憶する。
【0141】
ユーザが講読設定にアクセスし、修正するためのデータセキュリティシステム180によって提供されるアプリケーション113にリダイレクトされるときの状況において、アプリケーション113は、データセキュリティシステム180からのユーザ講読データにアクセスする。そのような状況において、クライアントデバイス110上で実行されるアプリケーション113が侵害されていないことを検証するために、クライアントデバイスは、データセキュリティシステム180と通信しながら追加のセキュリティ対策を実装する。たとえば、アプリケーション111は、データセキュリティシステム180によって検証され得るアテステーショントークンを生成するために、信頼できるプログラム111とインタラクションすることができる。概して、信頼できるプログラム111は、侵入することが困難であり、犯人が信頼できるプログラム111を改ざんするために費やす必要がある時間および労力の量が、手に負えないほど多い。さらに、信頼できるプログラム111が信頼性の高いソースによって提供され、維持されるので、発生するすべての脆弱性が、ソースによって対処され得る。これは、
図7を参照してさらに説明される。したがって、ユーザは、そのユーザの電話番号のみに基づいてデータプライバシー設定を修正することができる。電話番号は、ユーザに既に一意に割り当てられている少量の数値データである。これは、ユーザの利便性を向上させる(たとえば、ユーザは、一意のユーザ名などのさらなる識別データを生成する必要がない)。さらに、少量の数値データは、処理の計算効率が良い。さらに、アテステーショントークンの使用と、一部の実装における、説明された方法での暗号化、デジタル署名、および/または公開鍵の使用とは、ユーザのデータのセキュリティを向上させるのに役立つ。したがって、ユーザが自分のデータプライバシー設定を変更することを可能にするより計算効率が良く安全な方法が、提供される。
【0142】
図7は、ユーザがデータプライバシー設定を調整することを可能にするユーザインターフェースを生成し、提供するための例示的なプロセス700を示すスイムレーン図である。プロセス700の動作は、たとえば、クライアントデバイス110またはデータセキュリティシステム180によって実装され得る。プロセス700の動作は、非一時的である場合がある1つまたは複数のコンピュータ可読媒体上に記憶された命令として実装されることが可能であり、1つまたは複数のデータ処理装置による命令の実行は、1つまたは複数のデータ処理装置にプロセス700の動作を実行させることが可能である。
【0143】
クライアントデバイス110のユーザが、アプリケーション113を開く(たとえば、起動する)(702)。前述のように、アプリケーション113は、データセキュリティシステム180によって提供され、クライアントデバイス110上にインストールされるかまたはそれ以外の方法でクライアントデバイス110上で実行され得る。アプリケーション113は、データセキュリティシステム180からユーザの講読およびプライバシー設定に関する情報を受信し、その情報をユーザに提示するためのユーザインターフェースを提供することができる。アプリケーション113は、ユーザが個々の講読およびプライバシー設定を選択および管理することを可能にするインタラクティブなコントロールをさらに含み得る。講読およびプライバシー設定を見るために、ユーザは、クライアントデバイス110上でアプリケーション113を開く。この情報は機密である場合があるので、クライアントデバイス110、アプリケーション113、および/またはユーザが有効であり、侵害されていないことを保証するために、下で説明されるように追加の認証技術が使用される。
【0144】
クライアントデバイス上で実行されるアプリケーション113が、短期ユーザ識別子をフェッチする(704)。
図6を参照して前述されたように、短期ユーザ識別子は、クライアントデバイス110に記憶される。たとえば、アプリケーション113は、短期ユーザ識別子を、クライアントデバイス110の信頼できるプログラム111の鍵ストア114またはクライアントデバイス110のその他の安全なストレージに記憶することができる。アプリケーション113を開始した後、アプリケーション113は、短期ユーザ識別子を、クライアントデバイス110の信頼できるプログラム111の鍵ストア114またはクライアントデバイス110のその他の安全なストレージからフェッチする。たとえば、アプリケーション113は、1つまたは複数のアプリケーションプログラムインターフェース(API)呼び出しを通じて、信頼できるプログラム111への短期ユーザ識別子の要求を生成することができ、信頼できるプログラム111は、短期ユーザ識別子を含む応答を提供する。
【0145】
アプリケーション113が、公開鍵をフェッチする(706)。一部の実装において、アプリケーション113は、インストール中またはクライアントデバイス110上でのその最初の実行中に、データセキュリティシステム180と安全に通信する目的で、公開鍵/プライベート鍵ペアを作成する。クライアントデバイス110上で実行されるアプリケーション113が公開鍵/プライベート鍵ペアを生成するので、その他の受信者エンティティに配布される公開鍵は、クライアントデバイス110の一意識別子として使用され得る。概して、公開鍵/プライベート鍵ペアは、検証されていないネットワーク上の2者間の通信のための非対称暗号化のために使用され得る。たとえば、送信者は、すべての者が利用可能な公開鍵を使用して、平文のメッセージを暗号文に暗号化することができる。受信者は、メッセージを受信した後、平文のメッセージを取得するために、プライベート鍵を使用して暗号文を復号することができる。プライベート鍵は、秘密鍵であり、受信者(たとえば、データセキュリティシステム180)にのみ知られている。アプリケーション113は、公開鍵/プライベート鍵ペアを作成した後、プライベート鍵を、クライアントデバイス110の信頼できるプログラム111の鍵ストア114またはクライアントデバイス110のその他の安全なストレージに安全に記憶する。ユーザがアプリケーション113を開始するとき、アプリケーション113は、クライアントデバイス110の公開鍵をフェッチし、その公開鍵は、クライアントデバイス110の安全でないデータストレージロケーションに記憶され得る。
【0146】
アプリケーション113が、クライアントデバイス110の信頼できるプログラムからアテステーショントークンをフェッチする(708)。概して、クライアントデバイスは、通信の完全性を検証するために通信の受信者によって使用され得るアテステーショントークンを含む通信、たとえば、電子メッセージまたは要求を生成することができる。アテステーショントークンは、ペイロードと、プライベート鍵を使用して1組のデータに基づいて生成されるデジタル署名とを含み得る。このようにして、受信者は、受信された1組のデータと、デジタル署名を生成するために使用されたプライベート鍵に対応する公開鍵とを使用してデジタル署名を検証することによって、たとえば、送信中にまたは仲介者によってペイロードが修正されていないことを検証することができる。信頼できるプログラム111がアテステーションをサポートする場合、信頼できるプログラム111は、アテステーショントークンのための公開鍵/プライベート鍵ペアを生成することができる。そうでない場合、アプリケーション113が、アテステーショントークンの公開鍵/プライベート鍵ペアを生成することができる。
【0147】
ペイロードデータは、アテステーショントークンが作成される時間を示すトークン作成時間、ペイロードデータ、および/または1つもしくは複数の完全性システム(integrity system)によって提供される1つもしくは複数の完全性トークンを含み得る。このトークン作成時間は、高解像度のタイムスタンプ(たとえば、秒、ミリ秒、またはマイクロ秒の精度)であることが可能である。このタイムスタンプは、アテステーショントークンの受信者が、たとえば、トークン作成時間がアテステーショントークンが受信された時間の閾値の継続時間以内であると判定することによって、アテステーションが古くないことを保証することを可能にする。
【0148】
アテステーショントークンの1つまたは複数の完全性トークンは、アテステーショントークンを送信するクライアントデバイス110および/または送信を開始したクライアントデバイス110上で動作するアプリケーション113が信頼できるかどうかを示す。たとえば、完全性トークンは、クライアントデバイス110またはアプリケーション113に関する信頼性の判断を含み得る。これは、アテステーショントークンの受信者(データセキュリティシステム180)が、たとえば、エミュレータもしくはセキュリティを破られたデバイス、またはセキュリティを破られたアプリケーション113からではなく、信頼できるクライアントデバイス110および信頼できるアプリケーション113からデータが来たことを検証することを可能にする。完全性トークンは、信頼できるアナライザ(たとえば、第三者アナライザ)によって生成され、デジタル署名され得るので、アテステーショントークンの受信者は、クライアントデバイス110が信頼できるアナライザによって評価されたこと、および完全性トークン内のデータが信頼できるアナライザによって生成された後に修正されなかったことを検証することができる。
【0149】
アプリケーション113は、信頼できるプログラム111に対する1つまたは複数のAPI呼び出しを使用して、(上述のようにユーザのユーザ識別子を暗号化することによる暗号化された結果である)短期ユーザ識別子およびクライアントデバイス110の公開鍵をペイロードデータとして含むアテステーショントークンを生成する要求を、クライアントデバイス110上で実行される信頼できるプログラム111に送る。つまり、短期ユーザ識別子およびクライアントデバイス110の公開鍵が、アテステーショントークンのペイロードデータに含まれ得る。信頼できるプログラム111は、アテステーショントークンを生成し、アテステーショントークンをアプリケーション113に提供する。アテステーショントークンは、ペイロードデータ、1つまたは複数の完全性トークン、ならびにペイロードデータ、完全性トークン、およびアテステーショントークンに含まれるその他のデータ、たとえば、トークン作成タイムスタンプおよび短期ユーザ識別子のデジタル署名を含み得る。一部の実装において、信頼されるプログラム111は、楕円曲線デジタル署名アルゴリズム(ECDSA)を使用してデジタル署名を生成するが、その他の署名技術(たとえば、RSA)も、使用され得る。
【0150】
アプリケーション113が、ユーザ講読情報の要求を生成する(710)。アプリケーション113は、短期ユーザ識別子、公開鍵、およびアテステーショントークンをフェッチした後、ユーザ講読情報の要求を生成し、データセキュリティシステム180に送信する。要求は、短期ユーザ識別子および公開鍵をペイロードデータとして含み得るアテステーショントークンを含む。一部の実装において、短期ユーザ識別子、公開鍵、およびアテステーショントークンは、データセキュリティシステム180の公開鍵を使用して、たとえば、短期ユーザ識別子および公開鍵を含むアテステーショントークンを暗号化することによって暗号化される。上述のように、アテステーショントークンは、アテステーショントークンのその他のデータ、たとえば、短期ユーザ識別子、公開鍵、トークン作成タイムスタンプ、および任意の完全性トークンのデジタル署名を含み得る。ユーザ講読データの要求は、たとえば、パケットネットワーク105を介して送信されることが可能であり、コンテンツ要求自体は、ヘッダおよびペイロードデータを有するパケット化されたデータとしてフォーマットされることが可能である。ヘッダは、パケットの送信先を指定することができ、ペイロードデータは、上で検討された情報のいずれかを含み得る。
【0151】
データセキュリティシステム180が、短期ユーザ識別子の有効性を確認する(712)。ユーザ講読情報の要求を受信した後、データセキュリティシステム180は、データセキュリティシステム180によってのみ知られている秘密鍵を使用して短期ユーザ識別子を復号しようと試みることによって、短期ユーザ識別子の有効性を検証することができる。データセキュリティシステム180が短期ユーザ識別子を成功裏に復号することができる場合、データセキュリティシステム180は、短期ユーザ識別子が成功裏に検証されたと判定することができる。そうでない場合、データセキュリティシステム180は、短期ユーザ識別子が検証されないと判定することができる。
【0152】
データセキュリティシステム180が、アテステーショントークンの有効性を確認する(714)。データセキュリティシステム180は、ペイロードデータが改ざんされていないこと、およびユーザ講読情報の要求の送信者がアプリケーション113であることを検証するために、ユーザ講読情報の要求内に含まれていたアテステーショントークンの有効性を確認する。たとえば、データセキュリティシステム180は、(たとえば、トークン作成時間が現在の時間の閾値の継続時間以内にあることを保証することによって)トークン作成時間を使用し、(アテステーショントークンの公開鍵を使用して)デジタル署名を使用し、および/またはアテステーショントークンに含まれる完全性トークンを使用してアテステーショントークンを検証することができる。各完全性トークンの検証は、アテステーショントークンが検証される方法と同様である(たとえば、完全性トークンのデジタル署名および完全性トークンのトークン作成タイムスタンプに基づく)ことが可能である。一部の実装においては、3つすべての検証が実行されるが、その他の実装においては、より少ない検証が実行され得る。また、検証は、異なる順序でまたは並列に実行され得る。
【0153】
データセキュリティシステム180が、データセキュリティシステム180と安全に通信する目的で、短期ユーザ識別子と、アプリケーション113によって生成された公開/プライベート鍵ペアの公開鍵との間の関連付けを検証する(716)。データセキュリティシステム180は、短期ユーザ識別子を検証した後、クライアントデバイス110を認証して、すべての起こり得るなりすましを防止することができる。たとえば、データセキュリティシステム180は、クライアントデバイス110の電話番号およびアテステーショントークンの公開鍵とのその関連付けの履歴的な記録を調べて、クライアントデバイス110が過去に公開鍵に関連付けられたか、たとえば、リンクされたかどうかを検証することができる。たとえば、データセキュリティシステム180は、それぞれの成功裏に検証されたアテステーショントークンに関して、アテステーショントークンの公開鍵をアテステーショントークンの短期ユーザ識別子にリンクするログを維持することができる。そうである場合、ログに反映されているように、現在の公開鍵が、短期ユーザ識別子に以前リンクされたことがあり、データセキュリティシステム180は、短期ユーザ識別子が成功裏に検証されると判定することができる。
【0154】
そうでない場合、データセキュリティシステム180は、講読情報の要求がユーザによってクライアントデバイス110から開始されたことを検証するために、ユーザがアプリケーション113上で入力することができるかまたはアプリケーション113がSMSメッセージから自動的に抽出することができるコードとともにSMSメッセージをクライアントデバイス110に送信し得る。別の例において、SMSメッセージは、ユーザの真正性を検証するためにユーザをデータセキュリティシステム180のウェブサイトにリダイレクトすることができるURLを含み得る。これは、新しい公開鍵が短期ユーザ識別子に関連付けられ、したがってクライアントデバイス110に属することを保証するための追加のセキュリティを提供する。データセキュリティシステム180は、検証のいずれかが失敗するときに、このSMSメッセージを送信し得る。
【0155】
データセキュリティシステム180が、ユーザ講読トークンの要求に対する応答を準備する(718)。クライアントデバイス110上で実行されるアプリケーション113、クライアントデバイス110のユーザ、およびユーザ講読情報の要求の真正性を検証した後、データセキュリティシステム180は、ユーザに提示するためにアプリケーション113によって必要とされる情報を含む応答を生成する。たとえば、データセキュリティシステム180は、データセキュリティシステム180によって維持されるユーザの安全で暗号化されたデータベースからデータを抽出することができる。
【0156】
データセキュリティシステム180が、アプリケーション113に送信する前に応答を暗号化する(720)。データセキュリティシステム180は、アプリケーション113の公開鍵/プライベート鍵ペアの公開鍵、またはアテステーショントークンに埋め込まれたクライアントデバイス110の公開鍵を使用してユーザ講読情報を暗号文に暗号化し、したがって、クライアントデバイス110上で実行されるアプリケーション113のみが、プライベート鍵を使用して暗号文を復号し、平文のユーザ講読情報にアクセスすることができる。
【0157】
データセキュリティシステム180が、ユーザ講読情報をアプリケーション110に送信する(722)。たとえば、暗号化されたユーザ情報が、パケットネットワーク105を介して、ユーザに提示するために、データセキュリティシステム180からクライアントデバイス110上で実行されるアプリケーション113に送信され、内容自体は、ヘッダおよびペイロードデータを有するパケット化されたデータとしてフォーマットされ得る。ヘッダは、パケットの送信先を指定することができ、ペイロードデータは、上で検討された情報のいずれかを含み得る。ユーザ講読情報は、ユーザのデータプライバシー設定を含むことができ、ユーザのデータプライバシー設定は、たとえば、ユーザによるパブリッシャの講読に応じてユーザに関する講読トークンを要求したパブリッシャのリストを含み得る。
【0158】
クライアントデバイス110上で実行されるアプリケーション113は、暗号化されたユーザ講読データを有する応答を受信した後、プライベート鍵を使用してデータを平文に復号し(724)、平文のユーザ講読データをクライアントデバイス110のユーザに提示する(726)。
【0159】
前述のように、アプリケーション113は、ユーザが個々の講読およびプライバシー設定を選択および管理するためのインタラクティブなコントロールをさらに含み得る。これが、
図8を参照して以下で説明される。
【0160】
図8は、データプライバシー設定を修正する例示的なプロセス800を示すスイムレーン図である。プロセス800の動作は、たとえば、クライアントデバイス110、コンテンツプラットフォーム、およびデータセキュリティシステム180によって実装され得る。プロセス800の動作は、非一時的である場合がある1つまたは複数のコンピュータ可読媒体上に記憶された命令として実装されることが可能であり、1つまたは複数のデータ処理装置による命令の実行は、1つまたは複数のデータ処理装置にプロセス800の動作を実行させることが可能である。説明を目的として、プロセス800は、クライアントデバイスのユーザがアプリケーション113とインタラクションして1つまたは複数のコンテンツプラットフォームを選択し、アプリケーション112のユーザインターフェースを介して、選択された1つまたは複数のコンテンツプラットフォームからユーザデータを削除する命令を与える例示的なシナリオに関連して説明される。
【0161】
クライアントデバイス110のユーザが、アプリケーション113とインタラクションして、1つまたは複数のコンテンツプラットフォームからユーザデータを削除する(802)。前述のように、アプリケーション113は、データセキュリティシステム180によって提供され、クライアントデバイス110上にインストールされるかまたはそれ以外の方法でクライアントデバイス110上で実行される。アプリケーション113は、データセキュリティシステム180から、データプライバシー設定を含むユーザの講読に関する情報を受信することができ、その情報をユーザに提示するためのユーザインターフェースを提供する。アプリケーション113は、ユーザが個々の講読およびプライバシー設定を選択および修正するためのインタラクティブなコントロールをさらに含み得る。たとえば、ユーザは、クライアントデバイス110上でアプリケーション113を開き、例示的なプロセス700によって現在の講読およびプライバシー設定を閲覧し、ユーザインターフェースを通じて、選択された1つまたは複数のコンテンツプラットフォームからユーザデータを削除する命令を与える。この例はDSPにおいてユーザデータを削除する観点のものであるが、同様のプロセスが、その他の修正、たとえば、ユーザのデータがDSPによってどのように使用されるかを実行するために使用され得る。したがって、より広く、ユーザデータを削除する要求(810)および(820)は、1つまたは複数のエンティティ(たとえば、コンテンツプラットフォーム)に関するデータプライバシー設定を修正する要求であってよく、ユーザデータの削除(822)は、データプライバシー設定の修正であってよく、肯定応答(824)は、データプライバシー設定の修正の肯定応答であってよい。
【0162】
クライアントデバイス上で実行されるアプリケーション113が、短期ユーザ識別子をフェッチする(804)。
図6を参照して前述されたように、短期ユーザ識別子は、クライアントデバイス110に記憶される。たとえば、クライアントデバイス110は、短期ユーザ識別子を受信した後、識別子を、クライアントデバイス110の信頼できるプログラム111の鍵ストア114に安全に記憶することができる。アプリケーション113を開始した後、アプリケーション113は、短期ユーザ識別子を、クライアントデバイス110の信頼できるプログラム111からフェッチする。たとえば、アプリケーション113は、短期ユーザ識別子の要求を生成することができ、信頼できるプログラム111は、短期ユーザ識別子を含む要求に対する応答を提供する。上述のように、短期ユーザ識別子は、ユーザのユーザ識別子(たとえば、電話番号、電子メールアドレス、または内部識別子)を暗号化することによって生成された暗号化された結果である。
【0163】
アプリケーション113が、公開鍵をフェッチする(806)。上述のように、アプリケーション113は、インストール中またはクライアントデバイス110上でのその最初の実行中に、データセキュリティシステム180と安全に通信する目的で、公開鍵/プライベート鍵ペアを作成する。アプリケーション113は、公開鍵/プライベート鍵ペアを作成した後、プライベート鍵を、クライアントデバイス110の信頼できるプログラム111の鍵ストア114またはクライアントデバイス110のその他の安全なストレージに安全に記憶する。ユーザがアプリケーション113を開始するとき、アプリケーション113は、たとえば、クライアントデバイス110の別の安全でないデータストレージロケーションからクライアントデバイス110の公開鍵をフェッチする。
【0164】
アプリケーション113が、クライアントデバイス110の信頼できるプログラム111からアテステーショントークンをフェッチする(808)。プロセス700のステップ708と同様に、アプリケーション113は、信頼できるプログラム111に対する1つまたは複数のAPI呼び出しを使用して、短期ユーザ識別子およびアプリケーション113の公開鍵をペイロードデータとして含むアテステーショントークンを生成する要求を、クライアントデバイス110内で実行される信頼できるプログラム111に送る。信頼できるプログラム111は、アテステーショントークンを生成し、アテステーショントークンをアプリケーション113に提供する。アテステーショントークンは、ペイロードデータと、ペイロードデータのデジタル署名とを含み得る。一部の実装において、信頼されるプログラム111は、楕円曲線デジタル署名アルゴリズム(ECDSA)を使用してデジタル署名を生成するが、その他の署名技術(たとえば、RSA)も、使用され得る。
【0165】
アプリケーション113が、ユーザデータを削除する要求を生成する(810)。アプリケーション113は、短期ユーザ識別子、公開鍵、およびアテステーショントークンをフェッチした後、ユーザデータを削除する要求を生成し、データセキュリティシステム180に送信する。要求は、短期ユーザ識別子、公開鍵、およびアテステーショントークンを含む。ユーザデータを削除する要求は、ユーザインターフェースを介してユーザによって選択されたユーザデータを削除するための選択された1つまたは複数のコンテンツプラットフォームまたはDSP 160のリストも含み得る。ユーザデータを削除する要求は、たとえば、パケットネットワーク105を介して送信されることが可能であり、コンテンツ要求自体は、ヘッダおよびペイロードデータを有するパケット化されたデータとしてフォーマットされることが可能である。ヘッダは、パケットの送信先を指定することができ、ペイロードデータは、上で検討された情報のいずれかを含み得る。
【0166】
データセキュリティシステム180が、短期ユーザ識別子の有効性を確認する(812)。ユーザデータを削除する要求を受信した後、データセキュリティシステム180は、
図7を参照して上述されたのと同じ方法で短期ユーザ識別子の有効性を確認することができる。
【0167】
データセキュリティシステム180が、アテステーショントークンの有効性を確認する(814)。たとえば、データセキュリティシステム180は、
図7を参照して上述されたように、アテステーショントークンに含まれるトークン作成時間、デジタル署名、および/または完全性トークンを使用してアテステーショントークンを検証することができる。
【0168】
データセキュリティシステム180が、短期ユーザ識別子と公開鍵との間の関連付けを検証する(816)。たとえば、
図7を参照して上述されたように、データセキュリティシステム180は、クライアントデバイス110の電話番号およびアテステーショントークンの公開鍵とのその関連付けの履歴的な記録を調べて、クライアントデバイス110が実際のところ公開鍵に関連付けられるかどうかを検証することができる。別の例において、講読情報の要求がユーザによってクライアントデバイス110から開始されたことを検証するために、データセキュリティシステム180が、ユーザがアプリケーション113上で入力することができるコードとともにSMSメッセージをクライアントデバイス110に送信することができるか、またはアプリケーション113が、SMSメッセージを読んでコードを抽出することができる。別の例において、SMSメッセージは、ユーザの真正性を検証するためにユーザをデータセキュリティシステム180のウェブサイトにリダイレクトすることができるURLを含み得る。
【0169】
データセキュリティシステム180が、アテステーショントークンを記憶する(818)。データセキュリティシステムは、クライアントデバイス110から受信されたユーザ講読/プライバシー設定を修正する各要求のログを維持することができる。たとえば、データセキュリティシステム180は、クライアントデバイス110のユーザおよびデータセキュリティシステム180に関連するすべてのエンティティがユーザおよびデータセキュリティシステム180によって設定されたプロトコルに従っているかどうかをチェックするための監査を実行することができるように、ユーザデータを削除する要求に含まれていたアテステーショントークンを記憶することができる。一部の実装において、データセキュリティシステム180は、データセキュリティシステム180内のストレージ空間を節約するために、アテステーショントークンの付属要素を削除することができる。
【0170】
データセキュリティシステム180が、ユーザがデータを削除することを要求したコンテンツプラットフォームにユーザデータを削除する要求を送信する(820)。たとえば、ユーザデータを削除する要求およびクライアントデバイス110を認証した後、データセキュリティシステム180は、ユーザデータを削除する要求を、データセキュリティシステム180に関連付けられる選択された1つまたは複数のコンテンツプラットフォームの各々に送信することができる。要求がデータプライバシー設定を修正するためのものである場合、要求は、代わりに、要求された修正を指定することができる。
【0171】
コンテンツプラットフォームが、ユーザデータを削除する(822)。データセキュリティシステム180によって送信されたユーザデータを削除する要求の受信に応じて、選択された1つまたは複数のコンテンツプラットフォームは、ユーザデータを削除する要求に含まれる第2のユーザ識別子によって特定されたユーザのユーザデータを削除する。コンテンツプラットフォームは、アテステーショントークンを、イベント、たとえば、データ削除イベントを説明するデータとともに記憶することができる。イベントが、たとえば、コンテンツプラットフォームにユーザのデータを使用するパーミッションを与えるデータプライバシー設定を修正するためのものである場合、アテステーショントークンは、コンテンツプラットフォームがユーザのデータを使用することを許可されたことの暗号学的に検証可能な証拠として使用され得る。
【0172】
データセキュリティシステム180が、のコンテンツプラットフォームから肯定応答を受信する(824)。選択された1つまたは複数のコンテンツプラットフォームの各々によるユーザデータの削除に応じて、選択された1つまたは複数のコンテンツプラットフォームの各々は、ネットワーク105を介してデータセキュリティシステム180に肯定応答通知を送信する。データセキュリティシステム180は、それと引き換えに、ユーザの要求が処理されたことをユーザに通知するために、クライアントデバイス110のアプリケーション113に肯定応答を送信する(826)。一部の実装において、アプリケーション113は、ユーザデータ削除要求を1つまたは複数のDSP 160に直接送信してよい。
【0173】
一部の実装においては、クライアントデバイス110のユーザがアプリケーション113にアクセスすることができないとき(たとえば、アプリケーション113がクライアントデバイス110にインストールされていないとき)、ユーザは、ブラウザベースのアプリケーション112を使用して、データセキュリティシステム180によって提供されるウェブサイトにアクセスし、上述のタスクのすべてを実行することができる。このシナリオが、
図9を参照してさらに説明される。
【0174】
図9は、ユーザがブラウザアプリケーションを使用してデータプライバシー設定を調整することを可能にするユーザインターフェースを生成し、提供するための例示的なプロセス900を示すスイムレーン図である。プロセス900の動作は、たとえば、クライアントデバイス110またはデータセキュリティシステム180によって実装され得る。プロセス900の動作は、非一時的である場合がある1つまたは複数のコンピュータ可読媒体上に記憶された命令として実装されることが可能であり、1つまたは複数のデータ処理装置による命令の実行は、1つまたは複数のデータ処理装置にプロセス900の動作を実行させることが可能である。
【0175】
データセキュリティシステム180が、SMSメッセージをクライアントデバイス110に送信する(902)。たとえば、クライアントデバイス110のユーザが、ブラウザアプリケーション112を使用して、パブリッシャ140のウェブサイト142にナビゲートすると仮定する。さらに、ユーザは、パブリッシャ140を購読するためにユーザの電話番号を提供すると仮定する。そのようなシナリオにおいて、パブリッシャ140は、データセキュリティシステム180に通知し、そしてさらに、データセキュリティシステム180が、電話番号が属するクライアントデバイス110にSMSメッセージを送信する。一部の実装において、データセキュリティシステム180によってユーザのクライアントデバイス110に送信されるSMSメッセージは、データセキュリティプラットフォーム180のダッシュボードまたはウェブサイトへのURLなどのリソースロケータと、ユーザの暗号化された短期ユーザ識別子とを含む。ユーザの短期ユーザ識別子は、確率的対称鍵暗号化アルゴリズムおよびデータセキュリティシステム180にのみ知られている秘密鍵を使用してユーザの電話番号を暗号化することによって、データセキュリティシステム180によって生成される。
【0176】
クライアントデバイスのユーザが、SMSメッセージについて通知され(904)、ユーザが、SMSメッセージとインタラクションする(906)。たとえば、データセキュリティシステム180からSMSメッセージを受信した後、ユーザは、SMSメッセージについて通知される。ユーザは、クライアントデバイス110の信頼できるプログラム111(たとえば、オペレーティングシステム)によってSMSメッセージについて通知を受けた後、SMSメッセージ内で提供されたURLとインタラクションし、ブラウザアプリケーション112を使用してデータセキュリティシステム180によって提供されるウェブサイトにリダイレクトされる(908)。
【0177】
ブラウザアプリケーション112が、デジタルコンテンツの要求を生成し、送信する(910)。たとえば、クライアントデバイス110のユーザがSMSメッセージ内の参照(たとえば、URL)をクリックすることによってウェブサイトを指定した後、アプリケーション112、たとえば、クライアントデバイス110上で実行されるウェブブラウザは、デジタルコンテンツの要求(すなわち、セキュリティシステム180のウェブサイトの要求)を生成し、その要求をネットワーク105を介してデータセキュリティシステムに送信する。一部の実装において、デジタルコンテンツの要求は、アテステーションを含んでよい。この例において、アテステーショントークンは、信頼できる第三者によって発行されたトラストトークンの形態であることが可能である。たとえば、信頼できる第三者は、クライアントデバイス110から取得された不正検出信号を評価した後、クライアントデバイス110にトラストトークンを発行することができる。一部の実装において、デジタルコンポーネントの要求は、データセキュリティシステム180との前の通信中にクライアントデバイス110上に置かれたデータセキュリティシステム180のクッキーを含み得る。
【0178】
データセキュリティシステム180が、トラストトークンのアテステーション記録の有効性を確認する(912)。アテステーション記録は、署名された引き換え記録を含み得る。たとえば、ウェブページ上のスクリプトまたはその他のコードが、信頼できる第三者からのトラストトークンを引き換えるようブラウザに要求することができる。トラストトークンが有効であれる場合、信頼できる第三者は、署名された引き換え記録をブラウザに返すことができる。データセキュリティシステム180は、アテステーション記録が添付されたデジタルコンテンツの要求(すなわち、データセキュリティシステム180のウェブサイトの要求)を受信する。アテステーション記録は、トラストトークンのトークン識別子、トークン作成タイムスタンプ、および署名された引き換え記録を含む1組のデータを含み得る。アテステーション記録は、信頼できる第三者のプライベート鍵を使用して生成された1組のデータのデジタル署名も含み得る。データセキュリティシステム180は、トークン作成時間が現在の時間の閾値の継続時間以内であることを検証し、信頼できる第三者のプライベート鍵に対応する公開鍵を使用してデジタル署名を検証することによって、署名された引き換え記録を検証することができる。
【0179】
データセキュリティシステム180が、短期ユーザ識別子の有効性を確認する(914)。データセキュリティシステム180は、暗号化された短期ユーザ識別子、公開鍵、およびアテステーショントークンを、データセキュリティシステム180のプライベート鍵を使用して復号する。データセキュリティシステム180は、さらに、クライアントデバイス110またはアプリケーション113の公開鍵を使用して、デジタルコンテンツの要求に含められたデジタル署名を使用して、短期ユーザ識別子、公開鍵、およびアテステーショントークンの有効性を確認する。デジタルコンテンツの要求のデータのいずれかがデジタル署名が生成された後に変化する場合、デジタル署名の検証は失敗する。
【0180】
データセキュリティシステム180が、デジタルコンポーネントの要求によって受信されたクッキーの有効性を確認する(916)。たとえば、データセキュリティシステム180が、アプリケーション112によるデータセキュリティシステムのウェブサイトの前のアクセス中にブラウザアプリケーション112にクッキーを置いていたと仮定する。また、クッキーの値が、(上記のように暗号化された結果である)短期ユーザ識別子であると仮定する。データセキュリティシステム180は、デジタルコンポーネントの要求に含められたクッキーを受信した後、なりすましのすべての兆候に関してクッキーの有効性を確認する。
【0181】
データセキュリティシステム180が、デジタルコンテンツをブラウザアプリケーション112に送信する(918)。たとえば、データセキュリティシステム180は、クライアントデバイス110上で実行されるブラウザアプリケーション112に、ウェブサイトのコンピュータが実行可能な命令およびデータを送信することによって応答することができる。応答は、たとえば、パケットネットワーク105を介して送信されるウェブサイトに関連するデータを含むことが可能であり、コンテンツ自体は、パケット化されたデータとしてフォーマットされ得る。一部の実装において、デジタルコンテンツによる応答は、データセキュリティシステム180とのすべての将来の通信中にブラウザアプリケーション112を特定するためにブラウザアプリケーション112のクッキージャーに置かれるクッキーも含み得る。ブラウザアプリケーション112は、ウェブサイトのコンテンツを受信した後、ユーザに対してウェブサイトを提示する(920)。
【0182】
図10は、ユーザインターフェースコントロールを使用して、修正されたデータプライバシー設定に基づいてユーザデータの使用法を修正するプロセス1000を示す流れ図である。プロセス1000の動作は、たとえば、クライアントデバイス110および/またはデータセキュリティシステム180によって実装され得る。プロセス1000の動作は、非一時的である場合がある1つまたは複数のコンピュータ可読媒体上に記憶された命令として実装されることも可能であり、1つまたは複数のデータ処理装置による命令の実行は、1つまたは複数のデータ処理装置にプロセス1000の動作を実行させることが可能である。
【0183】
ユーザインターフェースが、ユーザがデータプライバシー設定を指定することを可能にするユーザインターフェースコントロールを提示するように更新される(1010)。たとえば、アプリケーション113は、データセキュリティシステム180からのユーザ講読データにアクセスする。ユーザ講読データにアクセスすると、アプリケーション113は、ユーザ講読データをユーザに提示し、ユーザにインターフェースコントロールを提供する。ユーザは、インターフェースコントロールとインタラクションして、1つもしくは複数のコンテンツプラットフォームからユーザデータを削除するか、または1つもしくは複数のエンティティに関する所与のデータプライバシー設定を修正する。
【0184】
1つまたは複数のエンティティに関する所与のデータプライバシー設定を修正する要求が、受信される(1020)。たとえば、ユーザが1つまたは複数のコンテンツプラットフォームを選択した後、アプリケーション113は、クライアントデバイス110から短期ユーザ識別子、公開鍵、およびアテステーショントークンをフェッチする。そして、アプリケーションは、ユーザのデータプライバシー設定を更新または修正する要求を生成し、データセキュリティシステム180に送信する。
【0185】
データセキュリティシステム180が、少なくとも短期ユーザ識別子を使用して要求の有効性を確認しようと試みる(1030)。たとえば、データプライバシー設定を修正する要求を受信した後、データセキュリティシステム180は、
図7および
図8を参照して上述されたように、短期ユーザ識別子、(署名された引き換え記録を有するアテステーション記録の形態であることが可能である)アテステーショントークン、および/または短期ユーザ識別子と公開鍵との間の関連付けを検証することによって要求の有効性を確認する。
【0186】
要求の有効性が成功裏に確認される場合、データセキュリティシステム180が、修正されたデータプライバシー設定によって影響を受ける1つまたは複数のエンティティの各々に、修正されたデータプライバシー設定に従ってデータの使用法を修正するように命令するデータを送信する(1050)。たとえば、クライアントデバイス110からのデータプライバシー設定を修正する要求の有効性を確認した後、データセキュリティシステム180は、それぞれの影響を受けるエンティティに、そのエンティティに関する修正されたデータプライバシー設定に基づいてユーザのデータの収集、記憶、および/または使用法を修正する要求を送信することができる。この要求は、ユーザの短期ユーザ識別子を含み得る。
【0187】
要求が有効性を成功裏に確認されない場合、データセキュリティシステム180が、1つまたは複数のエンティティの各々にデータの使用法を修正するように命令するデータを送信しない(1040)。たとえば、検証のいずれかが失敗する場合、データセキュリティシステム180は、影響を受けるエンティティにユーザのデータの使用法を修正する要求を送信しない。
【0188】
図11は、上述の動作を実行するために使用され得る例示的なコンピュータシステム1100のブロック図である。システム1100は、プロセッサ1110、メモリ1120、ストレージデバイス1130、および入力/出力デバイス1140を含む。構成要素1110、1120、1130、および1140の各々は、たとえば、システムバス1150を使用して相互に接続され得る。プロセッサ1110は、システム1100内で実行するための命令を処理することができる。一部の実装において、プロセッサ1110は、シングルスレッドプロセッサである。別の実装において、プロセッサ1110は、マルチスレッドプロセッサである。プロセッサ1110は、メモリ1120またはストレージデバイス1130に記憶された命令を処理することができる。
【0189】
メモリ1120は、システム1100内で情報を記憶する。1つの実装において、メモリ1120は、コンピュータ可読媒体である。一部の実装において、メモリ1120は、揮発性メモリユニットである。別の実装において、メモリ1120は、不揮発性メモリユニットである。
【0190】
ストレージデバイス1130は、システム500に大容量ストレージを提供することができる。一部の実装において、ストレージデバイス1130は、コンピュータ可読媒体である。様々な異なる実装において、ストレージデバイス1130は、たとえば、ハードディスクデバイス、光ディスクデバイス、複数のコンピューティングデバイスによってネットワークを介して共有されるストレージデバイス(たとえば、クラウドストレージデバイス)、または何らかのその他の大容量ストレージデバイスを含み得る。
【0191】
入力/出力デバイス1140は、システム1100に入力/出力動作を提供する。一部の実装において、入力/出力デバイス1140は、ネットワークインターフェースデバイス、たとえば、イーサネットカード、シリアル通信デバイス、たとえば、RS-232ポート、および/またはワイヤレスインターフェースデバイス、たとえば、802.11カードのうちの1つまたは複数を含み得る。別の実装において、入力/出力デバイスは、入力データを受信し、外部デバイス1160、たとえば、キーボード、プリンタ、およびディスプレイデバイスに出力データを送信するように構成されたドライバデバイスを含み得る。しかし、モバイルコンピューティングデバイス、モバイル通信デバイス、セットトップボックステレビクライアントデバイスなどのその他の実装も、使用され得る。
【0192】
例示的な処理システムが
図11に示されたが、本明細書に記載の対象および機能的動作の実装は、本明細書で開示された構造およびそれらの構造的均等物を含む、その他の種類のデジタル電子回路、またはコンピュータソフトウェア、ファームウェア、もしくはハードウェア、またはそれらのうちの1つもしくは複数の組合せで実装され得る。
【0193】
本明細書に記載の対象の実施形態および動作は、本明細書において開示された構造およびそれらの構造的均等物を含む、デジタル電子回路、またはコンピュータソフトウェア、ファームウェア、もしくはハードウェア、またはそれらのうちの1つもしくは複数の組合せで実装され得る。本明細書に記載の対象の実施形態は、1つまたは複数のコンピュータプログラム、すなわち、データ処理装置による実行のために、またはデータ処理装置の動作を制御するために複数のコンピュータストレージ媒体(または1つのコンピュータストレージ媒体)上に符号化されたコンピュータプログラム命令の1つまたは複数のモジュールとして実装され得る。代替的にまたは追加的に、プログラム命令は、データ処理装置による実行のために好適な受信機装置に送信するために情報を符号化するように生成される人為的に生成される伝播信号、たとえば、機械によって生成される電気的信号、光学的信号、または電磁的信号上に符号化され得る。コンピュータストレージ媒体は、コンピュータ可読ストレージデバイス、コンピュータ可読ストレージ基板、ランダムもしくはシリアルアクセスメモリアレーもしくはデバイス、またはそれらのうちの1つもしくは複数の組合せであることが可能であり、あるいはそれらに含まれることが可能である。さらに、コンピュータストレージ媒体は、伝播信号ではないが、人為的に生成された伝播信号に符号化されたコンピュータプログラム命令の送信元または送信先であることが可能である。また、コンピュータストレージ媒体は、1つまたは複数の別個の物理コンポーネントまたは媒体(たとえば、複数のCD、ディスク、もしくはその他のストレージデバイス)であることが可能であり、またはそれらに含まれることが可能である。
【0194】
本明細書に記載の動作は、1つもしくは複数のコンピュータ可読ストレージデバイスに記憶されたまたはその他のソースから受信されたデータに対してデータ処理装置によって実行される動作として実装され得る。
【0195】
用語「データ処理装置」は、例として、1つのプログラミング可能なプロセッサ、1台のコンピュータ、1つのシステムオンチップ、またはそれらの複数もしくは組合せを含む、データを処理するためのすべての種類の装置、デバイス、および機械を包含する。装置は、専用の論理回路、たとえば、FPGA(フィールドプログラマブルゲートアレー)またはASIC(特定用途向け集積回路)を含み得る。装置は、ハードウェアに加えて、問題にしているコンピュータプログラムのための実行環境を生成するコード、たとえば、プロセッサのファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、クロスプラットフォームランタイム環境、仮想マシン、またはそれらのうちの1つもしくは複数の組合せを構成するコードも含み得る。装置および実行環境は、ウェブサービスインフラストラクチャ、分散コンピューティングインフラストラクチャ、およびグリッドコンピューティングインフラストラクチャなどの様々な異なるコンピューティングモデルインフラストラクチャを実現することができる。
【0196】
コンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、スクリプト、またはコードとしても知られる)は、コンパイラ型言語もしくはインタープリタ型言語、宣言型言語もしくは手続き型言語を含む任意の形態のプログラミング言語で記述可能であり、独立型プログラムとしての形態、またはモジュール、コンポーネント、サブルーチン、オブジェクト、もしくはコンピューティング環境内での使用に好適なその他の単位としての形態を含む任意の形態でデプロイされ得る。コンピュータプログラムは、ファイルシステム内のファイルに対応する場合があるが、必ずそうであるとは限らない。プログラムは、その他のプログラムもしくはデータを保持するファイルの一部(たとえば、マークアップ言語のドキュメントに記憶された1つもしくは複数のスクリプト)、問題にしているプログラムに専用の単一のファイル、または複数の組織されたファイル(たとえば、1つもしくは複数のモジュール、サブプログラム、もしくはコードの一部を記憶するファイル)に記憶され得る。コンピュータプログラムは、1つのコンピュータ上で、または1つの場所に置かれるか、もしくは複数の場所に分散され、通信ネットワークによって相互に接続される複数のコンピュータ上で実行されるようにデプロイされ得る。
【0197】
本明細書に記載のプロセスおよび論理フローは、入力データに対して演算を行い、出力を生成することによってアクションを行うために1つまたは複数のコンピュータプログラムを1つまたは複数のプログラミング可能なプロセッサが実行することによって実行され得る。また、プロセスおよび論理フローは、専用の論理回路、たとえば、FPGA(フィールドプログラマブルゲートアレー)またはASIC(特定用途向け集積回路)によって実行されることが可能であり、さらに、装置は、それらの専用の論理回路として実装されることが可能である。
【0198】
コンピュータプログラムの実行に好適なプロセッサは、例として、汎用マイクロプロセッサと専用マイクロプロセッサとの両方を含む。概して、プロセッサは、読み出し専用メモリ、またはランダムアクセスメモリ、またはそれらの両方から命令およびデータを受け取る。コンピュータの必須の要素は、命令に従ってアクションを実行するためのプロセッサ、ならびに命令およびデータを記憶するための1つまたは複数のメモリデバイスである。また、概して、コンピュータは、データを記憶するための1つもしくは複数の大容量ストレージデバイス、たとえば、磁気ディスク、光磁気ディスク、もしくは光ディスクを含むか、またはそれらの大容量ストレージデバイスからデータを受信するか、もしくはそれらの大容量ストレージデバイスにデータを転送するか、もしくはその両方を行うために動作可能なように結合される。しかし、コンピュータは、そのようなデバイスを有していなくてもよい。さらに、コンピュータは、別のデバイス、たとえば、ほんのいくつか例を挙げるとすれば、モバイル電話、携帯情報端末(PDA)、モバイルオーディオもしくはビデオプレイヤー、ゲームコンソール、全地球測位システム(GPS)受信機、またはポータブルストレージデバイス(たとえば、ユニバーサルシリアルバス(USB)フラッシュドライブ)に組み込まれることが可能である。コンピュータプログラム命令およびデータを記憶するのに好適なデバイスは、例として、半導体メモリデバイス、たとえば、EPROM、EEPROM、およびフラッシュメモリデバイス、磁気ディスク、たとえば、内蔵ハードディスクまたはリムーバブルディスク、光磁気ディスク、ならびにCD-ROMディスクおよびDVD-ROMディスクを含むすべての形態の不揮発性メモリ、媒体、およびメモリデバイスを含む。プロセッサおよびメモリは、専用の論理回路によって補完され得るか、または専用の論理回路に組み込まれ得る。
【0199】
ユーザとのインタラクションを提供するために、本明細書に記載の対象の実施形態は、ユーザに対して情報を表示するためのディスプレイデバイス、たとえば、CRT(ブラウン管)またはLCD(液晶ディスプレイ)モニタ、ならびにユーザがコンピュータに入力を与えることができるキーボードおよびポインティングデバイス、たとえば、マウスまたはトラックボールを有するコンピュータ上に実装されることが可能である。その他の種類のデバイスが、ユーザとのインタラクションを提供するためにやはり使用されることが可能であり、たとえば、ユーザに提供されるフィードバックは、任意の形態の感覚フィードバック、たとえば、視覚フィードバック、聴覚フィードバック、または触覚フィードバックであることが可能であり、ユーザからの入力は、音響、発言、または触覚による入力を含む任意の形態で受け取られることが可能である。加えて、コンピュータは、ユーザによって使用されるデバイスにドキュメントを送信し、そのデバイスからドキュメントを受信することによって、たとえば、ウェブブラウザから受信された要求に応じてユーザのクライアントデバイス上のウェブブラウザにウェブページを送信することによってユーザとインタラクションすることができる。
【0200】
本明細書に記載の対象の実施形態は、バックエンドコンポーネントを、たとえば、データサーバとして含むか、またはミドルウェアコンポーネント、たとえば、アプリケーションサーバを含むか、またはフロントエンドコンポーネント、たとえば、ユーザが本明細書に記載の対象の実装とインタラクションすることができるグラフィカルユーザインターフェースもしくはウェブブラウザを有するクライアントコンピュータを含むか、または1つもしくは複数のそのようなバックエンドコンポーネント、ミドルウェアコンポーネント、もしくはフロントエンドコンポーネントの任意の組合せを含むコンピューティングシステムに実装されることが可能である。システムのコンポーネントは、任意の形態または媒体のデジタルデータ通信、たとえば、通信ネットワークによって相互に接続されることが可能である。通信ネットワークの例は、ローカルエリアネットワーク(「LAN」)および広域ネットワーク(「WAN」)、インターネットワーク(たとえば、インターネット)、ならびにピアツーピアネットワーク(たとえば、アドホックピアツーピアネットワーク)を含む。
【0201】
コンピューティングシステムは、クライアントおよびサーバを含み得る。クライアントおよびサーバは、概して互いに離れており、通常は通信ネットワークを通じてインタラクションする。クライアントとサーバとの関係は、それぞれのコンピュータ上で実行されており、互いにクライアント-サーバの関係にあるコンピュータプログラムによって生じる。一部の実施形態において、サーバは、(たとえば、クライアントデバイスとインタラクションするユーザに対してデータを表示し、そのようなユーザからユーザ入力を受け取る目的で)クライアントデバイスにデータ(たとえば、HTMLページ)を送信する。クライアントデバイスにおいて生成されたデータ(たとえば、ユーザのインタラクションの結果)が、サーバにおいてクライアントデバイスから受信され得る。
【0202】
本明細書は多くの特定の実装の詳細を含むが、これらは、いかなる発明の範囲または特許請求される可能性があるものの範囲に対する限定とも見なされるべきでなく、むしろ、特定の発明の特定の実施形態に固有の特徴の説明と見なされるべきである。別々の実施形態の文脈で本明細書において説明されている特定の特徴が、単一の実施形態において組み合わせて実装されることも可能である。反対に、単一の実施形態の文脈で説明されている様々な特徴が、複数の実施形態に別々にまたは任意の好適な部分的組合せで実装されることも可能である。さらに、特徴は、特定の組合せで働くものとして上で説明されている場合があり、最初にそのように主張されてさえいる場合があるが、主張された組合せの1つまたは複数の特徴は、場合によっては組合せから削除されことが可能であり、主張された組合せは、部分的組合せ、または部分的組合せの変形を対象とする可能性がある。
【0203】
同様に、動作が図中に特定の順序で示されているが、これは、所望の結果を達成するために、そのような動作が示された特定の順序でもしくは逐次的順序で実行されること、または示されたすべての動作が実行されることを必要とするものと理解されるべきでない。特定の状況においては、マルチタスクおよび並列処理が有利である場合がある。さらに、上述の実施形態における様々なシステムコンポーネントの分割は、すべての実施形態においてそのような分割を必要とするものと理解されるべきでなく、説明されたプログラムコンポーネントおよびシステムは、概して、単一のソフトウェア製品に一緒に統合されるかまたは複数のソフトウェア製品にパッケージングされることが可能であることを理解されたい。
【0204】
このように、対象の特定の実施形態が説明された。その他の実施形態は、添付の請求項の範囲内にある。場合によっては、請求項に挙げられたアクションは、異なる順序で実行され、それでも所望の結果を達成することができる。加えて、添付の図面に示されたプロセスは、所望の結果を達成するために、必ずしも示された特定の順序または逐次的順序である必要はない。特定の実装においては、マルチタスクおよび並列処理が有利である場合がある。
【符号の説明】
【0205】
100 環境
105 データ通信ネットワーク
110 クライアントデバイス
111 信頼できるプログラム
112 アプリケーション
113 アプリケーション
114 鍵ストア
116 ユーザインターフェースおよびインタラクティブなコントロール
140 パブリッシャ
142 ウェブサイト
145 リソース
150 サプライサイドプラットフォーム(SSP)
160 デマンドサイドプラットフォーム(DSP)
170 デジタルコンポーネントプロバイダ
180 データセキュリティシステム
200 環境
210 中央機関
211 電子メールプロバイダ登録簿
212 コンテンツプラットフォーム登録簿
213 デフォルトデータマネージャ
220 パブリッシャ
230-1~230-N 参加者コンテンツプラットフォーム
240 電子メールプロバイダ
300 プロセス
400 プロセス
500 プロセス
600 プロセス
700 プロセス
800 プロセス
900 プロセス
1000 プロセス
1100 コンピュータシステム
1110 プロセッサ
1120 メモリ
1130 ストレージデバイス
1140 入力/出力デバイス
1150 システムバス
1160 外部デバイス