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

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

▶ グーグル インコーポレイテッドの特許一覧

特許7492036情報アクセスを制限するセキュアなネットワーク通信
<>
  • 特許-情報アクセスを制限するセキュアなネットワーク通信 図1
  • 特許-情報アクセスを制限するセキュアなネットワーク通信 図2
  • 特許-情報アクセスを制限するセキュアなネットワーク通信 図3
  • 特許-情報アクセスを制限するセキュアなネットワーク通信 図4
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-05-20
(45)【発行日】2024-05-28
(54)【発明の名称】情報アクセスを制限するセキュアなネットワーク通信
(51)【国際特許分類】
   G06F 21/33 20130101AFI20240521BHJP
   H04L 9/32 20060101ALI20240521BHJP
   G06F 21/64 20130101ALI20240521BHJP
【FI】
G06F21/33
H04L9/32 100B
G06F21/64
【請求項の数】 13
(21)【出願番号】P 2022566204
(86)(22)【出願日】2021-12-15
(65)【公表番号】
(43)【公表日】2023-07-24
(86)【国際出願番号】 US2021063477
(87)【国際公開番号】W WO2022154923
(87)【国際公開日】2022-07-21
【審査請求日】2022-12-26
(31)【優先権主張番号】280116
(32)【優先日】2021-01-12
(33)【優先権主張国・地域又は機関】IL
(73)【特許権者】
【識別番号】502208397
【氏名又は名称】グーグル エルエルシー
【氏名又は名称原語表記】Google LLC
【住所又は居所原語表記】1600 Amphitheatre Parkway 94043 Mountain View, CA U.S.A.
(74)【代理人】
【識別番号】100108453
【弁理士】
【氏名又は名称】村山 靖彦
(74)【代理人】
【識別番号】100110364
【弁理士】
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100133400
【弁理士】
【氏名又は名称】阿部 達彦
(72)【発明者】
【氏名】アレックス・ダニエル・ジェイコブソン
(72)【発明者】
【氏名】ガン・ワン
(72)【発明者】
【氏名】マルセル・エム・モティ・ユン
【審査官】平井 誠
(56)【参考文献】
【文献】国際公開第2018/123190(WO,A1)
【文献】国際公開第2008/126180(WO,A1)
【文献】特開2013-218575(JP,A)
【文献】国際公開第2013/047534(WO,A1)
【文献】米国特許出願公開第2010/0325441(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 21/00-88
H04L 9/00-40
(57)【特許請求の範囲】
【請求項1】
コンピュータ実装方法であって、
所与のドメインについて、ユーザのクライアントデバイスにおけるアプリケーションによる表示のために、前記所与のドメインによって提供されたコンテンツとの、前記ユーザによるユーザエンゲージメントを決定するステップと、
前記ユーザによる前記ユーザエンゲージメントに基づいて、前記所与のドメインについて、前記アプリケーションのユーザのためのユーザ識別子の間のリンケージを延長することを決定するステップと、
前記所与のドメインについて、前記アプリケーションの前記ユーザのための前記ユーザ識別子の間の前記リンケージを延長することの決定に応答して、
前記ユーザおよび前記所与のドメインのための1つまたは複数の将来のドメイン固有エフェメラルユーザ識別子を取得するステップであって、各将来のドメイン固有エフェメラルユーザ識別子が、現在の時間期間が経過した後、将来の時間期間の間に、前記アプリケーションが前記所与のドメインに対して前記ユーザを識別するために使用することになるユーザ識別子である、ステップと、
アテステーションレコードを生成するステップであって、前記アテステーションレコードが、
ペイロードデータを備える、データのセットと、
前記データのセットのデジタル署名と、
前記ユーザおよび前記所与のドメインのための現在のドメイン固有エフェメラルユーザ識別子と、
前記ユーザおよび前記所与のドメインのための前記1つまたは複数の将来のドメイン固有エフェメラルユーザ識別子と
を備える、ステップと、
前記所与のドメインに前記アテステーションレコードを送るステップと
を含むコンピュータ実装方法。
【請求項2】
前記データのセットが、前記アテステーションレコードが生成される時間を示すタイムスタンプと、署名付き引換えレコードとを備える、請求項1に記載のコンピュータ実装方法。
【請求項3】
前記ペイロードデータが、前記ユーザおよび前記所与のドメインのための前記1つまたは複数の将来のドメイン固有エフェメラルユーザ識別子を備える、請求項1または2に記載のコンピュータ実装方法。
【請求項4】
前記ユーザによる前記ユーザエンゲージメントが、前記ユーザの前記クライアントデバイスにおける前記アプリケーションによる表示のために、前記所与のドメインによって提供された前記コンテンツとの、前記ユーザによる前記ユーザエンゲージメントのレベルを備え、前記方法が、前記所与のドメインのための前記ユーザエンゲージメントのレベルに基づいて、前記ユーザおよび前記所与のドメインのための前記1つまたは複数の将来のドメイン固有エフェメラルユーザ識別子の量を選択するステップをさらに含む、請求項1から3のいずれか一項に記載のコンピュータ実装方法。
【請求項5】
前記現在のドメイン固有エフェメラルユーザ識別子および前記1つまたは複数の将来のドメイン固有エフェメラルユーザ識別子が、前記所与のドメインの暗号鍵を使用して暗号化される、請求項1から4のいずれか一項に記載のコンピュータ実装方法。
【請求項6】
前記アテステーションレコードが、前記所与のドメインを含む複数のドメインの各々について、前記ドメインのためのそれぞれの現在のユーザ識別子を備える、請求項1から5のいずれか一項に記載のコンピュータ実装方法。
【請求項7】
前記ユーザおよび前記所与のドメインのための前記現在のドメイン固有エフェメラルユーザ識別子が、前記ユーザおよび前記所与のドメインのための現在の公開鍵を備え、
前記1つまたは複数の将来のドメイン固有エフェメラルユーザ識別子の各々が、前記ユーザおよび前記所与のドメインのための将来の公開鍵を備える、請求項1から6のいずれか一項に記載のコンピュータ実装方法。
【請求項8】
前記所与のドメインが、電子リソースのパブリッシャーのドメインであり、
前記所与のドメインについて、前記ユーザの前記クライアントデバイスにおける前記アプリケーションによる表示のために、前記所与のドメインによって提供されたコンテンツとの、前記ユーザによる前記ユーザエンゲージメントを決定するステップが、前記ユーザが前記パブリッシャーの電子リソースにナビゲートすることに基づいて、前記ユーザエンゲージメントのレベルを決定するステップを含む、請求項1から7のいずれか一項に記載のコンピュータ実装方法。
【請求項9】
前記所与のドメインが、デジタルコンポーネントを配信するコンテンツプラットフォームの、または別のコンテンツプラットフォームによるデジタルコンポーネントの配信を容易にするコンテンツプラットフォームのドメインであり、
前記所与のドメインについて、前記ユーザの前記クライアントデバイスにおける前記アプリケーションによる表示のために、前記所与のドメインによって提供されたコンテンツとの、前記ユーザによる前記ユーザエンゲージメントを決定するステップが、前記コンテンツプラットフォームが前記クライアントデバイスにおける提示のために、1つまたは複数のデジタルコンポーネントを提供することに基づいて、前記ユーザエンゲージメントのレベルを決定するステップを含む、請求項1から7のいずれか一項に記載のコンピュータ実装方法。
【請求項10】
前記所与のドメインが、デジタルコンポーネントプロバイダのコンテンツを含むデジタルコンポーネントを作成する、前記デジタルコンポーネントプロバイダのドメインであり、
前記所与のドメインについて、前記ユーザの前記クライアントデバイスにおける前記アプリケーションによる表示のために、前記所与のドメインによって提供されたコンテンツとの、前記ユーザによる前記ユーザエンゲージメントを決定するステップが、前記ユーザが前記デジタルコンポーネントプロバイダによって作成されたデジタルコンポーネントと対話することに基づいて、前記ユーザエンゲージメントのレベルを決定するステップを含む、請求項1から7のいずれか一項に記載のコンピュータ実装方法。
【請求項11】
システムであって、
1つまたは複数のプロセッサと、
命令を記憶した1つまたは複数の記憶デバイスと
を備え、前記命令が、前記1つまたは複数のプロセッサによって実行されると、前記1つまたは複数のプロセッサに、請求項1から10のいずれか一項に記載の方法を実行させる、システム。
【請求項12】
1つまたは複数のプロセッサによって実行されると、前記1つまたは複数のプロセッサに、請求項1から10のいずれか一項に記載の方法を実行させる命令を担持する、コンピュータ可読記憶媒体。
【請求項13】
コンピュータによって実行されると、前記コンピュータに、請求項1から10のいずれか一項に記載の方法のステップを実行させる命令を備える、コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本明細書は、データセキュリティおよび暗号化に関する。
【背景技術】
【0002】
クライアントデバイスは、インターネットなどの公衆ネットワークを介して、要求および他のデータを送信する。これらの通信は、通信を傍受する関係者、および/または通信を受信し、他の関係者に転送する仲介者など、他の関係者によって改変される場合がある。クライアントデバイスはまた、ユーザの承知または許可なしに、不正な要求を送ることができるウイルスおよびマルウェアなど、悪意のある攻撃も受ける。さらに、他の関係者が、クライアントデバイスから発したように見えるが、実際には他の関係者のデバイスから来た要求を送るように、クライアントデバイスをエミュレートする場合がある。
【発明の概要】
【課題を解決するための手段】
【0003】
概して、本明細書で説明する主題の1つの発明的態様は、所与のドメインについて、ユーザのクライアントデバイスにおけるアプリケーションによる表示のために、所与のドメインによって提供されたコンテンツとの、ユーザによるエンゲージメントを決定するステップを含む、方法において具現され得る。ユーザによるエンゲージメントに基づいて、所与のドメインについて、アプリケーションのユーザのためのユーザ識別子の間のリンケージを延長するための決定が行われる。所与のドメインについて、アプリケーションのユーザのためのユーザ識別子の間のリンケージを延長するための決定に応答して、ユーザおよび所与のドメインのための1つまたは複数の将来のドメイン固有エフェメラルユーザ識別子(ephemeral user identifier)が取得される。各将来のドメイン固有エフェメラルユーザ識別子は、現在の時間期間が経過した後、将来の時間期間の間に、アプリケーションが所与のドメインに対してユーザを識別するために使用することになるユーザ識別子である。アテステーションレコード(attestation record)が生成される。アテステーションレコードは、ペイロードデータを含む、データのセットと、データのセットのデジタル署名と、ユーザおよび所与のドメインのための現在のドメイン固有エフェメラルユーザ識別子と、ユーザおよび所与のドメインのための1つまたは複数の将来のドメイン固有エフェメラルユーザ識別子とを含む。アテステーションレコードが、所与のドメインに送られる。この態様の他の実装形態は、コンピュータ記憶デバイスに符号化された方法の態様を実行するように構成された、対応する装置、システム、およびコンピュータプログラムを含む。
【0004】
これらのおよび他の実装形態は、各々、以下の特徴のうちの1つまたは複数を随意に含み得る。いくつかの態様では、データのセットが、アテステーションレコードが生成される時間を示すタイムスタンプと、署名付き引換えレコード(signed redemption record)とを含む。ペイロードデータが、ユーザおよび所与のドメインのための1つまたは複数の将来のドメイン固有ユーザ識別子を含み得る。
【0005】
いくつかの態様では、ユーザによるエンゲージメントが、ユーザのクライアントデバイスにおけるアプリケーションによる表示のために、所与のドメインによって提供されたコンテンツとの、ユーザによるユーザエンゲージメントのレベルを含む。いくつかの態様は、所与のドメインのためのユーザエンゲージメントのレベルに基づいて、ユーザおよび所与のドメインのための1つまたは複数の将来のドメイン固有ユーザ識別子の量を選択するステップを含み得る。
【0006】
いくつかの態様では、現在のドメイン固有ユーザ識別子および1つまたは複数の将来のドメイン固有ユーザ識別子が、所与のドメインの暗号鍵を使用して暗号化される。いくつかの態様では、アテステーションレコードが、所与のドメインを含む複数のドメインの各々について、ドメインのためのそれぞれの現在のユーザ識別子を含む。
【0007】
いくつかの態様では、ユーザおよび所与のドメインのための現在のドメイン固有エフェメラルユーザ識別子が、ユーザおよび所与のドメインのための現在の公開鍵を含む。1つまたは複数の将来のドメイン固有ユーザ識別子の各々が、ユーザおよび所与のドメインのための将来の公開鍵を備える。
【0008】
いくつかの態様では、所与のドメインが、電子リソースのパブリッシャーのドメインである。所与のドメインについて、ユーザのクライアントデバイスにおけるアプリケーションによる表示のために、所与のドメインによって提供されたコンテンツとの、ユーザによるユーザエンゲージメントを決定するステップが、ユーザがパブリッシャーの電子リソースにナビゲートすることに基づいて、ユーザエンゲージメントのレベルを決定するステップを含み得る。
【0009】
いくつかの態様では、所与のドメインが、デジタルコンポーネントを配信するコンテンツプラットフォームの、または別のコンテンツプラットフォームによるデジタルコンポーネントの配信を容易にするコンテンツプラットフォームのドメインである。所与のドメインについて、ユーザのクライアントデバイスにおけるアプリケーションによる表示のために、所与のドメインによって提供されたコンテンツとの、ユーザによるエンゲージメントを決定するステップが、コンテンツプラットフォームがクライアントデバイスにおける提示のために、1つまたは複数のデジタルコンポーネントを提供することに基づいて、ユーザエンゲージメントのレベルを決定するステップを含み得る。
【0010】
いくつかの態様では、所与のドメインが、デジタルコンポーネントプロバイダのコンテンツを含むデジタルコンポーネントを作成する、デジタルコンポーネントプロバイダのドメインである。所与のドメインについて、ユーザのクライアントデバイスにおけるアプリケーションによる表示のために、所与のドメインによって提供されたコンテンツとの、ユーザによるエンゲージメントを決定するステップが、ユーザがデジタルコンポーネントプロバイダによって作成されたデジタルコンポーネントと対話することに基づいて、ユーザエンゲージメントのレベルを決定するステップを含み得る。
【0011】
コンテンツプロバイダは、ユーザに関連付けられたユーザ識別子を使用して、ユーザのためのカスタマイズされたコンテンツを提供することができるので、たとえば、提供されたコンテンツが、カスタマイズされていないコンテンツよりもユーザにとってより有益になる。たとえば、そのようなコンテンツプロバイダは、ユーザ識別子を使用して、経時的にユーザについての情報を収集することができる。しかしながら、いくつかのエンティティは、ユーザにいかなる利益を提供することもなしに、不変の識別子を使用して、ユーザデータを収集することがある。ユーザデータのそのような収集を防止し、ユーザデータセキュリティを向上させるために、ユーザのためのユーザ識別子が定期的に変更され得る。しかしながら、ユーザにカスタマイズされたコンテンツを提供するコンテンツプロバイダにとってのそのような変更は、ユーザのための利益を急に低減することがあり、その理由は、コンテンツプロバイダが、ユーザ識別子が変更されるたびに、ユーザについての情報を収集するプロセスを再開しなければならなくなるからである。実際、延長された時間期間にわたってユーザを識別するための能力を利用するいかなるシステムも、ユーザ識別子が変更されるとき、ネガティブな損害を被ることがあり、その理由は、システムが次いで、再度ユーザからデータを収集することが必要となり、システムの少なくともいくつかの要素とのユーザの対話のいかなる履歴に関する知識も失うからである。したがって、ユーザ識別子の定期的な変更は、ユーザに関して前に取得されたデータの再収集のために、ネットワークにわたるデータ送信の量を増加させ、システム/サービスの前のユーザを識別するための能力に依拠するある機能を防止し得る。
【0012】
本明細書で説明する技法は、ユーザのためのコンテンツの選択に寄与するか、またはそこにユーザがコンテンツを要求したコンテンツプロバイダが、ユーザのための複数のユーザ識別子をリンクさせることを可能にし、ユーザ識別子が変更されるときでも、これらのコンテンツプロバイダが複数のユーザ識別子にわたってユーザ情報を維持することができるようにする。本明細書で説明する技法はまた、ユーザのためのデータ/コンテンツを提供するか、またはそこにユーザがデータ/コンテンツを要求した、データまたはサービスプロバイダが、ユーザのための複数のユーザ識別子をリンクさせることを可能にし、ユーザ識別子が変更されるときでも、これらのデータプロバイダが複数のユーザ識別子にわたってユーザ情報を維持することができるようにする。たとえば、アプリケーション(たとえば、ウェブブラウザ)は、ユーザのためのコンテンツの選択に寄与したコンテンツプロバイダに、ユーザのための現在のユーザ識別子と、アプリケーションが将来の時間期間の間にユーザを識別するために使用することになる1つまたは複数の将来のユーザ識別子とを提供することができる。このようにして、コンテンツプロバイダは、将来のユーザ識別子を含む将来の通信を、現在のユーザ識別子と相関させ、ユーザのための複数のユーザ識別子にわたって、ユーザについての情報を蓄積し続けることができる。
【0013】
本明細書で説明する主題は、以下の利点のうちの1つまたは複数を実現するために特定の実施形態で実装され得る。何らかの積極的な方法において寄与するエンティティのみに、ユーザ識別子リンク可能性を選択的に提供することによって、各ユーザについてのユーザ情報の利用可能性が、オンラインエコシステムにわたって大幅に制限されると同時に、依然として、積極的に寄与するコンテンツプロバイダがユーザに有益なコンテンツを提供することが可能になる。これらの技法は、通常は(たとえば、他のエンティティに販売するために)そのような情報を受動的に収集するようになるエンティティが、長い時間期間にわたってユーザについてのユーザ情報を相関させることが可能になることを防止する。代わりに、これらのエンティティは、新しいユーザ識別子がユーザに割り当てられるたびに、やり直さなければならず、各ユーザについての最小のユーザ情報が得られることになる。
【0014】
単一のドメインのみが、所与のユーザ識別子を使用して、複数の通信において受信されたデータを同じユーザと相関させることができるように、ユーザ識別子はドメイン固有であり得、ドメインごとに暗号化され得る。このようにして、アプリケーションは、積極的な寄与を行うドメインのためのユーザ識別子を選択的にリンクさせ、寄与しないドメインのためのそのようなリンキングを防止することができる。また、これによって、アプリケーションが同じ通信における複数の受信側のためのユーザ識別子を提供することも可能になり、それによって、ネットワーク上で送信される通信の数、および消費されるネットワーク帯域幅の量が低減される。加えて、特定のドメインにユーザ識別子リンク可能性を選択的に提供することによって、不変の長期的なユーザ識別子の使用が回避される。これによって、ユーザデータセキュリティおよびプライバシーが向上し、その理由は、ユーザ識別子が定期的に変更されるので、ユーザ識別子の一時的性質が、悪意のある第三者が特定のユーザを追跡すること、またはさもなければ特定のユーザの潜在的な機密データを利用することを防止するからである。現在および将来のユーザ識別子が暗号化され、特に意図されたドメインに提供され、悪意のある第三者からのデータ窃盗のリスク、および他のセキュリティリスクが大幅に最小限に抑えられ得る。
【0015】
ユーザ識別子は、公開鍵の形態であり得る。ユーザ識別子のデータサイズを低減するために、ユーザ識別子は、公開鍵の暗号学的ハッシュであり得、この暗号学的ハッシュが、特定の長さまたはデータサイズに短縮され得る。これによって、リンキングの目的で各ユーザのための多数のユーザ識別子を記憶し得るコンテンツプロバイダのためのデータ記憶要件が低減される。また、これによって、ユーザ識別子を含む通信のデータサイズも低減され、データ送信がより高速になり、ネットワーク帯域幅の消費がより少なくなり、通信を生成する際のバッテリー消費量がより少なくなる。何千または何百万ものユーザにわたって集約されると、これらの節約はかなりのものである。
【0016】
リンク可能性とともにエフェメラルユーザ識別子を使用することによって、パーソナライズされたコンテンツをサービスすることに直接関与していないドメインが、延長された時間期間にわたってユーザを追跡することを、アプリケーション、たとえば、ブラウザが阻止することが可能になると同時に、依然として、寄与するパブリッシャーが、ユーザの関心を推論し、ユーザの選好を記憶するために、ユーザを識別することが可能になり、寄与するコンテンツプラットフォームが、複数のパブリッシャードメインにわたってそのような情報を収集することが可能になる。エフェメラル識別子は、これらの特徴をサポートすると同時に、アプリケーション開発者、たとえば、ブラウザ開発者に、エフェメラル識別子の寿命および各ドメインのためのリンク可能性の程度に対する制御を与えて、アプリケーション開発者が、ユーザエクスペリエンスを向上させる、カスタマイズされたコンテンツを可能にしながら、ユーザプライバシーを保護する解決策を実施することができるようにする。エフェメラルユーザ識別子の使用によって、いくつかのドメインを防止するための能力は、またさらなるセキュリティ上の利益を提供し、その理由は、悪意のあるドメインが、現在のユーザ識別子を取得することを防止され得るからである。
【0017】
クライアントデバイスからデータを送信するために、アテステーションレコード(たとえば、アテステーショントークン)を使用することによって、クライアントデバイスと、受信側のコンピュータまたは他のデバイスとの間のセキュアな通信チャネルが提供される。アテステーションレコードとともに、アテステーションレコード中に含まれるデータに基づいて生成されたデジタル署名を含めることによって、受信側は、アテステーションレコードが作成された後、たとえば、クライアントデバイスと受信側との間の送信の間に、アテステーションレコードにおけるデータが変更されなかったことを検証することが可能になる。アテステーションレコードへのトークン作成時間の包含によって、受信側がリプレイアタックおよび/または偽造データ送信を検出することが可能になる。
【0018】
前述の主題の様々な特徴および利点は、以下で、図面に関して説明される。追加の特徴および利点は、本明細書で説明する主題および特許請求の範囲から明らかである。
【図面の簡単な説明】
【0019】
図1】アプリケーションが、クライアントデバイスにおいて表示されるコンテンツの選択に寄与するドメインのためのユーザ識別子をリンクさせる、環境のブロック図である。
図2】ドメインのためのユーザ識別子をリンクさせることを可能にする、アテステーションレコードを送るための例示的なプロセスのフロー図である。
図3】ドメインのためのユーザ識別子をリンクさせるための例示的なプロセスのフロー図である。
図4】例示的なコンピュータシステムのブロック図である。
【発明を実施するための形態】
【0020】
様々な図面における同様の参照番号および名称は、同様の要素を示す。
【0021】
概して、本明細書は、エフェメラルユーザ識別子を使用して、ユーザ情報へのアクセスを制御するためのシステムおよび技法について説明する。アプリケーション、たとえば、ウェブブラウザは、様々なドメインに通信を送ることができる。ドメインに送られた通信は、そのアプリケーションおよびそのドメインを使用するユーザのためのエフェメラルユーザ識別子を含み得る。すなわち、エフェメラルユーザ識別子は、ユーザを識別するために、およびユーザとの複数の通信中に含まれる情報を相関させるために、ドメインによって使用され得る。アプリケーションは、所与の時間期間の間に各エフェメラルユーザ識別子を使用することができ、時間期間が経過すると、ユーザおよびドメインのための異なるエフェメラルユーザ識別子を使用することができる。所与の時間期間は、1時間、2時間、1日、1週間、または別の適切な時間期間であり得る。
【0022】
いくつかのドメインが、所与の時間期間よりも長い時間期間の間に、ユーザ情報をユーザと相関させることを可能にするために、アプリケーションは、これらの受信側が、同じユーザのための複数のユーザ識別子をリンクさせることを可能にすることができる。これを行うために、アプリケーションは、ドメインに、ユーザのための現在のユーザ識別子と、ユーザのための1つまたは複数の将来のユーザ識別子の両方を送ることができる。将来のユーザ識別子は、現在の時間期間後に生じるそれぞれの将来の時間期間の間にアプリケーションによって各々使用されることになる、エフェメラルユーザ識別子であり得る。たとえば、各エフェメラルユーザ識別子のための時間期間が1日であると仮定されたい。現在のユーザ識別子が、ドメインに対してユーザを識別するために使用されているその日の間に、アプリケーションはまた、ドメインに、翌日に使用されることになるユーザ識別子も送ることができる。このようにして、ドメインは、2つのユーザ識別子をリンクさせ、現在のユーザ識別子を含む通信中で受信された情報を、翌日のためのユーザ識別子を含む通信中で受信された情報と相関させることができる。
【0023】
アプリケーションは、ユーザのクライアントデバイスにおいて表示されるコンテンツの選択に寄与するもの、または他の特定のドメインなど、特定のドメインに将来のユーザ識別子を提供するが、クライアントデバイスにおいて表示されるコンテンツの選択に寄与しないか、または他の理由のために不適当/悪意のあるものであると見なされた、いくつかの他のドメインに、将来のユーザ識別子を提供しないことができる。このことは、たとえば、ユーザのためのあるコンテンツ/データ/機能をカスタマイズまたは提供するために使用され得るユーザプロファイルを構築するために、どのドメインがより長い時間期間にわたってユーザ情報を相関させることができるかを、選択的に制御し、それによって、ユーザ情報を有するドメインの数を低減し、ユーザプライバシーをよりよく保護する。
【0024】
図1は、アプリケーション112が、クライアントデバイス110において表示されるコンテンツの選択に寄与するドメインのためのユーザ識別子をリンクさせる、環境100のブロック図である。例示的な環境100は、ローカルエリアネットワーク(LAN)、広域ネットワーク(WAN)、インターネット、モバイルネットワーク、またはそれらの組合せなど、データ通信ネットワーク105を含む。ネットワーク105は、クライアントデバイス110、コンテンツプラットフォーム150、ウェブサイト140、パブリッシャー130、およびトラストトークン発行者システム180を接続する。環境100は、多数のクライアントデバイス110、コンテンツプラットフォーム150、ウェブサイト140、パブリッシャー130、およびトラストトークン発行者システム180を含み得る。
【0025】
ウェブサイト140は、ドメイン名に関連付けられ、1つまたは複数のサーバによってホストされる1つまたは複数のリソース145である。例示的なウェブサイトは、テキスト、画像、マルチメディアコンテンツ、およびスクリプトなどのプログラミング要素を含むことができる、HTMLでフォーマットされたウェブページの集合である。各ウェブサイト140は、ウェブサイト140を制御、管理、および/または所有するエンティティであるパブリッシャー130によって維持される。
【0026】
リソース145は、ネットワーク105を介して提供することができる任意のデータである。リソース145は、リソース145に関連付けられたリソースアドレス、たとえばユニバーサルリソースロケータ(URL)によって識別される。リソースには、ほんのいくつかの例を挙げれば、HTMLページ、ワードプロセッシングドキュメント、およびポータブルドキュメントフォーマット(PDF)ドキュメント、画像、ビデオ、およびフィードソースが含まれる。リソースは、埋め込まれた情報(ハイパーリンク内のメタ情報など)および/または埋め込まれた命令(スクリプトなど)を含み得る、単語、語句、画像、および音声などのコンテンツを含むことができる。
【0027】
クライアントデバイス110は、ネットワーク105を介して通信することが可能な電子デバイスである。例示的なクライアントデバイス110は、パーソナルコンピュータ、モバイル通信デバイス、たとえば、スマートフォン、およびネットワーク105を介してデータを送り、受信することができる他のデバイスを含む。クライアントデバイスはまた、マイクロフォンを介してオーディオ入力を受け入れ、スピーカーを介してオーディオ出力を出力する、デジタルアシスタントデバイスも含み得る。デジタルアシスタントは、オーディオ入力を受け入れるためにマイクロフォンを起動する「ホットワード」または「ホットフレーズ」を検出すると、聴取モードになり得る(たとえば、オーディオ入力を受け入れる準備ができている)。デジタルアシスタントデバイスはまた、画像をキャプチャし、情報を視覚的に提示するためのカメラおよび/またはディスプレイも含み得る。デジタルアシスタントは、ウェアラブルデバイス(たとえば、腕時計または眼鏡)、スマートフォン、スピーカーデバイス、タブレットデバイス、または別のハードウェアデバイスを含む、異なる形態のハードウェアデバイスにおいて実装され得る。クライアントデバイスはまた、デジタルメディアデバイス、たとえば、テレビにビデオをストリーミングするためにテレビまたは他のディスプレイにプラグインするストリーミングデバイス、ゲームシステム、または仮想現実システムも含むことができる。
【0028】
クライアントデバイス110は、通常、ネットワーク105を介してデータを送ることおよび受信することを容易にするために、ウェブブラウザおよび/またはネイティブアプリケーションなどのアプリケーション112を含む。ネイティブアプリケーションは、特定のプラットフォームまたは特定のデバイス(たとえば、特定のオペレーティングシステムを有するモバイルデバイス)のために開発されたアプリケーションである。
【0029】
クライアントデバイス110はまた、信用できるプログラム111を含み得る。信用できるプログラム111は、偽造が困難な信頼できるソースからの信用できるコードを含み得る。たとえば、信用できるプログラム111は、オペレーティングシステム、オペレーティングシステムの一部分、ウェブブラウザなどであってよい。概して、信用できるプログラム111は、侵入が困難であり、犯罪者が信用できるプログラム111を改ざんするために費やすことが必要になる時間および労力の量が極めて高く、たとえば、犯罪者にとって経済的に実行可能でない。加えて、信用できるプログラム111は信頼できるソースによって提供され保持されるため、発生するいかなる脆弱性もソースによって対処され得る。
【0030】
信用できるプログラム111は、クライアントデバイス110に対してローカルであってよい。たとえば、信用できるプログラム111は、クライアントデバイス110のオペレーティングシステムのデバイスドライバであってよい。いくつかの実装形態では、信用できるプログラム111は、クライアントデバイス110に対して完全にローカルに動作し、ユーザ情報を送信する必要を低減する。いくつかの実装形態では、信用できるプログラム111は、クライアントデバイス110に対してローカルに、かつネットワーク105などのネットワークを介して動作することができる。たとえば、信用できるプログラム111は、クライアントデバイス110上にインストールされ、ネットワーク105を介して情報を送信および受信する、ウェブブラウザであり得る。以下でより詳細に説明するように、信用できるプログラム111は、セキュアな鍵ストレージ113において暗号鍵を維持することができる。
【0031】
いくつかのリソース、アプリケーションページ、または他の電子コンテンツは、リソース145またはアプリケーションページとともにデジタルコンポーネントを提示するためのデジタルコンポーネントスロットを含み得る。本明細書全体にわたって使用する「デジタルコンポーネント」という句は、デジタルコンテンツまたはデジタル情報の個別の単位(たとえば、ビデオクリップ、オーディオクリップ、マルチメディアクリップ、画像、テキスト、またはコンテンツの別の単位)を指す。デジタルコンポーネントは、単一のファイルとして、またはファイルの集合体として物理メモリデバイスに電子的に記憶されてもよく、デジタルコンポーネントは、ビデオファイル、オーディオファイル、マルチメディアファイル、画像ファイル、またはテキストファイルの形態をとり、広告情報を含んでもよく、したがって、広告は、デジタルコンポーネントの一種である。たとえば、デジタルコンポーネントは、アプリケーション112によって提示されるウェブページまたは他のリソースのコンテンツを補足することが意図されるコンテンツであってよい。より具体的には、デジタルコンポーネントは、リソースコンテンツに関連するデジタルコンテンツを含み得る(たとえば、デジタルコンポーネントは、ウェブページコンテンツと同じトピック、または関連するトピックに関連し得る)。したがって、デジタルコンポーネントの提供は、ウェブページまたはアプリケーションコンテンツを補足し、一般に強化することができる。
【0032】
アプリケーション112が、1つまたは複数のデジタルコンポーネントスロットを含むリソース(またはアプリケーションコンテンツ)をロードするとき、アプリケーション112は、スロットごとにデジタルコンポーネントを要求することができる。いくつかの実装形態では、デジタルコンポーネントスロットは、アプリケーション112に、デジタルコンポーネントを選択し、クライアントデバイス110のユーザに表示するためにデジタルコンポーネントをアプリケーション112に提供するデジタルコンポーネント配信システムにデジタルコンポーネントを要求させるコード(たとえば、スクリプト)を含むことができる。アプリケーション112は、1つまたは複数のコンテンツプラットフォーム150にデジタルコンポーネントを要求することができる。
【0033】
コンテンツプラットフォーム150は、ウェブページ、ネイティブアプリケーションコンテンツ、および/または他の電子リソースもしくはコンテンツとともに表示するために、デジタルコンポーネントを選択し、配信することができる。コンテンツプラットフォームは、サプライサイドプラットフォーム(SSP)および/またはデマンドサイドプラットフォーム(DSP)を含むことができる。一部のパブリッシャー130は、SSPを使用して、そのリソースおよび/またはアプリケーションのデジタルコンポーネントスロットのためのデジタルコンポーネントを取得するプロセスを管理する。SSPは、リソースおよび/またはアプリケーションのためのデジタルコンポーネントを取得するプロセスを自動化するハードウェアおよび/またはソフトウェアにおいて実装される技術プラットフォームである。各パブリッシャー130は、対応するSSPまたは複数のSSPを有し得る。一部のパブリッシャー130は、同じSSPを使用し得る。
【0034】
デジタルコンポーネントプロバイダ160は、パブリッシャーのリソースおよびアプリケーションのデジタルコンポーネントスロットに表示されるデジタルコンポーネントを作成(またはそうでなければパブリッシュ)することができる。デジタルコンポーネントプロバイダ160は、DSPを使用して、デジタルコンポーネントスロットに表示するために、そのデジタルコンポーネントのプロビジョニングを管理することができる。DSPは、リソースおよび/またはアプリケーションとともに表示するためのデジタルコンポーネントを配信するプロセスを自動化するハードウェアおよび/またはソフトウェアにおいて実装される技術プラットフォームである。DSPは、デジタルコンポーネントプロバイダ160に代わって複数のサプライサイドプラットフォームSSPと対話して、複数の異なるパブリッシャー130のリソースおよび/またはアプリケーションとともに表示するためのデジタルコンポーネントを提供することができる。一般に、DSPは、デジタルコンポーネントの要求を(たとえば、SSPから)受信し、要求に基づいて1つまたは複数のデジタルコンポーネントプロバイダによって作成された1つまたは複数のデジタルコンポーネントに対する選択値を生成(または選択)し、デジタルコンポーネント(たとえば、デジタルコンポーネント自体)および選択パラメータに関連するデータをSSPに提供することができる。選択値は、デジタルコンポーネントプロバイダ160が、デジタルコンポーネントの表示またはそれとのユーザ対話のために提供する意思がある量を示すことができる。次いで、SSPは、クライアントデバイス110での表示のためのデジタルコンポーネントを選択し、クライアントデバイス110にデジタルコンポーネントを表示させるデータをクライアントデバイス110に提供することができる。
【0035】
各パブリッシャー130、コンテンツプラットフォーム150、およびデジタルコンポーネントプロバイダ160は、ドメイン名によって識別されるそれぞれのネットワークドメイン(簡潔のためにドメインとも呼ばれる)に関連付けられ得る。ネットワークドメインは、同じインフラストラクチャに関連付けられた1つまたは複数のコンピュータのグループである。たとえば、パブリッシャー130のためのドメインは、ブラウザから受信された要求に応答して、ブラウザにパブリッシャー130の電子リソース(たとえば、ウェブページ)を提供する、ウェブサーバを含み得る。
【0036】
クライアントデバイス110が、受信側に、たとえば、コンテンツプラットフォーム150に、またはウェブサイトをホストするパブリッシャー130のドメインに、通信120を送るとき、クライアントデバイス110は、通信120とともにアテステーションレコード122を送るか、またはアテステーションレコード122の形態で通信120を送ることができる。アテステーションレコード122は、アテステーショントークンの形態であり得、アテステーショントークンは、デジタル署名を含む複合メッセージであり得る。信用できるプログラム111は、アプリケーション112からの要求に応答して、通信120のためのアテステーションレコード122を生成することができる。
【0037】
アテステーションレコード122は、データのセット126と、データのセット126のデジタル署名128とを含み得る。データのセット126は、公開鍵、タイムスタンプ、ペイロードデータ、および/または署名付き引換えレコード(SRR)を含み得る。公開鍵は、(たとえば、通信120がブラウザによって送られるとき)SRR中に埋め込まれるかまたはさもなければリンクされる公開鍵、あるいは(たとえば、通信120がネイティブアプリケーションによって送られるとき)クライアントデバイス110のデバイス公開鍵であり得る。いずれの場合も、公開鍵は、公開鍵に暗号学的にリンクされる、対応するプライベート鍵を有し得る。プライベート鍵は、データのセットのためのデジタル署名を生成するために使用され得、対応する公開鍵は、データのセットを使用して、署名を検証するために使用され得る。公開鍵は、データのセットを暗号化するために使用され得、対応するプライベート鍵は、暗号化されたデータのセットを解読するために使用され得る。
【0038】
タイムスタンプは、アテステーションレコードが生成される時間を示す。タイムスタンプは、たとえば、ミリ秒分解能を有する高分解能タイムスタンプであり得る。ペイロードデータは、使用事例に基づいて変動し得る。たとえば、通信120が、デジタルコンポーネントを要求するためのものであるとき、ペイロードデータは、そのためのデジタルコンポーネントが要求されているデジタルコンポーネントスロットに関するコンテキストデータを含み得る。通信120が、イベントを報告するためのものであるとき、ペイロードデータは、イベントを表すデータを含み得る。
【0039】
トラストトークン発行者システム180は、トラストトークンを発行し、トラストトークンをSRRと引き換えることができる。クライアントデバイス110にトラストトークンを発行するために、トラストトークン発行者システム180は、クライアントデバイス110から受信された不正検出信号を評価して、クライアントデバイス110が信用できるか否かを決定することができる。そうである場合、トラストトークン発行者システム180は、クライアントデバイス110に1つまたは複数のトラストトークンを発行することができる。次いで、クライアントデバイス110は、トラストトークンをSRRと引き換えることができる。各SRRは、個々の通信120のためのものであり得、それに対して通信120が送られているネットワークロケーション(たとえば、ユニバーサルリソースロケータ(URL))を含み得る。SRRはまた、公開鍵の形態であり得る、アプリケーション112またはクライアントデバイスユーザ識別子の暗号学的ハッシュと、少なくともネットワークロケーション、およびアプリケーション112またはクライアントデバイスのユーザ識別子の暗号学的ハッシュを含む、データのセットのデジタル署名とを含み得る。このデジタル署名は、SRRのコンテンツがトラストトークン発行者システム180によって署名して譲渡されて以来、修正されていないことを、通信120の受信側が検証することができるように、かつ、SRRがトラストトークン発行者システム180によって生成されたことを、受信側が確認することができるように、トラストトークン発行者システム180のプライベート鍵を使用して生成され得る。SRRは、アテステーションレコードの任意の構成要素である。SRRは、トラストトークン発行者180がアプリケーションおよび/またはデバイスについての何らかの知識を有し、アプリケーションおよび/またはデバイスを信用できると見なしたことを証明することによって、徐々に増加する不正/悪用検出力を提供する。
【0040】
信用できるプログラム111は、データのセット126を含むデータ構造、たとえば、複合メッセージを生成することができる。次いで、信用できるプログラム111は、データのセット中に含まれるアプリケーションまたはデバイス公開鍵に対応するプライベート鍵、たとえば、デバイス公開鍵に対応するデバイスプライベート鍵を使用して、データのセット126のデジタル署名を生成することができる。
【0041】
アテステーションレコード122はまた、アプリケーション112のユーザのための1つまたは複数のユーザ識別子124を含み得る。たとえば、アテステーションレコード122は、通信120を受信することになる受信側ドメインごとに、ユーザのため、およびそのドメインのための現在のユーザ識別子を含み得る。意図しないドメインがユーザを追跡することを防止するために、およびユーザを追跡するためのドメインの能力を選択的に制限するために、異なるユーザ識別子がドメインごとに使用され得る。各ユーザ識別子は、そのユーザ識別子のための所有者ドメインの公開鍵を使用して暗号化され得る。このようにして、意図されたドメインのみが、その対応するプライベート鍵を使用して、ユーザのためのそのユーザ識別子を解読することができる。ユーザ識別子を暗号化するとき、アプリケーション112、または信用できるプログラム111は、アテステーションレコードのデジタル署名128を、暗号化アルゴリズムのための初期化レコードとして使用して、ユーザ識別子をデータの署名128およびアテステーションレコード122に暗号学的にリンクさせることができる。
【0042】
いくつかの実装形態では、ユーザ識別子は、デジタル署名128を生成するために署名して譲渡されるデータのセット126とは別個であり得る。このようにして、ユーザ識別子は、デジタル署名128を破損することなしに、たとえば、デジタル署名128の検証を、データのセット126における変化のために失敗させることなしに、アテステーションレコード122から分離され得る。
【0043】
いくつかの実装形態では、各ユーザ識別子は、公開鍵の形態である。アプリケーション112(または信用できるプログラム111)は、アプリケーション112から送られた通信の受信側であり得る複数のドメインの各々のための公開鍵およびプライベート鍵ペアを生成することができる。アプリケーション112は、ドメインのために生成された公開鍵を、そのドメインに対してユーザを識別するユーザ識別子として使用することができる。本明細書で主にユーザのための公開鍵として説明するが、ユーザを識別するために使用される公開鍵は、アプリケーション112、アプリケーション112のパブリッシャー、またはユーザのクライアントデバイス110のための公開鍵であり得る。
【0044】
長い時間期間の間にユーザを追跡するためのドメインの能力を制御するために、アプリケーション112は、定期的にユーザ識別子を変更する、たとえば、循環させることができる。アプリケーション112が、ドメインについて、ドメインに対してユーザを識別するユーザ識別子を変更するとき、アプリケーション112によってドメインに送られる後続の通信は、前のユーザ識別子ではなく、新しいユーザ識別子を含むことになる。アプリケーション112が、2つのユーザ識別子をドメインにリンクさせるための能力を提供しなかった場合、ドメインは、2つのユーザ識別子を相関させることができなくなり、したがって、新しいユーザ識別子が、前のユーザ識別子と同じユーザのためのものであると決定することができなくなる。
【0045】
公開鍵がユーザ識別子として使用されるとき、アプリケーション112は、ドメインのための公開鍵を、そのドメインのみにとって利用可能にすることができる。アプリケーション112は、公開鍵に対応するプライベート鍵を、たとえば、鍵ストレージ113において、厳密に秘密に保つことができるので、アプリケーション112は、デジタル署名が公開鍵を使用して検証可能であるように、プライベート鍵を用いて、発信通信に署名することによって、および/または、公開鍵を使用して暗号化された着信通信を解読するために、プライベート鍵を使用することによって、公開鍵のその所有権を証明することができるようになる。
【0046】
パラメータ「unit_of_time」が、ドメインに対してユーザを識別するためのユーザ識別子として使用される、エフェメラル公開鍵の寿命を表すものとする。基準時間からの時間単位における持続時間と、ドメイン名との各組合せについて、アプリケーション112は、持続時間およびドメインのためのドメイン名を使用して、各ドメインのための公開鍵およびプライベート鍵ペアを作成することができる。たとえば、時間単位が1日である場合、アプリケーション112は、各ドメインについて、基準時間からの日数と、ドメインのためのドメイン名との組合せを使用して、毎日のための鍵ペアを作成することができる。持続期間は、「unit_of_time_since_ref」として示され得、鍵のための所有者ドメイン名は、「owner_domain」として示され得る。いくつかの実装形態では、基準時間はエポック時間である。特定のドメインおよび特定の持続期間のための公開鍵は、PublicKeyunit_of_time_since_ref,owner_domainとして示され得る。同様に、対応するプライベート鍵は、PrivateKeyunit_of_time_since_ref,owner_domainとして表され得る。
【0047】
いくつかの実装形態では、アプリケーション112または信用できるプログラムは、すべてのドメインのためのマスタープライベート鍵を生成することができる。いくつかの実装形態では、アプリケーション112は、累乗(すなわち、曲線乗算(curve multiplication))ベース暗号の楕円曲線バージョンに基づく、楕円曲線デジタル署名アルゴリズム(ECDSA)および/またはディフィーヘルマン公開鍵(DHPK)を使用することができる。そのような技法を使用して、プライベート鍵がフィールドにおいてランダムな要素であるという事実を活用して、異なるドメインに各々関連付けられた多数の鍵を擬似ランダムに簡潔に表現することができる。
【0048】
エフェメラルプライベート鍵X(その場合、対応する公開鍵はgxであり、グループにおける基数gのプライベート鍵X乗である)、およびドメインDが与えられると、アプリケーション112が、擬似ランダムMAC鍵Sを有するとする。ドメインDについて、Yd=MAC(S,X||D)であり、ただし、MACはメッセージ認証コードであるとする。本明細書で使用する記号||は、複合メッセージを表す。したがって、X||Dは、鍵Sおよびドメイン名Dの複合メッセージである。より多くのビットが必要とされる場合、2つのMAC鍵S1およびS2が使用され得る。この例では、Yd=MAC(S1,X||D)||MAC(S2,X||D)である。いずれの例でも、ドメインのためのドメイン固有プライベート鍵は、ドメインのためのYD=MAP(Yd)である。エフェメラルプライベート鍵Xは、様々なドメインのためのドメイン固有鍵を生成するためのマスター鍵である。
【0049】
詳細には、HMAC-SHA256は、擬似ランダムMAC関数であり得、MAP関数は、生成されたストリングを取り、より短いフィールドにマッピングすることができる。このマッピングは、MAC関数によって出力された512ビットの擬似ランダムストリングで開始し、256ビットの素数を法として簡約する、モジュラー簡約(modular reduction)であり得、フィールドにおいてランダムに見える数を与えるものである。これによって、曲線乗算のための適切なスカラーを生成し、たとえば、拡張されたストリングをフィールドにマッピングすることによって、選択をほぼ均一にする。たとえば、Ydは、512ビットであり得、フィールドは、256ビット素数ベース(ビットの他の量も使用され得る)であり得、ドメイン固有プライベート鍵YDは、256ビット長の素数を法とする擬似ランダム要素になる。
【0050】
擬似ランダムMAC鍵Sがセキュアであり、擬似ランダム関数への鍵であるとすれば、次いで、すべてのドメイン鍵が擬似ランダムに生成され、ドメインごとにランダムに生成されるかのように見える。ドメインのための対応する公開鍵は、エフェメラルプライベート鍵Xが有効である時間期間の間、gYD(たとえば、数論的グループにわたるべき剰余、または楕円曲線グループにわたる曲線乗算を使用する、gのプライベート鍵乗)であり得る。新しいユーザ識別子がユーザのために生成されるとき、エフェメラルプライベート鍵Xが変更され(Sも変更され得る)、ユーザ識別子の働きをするドメイン固有鍵YDもそのようになる。
【0051】
アプリケーション112は、指定された時間期間に基づいて、定期的に各ドメインのためのユーザ識別子を変更することができる。たとえば、アプリケーション112は、1時間ごとに、2時間ごとに、12時間ごとに、毎日、2日に1回、1週間に1回、または別の適切な時間期間に基づいて、ユーザ識別子を変更することができる。上記のマスターキーの例を使用すると、アプリケーション112は、時間期間が経過するたびに、ドメインごとに、ドメイン固有鍵YDを生成することができる。いくつかの実装形態では、多数の異なるドメインのための多数の鍵を記憶するのではなく、アプリケーション112は、鍵が変更されることになる時間に、または鍵が変更されることになる前の短い時間期間において、鍵を生成することができる。
【0052】
図2を参照しながら以下で説明するように、アプリケーション112は、アプリケーション112が1つまたは複数のそれぞれの将来の時間期間においてドメインのためにユーザを識別するために使用することになる、1つまたは複数の将来のユーザ識別子を提供することによって、ドメインが複数の時間期間にわたるユーザ識別子をリンクさせることを可能にすることができる。そのような場合、アテステーションレコード122は、たとえば、ドメインの公開鍵であることが多い、ドメインの暗号鍵を使用して暗号化された、ドメインのための1つまたは複数の将来のユーザ識別子を含み得る。将来のユーザ識別子は、アテステーションレコード122のペイロードデータ中に含まれ得るか、または現在のユーザ識別子と同様の、署名して譲渡されるデータのセット126とは別個であり得る。ドメインのための現在のドメイン固有ユーザ識別子、および1つまたは複数の将来のドメイン固有ユーザ識別子は、たとえば、1つの暗号化された要素として一緒に、または個々の暗号化されたユーザ識別子として別個に暗号化され得る。
【0053】
アプリケーション112は、ユーザが、すべてのドメインのための、または特定のドメインのための、ユーザのためのすべてのユーザ識別子をリセットすることを可能にすることができる。たとえば、アプリケーション112は、ユーザがドメインのためのユーザ識別子をリセットすること、および/または、1つもしくは複数のドメインがいかなるユーザ識別子を受信することも防止することを可能にする、ユーザインターフェースを提供することができる。ユーザが、すべてのドメインのためのユーザ識別子をリセットすることを選択する場合、アプリケーション112は、エフェメラルプライベート鍵XおよびHMAC秘密鍵Sをリセットすることができる。代替的に、アプリケーション112は、エフェメラルプライベート鍵XおよびHMAC秘密鍵Sをリセットすることによって、ユーザ識別子を定期的にリセットすることができる。
【0054】
いくつかの実装形態では、すべてのドメインが、同時に複数の時間期間にわたって収集されたデータを活用するための能力を失うことがないように、様々なドメインのユーザ識別子のための有効性時間期間をオフセットすることが有益であり得る。これを防止するために、様々なクライアントデバイス110上のアプリケーション112の各インスタンスは、異なる時間に新しいデータ収集時期を開始するために、「era_value」として示され得るランダムまたは擬似ランダム浮動小数点数を生成することができる。この時期は、それにおいてドメインが、リンクされたエフェメラルユーザ識別子をもつユーザについてのデータを収集し、相関させることができる、最大持続時間であり得る。簡単のために、時期は、unit_of_timeの倍数として定義され得る。たとえば、時間単位が1時間であり、時期が2160時間である場合、ドメインは、連続する90日を超えると、ユーザについてのデータを収集することが可能でないようになる。
【0055】
アプリケーション112の所与のインスタンスの場合、時期識別子「era_id」は、
【0056】
【数1】
【0057】
として示され得る。ドメイン「owner_domain」、ならびにアプリケーション固有の秘密のエフェメラルプライベート鍵X、および擬似ランダムHMAC秘密鍵Sが与えられると、Yd=HMAC(X,era_id,unit_of_time_since_epoch,owner_domain)とする。すなわち、Ydは、アプリケーション固有の秘密のエフェメラルプライベート鍵X、時期識別子「era_id」、基準時間からの時間単位(この例ではエポック)、および所有者ドメインのドメイン名に基づいて計算された、メッセージコードである。アプリケーション112は、上記で説明したように、Ydに基づいて、ドメインのための公開鍵を計算することができる。
【0058】
アプリケーション112が、現在時間より先にunit_of_time_since_epochを使用して、将来の時間期間の間の公開鍵を計算するとき、unit_of_time_since_epochによって示された将来の時間、および現在時間が同じ時期識別子を共有する限り、アプリケーション112は、その時間が来るとき、所有者ドメインのための公開鍵を実際に使用することになる。しかしながら、unit_of_time_since_epochによって示された将来の時間期間が、異なる時期に属する場合、アプリケーション112は、新しい時期における時間が来るとき、所有者ドメインのための異なる公開鍵を使用することになる。したがって、この手法は、アプリケーション112のインスタンスのための新しい時期が開始するとき、すべてのドメインのためのリンク可能性を自動的に断ち切る。
【0059】
本明細書全体にわたる説明に加えて、本明細書で説明するシステム、プログラム、または特徴によって、ユーザ情報(たとえば、ユーザのソーシャルネットワーク、社会的アクションもしくはアクティビティ、職業、ユーザの選好、またはユーザの現在のロケーションについての情報)の収集が可能になり得るか否かと、いつ可能になり得るかの両方、およびサーバからのコンテンツまたは通信がユーザに送られるか否かに関して、ユーザが選定を行うことを可能にする制御装置(たとえば、ユーザがそれと対話することができるユーザインターフェース要素)がユーザに提供され得る。加えて、いくつかのデータは、個人を識別できる情報が除去されるように、記憶または使用される前に1つまたは複数の方法で扱われ得る。たとえば、ユーザの識別情報は、個人を識別できる情報がユーザについて決定できないように扱われてもよく、またはユーザの地理的ロケーションは、ユーザの具体的なロケーションを決定できないように、ロケーション情報が取得される場合に(都市、郵便番号、もしくは州のレベルなどに)一般化され得る。したがって、ユーザは、ユーザについてのどの情報が収集されるか、その情報がどのように使用されるか、およびどの情報がユーザに提供されるかを制御することができる。
【0060】
図2は、ドメインのためのユーザ識別子をリンクさせることを可能にする、アテステーションレコードを送るための例示的なプロセス200のフロー図である。例示的なプロセス200は、クライアントデバイス110のアプリケーション112によって実行され得る。プロセス200の動作は、非一時的であり得る1つまたは複数のコンピュータ可読媒体上に記憶された命令として実装されてもよく、1つまたは複数のデータ処理装置による命令の実行は、1つまたは複数のデータ処理装置にプロセス200の動作を実行させ得る。説明を簡潔および容易にするために、プロセス200について、アプリケーション112によって実行されるものとして説明する。
【0061】
アプリケーション112は、所与のドメインのためのユーザエンゲージメントを決定する(202)。たとえば、アプリケーション112は、ユーザおよび所与のドメインのためのユーザエンゲージメントのレベルを決定することができる。ユーザエンゲージメントのレベルは、ユーザのクライアントデバイス110上で実行しているアプリケーション112、たとえば、ユーザがサインインされるアプリケーション112またはクライアントデバイス110による表示のために、所与のドメインによって提供されたコンテンツとのユーザエンゲージメントに基づき得る。一般に、ユーザエンゲージメントのレベルは、所与のドメインによって提供されたコンテンツを見る、かつ/またはそれと対話するためのユーザの意図を表すことができる。アプリケーション112による表示のためのコンテンツの選択への様々なユーザ対話、またはドメインによる寄与が、ユーザエンゲージメントのレベルを決定するために使用され得る。加えて、ユーザエンゲージメントのレベルは、たとえば、ファーストパーティコンテンツ、たとえば、ウェブページを提供するドメインに対して、ファーストパーティコンテンツとともに表示するためのサードパーティコンテンツ、たとえば、デジタルコンポーネントを提供するコンテンツプラットフォームなど、異なるタイプのドメインのための異なるイベントに基づいて決定され得る。
【0062】
アプリケーション112は、ドメインのためのユーザエンゲージメントのレベルを決定するために、ルールのセットまたは論理を使用することができる。いくつかの実装形態では、アプリケーション112は、ユーザエンゲージメントのレベルとして、ドメインに対する1つまたは複数のイベントに基づくスコアを決定することができる。イベントは、コンテンツについてのユーザ要求、ユーザへのコンテンツの表示、コンテンツをポイントするリンクまたはデジタルコンポーネントのユーザ選択などを含み得る。イベントの各タイプは、対応する値を有し得る。アプリケーション112は、所与の時間期間、たとえば、ドメインのための現在のエフェメラルユーザ識別子が有効である時間期間にわたって、ドメインに対するイベントのための値を合計することによって、スコアを決定することができる。以下で説明するように、ドメインのためのユーザ識別子の間のリンケージを可能にするか否かを決定するために、アプリケーション112は、ドメインのためのユーザエンゲージメントのレベルを、指定されたしきい値と比較することができる。別の例では、アプリケーション112は、いくつかのイベントがいつ発生するかを決定することができ、そうである場合、たとえば、複数のイベントに基づいて、スコアを計算することなしに、リンケージを可能にすることができる。
【0063】
所与のドメインのためのユーザエンゲージメントのレベルは、ドメインからのコンテンツについての1つまたは複数のユーザ要求に基づき得る。たとえば、ユーザが、パブリッシャードメインのウェブサイトへブラウザをナビゲートする場合、このことは、ユーザがパブリッシャードメインのコンテンツを見るための意図を有することを示す。したがって、特定のドメインによって提供されたコンテンツとの、ユーザによるユーザエンゲージメントの十分なレベルを決定することは、単に、ユーザが特定のドメインによって提供されたコンテンツと対話したと決定することであり得る。別の例では、ユーザが、パブリッシャーからのオーガニックコンテンツの一部としてのリンクと対話し、たとえば、リンクを選択し、リンクが、同じパブリッシャードメイン内のウェブページをポイントする場合、ユーザは、パブリッシャードメインとの有意味な対話を有する。ブラウザであり得るアプリケーション112は、ユーザがナビゲートする先のドメインを検出し、これらのイベントに基づいて、ドメインのためのユーザエンゲージメントのレベルを決定することができる。
【0064】
所与のドメインのためのユーザエンゲージメントのレベルは、所与のドメインが、他のコンテンツとともに表示するためのカスタマイズされたコンテンツを提供することに基づき得る。たとえば、コンテンツプラットフォーム150は、デジタルコンポーネントについての要求において、コンテンツプラットフォーム150によって受信された現在のエフェメラルユーザ識別子に基づいて、ユーザのためにパーソナライズされるデジタルコンポーネントを提供することができる。デジタルコンポーネントが受信またはレンダリングされるとき、デジタルコンポーネントは、どのコンテンツプラットフォーム150がコンテンツの選択に関与したかと、デジタルコンポーネントのコンテンツがそれに対応する、デジタルコンポーネントプロバイダ160のドメインへのリンクとを示す情報、たとえば、メタデータを含み得る。アプリケーション112は、この情報を使用して、各関与するコンテンツプラットフォーム150のドメイン、およびデジタルコンポーネントプロバイダ160のドメインのための、ユーザエンゲージメントのレベルを決定することができる。たとえば、デジタルコンポーネントのレンダリングは、各ドメインのためのスコアを決定するために使用されるイベントであり得、かつ/または、各ドメインのためのユーザエンゲージメントのレベルが、ユーザ識別子リンケージを可能にするためのしきい値を満たすと決定するために、使用され得る。
【0065】
所与のドメインのためのユーザエンゲージメントのレベルは、所与のドメインが、他のコンテンツとともに表示するためのカスタマイズされたコンテンツの配信を支援するか、またはさもなければ容易にすることに基づき得る。たとえば、コンテンツプラットフォームは、デジタルコンポーネントを配信するプロセスに寄与するか、またはさもなければ他のコンテンツプラットフォームがデジタルコンポーネントを配信することを容易にすることができる。アプリケーション112にデジタルコンポーネントを直接配信するドメインは、そのようなヘルパードメインについて、アプリケーション112に通知することができる。そのような知識はまた、アプリケーション112がヘルパードメインを信用することを可能にすることもでき、ユーザ識別子リンケージが、アプリケーション112にデジタルコンポーネントを直接提供するドメインのために可能にされる方法と同様に、ヘルパードメインが、ユーザ識別子リンキングに基づいて、延長された時間期間にわたってユーザについての情報を記憶することができるようになる。
【0066】
所与のドメインのためのユーザエンゲージメントのレベルは、デジタルコンポーネントとのユーザ対話に基づき得る。デジタルコンポーネントとのユーザ対話は、デジタルコンポーネントに関する追加のコンテンツ、たとえば、デジタルコンポーネントを作成したデジタルコンポーネントプロバイダ160の追加のコンテンツを見るためのユーザの意図を表す。ユーザ対話のための値は、たとえば、ユーザ対話のレベルがスコアであるとき、デジタルコンポーネントのレンダリングのための値よりも大きくなり得る。デジタルコンポーネントとのユーザ対話について、アプリケーション112は、デジタルコンポーネントの選択に関与した各コンテンツプラットフォーム150のための、およびデジタルコンポーネントのレンダリングのものと同様に、デジタルコンポーネントプロバイダのための、ユーザエンゲージメントのレベルを決定することができる。他のイベントもまた、ドメインのためのユーザエンゲージメントのレベルを決定するために使用され得る。
【0067】
アプリケーション112は、ユーザエンゲージメントのレベルに基づいて、所与のドメインについて、ユーザのためのユーザ識別子の間のリンケージを延長するか否かを決定する(204)。コンテンツを選択し、かつ/またはユーザにコンテンツを提供することに対して、所与のドメインに報酬を与えるために、アプリケーション112は、所与のドメインが、所与のドメインに対してユーザを識別する現在のエフェメラルユーザ識別子を、アプリケーション112が所与のドメインに対してユーザを識別するために後で使用することになる、1つまたは複数の将来のエフェメラルユーザ識別子とリンクさせることを可能にすることができる。
【0068】
複数の時間期間の各々の間に、アプリケーション112は、所与のドメインに対してユーザを識別するために、それぞれのユーザ識別子を使用することができる。上記で説明したように、ユーザ識別子は公開鍵であり得る。各時間期間が終了すると、アプリケーション112は、エフェメラルユーザ識別子を、現在の時間期間のための現在のエフェメラルユーザ識別子から、次の時間期間のための次のエフェメラルユーザ識別子に変更することができる。リンケージが可能にされない場合、所与のドメインは、現在のエフェメラルユーザ識別子および次のエフェメラルユーザ識別子が同じユーザに対応すると決定することができないようになる。
【0069】
所与のドメインのためのリンケージを可能にするか否かを決定するために、アプリケーション112は、所与のドメインのためのユーザエンゲージメントのレベルが、指定されたしきい値を満足する、たとえば、満たすかまたは超えるか否かを決定することができる。そうである場合、アプリケーション112は、リンケージを可能にすることができる。スコアがユーザエンゲージメントのレベルのために使用される場合、アプリケーション112は、スコアを、指定されたしきい値と比較することができる。別の例では、アプリケーション112は、イベントのタイプ(たとえば、コンテンツについてのユーザ要求、またはデジタルコンポーネントのレンダリング)を、しきい値を満足する、たとえば、有意味なイベントと見なされるイベントのリストと比較することができる。
【0070】
アプリケーション112は、イベントに応答して、リンケージを可能にするか否かを決定することができる。たとえば、ユーザが所与のドメインのウェブページにナビゲートする場合、アプリケーション112は、このイベントが、しきい値を満足するユーザエンゲージメントのレベルを表すと決定し、イベントの検出に応答して、リンケージを可能にすることができる。いくつかの実装形態では、アプリケーション112は、リンケージを周期的に可能にするか否かを決定することができる。たとえば、その間にユーザ識別子が有効である各時間期間の終了においてまたはその近くで、アプリケーション112は、その時間期間の間に発生したイベントに基づいて、リンケージを可能にするか否かを決定することができる。
【0071】
アプリケーション112が、所与のドメインのためのエフェメラルユーザ識別子の間のリンケージを延長しないことを決定する場合、アプリケーション112は、動作208を参照しながら以下で説明するように、ユーザおよび所与のドメインのための現在のユーザ識別子を含むが、ユーザおよび所与のドメインのためのいかなる将来のユーザ識別子も含まない、アテステーションレコードを生成することができる。
【0072】
アプリケーション112が、所与のドメインのためのエフェメラルユーザ識別子の間のリンケージを延長することを決定する場合、アプリケーション112は、ユーザおよび所与のドメインのための1つまたは複数の将来のドメイン固有エフェメラルユーザ識別子を取得することができる(206)。各将来のエフェメラルユーザ識別子は、その間にユーザおよび所与のドメインのための現在のエフェメラルユーザ識別子が有効である現在の時間期間後に発生することになる、それぞれの将来の時間期間の間に、アプリケーション112が所与のドメインに対してユーザを識別するために使用することになるユーザ識別子であり得る。たとえば、ユーザ識別子のための時間単位が1日である場合、現在のエフェメラルユーザ識別子は、当日(たとえば、月曜日)のためのものである。将来のエフェメラルユーザ識別子は、翌日(たとえば、火曜日)のための将来のエフェメラルユーザ識別子と、その次の日(たとえば、水曜日)のための将来のエフェメラルユーザ識別子とを含み得る。その間にエフェメラルユーザ識別子が有効である時間単位について、この例では1日として説明したが、時間単位は、任意の長さを取ることができ、実際には、ユーザ識別子および/またはユーザによって異なり得る。第1のユーザ識別子は、その間に第1のユーザ識別子が有効である第1の時間期間を有し得、同じユーザのための第2のユーザ識別子は、異なるか、または同じである、第2の時間期間を有し得る。有益には、前に説明したように、このような将来のエフェメラルユーザ識別子の使用は、延長された期間の間の永続的な不変のユーザ識別子の使用を回避する。これによって、変化するユーザ識別子により、ユーザデータセキュリティが向上する。
【0073】
アプリケーション112は、ユーザエンゲージメントのレベルに基づいて、たとえば、イベントの数および/またはタイプに基づいて、リンケージを延長するための持続時間、およびしたがって、所与のドメインに提供するための将来のエフェメラルユーザ識別子の数を決定することができる。たとえば、ユーザエンゲージメントのより高いレベルは、より長い持続時間、およびしたがって、より多くの将来のエフェメラルユーザ識別子に対応し得る。特定の例では、アプリケーション112は、イベントのタイプごと、またはユーザエンゲージメントのレベルごとに、持続時間を指定するルールのセットを含み得る。たとえば、ドメインにナビゲートすることは、4つの時間単位(たとえば、各ユーザ識別子が1日の間に有効である場合、4日)に対応し得、デジタルコンポーネントのレンダリングは、3つの時間単位に対応し得る。
【0074】
アプリケーション112は、ストレージ(たとえば、鍵ストレージ113)から、その間にリンケージが可能にされた各時間単位のための、ユーザおよび所与のドメインのための将来のドメイン固有エフェメラルユーザ識別子を生成または取得することができる。たとえば、アプリケーション112が、4つの時間単位の間にリンケージを延長することを決定する場合、アプリケーション112は、4つの時間単位に対応する各時間期間のために1つずつ、4つの将来のドメイン固有エフェメラルユーザ識別子を生成または取得することができる。
【0075】
特定の例では、公開鍵がユーザ識別子として使用される場合、アプリケーション112は、将来の時間期間の各々のための公開鍵およびプライベート鍵ペアを生成することができる。リンケージが4つの時間単位の間に延長されている場合、アプリケーション112は、4つの公開鍵(およびそれらの対応するプライベート鍵)、すなわち、PublicKeyunit_of_time_since_ref+1,owner_domain、PublicKeyunit_of_time_since_ref+2,owner_domain、PublicKeyunit_of_time_since_ref+3,owner_domain、およびPublicKeyunit_of_time_since_ref+4,owner_domainを生成することができる。
【0076】
アプリケーション112(または信用できるプログラム)は、アテステーションレコードを生成する(208)。上記で説明したように、アテステーションレコードは、データのセット(たとえば、公開鍵、タイムスタンプ、ペイロードデータ、および/またはSRR)と、データのセットのデジタル署名とを含み得る。アテステーションレコードはまた、アテステーションレコードの受信側ドメインごとに、公開鍵であり得る、受信側ドメインのための現在のドメイン固有エフェメラルユーザ識別子を含み得る。アプリケーション112が、所与のドメインのためのリンケージを延長することを決定した場合、アテステーションレコードは、所与のドメインのための1つまたは複数の将来のドメイン固有ユーザ識別子の各々を含み得る。上記で説明したように、各ドメインのためのユーザ識別子は、そのドメインのみがクリアテキストにおけるユーザ識別子にアクセスすることができるように、ドメインの暗号鍵を使用して暗号化され得る。将来のドメイン固有ユーザ識別子は、上記で説明したように、ペイロードデータ中に含まれ得るか、またはデータのセットとは別個であり得る。アテステーションレコードがこの例において使用されているが、ユーザ識別子は、他のタイプのメッセージおよび/またはデータ構造を使用して送られ得る。
【0077】
アテステーションレコードは、1つまたは複数の受信側ドメインに送られる通信中に含まれ得るか、またはそのために使用され得る。たとえば、アテステーションレコードは、デジタルコンポーネントについての要求中に含まれ得る。そのような要求において、アテステーションレコードは、そのためにデジタルコンポーネントが要求されているウェブページのパブリッシャーのための将来のドメイン固有エフェメラルユーザ識別子を含み得る。この例では、アプリケーション112は、ユーザがウェブページにナビゲートすることに基づいて、パブリッシャーのためのユーザ識別子リンケージを延長することができる。
【0078】
別の例では、アテステーションレコードは、コンテンツプラットフォームにデジタルコンポーネントのレンダリングを報告する通信中に含まれ得る。この例では、アテステーションレコードは、デジタルコンポーネントの選択に関与した各コンテンツプラットフォームのための、および/またはデジタルコンポーネントを作成したデジタルコンポーネントプロバイダ160のための、将来のドメイン固有エフェメラルユーザ識別子を含み得る。
【0079】
別の例では、アテステーションレコードは、コンテンツプラットフォームにデジタルコンポーネントとのユーザ対話を報告するための通信中に含まれ得る。この例では、アテステーションレコードは、デジタルコンポーネントの選択に関与した各コンテンツプラットフォームのための、および/またはデジタルコンポーネントを作成したデジタルコンポーネントプロバイダ160のための、将来のドメイン固有エフェメラルユーザ識別子を含み得る。
【0080】
アプリケーション112は、所与のドメインにアテステーションレコードを送る(210)。アプリケーション112は、ネットワーク、たとえば、図1のネットワーク105上で、所与のドメインにアテステーションレコードを送信することができる。
【0081】
ユーザのための1つまたは複数の将来のドメイン固有エフェメラルユーザ識別子を受信するドメインは、それらのユーザ識別子を、ユーザのための現在および/または前のユーザ識別子への参照とともに記憶することができる。たとえば、ドメインは、1人または複数のユーザの各々のためのエントリを含むテーブルを維持することができる。テーブルは、各ユーザについて、ドメインに対してユーザを識別するために使用された最も古いユーザ識別子と、ドメインに対してユーザを識別するために使用された各他のユーザ識別子とを含み得る。最も古いユーザ識別子は、名目上のユーザ識別子と呼ばれることがある。例示的なテーブルであるTable 1(表1)が、以下に示される。
【0082】
【表1】
【0083】
Table 1(表1)において、ドメインが、ドメインのための現在のユーザ識別子を伴う通信を受信するとき、ドメインは、現在のユーザ識別子をTable 1(表1)の鍵と比較することができる。一致がある場合、ドメインは、ユーザが、値列における名目上のユーザ識別子に対応するユーザと同じユーザであると決定することができる。
【0084】
一例として、アプリケーション112が、Table 1(表1)に示されているように、2つの時間単位の間に、所与のドメインおよびユーザのためのユーザ識別子のリンケージを可能にすると考えられたい。リンケージの時間に、ユーザおよび所与のドメインのための現在のドメイン固有ユーザ識別子は、PublicKeyunit_of_time_since_refであった。現在の時間期間の間に受信されたアテステーションレコードにおいて、ドメインは、ユーザおよび所与のドメインのための2つの将来のドメイン固有ユーザ識別子、PublicKeyunit_of_time_since_ref+1およびPublicKeyunit_of_time_since_ref+2を受信した。現在の時間期間が経過し、次の時間期間が開始した後、アプリケーション112は、ユーザのための次のユーザ識別子、PublicKeyunit_of_time_since_ref+1を含むアテステーションレコードを送ることができ、その理由は、このユーザ識別子が、現在、ユーザおよび所与のドメインのための有効なドメイン固有エフェメラルユーザ識別子であるからである。所与のドメインは、このユーザ識別子を使用して、Table 1(表1)にクエリを行い、このアテステーションレコードに対応するユーザが、そのための前のユーザ識別子PublicKeyunit_of_time_since_refを含んだ通信が受信されたユーザと同じユーザであると決定することができる。
【0085】
したがって、所与のドメインは、ユーザ識別子PublicKeyunit_of_time_since_refとともに含んだ通信の情報を、同じユーザに関連付けられるものとしてのユーザ識別子PublicKeyunit_of_time_since_ref+1とともに含んだ通信中に含まれる情報と相関させることができる。リンケージが、ユーザ識別子PublicKeyunit_of_time_since_ref+2とともに含んだ通信に対応する第2の将来の時間期間の間に再度延長される場合、所与のドメインは、ユーザのための現在のユーザ識別子として、ユーザ識別子PublicKeyunit_of_time_since_ref+2を含むアテステーションレコードを受信することになる。このアテステーションレコードはまた、ユーザおよび所与のドメインのための1つまたは複数の将来のドメイン固有ユーザ識別子を含むことになる。これによって、所与のドメインは、ユーザ識別子PublicKeyunit_of_time_since_ref+2を使用して、これらの将来のドメイン固有ユーザ識別子をTable 1(表1)における名目上のユーザ識別子とリンクさせることが可能になる。
【0086】
図3は、ドメインのためのユーザ識別子をリンクさせるための例示的なプロセス300のフロー図である。例示的なプロセス300は、ドメインのサーバ、たとえば、パブリッシャー130のサーバ、コンテンツプラットフォーム150のサーバ、またはデジタルコンポーネントプロバイダ160のサーバによって実行され得る。プロセス300の動作は、非一時的であり得る1つまたは複数のコンピュータ可読媒体上に記憶された命令として実装されてもよく、1つまたは複数のデータ処理装置による命令の実行は、1つまたは複数のデータ処理装置にプロセス300の動作を実行させ得る。説明を簡潔および容易にするために、プロセス300について、ドメインのサーバによって実行されるものとして説明する。
【0087】
サーバは、アテステーションレコードを含む通信を受信する(302)。ユーザのクライアントデバイス110上で実行しているアプリケーション112は、サーバに通信を送ることができる。
【0088】
サーバは、アテステーションレコードを使用して、通信の完全性が有効であるか否かを決定する(304)。このことは、アテステーションレコードのデータのセットと、アテステーションレコード中に含まれる公開鍵とを使用して、デジタル署名を検証しようと試みることを含み得る。このことはまた、アテステーションレコード中に含まれるタイムスタンプが、現在時間のしきい値持続時間内であるか否かを決定することを含み得る。このことはまた、SRRを検証すること、たとえば、SRRのデジタル署名を検証すること、およびSRRがタイムスタンプを含む場合、このタイムスタンプが現在時間のしきい値持続時間内であるか否かを決定することを含み得る。いくつかの実装形態では、サーバは、すべての検証の成功に応答してのみ、通信の完全性が有効であると決定する。
【0089】
サーバが、通信の完全性が有効でないと決定する場合、サーバは通信に応答しない(306)。たとえば、サーバは、通信を無視し、かつ/または通信を削除することができる。
【0090】
サーバが、通信の完全性が有効であると決定する場合、サーバは通信に応答する(308)。たとえば、通信が、コンテンツについての要求である場合、サーバは、通信に応答して、コンテンツを選択および提供することができる。通信が、イベントを報告するためのものである場合、サーバは、イベントに関係するデータ、たとえば、アテステーションレコードのペイロードデータを記憶することによって、応答することができる。
【0091】
サーバは、アテステーションレコードがドメインのためのいずれかの将来のドメイン固有エフェメラルユーザ識別子を含むか否かを決定することができる(310)。たとえば、サーバは、アテステーションレコードのペイロードデータ中に含まれるか、またはアテステーションレコードの添付もしくはそれ以外の部分であるが、署名して譲渡されたデータのセットとは別個である部分として含まれる、エフェメラルユーザ識別子を解読しようと試みることができる。
【0092】
サーバが、ドメインのプライベート鍵であり得るその解読鍵を使用して、ドメインのためのいずれかの将来のドメイン固有エフェメラルユーザ識別子の解読に成功する場合、サーバは、ユーザおよびドメインのための現在のドメイン固有ユーザ識別子(または、ユーザおよびドメインのための名目上のユーザ識別子)と、各将来のドメイン固有エフェメラルユーザ識別子との間のリンクを記憶することができる(312)。たとえば、サーバは、Table 1(表1)と同様のテーブルに行を追加することができる。各追加された行は、ユーザおよびドメインのための名目上のユーザ識別子と、ユーザおよびドメインのための将来のドメイン固有エフェメラルユーザ識別子とを含み得る。サーバは、ユーザおよびドメインのための現在のドメイン固有ユーザ識別子と、各将来のドメイン固有エフェメラルユーザ識別子との間のリンクを記憶することができるので、サーバは、永続的なユーザ識別子を必要とすることなしに、複数の通信および延長された時間期間にわたって、特定のユーザを識別することができる。このことは、エフェメラルユーザ識別子が使用され得ると同時に、サーバが経時的に同じユーザを識別することを依然として可能にし、経時的にユーザを識別する、よりセキュアな方法を提供することを意味する。
【0093】
図4は、上記で説明した動作を実行するために使用され得る例示的なコンピュータシステム400のブロック図である。システム400は、プロセッサ410、メモリ420、記憶デバイス430、および入出力デバイス440を含む。構成要素410、420、430、および440の各々は、たとえば、システムバス450を使用して相互接続され得る。プロセッサ410は、システム400内での実行のために命令を処理することが可能である。いくつかの実装形態では、プロセッサ410は、シングルスレッドプロセッサである。別の実装形態では、プロセッサ410は、マルチスレッドプロセッサである。プロセッサ410は、メモリ420内または記憶デバイス430上に記憶された命令を処理することが可能である。
【0094】
メモリ420は、システム400内に情報を記憶する。一実装形態では、メモリ420は、コンピュータ可読媒体である。いくつかの実装形態では、メモリ420は、揮発性メモリユニットである。別の実装形態では、メモリ420は、不揮発性メモリユニットである。
【0095】
記憶デバイス430は、システム400のための大容量記憶を提供することが可能である。いくつかの実装形態では、記憶デバイス430は、コンピュータ可読媒体である。様々な異なる実装形態では、記憶デバイス430は、たとえば、ハードディスクデバイス、光ディスクデバイス、複数のコンピューティングデバイス(たとえば、クラウド記憶デバイス)によってネットワーク上で共有される記憶デバイス、または何らかの他の大容量記憶デバイスを含み得る。
【0096】
入出力デバイス440は、システム400のための入出力動作を提供する。いくつかの実装形態では、入出力デバイス440は、ネットワークインターフェースデバイス、たとえば、Ethernetカード、シリアル通信デバイス、たとえば、RS-232ポート、および/またはワイヤレスインターフェースデバイス、たとえば、802.11カードのうちの1つまたは複数を含み得る。別の実装形態では、入出力デバイスは、入力データを受信し、出力データを外部デバイス460、たとえば、キーボード、プリンタ、およびディスプレイデバイスに送るように構成された、ドライバデバイスを含み得る。しかしながら、モバイルコンピューティングデバイス、モバイル通信デバイス、セットトップボックステレビクライアントデバイスなどの、他の実装形態も使用され得る。
【0097】
例示的な処理システムが図4で説明されているが、本明細書で説明する主題および機能的動作の実装形態は、他のタイプのデジタル電子回路において、または本明細書で開示する構造およびその構造的等価物を含むコンピュータソフトウェア、ファームウェア、もしくはハードウェアにおいて、またはそれらのうちの1つもしくは複数の組合せにおいて実装され得る。
【0098】
本明細書で説明する主題および動作の実施形態は、デジタル電子回路において、または本明細書で開示する構造およびその構造的等価物を含むコンピュータソフトウェア、ファームウェア、もしくはハードウェアにおいて、またはそれらのうちの1つもしくは複数の組合せにおいて実装され得る。本明細書で説明する主題の実施形態は、1つまたは複数のコンピュータプログラム、すなわち、データ処理装置による実行のために、またはデータ処理装置の動作を制御するために、(1つまたは複数の)コンピュータ記憶媒体上で符号化された、コンピュータプログラム命令の1つまたは複数のモジュールとして実装され得る。代替的にまたは追加として、プログラム命令は、データ処理装置による実行のために、好適な受信機装置への送信のために情報を符号化するために生成された、人工的に生成された伝搬信号、たとえば、機械生成の電気、光、または電磁信号上で符号化され得る。コンピュータ記憶媒体は、コンピュータ可読記憶デバイス、コンピュータ可読記憶基板、ランダムもしくはシリアルアクセスメモリアレイもしくはデバイス、またはそれらのうちの1つもしくは複数の組合せであり得るか、またはそれらに含まれ得る。さらに、コンピュータ記憶媒体は伝搬信号ではないが、コンピュータ記憶媒体は、人工的に生成された伝搬信号において符号化されたコンピュータプログラム命令のソースまたは宛先であり得る。コンピュータ記憶媒体はまた、1つまたは複数の別個の物理構成要素または媒体(たとえば、複数のCD、ディスク、または他の記憶デバイス)であり得るか、またはそれらに含まれ得る。
【0099】
本明細書で説明する動作は、1つもしくは複数のコンピュータ可読記憶デバイス上に記憶されたまたは他のソースから受信されたデータに対して、データ処理装置によって実行される動作として実装され得る。
【0100】
「データ処理装置」という用語は、例として、プログラマブルプロセッサ、コンピュータ、システムオンチップ、または上記の複数のもの、もしくは上記のものの組合せを含む、データを処理するためのあらゆる種類の装置、デバイス、および機械を包含する。装置は、専用論理回路、たとえば、FPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)を含み得る。装置は、ハードウェアに加えて、当該のコンピュータプログラムのための実行環境を作成するコード、たとえば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、クロスプラットフォームランタイム環境、仮想機械、またはそれらのうちの1つもしくは複数の組合せを構成するコードも含むことができる。装置および実行環境は、ウェブサービス、分散コンピューティングおよびグリッドコンピューティングインフラストラクチャなど、様々な異なるコンピューティングモデルインフラストラクチャを実現することができる。
【0101】
コンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、スクリプト、またはコードとしても知られている)は、コンパイル型言語またはインタプリタ型言語、宣言型言語または手続き型言語を含む任意の形態のプログラミング言語で書かれ得、スタンドアロンプログラムとして、またはモジュール、構成要素、サブルーチン、オブジェクト、もしくはコンピューティング環境において使用するのに適した他のユニットとしてを含む任意の形態で展開され得る。コンピュータプログラムは、ファイルシステムにおけるファイルに対応し得るが、そうである必要はない。プログラムは、他のプログラムもしくはデータ(たとえば、マークアップ言語ドキュメントに記憶された1つもしくは複数のスクリプト)を保持するファイルの一部分に、当該のプログラム専用の単一のファイルに、または複数の協調ファイル(たとえば、1つもしくは複数のモジュール、サブプログラム、またはコードの部分を記憶するファイル)に記憶され得る。コンピュータプログラムは、1つのコンピュータ上で、または、1つのサイトに配置されるかもしくは複数のサイトにわたって分散され、通信ネットワークによって相互接続される複数のコンピュータ上で実行されるように展開され得る。
【0102】
本明細書で説明するプロセスおよび論理フローは、入力データ上で動作し、出力を生成することによってアクションを実行するために、1つまたは複数のコンピュータプログラムを実行する1つまたは複数のプログラマブルプロセッサによって実行され得る。プロセスおよび論理フローは、専用論理回路、たとえば、FPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)によっても実行され得、装置が、同じく専用論理回路、たとえば、FPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)として実装され得る。
【0103】
コンピュータプログラムの実行に好適なプロセッサは、例として、汎用マイクロプロセッサと専用マイクロプロセッサの両方を含む。一般に、プロセッサは、読取り専用メモリもしくはランダムアクセスメモリまたは両方から命令およびデータを受信する。コンピュータの必須要素は、命令に従ってアクションを実行するためのプロセッサ、ならびに命令およびデータを記憶するための1つまたは複数のメモリデバイスである。一般に、コンピュータは、データを記憶するための1つまたは複数の大容量記憶デバイス、たとえば、磁気ディスク、光磁気ディスク、または光ディスクも含むか、あるいは、それらからデータを受信することもしくはそれらにデータを転送することまたはその両方を行うために動作可能に結合される。しかしながら、コンピュータはそのようなデバイスを有する必要はない。さらに、コンピュータは、ほんの数例を挙げると、別のデバイス、たとえば、モバイル電話、携帯情報端末(PDA)、モバイルオーディオもしくはビデオプレーヤ、ゲームコンソール、全地球測位システム(GPS)受信機、またはポータブル記憶デバイス(たとえば、ユニバーサルシリアルバス(USB)フラッシュドライブ)に埋め込まれ得る。コンピュータプログラム命令およびデータを記憶するのに好適なデバイスは、例として、半導体メモリデバイス、たとえば、EPROM、EEPROM、およびフラッシュメモリデバイス、磁気ディスク、たとえば、内蔵ハードディスクまたはリムーバブルディスク、光磁気ディスク、ならびにCD-ROMおよびDVD-ROMディスクを含む、すべての形態の不揮発性メモリ、媒体およびメモリデバイスを含む。プロセッサおよびメモリは、専用論理回路によって補完され得るか、または専用論理回路に組み込まれ得る。
【0104】
ユーザとの対話を提供するために、本明細書で説明する主題の実施形態は、情報をユーザに表示するためのディスプレイデバイス、たとえば、CRT(陰極線管)またはLCD(液晶ディスプレイ)モニタと、それによってユーザが入力をコンピュータに提供することができるキーボードおよびポインティングデバイス、たとえば、マウスまたはトラックボールとを有するコンピュータ上で実装され得る。他の種類のデバイスも、ユーザとの対話を提供するために使用され得、たとえば、ユーザに提供されるフィードバックは、任意の形態の感覚フィードバック、たとえば、視覚フィードバック、聴覚フィードバック、または触覚フィードバックであり得、ユーザからの入力は、音響入力、音声入力、または触覚入力を含む任意の形態で受信され得る。加えて、コンピュータは、ドキュメントをユーザによって使用されるデバイスに送り、ドキュメントをそのデバイスから受信することによって、たとえば、ユーザのクライアントデバイス上のウェブブラウザから受信された要求に応答してウェブページをそのウェブブラウザに送ることによって、ユーザと対話することができる。
【0105】
本明細書で説明する主題の実施形態は、たとえば、データサーバとして、バックエンド構成要素を含むか、またはミドルウェア構成要素、たとえば、アプリケーションサーバを含むか、またはフロントエンド構成要素、たとえば、ユーザがそれを通じて本明細書で説明する主題の一実装形態と対話できるグラフィカルユーザインターフェースもしくはウェブブラウザを有するクライアントコンピュータを含むか、あるいは1つまたは複数のそのようなバックエンド構成要素、ミドルウェア構成要素、またはフロントエンド構成要素の任意の組合せを含む、コンピューティングシステムにおいて実装され得る。システムの構成要素は、任意の形態または媒体のデジタルデータ通信、たとえば、通信ネットワークによって、相互接続され得る。通信ネットワークの例は、ローカルエリアネットワーク(「LAN」)およびワイドエリアネットワーク(「WAN」)、インターネットワーク(たとえば、インターネット)、ならびにピアツーピアネットワーク(たとえば、アドホックピアツーピアネットワーク)を含む。
【0106】
コンピューティングシステムは、クライアントおよびサーバを含み得る。クライアントおよびサーバは、一般に互いから離れており、典型的には通信ネットワークを通じて対話する。クライアントとサーバとの関係は、それぞれのコンピュータ上で実行され、互いにクライアントサーバ関係を有するコンピュータプログラムによって生じる。いくつかの実施形態では、サーバは、(たとえば、クライアントデバイスと対話するユーザにデータを表示し、そのユーザからユーザ入力を受信する目的で)データ(たとえば、HTMLページ)をクライアントデバイスに送信する。クライアントデバイスにおいて生成されたデータ(たとえば、ユーザ対話の結果)は、サーバにおいてクライアントデバイスから受信され得る。
【0107】
上記で説明した実施形態に加えて、以下の実施形態も発明的である。
【0108】
実施形態1は、所与のドメインについて、ユーザのクライアントデバイスにおけるアプリケーションによる表示のために、所与のドメインによって提供されたコンテンツとの、ユーザによるエンゲージメントを決定するステップと、ユーザによるエンゲージメントに基づいて、所与のドメインについて、アプリケーションのユーザのためのユーザ識別子の間のリンケージを延長することを決定するステップと、所与のドメインについて、アプリケーションのユーザのためのユーザ識別子の間のリンケージを延長することの決定に応答して、ユーザおよび所与のドメインのための1つまたは複数の将来のドメイン固有エフェメラルユーザ識別子を取得するステップであって、各将来のドメイン固有エフェメラルユーザ識別子が、現在の時間期間が経過した後、将来の時間期間の間に、アプリケーションが所与のドメインに対してユーザを識別するために使用することになるユーザ識別子である、ステップと、アテステーションレコードを生成するステップであって、アテステーションレコードが、ペイロードデータを備える、データのセットと、データのセットのデジタル署名と、ユーザおよび所与のドメインのための現在のドメイン固有エフェメラルユーザ識別子と、ユーザおよび所与のドメインのための1つまたは複数の将来のドメイン固有エフェメラルユーザ識別子とを備える、ステップと、所与のドメインにアテステーションレコードを送るステップとを含む方法である。
【0109】
実施形態2は、データのセットが、アテステーションレコードが生成される時間を示すタイムスタンプと、署名付き引換えレコードとを備える、実施形態1の方法である。
【0110】
実施形態3は、ペイロードデータが、ユーザおよび所与のドメインのための1つまたは複数の将来のドメイン固有ユーザ識別子を備える、実施形態1または2の方法である。
【0111】
実施形態4は、ユーザによるエンゲージメントが、ユーザのクライアントデバイスにおけるアプリケーションによる表示のために、所与のドメインによって提供されたコンテンツとの、ユーザによるユーザエンゲージメントのレベルを備え、方法が、所与のドメインのためのユーザエンゲージメントのレベルに基づいて、ユーザおよび所与のドメインのための1つまたは複数の将来のドメイン固有ユーザ識別子の量を選択するステップをさらに含む、実施形態1から3のいずれか1つの方法である。
【0112】
実施形態5は、現在のドメイン固有ユーザ識別子および1つまたは複数の将来のドメイン固有ユーザ識別子が、所与のドメインの暗号鍵を使用して暗号化される、実施形態1から4のいずれか1つの方法である。
【0113】
実施形態6は、アテステーションレコードが、所与のドメインを含む複数のドメインの各々について、ドメインのためのそれぞれの現在のユーザ識別子を備える、実施形態1から5のいずれか1つの方法である。
【0114】
実施形態7は、ユーザおよび所与のドメインのための現在のドメイン固有エフェメラルユーザ識別子が、ユーザおよび所与のドメインのための現在の公開鍵を備え、1つまたは複数の将来のドメイン固有ユーザ識別子の各々が、ユーザおよび所与のドメインのための将来の公開鍵を備える、実施形態1から6のいずれか1つの方法である。
【0115】
実施形態8は、所与のドメインが、電子リソースのパブリッシャーのドメインであり、所与のドメインについて、ユーザのクライアントデバイスにおけるアプリケーションによる表示のために、所与のドメインによって提供されたコンテンツとの、ユーザによるユーザエンゲージメントを決定するステップが、ユーザがパブリッシャーの電子リソースにナビゲートすることに基づいて、ユーザエンゲージメントのレベルを決定するステップを含む、実施形態1から7のいずれか1つの方法である。
【0116】
実施形態9は、所与のドメインが、デジタルコンポーネントを配信するコンテンツプラットフォームの、または別のコンテンツプラットフォームによるデジタルコンポーネントの配信を容易にするコンテンツプラットフォームのドメインであり、所与のドメインについて、ユーザのクライアントデバイスにおけるアプリケーションによる表示のために、所与のドメインによって提供されたコンテンツとの、ユーザによるエンゲージメントを決定するステップが、コンテンツプラットフォームがクライアントデバイスにおける提示のために、1つまたは複数のデジタルコンポーネントを提供することに基づいて、ユーザエンゲージメントのレベルを決定するステップを含む、実施形態1から7のいずれか1つの方法である。
【0117】
実施形態10は、所与のドメインが、デジタルコンポーネントプロバイダのコンテンツを含むデジタルコンポーネントを作成する、デジタルコンポーネントプロバイダのドメインであり、所与のドメインについて、ユーザのクライアントデバイスにおけるアプリケーションによる表示のために、所与のドメインによって提供されたコンテンツとの、ユーザによるエンゲージメントを決定するステップが、ユーザがデジタルコンポーネントプロバイダによって作成されたデジタルコンポーネントと対話することに基づいて、ユーザエンゲージメントのレベルを決定するステップを含む、実施形態1から7のいずれか1つの方法である。
【0118】
実施形態11は、システムであって、1つまたは複数のプロセッサと、命令を記憶した1つまたは複数の記憶デバイスとを備え、命令が、1つまたは複数のプロセッサによって実行されると、1つまたは複数のプロセッサに、実施形態1から10のいずれかの方法を実行させる、システムである。
【0119】
実施形態12は、1つまたは複数のプロセッサによって実行されると、1つまたは複数のプロセッサに、実施形態1から10のいずれか1つの方法を実行させる命令を担持する、コンピュータ可読記憶媒体である。
【0120】
実施形態13は、コンピュータによって実行されると、コンピュータに、実施形態1から10のいずれかの方法のステップを実行させる命令を備える、コンピュータプログラム製品である。
【0121】
本明細書は多くの特定の実装詳細を含むが、これらは任意の発明の範囲または特許請求され得るものの範囲に対する限定として解釈されるべきではなく、むしろ特定の発明の特定の実施形態に特有の特徴の説明として解釈されるべきである。別個の実施形態の文脈において本明細書で説明するいくつかの特徴はまた、単一の実施形態において組み合わせて実装され得る。逆に、単一の実施形態の文脈において説明する様々な特徴はまた、複数の実施形態において別々にまたは任意の好適な部分組合せにおいて実装され得る。さらに、特徴はいくつかの組合せにおいて働くものとして上記で説明され、そのようなものとして最初に特許請求されることさえあるが、特許請求される組合せからの1つまたは複数の特徴は、場合によっては、その組合せから削除される場合があり、特許請求される組合せは、部分組合せまたは部分組合せの変形形態を対象とし得る。
【0122】
同様に、動作は、特定の順序で図面に示されるが、これは、望ましい結果を達成するために、そのような動作が図示された特定の順序でもしくは順番に実行されること、またはすべての例示された動作が実行されることを必要とするものとして理解されるべきではない。いくつかの状況では、マルチタスキングおよび並列処理が有利であり得る。その上、上記で説明した実施形態における様々なシステム構成要素の分離は、すべての実施形態においてそのような分離を必要とするものとして理解されるべきではなく、説明したプログラム構成要素およびシステムが、一般に、単一のソフトウェア製品の中に一緒に組み込まれ得るか、または複数のソフトウェア製品の中にパッケージ化され得ることを理解されたい。
【0123】
以上、本主題の特定の実施形態について説明した。他の実施形態は、以下の特許請求の範囲内にある。場合によっては、特許請求の範囲において列挙されるアクションは、異なる順序で実行される場合があるが、依然として望ましい結果を達成することができる。加えて、添付の図において図示されるプロセスは、望ましい結果を達成するために、必ずしも示されている特定の順序または順番を必要とするとは限らない。いくつかの実装形態では、マルチタスキングおよび並列処理が有利であり得る。
【符号の説明】
【0124】
100 環境
105 データ通信ネットワーク、ネットワーク
110 クライアントデバイス
111 信用できるプログラム
112 アプリケーション
113 セキュアな鍵ストレージ、鍵ストレージ
120 通信
122 アテステーションレコード
124 ユーザ識別子
126 データのセット
128 デジタル署名、データの署名
130 パブリッシャー
140 ウェブサイト
145 リソース
150 コンテンツプラットフォーム
160 デジタルコンポーネントプロバイダ
180 トラストトークン発行者システム、トラストトークン発行者
400 コンピュータシステム、システム
410 プロセッサ、構成要素
420 メモリ、構成要素
430 記憶デバイス、構成要素
440 入出力デバイス、構成要素
450 システムバス
460 外部デバイス
図1
図2
図3
図4