CN116938449A - 防止欺诈的计算机实现的方法、存储介质、设备及系统 - Google Patents

防止欺诈的计算机实现的方法、存储介质、设备及系统 Download PDF

Info

Publication number
CN116938449A
CN116938449A CN202310919717.5A CN202310919717A CN116938449A CN 116938449 A CN116938449 A CN 116938449A CN 202310919717 A CN202310919717 A CN 202310919717A CN 116938449 A CN116938449 A CN 116938449A
Authority
CN
China
Prior art keywords
data
encrypted
conversion
presentation
aggregation server
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.)
Pending
Application number
CN202310919717.5A
Other languages
English (en)
Inventor
G·王
M·M·M·扬
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 CN116938449A publication Critical patent/CN116938449A/zh
Pending legal-status Critical Current

Links

Classifications

    • 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/0825Key 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) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
    • 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/0866Generation of secret information including derivation or calculation of cryptographic keys or passwords involving user or device identifiers, e.g. serial number, physical or biometrical information, DNA, hand-signature or measurable physical characteristics
    • 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
    • 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/606Protecting data by securing the transmission between two devices or processes
    • G06F21/608Secure printing
    • 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
    • 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/008Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving homomorphic encryption
    • 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/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
    • 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/42Anonymization, e.g. involving pseudonyms
    • 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/46Secure multiparty computation, e.g. millionaire problem

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Medical Informatics (AREA)
  • Databases & Information Systems (AREA)
  • Storage Device Security (AREA)

Abstract

方法、系统和装置,包括用于确定网络测量的方法。在一些方面,一种方法包括由第一聚合服务器并且从多个客户端设备中的每个客户端设备接收加密的展示数据。第二聚合服务器从所述多个客户端设备的至少一部分中的每个客户端设备接收转换数据,对于由客户端设备记录的每个转换,转换数据包括加密的转换值数据。第一聚合服务器和第二聚合服务器执行多方计算过程以对加密的展示数据和加密的转换数据进行解密。

Description

防止欺诈的计算机实现的方法、存储介质、设备及系统
本申请是国际申请日为2020年12月14日、中国申请号为202080009404.0、发明名称为“防止欺诈的计算机实现的方法、存储介质、设备及系统”的发明专利申请的分案申请。
背景技术
客户端设备通过诸如互联网之类的公共网络传输数据。这些通信可以被预期接收者以外的实体拦截和/或更改。此外,实体可以伪造网络身份并发送似乎源自这些伪造网络身份的数据。这种伪造的示例是Sybil攻击,其中实体创建网络身份以破坏对等网络的声誉系统。
发明内容
本说明书描述了与以防止欺诈和保护用户隐私的方式确定网络测量相关的技术。
一般而言,本说明书中描述的主题的一个创新方面可以在方法中实施,该方法包括由第一聚合服务器并且从多个客户端设备中的每一个接收展示数据,该展示数据对于由客户端设备记录的数字组件的每个展示包括(i)基于客户端设备或客户端设备上发生展示的应用的第一唯一标识符的第一联接密钥,以及(ii)已使用第一聚合服务器的第一公钥和不同于第一聚合服务器的第二聚合服务器的第二公钥加密的加密的展示数据;由第二聚合服务器并且从多个客户端设备的至少一部分中的每一个接收转换数据,该转换数据对于由客户端设备记录的每个转换包括(i)基于客户端设备或客户端设备上发生转换的应用的第二唯一标识符的第二联接密钥,以及(ii)包括已使用第一加密密钥和第二加密密钥加密的加密的转换数据的第二值,以及(iii)加密的转换值数据;由第一聚合服务器和第二聚合服务器执行多方计算过程以对加密的展示数据和加密的转换数据进行解密,包括:基于第一密钥和第二密钥识别加密的转换数据和对应的加密的展示数据的对;并且使用与第一公钥对应的第一私钥和与第二公钥对应的第二私钥在多个阶段中为每对加密的展示数据和转换数据解密展示数据和转换数据,其中每个阶段包括:第一聚合服务器或第二聚合服务器之一对每对加密的转换数据和对应的加密的展示数据的加密的展示数据或加密的转换数据之一进行解密,并且将结果数据发送到第一聚合服务器或第二聚合服务器中的另一个;并且将解密的展示数据的每个部分和解密的转换数据的每个部分发送到相应的报告系统。这一方面的其它实施方式包括对应的装置、系统和计算机程序,其被配置为执行编码在计算机存储设备上的方法的各方面。有利地,这提供了一种用于将转换数据归因于展示数据同时维持用户隐私并因此提供更安全的系统/方法的手段。如本文所述,转换数据与用户与数字组件的交互对应,而展示数据与向用户提供数字组件对应。因此,通过将转换归因于对应的展示来协调展示和转换数据有利于监视用户与提供给用户的数字组件的交互。在监视此类交互时,提供维护用户隐私的安全系统常常是重要的,使得用户无法基于转换或展示数据就能够被识别或跟踪。所公开的技术通过在协调展示和转换数据时使用户隐私能够得到维护来提供技术效果,并且还提供在协调展示和转换数据时防止欺诈活动的技术效果。具体而言,上述加密技术防止第三方拦截敏感的展示或转换数据,这些数据会将该方引回用户。此外,这些加密技术还防止上述方法中涉及的所有实体了解关于用户的信息(例如,通过匹配针对特定用户的展示和转换数据),从而防止基于展示或转换数据来跟踪用户。例如,如上所述,展示数据和转换数据各自已使用第一聚合服务器的第一公钥和第二聚合服务器的第二公钥进行双重加密。这个特定特征用于提高安全性并保护用户隐私,因为加密的展示数据和转换数据要求两个聚合服务器进行解密(即,使用它们各自的私钥)。以这种方式,单独一个服务器(或拦截方)无法获取明文展示或转换数据,从而提高安全性。因此,所公开的技术解决了提供用于监视用户与数字组件的交互的安全系统的技术问题,这使得能够维护用户隐私。
在监视用户与数字组件的交互时以及在协调展示和转换数据时,防止欺诈(例如,模仿与数字组件的虚假用户交互)常常也是重要的。使用多个聚合服务器形成多方计算(MPC)使得每个服务器能够针对有欺诈活动的迹象检查另一个服务器(例如,如果服务器之一受到损害或与其它实体共谋),并防止测量中的欺诈。因此,通过所公开的在协调展示和转换数据时防止欺诈活动、同时维护用户隐私的技术启用进一步的技术效果。
此外,所公开的技术提供了启用更大灵活性以监视用户与数字组件的交互的进一步技术效果。具体而言,使用基于客户端设备或应用的唯一标识符的上述联接密钥使得能够监视同平台或跨平台用户交互(即,展示和转换经由相同或不同的web浏览器或用户设备上的其它应用发生)。
此外,如上所述,转换数据包括加密的转换值数据。这使得用户与数字组件的交互能够被监视并且还基于转换值进行量化。由于转换值数据被加密,因此维护用户隐私的技术效果得以维持,使得不想要的一方难以访问转换值数据并由此推断出关于用户的信息。
这些和其它实施方式可以各自可选地包括以下特征中的一个或多个。在一些方面,用于每个转换的加密的转换值数据包括三次加密的转换值,该值首先使用概率同态加法公钥加密技术加密,第二次使用第二聚合服务器的公钥加密,并且第三次使用第一聚合服务器的公钥加密。
在一些方面,用于转换的加密的转换值数据包括转换值和报告用于转换的转换数据的报告域的加密的组合。使用如上所述的公钥技术对转换值数据进行第三次加密提供了防止聚合服务器访问转换值数据的明文的进一步的技术效果。只有与公钥相关联的私钥的持有者才能访问转换值数据(例如,报告系统)。因此,可以以这种方式进一步提高系统的安全性以保护用户隐私,因为聚合服务器或不想要的一方无法访问明文转换值数据。
在一些方面,由第一聚合服务器和第二聚合服务器执行多方计算过程以对加密的展示数据和加密的转换数据进行解密包括由第一聚合服务器对每个第一联接密钥进行加密并且,对于每个展示,由第一聚合服务器并向第二聚合服务器提供一对数据,该对数据包括用于展示的加密的第一联接密钥和用于展示的加密的展示数据。
在一些方面,由第一聚合服务器和第二聚合服务器执行多方计算过程以对加密的展示数据和加密的转换数据进行解密包括由第二聚合服务器对每个第二联接密钥进行加密并且,对于每个转换,由第二聚合服务器并向第一聚合服务器提供数据的元组,该数据的元组包括用于转换的加密的第二联接密钥、用于转换的加密的转换数据和用于转换的加密的转换值转换。
在一些方面,用于每个转换的加密的转换值数据包括三次加密的转换值,该值首先使用概率同态加法公钥加密技术加密,第二次使用第二聚合服务器的公钥加密,并且第三次使用第一聚合服务器的公钥加密。由第一聚合服务器和第二聚合服务器执行多方计算过程以对加密的展示数据和加密的转换数据进行解密可以包括由第一聚合服务器并且对于从第二聚合服务器接收的每个数据元组对数据元组中的加密的转换值数据进行解密,以便为每个数据元组生成两次加密的转换值数据,并且使用加密的第一联接密钥和加密的第二联接密钥识别转换数据和对应的展示数据的组。
在一些方面,由第一聚合服务器和第二聚合服务器执行多方计算过程以对加密的展示数据和加密的转换数据进行解密包括由第一聚合服务器并且对于转换数据和对应的展示数据的每个组生成密钥值对,该密钥值对包括基于加密的展示数据和加密的转换数据的密钥以及作为两次加密的转换值数据的值,并且由第一聚合服务器并且向第二聚合服务器发送每个密钥值对。
在一些方面,由第一聚合服务器和第二聚合服务器执行多方计算过程以对加密的展示数据和加密的转换数据进行解密包括由第二聚合服务器使用与第二聚合服务器的公钥对应的第二聚合服务器的私钥对两次加密的转换值数据进行解密,以生成一次加密的转换值数据。
在一些方面,由第一聚合服务器和第二聚合服务器执行多方计算过程以对加密的展示数据和加密的转换数据进行解密包括由第二聚合服务器并且向第一聚合服务器发送一次加密的转换数据以及,对于每个一次加密的转换数据,与一次加密的转换值数据对应的密钥。
在一些方面,由第一聚合服务器和第二聚合服务器执行多方计算过程以对加密的展示数据和加密的转换数据进行解密包括,对于每组展示和转换数据,基于一次加密的转换值数据确定总转换量。用于每组展示和转换数据的总转换量可以通过将组中一次加密的转换值数据相加来确定。
在一些方面,一种计算机实现的方法包括:由第一聚合服务器并且从多个客户端设备中的每个客户端设备接收展示数据,该展示数据对于由所述客户端设备记录的数字组件的每个展示包括(i)基于与该展示相关联的唯一标识符的第一联接密钥,以及(ii)该展示的加密的展示数据;由第一聚合服务器对每个展示的第一联接密钥进行加密;由第一聚合服务器并且向第二聚合服务器提供每个展示的第一数据元组,其中展示的第一数据元组包括该展示的加密的第一联接密钥和加密的展示数据;由第一聚合服务器并且从第二聚合服务器接收第二聚合服务器为其接收加密的转换数据的每个转换的第二数据元组,其中用于转换的第二数据元组包括用于转换的加密的第二联接密钥和加密的转换数据,其中每个加密的第二联接密钥基于与转换相关联的唯一标识符;对于多个数字组件中的每个数据组件,基于包括与数字组件的展示对应的加密的展示数据的加密的第一元组的数量来确定展示计数;以及对于多个数字组件中的每个数据组件,基于包括与数字组件的转换对应的加密的转换数据的加密的第二元组的数量来确定转换计数。
在一些方面,提供一个或多个包括指令的计算机可读存储介质,所述指令在由计算机执行时使计算机执行如上所述的方法。
在一些方面,提供一种包括指令的计算机程序,所述指令在由计算机执行时使计算机执行如上所述的方法。
在一些方面,提供一种用于防止欺诈的系统,该系统包括:数据处理系统,其具有一个或多个处理器和如上所述的一个或多个计算机可读存储介质,其中所述一个或多个处理器被配置为执行如上所述的方法。本说明书中描述的主题可以在特定实施例中实现,以实现以下优点中的一个或多个。本文档中描述的加密技术使得能够计算各种类型的数据的测量,同时保护用户隐私并防止对数据的欺诈性操纵。例如,所述技术可以使得能够对展示、各种类型的转换和转换的聚合值的测量进行计算,同时保护用户隐私并防止转换报告和展示报告中的欺诈。例如,所述技术可以被用于计算点击型(click-through)转换、浏览型转换、应用下载转换、跨设备转换(其中转换发生在与展示发生所在的设备不同的设备上)以及到web转换的应用(其中展示发生在应用中,而转换发生在浏览器中(反之亦然)),同时保护用户隐私并防止欺诈。所述技术还以相同的保护支持各种归因模型(诸如最后点击归因、数据驱动和多点触控归因)。
使用多个聚合服务器形成多方计算(MPC)使得每个服务器能够针对欺诈活动迹象检查另一个服务器,并确保没有单个服务器可以在任何时间以明文形式访问任何用户数据。结合本文档中描述的k匿名技术、差分隐私技术、公钥加密以及加法/可交换同态加密技术使用MPC,即使其中一个服务器受到损害或与其它实体共谋,也可以保护用户隐私,并防止测量中的欺诈。使用盲签名技术对网络数据进行盲签名使得能够针对欺诈检查此类数据,同时通过不将非盲数据传递到其他实体来保护用户隐私。包括网络数据的部分数据元素可以被多个实体盲签名和/或加密,以防止来自多个实体的欺诈或共谋。如本文所述,盲数据(例如,展示数据或转换数据)是已经使用加密技术被隐蔽的数据。盲数据被伪装,使得实体无法从盲数据中确定明文数据。实体可以对数据进行盲签名(例如,确定展示有效的欺诈检测系统可以对盲展示数据进行签名)以验证那个数据的合法性,但签名实体可以在没有实际看到明文数据的情况下对数据进行签名。因此,欺诈检测服务器可以被用于在不损害用户隐私的情况下检查欺诈,因为欺诈检测服务器或任何其他拦截方无法看到普通展示数据。
下面参考附图描述前述主题的各种特征和优点。附加特征和优点从本文描述的主题和权利要求中是显而易见的。
附图说明
图1是其中聚合服务器确定聚合的网络测量的示例环境的框图。
图2是图示用于确定聚合的网络测量的示例过程流程的框图。
图3是图示用于确定聚合的数据的示例过程的流程图。
图4是图示用于确定聚合的数据的另一个示例过程的流程图。
图5是图示用于验证数据的完整性的示例过程的流程图。
图6是图示用于生成事件的时间顺序同时保护用户隐私的示例过程的流程图。
图7是图示使用数据驱动的将转换归因于展示的示例过程的流程图。
图8是图示用于确定聚合转换值的示例过程的流程图。
图9是图示用于确定聚合的转换数据的示例过程的流程图。
图10是示例计算机系统的框图。
各个附图中相同的附图标记和名称指示相同的元件。
具体实施方式
一般而言,本文档描述了用于在确定事件级别和聚合的网络测量时防止欺诈的加密技术。例如,本文档中描述的技术可以防止在确定各种类型转换的数字组件的事件级别和聚合的展示和转换度量时的欺诈。本文档中描述的加密技术还可以保护用户隐私,例如,通过防止所有实体能够跟踪或聚合从用户的客户端设备接收到的用户数据。
系统的概述
图1是示例环境100的框图,其中聚合服务器180确定聚合的网络测量。示例环境100包括数据通信网络105,诸如局域网(LAN)、广域网(WAN)、互联网、移动网络或其组合。网络105连接客户端设备110、发布者130、网站140、数字组件分发系统150、欺诈检测系统170、转换系统172、聚合服务器180、报告系统190和时间服务器192。示例环境100可以包括许多不同的客户端设备110、发布者130和网站140。在一些实施方式中,环境100还可以包括多个数字组件分发系统150、欺诈检测系统170、转换系统172和报告系统190。虽然在这个示例中存在两个聚合服务器180-A和180-B,但也可以使用多于两个聚合服务器180-A和180-B,如下所述。
网站140是与域名相关联并且由一个或多个服务器托管的一个或多个资源145。示例网站是HTML格式的网页的集合,其可以包含文本、图像、多媒体内容和编程元素(诸如脚本)。每个网站140由发布者130维护,发布者130是控制、管理和/或拥有网站140的实体。
资源145是可以通过网络105提供的任何数据。资源145由与资源145相关联的资源地址(例如,统一资源定位符(URL))识别。资源包括HTML页面、文字处理文档和便携式文档格式(PDF)文档、图像、视频和馈送源,仅举几例。资源可以包括内容,诸如词、短语、图像和声音,其可以包括嵌入式信息(诸如超链接中的元信息)和/或嵌入式指令(诸如脚本)。
客户端设备110是能够通过网络105通信的电子设备。示例客户端设备110包括个人计算机、移动通信设备(例如,智能电话),以及可以通过网络105发送和接收数据的其它设备。
客户端设备110通常包括应用112(诸如web浏览器和/或本机应用),以促进通过网络105发送和接收数据。本机应用是为特定平台或特定设备开发的应用。发布者130可以开发本机应用并向客户端设备110提供,例如,使其可供下载。在一些实施方式中,客户端设备110是数字媒体设备,例如,插入电视或其它显示器以将视频流传输到电视的流传输设备。数字媒体设备还可以包括web浏览器和/或流传输视频和/或呈现资源的其它应用。
web浏览器可以从托管发布者130的网站140的web服务器请求资源145,例如,响应于客户端设备110的用户在web浏览器的地址栏中输入资源145的资源地址或选择引用资源地址的链接。类似地,本机应用可以从发布者130的远程服务器请求应用内容。
一些资源145、应用页面或其它应用内容可以包括数字组件槽,用于呈现具有资源145或应用页面的数字组件。如在本文档中通篇使用的,短语“数字组件”是指数字内容或数字信息的离散单元(例如,视频剪辑、音频剪辑、多媒体剪辑、图像、文本或另一个内容单元)。数字组件可以作为单个文件或文件的集合以电子方式存储在物理存储器设备中,并且数字组件可以采用视频文件、音频文件、多媒体文件、图像文件或文本文件的形式并包括广告信息,使得广告是一种类型的数字组件。例如,数字组件可以是旨在补充由应用112呈现的网页或其它资源的内容的内容。更具体而言,数字组件可以包括与资源内容相关的数字内容(例如,数字组件可以涉及与网页内容相同的主题,或者涉及相关的主题)。因此,由数字组件分发系统150提供数字组件可以补充并总体上增强网页或应用内容。
当应用112加载包括一个或多个数字组件槽的资源145(或应用内容)时,应用112可以从数字组件分发系统150为每个槽请求数字组件。数字组件分发系统150进而可以从数字组件提供者160请求数字组件。数字组件提供者160是提供数字组件以与资源145一起呈现的实体。
在一些情况下,数字组件分发系统150还可以从一个或多个数字组件合作伙伴157请求数字组件。数字组件合作伙伴157是响应于数字组件请求而代表数字组件提供者160选择数字组件的实体。
数字组件分发系统150可以基于各种准则为每个数字组件槽选择数字组件。例如,数字组件分发系统150可以从从数字组件提供者160和/或数字组件合作伙伴157接收的数字组件中基于与资源145(或应用内容)的相关性、数字组件的性能(例如,用户与数字组件交互的速率)等来选择数字组件。然后数字组件分发系统150可以将选择的(一个或多个)数字组件提供给客户端设备110以与资源145或其它应用内容一起呈现。
当应用112呈现数字组件时,应用112(其可以是浏览器)可以存储用于呈现数字组件的展示数据114。用于数字组件的特定呈现的展示数据114可以包括用于数字组件的登陆页面(例如,由数字组件链接到的页面并且当用户点击数字组件或与数字组件交互时,应用/浏览器向用户呈现该页面)的URL或域、数字组件的一个或多个标识符、与展示相关联的事件级别数据、指定何时从客户端设备110删除展示数据的到期时间,和/或数字组件的转换报告要发送到的报告URL或域。这个数据可以由数字组件提供,例如,作为数字组件的元数据或数字组件的锚标签。如下面更详细描述的,应用112可以存储由欺诈检测系统170盲签名的展示数据,代替存储或附加于存储用于数字组件的每个展示的未加工的展示数据。
应用112还可以响应于检测到转换而存储转换数据116。用于数字组件的转换是在数字组件被呈现给用户和/或由用户与之交互之后完成指定的用户动作。用于转换的转换数据116可以包括指示转换类型的数据,因为对于各种转换测量需求,存在多种类型的转换。转换的类型可以指定转换完成之后的后续操作。例如,转换可以是将物品添加到在线购物车。在这个示例中,第一类型的转换可以是在不结账的情况下添加物品(例如,未完成购买)并且第二类型的转换可以是在结账的情况下添加物品。如下文更详细描述的,用于转换的转换数据可以是一个或多个位的集合,其指示转换的类型,并且应用可以存储由数字组件分发系统150(或实际发生转换的转换系统)签名的转换数据,以便稍后可以验证盲签名。
可以被实现为一个或多个服务器的欺诈检测系统170可以评估从客户端设备110和/或应用112接收的欺诈信号以确定展示是有效的还是欺诈的。如下所述,欺诈检测系统170还可以基于从转换系统172接收到的欺诈信号来确定转换是有效的还是欺诈的,例如,查看数字组件的用户是否完成了转换或转换是否由另一个实体伪造。欺诈信号可以取决于应用,并且在不同的实施方式中可以有所不同。
在展示时间,应用112(或客户端设备110上的操作系统)可以收集欺诈检测信号并将欺诈检测信号提供给欺诈检测系统170。除了欺诈检测信号之外,应用112还可以向欺诈检测系统170发送用于该展示的盲展示数据。盲展示数据是已使用加密技术盲化(例如,伪装)的展示数据。通过对展示数据进行盲签名,使得对盲展示数据进行签名的实体无法以明文形式访问展示数据,从而保护了用户隐私。如果欺诈检测系统170确定展示是有效的,那么欺诈检测系统170可以对盲展示数据进行签名并将签名的盲展示数据提供给应用112。下面描述用于生成盲展示数据和签名盲展示数据的示例技术。
欺诈检测系统170可以由数字组件分发系统150操作。在一些实施方式中,欺诈检测系统170由一个或多个第三方操作。例如,应用提供者(例如,开发和提供web浏览器或本机应用的实体),和/或操作数字组件分发系统150的数字组件分发商可以证明一个或多个第三方操作欺诈检测系统170以检测欺诈并对从多个不同开发人员的应用(例如,web浏览器和/或本机应用)接收到的盲数据进行盲签名。
可以被实现为一个或多个服务器的转换系统172可以确定转换是否发生。例如,每个数字组件提供者160可以操作转换系统172,该转换系统确定针对其数字组件是否发生转换。在特定示例中,转换可以是在网站上产品的获取。在这个示例中,转换系统172和网站可以由产品的分发商维护。转换系统172可以从托管网站的web服务器接收指定产品被获取的数据并且基于该数据确定发生了转换。
在另一个示例中,转换可以是应用的下载。在这个示例中,当应用被下载到客户端设备110时,应用商店可以向应用开发人员的转换系统172提供指定应用被下载到客户端设备110的数据。在一些实施方式中,应用商店还操作转换系统172。
转换系统172还可以与欺诈检测系统170交互以确定转换是有效的还是欺诈的。例如,转换系统172可以向欺诈检测系统170提供盲转换数据和欺诈检测信号。盲转换数据是使用加密技术盲化(例如,伪装)的转换数据。如果欺诈检测系统170确定转换是有效的和/或用户交互是真实的,那么欺诈检测系统172可以对盲转换数据进行签名并将签名的盲转换数据提供给应用112。下面描述了用于生成盲转换数据和对盲转换数据进行签名的示例技术。
聚合服务器180可以基于从客户端设备110接收的数据生成聚合的网络测量。聚合服务器180可以基于从客户端设备110接收的数据为各种类型的转换生成展示和/或转换计数。例如,聚合服务器180可以为数字组件确定点击转换、浏览转换、应用下载转换、跨设备转换和应用到web转换以及web到应用转换的计数,同时保护用户隐私和防止欺诈。如下所述,聚合服务器180实现MPC协议并使用可交换加密技术来保护用户隐私并防止在确定和报告网络测量时的欺诈。
点击转换是其中用户与数字组件交互并且用户随后完成特定动作的转换。浏览转换是其中将数字组件呈现给用户并且用户随后完成特定操作的转换。应用下载转换是其中将数字组件呈现给用户并且用户随后下载所呈现的数字组件所引用的(例如,推广的)应用的转换。在这个示例中,应用的下载是特定动作。跨设备转换是中特定动作发生在与呈现数字组件的设备不同的设备处的转换。应用到web转换是其中展示发生(例如,数字组件呈现)在应用中并且特定事件发生在浏览器中的转换。
聚合服务器180可以向报告系统190报告展示数据(例如,展示计数)、转换数据(例如,转换计数)。报告系统190可以被实现为实现报告URL的报告域,该报告URL接收携带展示数据、转换数据和/或相关网络测量的传入请求。报告系统190可以由数字组件分发商或向数字组件分发系统150或数字组件分发商报告数据的另一个实体维护。
环境100还可以包括时间服务器192。时间服务器192可以用在下面描述的一些技术中。如下所述,时间服务器192可以用于对使用时间服务器192的公钥加密的一些数据进行解密。时间服务器192可以保密地维护与公钥对应的私钥并使用私钥对数据进行解密。
用于确定网络测量的示例过程流
图2是用于确定聚合的网络测量的示例过程流200的框图。过程流200被示为由图1的一些组件执行,包括一个或多个客户端设备110、欺诈检测系统170、转换检测系统172、聚合服务器180-A和180-B,以及报告系统190。
可以是web浏览器或本机应用的应用112的每个实例可以具有用于转换测量目的唯一标识符。换句话说,一个客户端设备上的特定web浏览器的实例将不同于在不同客户端设备上执行的特定web浏览器的另一个实例,并且具有与其不同的唯一标识符。可以随机或伪随机地生成应用112的唯一标识符,并且应用112可以被配置为绝不会将唯一标识符泄漏到应用112之外。如下所述,唯一标识符的特点和用途可以基于所测量的转换的类型而有所不同。在支持跨设备测量的一些实施方式中,同一用户拥有的所有客户端设备110上的所有(一个或多个)应用112可以具有用于转换测量目的相同唯一标识符。
当数字组件由客户端设备110处的应用112呈现时,应用112可以记录展示数据(mi)、目的地(dc_destination)、转换测量到期日期和将接收数字组件的转换报告的报告域(report_domain)。展示数据可以是不透明字节数组的形式,并且可以包括例如用于数字组件的一个或多个标识符和/或与应用112处的数字组件的展示相关联的事件级数据。
目的地可以包括统一资源标识符(URI)、数字组件的登陆页面的URL或域(例如,由数字组件链接到的页面并且当用户点击数字组件或与数字组件交互时,应用/浏览器向用户呈现该页面)。URI的示例包括用于下载应用的应用商店链接和到用于应用内购买的应用内位置的深层链接。因此,目的地也可以被称为目的地域。转换测量到期日期可以是要从客户端设备110删除展示数据时的时间(或时间段)。报告域可以是数字组件的转换报告将被发送到的报告URL或域,例如,用于数字组件提供者160想要将转换报告发送到的报告系统190。
在一些实施方式中,应用112还可以记录点击数据(clicked),其指定当应用112呈现数字组件时用户是否与数字组件交互(例如,选择或点击数字组件)。点击数据可以是布尔变量,例如,如果与之交互,那么值为一,而如果不与之交互,那么值为零。在一些其它实施方式中,(一个或多个)应用112还可以记录指示用户如何与数字组件交互的其它类型的元数据,例如,用户填写调查或将数字组件静默。例如,用户可以将数字组件静默以指示用户以后不希望看到相同(或相似)的数字组件。
如上所述,应用112还可以与欺诈检测系统170交互以确定数字组件的展示是有效的还是欺诈的。如果展示有效,那么应用112还可以请求欺诈检测系统170盲签名与展示相关的信息。
在一些实施方式中,数字组件可以调用计算机可读代码(例如,脚本),其收集欺诈检测信号202并将欺诈检测信号202发送到欺诈检测系统170用于评估。应用112可以搭载对欺诈检测系统170的这个调用(例如,向对欺诈检测系统170的这个调用添加数据),并请求欺诈检测系统170在展示有效的情况下对与展示相关的信息进行盲签名。
在一些实施方式中,应用112可以向欺诈检测系统170发送盲展示数据201。盲展示数据201可以包括将由欺诈检测系统170进行盲签名的两个盲展示数据元素。绑定和/或加密这些数据元素通过防止欺诈检测系统170接收未加密的用户数据和跟踪用户来保护用户隐私。
第一加密数据元素是应用的唯一标识符(ID)、目的地(dc_destination)和报告域(report_domain)的组合(例如,级联或某种其它组合)的加密密码散列版本。该第一加密数据元素可以被定义为CryptoHash(ID,dc_destination,report_domain)。这个示例中的加密散列可以是单向加密散列函数,以将元组(ID,dc_destination,report_domain)映射到散列值。
在一个示例中,加密散列函数是基于散列的消息认证码(HMAC),例如HMACSHA256消息码。例如,第一加密数据元素可以是:HMACSHA256(HMACSHA256(ID,dc_destination),report_domain)使用ID作为密钥并嵌套HMAC。在另一个示例中,第一加密数据元素可以是:SHA256(ID||dc_destination||report_domain)。就本文档的目的而言,符号||表示从简单消息组合复杂消息的方法,其中组合是可逆的,即,可以从复杂消息中提取回简单消息。一个示例方法是带有序列化/反序列化的协议缓冲区。其它示例包括JavaTM序列化、JavaScript对象表示(JavaScript Object Notation,JSON)等。
第二加密数据元素是展示数据(mi)和指定数字组件是否被点击(clicked)或以其它方式交互的数据的组合的加密版本。例如,应用112可以生成(mi||clicked)的复杂消息并且使用从例如从报告系统190获取的公钥来加密这个复杂消息。这个复杂消息表示展示数据以及数字组件是否被点击或以其它方式与之交互。应用112可以使用报告系统190的公钥来加密复杂消息,使得只有报告系统190可以使用与公钥对应(例如,数学链接到其)的私钥来解密展示数据和被点击的数据。报告系统190可以保密地维护私钥,使得其它实体不能访问这个信息。第二加密数据元素可以被定义为:PubKeyEncrypt(mi||clicked,report_domain)。在这个表示中,逗号之后的“report_domain”的包括指示用于加密复杂消息的公钥是报告系统190的公钥。
欺诈检测系统170可以接收盲展示数据201和欺诈检测信号202并且评估欺诈检测信号以确定数字组件的展示是有效的还是欺诈的。如果欺诈检测系统170确定展示是有效的,那么欺诈检测系统170可以使用盲签名技术盲签名盲展示数据201。例如,欺诈检测系统170可以生成第一数据元素的第一盲签名和盲展示数据201的第二加密数据元素的第二盲签名。在一些实施方式中,盲签名技术可以是CloudflareTM支持的Privacy Pass协议,或者是来自Chrome的信任令牌,两者都基于互联网工程任务组(IETF)可验证不经意伪随机函数(Verifiable,Oblivious Pseudorandom Function,VOPRF)草案标准。
这种VOPRF盲签名协议是特别有利的,因为暴露给欺诈检测系统170的信息量应当是有限的,并且应用112需要确保签名是有效的并且除了签名之外不包含更多信息,其中可以使用额外信息来跟踪用户。出于本文档中描述的技术的目的,VOPRF协议被认为是确定性的,因为它应用函数并且不添加到函数的自变量。应用112可以知道签名方案以允许签名验证和去盲化展示数据。
欺诈检测系统170可以将盲签名的展示数据203发送到应用112。这个盲签名的展示数据203包括第一和第二加密数据元素以及它们各自的盲签名。
应用112可以使用第一加密数据元素和用于第一加密数据元素的盲签名来生成密钥。这个密钥可以被称为盲签名的联接密钥,并且可以被定义为BlindlySignedKey(ID,dc_destination,report_domain),它进而表示结合从欺诈检测系统170接收到的第一加密数据元素的盲签名的CryptoHash(ID,dc_destination,report_domain)。
应用112还可以使用从欺诈检测系统170接收的第二加密数据元素及其盲签名来生成多次加密展示数据。例如,应用112可以通过加密包括第二加密数据元素(PubKeyEncrypt(mi||clicked,report_domain))和第二加密数据元素的盲签名的复杂消息来生成两次加密的展示数据(ImpressionData2)。令ImpressionData1表示一次加密的数据(第二加密数据元素)。这个两次加密的展示数据可以被定义为ImpressionData2=(PubKeyEncrypt(ImpressionData1||blank_signature,Si)),其中,blind_signature表示第二加密数据元素的盲签名并且Si表示收集展示数据的聚合服务器180-A的公钥。即,应用112可以通过从一次加密的数据(ImpressionData1)和一次加密的展示数据(ImpressionData1)的盲签名生成复杂消息来生成两次加密的展示数据(ImpressionData2),并使用聚合服务器180-A的公钥加密这个复杂消息。
然后,应用112可以使用两次加密的展示数据(ImpressionData2)和收集转换数据的聚合服务器180-B的公钥来生成三次加密的展示数据(ImpressionData3)。在一些实施方式中,三次加密的展示数据(ImpressionData3)是使用概率性公钥加密生成的。在这个示例中,三次加密的展示数据可以被定义为:
ImpressionData3p=(PubKeyEncryptProbabilistic(ImpressionData2,Sc)).
在这一点上,使用来自报告系统190、聚合服务器180-A和聚合服务器180-B的公钥顺序地三次加密展示数据。以这种方式,应用112可以安全地将三次加密的展示数据(ImpressionData3p)发送到具有足够隐私保护的聚合服务器180-A,因为最里面的一次加密的展示数据(PubKeyEncrypt(mi||clicked,report_domain))保护在从应用112到报告系统190的传输期间的展示数据mi。使用聚合服务器180-B的公钥的最外面的概率性公钥加密防止报告系统190、聚合服务器180-A和数字组件分发系统150之间的共谋,其中共谋方可以使用稳定的盲签名的展示联接密钥(BlindlySignedKey(ID,dc_destination,report_domain))和可重构的一次加密展示数据(PubKeyEncrypt(mi||clicked,report_domain))来跨发布者域跟踪用户。如下所述,只有当两个聚合服务器180-A和180-B确信(PubKeyEncrypt(mi||clicked,report_domain))满足所有适用的阈值时,聚合服务器180-A和180-B才协作解密三次加密的展示数据以发现将由每个聚合服务器180-A和180-B独立地发送到报告系统190的(PubKeyEncrypt(mi||clicked,report_domain))。
在一些实施方式中,欺诈检测系统170使用两个不同的密钥对第一加密数据元素进行盲签名以生成盲签名的展示联接密钥(BlindlySignedKey(ID,dc_destination,report_domain))并且对第二加密数据元素(ImpressionData1)进行盲签名。这可以防止恶意应用(例如,恶意浏览器)请求展示数据的盲签名,然后将其声明为用于盲签名的展示联接密钥的签名,反之亦然。
应用112可以将展示数据(例如,三次加密的展示数据)上传到聚合服务器180-A,用于已经记录了展示数据的每个展示。例如,应用112可以周期性地批量上传多次加密的展示数据(例如,三次加密的展示数据)。在一些实施方式中,应用112为每个展示上传密钥值对mi 205,其包括作为密钥的用于展示的盲签名的展示联接密钥(BlindlySignedKey(ID,dc_destination,report_domain))和作为值的三次加密的展示数据(ImpressionData3p)。
当展示发生时,与为每个展示上传密钥值对mi相比,这种批量上传具有一些优点。例如,批量上传可以对聚合服务器180-A隐藏实际展示时间以避免基于定时的攻击。这也可以减少负载,例如,聚合服务器180-A上的每秒查询(QPS)负载。这还可以减少客户端设备110的带宽和电池消耗,例如,如果在移动设备连接到Wi-Fi并充电时发生批量上传。这还允许选择每个批量处理协议实例的密钥以管理加密密钥,例如,如果客户端设备110和聚合服务器180-A之间的通信是通过超文本传输协议安全(HTTPS)进行的,那么相同的加密密钥可以用于整个批。
当转换系统172确定客户端设备110发生了真正的转换时,转换系统172可以与欺诈检测系统170交互以确定转换是有效的还是欺诈的。例如,转换系统172可以从客户端设备110获得欺诈检测信号211并将欺诈检测信号211发送到欺诈检测系统170。欺诈检测系统170可以评估欺诈检测信号211以确定转换是有效的还是欺诈的、客户端设备110是否值得信赖(相对于植根的(rooted)、数据中心中的模拟器、或以其它方式受到损害),和/或用户的交互是否是真实的。
利用欺诈检测信号,如果转换是有效的,那么转换系统172还可以发送第三加密数据元素以由欺诈检测系统170盲签名。这个第三加密数据元素可以包括应用112的唯一标识符(ID)和发生转换的转换域(conversion_domain)的组合的加密版本。转换域可以是发生转换的网站。可以使用报告系统190的公钥来加密这个数据用于转换,类似于展示数据的第一加密数据元素被加密的方式。例如,第三加密数据元素可以被定义为CryptoHash(ID,conversion_domain,report_domain)并且可以使用与用于生成第一加密数据元素相同的加密散列函数进行加密。
欺诈检测系统170可以使用用于为展示对第一加密数据元素进行签名的相同协议对第三加密数据元素进行盲签名。欺诈检测系统170然后可以将盲签名的转换数据212发送到转换系统172。这个盲签名的转换数据212可以包括盲签名的第三加密数据元素和第三加密数据元素的盲签名。转换系统172可以使用盲签名的转换数据212生成盲签名的转换密钥。盲签名转换密钥(BlindlySignedKey(ID,conversion_domain,report_domain))是从欺诈检测系统170接收的第三加密数据元素和第三加密数据元素的盲签名的组合。以这种方式,如果转换确实是由展示触发的,那么展示时的dc_destination和转换时的conversion_domain将是相同的。因此,盲签名的展示密钥将匹配盲签名的转换密钥。
转换系统172还可以使用用于转换的转换元数据mc和转换系统172的私钥来生成签名的转换数据。转换元数据mc可以包括与转换相关的数据,诸如转换类型、标签和量化的转换值等。签名的转换数据可以被定义为PrivateKeySign(mc,conversion_domain)。生成签名的转换数据可以包括使用基于私钥和公钥的数字签名算法将数字签名附加到转换元数据。转换系统172可以将盲签名的转换密钥和签名的转换数据213提供给应用112。
应用112可以使用签名的转换数据(PrivateKeySign(mc,conversion_domain))生成多次加密的转换数据。应用112可以通过使用用于转换的报告系统190的公钥对签名的转换数据(PrivateKeySign(mc,conversion_domain))进行加密来生成一次加密的转换数据。这个一次加密的转换数据(ConversionData1)可以被定义为PubKeyEncrypt(PrivateKeySign(mc,conversion_domain),report_domain)。在一些实施方式中,转换系统172可以生成多次加密的转换数据,或至少一次加密的转换数据,而不是应用112。
加密结合数字签名的使用保护转换数据mc在从转换系统172通过多个中介(例如,聚合服务器180-A和180-B)传输到报告系统190期间不被篡改和窃听。为了促进聚合并在后期强制执行k-匿名,ConversionData1中的加密和数字签名应当在时间/批量处理时间窗口内具有确定性,以便将完全相同的明文映射到完全相同的密文。
在一些情况下,转换元数据mc可能没有太多的熵。因此,一次加密的转换数据(ConversionData1)可以具有有限的基数并且可以容易地被猜到。在这种情况下,可以通过组成来自转换元数据mc的复杂消息以及转换域(conversion_domain)和报告域(report_domain)的加密散列将伪熵(例如,基于加密密钥的随机性)添加到转换元数据mc并加密复杂消息。在这个示例中,一次加密的转换数据(ConversionData1)可以被定义为:
PubKeyEncrypt(PrivateKeySign(mc||HMACSHA256(conversion_domain,report_domain),conversion_domain),report_domain),其中HMACSHA256(conversion_domain,report_domain)是转换域和报告域的加密散列,并添加了伪熵。在这个示例中,转换域的私钥用于对复杂消息进行签名,而报告域的公钥用于对签名的复杂消息进行加密。
应用112可以通过使用收集转换数据的聚合服务器180-B的公钥对一次加密的转换数据(ConversionData1)进行加密来生成两次加密的转换数据(ConversionData2)。两次加密的转换数据(ConversionData2)可以被定义为PubKeyEncrypt(ConversionData1,Sc),其中Sc表示聚合服务器180-B的公钥。应用112然后可以通过使用收集展示数据的聚合服务器180-A的公钥对两次加密的转换数据(ConversionData2)进行加密来生成三次加密的转换数据(ConversionData3)。在一些实施方式中,三次加密的转换数据(ConversionData3)是使用概率性公钥加密生成的。在这个示例中,三次加密的转换数据可以被定义为:PubKeyEncryptProbabilistic(ConversionData2,Si),其中Si表示聚合服务器180-A的公钥。
应用112可以将转换数据上传到聚合服务器180-B,用于针对已记录转换数据的每个转换。例如,应用112可以周期性地批量上传多次加密的转换数据(例如,三次加密的转换数据)。在一些实施方式中,应用112为每次转换上传密钥值对Mc 215,该密钥值对Mc 215包括作为密钥的用于该转换的盲签名的转换密钥(BlindlySignedKey(ID,conversion_domain,report_domain))以及作为值的三次加密的转换数据(ConversionData3或ConversionData3p)。这第三个、最外面的加密可以防止聚合服务器180-B使用稳定的盲签名转换密钥和两次加密的转换数据(ConversionData2)跟踪跨多个域报告转换的用户。
用于解密展示和转换数据的示例MPC过程
聚合服务器180-A和180-B可以使用多步MPC过程来聚合然后解密满足阈值和/或其它隐私保护准则的接收到的数据的子集,并且向报告系统190发送报告。这个过程在图3中示出,图3是图示用于确定聚合的转换数据的示例过程300的流程图。过程300可以例如由多个聚合服务器(例如,图1和2的聚合服务器180-A和180-B)实现。
聚合服务器A和B可以使用具有交换特性的交换加密技术“H”。换句话说,给定任意消息m和两个不同的加密密钥K1和K2,交换加密技术具有以下特性:H(H(m,K1),K2)=H(H(m,K2),K1)。换句话说,交换加密涉及使用不同加密密钥的双重加密,其中加密的次序(首先使用哪个密钥加密数据)无关紧要,因为无论哪种方式都获得相同的结果。
每个聚合服务器180-A和180-B可以分别选择一对秘密加密密钥Keyi(其表示一对密钥)和Keyc(其表示一对密钥)。如下所述,密钥之一Keyii可以用于加密联接密钥,而密钥之一Keyi2可以用于加密/解密展示数据。类似地,密钥之一Keyc1可以用于加密联接密钥,而密钥之一Keyc2可以用于加密/解密转换数据。聚合服务器180-A和180-B可以基于指定的时间段、每批的展示或转换数据或者基于其它适当的准则来周期性地选择一对新的密钥。
聚合服务器180-A接收展示数据(302)。例如,聚合服务器180-A可以从多个客户端设备接收一批展示数据。如上所述,每个客户端设备可以周期性地将成批的展示数据发送到聚合服务器180-A。
可以针对每个展示以密钥值对的形式发送展示数据。每个密钥值对可以包括作为密钥的用于展示的盲签名的展示密钥(BlindlySignedKey(ID,dc_destination,report_domain)),以及作为值的三次加密的展示数据(ImpressionData3p)。
聚合服务器180-B接收转换数据(304)。例如,聚合服务器180-B可以从多个客户端设备接收一批转换数据。如上所述,每个客户端设备可以周期性地将成批的转换数据发送到聚合服务器180-B。
可以针对每个转换以密钥值对的形式发送转换数据。每个密钥值对可以包括作为密钥的用于转换的盲签名的转换密钥(BlindlySignedKey(ID,conversion_domain,report_domain))以及作为值的三次加密的转换数据(ConversionData3p)。
对于每个展示,聚合服务器180-A使用交换加密和其选择的加密密钥Keyi1来加密联接密钥(306)。在这个示例中,用于展示的联接密钥是用于展示的盲签名的联接展示密钥(BlindlySignedKey(ID,dc_destination,report_domain))。聚合服务器180-A然后可以针对每个展示向聚合服务器180-B提供加密的联接密钥和三次加密的展示数据。换句话说,聚合服务器180-A可以针对每个展示发送一对:{H(BlindlySignedKey,Keyi1),ImpressionData3p}。可以以随机或伪随机次序发送这些对。
对于每个转换,聚合服务器180-B使用交换加密和其选择的加密密钥Keyc1来加密联接密钥(308)。在这个示例中,用于转换的联接密钥是用于转换的盲签名的转换密钥(BlindlySignedKey(ID,conversion_domain,report_domain))。聚合服务器180-B然后可以针对每个转换向聚合服务器180-A提供加密的联接密钥和三次加密的转换数据。换句话说,聚合服务器180-B可以针对每个展示发送一对:{H(BlindlySignedKey,Keyc),ConversionData3p}。可以以随机或伪随机次序发送这些对。
对于接收到的每对加密的联接密钥和三次加密的转换数据{H(BlindlySignedKey,Keyc1),ConversionData3p},聚合服务器180-A重新加密联接密钥和转换数据(310)。在一些实施方式中,聚合服务器180-A可以使用其私钥(与公钥Si对应的私钥)解密三次加密的转换数据(ConversionData3p)以恢复两次加密的转换数据(ConversionData2)。聚合服务器180-A然后可以使用其选择的加密密钥Keyi2重新加密两次加密的转换数据(ConversionData2)。对于这种加密,可以使用确定性对称加密技术。这个加密的转换数据可以被称为ConversionData3',因为转换数据已经使用来自三个域、报告系统190、聚合服务器180-B和聚合服务器180-A的密钥顺序地确定性加密三次。
聚合服务器180-A还可以使用其选择的加密密钥Keyi2在已经交换加密的盲签名的展示密钥(H(BlindlySignedKey,Keyc))之上应用交换加密。这个步骤的结果是和ConversionData3'.聚合服务器180-A针对每对接收到的加密的联接密钥和加密的三次加密转换数据将这两个结果发送到聚合服务器180-B。/>
对于每对接收到的加密联接密钥和加密的三次加密的展示数据{H(BlindlySignedKey,Keyi1),ImpressionData3p},聚合服务器180-B重新加密联接密钥和展示数据(312)。在一些实施方式中,聚合服务器180-B可以使用其私钥(与公钥Sc对应的私钥)解密三次加密的展示数据(ImpressionData3p)以恢复两次加密的展示数据(ImpressionData2)。聚合服务器180-B然后可以使用其选择的加密密钥Keyc2重新加密两次加密的展示数据(ImpressionData2)。对于这种加密,可以使用确定性对称加密技术。这个加密的转换数据可以被称为ImpressionData3,因为已经使用来自三个域、报告系统190、聚合服务器180-A和聚合服务器180-B的密钥顺序地对展示数据进行了三次确定性加密。
聚合服务器180-B还可以使用其选择的加密密钥Keyc2在已经交换加密的盲签名的展示密钥(H(BlindlySignedKey,Keyi1))之上应用交换加密。这个步骤的结果是和ImpressionData3'。聚合服务器180-B针对每对接收到的加密的联接密钥和三次加密的展示数据将这两个结果发送到聚合服务器180-A。
聚合服务器180-A联接并过滤加密的展示和转换数据(314)。在从聚合服务器180-B接收到结果之后,聚合服务器180-A对于每个展示具有一对结果和ImpressionData3'}。对于每个转换,聚合服务器180-A还具有一对结果/>和ConversionData3'}。
由于每个聚合服务器180-A和180-B使用交换加密对盲签名密钥进行了一次加密,因此与加密的盲签名密钥匹配的用于展示的加密的盲签名密钥指示由数字组件的展示产生的转换,因为这些密钥基于应用112的唯一标识符、报告系统190的域和数字组件的登陆页面的域。因此,聚合服务器180-A可以使用加密的盲签名密钥/>联接对。将对应的展示数据与对应的转换数据联接可以包括将展示数据链接到转换数据。例如,聚合服务器180-A可以生成使用加密的盲签名密钥/>作为行密钥的表或其它数据结构。每行可以包括行密钥以及关联的展示数据和转换数据。下面的表1中示出了示例表。在其它示例中,结合展示数据和转换数据可以包括为每个结合的展示数据和转换数据生成包括行密钥与结合的展示数据和转换数据的元组。
表1
然后聚合服务器180-A可以过滤数据以满足k-匿名标准。聚合服务器180-A可以确定与每个三次加密的展示数据相关联的唯一加密的盲签名密钥的数量。每条三次加密的展示数据也可以被称为展示数据的发生。由于展示数据不是特定于应用的,而是基于所呈现的数字组件,因此多个展示可以具有相同的三次加密的展示数据,但具有不同的加密盲签名密钥/>
聚合服务器180-A可以将与每个唯一展示数据相关联的不同的加密盲签名密钥的数量与k-匿名阈值进行比较。如果数量低于阈值,那么聚合服务器180-A可以从表或其它数据结构中过滤展示数据的发生。
聚合服务器180-A还可以确定与每个三次加密的转换数据相关联的唯一的加密盲签名密钥的数量。每条三次加密的转换数据也可以被称为转换数据的发生。由于转换数据不是特定于应用的,而是基于与转换事件相关的数据,因此多个转换可以具有相同的三次加密的转换数据,但具有不同的加密的盲签名密钥
聚合服务器180-A可以将与每个唯一转换数据相关联的不同加密的盲签名密钥的数量与k-匿名阈值进行比较。如果数量低于阈值,那么聚合服务器180-A可以从表或其它数据结构中过滤转换数据的发生。
聚合服务器180-A还可以确定与三次加密的展示数据和转换数据的每个组合相关联的唯一加密的盲签名密钥的数量。换句话说,这是具有相同三次加密的展示数据和相同三次加密的转换数据的唯一盲签名密钥的数量的计数。三次加密的展示数据和相同的三次加密的转换数据的每个组合也可以被称为展示交叉转换数据的发生。
聚合服务器180-A可以将展示交叉转换数据的每次发生的数量与k-匿名阈值进行比较。如果数量低于阈值,那么聚合服务器180-A可以从表或其它数据结构中过滤展示交叉转换数据的发生。
聚合服务器180-A然后可以使用过滤之后的剩余数据来生成新的表或数据结构,如下面的表2所示。表2的每一行与impressionData3’的发生和ConversionData3’的对应发生的组合对应。这个表记录了每个组合发生的次数,例如与每个组合关联的唯一加密的盲签名密钥的数量。这个计数等于由具有相同展示数据的数字组件的展示产生的数字组件的转换数。
表2
聚合服务器180-B联接并过滤加密的展示和转换数据(316)。在从聚合服务器180-A接收到结果之后,聚合服务器180-B对于每个展示具有一对结果和ImpressionData3'}。对于每个转换,聚合服务器180-A还具有一对结果/>和ConversionData3'}。因此,聚合服务器180-B具有与聚合服务器180-A相同的数据。
聚合服务器180-B可以使用相同的数据执行与聚合服务器180-A相同的计算和过滤,以达到相同的结果。即,聚合服务器180-B可以生成与聚合服务器180-A生成的表2匹配的表。
在一些实施方式中,聚合服务器180-A和180-B两者都可以执行一些可选操作以确保差异隐私,诸如使用子采样。差异隐私是一种通过描述数据集内的组的模式而不提供数据集中的个人数据来共享关于数据集的数据的技术。为此,每个聚合服务器可以首先以某个概率测试(beta)对数据(例如,表1中的行)进行采样。然后,聚合服务器仅将上述k-匿名泛化应用于被采样的数据。即,聚合服务器可以确定每种发生类型的唯一加密盲签名密钥的数量,并从被采样的数据中过滤掉不满足k-匿名阈值的那些。
对于子采样,为了确保两个聚合服务器完全复制相同的采样并执行相同的差异隐私技术,聚合服务器可以使用基于伪随机性的采样。采样的随机化可以由两个服务器共同确定的共同种子确定(例如,使用Diffie-Hellman密钥交换)。交换的结果是用于相同伪随机生成器的种子(例如,一个基于高级加密标准(AES)算法的种子)。这确保在两个聚合服务器中采样相同的子集并且将计算出相同的结果,因为一旦伪随机性相同,过程的其余部分就是确定性的。
在联接和过滤之后,聚合服务器180-A和180-B两者都具有相同的数据,例如,每个包括{count,ImpressionData3',ConversionData3'}的元组表或列表。Count(计数)是具有由ImpressionData3'表示的相同展示数据的展示的转换数。
对于每个元组,聚合服务器180-A解密三次加密的转换数据(ConversionData3')(318)。聚合服务器180-A可以使用其选择的加密密钥Keyi2解密三次加密的转换数据(ConversionData3')以获得{count,ImpressionData3',ConversionData2'}。聚合服务器180-A可以将这些结果元组发送到聚合服务器180-B。
类似地,对于每个元组,聚合服务器180-B解密三次加密的展示数据(ImpressionData3')(320)。聚合服务器180-B可以使用其选择的加密密钥Keyc2解密三次加密的展示数据(ImpressionData3')以获得{count,ImpressionData2,ConversiodData3'}。聚合服务器180-B可以将这些结果元组发送到聚合服务器180-A。
聚合服务器180-A对每个接收的结果元组{count,ImpressionData2,ConversionData3'}的两次加密的展示数据(ImpressionData2)和三次加密的转换数据(ConversionData3')进行解密(322)。聚合服务器180-A可以使用与聚合服务器180-A的公钥Si对应的私钥来解密两次加密的展示数据(ImpressionData2)和三次加密的转换数据(ConversionData3')。对于每个接收到的元组,这种解密产生元组{count,ImpressionData1,ConversionData2}。聚合服务器180-A可以将这些元组{count,ImpressionData1,ConversionData2}中的每一个发送到聚合服务器180-B。
聚合服务器180-B对每个接收的结果元组{count,ImpressionData3',ConversionData2}的三次加密的展示数据(ImpressionData3')和两次加密的转换数据(ConversionData2)进行解密(324)。聚合服务器180-B可以使用与聚合服务器180-B的公钥Sc对应的私钥来解密三次加密的展示数据(ImpressionData3')和两次加密的转换数据(ConversionData2)。对于每个接收到的元组,这种解密产生元组{count,ImpressionData2,ConversionData1}。聚合服务器180-B可以将这些元组{count,ImpressionData2,ConversionData1}中的每一个发送到聚合服务器180-A。
聚合服务器180-A解密每个接收到的元组{count,ImpressionData2,ConversionData1}的展示数据(326)。聚合服务器180-A使用与聚合服务器180-A的公钥Si对应的私钥对每个接收到的元组{count,ImpressionData2,ConversionData1}的展示数据进行解密。对于每个接收到的元组,这种解密产生元组{count,ImpressionData1,ConversionData1}。
在这个元组中,展示数据(ImpressionData1)是PubKeyEncrypt(mi||clicked,report_domain)||blind_signature),因此包括使用报告系统190的公钥加密的展示数据和在展示时间生成的第二数据元素的盲签名。转换数据(ConversionData1)是PubKeyEncrypt(PrivateKeySign(mc,conversion_domain),report_domain),因此包括使用报告系统190的公钥加密的转换数据。
聚合服务器180-B解密每个接收到的元组{count,ImpressionData1,ConversionData2}的转换数据(328)。聚合服务器180-B使用与聚合服务器180-B的公钥Sc对应的私钥对每个接收到的元组{count,ImpressionData1,ConversionData2}的转换数据进行解密。对于每个接收到的元组,这种解密产生元组{count,ImpressionData1,ConversionData1}。
与聚合服务器180-A解密的元组一样,在这个元组中,展示数据(ImpressionData1)是PubKeyEncrypt(mi||clicked,report_domain)||blind_signature),因此包括使用报告系统190的公钥加密的展示数据和在展示时间生成的第二数据元素的盲签名。转换数据(ConversionData1)是PubKeyEncrypt(PrivateKeySign(mc,conversion_domain),report_domain),因此包括使用报告系统190的公钥加密的转换数据。
聚合服务器180-A针对每个解密的元组向报告系统190发送该元组的转换报告(330)。类似地,聚合服务器180-B针对每个解密的元组向报告系统190发送该元组的转换报告(332)。转换报告可以包括解密的元组或包括在解密的元组中的数据。
聚合服务器180-A和180-B可以以各种方式获得用于每个元组的报告系统的URL,从而获得每个转换。在一个示例中,发生展示的应用112可以将report_domain(例如,用于报告系统190的URL)以明文形式发送到聚合服务器180-A,例如,在展示时间并且作为密钥值对mi的一部分。类似地,发生转换的应用112可以将report_domain以明文形式发送到聚合服务器180-B,例如,在转换时间作为密钥值对Mc的一部分。
在另一个示例中,浏览器开发人员(或应用开发人员)可以发布允许的报告系统190及其report_domain的白名单。浏览器(或应用)可以周期性地下载白名单并应用白名单发送转换报告。
在另一个示例中,浏览器或应用可以使用(t,n)-阈值加密技术来加密报告域并将加密的报告域发送到聚合服务器180-A和180-B。在这个示例中,聚合服务器180-A和180-B只有在至少t个浏览器或应用报告了相同的report_domain时才能恢复明文report_domain。在另一个示例中,例如,如果report_domain没有足够的熵,那么report_domain的推导可以用于(t,n)-阈值加密技术中。例如,推导可以是report_domain和数字组件登录页面的加密散列的组合。
返回到图2,报告系统190从聚合服务器180-A和180-B接收两个转换报告127和128,用于每个一次加密的转换数据(ImpressionData1)和PubKeyEncrypt(PrivateKeySign(mc,conversion_domain),report_domain)对。每个转换报告127和128对于展示和转换的每个组合可以包括过滤数据中的组合的数量,例如,如从上述表中导出的。对于同一批的展示和转换数据,从聚合服务器180-A接收的转换报告127中的数据应当与从聚合服务器180-B接收的转换报告128中的数据匹配。报告系统190可以比较这两个数字以识别恶意行为的潜在迹象的差异。
报告系统190还可以调用欺诈检测系统170来验证展示数据上的盲签名。报告系统190然后可以使用其自己的私钥解密加密的转换数据。报告系统190然后可以使用转换系统的公钥来验证转换数据上的数字签名。如果两个验证都成功,那么报告系统190可以确信转换测量数据是有效的。
转换报告的接收者应当能够信任转换报告中的数据。上述比较从两个聚合服务器180-A和180-B接收的转换报告并验证盲签名的技术可以防止转换报告管道中的大多数欺诈。但是,两个聚合服务器可能会共谋修改转换计数。为了防止这种共谋,转换服务器172可以在将转换数据提供给客户端设备110之前对转换数据进行加密和数字签名。例如,转换系统172可以使用保留签名的非对称加法同态加密或另外的保留结构的签名技术对转换数据进行加密和数字签名。以这种方式,数字签名在三次加密(或以其它方式多次加密)之后被保留,如上所述。这种加密防止聚合服务器180-A和180-B访问转换数据并使接收者能够验证数字签名以验证转换数据尚未被修改。当转换值包括在转换数据中时,如下所述,可以以类似方式对每个转换值进行加密和签名。
上述转换报告技术可以支持各种类型的转换事件。为了支持相同的浏览器(或相同的应用)点击转换和浏览转换,浏览器或应用可以选择浏览器范围(或应用范围)随机生成的专用于转换测量目的唯一标识符(ID)。浏览器(或应用)可以在展示和转换时间计算BlindlySignedKey(ID,conversion_domain,report_domain)。为了区分点击转换与浏览转换,在展示时间,浏览器或应用可以使用与展示数据mi一起点击(clicked)的布尔变量对用户是否与数字组件交互进行编码。在其它实施方式中,浏览器或应用可以对用户与数字组件的交互类型进行编码,例如,将数字组件静默、填写调查等。
为了支持应用和web浏览器之间的同设备转换,浏览器和应用两者都可以使用设备级别(例如,由设备的操作系统)随机生成的唯一标识符(ID)来报告展示和转换。此外,如果转换发生在应用而不是web浏览器中,那么conversion_domain可以是应用的名称或应用开发人员的识别应用的证书。
为了支持跨设备转换(例如,展示发生在用户的一个设备上,而转换发生在用户的不同设备上),唯一标识符(ID)可以是关于用户的信息或基于此类信息。例如,唯一标识符(ID)可以是用户登录凭据的加密散列、用户提供的电话号码或电子邮件地址或用户提供的其它个人可识别信息。例如,用户可以登录移动应用。同一用户可以使用移动应用的登录凭据登录发布者的网站。相同的登录凭据可以用作网站和移动应用之间发生的跨设备转换的用户标识符(ID)。
图4是图示用于确定聚合转换数据的另一个示例过程400的流程图。过程400可以例如由多个聚合服务器(例如,图1和2的聚合服务器180-A和180-B)实现。
第一聚合服务器180-A从多个客户端设备接收展示数据(402)。对于客户端设备记录的数字组件的每个展示,展示数据可以包括第一密钥值对。用于展示的第一密钥值对可以包括基于客户端设备或发生展示的客户端设备上的应用的唯一标识符的第一密钥。例如,用于展示的第一密钥可以是盲签名的展示密钥并且可以被定义为从客户端设备接收的BlindlySignedKey(ID,dc_destination,report_domain),如上所述。
用于展示的第一密钥值对还可以包括第一值,该第一值包括已使用第一聚合服务器的第一公钥并使用不同于第一聚合服务器的第二聚合服务器的第二公钥加密的加密的展示数据。例如,第一值可以是从客户端设备接收的三次加密的展示数据(ImpressionData3)。
第二聚合服务器从多个客户端设备的至少一部分接收转换数据(404)。对于由客户端设备记录的每个转换,转换数据可以包括第二密钥值对,该第二密钥值对包括基于客户端设备或客户端设备上发生转换的应用的第二唯一标识符的第二密钥。例如,用于转换的第二密钥可以是从客户端设备接收到的盲签名的转换密钥(BlindlySignedKey(ID,conversion_domain,report_domain))。
用于转换的第二密钥值对可以包括第二值,该第二值包括已经使用第一加密密钥和第二加密密钥加密的加密的转换数据。例如,第二值可以是从客户端设备接收的三次加密的转换数据(ConversionData3)。
聚合服务器180-A和180-B执行MPC过程以联接加密展示和转换数据,过滤联接结果,然后解密满足隐私保护标准的加密的展示数据和加密的转换数据的子集(406)。这个MPC过程可以包括基于第一密钥和第二密钥识别加密的转换数据和对应加密的展示数据的对。然后可以使用与第一公钥对应的第一私钥和与第二公钥对应的第二私钥在多个阶段中解密每对加密的展示数据和转换数据的展示数据和转换数据。每个阶段可以包括第一聚合服务器或第二聚合服务器中的一个对每对加密的转换数据和对应加密的展示数据的加密的展示数据或加密的转换数据之一进行解密,并将结果数据发送到第一聚合服务器或第二个聚合服务器中的另一个。这个MPC过程可以与图3中所示和上述的过程300相同或相似。
解密的展示数据的每个部分和解密的转换数据的每个部分被发送到相应的报告系统(408)。例如,如上所述,每个聚合服务器180-A和180-B可以向相应的报告系统发送转换报告。
验证每个聚合服务器的数据的完整性
如上所述,在过程300开始时,聚合服务器180-A接收对于每个展示的密钥值对形式的展示数据(mi)。每个密钥值对可以包括三次加密的展示数据(ImpressionData3p)的展示的盲签名的展示密钥(BlindlySignedKey(ID,dc_destination,report_domain))。三次加密的展示数据(ImpressionData3p)的最后一次加密使用聚合服务器180-B的公钥、是概率性的。因此,除了聚合服务器180-B之外的任何其它方都不能解密三次加密的展示数据(ImpressionData3p),该展示数据对于除聚合服务器180-B之外的所有服务器来说可以是密码随机数。
此外,除应用112之外,没有其它方知道用户标识符(ID)的明文值。共谋方可以恢复的唯一信息是盲签名的展示密钥(BlindlySignedKey(ID,dc_destination,report_domain))背后的匿名用户具有带未知特点的多个展示。共谋方无法推断应用112/客户端设备110/用户已经看到的展示的总数,因为整个数字组件渲染被目的地(dc_destination)和报告域(report_domain)分片。
如果知道向用户显示的与盲签名的展示密钥(BlindlySignedKey(ID,dc_destination,report_domain))相关联的展示数是个问题,那么应用112可以重复发送出用于展示的展示数据(mi)随机或伪随机的次数。给定在生成三次加密的展示数据(ImpressionData3p)时应用的概率性加密,聚合服务器180-A和任何共谋方不能对接收的展示数据进行去重复。但是,聚合服务器180-B可以在解密三次加密的展示数据(ImpressionData3p)以恢复两次加密的展示数据(ImpressionData2)之后对展示进行去重复。
如以上参考过程300所描述的,在过程300的步骤310开始时,聚合服务器180-A从聚合服务器180-B接收对{H(BlindlySignedKey,Keyc),ConversionData3p},其不能联接到聚合服务器180-A在步骤302处具有的东西,即,密钥值对{(BlindlySignedKey(ID,dc_destination,report_domain)),ImpressionData3p}。此外,盲签名的密钥H(BlindlySignedKey,Keyc)可以仅对MPC过程的每次执行有效并且聚合服务器180-B可以在每次执行之后丢弃所选择的密钥Keyc1和Keyc2。聚合服务器180-A可以使用其公钥解密三次加密的转换数据(ConversionData3p)以恢复两次加密的转换数据(ConversionData2)。此时,聚合服务器180-A具有H(BlindlySignedKey,Keyc)和两次加密的转换数据(ConversionData2),两者都被加密并且只有聚合服务器180-B具有解密密钥。由于聚合服务器180-B是诚实的,聚合服务器180-A不能做任何事情来危及用户隐私。
在过程300的步骤314开始时,聚合服务器180-A针对每个展示从聚合服务器180-B接收两次加密的盲签名的联接密钥和三次加密的展示数据(ImpressionData3')。这个三次加密的展示数据(ImpressionData3')最后使用聚合服务器180-B拥有的密钥加密,该密钥仅对MPC过程的当前执行有效。在不与聚合服务器180-B共谋的情况下,聚合服务器180-A可以做的最坏的事情是发送伪造的数据元组{count',ImpressionData3”,ConversionData2”}而不是实际的数据元组{count,ImpressionData3',ConversionData2'}。
图5是图示用于验证数据的完整性的示例过程500的流程图。特别地,过程500可以由聚合服务器180-A或180-B之一执行以验证在本文档中描述的MPC过程(例如,图3和图4的MPC过程或下面描述的MPC过程)期间从另一个聚合服务器180-A或180-B接收的数据的完整性。为了便于描述,根据聚合服务器180-B验证从聚合服务器180-A接收的数据的完整性来描述过程500。但是,聚合服务器180-A可以执行类似的过程以验证从聚合服务器180-B接收的数据的完整性。
这个过程500可以被用于防止各种类型的欺诈,包括聚合服务器180-A或180-B之一与欺诈检测系统172、转换系统172和报告系统190共谋的情况。
聚合服务器180-B验证从聚合服务器180-A接收的数据(502)。聚合服务器180-B可以执行步骤502作为过程300的步骤324的一部分。如上面参考图3的步骤318所描述的,聚合服务器180-A可以向聚合服务器180-B发送形式为{count,ImpressionData3',ConversionData2'}的元组。聚合服务器180-B可以对每个元组中两次加密的转换数据ConversionData2'进行加密,以生成每个元组的三次加密的转换数据ConversionData2'。由于三次加密的转换数据ConversionData3的定义,即是使用聚合服务器180-A的公钥的三次加密的转换数据ConversionData3的确定性公钥加密结果,这是可能的。
聚合服务器180-B可以将每个接收到的元组{count,ImpressionData3',ConversionData2'}变换成{count,ImpressionData3',ConversionData3'},并在应用阈值化和子采样以实现k-匿名和差异隐私之后比较聚合服务器180-B在图3的步骤316中生成的结果数据集。例如,聚合服务器180-B可以将元组{count,ImpressionData3',ConversionData3'}与表2的行进行比较。如果两个数据集匹配,那么聚合服务器180-B可以确信聚合服务器180-A一直在诚实地执行加密协议,直到图3的步骤322。否则,聚合服务器180-B可以提前结束MPC过程和/或报告聚合服务器180-A的可能误动(malfunction)。
如上面参考过程300所描述的,在步骤322开始时,聚合服务器180-A从聚合服务器180-B接收形式为{count,ImpressionData2,ConversiodData3'}的元组。在应用阈值化和子采样之后,聚合服务器180-A可以获得在过程300的步骤314中生成的它自己的数据集。该数据集包括行(例如,在表2中)或{count,ImpressionData3',ConversiodData3'}形式的元组。聚合服务器180-A可以使用这些条数据来推断两个数据集的三次的加密展示数据(ImpressionData3')和两次加密的展示数据(ImpressionData2)之间的映射。
与聚合服务器180-B类似,聚合服务器180-A可以验证三次加密的展示数据(ImpressionData3')确实是使用聚合服务器180-B的公钥的两次加密的展示数据(ImpressionData2)的确定性公钥加密结果。但是,由于三次加密的展示数据(ImpressionData3')和两次加密的展示数据(ImpressionData2)之间的映射,聚合服务器180-A无法恢复聚合服务器180-B的私钥,这是由于公钥加密算法的设计的原因。聚合服务器180-A可以做的最坏的事情是向聚合服务器180-B发送伪造的数据元组{count’,ImpressionData1’,ConversionData2’}而不是实际的数据元组{count,ImpressionData1,ConversionData2}。
聚合服务器180-B验证从聚合服务器180-A接收的数据的完整性(504)。聚合服务器180-B可以使用确定性公钥算法和聚合服务器180-A的公钥将加密的展示数据(ImpressionData1)重新加密为两次加密的展示数据(ImpressionData2)。聚合服务器180-B可以使用确定性公钥算法和聚合服务器180-A的公钥将两次加密的转换数据(ConversionData2)重新加密为两次加密的展示数据(ConversionData3)。聚合服务器180-B然后可以使用加密结果将在过程300的步骤322中从聚合服务器180-A接收的每个元组{count,ImpressionData1,ConversionData2}转换成元组{count,ImpressionData1,ConversionData2}形式的元组。
聚合服务器180-B然后可以将这个结果元组数据集与聚合服务器180-B在过程300的步骤320中生成并发送到聚合服务器180-A的数据集进行比较。如果两个数据集匹配,那么聚合服务器180-B可以确信聚合服务器180-A在过程300的MPC过程中到目前为止已经诚实地执行了加密协议。否则,聚合服务器180-B可能提前结束MPC过程和/或报告聚合服务器180-A的可能误动。
如上面参考过程300所描述的,在过程300的步骤326开始时,聚合服务器180-A从聚合服务器180-B接收元组{count,ImpressionData2,ConversionData1}。如果聚合服务器180-A在过程300的步骤326中没有诚实地将两次加密的展示数据(ImpressionData2)解密为一次加密的展示数据(ImpressionData1)并且将正确的元组{count,ImpressionData1,ConversionData1}发送到报告系统190,那么报告系统190将发现从聚合服务器180-A和180-B接收的两个转换报告之间的差异。报告系统190可以向聚合服务器180-A和180-B中的至少一个报告差异。在聚合服务器180-A不与报告系统190共谋的情况下,聚合服务器180-A可以泄漏到可以理解泄漏信息的报告系统190的最重要的信息包括计数的直方图和每个元组的转换数据。但是,这个数据的用户隐私受到在过程300的步骤314和316中应用的阈值化要求和差异隐私子采样的保护。
生成展示和转换的序列
图6是图示用于生成事件的时间顺序序列、同时保护用户隐私的示例过程600的流程图。过程600可以被用于生成展示和/或转换的时间顺序序列,其可以被用于支持不同的转换归因模型(诸如最后点击归因或基于规则的归因)。过程600可以由聚合服务器180-A和180-B执行。
类似于过程300,每个聚合服务器180-A和180-B可以分别选择一对秘密加密密钥Keyi(其表示一对密钥)和Keyc(其表示一对密钥)。聚合服务器180-A还可以选择秘密密钥Keyi,skew。类似地,聚合服务器180-B可以选择秘密密钥Keyc,skew。聚合服务器180-A和180-B可以基于指定的时间段周期性地、每批展示或转换数据、或基于其它适当的准则来选择新的密钥。
聚合服务器180-A接收展示数据(602)。在这个示例中,用于每个展示的展示数据可以包括盲签名的展示密钥(BlindlySignedKey(ID,dc_destination,report_domain))、三次加密的展示数据(ImpressionData3p)和展示时间数据(ImpressionTime2)。盲签名的展示密钥和三次加密的展示数据可以与过程300的盲签名的展示密钥和三次加密的展示数据相同或相似。展示时间数据表示展示发生的时间并且可以被加密。
展示时间数据(ImpressionTime2)可以使用聚合服务器180-A的公钥Si和聚合服务器180-B的公钥进行两次加密。例如,展示时间数据(ImpressionTime2)可以被定义为PubKeyEncrypt(T(tm+tdevice),Si),Sc)。在这个示例中,tm是展示或点击时间(例如,数字组件被呈现或与之交互的时间)并且tdevice是其上安装了呈现数字组件的应用112的客户端设备110的时钟偏差。在这个示例中,使用加密技术T和聚合服务器180-A的公钥Si对两次之和进行加密。加密技术T可以是同态加法概率性公钥加密技术(例如,Paillier加密系统)。然后使用聚合服务器180-B的公钥Sc对这个加密的值进行加密。这个第二加密可以是确定性或概率性加密技术。
聚合服务器180-B接收转换数据(604)。在示例中,转换数据可以包括盲签名的转换密钥(BlindlySignedKey(ID,conversion_domain,report_domain))、三次加密的转换数据(ConversionData3p)和转换时间数据(ConversionTime2)。盲签名的转换密钥和三次加密的转换数据可以与过程300的盲签名的转换密钥和三次加密的转换数据相同或相似。转换时间数据表示转换发生的时间并且可以被加密。
可以使用聚合服务器180-A的公钥Si和聚合服务器180-B的公钥Sc对转换时间数据(ConversionTime2)进行两次加密。例如,转换时间数据(ConversionTime2)可以由PubKeyEncrypt(T(zn+tdevice),Sc),Si)表示。在这个示例中,zn是转换时间(例如,完成转换的时间)并且tdevice是其上安装了呈现数字组件的应用112的客户端设备110的时钟偏差。在这个示例中,使用加密技术T和聚合服务器180-B的公钥Sc对两次之和进行加密。加密技术T可以是同态加法概率性公钥加密技术(例如,Paillier加密系统)。然后使用聚合服务器180-A的公钥Si对这个加密的值进行加密。这个第二加密可以是确定性或概率性加密技术。
对于每个展示,聚合服务器180-A使用交换加密和其选择的加密密钥Keyi1来加密联接密钥(606)。类似于过程300,用于展示的联接密钥可以是用于展示的盲签名的联接展示密钥(BlindlySignedKey(ID,dc_destination,report_domain))。聚合服务器180-A然后可以针对每个展示向聚合服务器180-B提供加密的联接密钥、三次加密的展示数据(ImpressionData3p)和两次加密的展示时间数据(ImpressionTime2)。换句话说,聚合服务器180-A可以针对每个展示发送元组:{H(BlindlySignedKey,Keyi1),ImpressionData3p,ImpressionTime2}。元组可以以随机或伪随机次序发送。
对于每个转换,聚合服务器180-B使用交换加密和其选择的加密密钥Keyc1来加密联接密钥(608)。类似于过程300,用于转换的联接密钥是用于转换的盲签名的转换密钥(BlindlySignedKey(ID,conversion_domain,report_domain))。聚合服务器180-B然后可以针对每个转换向聚合服务器180-A提供加密的联接密钥、三次加密的转换数据(ConversionData3p)和两次加密的转换时间数据(ConversionTime2)。换句话说,聚合服务器180-B可以针对每个展示发送元组:{H(BlindlySignedKey,Keyc),ConversionData3p,ConversionTime2}。元组可以以随机或伪随机次序发送。
对于每个接收到的元组,聚合服务器180-A解密转换时间数据(610)。聚合服务器180-A可以使用与聚合服务器180-A的公钥Si对应的私钥来对转换时间数据(ConversionTime2)进行解密。这种解密恢复(T(zn+tdevice),Sc)。
聚合服务器180-A还可以使用其选择的加密密钥Keyi2在已经交换加密的盲签名展示密钥(H(BlindlySignedKey,Keyc))之上应用交换加密。其结果是加密的盲签名密钥
聚合服务器180-A可以计算时间偏差值(time_skewi)。例如,聚合服务器180-A可以计算作为时间偏差值(time_skewi)的秘密密钥Keyi,skew和加密的盲签名转换密钥的HMAC,例如,HMACSHA256(Keyi,skew,)。
然后聚合服务器180-A可以为每个接收到的元组生成一次加密的转换时间数据(ConversionTime1)。在一些实施方式中,一次加密的转换时间数据(ConversionTime1)是使用同态加法概率性公钥加密技术T,例如,T(zn+tdevice+time_skewi,Sc)生成的。在这个示例中,转换时间(zn)、客户端设备的时钟偏差(tdevice)和时间偏差值(time_skewi)的总和是使用聚合服务器180-B的公钥Sc加密的。
如上面参考过程300的步骤310所描述的,聚合服务器180-A还可以对三次加密的转换数据(ConversionData3p)进行解密和重新加密。即,聚合服务器180-A可以使用其私钥(与公钥Si对应的私钥)解密三次加密的转换数据(ConversionData3p)以恢复两次加密的转换数据(ConversionData2)。聚合服务器180-A然后可以使用其选择的加密密钥Keyi2重新加密两次加密的转换数据(ConversionData2),以获得三次加密的转换数据(ConversionData3p)。
聚合服务器180-A可以为每个唯一的三次加密的转换数据(ConversionData3p)确定与三次加密的转换数据(ConversionData3p)相关联的唯一加密的盲签名转换密钥的数量。如果与用于转换的三次加密的转换数据(ConversionData3p)相关联的唯一加密的盲签名转换密钥/>的数量满足阈值(例如,基于阈值化要求),那么聚合服务器180-A向聚合服务器180-B发送元组/>ConversionData3p,ConversionTime1}。
对于每个接收到的元组,聚合服务器180-B解密展示时间数据(612)。聚合服务器180-B可以使用与聚合服务器180-B的公钥Sc对应的私钥来解密展示时间数据(ImpressionTime2)。这种解密恢复(T(tm+tdevice),Si)。
聚合服务器180-B还可以使用其选择的加密密钥Keyc2在已经交换加密的盲签名的转换密钥(H(BlindlySignedKey,Keyi))之上应用交换加密。其结果是加密的盲签名密钥
聚合服务器180-B可以计算时间偏差值(time_skewc)。例如,聚合服务器180-B可以作为时间偏差值(time_skewc)计算密钥Keyc,skew和加密的盲签名转换密钥的HMAC,例如,HMACSHA256(Keyc,skew,(BlindlySignedKey)。
聚合服务器180-B然后可以为每个接收到的元组生成一次加密的展示时间数据(ImpressionTime1)。在一些实施方式中,一次加密的转换时间数据(ImpressionTime1)是使用同态加法概率性公钥加密技术T生成的,例如,T(tm+tdevice+time_skewc,Si)。在这个示例中,展示时间(tm)、客户端设备的时钟偏差(tdevice)和时间偏差值(time_skewc)的总和是使用聚合服务器180-A的公钥Si进行加密的。
如上面参考过程300的步骤312所描述的,聚合服务器180-B还可以对三次加密的展示数据(ImpressionData3p)进行解密和重新加密。即,聚合服务器180-B可以使用其私钥(与公钥Sc对应的私钥)解密三次加密的转换数据(ImpressionData3p)以恢复两次加密的展示数据(ImpressionData2)。聚合服务器180-A然后可以使用其选择的加密密钥Keyc2重新加密两次加密的展示数据(ImpressionData2),以获得三次加密的展示数据(ImpressionData3p)。
聚合服务器180-B可以为每个唯一的三次加密的展示数据(ImpressionData3p)确定与三次加密的展示数据(ImpressionData3p)相关联的唯一的加密的盲签名转换密钥的数量。如果与用于展示的三次加密的展示数据(ImpressionData3p)相关联的唯一加密的盲签名转换密钥/>的数量满足阈值(例如,基于差异隐私阈值化要求),那么聚合服务器180-B向聚合服务器180-A发送元组{/>ImpressionData3,ImpressionTime1}。
聚合服务器180-A联接并过滤从聚合服务器180-B接收的加密的展示和转换数据(614)。聚合服务器180-A可以将从聚合服务器180-A接收的元组{Keyi),ImpressionData3,ImpressionTime1}与聚合服务器180-A使用加密的盲签名密钥在步骤610中生成的元组/>ConversionData3p,ConversionTime1}联接起来。对于每个加密的盲签名密钥/>聚合服务器180-A在表中形成包括/>ImpressionData3p,ImpressionTime1,ConversionData3p,ConversionTime1}的元组或行。
由于应用112可以报告针对同一数字组件的多个展示,因此对于每个加密的盲签名密钥可以多次发生展示数据(ImpressionData3)。聚合服务器180-A可以针对每个具有相同的加密的盲签名密钥/>和相同的三次加密的转换数据(ConversionData3p)的三次加密的展示数据(ImpressionData3p)使用其公钥Si解密一次加密的展示时间数据(ImpressionTime1)以获得未加密的时间数据(ImpressionTime0),其包括t’m=tm+tdevice+time_skewc。聚合服务器180-A不知道time_skewc的值。如果使用同设备归因,那么设备的时钟偏差(tdevice)是固定的,但聚合服务器180-A不知道。如果使用跨设备归因,那么设备的时钟偏差(tdevice)对于与相同加密的盲签名密钥/>相关联的不同展示可以不同,因为数据可以来自多个设备并且是聚合服务器180-A不知道的。在任一情况下,聚合服务器180-A都无法从t'm推断出展示/点击时间(tm),因此无法轻松发起基于时间的攻击来跟踪用户。
聚合服务器180-A可以将展示时间(ImpressionTime0)确定为tm+tdevice+time_skewc+time_skewi。对于联接的展示数据(ImpressionData3p)和转换数据(ConversionData3p)的每个组合,聚合服务器180-A可以确定唯一的加密盲签名密钥的数量是否满足或超过阈值(例如,k-匿名隐私阈值)。如果满足,那么聚合服务器180-A可以将元组{/>ImpressionData3p,ImpressionTime0}发送到聚合服务器180-B用于组合。在一些实施方式中,聚合服务器180-A还可以使用子采样技术用于差异隐私,如上面参考过程300所描述的。
聚合服务器180-B还联接并过滤从聚合服务器180-A接收的加密的展示和转换数据(616)。聚合服务器180-B可以将从聚合服务器180-A接收的元组{ConversionData3,ConversionTime1}与聚合服务器180-B使用加密的盲签名密钥在步骤612中生成的元组{/>Keyi),ImpressionData3,ImpressionTime1}联接起来。对于每个加密的盲签名密钥/>聚合服务器180-A在表中形成包括{/>ImpressionData3p,ImpressionTime1,ConversionData3p,ConversionTime1}的元组或行。
聚合服务器180-B还可以使用其公钥Sc对具有相同加密的盲签名密钥和相同的三次加密的转换数据(ConversionData3p)的每个三次加密的展示数据(ImpressionData3p)解密一次加密的转换时间数据(ConversionTimel)以获得未加密的时间数据(CompressionTime0),其包括t’m=tm+tdevice+time_skewi
聚合服务器180-B可以将转换时间(ConversionTime0)确定为zn+tdevice+time_skewi+time_skewc。对于联接的展示数据(ImpressionData3p)和转换数据(ConversionData3p)的每个组合,聚合服务器180-B可以确定唯一加密的盲签名密钥的数量是否满足或超过阈值(例如,k-匿名隐私阈值)。如果满足,那么聚合服务器180-B可以向聚合服务器180-A发送用于组合的元组{/>ConversionData3p,ConversionTime0}。在一些实施方式中,聚合服务器180-B还可以使用子采样技术用于差异隐私,如上面参考过程300所描述的。
此时,聚合服务器180-A和180-B两者都可以使用加密的盲签名密钥来联接展示和转换数据与时间以针对每个唯一的加密的盲签名密钥/>形成以下形式的记录:{/>ImpressionData3p,ImpresionTime0,ConversionData3p,ConversionTime0}。
聚合服务器180-A生成展示和转换的时间顺序次序(618)。对于每个唯一的加密的盲签名密钥聚合服务器180-A可以比较每条展示数据(ImpressionData3p)的展示时间(ImpressionTime0)与每条转换数据(ConversionData3p)的转换时间(ConversionTime0),以使用时间为加密的盲签名密钥/>生成(一个或多个)展示和(一个或多个)转换的时间顺序序列。
聚合服务器180-B生成展示和转换的时间顺序次序(620)。对于每个唯一的加密的盲签名密钥聚合服务器180-A可以比较每条展示数据(ImpressionData3p)的展示时间(ImpressionTime0)与每条转换数据(ConversionData3p)的转换时间(ConversionTime0),以使用时间为加密的盲签名密钥/>生成(一个或多个)展示和(一个或多个)转换的时间顺序序列。
由于每个唯一的加密的盲签名密钥与特定的数字组件和特定的唯一标识符(ID)对应,因此用于加密的盲签名密钥/>的时间顺序序列包括数字组件对于唯一标识符的一个或多个展示(例如,在与唯一标识符对应的用户的一个或多个设备处)以及由于特定数字组件的呈现而产生的一个或多个转换。例如,如果特定数字组件多次呈现给同一用户,那么该序列可以包括多个展示,并且该序列可以包括不同类型的多个转换(例如,一个用于将物品添加到虚拟购物车,一个用于完成物品的获取)。
时间顺序次序使聚合服务器180-A和180-B能够独立地执行归因过程以将转换归因于展示。例如,在最后点击归因模型中,聚合服务器180-A和180-B可以识别包括转换之前序列中的点击的最后展示并且将转换归因于最后展示。聚合服务器180-A和180-B还可以验证彼此的结果,例如,通过将其结果与另一个聚合服务器的结果进行比较。虽然未在图6中示出,但是聚合服务器180-A和180-B可以一起工作以解密展示和转换数据,如上面参考图3的步骤318-332所描述的。聚合服务器180-A和180-B可以在转换报告中连同其它数据一起报告归因。
可以采取一些附加步骤来防止或检测基于时间间隔的攻击。对于与相同的加密的盲签名密钥相关联的多个展示/点击,聚合服务器180-A将具有t'm,其中m是整数。假设t'm按时间顺序从最旧到最近排序,聚合服务器180-A可以计算两个相邻展示之间的时间间隔Λ',例如,Λ’m=t’m+1-t’m。假设tdevice足够小,那么Λ’m≈Λm=t’m+1-t’m。如果数字组件分发系统向用户提供一系列展示,那么数字组件分发系统可以记录两个相邻展示之间的时间间隔,即,Λm。基于上述,如果数字组件分发系统与聚合服务器180-A共谋,那么数字组件分发系统可以能够基于时间间隔识别个体用户。如果数字组件分发系统与聚合服务器180-B共谋,那么数字组件分发系统还可以启动类似的基于时间间隔的攻击。
阻止这些基于时间间隔的攻击的一种选择是使用具有以下特性的单调递增函数。给定两个任意数字a和b,两个值a–b和,(a)-,(b)不相关。即,知道a–b无助于预测,(a)-,(b),反之亦然。
利用该函数,可以将展示时间数据(ImpressionTime2)定义为PubKeyEncrypt(T(,(tm+tdevice),Si),Sc)。在这个示例中,Λ’m=,(tm+1+tdevice+skew)-,(tm+tdevice+skew)。因此,Λ’m≠Λm并且基于时间间隔的攻击被暂停(broken)。
阻止基于时间间隔的攻击的另一个选择是修改过程600以包括专用时间服务器192。在过程600开始时,聚合服务器180-A接收形式为{BlindlySignedKey(ID,dc_destination,report_domain),ImpressionData3p,T(tm+tdevice,Stime)}的展示数据。在这个示例中,使用时间服务器192的公钥Stime对展示/点击时间tm和设备的时钟偏差tdevice的总和进行加密。例如,应用112或客户端设备110可以使用公钥Stime来加密时间数据。类似地,聚合服务器180-B接收形式为{BlindlySignedKey(ID,conversion_domain,report_domain),ConversionData3p,T(zn+tdevice,Stime)}的转换数据。在这个示例中,使用时间服务器192的公钥Stime对转换时间zn和设备的时钟偏差tdevice的总和进行加密。例如,应用112或客户端设备110可以使用公钥Stime对时间数据进行加密。
在修改后的步骤606中,聚合服务器180-A可以代替地向聚合服务器180-B发送形式为{H(BlindlySignedKey,Si),ImpressionData3p,T(tm+tdevice,Stime)}的元组。即,聚合服务器180-A可以用秘密密钥Si对盲签名的密钥进行加密并且原样传递展示和时间数据。
类似地,在修改后的步骤608中,聚合服务器180-B可以代替地向聚合服务器180-A发送形式为{H(BlindlySignedKey,Sc),ImpressionData3p,T(zn+tdevice,Stime)}的元组。即,聚合服务器180-B可以用秘密密钥Sc对盲签名的密钥进行加密并且原样传递展示和时间数据。
在修改后的步骤610中,聚合服务器180-A可以生成形式为{H(BlindlySignedKey),ConversionData3,T(zn+tdevice+time_skewi,Stime)}的元组并将其发送到聚合服务器180-B。在这个示例中,应用于转换数据(ConversionData3p)的概率性加密被替换为要创建(ConversionData3)的确定性加密。此外,聚合服务器180-A可以向加密的展示时间添加随机噪声,其中噪声是从H(BlindlySignedKey)和秘密密钥Si加密导出的。类似地,在步骤612中,聚合服务器180-B可以生成形式为{H(BlindlySignedKey),ImpressionData3,T(tm+tdevice+time_skewc,Stime)}的元组并将其发送到聚合服务器180-A。
在修改后的步骤614中,聚合服务器180-A可以联接和过滤数据集,如上面参考过程600的原始步骤614所描述的。代替将展示时间(ImpressionTime0)确定为tm+tdevice+time_skewc+time_skewi,聚合服务器180-A可以确定加密的展示时间值(ImpressionTime3_skew)。例如,加密的展示时间值(ImpressionTime3_skew)可以被定义为T(tm+tdevice+time_skewc+time_skewi,Stime)。即,加密的展示时间值(ImpressionTime3_skew)是使用同态加法概率性公钥加密技术T和时间服务器192的公钥Stime加密的时间值之和。
对于联接的展示数据(ImpressionData3)和转换数据(ConversionData3)的每个组合,聚合服务器180-A可以确定唯一的加密的盲签名密钥的数量是否满足或超过阈值(例如,差异隐私阈值)。如果满足,那么聚合服务器180-A可以将元组{ImpressionData3,ImpressionTime3_skew}发送到聚合服务器180-B用于组合。/>
在修改后的步骤616中,聚合服务器180-B可以联接和过滤数据集,如上面参考原始过程600的原始步骤616所描述的。代替将展示时间(ConversionTime0)确定为zn+tdevice+time_skewc+time_skewi,聚合服务器180-B可以确定加密的转换时间值(ConversionTime3_skew)。例如,加密的转换时间值(ConversionTime3_skew)可以被定义为T(zn+tdevice+time_skewc+time_skewi,Stime)。即,加密的转换时间值(ConversionTime3_skew)是使用同态加法概率性公钥加密技术T和时间服务器192的公钥Stime加密的时间值之和。
对于联接的展示数据(ImpressionData3p)和转换数据(ConversionData3)的每个组合,聚合服务器180-B可以确定唯一的加密的盲签名密钥的数量是否满足或超过阈值(例如,差异隐私阈值)。如果满足,那么聚合服务器180-B可以将元组{/>ConversionData3,ConversionTime3_skew}发送到聚合服务器180-A用于组合。
此时,聚合服务器180-A和180-B两者都可以使用加密的盲签名密钥来联接展示和转换数据与时间以针对每个唯一的加密的盲签名密钥/>形成以下形式的记录:{/>ImpressionData3,ImpresionTime3_skew,ConversionData3,ConversionTime3_skew}。
在由多条展示数据(ImpressionData3)和多条转换数据(ConversionData3)组成的每个记录内,与相同或多个加密的盲签名密钥相关联,聚合服务器180-A可以向加密的时间值(ImpresionTime3_skew和ConversionTime3_skew)指派随机或伪随机索引。聚合服务器180-A可以将这些索引连同加密的时间值(但不是盲签名的密钥或展示或转换数据)一起发送到时间服务器192。时间服务器192可以使用与公钥Stime对应的私钥对加密的时间值进行解密,对这些解密的但三重偏差的时间值进行排序,并按时间顺序次序将索引发送回聚合服务器180-A。
以这种方式,时间服务器192不能访问任何用户数据。时间服务器192甚至无法访问三重偏差的时间值的目的,或者三重偏差的时间值的集合是否与相同的加密的盲签名密钥相关联。在不与聚合服务器180-A共谋的情况下,时间服务器192不能发起基于时间或时间间隔的攻击。
聚合服务器180-A可以使用与数据对应的加密的时间值的索引来为每个记录排序展示数据ImpressionData3)和转换数据(ConversionData3)。通过这种次序,聚合服务器180-A可以执行归因过程以将转换归因于展示,如上所述。聚合服务器180-B可以执行将索引指派给加密的时间值并与时间服务器192交互以对数据进行排序以用于归属的相同过程。当聚合服务器180-A和180-B都完成了这个过程时,聚合服务器180-A和180-B可以比较结果。
数据驱动的归因
本文档中描述的MPC过程(例如,图3的过程300)可以适用于支持数据驱动的归因(DDA)。数据驱动的归因将基于用户的动作的转换归功于数字组件、活动和/或搜索关键字。例如,DDA可以使用转换数据来计算每个关键字在导致转换的转换路径中的实际贡献。这通过将满足聚合阈值的完整路径报告给报告系统190以供稍后处理以应用功劳(credit)来工作。
图7是图示用于使用数据驱动的归因将转换归因于展示的示例过程700的流程图。过程700可以由图1和2的聚合服务器180-A和180-B执行。
为了跟踪DDA,数字组件和/或转换系统190可以通知客户端设备110的应用112以启用DDA(702)。当启用DDA时,应用112可以修改盲签名的联接密钥的定义以考虑数字组件是否被点击或以其它方式与之交互。对于数字组件的点击展示,应用112可以将用于每个展示的盲签名的展示密钥(BlindlySignedKey(ID,dc_destination,report_domain))的定义修改为BlindlySignedKey(ID||clicked,dc_destination,report_domain)。在这个定义中,盲签名的展示密钥是复杂消息,其包括单向加密散列函数,该函数将复杂消息(ID||clicked,dc_destination,report_domain)映射到散列值和用于盲签名的展示密钥的盲签名(blind_singature)。在DDA仅考虑点击(或与之交互)的展示的情况下,clicked参数将始终为真或具有值一。
接收展示和转换数据(704)。例如,如上所述,例如按批,聚合服务器180-A可以接收展示数据并且聚合服务器180-B可以接收转换数据。当应用112如上所述报告展示时,应用112可以向聚合服务器180-A发送展示数据Mi,该展示数据Mi包括盲签名的联接密钥(BlindlySignedKey)和三次加密的展示数据(ImpressionData3p)。类似地,当应用112如上所述报告转换时,应用112可以向聚合服务器180-B发送转换数据Mc,该转换数据Mc包括盲签名的联接密钥(BlindlySignedKey)和三次加密的转换数据(ConversionData3p)。在这个示例中,盲签名的密钥是考虑了参数clicked的修改版本。
生成展示和转换的序列(706)。在生成序列之前,每个聚合服务器180-A和180-B可以联接并过滤数据,如上面参考过程300的步骤306-316所描述的。在联接和过滤完成之后,每个聚合服务器都具有以下形式的与给定用户相关联的每个唯一的盲签名联接密钥(BlindlySignedKey)的记录:{ImpressionData3,1,ImpressionData3,2,ImpressionData3,i…,ConversionData3}。以这种形式,展示和(一个或多个)转换可以按时间顺序排列。盲签名的联接密钥(BlindlySignedKey)的这种按时间顺序排列的序列可以被称为序列。
对于每个唯一序列,聚合服务器180-A和180-B都确定具有该唯一序列的盲签名的联接密钥(BlindlySignedKey)的数量(708)。例如,多个用户可能在转换事件之前以相同的次序点击了相同的数字组件。在此类情况下,展示和转换的序列将针对每个用户具有唯一的盲签名的联接密钥(BlindlySignedKey)。
过滤序列(710)。例如,每个聚合服务器180-A和180-B可以基于隐私或其它阈值化要求来过滤序列。在特定示例中,聚合服务器180-A和180-B可以从序列中过滤不具有至少阈值数量的唯一盲签名的联接密钥(BlindlySignedKey)的每个序列。其结果是{Occurrencem,Sequencem}对的列表,其中m=1,2,...M。
解密展示和转换数据(712)。可以使用过程300的步骤318-328的MPC过程来解密展示和转换数据。解密产生形式为{Occurrence1,ImpressionData1,1,…ImpressionData1,?,ConversionData1,1}、{Occurrence2,ImpressionData1,2,…ImpressionData1,?,ConversionData1,2}的元组。每个元组包括其展示和转换数据的序列,使用报告域190的公钥一次加密。
展示和转换数据被发送到其相应的报告系统(714)。报告系统190然后可以将它们的DDA技术(例如,Shapley值)应用于最终的序列集以分配功劳。
由于DDA是多个域之间的跨站点报告,因此可以满足阈值要求的不同序列的数量可能少,尤其是在以下情况下:如果在展示和/或转换数据中编码了大量信息,从而导致每个展示数据(ImpressionData3p)的许多不同发生和转换数据(ConversionData3p)的许多不同发生。在此类情况下,可以将差异隐私噪声添加到最终测量报告中每个序列的发生次数,以保护用户隐私,这对于数字组件提供者来说可能是低效用的。
通过减少展示数据(ImpressionData3p)和/或转换数据(ConversionData3p)的熵,或者通过扩大报告窗口,可以在仍然保护用户隐私的同时改进该效用。如果展示数据的次序不重要,或者可以忽略重复的展示数据,那么数字组件提供者可以通知转换站点处的聚合服务器180-A和180-B。在这种情况下,聚合服务器180-A和180-B将计算与每个集合(序列)相关联的唯一盲签名的联接密钥(BlindlySignedKey)的数量,并相应地应用阈值化和子采样。
确定聚合转换值
本文档中描述的MPC过程(例如,图3的过程300),除了转换和展示的次数之外还可以适用于支持报告转换值。对于每个转换,广告商可以附加数字转换值,例如,在数字组件提供者的网站上花费的金额。假设对于特定的展示和转换对,存在n个转换,并附有对应的数字转换值{V1,V2,…Vn}。转换的次数为总转换值为/>转换值的平方和为/>转换值的平均值为/>而方差为/>为了比较两个活动的有效性,可以假设转换值的分布(如果发生转换)遵循正态分布,然后比较两个正态分布之间是否存在显著差异。为此,需要二阶矩方差(Ai,2)。
为了使聚合服务器180-A和180-B能够安全地计算转换值(A1),可以使用支持数字加法运算的交换加密技术H。即,对于两个任意整数值x和y,H(x+y)=HomomorphicAddition(H(x),H(y))。给定报告系统190计算转换的次数A0,这是获得总转换值A1并计算明文(inthe clear)平均值的安全方式。
图8是图示用于确定聚合转换值的示例过程800的流程图。过程800可以由图1和2的聚合服务器180-A和180-B执行。
接收展示和转换数据(802)。例如,如上所述,例如按批,聚合服务器180-A可以从客户端设备接收展示数据并且聚合服务器180-B可以从客户端设备接收转换数据。当应用112如上所述报告展示时,应用112可以向聚合服务器180-A发送展示数据Mi,该展示数据Mi包括盲签名的联接密钥(BlindlySignedKey)和三次加密的展示数据(ImpressionData3p)。
类似地,当应用112如上所述报告转换时,应用112可以向聚合服务器180-B发送转换数据Mc,该转换数据Mc包括盲签名的联接密钥(BlindlySignedKey)和三次加密的转换数据(ConversionData3p)。在这个示例中,盲签名的密钥是考虑参数clicked的修改版本。但是,在这个示例中,对于转换,转换数据Mc还可以包括转换值(V)和/或转换值平方(V2)。概括地说,转换数据Mc可以包括任何数量的转换值V1,V2,…Vn,如Vi所指定的。其中一个Vi可以是另一个Vj的平方。
应用112可以发送值Vi的加密版本,而不是发送实际值Vi。在一些实施方式中,转换系统172可以用概率同态加法公钥加密H(例如,Pailler加密系统)对值Vi进行加密,并将H(Vi,report_domain)发送到应用112。在这个示例中,这些值与将接收用于数字组件的转换报告的报告域(report_domain)组合在一起,并使用加密技术H进行加密。
应用112可以接收H(Vi,report_domain)并生成一个或多个三次加密的转换值和三次加密的平方转换值。例如,应用112可以生成PublicKeyEncrypt(H(Vi,report_domain),Sc,Si)作为三次加密的转换值。在这个示例中,从转换系统172接收的加密的转换值使用聚合服务器180-B的公钥Sc加密,并且这个结果使用聚合服务器180-A的公钥Si加密。这个三次加密的转换值也可以被称为ConversionValue3p,因为第三次加密可以是概率性的。
对盲签名的联接密钥进行加密(804)。例如,如以上关于过程300的步骤306所描述的,聚合服务器180-A可以使用交换加密和其选择的加密密钥Keyi1来加密接收的展示数据中的盲签名的联接密钥(BlindlySignedKey)。聚合服务器180-A然后可以针对每个展示向聚合服务器180-B发送一对:{H(BlindlySignedKey,Keyi1),ImpressionData3p}。
类似地,如上面关于过程300的步骤308所描述的,聚合服务器180-B可以使用交换加密和其选择的加密密钥Keycl来加密接收到的转换数据中的盲签名的联接密钥(BlindlySignedKey)。聚合服务器180-A然后可以针对每个转换向聚合服务器180-A发送元组:{H(BlindlySignedKey,Keyc1),ConversionData3p,ConversionValue3p}。
转换值(ConversionValue3p)被解密(806)。例如,聚合服务器180-A可以使用与公钥Si对应的私钥解密转换值(ConversionValue3p)。这导致恢复了由PubKeyEncrypt(H(Vi,report_domain),Sc)定义的两次加密的转换值(ConversionData2)。聚合服务器180-B可以在本地保存这个两次加密的转换值(ConversionData2)。
加密的展示和转换数据被联接并过滤(808)。例如,每个聚合服务器180-B可以联接并过滤数据。在这个示例中,聚合服务器180-A可以使用盲签名的密钥联接转换值(ConversionValue2)、转换数据(ConversionData3)和展示数据(ImpressionData3),类似于过程300的步骤314,但是具有附加的转换值(ConversionValue2)。聚合服务器180-A然后可以基于阈值过滤联接的记录,类似于过程300的步骤314。例如,聚合服务器180-A可以从数据集中过滤具有多个未满足或超过阈值的唯一盲签名密钥/>的{ConversionValue2,ConversionData3,ImpressionData3}的联接的记录。
对于每个剩余的联接的记录,聚合服务器180-A可以生成密钥/值对。在这个示例中,密钥可以是盲签名密钥三次加密的展示数据(ImpressionData3)和三次加密的转换数据(ConversionData3)的加密散列。值可以是两次加密的转换值(ConversionValue2)。这个密钥/值对可以被定义为{CrytpoHash(H(Key),ImpressionData3,ConversionData3),ConversionValue2}。聚合服务器180-A可以将密钥/值对发送到聚合服务器180-B。
聚合服务器180-B可以对其数据执行相同的过滤,以生成以下数据集,其包括过滤之后剩余的元组{H(Key),ImpressionData3,ConversionData3}的相同集合。聚合服务器180-B可以对元组执行相同的加密散列,例如,CrytpoHash(H(Key),ImpressionData3,ConversionData3)以获得每个元组的密钥。聚合服务器180-B可以通过将生成的密钥与密钥/值对的密钥进行匹配来将这个数据与从聚合服务器180-A接收的密钥/值对联接。
两次加密的转换值(ConversionValue2)被解密(810)。聚合服务器180-B可以使用其与公钥Sc对应的私钥解密两次加密的转换值(ConversionValue2)以恢复一次加密的转换值(ConversionValue1),其使用报告系统190的公钥加密一次,如上所述。聚合服务器180-B可以将每个一次加密的转换值(ConversionValue1)及其密钥(CrytpoHash(H(Key),ImpressionData3,ConversionData3))发送到聚合服务器180-A。
确定总转换值(812)。每个聚合服务器180-A和180-B可以确定具有相同展示数据(ImpressionData3)和转换数据(ConversionData3)的每个记录的总转换值。即,对于ImpressionData3和ConversionData3的每个联接的组合,聚合服务器180-A和180-B可以独立地确定转换值(ConversionValue1)的总和。由于转换值被加密,因此总和可以由H(∑V,report_domain)确定。
展示和转换数据,包括总转换值,被发送到报告系统(814)。例如,聚合服务器180-A和180-B可以使用步骤318-328中描述的MPC过程来解密展示和转换数据。每个聚合服务器180-A然后可以生成并针对每个展示和转换对向报告系统190发送报告,该报告包括展示数据(ImpressionData1)、转换数据(ConversionData1)、转换数的计数(count),以及转换值(H(∑V,report_domain))…(H(∑Vn,teport_domain))。例如,可以有多个求和值,一个是转换值的总和,一个是转换值的平方之和,例如sum(V1)和sum(V2),其中V2=V1 2
报告系统190可以比较来自两个聚合服务器180-A和180-B的两个报告以确保它们匹配。如果它们匹配,那么报告系统190可以验证来自欺诈检测系统170的盲签名和转换服务器在转换数据mc上的签名。如果两个签名都被验证,那么报告系统190可以解密转换报告中的数据以对于每个展示和转换对使用其与用于加密数据的其公钥对应的私钥恢复{mi||clicked,mc,count,∑V…∑Vn}。即,报告系统190可以恢复展示数据(mi)、数字组件是否被点击、转换数据(mc)、转换数的计数(count)以及每个展示和转换对的总转换值。
差异隐私
类似于过程300,子采样可以用于过程800中以用于差异隐私。在过程800的步骤808中,聚合服务180-A和180-B可以使用与过程300的步骤314和316中类似的子采样技术来向总转换值∑Vi引入噪声。此外,聚合服务器180-A和180-B可以在发送转换报告之前将随机噪声添加到每个转换值(H(∑V,report_domain))。对于每个转换值(H(∑V,report_domain)),每个聚合服务器180-A和180-B可以代替地生成(H(noisek+∑V,report_domain))。聚合服务器180-A和180-B两者都可以通过使用聚合服务器180-A和180-B(例如,使用Diffie-Hellman协议)共同导出的公共种子初始化随机数生成器来生成一致的噪声(noisek)。
用于跨设备测量的附加用户隐私保护
如上所述,当确定跨多个设备的展示和转换计数以及转换值时,唯一标识符(ID)可以是关于用户的信息或基于这种信息,例如,用户电子邮件地址的加密散列。使用上面针对展示数据(ImpressionData3p)和转换数据(ConversionData3p)描述的概率性加密,聚合服务器180-A和180-B可以确定用户的一定数量的转换,但与展示或转换本身无关。但是,聚合服务器180-A和180-B可以检测到用户有一些在线活动。
图9是图示用于确定聚合的转换数据的示例过程900的流程图。过程900可以由聚合服务器180-A和180-B执行。
接收展示和转换数据(902)。例如,如上所述,例如按批,聚合服务器180-A可以从客户端设备接收展示数据并且聚合服务器180-B可以从客户端设备接收转换数据。
在这个示例中,对于数字组件的每个展示,展示数据可以是{H(CryptoHash(ID,dc_destination,report_domain),Stime),ImpressionData3p}的形式。在这个示例中,唯一标识符(ID)、目的地(dc_destination)和报告域的加密散列使用加法同态公钥加密技术H和时间服务器192的公钥Stime进行加密。这种加密的加密散列用作展示联接密钥。展示数据还包括三次加密的展示数据(ImpressionData3p),其可以如上面参考图2所描述地进行加密。
对于数字组件的每个转换,转换数据可以是{H(CryptoHash(ID,dc_destination,report_domain),Stime),ConversionData3p}的形式。在这个示例中,唯一标识符(ID)、目的地(dc_destination)和报告域的加密散列使用加法同态公钥加密技术H和时间服务器192的公钥Stime进行加密。这种加密的加密散列用作转换联接密钥。转换数据还包括三次加密的转换数据(ConversionData3p),其可以如上面参考图2所描述地进行加密。在不与时间服务器192共谋的情况下,聚合服务器180-A或180-B由于加密技术H的概率性质都不能恢复CryptoHash(ID,dc_destination,report_domain)或搞清楚H(CryptoHash(…))。
选择临时数(904)。在执行MPC过程以解密展示和转换数据之前,聚合服务器180-A和180-B可以各自选择临时数。聚合服务器180-A可以选择临时数noncei并且聚合服务器180-B可以选择临时数noncec。聚合服务器180-A和180-B两者都可以保密地保持其各自的临时数。
联接密钥被加密(906)。例如,聚合服务器180-A可以使用交换加密和其选择的加密密钥Keyi1来加密接收到的展示数据中的联接密钥H(CryptoHash(…)),如上面关于过程300的步骤306所描述的。聚合服务器180-A然后可以针对每个展示向聚合服务器180-B发送一对:{H(CryptoHash(ID,dc_destination,report_domain)+noncei,Stime),ImpressionData3p}。
类似地,如以上关于过程300的步骤308所描述的,聚合服务器180-B可以使用交换加密和其选择的加密密钥Keycl来加密接收的展示数据中的联接密钥H H(CryptoHash(…))。聚合服务器180-B然后可以针对每个展示向聚合服务器180-A发送一对:{H(CryptoHash(ID,dc_destination,report_domain)+noncec,Stime),ConversionData3p}。
生成更新后的联接密钥(908)。对于接收到的每对加密的联接密钥和三次加密的转换数据{H(CryptoHash(ID,dc_destination,report_domain)+noncei,Stime),ImpressionData3p},聚合服务器180-A重新加密联接密钥和转换数据。如上面参考过程300的步骤310所描述的,聚合服务器180-A可以使用其私钥(与公钥Si对应的私钥)对三次加密的转换数据(ConversionData3p)进行解密以恢复两次加密的转换数据(ConversionData2)。聚合服务器180-A然后可以使用其选择的加密密钥Keyi2重新加密两次加密的转换数据(ConversionData2)。
聚合服务器180-A还可以为每对接收到的加密的联接密钥和三次加密的转换数据H(CryptoHash(ID,dc_destination,report_domain)+noncec,Stime)生成更新后的联接密钥。例如,聚合服务器180-A可以生成更新后的联接密钥H(CryptoHash(ID,dc_destination,report_domain)+noncec+noncei,Stime)。聚合服务器180-A然后可以向聚合服务器180-B发送对{H(CryptoHash(ID,dc_destination,report_domain)+noncec+noncei,Stime),ConversionData3p}。
类似地,如以上参考过程300的步骤312所描述的,聚合服务器180-B可以使用其私钥(与公钥Sc对应的私钥)解密三次加密的展示数据(ImpressionData3p)以恢复两次加密的展示数据(ImpressionData2)。聚合服务器180-B然后可以使用其选择的加密密钥Keyc2重新加密两次加密的展示数据(ImpressionData2)。
聚合服务器180-B还可以为每对接收到的加密的联接密钥和三次加密的展示数据H(CryptoHash(ID,dc_destination,report_domain)+noncei,Stime)生成更新后的联接密钥。例如,聚合服务器180-B可以生成更新后的联接密钥H(CryptoHash(ID,dc_destination,report_domain)+noncei+noncec,Stime)。聚合服务器180-B然后可以向聚合服务器180-A发送对{H(CryptoHash(ID,dc_destination,report_domain)+noncei+noncec,Stime),ImpressionData3p}。
获得联接密钥(910)。例如,每个聚合服务器180-A和180-B可以与时间服务器192交互以获得用于每条展示数据和每条转换数据的联接密钥。聚合服务器180-A可以向时间服务器192发送用于每条展示数据和每条转换数据的H(CryptoHash(ID,dc_destination,report_domain)+noncei+noncec,Stime)。时间服务器192可以使用确定性对称密钥加密技术和为当前批量处理选择的加密密钥来解密和重新加密H(CryptoHash(ID,dc_destination,report_domain)+noncei+noncec,Stime)。重新加密的结果是将展示数据(ImpressionData3p)与对应的转换数据(ConversionData3p)联接起来的联接密钥。聚合服务器180-B可以以类似的方式与时间服务器192交互以获得相同的联接密钥。
展示和转换数据被解密(912)。使用获得的联接密钥,聚合服务器180-A和180-B可以执行MPC过程的其余部分以解密展示和转换数据,如上面在过程300的步骤314-328中所描述的。
解密的展示和转换数据被发送到报告系统(914)。例如,每个聚合服务器180-A和180-B可以向相应的报告系统发送转换报告,如上面参考过程300的步骤330和332所描述的。
为了提供甚至更多的隐私保护,在一些实施方式中,可以在唯一标识符(ID)处使用随机或伪随机数。这个随机或伪随机数可以基于唯一标识符(ID)。例如,随机数可以基于HMACSHA256(e-mail address,email_provider_private_key)。在这个示例中,用于上述密钥中唯一标识符(ID)的随机数可以是使用电子邮件提供者(或其他用户授权实体)的私钥的用户电子邮件地址(或其它用户信息)的HMAC。电子邮件提供者(或用户授权实体)然后可以将唯一标识符(ID)的随机数同步到用户的所有设备和应用。当向聚合服务器180-A和180-B报告展示和转换数据时,则可以使用这个随机数代替唯一标识符(ID)。
图10是可以用于执行上述操作的示例计算机系统1000的框图。系统1000包括处理器1010、存储器1020、存储设备1030和输入/输出设备1040。组件1010、1020、1030和1040中的每一个可以例如使用系统总线1050互连。处理器1010能够处理用于在系统1000内执行的指令。在一些实施方式中,处理器1010是单线程处理器。在另一个实施方式中,处理器1010是多线程处理器。处理器1010能够处理存储在存储器1020或存储设备1030上的指令。
存储器1020存储系统1000内的信息。在一种实施方式中,存储器1020是计算机可读介质。在一些实施方式中,存储器1020是易失性存储器单元。在另一个实施方式中,存储器1020是非易失性存储器单元。
存储设备1030能够为系统1000提供大容量存储。在一些实施方式中,存储设备1030是计算机可读介质。在各种不同的实施方式中,存储设备1030可以包括例如硬盘设备、光盘设备、由多个计算设备(例如,云存储设备)通过网络共享的存储设备,或某种其它大容量存储设备。
输入/输出设备1040为系统1000提供输入/输出操作。在一些实施方式中,输入/输出设备1040可以包括网络接口设备(例如,以太网卡)、串行通信设备(例如,RS-232端口)和/或无线接口设备(例如,802.11卡)中的一个或多个。在另一个实施方式中,输入/输出设备可以包括被配置为接收输入数据并将输出数据发送到外部设备1060(例如,键盘、打印机和显示设备)的驱动器设备。但是,也可以使用其它实施方式,诸如移动计算设备、移动通信设备、机顶盒电视客户端设备等。
虽然在图10中已经描述了示例处理系统,但是本说明书中描述的主题和功能操作的实施方式可以在其它类型的数字电子电路中或者在计算机软件、固件或硬件中实现,包括本说明书中公开的结构及其结构等同物,或者它们中的一个或多个的组合。
本说明书中描述的主题和操作的实施例可以在数字电子电路中或在计算机软件、固件或硬件中实现,包括本说明书中公开的结构和它们的结构等同物,或者它们中的一个或多个的组合。本说明书中描述的主题的实施例可以被实现为编码在计算机存储介质(或多个介质)上的一个或多个计算机程序,即,计算机程序指令的一个或多个模块,用于由数据处理装置执行或控制其操作。可替代地或附加地,程序指令可以被编码在人工生成的传播信号(例如,机器生成的电、光或电磁信号)上,该信号被生成以对信息进行编码以传输到合适的接收器装置以供数据处理装置执行。计算机存储介质可以是计算机可读存储设备、计算机可读存储基板、随机或串行存取存储器阵列或设备或者它们中的一个或多个的组合,或被包括在其中。而且,虽然计算机存储介质不是传播信号,但计算机存储介质可以是编码在人工生成的传播信号中的计算机程序指令的源或目的地。计算机存储介质还可以是一个或多个单独的物理组件或介质(例如,多个CD、盘或其它存储设备),或被包括在其中。
本说明书中描述的操作可以被实现为由数据处理装置对存储在一个或多个计算机可读存储设备上或从其它来源接收的数据执行的操作。
术语“数据处理装置”涵盖用于处理数据的所有种类的装置、设备和机器,例如包括可编程处理器、计算机、片上系统、或前述每种的多个或其组合。装置可以包括专用逻辑电路,例如,FPGA(现场可编程门阵列)或ASIC(专用集成电路)。除了硬件之外,装置还可以包括为所讨论的计算机程序创建执行环境的代码,例如,构成处理器固件的代码、协议栈、数据库管理系统、操作系统、跨平台运行时环境、虚拟机,或其中一个或多个的组合。装置和执行环境可以实现各种不同的计算模型基础设施,诸如web服务、分布式计算和网格计算基础设施。
计算机程序(也称为程序、软件、软件应用、脚本或代码)可以用任何形式的编程语言编写,包括编译或解释语言、声明性或过程性语言,并且它可以以任何形式部署,包括作为独立程序或作为模块、组件、子程序、对象或适于在计算环境中使用的其它单元。计算机程序可以但不必与文件系统中的文件对应。程序可以存储在保持其它程序或数据的文件的一部分中(例如,存储在标记语言文档中的一个或多个脚本),在专用于相关程序的单个文件中,或在多个协调文件(例如,存储一个或多个模块、子程序或代码的部分的文件)中。计算机程序可以被部署为在一个计算机上执行,或者在位于一个站点或分布在多个站点并通过通信网络互连的多个计算机上执行。
本说明书中描述的过程和逻辑流程可以由执行一个或多个计算机程序以通过对输入数据进行操作并生成输出的一个或多个可编程处理器执行,以执行动作。处理和逻辑流程也可以由专用逻辑电路来执行,并且装置也可以被实现为专用逻辑电路,例如,FPGA(现场可编程门阵列)或ASIC(专用集成电路)。
适于执行计算机程序的处理器包括例如通用和专用微处理器。一般而言,处理器将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的基本要素是根据指令执行动作的处理器和用于存储指令和数据的一个或多个存储器设备。一般而言,计算机还将包括或可操作地耦合以从一个或多个用于存储数据的大容量存储设备(例如,磁、磁光盘或光盘)接收数据或向这些设备传送数据或两者兼而有之。但是,计算机不需要具有此类设备。而且,计算机可以嵌入到另一个设备中,例如,移动电话、个人数字助理(PDA)、移动音频或视频播放器、游戏控制台、全球定位系统(GPS)接收器或便携式存储器设备(例如,通用串行总线(USB)闪存驱动器),仅举几例。适于存储计算机程序指令和数据的设备包括所有形式的非易失性存储器、介质和存储器设备,例如包括半导体存储器设备,例如,EPROM、EEPROM和闪存设备;磁盘,例如,内置硬盘或可移动磁盘;磁光盘;以及CD-ROM和DVD-ROM盘。处理器和存储器可以由专用逻辑电路补充或结合到专用逻辑电路中。
为了提供与用户的交互,本说明书中描述的主题的实施例可以在具有用于向用户显示信息的显示设备(例如,CRT(阴极射线管)或LCD(液晶显示器)监视器)以及用户可以通过其向计算机提供输入的键盘和指示设备(例如,鼠标或轨迹球)的计算机上实现。也可以使用其它类型的设备来提供与用户的交互;例如,提供给用户的反馈可以是任何形式的感官反馈,例如视觉反馈、听觉反馈或触觉反馈;并且可以以任何形式接收来自用户的输入,包括声学、语音或触觉输入。此外,计算机可以通过向用户使用的设备发送文档和从用户使用的设备接收文档来与用户交互;例如,通过响应于从web浏览器接收的请求而将网页发送到用户的客户端设备上的web浏览器。
本说明书中描述的主题的实施例可以在计算系统中实现,该计算系统包括后端组件(例如作为数据服务器)、或者包括中间件组件(例如应用服务器)或者包括前端组件(例如,具有图形用户界面或web浏览器的客户端计算机,用户可以通过其与本说明书中描述的主题的实现进行交互),或者一个或多个这样的后端组件、中间件或前端组件的任何组合。系统的组件可以通过任何形式的数字数据通信的介质(例如,通信网络)互连。通信网络的示例包括局域网(“LAN”)和广域网(“WAN”)、网络间(例如,互联网),以及对等网络(例如,自组织对等网络)。
计算系统可以包括客户端和服务器。客户端和服务器一般彼此远离并且通常通过通信网络交互。客户端和服务器的关系是由于在相应计算机上运行的计算机程序而产生的,并且彼此之间具有客户端-服务器关系。在一些实施例中,服务器将数据(例如,HTML页面)传输到客户端设备(例如,出于向与客户端设备交互的用户显示数据和接收来自与客户端设备交互的用户的用户输入的目的)。在客户端设备处生成的数据(例如,用户交互的结果)可以在服务器处从客户端设备接收。
虽然本说明书包含许多具体的实施细节,但这些不应当被解释为对任何发明的范围或可能要求保护的范围的限制,而是对特定于特定发明的特定实施例的特征的描述。本说明书中在单独实施例的上下文中描述的某些特征也可以在单个实施例中组合实现。相反,在单个实施例的上下文中描述的各种特征也可以单独地或以任何合适的子组合在多个实施例中实现。而且,虽然在上面特征可以被描述为在某些组合中起作用,并且甚至最初就是这样要求保护的,但在在一些情况下可以从组合中删除一个或多个来自要求保护的组合的特征,并且要求保护的组合可以针对子组合或子组合的变体。
类似地,虽然在附图中以特定次序描绘了操作,但这不应当被理解为要求以所示出的特定次序或顺序次序执行此类操作,或者执行所有图示的操作,以实现期望的结果。在某些情况下,多任务和并行处理可以是有利的。而且,上述实施例中各种系统组件的分离不应当被理解为在所有实施例中都需要这样的分离,并且应当理解的是,所描述的程序组件和系统一般可以集成在单个软件产品中或打包到多个软件产品中。
因此,已经描述了本主题的特定实施例。其它实施例在以下权利要求的范围内。在一些情况下,权利要求中阐述的动作可以以不同的次序执行,但仍能达到期望的结果。此外,附图中描述的过程不一定要求所示的特定次序或顺序次序,以实现期望的结果。在某些实施方式中,多任务和并行处理可以是有利的。

Claims (11)

1.一种计算机实现的方法,包括:
由第一聚合服务器并且从多个客户端设备中的每个客户端设备接收展示数据,该展示数据对于由所述客户端设备记录的数字组件的每个展示包括(i)基于与该展示相关联的唯一标识符的第一联接密钥,以及(ii)该展示的加密的展示数据;
由第一聚合服务器对每个展示的第一联接密钥进行加密;
由第一聚合服务器并且向第二聚合服务器提供每个展示的第一数据元组,其中展示的第一数据元组包括该展示的加密的第一联接密钥和加密的展示数据;
由第一聚合服务器并且从第二聚合服务器接收第二聚合服务器为其接收加密的转换数据的每个转换的第二数据元组,其中用于转换的第二数据元组包括用于转换的加密的第二联接密钥和加密的转换数据,其中每个加密的第二联接密钥基于与转换相关联的唯一标识符;
对于多个数字组件中的每个数据组件,基于包括与数字组件的展示对应的加密的展示数据的加密的第一元组的数量来确定展示计数;以及
对于多个数字组件中的每个数据组件,基于包括与数字组件的转换对应的加密的转换数据的加密的第二元组的数量来确定转换计数。
2.根据权利要求1所述的方法,其中,与每个展示相关联的唯一标识符包括以下之一:(i)发生展示的客户端设备的标识符,(ii)查看展示的数字组件的用户的标识符,(iii)用户的电子邮件地址的加密的散列,(iv)用户的电话号码的加密的散列,或(v)用户的登陆凭证的加密的散列。
3.根据权利要求1所述的方法,其中,与每个转换相关联的唯一标识符包括以下之一:(i)发生转换的客户端设备的标识符,(ii)完成转换的用户的标识符,(iii)用户的电子邮件地址的加密的散列,(iv)用户的电话号码的加密的散列,或(v)用户的登陆凭证的加密的散列。
4.如前述权利要求中任一项所述的方法,还包括:
使用第一联接密钥和第二联接密钥识别第一数据元组和第二数据元组的对,对于这些对,第一数据元组的第一联接密钥匹配第二数据元组的第二联接密钥;以及
对于第一数据元组和第二数据元组的给定对,识别对于其第一数据元组和第二数据元组的加密的展示数据和加密的转换数据匹配给定对的加密的展示数据和加密的转换数据的每个其他对;以及
跨给定对和每个其他对识别多个唯一的第一联接密钥;以及
提供唯一联接密钥的数量作为交叉转换数据。
5.如权利要求4所述的方法,在提供交叉转换数据之前,还包括:
将唯一的第一联接密钥的数量与k-匿名阈值进行比较;以及
响应于确定唯一的第一联接密钥的数量满足k-匿名阈值,向报告系统提供交叉转换数据。
6.如前述权利要求中任一项所述的方法,还包括:
将多个数字组件中的每个数字组件的展示计数与k-匿名阈值进行比较;以及
向报告系统提供满足k-匿名阈值的每个展示计数。
7.如前述权利要求中任一项所述的方法,还包括:
将多个数字组件中的每个数字组件的转换计数与k-匿名阈值进行比较;以及
向报告系统提供满足k-匿名阈值的每个转换计数。
8.如前述权利要求中任一项所述的计算机实现的方法,其中,用于每个转换的加密的转换数据包括三次加密的转换值,该三次加密的转换值首先使用概率同态加法公钥加密技术加密,第二次使用第二聚合服务器的公钥加密,并且第三次使用第一聚合服务器的公钥加密。
9.一个或多个包括指令的计算机可读存储介质,所述指令在由计算机执行时使计算机执行如权利要求1至8中的任一项所述的方法。
10.一种包括指令的计算机程序,所述指令在由计算机执行时使计算机执行如权利要求1至8中的任一项所述的方法。
11.一种用于防止欺诈的系统,该系统包括:
数据处理系统,其具有一个或多个处理器和如权利要求9所述的一个或多个计算机可读存储介质,其中所述一个或多个处理器被配置为执行如权利要求1至8中的任一项所述的方法。
CN202310919717.5A 2020-02-06 2020-12-14 防止欺诈的计算机实现的方法、存储介质、设备及系统 Pending CN116938449A (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
IL272520 2020-02-06
IL272520A IL272520A (en) 2020-02-06 2020-02-06 Aggregation of encrypted network values
CN202080009404.0A CN113498602B (zh) 2020-02-06 2020-12-14 防止欺诈的计算机实现的方法、存储介质、设备及系统
PCT/US2020/064839 WO2021158288A1 (en) 2020-02-06 2020-12-14 Aggregating encrypted network values

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN202080009404.0A Division CN113498602B (zh) 2020-02-06 2020-12-14 防止欺诈的计算机实现的方法、存储介质、设备及系统

Publications (1)

Publication Number Publication Date
CN116938449A true CN116938449A (zh) 2023-10-24

Family

ID=77200220

Family Applications (2)

Application Number Title Priority Date Filing Date
CN202080009404.0A Active CN113498602B (zh) 2020-02-06 2020-12-14 防止欺诈的计算机实现的方法、存储介质、设备及系统
CN202310919717.5A Pending CN116938449A (zh) 2020-02-06 2020-12-14 防止欺诈的计算机实现的方法、存储介质、设备及系统

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN202080009404.0A Active CN113498602B (zh) 2020-02-06 2020-12-14 防止欺诈的计算机实现的方法、存储介质、设备及系统

Country Status (7)

Country Link
US (1) US20220376900A1 (zh)
EP (1) EP3884609A1 (zh)
JP (2) JP7155437B2 (zh)
KR (2) KR102582514B1 (zh)
CN (2) CN113498602B (zh)
IL (1) IL272520A (zh)
WO (1) WO2021158288A1 (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR3107128B1 (fr) * 2020-02-06 2022-01-21 Cosmian Tech Procédé et dispositif d'évaluation de correspondance d'ensembles de données structurées protégées par le chiffrement
US11899823B2 (en) * 2021-02-08 2024-02-13 Snap Inc. Privacy safe anonymized identity matching
CN114221749B (zh) * 2021-12-13 2022-08-30 成都天府通金融服务股份有限公司 基于多类型服务器的密钥统一管理方法及系统、电子设备

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9548861B2 (en) * 2011-06-10 2017-01-17 Nec Corporation Encrypted statistical processing system, device, method, and program
US8978158B2 (en) * 2012-04-27 2015-03-10 Google Inc. Privacy management across multiple devices
US9552590B2 (en) * 2012-10-01 2017-01-24 Dstillery, Inc. Systems, methods, and media for mobile advertising conversion attribution
US9641332B1 (en) * 2013-01-30 2017-05-02 Google Inc. Privacy-preserving measurements of a campaign
EP3021518B1 (en) 2013-08-22 2018-04-18 Nippon Telegraph And Telephone Corporation Multi-party secure authentication system, authentication server, intermediate server, multi-party secure authentication method, and program
GB2530726B (en) * 2014-09-25 2016-11-02 Ibm Distributed single sign-on
KR101677803B1 (ko) 2014-09-30 2016-11-21 한국정보통신주식회사 카드 리더, 단말기, 중계 서버 및 그를 이용한 결제 정보 처리 방법
US9565020B1 (en) * 2016-02-02 2017-02-07 International Business Machines Corporation System and method for generating a server-assisted strong password from a weak secret
WO2017194469A1 (en) * 2016-05-13 2017-11-16 Abb Schweiz Ag Secure remote aggregation
US10390220B2 (en) * 2016-06-02 2019-08-20 The Regents Of The University Of California Privacy-preserving stream analytics
US10565524B2 (en) * 2017-01-31 2020-02-18 Hewlett Packard Enterprise Development Lp Performing privacy-preserving multi-party analytics on horizontally partitioned local data
US11068982B2 (en) * 2017-03-21 2021-07-20 Tora Holdings, Inc. Systems and methods to securely match orders by distributing data and processing across multiple segregated computation nodes
EP3616384B1 (en) * 2017-04-28 2022-06-01 Ironcore Labs, Inc. Orthogonal access control for groups via multi-hop transform encryption
US10630655B2 (en) * 2017-05-18 2020-04-21 Robert Bosch Gmbh Post-quantum secure private stream aggregation
EP3419211B1 (en) * 2017-06-23 2022-03-30 Flytxt B.V. Privacy preserving computation protocol for data analytics
CN111095332B (zh) * 2017-07-06 2023-12-08 罗伯特·博世有限公司 用于保护隐私的社交媒体广告的方法和系统
CN110999200B (zh) * 2017-07-28 2023-10-03 皇家飞利浦有限公司 一种用于评估监测函数以确定是否满足触发条件的方法及系统
US20200151356A1 (en) * 2017-08-11 2020-05-14 Duality Technologies, Inc. System and method for fast and efficient searching of encrypted ciphertexts
EP3506547A1 (en) * 2017-12-28 2019-07-03 Flytxt B.V. Providing security against user collusion in data analytics using random group selection
CN108965230B (zh) * 2018-05-09 2021-10-15 深圳市中信网安认证有限公司 一种安全通信方法、系统及终端设备
US10972252B2 (en) * 2019-06-18 2021-04-06 International Business Machines Corporation Compressible (F)HE with applications to PIR

Also Published As

Publication number Publication date
US20220376900A1 (en) 2022-11-24
KR20230141908A (ko) 2023-10-10
WO2021158288A1 (en) 2021-08-12
JP7401624B2 (ja) 2023-12-19
CN113498602B (zh) 2023-07-11
EP3884609A1 (en) 2021-09-29
JP2022534158A (ja) 2022-07-28
KR102582514B1 (ko) 2023-09-26
KR20210102291A (ko) 2021-08-19
IL272520A (en) 2021-08-31
JP7155437B2 (ja) 2022-10-18
CN113498602A (zh) 2021-10-12
JP2023002596A (ja) 2023-01-10

Similar Documents

Publication Publication Date Title
KR102596445B1 (ko) 개인 정보 보호를 위한 방법
CN113498602B (zh) 防止欺诈的计算机实现的方法、存储介质、设备及系统
JP7201848B2 (ja) 時間データの取得または操作を防止しながらネットワークデータのシーケンスを生成すること
JP7399236B2 (ja) 複数の集約サーバを使用してデータ操作を防止すること
US20230421544A1 (en) Preventing fraud in aggregated network measurements
JP7098065B1 (ja) 電気通信ネットワーク測定におけるデータ操作の防止およびユーザのプライバシーの保護

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination