JP7157258B2 - 集約されたネットワーク測定における不正の防止 - Google Patents

集約されたネットワーク測定における不正の防止 Download PDF

Info

Publication number
JP7157258B2
JP7157258B2 JP2021540867A JP2021540867A JP7157258B2 JP 7157258 B2 JP7157258 B2 JP 7157258B2 JP 2021540867 A JP2021540867 A JP 2021540867A JP 2021540867 A JP2021540867 A JP 2021540867A JP 7157258 B2 JP7157258 B2 JP 7157258B2
Authority
JP
Japan
Prior art keywords
data
conversion
impression
application
blind
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2021540867A
Other languages
English (en)
Other versions
JP2022532815A (ja
Inventor
ガン・ワン
マルセル・エム・モティ・ユン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Google LLC
Original Assignee
Google LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Google LLC filed Critical Google LLC
Publication of JP2022532815A publication Critical patent/JP2022532815A/ja
Application granted granted Critical
Publication of JP7157258B2 publication Critical patent/JP7157258B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0442Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply asymmetric encryption, i.e. different keys for encryption and decryption
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • G06F21/40User authentication by quorum, i.e. whereby two or more security principals are required
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6245Protecting personal data, e.g. for financial or medical purposes
    • G06F21/6254Protecting personal data, e.g. for financial or medical purposes by anonymising data, e.g. decorrelating personal data from the owner's identification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • H04L63/1483Countermeasures against malicious traffic service impersonation, e.g. phishing, pharming or web spoofing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/083Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP]
    • H04L9/0833Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP] involving conference or group key
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/085Secret sharing or secret splitting, e.g. threshold schemes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3093Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving Lattices or polynomial equations, e.g. NTRU scheme
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • H04L9/3257Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures using blind signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/04Masking or blinding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/42Anonymization, e.g. involving pseudonyms

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Physics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Algebra (AREA)
  • Medical Informatics (AREA)
  • Databases & Information Systems (AREA)
  • Storage Device Security (AREA)
  • Information Transfer Between Computers (AREA)

Description

クライアントデバイスは、インターネットなどのパブリックネットワークを介してデータを送信する。これらの通信は、意図された受信者以外のエンティティによって傍受および/または変更される可能性がある。さらに、エンティティはネットワーク識別子を偽造し、これらの偽造されたネットワーク識別子から発信されたように見えるデータを送信することができる。そのような偽造の例は、ピアツーピアネットワークのレピュテーションシステムを破壊するために、エンティティがネットワーク識別子を作成するシビル攻撃である。
本明細書は、不正を防止し、ユーザのプライバシを保護する方法で、集約されたネットワーク測定値を決定することに関連する技術について説明する。
一般に、本明細書に記載される主題の1つの革新的な態様は、複数のクライアントデバイスの各々から、それぞれのグループメンバー鍵、およびデジタルコンポーネントを表示した結果としての所与のコンバージョンのグループ識別子を含む測定データ要素を受信するステップであって、各クライアントデバイスにおいて実行されるアプリケーションが、インプレッションデータまたはコンバージョン用のコンバージョンデータの1つまたは複数を含むネットワークデータに少なくとも基づいて、ネットワークデータを暗号化するためのシークレットを定義するグループ鍵を生成することであって、各グループメンバー鍵が、シークレットのそれぞれの共有を含む、ことと、アプリケーションに関連するデータに基づいて、それぞれのグループメンバー鍵を生成することであって、各クライアントデバイスが、シークレットの異なる共有を含む異なるグループメンバー鍵を生成する、こととを行うために、しきい値暗号化スキームを使用する、ステップと、グループ識別子を有する少なくともしきい値数の測定データ要素が受信されたことを決定するステップと、同じグループ識別子を有する少なくともしきい値数の測定データ要素が受信されたとの決定に応答して、受信した測定データ要素におけるグループメンバー鍵を使用してネットワークデータを復号化するステップとを含む方法において具体化することができる。集約されるネットワークデータを報告するためにしきい値暗号化技法を使用することにより、不正な報告を防ぎ、たとえば、報告されたデータがユーザデータに関連している、またはユーザデータを含む状況において、ユーザのプライバシを保護する。異なるグループメンバー鍵の生成により、グループ識別子を有する少なくともしきい値数の測定データ要素を合計するグループメンバー鍵の任意の組合せが受信されたときに、グループ鍵を再生成することができる。したがって、ネットワークデータは、少なくともしきい値のグループメンバー鍵が受信されたときに復号化することができるが、しきい値未満のグループメンバー鍵が受信された場合は復号化することはできない。クライアントデバイス間のコラボレーションなしにクライアントデバイス間でそのようなシークレット共有を有効にすることにより、ユーザのデバイス間の通信を排除することによってユーザのプライバシを保護し、そのような通信によって消費される帯域幅を削減し、単一の秘密鍵が各アプリケーションに単に渡された場合に発生する可能性のある測定不正を防ぐ。この態様の他の実装形態は、コンピュータストレージデバイス上に符号化された、方法の態様を実行するように構成された、対応する装置、システム、およびコンピュータプログラムを含む。
これらおよび他の実装形態はそれぞれ、任意で以下の機能のうちの1つまたは複数を含むことができる。測定データ要素は、ネットワークデータを表す暗号化されたデータを含み得、グループメンバー鍵を含み得る。グループメンバー鍵は、グループ鍵の一部を表し得、同じインプレッションとコンバージョンのペアに対して十分な数のグループメンバー鍵が受信された場合にのみ、グループ鍵を再生成するために使用され得る。コンバージョンは、デジタルコンポーネントに対するものであり得、デジタルコンポーネントがユーザに提示された後、またはユーザによって選択された後、指定されたユーザアクションの完了を伴う場合がある。インプレッションデータは、デジタルコンポーネントの特定の提示に関するものであり得、デジタルコンポーネントのランディングページ(たとえば、デジタルコンポーネントによってリンクされているページで、ユーザがデジタルコンポーネントをクリックまたは相互作用すると、アプリケーション/ブラウザはそのページをユーザに表示する)のURLまたはドメイン、デジタルコンポーネントの1つまたは複数の識別子、インプレッションに関連付けられるイベントレベルのデータ、インプレッションデータをクライアントデバイスから削除するタイミングを指定する有効期限、および/あるいはデジタルコンポーネントのコンバージョン報告が送信される報告URLまたはドメインを含み得る。インプレッションデータは、たとえば、デジタルコンポーネントのメタデータまたはデジタルコンポーネントのアンカータグとして、デジタルコンポーネントによって提供され得る。一部のコンバージョンは複数のタイプを有し得るため、コンバージョンデータは、コンバージョンのタイプを示すデータを含み得る。コンバージョンのタイプは、コンバージョンが完了した後の後続のアクションを指定し得る。
各アプリケーションは、インプレッションデータに関連するコンバージョンの発生に応答して、測定データ要素を生成および送信し得る。本方法は、グループ識別子を含む受信されたデータ要素の数に基づいて、デジタルコンポーネントのコンバージョンの数を決定するステップを含むことができる。
本方法は、ブラインド(blindly)署名されたインプレッションデータに基づいてグループ鍵を生成するステップを含むことができる。ネットワークデータにブラインド署名するためにブラインド署名されたインプレッションデータを使用することにより、ユーザのプライバシを保護しながら、そのようなデータの不正をチェックすることができる。より一般的には、ネットワークデータにブラインド署名するためにブラインド署名技法を使用することにより、ユーザのプライバシを保護しながら、そのようなデータの不正をチェックすることができる。ネットワークデータを含むデータ要素の一部は、たとえば、ブラインド署名されたインプレッションデータに基づいてグループ鍵を生成することによって、および/または複数のエンティティから不正または共謀を防ぐために複数のエンティティによって暗号化することによって、ブラインド署名することができる。
ブラインド署名されたインプレッションデータは、インプレッションが有効であると決定した第1のシステムおよびコンバージョンを登録することを決定した第2のシステムによって署名されたブラインド化されたインプレッションデータであって、インプレッションデータをブラインド化することによって生成される、ブラインド化されたインプレッションデータと、第2のシステムによって署名されたコンバージョンデータとを含む、ブラインド署名された結合されたコンバージョンデータを含むことができる。グループ鍵を生成するステップは、ブラインド署名された結合されたコンバージョンデータと、デジタルコンポーネントのコンバージョンデータが報告される報告システムのネットワークアドレスとの組合せを使用してグループ鍵を生成するステップを含むことができる。そのようなブラインド署名されたデータとしきい値暗号化技法との組合せを使用することにより、不正を防ぎ、ユーザのプライバシを保護する。ブラインド署名された結合されたコンバージョンデータは、報告システムの公開鍵を使用して暗号化され得る。アプリケーションに関連するデータは、アプリケーションの一意の識別子を含むことができる。しきい値暗号化スキームは、多項式ベースのしきい値暗号化スキームを含むことができる。各クライアントデバイスにおいて実行されるアプリケーションは、少なくともインプレッションデータを含むシードに基づいて、グループ鍵として多項式関数を生成するステップと、シークレットに対応する値を有するように多項式関数上の同じ点を選択するステップと、それぞれのグループメンバー鍵として、アプリケーションに関連するデータを使用して、同じ点とは異なる多項式関数上の第2の点を選択するステップとを含むことができる。受信した測定データにおけるグループメンバー鍵を使用してインプレッションデータを復号化するステップは、第2の点を使用して多項式関数を生成するステップと、生成された多項式関数上の同じ点を識別するステップとを含むことができる。しきい値暗号化スキームは、中国の剰余定理ベースのスキーム、プロアクティブなシークレット共有、または検証可能なシークレット共有のいずれかを含むことができる。
本明細書に記載されている主題は、以下の利点のうちの1つまたは複数を実現するように、特定の実施形態において実装することができる。本明細書で説明されている(t、n)-しきい値暗号化スキームなどのしきい値暗号化技法は、ネットワークデータ(たとえば、インプレッションおよび/またはコンバージョンデータ)またはその一部または派生物を、次に、測定対象のネットワークデータを報告する複数のクライアントデバイスの複数のアプリケーション(たとえば、ウェブブラウザまたはネイティブアプリケーション)間で分割されるグループ鍵を生成するためのシードとして使用することができる。これにより、異なるクライアントデバイスで実行されているアプリケーションの各々は、アプリケーション(または、クライアントデバイス)間のコラボレーション、および中央システムが各アプリケーションに鍵を配信する必要なしに、同じネットワークデータを使用してネットワークデータを暗号化する同じグループ鍵を生成することができる。代わりに、ネットワークイベント(たとえば、インプレッションおよび関連付けられるコンバージョン)が発生する各アプリケーションは、ネットワークデータを暗号化するグループ鍵を生成するために、たとえばデジタルコンポーネントおよび/またはリモートサーバから受信したネットワークデータを使用することができる。
各アプリケーションは、グループメンバー鍵を生成するために異なる情報を使用することができ、グループメンバー鍵は、十分な数の他のグループメンバー鍵と組み合わせると、グループ鍵またはグループ鍵の別の表現を再生成するために使用することができる。たとえば、各アプリケーションは、グループメンバー鍵を生成するためにアプリケーションの一意の識別子を使用し、各アプリケーションがアプリケーション間のコラボレーションなしで他の各アプリケーションとは異なるグループメンバー鍵を生成できるようにすることができる。各アプリケーションによるこの異なるグループメンバー鍵の生成により、合計で少なくともしきい値「t」のグループメンバー鍵の数のグループメンバー鍵の任意の組合せが受信されたときに、グループ鍵を再生成することができる。したがって、ネットワークデータは、少なくともt個のグループメンバー鍵が受信されたときに復号化することができるが、t個未満のグループメンバー鍵が受信された場合は復号化することができない。アプリケーション間のコラボレーションなしにアプリケーション間でそのようなシークレット共有を有効にすることにより、ユーザのデバイス間の通信を排除することによってユーザのプライバシを保護し、そのような通信によって消費される帯域幅を削減し、単一の秘密鍵が各アプリケーションに単に渡された場合に発生する可能性のある測定不正を防ぐ。
前述の主題の様々な特徴および利点が、図面に関して以下に説明される。追加の特徴および利点は、本明細書に記載の主題および特許請求の範囲から明らかである。
デジタルコンポーネントシステムがデジタルコンポーネントを配信する環境のブロック図である。 署名されたインプレッションデータを記録するための例示的なプロセスを示す流れ図である。 コンバージョンデータを記録するための例示的なプロセスを示す流れ図である。 コンバージョンデータを報告するための例示的なプロセスを示す流れ図である。 コンバージョンデータを報告するための別の例示的なプロセスを示す流れ図である。 インプレッションデータを復号化するための例示的なプロセスを示す流れ図である。 例示的なコンピュータシステムのブロック図である。
様々な図面における同様の参照番号および名称は、同様の要素を示している。
一般に、本明細書は、集約されたネットワーク測定値を決定する際の不正を防止するための暗号化技法について説明する。たとえば、本明細書で説明されている技法を使用すると、デジタルコンポーネントの集約されたインプレッション測定値とコンバージョン測定値を決定する際の不正行為を防ぐことができる。本明細書で説明されている暗号化技法は、たとえば、他のエンティティがユーザのクライアントデバイスから受信したユーザデータを追跡または集約できないようにすることによって、ユーザのプライバシを保護することもできる。
図1は、デジタルコンポーネント配信システム150がデジタルコンポーネントを配信する環境100のブロック図である。例示的な環境100は、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、インターネット、モバイルネットワーク、またはそれらの組合せなどのデータ通信ネットワーク105を含む。ネットワーク105は、クライアントデバイス110、発行者130、ウェブサイト140、デジタルコンポーネント配信システム150、不正検出システム170、集約システム180、および報告システム190を接続する。例示的な環境100は、多くの異なるクライアントデバイス110、発行者130、およびウェブサイト140を含み得る。いくつかの実装形態では、環境100はまた、複数のデジタルコンポーネント配信システム150を含むことができる。
ウェブサイト140は、ドメイン名に関連付けられ、1つまたは複数のサーバによってホストされる1つまたは複数のリソース145である。例示的なウェブサイトは、テキスト、画像、マルチメディアコンテンツ、およびスクリプトなどのプログラミング要素を含むことができるHTML形式のウェブページのコレクションである。各ウェブサイト140は、ウェブサイト140を制御、管理、および/または所有するエンティティである発行者130によって維持されている。
リソース145は、ネットワーク105を介して提供することができる任意のデータである。リソース145は、リソース145に関連付けられるリソースアドレス、たとえば、ユニバーサルリソースロケータ(URL)によって識別される。リソースは、ほんの数例を挙げると、HTMLページ、ワープロ文書、およびポータブルドキュメントフォーマット(PDF)文書、画像、ビデオ、ならびにフィードソースなどを含む。リソースは、埋込み情報(ハイパーリンクにおけるメタ情報など)ならびに/または埋込み命令(スクリプトなど)を含み得る、単語、語句、画像、および音声などのコンテンツを含むことができる。
クライアントデバイス110は、ネットワーク105を介して通信することができる電子デバイスである。例示的なクライアントデバイス110は、パーソナルコンピュータ、モバイル通信デバイス、たとえば、スマートフォン、およびネットワーク105を介してデータを送受信することができる他のデバイスを含む。
クライアントデバイス110は、典型的には、ネットワーク105を介したデータの送受信を容易にするために、ウェブブラウザおよび/またはネイティブアプリケーションなどのアプリケーション112を含む。ネイティブアプリケーションは、特定のプラットフォームまたは特定のデバイス用に開発されたアプリケーションである。発行者130は、クライアントデバイス110に、ネイティブアプリケーションを開発および提供し、たとえば、ダウンロードできるようにすることができる。いくつかの実装形態では、クライアントデバイス110は、デジタルメディアデバイス、たとえば、ビデオをテレビにストリーミングするために、テレビまたは他のディスプレイにプラグインするストリーミングデバイスである。デジタルメディアデバイスはまた、ビデオをストリーミングし、および/またはリソースを提示するウェブブラウザおよび/または他のアプリケーションを含むことができる。
ウェブブラウザは、たとえば、クライアントデバイス110のユーザがウェブブラウザのアドレスバーにリソース145のリソースアドレスを入力すること、またはリソースアドレスを参照するリンクを選択することに応答して、発行者130のウェブサイト140をホストするウェブサーバからリソース145を要求することができる。同様に、ネイティブアプリケーションは、発行者130のリモートサーバからアプリケーションコンテンツを要求することができる。
いくつかのリソース145、アプリケーションページ、または他のアプリケーションコンテンツは、リソース145またはアプリケーションページでデジタルコンポーネントを提示するためのデジタルコンポーネントスロットを含むことができる。本明細書全体で使用されているように、「デジタルコンポーネント」という語句は、デジタルコンテンツまたはデジタル情報の個別の単位(たとえば、ビデオクリップ、オーディオクリップ、マルチメディアクリップ、画像、テキスト、または別のコンテンツの単位)を指す。デジタルコンポーネントは、単一のファイルまたはファイルのコレクションとして物理メモリデバイスに電子的に記憶することができ、デジタルコンポーネントは、ビデオファイル、オーディオファイル、マルチメディアファイル、画像ファイル、またはテキストファイルの形式を取り、広告がデジタルコンポーネントの一種であるように、広告情報を含むことができる。たとえば、デジタルコンポーネントは、アプリケーション112によって提示されるウェブページまたは他のリソースのコンテンツを補足することを意図したコンテンツであり得る。より具体的には、デジタルコンポーネントは、リソースコンテンツに関連するデジタルコンテンツを含み得る(たとえば、デジタルコンポーネントは、ウェブページコンテンツと同じトピック、または関連するトピックに関連し得る)。したがって、デジタルコンポーネント配信システム150によるデジタルコンポーネントの提供は、ウェブページまたはアプリケーションコンテンツを補足し、一般に強化することができる。
アプリケーション112が、1つまたは複数のデジタルコンポーネントスロットを含むリソース145(または、アプリケーションコンテンツ)をロードするとき、アプリケーション112は、デジタルコンポーネント配信システム150に各スロットのデジタルコンポーネントを要求することができる。次に、デジタルコンポーネント配信システム150は、デジタルコンポーネントプロバイダ160にデジタルコンポーネントを要求することができる。デジタルコンポーネントプロバイダ160は、リソース145を提示するためのデジタルコンポーネントを提供するエンティティである。
場合によっては、デジタルコンポーネント配信システム150は、1つまたは複数のデジタルコンポーネントパートナ157にデジタルコンポーネントを要求することもできる。デジタルコンポーネントパートナ157は、デジタルコンポーネント要求に応答してデジタルコンポーネントプロバイダ160に代わってデジタルコンポーネントを選択するエンティティである。
デジタルコンポーネント配信システム150は、様々な基準に基づいて、各デジタルコンポーネントスロットのデジタルコンポーネントを選択することができる。たとえば、デジタルコンポーネント配信システム150は、デジタルコンポーネントプロバイダ160および/またはデジタルコンポーネントパートナ157から受信したデジタルコンポーネントから、リソース145(または、アプリケーションコンテンツ)との関連性、デジタルコンポーネントのパフォーマンス(たとえば、ユーザがデジタルコンポーネントと相互作用する速度)などに基づいて、デジタルコンポーネントを選択することができる。次いで、デジタルコンポーネント配信システム150は、リソース145または他のアプリケーションコンテンツとともに提示するために、選択されたデジタルコンポーネントをクライアントデバイス110に提供することができる。
アプリケーション112がデジタルコンポーネントを提示するとき、アプリケーション112(ブラウザであり得る)は、デジタルコンポーネントの提示のためのインプレッションデータ114を記憶することができる。デジタルコンポーネントの特定の提示のインプレッションデータ114は、デジタルコンポーネントのランディングページ(たとえば、デジタルコンポーネントによってリンクされているページで、ユーザがデジタルコンポーネントをクリックまたは相互作用すると、アプリケーション/ブラウザはそのページをユーザに表示する)のURLまたはドメイン、デジタルコンポーネントの1つまたは複数の識別子、インプレッションに関連付けられるイベントレベルのデータ、インプレッションデータをクライアントデバイス110から削除するタイミングを指定する有効期限、および/あるいはデジタルコンポーネントのコンバージョン報告が送信される報告URLまたはドメインを含むことができる。このデータは、たとえば、デジタルコンポーネントのメタデータまたはデジタルコンポーネントのアンカータグとして、デジタルコンポーネントによって提供することができる。以下でより詳細に説明するように、デジタルコンポーネントの各インプレッションの生のインプレッションデータを記憶するのではなく、または記憶することに加えて、アプリケーション112は、不正検出システム170によってブラインド署名されたインプレッションデータを記憶することができる。
アプリケーション112はまた、検出されたコンバージョンに応答してコンバージョンデータ116を記憶することができる。デジタルコンポーネントに対するコンバージョンは、デジタルコンポーネントがユーザに提示された後、またはユーザによって選択された後の、指定されたユーザアクションの完了である。一部のコンバージョンは複数のタイプを有することができるため、コンバージョンのためのコンバージョンデータ116は、コンバージョンのタイプを示すデータを含むことができる。コンバージョンのタイプは、コンバージョンが完了した後の後続のアクションを指定することができる。たとえば、コンバージョンは、オンラインショッピングカートへのアイテムの追加である可能性がある。この例では、第1のタイプのコンバージョンは、チェックアウトせずにアイテムを追加すること(たとえば、購入を完了しない)であり得、第2のタイプのコンバージョンは、チェックアウトを伴うアイテムの追加であり得る。以下でより詳細に説明するように、コンバージョンのためのコンバージョンデータは、コンバージョンのタイプを示す1つまたは複数のビットのセットであり得、アプリケーションは、デジタルコンポーネント配信システム150(または、別の適切なシステム)によってブラインド署名されたコンバージョンデータを記憶することができる。
不正検出システム170は、インプレッションまたはコンバージョンが有効であるか不正であるかを決定するために、クライアントデバイス110から受信した不正信号を評価することができる。不正信号はアプリケーションに依存する可能性があり、実装形態によって異なる可能性がある。アプリケーション112(または、クライアントデバイス110上のオペレーティングシステム)は、不正検出信号を収集し、不正検出信号を不正検出システム170に提供するために、デジタルコンポーネントがアプリケーション112(または、クライアントデバイス110上のオペレーティングシステム)を呼び出すことを可能にするAPIを含むことができる。不正検出信号に加えて、アプリケーション112は、インプレッションのブラインド化されたインプレッションデータを不正検出システム170に送信することができる。不正検出システム170がインプレッションは有効であると決定した場合、不正検出システム170は、ブラインド化されたインプレッションデータに署名し、署名されたブラインド化されたインプレッションデータをアプリケーション112に提供することができる。ブラインド化されたインプレッションデータを生成し、ブラインド化されたインプレッションデータに署名するための例示的な技法を以下に説明する。
集約システム180は、クライアントデバイス110から受信したデータに基づいて、集約されたネットワーク測定値を生成することができる。以下の説明において、測定データ要素を生成および提供するための技法は、ウェブブラウザまたはネイティブアプリケーションであり得るアプリケーション112によって実行されるものとして説明される。しかしながら、いくつかの実装形態では、クライアントデバイス110のオペレーティングシステムは、測定データ要素を生成および送信することができる。そのような実装形態では、クライアントデバイス110上のウェブブラウザおよびアプリケーションは、インプレッションおよびコンバージョンをオペレーティングシステムに報告するように構成することができる。オペレーティングシステムは、アプリケーション112によって実行されるものとして以下に説明されるインプレッションおよびコンバージョンを報告するための動作の各々を実行することができる。
クライアントデバイス110上のアプリケーション112は、ネットワークデータを表す暗号化されたデータを含む測定データ要素を集約システム180に提供することができる。ネットワークデータは、各コンバージョンのインプレッションデータおよび/またはコンバージョンデータを含むことができる。たとえば、アプリケーション112は、コンバージョンデータがクライアントデバイス110に記憶されている各コンバージョンの測定データ要素を生成し、集約システム180に送信することができる。集約されたネットワーク測定値は、1つまたは複数のデジタルコンポーネントの各々について、複数のクライアントデバイス110にわたるデジタルコンポーネントのコンバージョンの総数を含むことができる。
以下でより詳細に説明するように、アプリケーション112は、測定データ要素におけるデータを生成するために、(t、n)しきい値スキームを使用することができる。いくつかの実装形態では、アプリケーション112がコンバージョンを検出するか、またはコンバージョンのためのコンバージョンデータを受信すると、アプリケーション112は、コンバージョンのためのインプレッションデータおよびコンバージョンデータに基づいてグループ鍵(たとえば、多項式関数)を生成する。次いで、アプリケーションは、グループ鍵の一部を表し、同じインプレッションとコンバージョンのペアに対して十分な数のグループメンバー鍵が受信された場合にのみ、グループ鍵を再生成するために使用することができるグループメンバー鍵を生成することができる。この例では、コンバージョンの測定データ要素は、アプリケーションによって生成されたグループメンバー鍵と、インプレッションとコンバージョンのペアに対応するタグを含むことができる。各固有のインプレッションとコンバージョンのペアは、対応する固有のタグを有することができるので、集約システム180は、そのタグを使用して、各インプレッションとコンバージョンのペアの測定データ要素を集約することができる。
(t、n)しきい値暗号化スキームでは、集約システム180は、インプレッションデータおよびコンバージョンデータを復号化できるようにするために、同じインプレッションとコンバージョンのペアについて少なくともt個のグループメンバー鍵を受信する必要がある。t個未満のグループメンバー鍵が受信された場合、集約システム180は、インプレッションデータおよびコンバージョンデータを復号化することができない。以下でより詳細に説明するように、同じインプレッションとコンバージョンのペアの少なくともt個の測定データ要素がクライアントデバイス110から受信されると、集約システム180は、少なくともt個のグループメンバー鍵からグループ鍵を決定し、グループ鍵からインプレッションデータおよびコンバージョンデータを取得することができる。
集約システム180は、インプレッションとコンバージョンのペアのインプレッションデータとコンバージョンデータを含む受信された測定データ要素の数に基づいて、インプレッションとコンバージョンのペアのコンバージョンの量を決定することができる。たとえば、少なくともt個のグループメンバー鍵を使用してインプレッションデータおよびコンバージョンデータを取得した後、集約システム180は、コンバージョンの量として、インプレッションとコンバージョンのペアに対して受信されたグループメンバー鍵の数のカウントを決定することができる。集約システム180は、インプレッションデータ、コンバージョンデータ、およびコンバージョンの量を報告システム190に報告することができ、報告システム190は、デジタルコンポーネントの報告URLに対応する報告ドメインとして実装され得、このURLは、インプレッションデータおよびコンバージョンデータに対応する。
図2は、署名されたインプレッションデータを記録するための例示的なプロセス200を示す流れ図である。プロセス200は、たとえば、ウェブサイト140、デジタルコンポーネント配信システム150、および不正検出システム170と相互作用するクライアントデバイス110によって実装することができる。プロセス200の動作はまた、非一時的コンピュータ可読媒体に記憶された命令として実装することができ、1つまたは複数のデータ処理装置による命令の実行により、1つまたは複数のデータ処理装置にプロセス200の動作を実行させることができる。
クライアントデバイスはコンテンツをフェッチする(202)。クライアントデバイス110上で実行されるアプリケーション112は、リモートサーバ、たとえば、1つまたは複数のウェブサイト140をホストするウェブサーバ、あるいは1つまたは複数のネイティブアプリケーションのコンテンツをホストするアプリケーションコンテンツサーバからコンテンツを要求することができる。この例では、アプリケーション112は、ウェブサイト140からリソース145を要求する。ユーザは、リモートサーバによってホストされるウェブサイト140を指すURLを入力または選択することができる。アプリケーション112、たとえば、ウェブブラウザは、URLによって識別されるリソース145に対する要求を生成し、その要求をリモートサーバに送信することができる。要求は、リソース145のURLを含むことができる。
ウェブサイト140は、コンテンツをクライアントデバイスに返す(204)。コンテンツは、URLによって識別されるウェブページまたは他のリソース145である可能性がある。アプリケーション112は、クライアントデバイスのディスプレイ上にコンテンツをレンダリングすることができる(206)。
コンテンツは、1つまたは複数のデジタルコンポーネントスロットを含むことができる。デジタルコンポーネントスロットは、デジタルコンポーネント配信システム150から受信したデジタルコンポーネントによって埋めることができる。デジタルコンポーネントスロット(または、リソース145)は、アプリケーション112にデジタルコンポーネントのデジタルコンポーネント配信システム150への要求を生成させることができるコンピュータ可読命令を含むことができる。
クライアントデバイス110は、1つまたは複数のデジタルコンポーネントを要求する(208)。たとえば、アプリケーション112は、デジタルコンポーネントスロットまたはリソース145のコンピュータ可読命令の実行に応答して要求を生成することができる。アプリケーション112は、要求をデジタルコンポーネント配信システム150に送信することができる。
デジタルコンポーネント配信システム150は、1つまたは複数のデジタルコンポーネントをクライアントデバイスに返す(210)。上記のように、デジタルコンポーネント配信システム150は、デジタルコンポーネントのセットから、デジタルコンポーネントが提示されるリソース145(または、アプリケーションコンテンツ)との関連性(たとえば、このデータを要求に含めることができる)、デジタルコンポーネントのパフォーマンス、および/または他の適切な基準などの様々な基準に基づいて、デジタルコンポーネントを選択することができる。デジタルコンポーネント配信システム150は、デジタルコンポーネントのセットに含めるために、デジタルコンポーネントプロバイダ160および/またはデジタルコンポーネントパートナ157に、デジタルコンポーネント(または、デジタルコンポーネントの配信基準)を要求することができる。デジタルコンポーネントを選択した後、デジタルコンポーネント配信システム150は、デジタルコンポーネントをクライアントデバイス110に送信することができる。
クライアントデバイス110は、デジタルコンポーネント配信システム150から受信したデジタルコンポーネントをレンダリングする(212)。アプリケーション112は、リソース145(または、アプリケーションコンテンツ)のデジタルコンポーネントスロット内のデジタルコンポーネントをレンダリングすることができる。デジタルコンポーネントのレンダリングが図2に示されているが、コンテンツがレンダリングされた後に発生すると、アプリケーション112は、たとえば、デジタルコンポーネントスロットにデジタルコンポーネントを含むウェブページをロードすることによって、コンテンツとデジタルコンポーネントを同時にレンダリングすることができる。
クライアントデバイス110は、コンテンツとともに提示されるデジタルコンポーネントごとのインプレッションデータを記憶する(214)。上記のように、デジタルコンポーネントの特定の提示のインプレッションデータは、デジタルコンポーネントのランディングページ(たとえば、デジタルコンポーネントによってリンクされているページ)のURLまたはドメイン、デジタルコンポーネントの1つまたは複数の識別子、インプレッションデータをクライアントデバイス110から削除するタイミングを指定する有効期限、および/あるいはデジタルコンポーネントのコンバージョン報告が送信される報告URLまたはドメイン(たとえば、報告システム190の報告URL)を含むことができる。
いくつかの実装形態では、アプリケーション112は、クライアントデバイス110(または、上記のオペレーティングシステム)に、コンテンツとともに提示される各デジタルコンポーネントを登録する。たとえば、デジタルコンポーネントをレンダリングすることにより、デジタルコンポーネントをクライアントデバイス110に登録することができる。デジタルコンポーネントは、ペイロード(たとえば、目に見えないデータ)およびコンピュータ可読命令を含むことができる。ペイロードは、上記のインプレッションデータを含むことができる。コンピュータ可読命令は、デジタルコンポーネントをアプリケーション112に登録させることができる。たとえば、デジタルコンポーネントは、アプリケーション112、あるいはアプリケーション112またはクライアントデバイス110のコンバージョンエンジンによってデジタルコンポーネントに公開されたAPIへの呼出しを含むことができる。APIへの呼出しは、デジタルコンポーネントのペイロードを含むことができる。アプリケーション112は、データを登録テーブルに記憶することができる。
アプリケーション112は、コンテンツとともに提示されるデジタルコンポーネントごとのインプレッションデータをブラインド化する(216)。アプリケーション112は、デジタルコンポーネントのインプレッションデータをブラインド化するためにブラインド技法を使用することができる。一般に、ブラインド化技法は、実際のインプレッションデータを隠すブラインド化されたインプレッションデータを生成するためにインプレッションデータにブラインド係数を適用して、ブラインド化されたインプレッションデータを受信するエンティティが、ブラインド技法、およびブラインド化されたインプレッションデータの生成に使用されるパラメータ/鍵の知識がない場合、実際のインプレッションデータを決定できないようにすることができる。いくつかの実装形態では、アプリケーション112は、デジタルコンポーネントのインプレッションデータをブラインド化するために、インターネット技術特別調査委員会(IETF)ドラフト標準プロトコルである検証可能、忘却擬似ランダム関数(VOPRF)プロトコルを使用して、デジタルコンポーネントのインプレッションデータをブラインド化する。他の適切なブラインド署名技法も使用することができる。
クライアントデバイス110またはアプリケーション112は、不正検出信号を収集する(218)。上記のように、アプリケーション112は、デジタルコンポーネントが、不正検出信号を収集するためにアプリケーション112を呼び出し、不正検出信号を不正検出システム170に提供することを可能にするAPIを含むことができる。
アプリケーション112は、コンテンツおよび不正検出信号とともに提示されたデジタルコンポーネントごとにブラインド化されたインプレッションデータを不正検出システム170に送信する(220)。たとえば、アプリケーション112は、不正検出システム170に、およびデジタルコンポーネントごとに、デジタルコンポーネントのインプレッションが有効であるか不正であるかを決定するための要求を送信することができる。各要求は、所与のデジタルコンポーネントに固有のものにすることもでき、コンテンツとともに提示されるすべてのデジタルコンポーネントに対して単一の要求を送信することもできる。
要求は、ブラインド化されたインプレッションデータと不正検出信号を含むことができる。インプレッションデータがブラインド化されているので、不正検出システム170は実際のインプレッションデータにアクセスすることができない。これは、不正検出システム170が、ブラインド化されたインプレッションデータを送信したクライアントデバイス110のユーザのユーザデータを取得、収集、または追跡することを防止する。不正検出システム170は、デジタルコンポーネントのインプレッションが有効であるか不正であるかを決定するために、不正検出信号を評価することができる。したがって、不正検出システム170は、不正検出信号に基づいて、インプレッションイベントが有効であるかどうかを決定することができるが、イベントのコンテンツを決定することも、プレーンテキストインプレッションデータにアクセスすることもできない。
不正検出システム170が、デジタルコンポーネントのインプレッションが無効である(たとえば、不正である)と決定した場合、不正検出システム170は、要求を無視するか、またはインプレッションが無効であることを示すデータで要求に応答することができる。不正検出システム170が、デジタルコンポーネントのインプレッションが有効であると決定した場合、不正検出システム170は、デジタルコンポーネントのインプレッションデータにブラインド署名する(222)。不正検出システム170は、ブラインド署名技法を使用して、ブラインド化されたインプレッションデータにブラインド署名することができる。いくつかの実装形態では、ブラインド署名技法は、CloudFlare(商標)のPrivacyPass、またはGoogle Chrome(商標)ブラウザの信頼トークンであってよく、それらのどちらもIETF VOPRFドラフト標準に基づいている。
一般に、ブラインド署名技法は、実際のインプレッションデータを知らなくても、たとえばシークレットのブラインド署名鍵を使用して、ブラインド化されたデータのデジタル署名を可能にするため、結果として生じるブラインド署名を元のブラインド化されていないインプレッションデータに対して検証することができる。いくつかの実装形態では、不正検出システム170は、不正検出システム170のブラインド化された署名鍵を使用して、VOPRFプロトコルを使用してブラインド化されたインプレッションデータにブラインド署名する。不正検出システム170は、他のエンティティがブラインド署名鍵にアクセスできないように、このブラインド署名鍵を秘密裏に維持することができる。
不正検出システム170は、ブラインド署名されたインプレッションデータをクライアントデバイスに送信する(224)。たとえば、不正検出システム170は、クライアントデバイス110またはアプリケーション112によって開始された要求に応答して、ブラインド署名されたインプレッションデータをクライアントデバイス110またはアプリケーション112に送信することができる。アプリケーション112は、たとえば、VOPRFプロトコルを使用して、ブラインド化されたインプレッションデータの署名を検証することができる(226)。同様に、アプリケーション112は、ブラインド署名されたインプレッションデータのブラインドを解除することができる(228)。アプリケーション112はまた、ブラインド化されたインプレッションデータにブラインド署名するために使用されたVOPRFプロトコルを使用して、ブラインド署名されたインプレッションデータのブラインドを解除することができる。アプリケーション112は、たとえば、署名されたインプレッションデータをクライアントデバイス110に記憶し、インプレッションをクライアントデバイス110における登録テーブルに登録することによって、署名されたインプレッションデータを記録する(230)。
図3は、コンバージョンデータを記録するための例示的なプロセス300を示す流れ図である。プロセス300は、たとえば、ウェブサイト140およびデジタルコンポーネント配信システム150と相互作用するクライアントデバイス110によって実装することができる。プロセス300の動作はまた、非一時的コンピュータ可読媒体に記憶された命令として実装することができ、1つまたは複数のデータ処理装置による命令の実行により、1つまたは複数のデータ処理装置にプロセス300の動作を実行させることができる。
クライアントデバイス110は、コンテンツをフェッチする(302)。たとえば、クライアントデバイス110上で実行されるアプリケーション112(たとえば、ウェブブラウザまたはネイティブアプリケーション)は、デジタルコンポーネントと相互作用する、たとえば、選択またはクリックするユーザに応答して、デジタルコンポーネントによってリンクされたランディングページを要求することができる。アプリケーション112は、ランディングページを含むウェブサイト140をホストするウェブサーバに要求を送信することができる。
ウェブサイト140は、コンテンツをクライアントデバイスに返す(304)。コンテンツは、URLによって識別されるウェブページまたは他のリソース145である可能性がある。アプリケーション112は、クライアントデバイスのディスプレイ上にコンテンツをレンダリングすることができる。コンバージョンに必要なユーザインタラクションの量と性質は、個々のデジタルコンポーネントプロバイダによってニーズに基づいて定義される。コンバージョンが実際に発生すると、ランディングページまたはランディングページを所有するウェブサイトは、アプリケーション(ブラウザ)にコンバージョンの発生を通知する。他の実装形態では、コンバージョンは、モバイルアプリの場合はアプリストアで、ユーザがプロモートされたアプリをダウンロードしてインストールするウェブアプリの場合はウェブストアで発生する可能性がある。これは通常、クリックツーインストールコンバージョンと呼ばれる。そのような場合、アプリストアまたはウェブストアは、コンバージョンデータを報告するオペレーティングシステム、ブラウザ、またはアプリケーションに、コンバージョンの発生を通知する可能性がある。しかし、他の実装形態では、コンバージョンは、ユーザによるデジタルコンポーネントプロバイダへの電話である可能性がある。スマートフォンのオペレーティングシステムは電話を認識し、コンバージョンを測定することができる(一般に、クリックツーコールコンバージョンと呼ばれる)。
クライアントデバイス110は、コンバージョンデータをフェッチするか、さもなければ受信する(306)。いくつかの実装形態では、コンテンツはコンバージョンピクセルを含む。コンバージョンピクセルは、コンバージョン報告を生成する必要があるかどうか、たとえば、コンバージョンが発生したかどうか、コンバージョンを記録するかどうかを決定するシステムへのURLを含むことができる。この例では、コンバージョン報告を生成する必要があるかどうかを決定するシステムは、デジタルコンポーネント配信システム150である。
コンバージョンピクセルは、アプリケーション112に、データをデジタルコンポーネント配信システム150に送信させることができる。たとえば、コンバージョンピクセルは、コンテンツ(たとえば、ランディングページ)がクライアントデバイス110の登録テーブルに登録されているかどうかをアプリケーション112に決定させるコンピュータ可読命令を含むことができる。上記のように、アプリケーション112は、登録テーブルに、アプリケーション112によって提示されたデジタルコンポーネントのインプレッションデータを記録することができる。デジタルコンポーネントのインプレッションデータは、デジタルコンポーネントのランディングページのURLまたはドメインを含むことができる。アプリケーション112は、登録テーブルを検索して、ユーザがデジタルコンポーネントと相互作用することに応答して受信したコンテンツとして提示されたランディングページのURLを探すことができる。クリックツーインストールコンバージョンの場合、ランディングページのURLは、アプリストア/ウェブストアにリストされているアプリを指すディープリンクURLになる。クリックツーコールコンバージョン場合、URLはデジタルコンポーネントプロバイダの電話番号を符号化する。
アプリケーション112が登録テーブル内のランディングページのURLを見つけると、クライアントデバイス110は、デジタルコンポーネント配信システム150(または、コンバージョン報告をいつトリガするかを決定する他のシステム)に、ランディングページのURLと一致するURLを含むデジタルコンポーネントのブラインド署名されたインプレッションデータを送信することができる。上記のように、ブラインド署名されたインプレッションデータは、ブラインド化されたインプレッションデータとブラインド化されたインプレッションデータのブラインド署名を含む。いくつかの実装形態では、アプリケーション112は、コンバージョンピクセルの要求のメッセージヘッダにブラインド署名されたインプレッションデータを含むことができる。
デジタルコンポーネント配信システム150は、コンバージョン報告をトリガするかどうかを決定する(308)。デジタルコンポーネント配信システム150は、ブラインド署名されたインプレッションデータの受信、およびコンテンツ、たとえば、ランディングページとのユーザの相互作用に基づいて、コンバージョン報告をトリガするかどうかを決定することができる。たとえば、ユーザによって相互作用されるデジタルコンポーネントの発行者は、デジタルコンポーネントがクライアントデバイス110に提示された後、たとえば、ランディングページにおいて特定のユーザインターフェースコントロールを選択するなど、コンバージョンイベントを定義することができる。デジタルコンポーネント配信システム150は、コンバージョンイベントが発生したかどうかを決定するために、ランディングページをホストするウェブサーバ(または、クライアントデバイス110)と相互作用することができる。
コンバージョンイベントが発生した場合、デジタルコンポーネント配信システム150は、デジタルコンポーネントのコンバージョン報告をトリガすることを決定することができる。コンバージョンイベントが検出されない場合、デジタルコンポーネント配信システム150は、デジタルコンポーネントのコンバージョン報告をトリガしないことを決定することができる。
デジタルコンポーネント配信システム150がデジタルコンポーネントのコンバージョン報告をトリガすることを決定した場合、デジタルコンポーネント配信システム150は、(i)すでにブラインド署名されたインプレッションデータと(ii)コンバージョンのためのコンバージョンデータとの組合せにブラインド署名する(310)。このコンバージョンデータは、コンバージョンのタイプを示す1つまたは複数のビットのセット、たとえば、コンバージョンが完了した後の後続のアクションである場合がある。たとえば、カートにアイテムを追加するコンバージョンイベントが発生した後にユーザがチェックアウトしたかどうかを指定するために、1ビットを使用することができる。この例では、チェックアウトが発生しなかった場合、ビットの値は0になり得、チェックアウトが発生した場合、ビットの値は1になり得る。他の実装形態では、コンバージョンデータは、コンバージョンの一部としてユーザが費やした/購入した金額を符号化することができる。
デジタルコンポーネント配信システム150は、コンバージョンが発生したウェブサイト/アプリストア/ウェブストアの所有者に代わって、デジタルコンポーネント配信システム150のシークレットのブラインド署名鍵を使用して、ブラインド署名されたインプレッションデータとコンバージョンデータとの組合せにブラインド署名することができる。簡潔にするために、ブラインド署名されたインプレッションデータとコンバージョンデータのこのブラインド署名された組合せは、ブラインド署名された結合されたコンバージョンデータと呼ばれる。いくつかの実装形態では、コンバージョンデータは、ブラインド署名されたインプレッションデータの隠しビットとして含まれている。たとえば、ブラインド署名されたインプレッションデータはビットのセットの形式であってよく、コンバージョンデータは隠しビットによって指定することができる。デジタルコンポーネント配信システム150は、そのシークレットのブラインド署名鍵を使用して、ビットと隠しビットのこの組合せにブラインド署名することができる。この時点で、ブラインド化されたインプレッションデータは、不正検出サーバ170のブラインド署名鍵、およびデジタルコンポーネント配信システム150のブラインド署名鍵を使用して、二度ブラインド署名される(たとえば、二重署名されたインプレッションデータ)。コンバージョンデータは、デジタルコンポーネント配信システム150のブラインド署名鍵を使用して一度ブラインド署名される。
いくつかの実装形態では、デジタルコンポーネント配信システム150は、VOPRFプロトコルを使用して、ブラインド署名されたインプレッションデータおよびコンバージョンデータにブラインド署名する。デジタルコンポーネント配信システム150は、他のエンティティがブラインド署名鍵にアクセスできないように、そのブラインド署名鍵を秘密裏に維持することができる。デジタルコンポーネント配信システム150のブラインド署名鍵は、ブラインド化されたインプレッションデータにブラインド署名するために使用された不正検出システム170のブラインド署名鍵とは異なる。
デジタルコンポーネント配信システム150は、有効なコンバージョンの発生をクライアントデバイス110に通知する。いくつかの実装形態では、デジタルコンポーネント配信システム150は、クライアントデバイス110に、報告ドメインへのリダイレクトを送信する(312)。たとえば、リダイレクトは、報告システム190のドメインへのURLを含むことができる。リダイレクトはまた、ブラインド署名された結合されたコンバージョンデータを含むことができる。
いくつかの実装形態では、リダイレクトは、アプリケーション112(たとえば、インプレッションおよびコンバージョンを報告するネイティブアプリケーション、ブラウザ、またはオペレーティングシステム)によって検出され得る特定の形式を有する。この特定の形式は、報告ドメインのURLと、ブラインド署名された結合されたコンバージョンデータを含むメタデータとを含むことができる。メタデータは、報告ドメインのURLのクエリパラメータとして指定することができる。
クライアントデバイス110上で実行されているアプリケーション112は、リダイレクトを受信し、リダイレクトの特定の形式を検出する(314)。アプリケーション112は、特定の形式を有するリダイレクトを、コンバージョンを報告するための測定データ要素を生成するための特別な要求として扱うことができる。
有効なコンバージョンの発生が通知されたことに応答して、たとえば、リダイレクトが特定の形式を有することを検出すると、アプリケーション112は、ブラインド署名された結合されたコンバージョンデータの署名を検証する(316)。たとえば、署名されたインプレッションデータとコンバージョンデータの組合せにブラインド署名するためにVOPRFプロトコルが使用された場合、ブラインド署名されたコンバージョンデータの署名を検証するために、VOPRFプロトコルを使用することができる。アプリケーション112は、同様に、コンバージョンデータのブラインドを解除することができる(318)。たとえば、アプリケーション112は、VOPRFプロトコルを使用してコンバージョンデータのブラインドを解除することができる。次いで、アプリケーション112は、たとえば、コンバージョンデータをクライアントデバイス110においてコンバージョン記録として記憶することによって、ブラインド化されていないコンバージョンデータを記録することができる(320)。アプリケーション112はまた、コンバージョン記録に、ブラインド署名された結合されたコンバージョンデータを記憶することができる。
いくつかの実装形態では、アプリケーション112は、コンバージョンを報告し、コンバージョンの検出時に測定データ要素を送信するために測定データ要素を生成するのではなく、測定データ要素を送信する前にランダムな遅延を追加し、および/またはバッチにおいて測定データ要素を送信し得る。これにより、時間ベースの攻撃を防ぎ、ユーザのプライバシをさらに保護することができる。たとえば、報告を遅らせることによって、エンティティは、報告を傍受して、発生したばかりであることが知られているコンバージョンイベントに報告を関連付けることができなくなる。
図4は、測定データ要素を生成し、測定データ要素を集約システムに提供するための例示的なプロセス400を示す流れ図である。プロセス400は、たとえば、不正検出システム170およびデジタルコンポーネント配信システム150と相互作用するクライアントデバイス110および集約システム180によって実装することができる。プロセス400の動作はまた、非一時的コンピュータ可読媒体に記憶された命令として実装することができ、1つまたは複数のデータ処理装置による命令の実行により、1つまたは複数のデータ処理装置にプロセス400の動作を実行させることができる。
クライアントデバイス110は、コンバージョン記録を取得する(402)。上記のように、コンバージョン記録は、検出されたコンバージョンについて、ブラインド署名された結合されたコンバージョンデータを含むことができる。クライアントデバイス110上で実行されるアプリケーション112は、たとえば、コンバージョンを報告するためにランダムに選択された遅延が満了したとの決定に応答して、またはコンバージョンデータのバッチを送信するとの決定に応答して、コンバージョン記録を取得することができる。
クライアントデバイス110は、コンバージョン記録の少なくとも一部を暗号化する(404)。たとえば、アプリケーション112は、ブラインド署名された結合されたコンバージョンデータを暗号化することができる。いくつかの実装形態では、アプリケーション112は、しきい値暗号化を使用して、たとえば、(t、n)-しきい値暗号化スキームを使用して、ブラインド署名された結合されたコンバージョンデータを暗号化する。しきい値暗号化を使用することによって、受信者が同じインプレッションとコンバージョンのペアについて少なくともt個の測定データ要素を、たとえば少なくともt個のアプリケーション(たとえば、ウェブブラウザまたはネイティブアプリケーションまたはデバイス)から受信しない限り、暗号化されたデータを復号化できない。
いくつかのしきい値暗号化技法では、ディーラは、この例ではアプリケーション112の各インスタンスとなる各プレーヤに、シークレットまたは鍵の共有を提供する。各クライアントデバイス110の各アプリケーション112にシークレットの共有を提供するのではなく、アプリケーション112の各インスタンスは、データを暗号化するグループ鍵を生成するように構成される。各アプリケーション112が同じグループ鍵を生成するために、各アプリケーション112は、同じシードを使用してグループ鍵を生成することができる。このシードは、インプレッションデータおよび/またはコンバージョンデータであってもよく、あるいはインプレッションデータおよび/またはコンバージョンデータに基づくこともできる。所与のインプレッションとコンバージョンのペアについてブラインド署名された結合されたコンバージョンデータは、同じエンティティ(たとえば、不正検出システム170およびデジタルコンポーネント配信システム150)が同じプロトコルおよびシークレット鍵を使用してアプリケーションの各インスタンスのデータにブラインド署名すると仮定すると、同じになり、また、アプリケーション112の各インスタンスは、同じプロトコルを使用してデータをブラインド化する。
一例では、シードは、ブラインド署名された結合されたコンバージョンデータ、またはブラインド署名された結合されたコンバージョンデータと、報告URLまたは報告システム190などの追加データとの組合せであり得る。別の例では、シードは、報告システム190の公開鍵を使用してブラインド署名された結合されたコンバージョンデータを暗号化することによって生成することができ、グループ鍵が再生成された後でも、報告システム190のみがインプレッションデータおよびコンバージョンデータを復号化することができる。たとえば、シードは、暗号化されたブラインド署名された結合されたコンバージョンデータと、報告システム190の公開鍵を使用して暗号化された報告システム190の報告URLの組合せであり得る。
インプレッションデータおよびコンバージョンデータを暗号化するために、異なるタイプの(t、n)しきい値暗号化スキームを使用することができる。たとえば、シークレットの共有(たとえば、インプレッションデータおよびコンバージョンデータ)を配信し、少なくともt個の共有が受信されたときにシークレットを回復するために、多項式または平面を使用する(t、n)-しきい値暗号化スキームを使用することができる。特定の例では、しきい値暗号化スキームは、グループ鍵が平面を備え、測定データが、各平面が交差する点にある平面ベースの暗号化スキーム、たとえばBlakleyのスキームであり得る。他の例では、しきい値暗号化スキームは、中国の剰余定理、プロアクティブなシークレット共有、検証可能なシークレット共有(VSS)、または他の適切なしきい値暗号化技法を使用することができる。
例示的な多項式手法では、アプリケーション112がコンバージョン報告にアクセスするとき、アプリケーション112は、上記のシードを使用して、グループ識別子(たとえば、タグ)およびシード値を生成することができる。たとえば、アプリケーション112は、グループ識別子を生成するために、第1の鍵導出関数(たとえば、一方向暗号化ハッシュ関数)およびシードを使用することができる。このグループ識別子は、インプレッションとコンバージョンのペアを一意に識別する乱数にすることができる。このインプレッションとコンバージョンのペアを報告する各アプリケーション112は、同じ鍵導出関数と同じシードを使用するため、グループ識別子は、インプレッションとコンバージョンのペアを報告する各アプリケーション112で同じになる。以下で説明するように、グループ識別子は、データを集約し、コンバージョンの量を決定するために使用される。
アプリケーション112は、擬似乱数発生器の初期値を生成するために、第2の鍵導出関数(たとえば、一方向暗号化ハッシュ関数)およびシードを使用することができる。次いで、アプリケーション112は、次数t-1の多項式関数の係数を生成するために、初期化された擬似乱数発生器を使用することができる。この例では、多項式関数がグループ鍵として機能する。多項式関数は、A0+A1X1+A2X2+、…AtXtの形式にすることができ、tは最小値、たとえば、しきい値、データの復号化に必要なグループメンバー鍵の数、XiはXのI乗の結果であり、Aiは生成された係数である。
アプリケーション112の各インスタンスは、シークレットの多項式関数上の特定の点を選択するように構成することができる。たとえば、アプリケーション112の各インスタンスは、シークレットの多項式関数上の異なる点を選択するように構成することができる。特定の例では、この点はX=0にあり、シークレットはX=0のY値、つまりA0の値になる。他の点も使用することができる。一実装形態では、アプリケーション112は、インプレッション時にランダムなノンスを選択し、不正検出システム170に、ブラインド署名するか、公開鍵署名を使用して公開検証可能性のためにノンスに署名するように要求し、次いで、署名されたノンスを点のX値として使用することができる。集約システム180は、X値が不正検出システム170によって適切に署名されていないすべての点を無視する。
アプリケーション112は、集約システム180に報告するためのシークレットの共有として多項式関数上の点を選択することができる。シークレットのこの共有は、グループメンバー鍵である。アプリケーション112の各インスタンスが、t個のグループメンバー鍵からシークレットを決定できるように異なる点を選択できるようにするために、アプリケーション112の各インスタンスは、アプリケーション112のインスタンス、またはアプリケーション112のインスタンスが実行されているクライアントデバイス110に関連するデータを使用してその点を選択するように構成することができる。たとえば、アプリケーション112は、アプリケーション112のインスタンスを一意に識別する一意のアプリケーション識別子またはクライアントデバイス110を一意に識別する一意のデバイス識別子を使用して、多項式関数上のその点を選択することができる。特定の例では、アプリケーション112は、第3の鍵導出関数(たとえば、一方向暗号化ハッシュ関数)、一意のアプリケーション識別子または一意のデバイス識別子、および多項式関数上の点を選択するためのシードを使用することができる。任意で、アプリケーション112は、インプレッションおよび/またはコンバージョンが本物であることの検証時に、選択された点のX座標に署名するように(コンバージョンが行われるデジタルコンポーネントプロバイダに代わって)不正検出システム170またはデジタルコンポーネント配信システムを要求することができ、次いで、シークレットの共有を計算するために、署名されたX座標をX座標として選択する。
クライアントデバイス110は、測定データ要素を生成し、測定データ要素を集約システムに送信する(406)。いくつかの実装形態では、測定データ要素は、グループメンバー鍵、(たとえば、アプリケーション112によって選択された多項式上の点の座標)およびグループ識別子(たとえば、タグ)を含む。たとえば、グループ識別子とグループメンバー鍵は、キー/値のペアを表すことができる。
集約システム180は、測定データ要素を受信し、測定データ要素のデータベースを更新する(408)。たとえば、集約システム180は、受信した各測定データ要素をデータベースあるいは別のデータ構造またはデータストレージデバイスに記憶することができる。集約システム180はまた、グループ識別子のために受信されたグループメンバー鍵の数を更新することができる。
集約システム180は、暗号化されたテキストを復号化するために十分なデータが受信されたかどうかを決定する(410)。上記のように、グループ鍵を再生成し、インプレッションデータおよびコンバージョンデータを復号化するためには、少なくともt個の個別のグループメンバー鍵を受信する必要がある。集約システム180は、グループ識別子のグループメンバー鍵の数をしきい値tと比較することができる。
グループ識別子を有するt個未満の測定データ要素が受信された場合、集約システム180は、同じグループ識別子を有する追加の測定データ要素を待ち続けることができる。同じグループ識別子を有する少なくともt個の測定データ要素が受信された場合、集約システム180は、グループメンバー鍵をロードする(412)。
次いで、集約システム180は、シークレットを復号化することができる(414)。上記のように、シークレットは、ブラインド署名された結合されたコンバージョンデータ、ブラインド署名された結合されたコンバージョンデータと追加のデータの組合せ(たとえば、報告システム190の報告URL)、または暗号化されたブラインド署名された結合されたコンバージョンデータの組合せ(報告システムの公開鍵を使用する)および報告システム190の報告URLであり得る。シークレットを復号化するために、集約システム180は、グループメンバー鍵を使用してグループ鍵またはグループ鍵の表現を再生成することができる。たとえば、多項式関数手法がシークレットを暗号化するために使用される場合、集約システム180は、グループ識別子を有する少なくともt個の測定データ要素のグループメンバー鍵によって定義される点を使用して多項式関数を再生成することができる。集約システム190は、多項式関数を再生成するために、これらの点の間を補間することができる。次いで、集約システム190は、値がシークレットである特定の点を識別することができる。
集約システム180は、コンバージョンを報告システム190に報告する(416)。集約システム180は、インプレッションデータおよびコンバージョンデータ(まだ暗号化されている可能性がある)およびコンバージョン数を含むデータを生成し、報告システムに送信することができる。集約システム180は、コンバージョンの数として、インプレッションとコンバージョンのペアに対応するグループ識別子を含む測定データ要素において受信された個別のグループメンバー鍵の数を決定することができる。すなわち、コンバージョンの数は、グループ識別子を含む個別の測定データ要素の数である。
報告されたデータにおけるインプレッションデータおよびコンバージョンデータは、ブラインド署名された結合されたコンバージョンデータ、または報告システム190の公開鍵を使用して暗号化されたこのデータであり得る。たとえば、上記のように、シークレットは、ブラインド署名された結合されたコンバージョンデータと、報告システム190の報告URLとの組合せであり得る。集約システム180は、シークレットを取得した後、報告URLにアクセスし、シークレットの残りの情報を、コンバージョンの量とともに報告システム190に送信することができる。
報告システム190は、暗号化された報告データを生成するために使用された公開鍵に対応する秘密鍵を使用して、暗号化されたブラインド署名された結合されたコンバージョンデータ(暗号化されている場合)を復号化する(418)。報告システム190は、任意で、インプレッションデータおよびコンバージョンデータに関連付けられる署名を検証することができる。ブラインド署名にVOPRFを採用するいくつかの実装形態では、署名検証は、報告システム190が、以前にインプレッションデータにブラインド署名した不正検出システム170に連絡することを要求する。
報告システム190は、不正検出システムによって生成されたインプレッションデータの署名を検証する(420)。たとえば、報告システム190は、不正検出システム170によって生成されたブラインド化されたインプレッションデータのブラインド署名を検証する要求とともに、ブラインド署名された結合されたコンバージョンデータを不正検出システム170に送信することができる。不正検出システム170は、署名を検証し、署名が有効であるかどうかを指定するデータで報告システム190に応答することを試みることができる。
同様に、報告システム190は、ブラインド化されたインプレッションデータとコンバージョンデータの組合せの署名を検証することができる(422)。たとえば、報告システムは、ブラインド化されたインプレッションデータとデジタルコンポーネント配信システム150によって生成されたコンバージョンデータとの組合せのブラインド署名を検証する要求とともに、ブラインド署名された結合されたコンバージョンデータをデジタルコンポーネント配信システム150に送信することができる。デジタルコンポーネント配信システム150は、署名を検証し、署名が有効であるかどうかを指定するデータで報告システム190に応答することを試みることができる。
両方の署名が有効である場合、報告システムは、インプレッションとコンバージョンのペアのコンバージョン数を指定するデータを記憶することができる(424)。報告システム190は、デジタルコンポーネントプロバイダ160に、暗号化を可能にするために十分な数(たとえば、少なくともt個)のコンバージョンが発生した後に、デジタルコンポーネントプロバイダ160によって発行されたデジタルコンポーネントの各インプレッションとコンバージョンのペアのコンバージョン数を指定するデータを提供することができる。
所与のインプレッションとコンバージョンのペアについて少なくともt個の測定データ要素を受信した後、集約システム180は、以前に受信された測定データ要素のデータを使用して、同様の方法で、受信され、インプレッションとコンバージョンのペアのグループ識別子を含む任意の追加の測定データ要素を復号化することができる。このようにして、集約システム180は、インプレッションとコンバージョンのペアのコンバージョン数を更新し続けることができる。
いくつかの実装形態では、コンバージョン数は、複数の次元ごとに決定される。次元は、様々な日付または日付範囲、様々な場所などであり得る。たとえば、デジタルコンポーネントプロバイダ160は、その年の各月のデジタルコンポーネントのコンバージョン数を知りたい場合がある。次元ごとに個別の測定値を設定するために、(t、n)-暗号化スキームにおけるシークレットは、そのコンバージョンの次元の値に基づくことができる。たとえば、多項式技法が使用される場合、シードとタグ(たとえば、グループ識別子)の両方を、次元の値と組み合わせた上記のシード/タグのいずれかにすることができる。特定の例では、シードは、ブラインド署名された結合されたコンバージョンデータと、暗号ハッシュまたは暗号化関数によって任意でコンバージョンされた次元の値との組合せであり得る。このようにして、アプリケーションは、各次元の値ごとに異なる多項式関数と異なるグループ識別子を生成する。
コンバージョンの数はまた、次元の組合せについて決定することができる。この例では、シードは、各次元の値と組み合わせた上記のシードのいずれかにすることができる。特定の例では、シードは、ブラインド署名された結合されたコンバージョンデータと各次元の値の組合せである可能性がある。
上記の技法は、たとえば、組み合わされたコンバージョンデータのプレーンテキスト値を計算した後にアプリケーション112が危険にさらされた場合に、シビル攻撃を防ぐためにさらに適合させることができる。それが危険にさらされた場合、アプリケーション112は、プレーンテキスト値を任意の数の他のアプリケーション112と共有し得、それらはすべて、同じプレーンテキスト値を同じ集約システム180に報告することができ、これは、(t、n)-しきい値暗号化スキームのk-匿名性保護を無効にする。シビル攻撃を防ぐために、正当なインプレッション/コンバージョンの一意性は、図5に示されるプロセスを使用してサポートすることができる。
図5は、コンバージョンデータを報告するための別の例示的なプロセス500を示す流れ図である。プロセス500は、たとえば、図1のクライアントデバイス110などのクライアントデバイスによって実装することができる。プロセス500の動作はまた、非一時的コンピュータ可読媒体に記憶された命令として実装することができ、1つまたは複数のデータ処理装置による命令の実行により、1つまたは複数のデータ処理装置にプロセス500の動作を実行させることができる。
ブラインド署名されたインプレッションデータが取得される(502)。上記のように、デジタルコンポーネントがコンテンツ、たとえばウェブページまたはアプリケーションコンテンツとともに提示される場合、コンテンツを提示するアプリケーションは、デジタルコンポーネントのインプレッションのインプレッションデータを記憶することができる。デジタルコンポーネントの特定の提示のインプレッションデータは、デジタルコンポーネントのランディングページ(たとえば、デジタルコンポーネントによってリンクされているページ)のURLまたはドメイン、デジタルコンポーネントの1つまたは複数の識別子、インプレッションに関連付けられるイベントレベルのデータ、インプレッションデータをクライアントデバイスから削除するタイミングを指定する有効期限、および/あるいはデジタルコンポーネントのコンバージョン報告が送信される報告URLまたはドメインを含むことができる。
インプレッションデータは、ブラインド化されて、不正検出信号とともに図1の不正検出システム170などの別のデバイスまたはシステムに送信することができる。この例では、アプリケーション112は、インプレッションデータをそれ自体でブラインド化するのではなく、報告システム、たとえば図1の報告システム190からフェッチされた公開鍵を使用して、インプレッションデータとクリックされた値(たとえば、ユーザがクリックしたか、そうでなければデジタルコンポーネントと相互作用したかどうか)の組合せを暗号化することができる。次いで、アプリケーション112は、暗号化結果をブラインド化し、ブラインド署名のために、ブラインド暗号化結果を不正検出システム170に送信する。不正検出システム170は、不正検出信号に基づいてインプレッションが有効であるかどうかを決定することができ、有効である場合、不正検出システム170によって秘密裏に維持される第1のインプレッションブラインド署名鍵を使用してブラインド化されたインプレッションデータにブラインド署名する。不正検出システム170は、ブラインド署名されたインプレッションデータをクライアントデバイス110に返すことができる。
ブラインド署名されたインプレッションデータおよびノンスデータが取得される(504)。クライアントデバイス110上で実行されるアプリケーション112は、十分なエントロピ、たとえば、32バイトの乱数を有するノンスをランダムに作成することができる。次に、クライアントデバイス110は、ブラインド化されたインプレッションデータ、クリックされた値、およびノンスの組合せを使用して、ハッシュベースのメッセージ認証コード(HMAC)、たとえば、HMACSHA256メッセージコードを生成することができる。アプリケーション112は、インプレッションノンスメッセージコードにブラインド署名する要求とともに、このインプレッションノンスメッセージコードを不正検出システム170に送信することができる。上記のように、インプレッションが有効である場合、不正検出サーバは、不正検出システム170によって秘密裏に維持される第2のインプレッションブラインド署名鍵を使用して、インプレッションノンスメッセージコードにブラインド署名することができる。不正検出システム170の第2のインプレッションのブラインド署名鍵は、不正検出システム170の第1のブラインド署名鍵とは異なり、インプレッションの署名を取得することができず、それがノンスの署名であると主張し、逆もまた同様である。不正検出システム170は、ブラインド署名されたインプレッションノンスメッセージコードをクライアントデバイス110に返すことができる。
ブラインド署名された結合されたコンバージョンデータが取得される(506)。コンバージョンが発生すると、コンバージョンが発生したと決定したシステム、たとえば、図1のデジタルコンポーネント配信システム150は、コンバージョンデータをアプリケーション112に提供することができる。アプリケーション112は、コンバージョンデータとHMACコード、たとえば、インプレッションデータのHMAC SHA256メッセージコードとの組合せを暗号化することによって、ブラインド化されたコンバージョンデータおよびインプレッションデータを生成することができる。たとえば、クライアントデバイスは、このインプレッションメッセージコードとコンバージョンデータを組み合わせ、図1の報告システム190からフェッチされた公開鍵を使用してこの組合せを暗号化することができる。
次いで、アプリケーション112は、このデータの組合せにブラインド署名する要求とともに、ブラインド署名されたインプレッションデータ、ならびにブラインド化されたコンバージョンデータおよびインプレッションデータをデジタルコンポーネント配信システム150に送信することができる。デジタルコンポーネント配信システム150は、デジタルコンポーネント配信システム150の第1のコンバージョンブラインド署名鍵を使用して、ブラインド署名されたインプレッションデータとブラインド化されたコンバージョンデータおよびインプレッションデータとの組合せにブラインド署名することができる。このブラインド署名されたデータは、この例ではブラインド署名された結合されたコンバージョンデータである。
ブラインド署名されたコンバージョンデータおよびノンスデータが取得される(508)。このノンスは、ブラインド署名されたインプレッションデータおよびノンスデータを取得するために使用されるノンスと同じである可能性がある。アプリケーション112は、ブラインド化されたコンバージョンデータとノンスとの組合せを使用して、HMAC、たとえば、HMACSHA256メッセージコードを生成することができる。クライアントデバイス110は、コンバージョンノンスメッセージコードにブラインド署名する要求とともに、このコンバージョンノンスメッセージコードをデジタルコンポーネント配信システム150に送信することができる。上記のように、コンバージョンが有効である場合、不正検出サーバは、デジタルコンポーネント配信システム150によって秘密裏に維持される第2のコンバージョンブラインド署名鍵を使用して、コンバージョンノンスメッセージコードにブラインド署名することができる。デジタルコンポーネント配信システム150の第2のコンバージョンブラインド署名鍵は、デジタルコンポーネント配信システム150の第1のコンバージョンブラインド署名鍵とは異なり、コンバージョンの署名を取得することができず、それがノンスの署名であると主張する。デジタルコンポーネント配信システム150は、ブラインド署名されたコンバージョンノンスメッセージコードをクライアントデバイス110に返すことができる。
測定データ要素が生成される(510)。この例では、アプリケーション112は、シークレット密の共有を表すグループメンバー鍵(たとえば、インプレッションデータおよびコンバージョンデータ)、グループ識別子、および一意の鍵を含む測定データ要素を生成することができる。
アプリケーション112は、ブラインド署名されたインプレッションノンスメッセージコード、ブラインド署名されたコンバージョンノンスメッセージコード、およびノンスを含む結合されたメッセージを生成することによって、一意の鍵を生成することができる。結合されたメッセージの各部分は、結合されたメッセージのそれぞれのフィールドに含めることができる。次いで、アプリケーション112は、ブラインド署名された結合されたコンバージョンデータを暗号化鍵として使用して結合されたメッセージを暗号化することによって、一意の鍵を生成することができる。
アプリケーション112は、図4のプロセス400を使用してグループメンバー鍵が生成される方法と同様に、しきい値暗号化を使用してグループメンバー鍵を生成することができる。たとえば、グループメンバー鍵は、多項式技法を使用して生成することができ、シードは、ブラインド署名された結合されたコンバージョンデータ、ブラインド署名された結合されたコンバージョンデータと追加データ(たとえば、報告システム190の報告URL)との組合せ、あるいは、暗号化されたブラインド署名された結合されたコンバージョンデータ(報告システムの公開鍵を使用)と報告システム190の報告URLとの組合せであり得る。
アプリケーション112はまた、図4のプロセス400を使用してグループ識別子が生成される方法と同様に、グループ識別子を生成することができる。たとえば、アプリケーション112は、グループ識別子を生成するために、鍵導出関数(たとえば、一方向暗号化ハッシュ関数)およびシードを使用することができる。
アプリケーション112は、グループメンバー鍵、一意の鍵、およびグループ識別子を含む測定データ要素を送信することができる(512)。たとえば、アプリケーション112は、測定データ要素を、図1の集約システム180などの集約システムに送信することができる。アプリケーションは、時間ベースの攻撃を防ぐために、コンバージョンが検出された後、ランダムに選択された(または、疑似ランダムな)期間が経過した後に測定データ要素を送信することができる。
図6は、インプレッションデータを復号化するための例示的なプロセス600を示す流れ図である。プロセス600は、たとえば、図1の集約システム180および/または報告システム190などの1つまたは複数のサーバによって実装することができる。プロセス600の動作はまた、非一時的コンピュータ可読媒体に記憶された命令として実装することができ、1つまたは複数のデータ処理装置による命令の実行により、1つまたは複数のデータ処理装置にプロセス600の動作を実行させることができる。
測定データ要素は、クライアントデバイスから受信される(602)。たとえば、クライアントデバイス110上で実行されるアプリケーション112、たとえば、ウェブブラウザまたはネイティブアプリケーションは、検出されたインプレッションおよびコンバージョン(たとえば、インプレッションとコンバージョンのペア)に応答して、測定要素を生成および送信することができる。いくつかの実装形態では、図4を参照して上で説明したように、測定データ要素は、グループメンバー鍵およびグループ識別子を含むことができる。いくつかの実装形態では、図5を参照して上で説明したように、測定データ要素は、グループメンバー鍵、グループ識別子、および一意の鍵を含むことができる。どちらの実装形態においても、グループメンバー鍵は、インプレッションのインプレッションデータとしきい値tに基づくシードを使用した(t、n)-しきい値暗号化技法を使用して生成することができる。
インプレッションとコンバージョンのペアについて少なくともt個の測定データ要素が受信されたかどうかの決定が行われる(604)。たとえば、受信され、インプレッションとコンバージョンのペアのグループ識別子を含む個別の測定データ要素の数をカウントすることができる。このカウントは、しきい値tと比較することができる。
インプレッションとコンバージョンのペアのしきい値t未満の個別の測定データ要素が受信された場合、プロセス600は、シークレット(たとえば、インプレッションデータおよびコンバージョンデータ)は、インプレッションとコンバージョンのペアの少なくともt個の測定データ要素が受信されるまで復号化することができないため、動作602に戻って、インプレッションとコンバージョンのペアの追加の測定データ要素を待つことができる。
インプレッションとコンバージョンのペアの少なくともしきい値t個の個別の測定データ要素が受信された場合、各測定データ要素の暗号化されたインプレッションデータが復号化される(606)。測定データ要素がグループメンバー鍵およびグループ識別子を含む実装形態においては、暗号化されたインプレッションデータは、図4を参照して上で説明したように復号化することができる。
測定データ要素がグループメンバー鍵、グループ識別子、および一意の鍵を含む実装形態では、図4を参照して上記で説明したように、ブラインド署名された結合されたコンバージョンデータおよび報告URLは、グループ鍵を再生成することによって回復することができる。回復されたコンバージョンデータと回復されたインプレッションデータは、データをブラインド化するために使用されたプロトコルを使用してブラインドを解除することができる。
ブラインド署名されたインプレッションノンスメッセージコード、ブラインド署名されたコンバージョンノンスメッセージコード、およびノンスを含む結合されたメッセージは、ブラインド署名された結合されたコンバージョンデータを使用して一意の鍵を復号化することによって回復することができる。次いで、ブラインド署名されたインプレッションノンスメッセージコードおよびブラインド署名されたコンバージョンノンスメッセージコードを、ブラインド署名されたインプレッションデータ、ブラインド署名されたコンバージョンデータおよびインプレッションデータ、ならびにノンスを使用して検証することができる。たとえば、集約システム180は、回復されたインプレッションデータおよびノンスを使用してブラインド署名されたインプレッションノンスメッセージコード(たとえば、HMACSHA256メッセージコード)を計算し、これを回復されたブラインド署名されたインプレッションノンスメッセージコードと比較することができる。同様に、集約システム180は、回復されたインプレッションデータおよびコンバージョンデータならびにノンスを使用して、ブラインド署名されたコンバージョンノンスメッセージコード(たとえば、HMACSHA256メッセージコード)を計算し、これを、回復されたブラインド署名されたコンバージョンノンスメッセージコードと比較することができる。両方が一致する場合、回復された両方のコードが検証される。
次いで、不正検出システム170は、インプレッションデータのブラインド署名と、インプレッションデータおよびノンスデータのブラインド署名を検証することができる。同様に、デジタルコンポーネント配信システム150は、ブラインド署名されたコンバージョンデータのブラインド署名、ならびにブラインド署名されたコンバージョンおよびノンスデータのブラインド署名を検証することができる。
次いで、k-匿名性を確保するために、インプレッションとコンバージョンのペアの測定データ要素における一意のノンスの数を決定することができる。次に、k-匿名性を確保するために、インプレッションとコンバージョンのペアの測定データ要素における一意のノンスの数を決定することができる。一意のノンスの数は、インプレッション/コンバージョンイベントを報告したブラウザ(または、アプリケーション)の数である。一意のノンスの数がkより大きい場合、報告システムは、少なくともk個のブラウザがイベントを確認したことを認識して、コンバージョン数をデジタルコンポーネント配信システムに報告する。一意のノンスの数がk未満の場合、報告システムはコンバージョン数を報告しないため、k-匿名性が適用される。危険にさらされたブラウザは、上記の検証を回避する方法で追加のノンスを偽造することはできない。
上記のすべての検証が成功した場合、インプレッションとコンバージョンは有効であり、シビル攻撃の一部ではない。検証の各々が成功したとの決定に応答して、ブラインド署名されたインプレッションデータ、ブラインド署名されたコンバージョンデータおよびインプレッションデータ、ならびに一意のノンスの数を、報告URLを使用して報告システム190に送信することができる。次いで、報告システム190は、インプレッションデータを暗号化するために使用された公開鍵に対応する秘密鍵を使用して、インプレッションデータを回復することができる。報告システム190は、ブラインド化されたコンバージョンデータおよびインプレッションデータを暗号化するために使用された秘密鍵を使用してブラインド署名されたコンバージョンデータおよびインプレッションデータを復号化することによって、同様にコンバージョンデータを回復することができる。
図7は、上記の動作を実行するために使用することができる例示的なコンピュータシステム700のブロック図である。システム700は、プロセッサ710、メモリ720、ストレージデバイス730、および入力/出力デバイス740を含む。コンポーネント710、720、730、および740のそれぞれは、たとえば、システムバス750を使用して相互接続することができる。プロセッサ710は、システム700内で実行するための命令を処理することができる。いくつかの実装形態では、プロセッサ710はシングルスレッドプロセッサである。別の実装形態では、プロセッサ710はマルチスレッドプロセッサである。プロセッサ710は、メモリ720またはストレージデバイス730に記憶された命令を処理することができる。
メモリ720は、システム700内に情報を記憶する。一実装形態では、メモリ720は、コンピュータ可読媒体である。いくつかの実装形態では、メモリ720は揮発性メモリユニットである。別の実装形態では、メモリ720は、不揮発性メモリユニットである。
ストレージデバイス730は、システム700に大容量ストレージを提供することができる。いくつかの実装形態では、ストレージデバイス730は、コンピュータ可読媒体である。様々な異なる実装形態では、ストレージデバイス730は、たとえば、ハードディスクデバイス、光ディスクデバイス、複数のコンピューティングデバイス(たとえば、クラウドストレージデバイスデバイス)によってネットワーク上で共有されるストレージデバイス、または他の何らかの大容量ストレージデバイスを含むことができる。
入力/出力デバイス740は、システム700の入力/出力動作を提供する。いくつかの実装形態では、入力/出力デバイス740は、1つまたは複数のネットワークインターフェースデバイス、たとえば、イーサネットカード、シリアル通信デバイス、たとえば、RS-232ポート、および/またはワイヤレスインターフェースデバイス、たとえば、802.11カードを含むことができる。別の実装形態では、入力/出力デバイスは、入力データを受信し、出力データを外部デバイス760、たとえば、キーボード、プリンタ、およびディスプレイデバイスに送信するように構成されたドライバデバイスを含むことができる。しかしながら、モバイルコンピューティングデバイス、モバイル通信デバイス、セットトップボックステレビクライアントデバイスなどの、他の実装形態も使用することができる。
例示的な処理システムが図7に記載されているが、本明細書に記載されている主題および機能動作の実装形態は、他のタイプのデジタル電子回路において、あるいはコンピュータソフトウェア、ファームウェア、またはハードウェアにおいて実装することができ、これには、本明細書に開示されている構造とそれらの構造的同等物、またはそれらの1つまたは複数の組合せが含まれる。
本明細書に記載の主題および動作の実施形態は、デジタル電子回路、または本明細書に開示される構造およびそれらの構造的同等物を含むコンピュータソフトウェア、ファームウェア、またはハードウェアにおいて、あるいはそれらの1つまたは複数の組合せにおいて実装することができる。本明細書に記載の主題の実施形態は、1つまたは複数のコンピュータプログラム、すなわち、データ処理装置によって実行するために、またはその動作を制御するために、コンピュータストレージ媒体(または、媒体)上に符号化されたコンピュータプログラム命令の1つまたは複数のモジュールとして実装することができる。あるいは、またはさらに、プログラム命令は、データ処理装置による実行のために適切な受信機装置に送信するための情報を符号化するために生成される、人工的に生成された伝搬信号、たとえば、機械生成の電気、光、または電磁信号に符号化することができる。コンピュータストレージ媒体は、コンピュータ可読ストレージデバイス、コンピュータ可読ストレージ基板、ランダムまたはシリアルアクセスメモリアレイまたはデバイス、あるいはそれらの1つまたは複数の組合せであり得るか、またはそれらに含まれ得る。さらに、コンピュータストレージ媒体は伝搬信号ではないが、コンピュータストレージ媒体は、人工的に生成された伝搬信号に符号化されたコンピュータプログラム命令のソースまたは宛先であり得る。コンピュータストレージ媒体はまた、1つまたは複数の別個の物理的コンポーネントまたは媒体(たとえば、複数のCD、ディスク、または他のストレージデバイス)であり得るか、またはそれらに含まれ得る。
本明細書に記載されている動作は、1つまたは複数のコンピュータ可読ストレージデバイスに記憶されているか、または他のソースから受信されたデータに対してデータ処理装置によって実行される動作として実装することができる。
「データ処理装置」という用語は、たとえば、プログラム可能なプロセッサ、コンピュータ、チップ上のシステム、または複数のもの、あるいは前述の組合せを含む、データを処理するためのあらゆる種類の装置、デバイス、および機械を包含する。装置は、FPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)などの専用論理回路を含むことができる。装置はまた、ハードウェアに加えて、問題のコンピュータプログラムの実行環境を作成するコード、たとえば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、クロスプラットフォームランタイム環境、仮想マシン、あるいはそれらの1つまたは複数の組合せを構成するコードを含むことができる。装置および実行環境は、ウェブサービス、分散コンピューティング、およびグリッドコンピューティングインフラストラクチャなどの、様々な異なるコンピューティングモデルインフラストラクチャを実現することができる。
コンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、スクリプト、またはコードとしても知られる)は、コンパイラ型言語またはインタープリタ型言語、宣言型言語または手続き型言語を含む、あらゆる形式のプログラミング言語で記述することができ、スタンドアロンプログラムとして、あるいはモジュール、コンポーネント、サブルーチン、オブジェクト、またはコンピューティング環境における使用に適したその他のユニットとしてなど、任意の形式で展開することができる。コンピュータプログラムは、ファイルシステム内のファイルに対応する場合があるが、対応する必要はない。プログラムは、他のプログラムまたはデータ(たとえば、マークアップ言語ドキュメントに記憶された1つまたは複数のスクリプト)を保持するファイルの一部に、問題のプログラム専用の単一ファイルに、または複数の調整されたファイル(たとえば、1つまたは複数のモジュール、サブプログラム、あるいはコードの一部を記憶するファイル)に記憶することができる。コンピュータプログラムは、1台のコンピュータ、または1つのサイトに配置されているか、複数のサイトに分散され、通信ネットワークによって相互接続されている複数のコンピュータで実行されるように展開することができる。
本明細書に記載のプロセスおよび論理フローは、入力データを操作して出力を生成することによってアクションを実行するために、1つまたは複数のコンピュータプログラムを実行する1つまたは複数のプログラマブルプロセッサによって実行することができる。プロセスおよび論理フローはまた、専用論理回路、たとえば、FPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)によって実行することができ、装置はそれらとして実装することもできる。
コンピュータプログラムの実行に適したプロセッサは、例として、汎用マイクロプロセッサと専用マイクロプロセッサの両方を含む。一般に、プロセッサは、読取り専用メモリまたはランダムアクセスメモリ、あるいはその両方から命令とデータを受信する。コンピュータの本質的な要素は、命令に従ってアクションを実行するためのプロセッサと、命令およびデータを記憶するための1つまたは複数のメモリデバイスである。一般に、コンピュータはまた、データを記憶するための1つまたは複数の大容量ストレージデバイス、たとえば、磁気、光磁気ディスク、または光ディスクを含むか、またはそこからデータを受信するか、そこにデータを転送するか、あるいはその両方のために動作可能に結合される。しかしながら、コンピュータにそのようなデバイスが必要なわけではない。さらに、コンピュータは、別のデバイス、たとえば、ほんの数例を挙げると、モバイル電話、携帯情報端末(PDA)、モバイルオーディオまたはビデオプレーヤ、ゲーム機、全地球測位システム(GPS)受信機、または携帯型ストレージデバイス(たとえば、ユニバーサルシリアルバス(USB)フラッシュドライブ)に埋め込むことができる。コンピュータプログラム命令およびデータを記憶するために適したデバイスは、例として、半導体メモリデバイス、たとえば、EPROM、EEPROM、およびフラッシュメモリデバイス、磁気ディスク、たとえば、内蔵ハードディスクまたはリムーバブルディスク、光磁気ディスク、ならびにCDROMおよびDVD-ROMディスクを含む、すべての形態の不揮発性メモリ、メディア、およびメモリデバイスを含む。プロセッサとメモリは、専用論理回路によって補完することもでき、またはそこに組み込むことができる。
ユーザとの相互作用を提供するために、本明細書に記載の主題の実施形態は、ユーザに情報を表示するためのディスプレイデバイス、たとえば、CRT(陰極線管)またはLDC(液晶ディスプレイ)モニタと、キーボードおよびポインティングデバイス、たとえばユーザがコンピュータに入力を提供することができるマウスまたはトラックボールなどのポインティングデバイスとを有するコンピュータ上に実装することができる。ユーザとの相互作用を提供するために、他の種類のデバイスを使用することができる。たとえば、ユーザに提供されるフィードバックは、たとえば、視覚的フィードバック、聴覚的フィードバック、または触覚的フィードバックなど、任意の形式の感覚的フィードバックであり得、ユーザからの入力は、音響、音声、または触覚入力を含む任意の形式で受信することができる。さらに、コンピュータは、ユーザによって使用されるデバイスとの間でドキュメントを送受信することによって、たとえば、ウェブブラウザから受信した要求に応じて、ユーザのクライアントデバイス上のウェブブラウザにウェブページを送信することによって、ユーザと相互作用することができる。
本明細書に記載されている主題の実施形態は、たとえばデータサーバとしてのバックエンドコンポーネントを含むか、またはアプリケーションサーバなどのミドルウェアコンポーネントを含むか、またはたとえば、ユーザが本仕様書に記載されている主題の実装形態と相互作用することができるグラフィカルユーザインターフェースまたはウェブブラウザを有するクライアントコンピュータなどのフロントエンドコンポーネントを含むコンピューティングシステム、あるいは1つまたは複数のそのようなバックエンドコンポーネント、ミドルウェアコンポーネント、またはフロントエンドコンポーネントの任意の組合せに実装することができる。システムのコンポーネントは、通信ネットワークなどの、デジタルデータ通信の任意の形式または媒体によって相互接続することができる。通信ネットワークの例は、ローカルエリアネットワーク(「LAN」)およびワイドエリアネットワーク(「WAN」)、インターネットワーク(たとえば、インターネット)、ならびにピアツーピアネットワーク(たとえば、アドホックピアピアツーピアネットワーク)を含む。
コンピューティングシステムは、クライアントとサーバを含むことができる。クライアントとサーバは通常、互いにリモートであり、通常は通信ネットワークを通じて相互作用する。クライアントとサーバの関係は、それぞれのコンピュータで実行され、相互にクライアントとサーバの関係を有するコンピュータプログラムによって発生する。いくつかの実施形態では、サーバは、データ(たとえば、HTMLページ)をクライアントデバイスに送信する(たとえば、クライアントデバイスと相互作用するユーザにデータを表示し、またそこからユーザ入力を受信する目的で)。クライアントデバイスにおいて生成されたデータ(たとえば、ユーザの動作の結果)は、サーバにおいてクライアントデバイスから受信することができる。
本明細書は多くの特定の実装形態の詳細を含むが、これらは、発明の範囲または請求され得るものの制限として解釈されるべきではなく、むしろ特定の発明の特定の実施形態に固有の特徴の説明として解釈されるべきである。別個の実施形態の文脈において本明細書に記載されている特定の特徴はまた、単一の実施形態において組み合わせて実装することができる。逆に、単一の実施形態の文脈において説明される様々な特徴はまた、複数の実施形態において別々に、または任意の適切なサブコンビネーションにおいて実装することができる。さらに、特徴は、特定の組合せで作用するものとして上記に記載され、最初にそのように主張されていても、主張された組合せからの1つまたは複数の特徴は、場合によっては組合せから切り出され得、主張された組合せは、サブコンビネーションまたはサブコンビネーションの変形に向けられ得る。
同様に、動作は特定の順序で図面に描かれているが、これは、望ましい結果を達成するために、そのような動作が示された特定の順序または順番に実行されること、あるいは図示されたすべての動作が実行されることを必要とするものとして理解されるべきではない。特定の状況では、マルチタスクと並列処理が有利な場合がある。さらに、上記の実施形態における様々なシステムコンポーネントの分離は、すべての実施形態においてそのような分離を必要とするものとして理解されるべきではなく、説明されたプログラムコンポーネントおよびシステムは、一般に、単一のソフトウェア製品に一緒に統合するか、または複数のソフトウェア製品にパッケージ化することができることが理解されるべきである。
したがって、主題の特定の実施形態が説明されてきた。他の実施形態は、以下の特許請求の範囲内にある。場合によっては、特許請求の範囲に記載されたアクションは、異なる順序で実行され、依然として望ましい結果を達成することができる。さらに、添付の図面に示されているプロセスは、望ましい結果を達成するために、示されている特定の順序または順番を必ずしも必要としない。特定の実装形態では、マルチタスクと並列処理が有利な場合がある。
100 環境
105 データ通信ネットワーク
110 クライアントデバイス
112 アプリケーション
114 インプレッションデータ
116 コンバージョンデータ
130 発行者
140 ウェブサイト
145 リソース
150 デジタルコンポーネント配信システム
157 デジタルコンポーネントパートナ
160 デジタルコンポーネントプロバイダ
170 不正検出システム
180 集約システム
190 報告システム
200 プロセス
300 プロセス
400 プロセス
500 プロセス
600 プロセス
700 コンピュータシステム
710 プロセッサ
720 メモリ
730 ストレージデバイス
740 入力/出力デバイス
750 システムバス
760 外部デバイス

Claims (13)

  1. 複数のクライアントデバイスの各々から、それぞれのグループメンバー鍵、およびデジタルコンポーネントを表示した結果としての所与のコンバージョンのグループ識別子を含む測定データ要素を受信するステップであって、各クライアントデバイスにおいて実行されるアプリケーションが、
    インプレッションデータまたは前記コンバージョン用のコンバージョンデータの1つまたは複数を含むネットワークデータに少なくとも基づいて、前記ネットワークデータを暗号化するためのシークレットを定義するグループ鍵を生成することであって、各グループメンバー鍵が、前記シークレットのそれぞれの共有を備える、ことと、
    前記アプリケーションに関連するデータに基づいて、前記それぞれのグループメンバー鍵を生成することであって、各クライアントデバイスが、前記シークレットの異なる共有を含む異なるグループメンバー鍵を生成する、ことと
    を行うために、しきい値暗号化スキームを使用する、ステップと、
    前記グループ識別子を有する少なくともしきい値数の測定データ要素が受信されたことを決定するステップと、
    同じグループ識別子を有する少なくとも前記しきい値数の測定データ要素が受信されたとの決定に応答して、前記受信した測定データ要素における前記グループメンバー鍵を使用して前記ネットワークデータを復号化するステップと
    を備える、コンピュータ実装方法。
  2. 各アプリケーションが、前記インプレッションデータに関連するコンバージョンの発生に応答して、前記測定データ要素を生成および送信し、前記グループ識別子を含む受信されたデータ要素の数に基づいて、前記デジタルコンポーネントのコンバージョンの数を決定するステップをさらに備える、請求項1に記載の方法。
  3. 前記グループ鍵を生成するステップが、ブラインド署名されたインプレッションデータに基づいて前記グループ鍵を生成するステップを備える、請求項1または2のいずれか一項に記載の方法。
  4. 前記ブラインド署名されたインプレッションデータが、
    前記インプレッションが有効であると決定した第1のシステムおよび前記コンバージョンを登録することを決定した第2のシステムによって署名されたブラインド化されたインプレッションデータであって、前記インプレッションデータをブラインド化することによって生成される、前記ブラインド化されたインプレッションデータと、
    前記第2のシステムによって署名されたコンバージョンデータと
    を備える、ブラインド署名された結合されたコンバージョンデータを備える、請求項3に記載の方法。
  5. 前記グループ鍵を生成する前記ステップが、前記ブラインド署名された結合されたコンバージョンデータと、前記デジタルコンポーネントのコンバージョンデータが報告される報告システムのネットワークアドレスとの組合せを使用して前記グループ鍵を生成するステップを備える、請求項4に記載の方法。
  6. 前記ブラインド署名された結合されたコンバージョンデータが、前記報告システムの公開鍵を使用して暗号化される、請求項5に記載の方法。
  7. 前記アプリケーションに関連する前記データが、前記アプリケーションの一意の識別子を備える、請求項1から6のいずれか一項に記載の方法。
  8. 前記しきい値暗号化スキームが、多項式ベースのしきい値暗号化スキームを備え、各クライアントデバイスにおいて実行される前記アプリケーションが、
    少なくとも前記インプレッションデータを備えるシードに基づいて、前記グループ鍵として多項式関数を生成することと、
    前記シークレットに対応する値を有するように前記多項式関数上の同じ点を選択することと、
    前記それぞれのグループメンバー鍵として、前記アプリケーションに関連する前記データを使用して、同じ点とは異なる前記多項式関数上の第2の点を選択することと
    を行う、請求項1から7のいずれか一項に記載の方法。
  9. 前記受信した測定データ要素における前記グループメンバー鍵を使用して前記インプレッションデータを復号化するステップが、
    前記第2の点を使用して前記多項式関数を再生成するステップと、
    前記再生成された多項式関数上の同じ点を識別するステップと
    を備える、請求項8に記載の方法。
  10. 前記しきい値暗号化スキームが、中国の剰余定理ベースのスキーム、プロアクティブなシークレット共有、または検証可能なシークレット共有のいずれかを備える、請求項1から9のいずれか一項に記載の方法。
  11. コンピュータによって実行されると、前記コンピュータに、請求項1から10のいずれか一項に記載の方法の前記ステップを実行させる命令を備える、1つまたは複数のコンピュータ可読ストレージ媒体。
  12. コンピュータによって実行されると、前記コンピュータに、請求項1から10のいずれか一項に記載の方法の前記ステップを実行させる命令を備える、コンピュータプログラム。
  13. 請求項11に記載の1つまたは複数のプロセッサおよび1つまたは複数のコンピュータ可読ストレージ媒体を有するデータ処理システムを備える、不正を防止するためのシステムであって、前記1つまたは複数のプロセッサが、請求項1から10のいずれか一項に記載の前記ステップを実行するように構成される、システム。
JP2021540867A 2020-01-19 2020-12-11 集約されたネットワーク測定における不正の防止 Active JP7157258B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
IL272126 2020-01-19
IL272126A IL272126A (en) 2020-01-19 2020-01-19 Prevention of fraud in clustered network measurements
PCT/US2020/064498 WO2021145988A1 (en) 2020-01-19 2020-12-11 Preventing fraud in aggregated network measurements

Publications (2)

Publication Number Publication Date
JP2022532815A JP2022532815A (ja) 2022-07-20
JP7157258B2 true JP7157258B2 (ja) 2022-10-19

Family

ID=76864585

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021540867A Active JP7157258B2 (ja) 2020-01-19 2020-12-11 集約されたネットワーク測定における不正の防止

Country Status (7)

Country Link
US (2) US11736459B2 (ja)
EP (1) EP3895368A1 (ja)
JP (1) JP7157258B2 (ja)
KR (1) KR102661484B1 (ja)
CN (1) CN113439414A (ja)
IL (1) IL272126A (ja)
WO (1) WO2021145988A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023048711A1 (en) * 2021-09-22 2023-03-30 Visa International Service Association Threshold secret share generation for distributed symmetric cryptography

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050021479A1 (en) 2001-12-12 2005-01-27 Jorba Andreu Riera Secure remote electronic voting system and cryptographic protocols and computer programs employed
US20050240591A1 (en) 2004-04-21 2005-10-27 Carla Marceau Secure peer-to-peer object storage system
US20140095297A1 (en) 2012-10-01 2014-04-03 Dstillery, Inc. Systems, methods, and media for mobile advertising conversation attribution
JP2015517163A (ja) 2012-04-27 2015-06-18 グーグル・インコーポレーテッド 複数のデバイスにわたるプライバシー管理
US9641332B1 (en) 2013-01-30 2017-05-02 Google Inc. Privacy-preserving measurements of a campaign

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9015489B2 (en) * 2010-04-07 2015-04-21 Microsoft Technology Licensing, Llc Securing passwords against dictionary attacks
US9275237B2 (en) * 2013-12-09 2016-03-01 Palo Alto Research Center Incorporated Method and apparatus for privacy and trust enhancing sharing of data for collaborative analytics
CN106936787A (zh) 2015-12-31 2017-07-07 金雅拓股份有限公司 用于保护在两个不同的加密环境中使用加密密钥的方法
KR101950073B1 (ko) * 2016-09-01 2019-02-19 명지대학교 산학협력단 비밀분산을 이용한 보안 및 익명 서비스 제공 시스템 및 방법
EP3419211B1 (en) * 2017-06-23 2022-03-30 Flytxt B.V. Privacy preserving computation protocol for data analytics
CN107659401B (zh) * 2017-10-09 2019-08-30 华中科技大学 一种相似性感知的安全数据去重加密方法
CN110601822A (zh) * 2019-08-20 2019-12-20 国家电网有限公司 一种基于量子保密通信技术的加密盲签名方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050021479A1 (en) 2001-12-12 2005-01-27 Jorba Andreu Riera Secure remote electronic voting system and cryptographic protocols and computer programs employed
US20050240591A1 (en) 2004-04-21 2005-10-27 Carla Marceau Secure peer-to-peer object storage system
JP2015517163A (ja) 2012-04-27 2015-06-18 グーグル・インコーポレーテッド 複数のデバイスにわたるプライバシー管理
US20140095297A1 (en) 2012-10-01 2014-04-03 Dstillery, Inc. Systems, methods, and media for mobile advertising conversation attribution
US9641332B1 (en) 2013-01-30 2017-05-02 Google Inc. Privacy-preserving measurements of a campaign

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
LIU, D. et al.,Towards Private and Efficient Ad Impression Aggregation in Mobile Advertising,2019 IEEE International Conference on Communicaitons (ICC),2019年05月,pp.1-6

Also Published As

Publication number Publication date
CN113439414A (zh) 2021-09-24
IL272126A (en) 2021-07-29
US20230421544A1 (en) 2023-12-28
WO2021145988A1 (en) 2021-07-22
EP3895368A1 (en) 2021-10-20
US11736459B2 (en) 2023-08-22
KR20210097786A (ko) 2021-08-09
JP2022532815A (ja) 2022-07-20
KR102661484B1 (ko) 2024-04-26
US20220353251A1 (en) 2022-11-03

Similar Documents

Publication Publication Date Title
US20230050222A1 (en) Cryptographically secure request verification
US20220300643A1 (en) Cryptographically secure data protection
JP7201848B2 (ja) 時間データの取得または操作を防止しながらネットワークデータのシーケンスを生成すること
JP7155437B2 (ja) 暗号化されたネットワーク値の集約
JP7399236B2 (ja) 複数の集約サーバを使用してデータ操作を防止すること
US11949688B2 (en) Securing browser cookies
US20230421544A1 (en) Preventing fraud in aggregated network measurements
US11863690B2 (en) Preventing data manipulation and protecting user privacy in telecommunication network measurements

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210914

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210914

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20220912

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20221006

R150 Certificate of patent or registration of utility model

Ref document number: 7157258

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150