CN118353668A - 使用鉴证令牌的安全归因的方法、系统以及介质 - Google Patents

使用鉴证令牌的安全归因的方法、系统以及介质 Download PDF

Info

Publication number
CN118353668A
CN118353668A CN202410480513.0A CN202410480513A CN118353668A CN 118353668 A CN118353668 A CN 118353668A CN 202410480513 A CN202410480513 A CN 202410480513A CN 118353668 A CN118353668 A CN 118353668A
Authority
CN
China
Prior art keywords
client device
token
application
hash value
digital component
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
CN202410480513.0A
Other languages
English (en)
Inventor
G·王
M·M·M·翁
A·D·雅各布森
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 CN118353668A publication Critical patent/CN118353668A/zh
Pending legal-status Critical Current

Links

Abstract

本公开描述了用于使用鉴证令牌的安全归因的方法、系统以及介质。方法包括:由归因处理装置从应用服务器获得用于在客户端设备处的应用的安装的第一数据集,其中,第一数据集包括第一匿名令牌的第一散列值、第二匿名令牌的第二散列值和第三匿名令牌的第三散列值;向多个内容平台发送对在客户端设备安装应用的归因请求;由归因处理装置从多个内容平台的内容平台获得对归因请求的响应,响应包括第二数据集;由归因处理装置将第一数据集与第二数据集进行比较;由归因处理装置确定第一数据集匹配第二数据集;以及响应于确定第一数据集匹配第二数据集,由归因处理装置将应用的安装归因于内容平台。

Description

使用鉴证令牌的安全归因的方法、系统以及介质
本申请是申请日为2022年8月26日,申请号为202280006821.9,发明名称为“使用鉴证令牌的安全归因的方法、系统以及介质”的发明专利申请的分案申请。
技术领域
本申请涉及使用鉴证令牌的安全归因的方法、系统以及介质。
背景技术
用户参与各种在线活动,这些活动中的每个活动均导致用户接触到不同的信息。用户随后的在线活动(例如下载和安装应用)可能受到他们的先前活动以及他们接触到的信息的影响。然而,难以评估先前活动对后续活动的影响,尤其是在客户端设备通过诸如互联网这样的公共网络传送请求和其他数据的环境中。这些通信可能被其他方(例如截取通信的各方和/或接收通信并将其转发给其他方的中介)更改。
在这样的环境中,客户端设备还遭受恶意攻击,例如病毒和恶意软件,其能够在用户不知情或未授权的情况下发送欺诈性请求。此外,其他方能够模仿客户端设备发送看似源自客户端设备但实际上来自其他方的设备的请求。
发明内容
本文档中描述的各种数据安全和认证技术可以用于防止欺诈和滥用,以及保护公共网络上的交易的完整性。同时,一些认证技术可能涉及隐私问题。例如,客户端设备的用户可能不希望共享能够用于跟踪客户端设备或这些客户端设备的用户的信息(例如稳定的设备标识符),并且数据提供者可能根据防止他们接收或处理这样的信息的隐私保护标准进行操作。本说明书中描述的技术和方法可以将提供导致用户在他们的客户端设备上执行下载和/或安装应用的指定用户动作的数字组件归因于数据提供者。
一般地,在本说明书中描述的主题的一个创新方面可以体现在包括以下操作的方法中:由内容平台从在客户端设备上执行的第一应用接收对一个或多个数字组件的请求,其中,请求包括第一匿名令牌,第一匿名令牌包括(i)至少包括指示对客户端设备的信任级别的数据的内容集、(ii)请求创建时间戳以及(iii)使用内容集生成的数字签名;由内容平台向第一应用发送响应,响应包括(i)包括与第二应用相关的内容的数字组件的数据以及(ii)第一匿名令牌的散列值;由内容平台从第一应用接收经由应用显示数字组件的显示通知,显示通知包括第二匿名令牌以及第一匿名令牌的散列值;由内容平台响应于客户端设备的用户与数字组件的交互,从第一应用接收包括第三匿名令牌和第二匿名令牌的散列值的交互通知;由内容平台从归因处理装置接收归因请求;以及由内容平台生成并向归因处理装置发送对归因请求的响应,对归因请求的响应包括第一匿名令牌的散列值、第二匿名令牌的散列值和第三匿名令牌的散列值。该方面的其他实现包括对应的装置、系统和计算机程序,其被配置为执行该方法的方面,并被编码在计算机存储设备上。
可选地,这些和其他实现中的每个可以包括以下特征中的一个或多个。多个方面可以包括:由客户端设备基于在数字组件中包括的与第二应用相关的内容,生成存储在应用服务器中的第二应用的统一资源定位符(URL),URL包括第一匿名令牌的散列值、第二匿名令牌的散列值和第三匿名令牌的散列值;使用URL将第一应用重定向到应用服务器;以及响应于将第一应用重定向到应用服务器,由客户端设备从应用服务器下载第二应用。
一些方面包括:由客户端设备向设备完整性计算系统发送对N个匿名令牌的请求;以及由客户端设备从设备完整性计算系统接收N个匿名令牌。
一些方面包括:由客户端设备将第一匿名令牌在客户端设备上存储预定时间段。生成用于包括在显示通知中的第二匿名令牌可以包括:由客户端设备获得在客户端设备上存储的第一匿名令牌;由客户端设备获得在来自内容平台的响应中包括的第一匿名令牌的散列值;由客户端设备比较在客户端设备上存储的第一匿名令牌的散列值和在来自内容平台的响应中包括的第一匿名令牌的散列值;由客户端设备确定在客户端设备上存储的第一匿名令牌的散列值与在来自内容平台的响应中包括的第一匿名令牌的散列值相同;以及由客户端设备响应于确定在客户端设备上存储的第一匿名令牌的散列值与在来自内容平台的响应中包括的第一匿名令牌的散列值相同,生成第二匿名令牌。
一些方面包括:由客户端设备确定响应于未确定在客户端设备上存储的第一匿名令牌的散列值与在来自内容平台的响应中包括的第一匿名令牌的散列值相同,不生成第二匿名令牌。
一些方面包括:由归因处理装置从应用服务器获得包括第一匿名令牌的散列值、第二匿名令牌的散列值和第三匿名令牌的散列值的第一数据集,由归因处理装置从对归因请求的响应获得包括从内容平台接收的散列值的第二数据集;由归因处理装置将第一数据集与第二数据集进行比较;由归因处理装置确定第一数据集与第二数据集匹配;以及响应于确定第一数据集匹配第二数据集,由归因处理装置将下载第二应用归因于内容平台。
在一些方面,每个匿名令牌包括:包括用于设备完整性令牌的内容集的相应的令牌,其中,用于设备完整性令牌的内容集包括指示对客户端设备的信任级别的可信性判定、指示确定可信性判定的时间的时间戳以及用于设备完整性令牌的公钥数据。生成每个设备完整性令牌包括:使用设备完整性计算系统的私钥,对设备完整性令牌的内容集进行数字签名。
一些方面包括:基于从多个内容平台接收的与第二应用相关的事件的匿名令牌,确定多个内容平台的相应的归因信用。
在本说明书中描述的主题的另一个创新方面可以体现在包括以下操作的方法中:由归因处理装置从应用服务器获得用于在客户端设备处的应用的安装的第一数据集,其中,第一数据集包括第一匿名令牌的第一散列值、第二匿名令牌的第二散列值和第三匿名令牌的第三散列值;向多个内容平台发送对在客户端设备处的应用的安装的归因请求;由归因处理装置从多个内容平台的内容平台获得对归因请求的响应,响应包括第二数据集,第二数据集包括第四匿名令牌的第四散列值、第五匿名令牌的第五散列值和第六匿名令牌的第六散列值;由归因处理装置将第一数据集与第二数据集进行比较;由归因处理装置确定第一数据集匹配第二数据集;以及响应于确定第一数据集匹配第二数据集,由归因处理装置将应用的安装归因于内容平台。
在本说明书中描述的主题可以在特定实施例中实现,以便实现以下优点中的一个或多个。使用鉴证令牌来发送来自客户端设备的数据提供客户端设备和计算机或其他实体的其他设备之间的安全通信信道。与鉴证信息一起包括在鉴证令牌中包括的数据的数字签名使实体能够验证鉴证令牌中的数据在创建鉴证令牌之后未被改变。此外,在鉴证令牌中包括令牌创建时间使接收方能够确定请求是新的,还是恶意攻击(例如重放攻击)的潜在部分。
鉴证令牌还可以包括指示发送鉴证令牌的客户端设备的完整性的设备完整性令牌,这使得鉴证令牌的接收方能够验证数据来自可信的客户端设备,例如而非来自仿真器或受损害的设备。设备完整性令牌可以由可信的设备分析器(例如,第三方设备分析器)生成并进行数字签名,使得鉴证令牌的接收方可以验证客户端设备已被可信的设备分析器评估,并且设备完整性令牌中的数据在被可信的设备分析器创建之后未被修改。
所述技术还在保护用户隐私的同时,确定下载应用的用户动作归因到数字组件或提供该数字组件的实体。所述技术可以通过要求请求归因的内容平台提供用于报告事件和/或请求导致应用的下载的数字组件的鉴证令牌的散列值,来防止恶意(例如,欺诈性)声明。将鉴证令牌用于这样的报告和请求,例如通过包括证实设备的可信度的完整性令牌,确保消息是可信的并且是从可信的设备接收的。将匿名令牌(也称为鉴证令牌)用于这样的报告和请求,通过防止接收消息的实体使用户与多个消息相关,来保护用户隐私,并且因此防止实体跨越可能对应于不同的域、应用或应用发布者的多个消息来跟踪用户。
在本说明书中描述的主题的一个或多个实施例的细节在附图和以下描述中阐述。根据说明书、附图和权利要求书,本主题的其他特征、方面和优点将变得显而易见。
附图说明
图1是内容平台分发数字组件的环境的框图。
图2是示出将下载应用归因于内容平台的示例过程的泳道图。
图3是请求对于下载应用的用户动作的归因的示例过程的流程图。
图4是确定对于下载应用的用户动作的归因的示例过程的流程图。
图5是示例计算机系统的框图。
各种图中的相同的附图标记和名称指示相同的元件。
具体实施方式
连接到互联网的用户接触到各种数字内容,例如搜索结果、网页、数字组件、新闻文章、社交媒体帖子、数字助理设备输出的音频信息等。对内容的这些接触中的一些可以促成用户执行指定的目标动作。例如,接触到关于地图应用的数字组件的用户(例如,其查看或对其呈现数字组件)可以下载地图应用并将其安装在用户的客户端设备上。在该示例中,下载和安装应用可以被视为用户响应于接触到数字组件而执行的目标用户动作。类似地,接触到关于视频流服务的数字组件的用户可能最终下载并安装视频流服务的应用。在该示例中,下载和安装应用是目标用户动作。
在多个内容平台可以向客户端设备提供数字组件的环境中,可能难以确定下载和/或安装应用的用户动作所归因的平台。本文中描述的系统和技术可以在客户端设备与诸如创建并提供由内容平台分发的数字组件内容发布者、内容平台和内容提供者这样的其他实体之间提供安全的通信信道。客户端设备可以用每个不同的请求和网络上的其他数据传输,提供由其他实体使用以核实请求的完整性和客户端设备的完整性的不同的鉴证令牌。请求可以包括例如管理用户数据的请求(例如删除用户相关数据)、对内容的请求和/或对与其他内容一起呈现的数字组件的请求。其他数据传输可以包括用于报告诸如数字组件显示事件、与数字组件的用户交互和/或执行指定的用户动作(例如下载应用)这样的事件的事件报告。使用鉴证令牌来保护通信信道确保恶意行动者无法改变、删除或以其他方式访问用户数据或者改变请求的内容以例如欺骗数字组件分发系统和/或提供者。
在一些方法中,可以使用客户端设备的私钥对鉴证令牌进行数字签名。客户端设备可以保密地维护私钥。其中,鉴证令牌可以包括与私钥相对应的公钥、有效载荷和设备完整性令牌等。设备完整性令牌可以包括由可信的设备完整性系统所确定的指示客户端设备的完整性级别的判定,可信的设备完整性系统例如由不同于客户端设备的用户和鉴证令牌的接收方的可信的实体维护的第三方设备完整性系统。设备完整性令牌还可以包括客户端设备的公钥,以将设备完整性令牌绑定到客户端设备。
设备完整性系统可以使用设备完整性系统保密的私钥对设备完整性令牌进行数字签名。与该私钥相对应的公钥可以提供给接收方,使得他们可以相信设备完整性系统评估了客户端设备,例如通过使用公钥验证设备完整性令牌的数字签名。使用两对密钥的该组合提供安全的通信信道,该安全的通信信道使接收方能够核实客户端设备的完整性和从客户端设备接收的通信的完整性,并将设备完整性令牌绑定到客户端设备,使得其他设备无法使用该设备完整性令牌来伪造它们的完整性。
在一些方法中,设备完整性系统不接收用于包括在设备完整性令牌中的公钥的原始数据。替代地,客户端设备可以通过使用盲签名方案对公钥或其衍生物进行盲化来发送盲化公钥或公钥的盲化衍生物(例如,公钥的盲化截断加密散列)。利用盲签名方案,设备完整性系统可以在不接收客户端设备的公钥的原始值的情况下证明客户端设备的完整性,通过降低经由公钥潜在地跟踪客户端设备或客户端设备的用户的风险来增强客户端设备或用户的隐私。设备完整性系统可以发布接收方可用于验证盲签名的盲签名验证密钥。
图1是环境100的框图,其中,内容平台150向客户端设备110分发数字组件129。示例环境100包括数据通信网络105,例如局域网(LAN)、广域网(WAN)、互联网、移动网络或其组合。网络105连接客户端设备110、发布者130、网站140、内容平台150、设备完整性系统170(也可以称为设备完整性计算系统)、应用服务器175和归因(attribution)处理装置180。示例环境100可以包括多个客户端设备110、网站140、发布者130、内容平台150、内容提供者160、设备完整性系统170和归因处理装置180。
网站140是与域名相关联并由一个或多个服务器托管的一个或多个资源145。示例网站是HTML格式的网页的集合,可以包含文本、图像、多媒体内容和编程元素,例如脚本。每个网站140由发布者130维护,发布者130是控制、管理和/或拥有网站140的实体。
资源145是可以通过网络105提供的任何数据。资源145由资源地址(例如与资源145相关联的统一资源定位符(URL))标识。资源例如包括HTML页面、文字处理文档和可移植文档格式(PDF)文档、图像、视频和提要源。资源可以包括内容,例如单词、短语、图像和声音,其可以包括嵌入信息(例如超链接中的元信息)和/或嵌入指令(例如脚本)。
客户端设备110是能够通过网络105进行通信的电子设备。示例客户端设备110包括个人计算机、移动通信设备(例如智能电话)、数字媒体播放器、智能扬声器和可穿戴设备(例如智能手表)、游戏控制台、流设备以及能够通过网络105发送和接收数据的其他设备。客户端设备110通常包括应用111(例如网络浏览器和/或本地应用)以便于通过网络105发送和接收数据。本地应用是对特定平台或特定设备开发的应用。发布者130可以开发本地应用并将其提供给客户端设备110。
一些资源145、应用页面或其他应用内容可以包括用于呈现具有资源145或应用页面的数字组件的数字组件槽。如贯穿本文档所使用的,短语“数字组件”指的是数字内容或数字信息的离散单元(例如,视频剪辑、音频剪辑、多媒体剪辑、图像、文本或另一内容单元)。数字组件129可以作为单个文件或文件集合电子地存储在物理存储器设备中,并且数字组件可以采取视频文件、音频文件、多媒体文件、图像文件或文本文件的形式,并且包括广告信息,使得广告是一种类型的数字组件。例如,数字组件129可以是旨在对由应用111呈现的网页、资源或应用页面的内容进行补充的内容。更具体地,数字组件129可以包括与资源内容相关的数字内容(例如,数字组件可以涉及与网页内容相同的主题,或者相关主题)。因此,由内容平台150提供数字组件129可以补充并且通常增强网页内容。
在应用111(本文也称为第一应用)加载包括一个或多个数字组件槽的资源145或应用内容时,应用111可以从一个或多个内容平台150请求用于每个槽的数字组件129。一些发布者140使用诸如供应侧平台(SSP)的内容平台150来管理对其资源和/或应用的数字组件槽获得数字组件的过程。SSP是以硬件和/或软件实现的技术平台,其将获得资源和/或应用的数字组件的过程自动化。每个发布者140可以具有对应的SSP或多个SSP。多个发布者140可以使用相同的SSP。
在一些实现中,内容平台150可以从内容提供者160请求数字组件。内容提供者160是生成与资源145和/或其他内容一起呈现的数字组件的实体。示例内容提供者是发布应用(例如,移动设备的本地应用)的组织。该内容提供者可以提供数字组件,包括例如描述与应用有关的内容和用以下载应用的链接。内容提供者160可以使用诸如需求侧平台(DSP)的内容平台150来管理其数字组件的供应,以便在数字组件槽中呈现。DSP是以硬件和/或软件实现的技术平台,其将分发数字组件以便与资源和/或应用一起呈现的过程自动化。DSP可以代表内容提供者160与多个SSP交互,以提供与多个不同发布者140的资源和/或应用一起呈现的数字组件。一般地,DSP可以接收(例如,从SSP)对数字组件的请求,基于该请求生成(或选择)由一个或多个内容提供者创建的一个或多个数字组件的选择参数,并将与数字组件有关的数据(例如,数字组件本身或用以下载数字组件的链接)和选择参数提供给SSP。然后,SSP可以选择在客户端设备110上呈现的数字组件,并向客户端设备110提供使客户端设备110显示该数字组件的数据。
内容平台150可以基于各种标准对每个数字组件槽选择数字组件。例如,内容平台150可以基于与资源145或其他应用内容的相关性、数字组件的性能(例如,用户与数字组件交互的速率)等,从接收自内容提供者160的数字组件中选择数字组件。然后,内容平台150可以向客户端设备110提供所选择的数字组件,以便与资源145或其他应用内容一起呈现。内容平台150可以将所选择的数字组件129发送给一个或多个客户端设备110,以便由在客户端设备110上运行的应用111呈现。
在应用111通过网络105发送请求120时,应用111可以发送带有该请求的鉴证令牌122。例如,如果诸如浏览器的应用111向内容平台150发送对数字组件的请求,则该请求可以包括鉴证令牌122。鉴证令牌122被诸如内容提供者160这样的实体用于核实请求的完整性和客户端设备110的完整性。例如,一些恶意实体可能试图伪造对数字组件的请求的参数,例如,指定将向用户呈现数字组件的不同资源和/或指定将向其呈现数字组件的不同用户,以使请求看起来比它实际上更有价值。此外,一些恶意方可能出于恶意目的试图而模仿他人的客户端设备。鉴证令牌122通过中介在客户端设备110和其他实体的计算机或其他设备之间提供安全通信信道,该安全通信信道防止他人更改请求120并确保请求120来自经核实的客户端设备110。
客户端设备110还可以包括对应用111生成鉴证令牌的可信的程序114。可信的程序114可以包括来自难以伪造的可靠来源的可信的代码。例如,可信的程序114可以是操作系统、操作系统的一部分、网络浏览器等。通常,可信的程序114难以渗透,并且作恶者篡改可信的程序114所需花费的时间和精力相当高。此外,因为可信的程序114是由可靠的来源提供和维护的,所以出现的任何漏洞均可以由该来源解决。以该方式使用这样的可信的程序提供在客户端设备110处增加安全性的技术优势,因为可信的程序114难以渗透。此外,可信的程序114提供减轻可信的程序114中的弱点的优点,因为可信的程序114由可靠的来源维护。
可信的程序114可以位于客户端设备110的本地。例如,可信的程序114可以是客户端设备110的操作系统的设备驱动器。在一些实现中,可信的程序114完全在客户端设备110本地操作,从而减少发送用户信息的需要。在一些实现中,可信的程序114可以在客户端设备110本地操作,并且可以通过诸如网络105这样的网络操作。例如,可信的程序114可以是安装在用户设备110上并通过网络105发送和接收信息的网络浏览器。
可信的程序114可以生成加密密钥(例如,公钥/私钥对),将加密密钥存储在安全储存器115(例如,安全高速缓存)中,将设备完整性令牌存储在安全储存器115中,生成鉴证令牌,生成加密密钥或其衍生物的盲签名,和/或获取并存储证书。在一些实现中,可信的程序114与设备完整性客户端交互,以向/从设备完整性系统170发送/接收数据。
为了生成鉴证令牌122,客户端设备110的可信的程序114可以生成加密密钥(例如,公钥/私钥对)。公钥/私钥对可以是非对称密钥对。每个公钥/私钥对包括私钥和与私钥对应且在数学上与私钥联系的公钥。客户端设备110可以向设备完整性系统170发送对一个或多个设备完整性令牌的请求。例如,客户端设备110可以向设备完整性系统170发送对N个设备完整性令牌的请求。对设备完整性令牌的请求可以涉及将客户端设备110的N个公钥传递给设备完整性系统170。在该示例中,N个公共密钥包括实际的公共密钥,例如,N个公共密钥的原始数据。该请求还可以包括:设备级欺诈检测信号,其包括可以被评估以确定客户端设备110是否值得信任(例如,未被泄露和/或不是仿真器或机器人)的信号。例如,可信的程序114可以收集设备级欺诈检测信号,并将信号包括在请求中。
设备完整性系统170评估从客户端设备110(例如,从可信的程序114)接收的设备级欺诈检测信号,并基于设备级欺诈检测信号来确定客户端设备110的可信度(或完整性)级别。设备级欺诈检测信号可以包括表示客户端设备110的操作特性或度量的数据,该数据可以用于确定客户端设备是否受到危害和/或该客户端设备是作为正常客户端设备还是仿真客户端设备进行操作。相对于仿真器,真实客户端设备的某些操作特性和度量往往是不同的。在一些实现中,设备级欺诈检测信号包括应用级欺诈检测信号,该应用级欺诈检测信号包括请求信任令牌的应用111的操作特性和度量。可信的程序114可以收集这些设备级欺诈检测信号,并将信号包括在对信任令牌的请求中。
设备完整性系统170可以发出指示客户端设备110的可信度(或完整性)级别的判定。包括设备完整性令牌的请求120或其他通信的接收方可以使用该判定来确定是否信任包括该判定的请求120(或其他通信)。例如,如果判定指示客户端设备110不可信,则接收方可以忽略该请求,例如,不响应该请求。
响应于从客户端设备110接收到对设备完整性令牌的请求,设备完整性系统170确定客户端设备110的可信度级别。例如,设备完整性系统170可能具有M个可能的可信度级别,每个级别对应于相应的判定。在该示例中,设备完整性系统170可以基于设备级欺诈检测信号来选择这M个可能的可信度级别中的一个。
设备完整性系统170在确定客户端设备的可信度级别之后,对每个所接收的公钥生成相应的设备完整性令牌。每个设备完整性令牌包括可信性判定、可信性判定的时间戳以及客户端设备110的N个公钥之一。时间戳指示生成设备完整性令牌的时间。在一些实现中,如果该实现支持多个设备完整性系统170,则设备完整性令牌还可以包括设备完整性系统170的标识。设备完整性系统170可以使用设备完整性系统170的私钥来生成设备完整性令牌的组件的数字签名(例如,可信性判定、客户端设备110的公钥以及时间戳),并将设备完整性令牌和数字签名发送给客户端设备110。
客户端设备110在从设备完整性系统110接收到N个完整性令牌之后,可以在本地存储设备完整性令牌,例如,存储在由可信的程序114维护的高速缓存或安全储存器115中。每个高速缓存的设备完整性令牌例如可以包括:(1)由设备完整性系统170确定的可信性的判定;(2)创建设备完整性令牌的时间戳;(3)客户端设备的公钥;以及(4)使用设备完整性系统170的私钥签名的令牌组件的数字签名。已经获得了N个设备完整性令牌,客户端设备110可以使用设备完整性令牌来组装和发送鉴证令牌,作为对内容平台150的数字组件的请求和/或易被伪造的其他通信或请求(例如,如下所述的各种类型的通知)的一部分。
在生成对数字组件120的请求的过程中,客户端设备110的可信的程序114可以从客户端设备110的安全储存器115中检索设备完整性令牌。为了生成对数字组件的请求,可信的程序114可以生成可包括内容集的第一鉴证令牌122。内容集可以包括:(1)客户端设备110的公钥113;(2)指示创建鉴证令牌122的时间的令牌创建时间;(3)有效载荷数据;以及(4)由设备完整性系统170生成的设备完整性令牌。第一鉴证令牌122还包括使用与检索到的设备完整性令牌的公钥113相对应的私钥112,基于第一鉴证令牌122的内容集生成的数字签名。
第一鉴证令牌的有效载荷数据可以包括可用于选择数字组件的数据。例如,有效载荷可以包括与具有数字组件槽的资源145相关的数据(例如,资源本身或资源145的URL)、关于资源145的信息(例如,资源的主题)、关于数字组件槽的信息(例如,槽的数量、槽的类型、槽的大小等)、关于客户端设备110的信息(例如,设备的类型、设备的IP地址、客户端设备110的地理位置)(如果用户已经启用该特征)和/或其他适当的信息。
客户端设备110可以在发送给内容平台150或其他接收方的数字组件请求120中包括鉴证令牌122(也称为第一鉴证令牌122)。在另一示例中,第一鉴证令牌122可以充当请求。在接收到请求120之后,内容平台150核实第一鉴证令牌122和/或在鉴证令牌122中包括的设备完整性令牌(如果适当的话)。如果第一鉴证令牌122被成功核实,则接收方可以确定客户端设备110是否是可信设备,并且相应地处理该请求。如果第一鉴证令牌122未被成功核实,则接收方可以忽略或删除请求120,例如,不响应请求120。
第一鉴证令牌122可以包括指示创建鉴证令牌122的时间的令牌创建时间戳。可信的程序114可以记录可信的程序114创建第一鉴证令牌122时的创建时间。该令牌创建时间戳可以是高分辨率时间戳(例如,精确到秒、毫秒或微秒)。第一鉴证令牌122的令牌创建时间戳可以用于确定包括鉴证令牌122的请求120是新的请求还是最近的请求。例如,内容平台150在接收到包括第一鉴证令牌122的数字组件请求120之后,可以将令牌创建时间与当前时间或接收到第一鉴证令牌122的时间进行比较。如果两个时间之间的差异超过阈值,则如下面更详细描述的那样,内容平台150可以确定该请求不是新的,或者是无效的。
第一鉴证令牌122的令牌创建时间戳也可以用于检测重放攻击。例如,如果接收到具有包括相同令牌创建时间戳的相同数据集的多个请求,则接收请求的实体可以确定请求是复制和/或请求是重放攻击的一部分。
在核实请求120和客户端设备110的完整性之后,内容平台150可以基于请求120的有效载荷数据来选择数字组件。在一些实现中,内容平台150可以生成第一鉴证令牌122的散列值(或者在请求是鉴证令牌的形式的情况下,生成对数字组件120的请求的内容),并且将该散列值连同所选择的数字组件一起包括在发送给客户端设备110的响应中。散列值是使用唯一标识数据的散列函数(例如,MD5、SHA-256或其他适当的散列函数)生成的数值。
在从内容平台150接收到作为响应的数字组件之后,响应于对数字组件120的请求,客户端设备110可以可选地验证该数字组件实际上被选择并被交付到客户端设备110。为了进行验证,客户端设备110生成在请求120中包括的第一鉴证令牌的散列值。客户端设备110比较所生成的散列值和与数字组件129一起接收的散列值。如果散列值相同,则客户端设备110可以断定:响应于对数字组件120的请求,接收到了数字组件129。客户端设备110的应用111显示数字组件129。如果散列值不相同,则客户端设备110不显示数字组件129,并将其丢弃。
在一些实现中,在显示数字组件129之后,客户端设备110可以通知内容平台150数字组件129被显示。客户端设备110可以生成显示通知123,该显示通知123可以包括第二鉴证令牌124。类似于第一鉴证令牌122的生成,客户端设备110的可信的程序114可以从客户端设备110的安全储存器115中检索相同的设备完整性令牌(或者不同的设备完整性令牌,例如在从设备完整性系统170接收到更新的设备完整性令牌的情况下)。可信的程序114可以生成第二鉴证令牌124,该第二鉴证令牌124可以包括内容集,该内容集包括(1)客户端设备110的公钥113、(2)指示创建第二鉴证令牌124的时间的令牌创建时间、(3)包括指示数字组件被显示在客户端设备上的通知数据的有效载荷数据以及(4)由设备完整性系统170生成的设备完整性令牌。第二鉴证令牌124还包括数字签名,该数字签名是基于第二鉴证令牌124的内容集,使用与检索到的设备完整性令牌中包括的客户端设备110的公钥113相对应的私钥112生成的。
在一些实现中,数字组件129可以包括可以引用由应用服务器175发布的应用176(也称为第二应用)的内容。例如,数字组件129可以与视频流服务相关。在该示例中,数字组件129可以包括标识应用服务器175和由应用服务器175发布的视频流服务的应用的内容。客户端设备110的用户在接触到由客户端设备110的应用111呈现的数字组件129之后,可以与数字组件129交互(例如,在客户端设备110的触敏屏幕上按压手指和/或触笔),并且经由URL被重定向到应用服务器175和/或管理客户端设备110上的应用安装的客户端设备110的应用商店。URL可以由客户端设备110使用数字组件129的内容来生成和/或从数字组件129的内容中提取。URL可以包括占位符(其可以由客户端设备110用对应的鉴证令牌或鉴证令牌的散列来替换)。然后,用户可以在客户端设备110上下载和/或安装所引用的应用176。例如,用户可以下载视频流服务的应用。
在一些实现中,响应于与数字组件129的用户交互,客户端设备129可以通过向内容平台150发送交互通知125来通知提供数字组件129的内容平台150。为了向内容平台150通知用户交互,客户端设备110可以通过从客户端设备110的安全储存器115中检索设备完整性令牌(例如,与第一和第二鉴证令牌相同的令牌)来生成第三鉴证令牌126。可信的程序114可以生成可包括内容集的第三鉴证令牌126,该内容集包括(1)客户端设备110的公钥113、(2)指示创建第三鉴证令牌126的时间的令牌创建时间、(3)包括指示数字组件在客户端设备上被交互的通知数据的有效载荷数据以及(4)由设备完整性系统170生成的设备完整性令牌。第三鉴证令牌126还包括数字签名,该数字签名是基于第三鉴证令牌126的内容集,使用与检索到的设备完整性令牌中包括的客户端设备110的公钥113相对应的私钥112生成的。
在一些实现中,交互通知(可以是以用于生成HTTP请求的URL形式)可以包括经由不同的请求和通知发送给内容平台150的鉴证令牌(例如,122、124和126)的散列值。令牌的散列值可以由客户端设备110的可信的程序114使用散列函数(例如,由实现鉴证令牌系统的一方预定的散列函数)来生成。例如,交互通知可以部分地包括(1)到应用服务器175上的应用176的指针(或引用)、(2)第一鉴证令牌122的散列值、(3)第二鉴证令牌124的散列值以及(4)第三鉴证令牌126的散列值。在一些实现中,指针和散列值可以是第三鉴证令牌126的有效载荷数据的一部分。在这样的实现中,第三鉴证令牌126中的数字签名保护第三鉴证令牌126(其对开始于请求120的因果链进行编码)的数据完整性,以显示通知123和交互通知125。交互通知可以发送到内容平台150和/或应用服务器175。
应用服务器175存储包括在交互通知中的令牌的散列值。例如,应用服务器175可以存储应用下载数据集(也称为第一数据集),该应用下载数据集包括(1)应用服务器175的域内的应用176的应用标识符、(2)第一鉴证令牌122的散列值、(3)第二鉴证令牌124的散列值以及(4)第三鉴证令牌126的散列值。应用服务器175还可以向归因处理装置180提供每个应用下载数据集。
在一些实现中,对于与数字组件129交互或者下载(或安装)由数字组件129引用的应用126的用户动作要被归因的内容平台150可以生成归因请求162。为了生成归因请求162,内容平台150可以生成从客户端设备110接收的鉴证令牌的相应的散列值。在一些实现中,为了防止其他恶意实体错误地宣称归因于该应用下载,内容平台150可以在归因请求162中包括归因数据集(也称为第二数据集),该归因数据集包括(1)在对数字组件120的请求中包括的第一鉴证令牌122的散列值、(2)在显示通知123中包括的第二鉴证令牌124的散列值以及(3)在交互通知125中包括的第三鉴证令牌126的散列值。在一些实现中,归因数据集可以包括第一鉴证令牌122、第二鉴证令牌124和第三鉴证令牌126,而非或者以及它们相应的散列值。在生成归因请求162之后,将该请求发送给归因处理装置180。
归因处理装置180可以是包括以硬件和/或软件实现的技术平台的独立的实体,该技术平台将归因内容平台150的过程自动化,以提供导致下载和/或安装应用的数字组件。当归因处理装置180从应用服务器175接收到应用下载数据集时,归因处理装置180可以存储该应用下载数据集,以便稍后归因到提供了导致下载和/或安装与该数据集相对应的应用的数字组件的内容平台。也就是说,归因处理装置180可以将应用的下载和/或安装归因于内容平台150,该内容平台150可以提供数据集(例如,归因数据集),该数据集包括与应用下载数据集的散列值相匹配的散列值的集合(或者鉴证令牌,应用处理装置180对其生成散列值),用于应用的下载/安装。该归因可以是对内容平台150和/或内容提供者160的信用的形式,例如货币或非货币信用。
在从内容平台150接收到归因数据集之后,归因处理装置180将归因数据集的内容与一个或多个应用下载数据集进行比较。如果归因数据集包括应用的应用标识符或应用的安装的安装标识符,则归因处理装置180可以标识也具有该应用或安装标识符的适当的应用下载数据集。如果没有标识符,则归因数据处理设备180可以比较归因数据集与每个应用下载数据集的散列值。如果每对散列值在归因数据集和应用下载数据集的散列值之间匹配,则归因处理装置180可以验证提供了归因数据集的内容平台150是提供导致与应用下载数据集相对应的应用的下载的数字组件的内容平台150。
归因数据集的内容和应用下载数据集之间的该比较可以包括:将归因数据集的第一鉴证令牌122的散列值与应用下载数据集的数字组件请求的鉴证令牌的散列值进行比较。该比较还可以包括:将归因数据集的第二鉴证令牌124的散列值与用于报告应用下载数据集的数字组件印象的鉴证令牌的散列值进行比较。该比较还可以包括:将归因数据集的第三鉴证令牌126的散列值与用于报告与应用下载数据集的数字组件的用户交互的鉴证令牌的散列值进行比较。如果所有三对均匹配,则归因处理装置180可以确定第一数据集匹配应用下载数据集,并且因此,归因处理装置180将应用的下载归因于该内容平台。
如果第一集合和应用下载数据的各个令牌的散列值相同,则归因处理装置180可以断定:导致在客户端设备110上显示数字组件129的事件、随后的与数字组件129的用户交互以及从应用服务器175下载和/或安装应用126是由预期方(即客户端设备110、内容平台150和应用服务器175)执行的,而没有任何非预期和/或恶意实体的干扰和/或假冒。
图2是示出用于将下载和/或安装应用的用户动作归因于内容平台150的示例过程200的泳道图。类似的过程可以用于其他用户动作。过程200的操作可以例如由客户端设备110、内容平台150、归因处理装置180和应用服务器175来实现。过程200的操作也可以被实现为存储在一个或多个计算机可读介质上的指令,该计算机可读介质可以是非暂时性的,并且由一个或多个数据处理装置执行指令可以使一个或多个数据处理装置执行过程200的操作。
在示例过程200中,客户端设备110可以存储先前从设备完整性系统170接收的N个完整性令牌。客户端设备110可以在本地存储设备完整性令牌,例如,存储在由可信的程序114维护的高速缓存或安全储存器115中。每个高速缓存的设备完整性令牌例如可以包括(1)由设备完整性系统170确定的可信性的判定、(2)创建设备完整性令牌的时间戳、(3)客户端设备的公钥以及(4)令牌的其他组件的数字签名,使用设备完整性系统170的私钥112签名。如果支持多个设备完整性系统170,则每个设备完整性令牌可以包括标识生成设备完整性令牌的设备完整性系统170的数据。客户端设备110的应用111可以加载包括数字组件槽的资源145或应用内容(资源的另一种形式)。例如,在客户端设备100上执行的诸如网络浏览器这样的应用111可以从内容平台150请求该槽的数字组件。
客户端设备110生成第一鉴证令牌(202)。例如,将要请求数字组件的应用111(例如网络浏览器)可以从客户端设备110的可信的程序114(例如操作系统)请求鉴证令牌。在另一示例中,数字组件软件开发工具包(SDK)可以代表应用111从可信的程序114请求鉴证令牌。
可信的程序114可以从客户端设备110的安全储存器115中检索设备完整性令牌。可信的程序114可以生成第一鉴证令牌122,第一鉴证令牌122可以包括内容集,该内容集包括(1)客户端设备110的公钥113、(2)指示创建第一鉴证令牌122的时间的令牌创建时间戳、(3)有效载荷数据以及(4)由设备完整性系统170生成的设备完整性令牌。第一鉴证令牌122还包括数字签名,该数字签名是基于第一鉴证令牌122的内容集,使用与检索到的设备完整性令牌中包括的客户端设备110的公钥113相对应的私钥112生成的。
客户端设备110存储第一鉴证令牌(204)。例如,在生成第一鉴证令牌122之后,客户端设备110的可信的程序114可以将第一鉴证令牌122存储在客户端设备110的安全储存器115(或安全高速缓存存储器)中。例如,客户端设备110的操作系统可以存储第一鉴证令牌122或使用第一鉴证令牌和散列函数生成的散列值。客户端设备110可以将第一鉴证令牌存储指定的持续时间。该持续时间可以基于预期在请求数字组件的时间和生成第二鉴证令牌以便显示该数字组件的时间之间流逝的时间量。当指定的持续时间过去,可信的程序114可以删除第一鉴证令牌。
客户端设备110向内容平台150发送对数字组件的请求(206)。客户端设备110可以生成第一鉴证令牌122形式的数字组件请求120,或者生成第一鉴证令牌122并将第一鉴证令牌122包括在请求120中。在生成数字组件请求120的任一技术中,请求120可以包括有效载荷数据部分,以及客户端设备110的公钥113、指示创建第一鉴证令牌122的时间的令牌创建时间、由设备完整性系统170生成的设备完整性令牌和使用与设备完整性令牌的公钥113相对应的私钥112的鉴证令牌122的内容集的数字签名。
有效载荷部分可以包括可用于选择数字组件的数据。例如,有效载荷可以包括具有数字组件槽的资源145(或资源145的URL)、关于资源145的信息(例如,资源的主题)、关于数字组件槽的信息(例如,槽的数量、槽的类型、槽的大小等)、关于客户端设备110的信息(例如,设备的类型、设备的IP地址、客户端设备110的地理位置)(如果用户已经启用该特征)和/或其他适当的信息。
然后,客户端设备110可以通过网络105将数字组件请求120发送给内容平台150。数字组件请求120可以例如通过分组的网络105发送,并且组件请求本身可以被格式化为具有报头和有效载荷数据的分组的数据。报头可以指定分组的目的地,并且有效载荷数据可以包括上面讨论的任何信息。
内容平台150选择数字组件(208)。在接收到对数字组件120的请求之后,内容平台150可以通过验证在请求120中包括的第一鉴证令牌122来核实该请求。例如,内容平台150可以尝试使用在第一鉴证令牌122中包括的公钥113来验证第一鉴证令牌122的内容集的数字签名。该验证可以用于确定第一鉴证令牌122的内容集(例如有效载荷数据、时间戳、公钥113和设备完整性令牌)在发送期间是否已改变。如果在生成数字签名之后任何内容改变,则数字签名的验证将失败。例如,如果恶意方将设备完整性令牌插入到另一请求中,或者将具有更高可信性判定的不同的设备完整性令牌插入到该请求中,则签名验证将失败。这确保请求120的内容在请求发送期间不被改变,例如,不被中介改变。
内容平台150可以通过使用设备完整性系统170的公钥验证设备完整性令牌的签名来核实第一鉴证令牌122的设备完整性令牌。这类似地确保设备完整性令牌的内容未改变,因为设备完整性令牌是由设备完整性令牌系统170发出的。内容平台150核实客户端设备110的及时性和可信性,例如确认设备完整性令牌是最近创建的(即,在做出请求的时间之前未创建超过所选择的时间间隔,例如H小时或D天,其中,H、D=1,2,3,…),并确认设备完整性令牌中的可信性判定是足以满足请求的判定。如果任何有效性检查失败,则内容平台150可以忽略该请求。例如,如果任何有效性检查失败,则内容平台150可以不响应该请求。在核实请求120和请求120的内容之后,内容平台150可以与诸如DSP(或内容提供者)这样的一个或多个其他内容平台150交互,并且基于对数字组件120的请求的有效载荷数据来选择数字组件。
在一些实现中,所选择的数字组件129可以包括唯一标识符(称为数字组件标识符),其可以在DSP或内容提供者160的eTLD+1域中的多个数字组件之中唯一地标识数字组件129。数字组件标识符还可以标识内容平台150或实际向内容平台150提供数字组件129的内容提供者160。在一些实现中,数字组件标识符可以由诸如SSP这样的内容平台150生成和分配。
内容平台150向客户端设备110发送数字组件(210)。例如,内容平台150在选择数字组件之后,将数字组件129(或者可以包括用以下载数字组件的链接的数字组件129的数据)作为对数字组件的请求120的响应发送给应用111。在发送数字组件129之前,内容平台150使用诸如MD5或SHA256这样的预定的散列函数来生成第一鉴证令牌122的散列值,并且将其包括在响应中。在一些情况下,从内容平台150(和客户端设备110)可用的多个散列函数之中选择散列函数。在这样的情况下,内容平台150还可以在响应中包括散列函数的标识符,该标识符可以被接收方计算系统(这里,客户端设备110)使用,以标识内容平台150用于生成散列值的散列函数。为了防止中介交换散列值,内容平台150可以使用内容平台150的私钥对包括在响应中的数据的组合进行数字签名,使得接收方可以使用内容平台150的对应的公钥和响应的接收数据来验证签名。
在一些实现中,内容平台150可以在响应中包括数字组件标识符,以允许内容平台150唯一地标识数字组件129和对应的DSP或提供数字组件的内容提供者160。
客户端设备110可选地核实数字组件(212)。例如,客户端设备110可以验证数字组件129实际上被选择并作为对数字组件的请求120的响应被交付给客户端设备110。为了进行验证,客户端设备110生成第一鉴证令牌122的散列值(如果尚未生成并存储在安全储存器115中),该散列值被包括在对数字组件120的请求中并存储在安全储存器115中。在生成第一鉴证令牌122的散列值之后,客户端设备110将所生成的散列值与作为响应从内容平台150连同数字组件129一起接收的第一鉴证令牌的散列值进行比较。如果散列值是相同并且响应的数字签名被成功验证,则客户端设备110可以推断:响应于数字组件请求120,接收到了数字组件129。如果散列值不相同,则客户端设备110丢弃数字组件129。
该验证防止在客户端设备110的恶意数字组件、应用、恶意中介或数字组件SDK将(例如,从另一设备接收的)任何令牌的散列值传递给生成鉴证令牌的可信的程序114的情况下可能发生的欺诈。也就是说,该验证确保响应于客户端设备110发送到内容平台150的数字组件请求而提供了数字组件。
应用111呈现数字组件(214)。例如,应用111可以显示具有分布者140的电子资源的数字组件129。
客户端设备110生成用于报告数字组件的显示的第二鉴证令牌(216)。在客户端设备110上显示数字组件129之后,应用111可以通知内容平台150指示数字组件129被显示在客户端设备110上。为了通知内容平台150,客户端设备110可以生成显示通知123,显示通知123可以是鉴证令牌124的形式,或者鉴证令牌124可以包括在显示通知123中。
类似于过程200的步骤202,应用111或数字组件SDK可以请求可信的程序114生成鉴证令牌。可信的程序114可以从客户端设备110的安全储存器115中检索设备完整性令牌。可信的程序114可以生成第二鉴证令牌124,第二鉴证令牌124可以包括内容集,该内容集包括(1)客户端设备110的公钥113、(2)指示创建鉴证令牌126的时间的令牌创建时间、(3)有效载荷数据以及(4)由设备完整性系统170生成的设备完整性令牌。第二鉴证令牌124还包括数字签名,该数字签名是基于第二鉴证令牌124的内容集,使用与检索到的设备完整性令牌中包括的客户端设备110的公钥113相对应的私钥112生成的。
在一些实现中,第二鉴证令牌124(或显示通知123)的有效载荷数据可以包括数字组件129的数字组件标识符。例如,在验证和显示数字组件129之后,第二鉴证令牌124的有效载荷部分可以包括数字组件标识符,该数字组件标识符向内容平台150指示由唯一标识符标识的数字组件129显示在客户端设备110上。在另一示例中,出于相同的目的,除了数字组件标识符之外,或者代替数字组件标识符,可以包括第一鉴证令牌122的散列值。
对第二鉴证令牌的请求可以包括第一鉴证令牌的散列值。为了验证显示通知对应于对数字组件的请求,如上所述,可信的程序114将与请求一起接收的第一鉴证令牌的散列值与可信的程序114存储的第一鉴证令牌的散列值进行比较。如果它们匹配,则可信的程序114生成第二鉴证令牌。如果散列值不匹配,则可信的程序114可以忽略该请求或生成欺诈警报。
客户端设备110存储第二鉴证令牌(218)。例如,客户端设备110的可信的程序114在生成第二鉴证令牌124之后,可以将第二鉴证令牌124存储在客户端设备110的安全储存器115(或安全高速缓存存储器)中。可信的程序114可以将第二鉴证令牌124或使用第二鉴证令牌生成的散列值在安全储存器115中存储指定的持续时间,该持续时间基于数字组件的显示和与数字组件的用户交互之间的预期时间量。在该持续时间过去之后,可信的程序114可以删除第二鉴证令牌或散列值。
客户端设备110向内容平台150发送显示通知(220)。例如,客户端设备110在显示数字组件之后,通过网络105向内容平台150发送显示通知218。
客户端设备的用户与数字组件交互(222)。例如,客户端设备110的用户在接触到由应用111显示的数字组件129之后,可以与数字组件129交互(例如,在客户端设备的触敏屏幕上按压他/她的手指和/或触笔)。
客户端设备110生成第三鉴证令牌(224)。响应于与客户端设备110上的数字组件129的用户交互,应用111可以通知内容平台150指示客户端设备110的用户与数字组件129进行了交互。为了向内容平台150通知用户交互,客户端设备110可以生成交互通知125,该交互通知可以是鉴证令牌126的形式,或者鉴证令牌126可以包括在交互通知125中。
类似于过程200的步骤202和216,应用或数字组件SDK可以从可信的程序114请求鉴证令牌。可信的程序114可以从客户端设备110的安全储存器115中检索设备完整性令牌。可信的程序114可以生成第三鉴证令牌126,该第三鉴证令牌126可以包括内容集,该内容集还包括(1)客户端设备110的公钥113、(2)指示创建鉴证令牌126的时间的令牌创建时间、(3)有效载荷数据、(4)由设备完整性系统170生成的设备完整性令牌。第三鉴证令牌126还包括基于第三鉴证令牌126的内容集,使用与检索到的设备完整性令牌的公钥113相对应的私钥112生成的数字签名。
在一些实现中,第三鉴证令牌126的有效载荷数据可以包括数字组件129的数字组件标识符,向内容平台150指示与客户端设备110的用户交互的数字组件129。在另一示例中,除了数字组件标识符之外,或者代替数字组件标识符,有效载荷数据可以包括第二鉴证令牌的散列值。
对第三鉴证令牌的请求可以包括第二鉴证令牌的散列值。为了验证显示通知与对数字组件的请求相对应,可信的程序114将与请求一起接收的第二鉴证令牌的散列值与可信的程序114存储的第二鉴证令牌的散列值进行比较。如果它们匹配,则可信的程序114生成第三鉴证令牌。如果散列值不匹配,则可信的程序114可以忽略该请求或生成欺诈警报。
客户端设备110向内容平台150发送交互通知(226)。例如,客户端设备110可以通过网络105向内容平台150发送交互通知125。
客户端设备110生成用于下载第二应用的URL(228)。例如,如果用户与包括引用诸如由应用服务器175发布的应用176这样的第二应用的数据的数字组件129交互,则客户端设备110的应用111(或客户端设备110的应用商店)可以被重定向到应用服务器175,从该应用服务器175,用户可以在客户端设备110上下载和/或安装应用176。例如,用户在接触到关于视频流服务的数字组件之后,可以与该数字组件进行交互,以下载和安装视频流服务的应用。
为了将客户端设备110的应用111重定向到应用服务器175,客户端设备110可以基于数字组件129的内容来生成URL。例如,数字组件129可以包括应用服务器175的eTLD+1域和应用176的应用标识符,该应用标识符从应用服务器175发布的多个应用之中识别应用176。在这样的实现中,由客户端设备110生成的URL可以包括应用服务器175的eTLD+1域和应用标识符。
在一些实现中,由客户端设备110生成的URL可以部分地包括经由请求120和通知123、125发送到内容平台150的鉴证令牌(例如,122、124和126)的散列值。客户端设备110的可信的程序114可以使用客户端设备110和内容提供者160预定的散列函数来生成令牌的散列值。例如,URL可以包括第一鉴证令牌122的散列值、第二鉴证令牌124的散列值和第三鉴证令牌126的散列值。在一些实现中,由客户端设备110生成的URL还可以包括数字组件129的数字组件标识符。
客户端设备110将应用111(或应用商店)重定向到应用服务器175(230)。例如,在客户端设备110上执行的应用111使用由客户端设备110生成的URL重定向到应用服务器175。
客户端设备110从应用服务器175下载第二应用(232)。例如,客户端设备110的用户下载第二应用(例如,应用176)或包括计算机可执行代码的数据,该计算机可执行代码在客户端设备110上执行时可以在客户端设备110上安装第二应用。
应用服务器175获得在URL中包括的散列值(234)。例如,应用服务器175在被客户端设备110访问时(在经由URL被重定向之后),存储在URL中包括的令牌的散列值。例如,应用服务器175可以存储(1)应用服务器175的eTLD+1域内的应用176的应用标识符、(2)第一鉴证令牌122的散列值、(3)第二鉴证令牌124的散列值以及(4)第三鉴证令牌126的散列值。在一些实现中,应用服务器175还可以存储数字组件129的数字组件标识符。
应用服务器175(或客户端设备110)向归因处理装置180发送安装通知(236)。例如,应用服务器175可以在被客户端设备110访问之后使用安装通知向归因处理装置180通知将第二应用(应用176)下载到客户端设备110上。在另一示例中,客户端设备110可以例如以第四鉴证令牌的形式发送安装通知,该第四鉴证令牌具有与本文档中描述的其他鉴证令牌相同的结构,但是具有以下有效载荷数据。在一些实现中,安装通知可以包括应用下载数据集(其可以是第四鉴证令牌的有效载荷数据),该数据集包括第一鉴证令牌122的散列值、第二鉴证令牌124的散列值和第三鉴证令牌126的散列值。注意,应用下载数据集的鉴证令牌122、124和126的散列值是由应用服务器175经由根据数字组件129的内容生成的URL从客户端设备110获得的。还要注意,应用下载数据集的鉴证令牌122、124和126的散列值是由客户端设备110的可信的程序114生成的。在一些实现中,安装通知还可以包括数字组件129的数字组件标识符。
归因处理装置180获得应用下载数据集(238)。例如,在接收到指示第二应用(例如,应用176)被下载和/或安装在客户端设备110上的安装通知之后,应用服务器175可以向归因处理装置180提供包括第一鉴证令牌122的散列值、第二鉴证令牌124的散列值和第三鉴证令牌126的散列值的应用下载数据集。归因处理装置180还可以存储数字组件129的数字组件标识符。
归因处理装置180将归因请求发送到内容平台150,并且可选地发送到可能促成在客户端设备安装应用的其他内容平台(240)。在一些实现中,归因处理装置180可以生成归因请求162并将其发送给一个或多个内容平台,以检查内容平台是否想要请求对于下载第二应用176的用户动作的归因。在一些实现中,归因请求162可以响应于归因处理装置180接收安装通知而生成。在其他实现中,归因处理装置180可以在一段时间内维护所有安装通知的日志,并且在该段时间之后对每个安装通知生成归因请求162。归因请求162可以包括数字组件标识符,该数字组件标识符可以向内容平台150指示归因处理装置180正在引用的数字组件。例如,归因处理装置180向内容平台150发送归因请求162,该归因请求162包括数字组件129的数字组件标识符。
内容平台150响应归因请求162(242)。对于下载和/或安装由在归因请求162中包括的数字组件标识符标识的数字组件129所引用的第二应用176的用户动作要被归因的内容平台150可以响应归因请求162。内容平台150可以分别计算对于数字组件请求120、显示通知123和安装通知125由内容平台150从客户端设备110接收的第一鉴证令牌122、第二鉴证令牌124和第三鉴证令牌126的散列值。在计算散列值之后,内容平台150可以将散列值作为归因数据集包括在响应中。换句话说,归因数据集包括在对数字组件的请求120中包括的第一鉴证令牌的散列值、在显示通知123中包括的第二鉴证令牌的散列值以及在交互通知125中包括的第三鉴证令牌的散列值。在一些实现中,归因数据集可以包括这些鉴证令牌,而非或者以及散列值。
在响应归因请求162之前,内容平台150可以核实第二鉴证令牌124和第三鉴证令牌126,以防止其他恶意实体错误地干扰用于提供数字组件129的过程。例如,在接收到包括鉴证令牌124的显示通知123之后,内容平台150可以使用在请求中包括的设备公钥来验证数字签名。内容平台150可以尝试使用公钥和由客户端设备110签名的请求的内容(例如,有效载荷数据、时间戳、公钥和设备完整性令牌)来验证数字签名。如果任何内容在生成数字签名之后改变,则验证将失败。例如,如果恶意方将设备完整性令牌插入到另一请求中,或者将具有更高可信性判定的不同的设备完整性令牌插入到请求中,则签名验证将失败。这确保显示通知123的内容在请求的发送期间未被改变,例如,未被中介改变。
内容平台150可以通过使用设备完整性系统170的公钥验证设备完整性令牌的签名来核实鉴证令牌124中包括的设备完整性令牌。这类似地确保设备完整性令牌的内容未改变,因为设备完整性令牌是由设备完整性令牌系统170发出的。内容平台150核实客户端设备110的及时性和可信性,例如确认设备完整性令牌是最近创建的(例如,在做出请求的时间之前未创建超过所选择的时间间隔,例如H小时或D天,H、D=1,2,3,…),并确认设备完整性令牌中的可信性判定是足以兑现显示通知的判定。如果任何有效性检查失败,则内容平台150可以忽略显示通知。类似地,内容平台150可以核实交互通知125中包括的第二鉴证令牌124和鉴证令牌124中包括的设备完整性令牌。注意,在发送数字组件129之前,鉴证令牌122可能已经被在数字组件请求120中包括的内容平台150核实。
在一些实现中,内容平台150或内容提供者160可以发起归因过程。例如,在从客户端设备110接收到安装通知125之后,内容平台150可以请求归因处理装置180进行归因。在这样的实现中,该请求可以包括归因数据集,该归因数据集包括由内容平台150从客户端设备110接收的第一鉴证令牌122、第二鉴证令牌124和第三鉴证令牌126的散列值。
归因处理装置180获得归因数据集(244)。例如,在从内容平台150接收到响应之后,归因处理装置180可以获得并存储包括第一鉴证令牌122的散列值、第二鉴证令牌124的散列值和第三鉴证令牌126的散列值的归因数据集的散列值。归因处理装置180还可以存储数字组件129的数字组件标识符。
归因处理装置180确定下载第二应用的用户动作的归因(246)。在分别从应用服务器175和内容平台150接收到应用下载数据集和归因数据集之后,归因处理装置180比较这两个数据集的内容,以验证客户端设备110响应于与显示在客户端设备110上的数字组件129的用户交互而访问了应用服务器175。归因处理装置180还可以验证在客户端设备110上显示的数字组件129是由确实是数字组件129的实际提供者的内容平台150提供的,以及内容平台150响应于由客户端设备110发送的对数字组件120的请求而提供了数字组件129。
例如,为了验证提供给客户端设备110的数字组件129是由内容平台150响应于对数字组件的请求120而选择和发送的,归因处理装置180可以将归因数据集的第一鉴证令牌122的散列值与应用下载数据集的对应散列值进行比较,例如与作为在应用下载数据集中包括的对数字组件的请求的一部分而接收的鉴证令牌的散列值进行比较。如果散列值相同,则将意味着数字组件129是作为对由客户端设备110发送到内容平台150的对数字组件的请求120的响应而提供的。
类似地,如果归因数据集的第二鉴证令牌124的散列值与应用下载数据集的对应的散列值相同(例如,与作为数字组件显示通知的一部分接收的鉴证令牌的散列值相同),则归因处理装置180可以断定由内容提供者160发送的数字组件129实际上显示在客户端设备110上,因为第二鉴证令牌124仅在验证数字组件129是由内容提供者160响应于对数字组件的请求120而提供的之后由客户端设备110生成的。
类似地,要验证客户端设备110响应于与数字组件129的用户交互而访问了应用服务器175的归因处理装置180将归因数据集的第三鉴证令牌122的散列值与应用下载数据集的数据对应散列值进行比较,例如与作为数字组件交互通知的一部分接收的鉴证令牌的散列值进行比较。换句话说,归因处理装置180在接收到交互通知125之后,比较由客户端设备110计算的交互通知125的鉴证令牌的散列值和由内容平台150计算的散列值。如果散列值相同,则归因处理装置180可以推断客户端设备110响应于与显示在客户端设备110上的数字组件129的用户交互而访问了应用服务器175。
总而言之,如果归因数据集和应用下载数据集的各个令牌的散列值匹配(例如,相同),则归因处理装置180可以断定导致在客户端设备110上显示数字组件129的事件、与数字组件129的后续用户交互以及从应用服务器175下载和/或安装应用126的用户动作是由预期方(即,客户端设备110、内容平台150和应用服务器175)在未受非预期和/或恶意实体的任何干扰和/或假冒的情况下执行的。归因处理装置180还可以确定内容平台150向客户端设备110提供了导致在客户端设备上下载和/或安装第二应用176的用户动作的数字组件129,并且归因于内容平台150。
最后,归因处理装置180可以使用数字组件标识符来确定包括SSP、DSP和内容提供者160的内容平台150,并且相应地将下载和/或安装第二应用176的用户动作归因于每个实体。
图3是请求下载第二应用的用户动作的归因的示例过程300的流程图。过程300的操作在下面被描述为由内容平台150执行。以下描述过程300的操作仅用于说明目的。过程300的操作可以由任何适当的设备或系统(例如任何适当的数据处理装置)执行。过程300的操作也可以被实现为在计算机可读介质上存储的指令,该计算机可读介质可以是非暂时性的。指令的执行使一个或多个数据处理装置执行过程300的操作。
内容平台150接收对一个或多个数字组件的请求(310)。例如,在客户端设备100上执行的诸如网络浏览器这样的应用111可以生成数字组件请求120,以从内容平台150请求数字组件。数字组件请求120可以包括第一鉴证令牌122,该第一鉴证令牌122可以包括内容集,该内容集包括(1)客户端设备110的公钥113、(2)指示创建鉴证令牌126的时间的令牌创建时间、(3)有效载荷数据以及(4)由设备完整性系统170生成的设备完整性令牌。第一鉴证令牌124还包括数字签名,该数字签名是基于第一鉴证令牌122的内容集,使用与检索到的设备完整性令牌中包括的公钥113相对应的私钥112生成的。有效载荷数据可以包括可用于选择数字组件的数据。
然后,客户端设备110可以将数字组件请求120发送到内容平台150的计算系统。在具体的示例中,诸如网络浏览器这样的应用111生成数字组件请求120,并通过网络105将请求120发送到内容平台150。
内容平台150向客户端设备110发送响应(320)。例如,内容平台150在接收到请求120之后,可以通过验证在请求120中包括的第一鉴证令牌122来核实请求120。例如,内容平台150可以尝试验证第一鉴证令牌122的内容集的数字签名,并确定鉴证令牌122的内容集,例如有效载荷数据、时间戳、公钥和设备完整性令牌在发送期间未改变。如果任何内容在生成数字签名之后改变,则验证将失败。
内容平台150可以通过使用设备完整性系统170的公钥验证设备完整性令牌的签名来核实第一鉴证令牌122的设备完整性令牌。内容平台150核实客户端设备110的及时性和可信性,例如,确认设备完整性令牌是最近创建的(即,在做出请求的时间之前未创建超过所选择的时间间隔,例如H小时或D天,H、D=1,2,3,…),并确认设备完整性令牌中的可信性判定是足以满足请求的判定。如果任何有效性检查失败,则内容平台150可以忽略该请求。例如,如果任何有效性检查失败,则内容平台150可以不响应请求。
在核实请求120和请求120的内容之后,内容平台150可以与诸如DSP(或内容提供者160)这样的一个或多个其他内容平台150交互,并且基于对数字组件120的请求的有效载荷数据来选择数字组件。所选择的数字组件129可以包括唯一标识符(称为数字组件标识符),其可以在DSP或内容提供者160的eTLD+1域中的多个数字组件之中唯一地标识数字组件129。数字组件标识符还可以标识实际向内容平台150提供了数字组件129的DSP或内容提供者。
内容平台150在选择数字组件之后,将数字组件129(或数字组件129的数据)作为对数字组件请求120的响应发送给应用111。在发送数字组件129之前,内容平台150使用诸如SHA256散列函数这样的预定散列函数来生成第一鉴证令牌122的散列值,并将散列值包括在响应中。内容平台150在向客户端设备110发送数字组件129时,可以在响应中包括数字组件标识符,以允许内容平台150唯一地标识数字组件129和对应的DSP或提供了数字组件的内容提供者160。
内容平台150接收显示通知(330)。例如,在客户端设备110上显示数字组件129之后,应用111可以通过向内容平台150发送显示通知123,通知内容平台150指示数字组件129已显示在客户端设备110上。显示通知123可以包括第二鉴证令牌124,该第二鉴证令牌124可以包括内容集,该内容集还包括(1)客户端设备110的公钥113、(2)指示创建鉴证令牌126的时间的令牌创建时间、(3)有效载荷数据、(4)由设备完整性系统170生成的设备完整性令牌。第二鉴证令牌124还包括数字签名,该数字签名是基于第二鉴证令牌124的内容集,使用与检索到的设备完整性令牌中包括的公钥113相对应的私钥112生成的。第二鉴证令牌124的有效载荷数据还可以包括第一鉴证令牌122的散列值和/或数字组件129的唯一数字组件标识符。
内容平台150接收交互通知(340)。例如,响应于与客户端设备110上的数字组件129的用户交互,应用111可以通知内容平台150指示客户端设备110的用户与数字组件129进行了交互。为了向内容平台150通知用户交互,客户端设备110可以生成交互通知125,该交互通知125可以包括第三鉴证令牌126。第三鉴证令牌126可以包括内容集,该内容集还包括(1)客户端设备110的公钥113、(2)指示创建鉴证令牌126的时间的令牌创建时间、(3)有效载荷数据、(4)由设备完整性系统170生成的设备完整性令牌。第三鉴证令牌126还包括数字签名,该数字签名是基于第三鉴证令牌126的内容集,使用与检索到的设备完整性令牌中包括的公钥113相对应的私钥112生成的。第三鉴证令牌126的有效载荷数据还可以包括第二鉴证令牌的散列值和/或数字组件129的数字组件标识符。
如果用户与包括引用诸如由应用服务器175发布的应用176这样的第二应用的数据的数字组件129交互,则客户端设备110的应用111(或应用商店)可以被重定向到应用服务器175,从应用服务器175,用户可以在客户端设备110上下载和/或安装应用176。例如,用户在接触到关于视频流服务的数字组件之后,可以与该数字组件进行交互,以下载和安装视频流服务的应用。
为了将客户端设备110的应用111重定向到应用服务器175,客户端设备110可以基于数字组件129的内容来生成URL。例如,数字组件129可以包括应用服务器175的eTLD+1域和应用176的应用标识符,该应用标识符从应用服务器175发布的多个应用之中标识应用176。在这样的实现中,由客户端设备110生成的URL可以包括应用服务器175的eTLD+1域和应用标识符。
在一些实现中,由客户端设备110生成的URL可以部分地包括经由对数字组件的请求120、显示通知123和交互通知125发送到内容平台150的鉴证令牌(例如122、124和126)的散列值。客户端设备110的可信的程序114可以使用客户端设备110和内容提供者160预定的散列函数来生成令牌的散列值。
在客户端设备110上执行的应用111使用由客户端设备110生成的URL重定向到应用服务器175。客户端设备110的用户下载第二应用(例如,应用176)或包括计算机可执行代码的数据,该计算机可执行代码在客户端设备110上执行时可以在客户端设备110上安装第二应用。应用服务器175获得在URL中包括的散列值。例如,应用服务器175在被客户端设备110访问时(在经由URL重定向之后),存储在URL中包括的令牌的散列值。例如,应用服务器175可以存储(1)应用服务器175的eTLD+1域内的应用176的应用标识符、(2)第一鉴证令牌122的散列值、(3)第二鉴证令牌124的散列值以及(4)第三鉴证令牌126的散列值。在一些实现中,应用服务器175还可以存储数字组件129的数字组件标识符。
应用服务器175向归因处理装置180发送安装通知。例如,应用服务器175在被客户端设备110访问之后,可以使用安装通知向归因处理装置180通知将第二应用(应用176)下载到客户端设备110上。在一些实现中,安装通知可以包括应用下载数据集(例如,第一数据集),该数据集包括第一鉴证令牌122的散列值、第二鉴证令牌124的散列值和第三鉴证令牌126的散列值。注意,应用下载数据集的鉴证令牌122、124和126的散列值是由应用服务器175经由根据数字组件129的内容生成的URL从客户端设备110获得的。还要注意,应用下载数据集的鉴证令牌122、124和126的散列值是由客户端设备110的可信的程序114生成的。在一些实现中,安装通知还可以包括数字组件129的数字组件标识符。
归因处理装置180获得应用下载数据集。例如,在接收到指示第二应用(例如,应用176)被下载和/或安装在客户端设备110上的安装通知之后,归因处理装置180可以获得并存储应用下载数据集的内容,包括第一鉴证令牌122的散列值、第二鉴证令牌124的散列值和第三鉴证令牌126的散列值。归因处理装置180还可以存储数字组件129的数字组件标识符。
内容平台150接收归因请求162(350)。例如,归因处理装置180可以生成归因请求162,并将其发送给一个或多个内容平台,以检查内容平台是否想要得到下载第二应用176的用户动作的归因。归因请求162可以响应于归因处理装置180接收到安装通知而生成。在一些实现中,归因处理装置180可以将所有安装通知的日志维护一段时间,并且在该段时间之后对每个安装通知生成归因请求162。归因请求162可以包括数字组件标识符,该数字组件标识符可以向内容平台150指示归因处理装置180正在引用的数字组件。例如,归因处理装置180向内容平台150发送归因请求162,该归因请求162包括数字组件129的数字组件标识符。
内容平台150生成并发送对归因请求162的响应(360)。例如,对于与数字组件129交互或下载(或安装)由数字组件129引用的应用126的用户动作要被归因的内容平台150可以响应归因请求162。该响应可以包括归因数据集(例如,第二数据集),该归因数据集包括由内容平台150从客户端设备110接收的第一鉴证令牌122、第二鉴证令牌124和第三鉴证令牌126的散列值(或实际值)。例如,第一鉴证令牌122包括在对数字组件的请求120中,第二鉴证令牌124被包括在显示通知123中,第三鉴证通知126包括在交互通知125中。
在一些实现中,内容平台150(例如,SSP或DSP)或内容提供者160可以发起归因过程。例如,在从客户端设备110接收到安装通知125之后,内容平台150可以请求归因处理装置180进行归因。在这样的实现中,该请求可以包括归因数据集,该归因数据集包括由内容平台150从客户端设备110接收的第一鉴证令牌122、第二鉴证令牌124和第三鉴证令牌126的散列值。
在接收到来自内容平台150的响应之后,归因处理装置180可以获得并存储包括第一鉴证令牌122的散列值、第二鉴证令牌124的散列值和第三鉴证令牌126的散列值的归因数据集的散列值。归因处理装置180还可以存储数字组件129的数字组件标识符。
在分别从应用服务器175和内容平台150接收到应用下载数据集和归因数据集之后,归因处理装置180比较这两个数据集的内容,以验证由内容平台150提供并显示给用户的数字组件导致了应用的下载,以及归因数据集在没有欺诈的情况下被安全地收集和提供。该比较还可以用于验证客户端设备110响应于与显示在客户端设备110上的数字组件129的用户交互而访问了应用服务器175。归因处理装置180还验证显示在客户端设备110上的数字组件129是由确实是数字组件129的实际提供者的内容平台150提供的,以及内容平台150响应于客户端设备110发送的对数字组件120的请求而提供了数字组件129。
最后,归因处理装置180可以将下载和/或安装第二应用176的用户动作归因于内容平台150。
图4是确定下载应用的用户动作的归因的示例过程400的流程图。过程400的操作在下面被描述为由归因处理装置180执行。以下描述过程400的操作仅用于说明目的。过程400的操作可以由任何适当的设备或系统(例如任何适当的数据处理装置)执行。过程400的操作也可以被实现为存储在计算机可读介质上的指令,该计算机可读介质可以是非暂时性的。指令的执行使一个或多个数据处理装置执行过程400的操作。
归因处理装置180从归因请求162获得归因数据集(410)。响应于客户端设备110访问应用服务器175并下载和/或安装第二应用176,应用服务器175(或客户端设备110或内容平台150)向归因处理装置180发送安装通知。例如,应用服务器175在被客户端设备110访问之后,可以使用安装通知向归因处理装置180通知将第二应用(应用176)下载到客户端设备110上。在一些实现中,安装通知可以包括应用下载数据集,该数据集包括第一鉴证令牌122的散列值、第二鉴证令牌124的散列值和第三鉴证令牌126的散列值。
归因处理装置180从安装通知获得归因数据集(420)。对于与数字组件129交互或下载(或安装)由数字组件129引用的应用126的用户动作要被归因的内容平台150可以响应归因请求162。该响应可以包括归因数据集,该归因数据集包括由内容平台150从客户端设备110接收的第一鉴证令牌122、第二鉴证令牌124和第三鉴证令牌126的散列值。例如,第一鉴证令牌122包括在对数字组件的请求120中,第二鉴证令牌124包括在显示通知123中,第三鉴证通知126包括在交互通知125中。
归因处理装置180将应用下载数据集与归因数据集进行比较(430)。在分别从应用服务器175和内容平台150接收到应用下载数据集和归因数据集之后,归因处理装置180比较这两个数据集的内容。归因数据集的内容和应用下载数据集之间的该比较可以包括:将归因数据集的第一鉴证令牌122的散列值与应用下载数据集的数字组件请求的鉴证令牌的散列值进行比较。该比较还可以包括:将归因数据集的第二鉴证令牌124的散列值与用于报告应用下载数据集的数字组件印象的鉴证令牌的散列值进行比较。该比较还可以包括:将归因数据集的第三鉴证令牌126的散列值与用于报告与应用下载数据集的数字组件的用户交互的鉴证令牌的散列值进行比较。如果所有三对匹配,则归因处理装置180可以确定归因数据集匹配应用下载数据集,并且因此归因处理装置180将应用的下载归因于内容平台。
归因处理装置180基于比较确定归因数据集的散列值和应用下载数据集的散列值匹配(440)。例如,归因处理装置180可以基于比较确定归因数据集的散列值和应用下载数据集的散列值是相同的。
归因处理装置180将与数字组件129交互的用户动作归因于内容提供者(450)。如果两个数据集的各个令牌的散列值是相同的,则归因处理装置180可以断定:导致在客户端设备110上显示数字组件129的事件、随后的与数字组件129的用户交互以及从应用服务器175下载和/或安装应用126的用户动作是由预期方(例如,客户端设备110、内容平台150和应用服务器175)执行的,而没有任何非预期和/或恶意实体的干扰和/或假冒。归因处理装置180还可以确定内容平台150向客户端设备110提供了导致在客户端设备上下载和/或安装第二应用176的用户动作的数字组件129,并且归因于内容平台150。然后,归因处理装置180可以相应地将下载和/或安装第二应用176的用户动作归因于内容平台。
在一些实现中,归因处理装置180可以在确定是否以及如何对应用的下载或安装归因信用时考虑其他标准。例如,一个或多个散列值比较可以用于确定内容平台150是否以某种方式促成应用的下载或安装。在具体的示例中,归因处理装置180可以使用显示通知的散列值比较来确定请求在特定客户端设备110下载或安装应用的归因的每个内容平台150是否促成与该应用相关的数字组件的显示。若如此,则归因处理装置180可以考虑向该内容平台150提供至少一部分归因信用。
归因处理装置150可以使用各种规则或其他归因分配模型向一个或多个内容平台150中的每个分配归因,该一个或多个内容平台150促成与在特定客户端设备110处的应用相关的数字组件的显示。例如,每个内容平台150可以提供其与在特定客户端设备110处的应用的下载或安装相关的鉴证令牌(以及可选地,其对应的散列值)。每个鉴证令牌可以包括元数据作为有效载荷数据,以证明它与最终的应用下载相关。这样的元数据可以分为两类:事故链中当前事件之前的事件的鉴证令牌的散列和事件的描述,例如,显示事件包含解释当前数字组件将推动特定应用并且显示在特定数字组件槽中的元数据。另一示例是用户交互鉴证,其包含由可信应用114验证为用户与已经在同一数字组件槽中显示特定应用的数字组件的应用所拥有的数字组件槽进行了交互的元数据。一些描述可以由显示数字组件的应用来声明,而更多的描述由操作系统或其他可信应用114来验证。
根据归因规则,归因处理装置150可以在通过了散列值检查的多个内容平台150之间拆分总信用。例如,内容平台A显示具有与特定应用相关的内容的数字组件,但是用户未与该数字组件交互。内容平台B显示具有与特定应用相关的内容的另一数字组件,该内容导致用户与数字组件的交互以及特定应用的最终安装。归因规则可以是内容平台B得到总信用的2/3,内容平台A得到总信用的1/3。然而,每个内容平台将需要提供它们各自的鉴证令牌来请求归因。例如,内容平台A将向归因处理装置180提供用于数字组件请求和/或显示通知的鉴证令牌,而内容平台B将向归因处理装置180提供用于其数字组件请求、显示通知和用户交互通知的鉴证令牌。每个内容平台可以向归因处理装置180提供令牌的散列值。
图5是可用于执行上述操作的示例计算机系统500的框图。系统500包括处理器510、存储器520、存储设备530和输入/输出设备540。组件510、520、530和540中的每个均可以例如使用系统总线550来互连。处理器510能够处理在系统500内执行的指令。在一些实现中,处理器510是单线程处理器。在另一实现中,处理器510是多线程处理器。处理器510能够处理在存储器520或存储设备530中存储的指令。
存储器520存储系统500内的信息。在一个实现中,存储器520是计算机可读介质。在一些实现中,存储器520是易失性存储单元。在另一实现中,存储器520是非易失性存储单元。
存储设备530能够对系统500提供大容量存储。在一些实现中,存储设备530是计算机可读介质。在各种不同的实现中,存储设备530可以包括例如硬盘设备、光盘设备、由多个计算设备通过网络共享的存储设备(例如,云存储设备)或一些其他大容量存储设备。
输入/输出设备540对系统500提供输入/输出操作。在一些实现中,输入/输出设备540可以包括一个或多个网络接口设备,例如以太网卡、串行通信设备(例如RS-232端口)和/或无线接口设备(例如802.11卡)。在另一实现中,输入/输出设备可以包括被配置成接收输入数据并将输出数据发送到外部设备560(例如,键盘、打印机和显示设备)的驱动设备。然而,也可以使用其他实现,例如移动计算设备、移动通信设备、机顶盒电视客户端设备等。
尽管已经在图5中描述了示例处理系统,但是本说明书中描述的主题和功能操作的实现能够以其他类型的数字电子电路实现,或者以计算机软件、固件或硬件(包括本说明书中公开的结构及其结构等同物)实现,或者以它们中的一个或多个的组合实现。
本说明书中描述的主题和操作的实施例能够以数字电子电路实现,或者以计算机软件、固件或硬件(包括本说明书中公开的结构及其结构等同物)实现,或者以它们中的一个或多个的组合实现。本说明书中描述的主题的实施例可以被实现为一个或多个计算机程序,即计算机程序指令的一个或多个模块,其被编码在计算机存储介质(或单个介质)上,用于由数据处理装置执行或控制数据处理装置的操作。替代地或附加地,程序指令可以被编码在人工生成的传播信号(例如,机器生成的电、光或电磁信号)上,该信号被生成以对信息进行编码,用于发送到合适的接收器设备,以便由数据处理装置执行。计算机存储介质可以是或被包括于计算机可读存储设备、计算机可读存储基底、随机或串行存取存储器阵列或器件、或者它们中的一个或多个的组合中。此外,虽然计算机存储介质不是传播信号,但是计算机存储介质可以是编码在人工生成的传播信号中的计算机程序指令的源或目的地。计算机存储介质也可以是或被包括于一个或多个单独的物理组件或介质(例如,多个CD、盘或其他存储设备)。
本说明书中描述的操作可以被实现为由数据处理装置对存储在一个或多个计算机可读存储设备上或从其他源接收的数据执行的操作。
术语“数据处理装置”包含用于处理数据的所有种类的装置、设备和机器,包括例如可编程处理器、计算机、片上系统或前述的多个或组合。装置可以包括专用逻辑电路,例如FPGA(现场可编程门阵列)或ASIC(专用集成电路)。除了硬件之外,该装置还可以包括对所讨论的计算机程序创建执行环境的代码,例如,构成处理器固件、协议栈、数据库管理系统、操作系统、跨平台运行时环境、虚拟机或它们中的一个或多个的组合的代码。装置和执行环境可以实现各种不同的计算模型基础设施,例如网络服务、分布式计算和网格计算基础设施。
计算机程序(也称为程序、软件、软件应用、脚本或代码)可以用任何形式的编程语言编写,包括编译或解释语言、声明或过程语言,并且它可以以任何形式部署,包括作为独立程序或作为模块、组件、子例程、对象或适合在计算环境中使用的其他单元。计算机程序可以但不需要对应于文件系统中的文件。程序可以存储在保存其他程序或数据的文件的一部分(例如,存储在标记语言文档中的一个或多个脚本)中,存储在专用于所讨论的程序的单个文件中,或者存储在多个协作文件(例如,存储一个或多个模块、子程序或代码部分的文件)中。计算机程序可以被部署为在一台计算机或者位于一个地点或分布在多个地点并通过通信网络互连的多台计算机上执行。
本说明书中描述的过程和逻辑流程可以由执行一个或多个计算机程序的一个或多个可编程处理器来执行,以通过对输入数据进行操作并生成输出来执行动作。过程和逻辑流程也可以由专用逻辑电路来执行,并且装置也可以被实现为专用逻辑电路,例如FPGA(现场可编程门阵列)或ASIC(专用集成电路)。
举例来说,适于执行计算机程序的处理器包括通用和专用微处理器。通常,处理器将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的基本元件是用于根据指令执行动作的处理器和用于存储指令和数据的一个或多个存储器设备。通常,计算机还将包括或者操作地耦合(以从其接收数据或向其传输数据,或两者兼有)的用于存储数据的一个或多个大容量存储设备,例如磁盘、磁光盘或光盘。然而,计算机不需要有这样的设备。此外,计算机可以嵌入于另一设备,例如,移动电话、个人数字助理(PDA)、移动音频或视频播放器、游戏控制台、全球定位系统(GPS)接收器或便携式存储设备(例如,通用串行总线(USB)闪存驱动器)等。适于存储计算机程序指令和数据的设备包括所有形式的非易失性存储器、介质和存储设备,例如包括:半导体存储设备,例如EPROM、EEPROM和闪速存存储器设备;磁盘,例如内部硬盘或可移动磁盘;磁光盘;以及DVD-ROM盘。处理器和存储器可以由专用逻辑电路来补充或并入其中。
为了提供与用户的交互,本说明书中描述的主题的实施例可以在计算机上实现,该计算机具有例如CRT(阴极射线管)或LCD(液晶显示器)监视器这样的用于向用户显示信息的显示设备以及例如鼠标或轨迹球这样的用户可以用于向计算机提供输入的键盘和指点设备。也可以使用其他类型的设备来提供与用户的交互;例如,提供给用户的反馈可以是任何形式的感觉反馈,例如视觉反馈、听觉反馈或触觉反馈;并且可以以任何形式接收来自用户的输入,包括声音、语音或触觉输入。此外,计算机可以通过向用户使用的设备发送文档和从用户使用的设备接收文档来与用户交互,例如,通过响应于从网络浏览器接收的请求,向用户的客户端设备上的网络浏览器发送网页。
本说明书中描述的主题的实施例可以在计算系统中实现,该计算系统包括后端组件例如作为数据服务器,或者包括中间件组件(例如应用服务器),或者包括前端组件(例如具有图形用户界面或网络浏览器的客户端计算机,由此用户可以与本说明书中描述的主题的实现进行交互),或者包括一个或多个这样的后端、中间件或前端组件的任何组合。该系统的组件可以通过任何形式或介质的数字数据通信(例如通信网络)来互连。通信网络的示例包括局域网(“LAN”)和广域网(“WAN”)、互联网(例如,因特网)和对等网络(例如,自组织对等网络)。
计算系统可以包括客户端和服务器。客户端和服务器通常彼此远离,并且通常通过通信网络进行交互。客户端和服务器的关系是由于在各自的计算机上运行的计算机程序而产生的,并且彼此具有客户端-服务器关系。在一些实施例中,服务器将数据(例如,HTML页面)发送到客户端设备(例如,为了向与客户端设备交互的用户显示数据并从其接收用户输入)。可以在服务器处从客户端设备接收在客户端设备处生成的数据(例如,用户交互的结果)。
虽然本说明书包含许多具体的实施细节,但是这些不应该被解释为对任何发明的范围或可能要求保护的范围的限制,而是对特定于具体发明的具体实施例的特征的描述。本说明书中在独立的实施例的上下文中描述的一些特征也可以在单个实施例中组合地实现。相反,在单个实施例的上下文中描述的各种特征也可以在多个实施例中单独地或以任何合适的子组合实现。此外,尽管特征可能在上面被描述为在一些组合中起作用,并且甚至最初被如此要求保护,但是来自所要求保护的组合的一个或多个特征在一些情况下可以从该组合中删除,并且所要求保护的组合可以针对子组合或子组合的变型。
类似地,虽然在附图中以特定的次序描述了操作,但是这不应当被理解为要求这些操作以所示的特定次序或顺序地执行,或者要求所有示出的操作都被执行,以获得期望的结果。在一些情况下,多任务和并行处理可能是有利的。此外,上述实施例中的各种系统组件的分离不应被理解为在所有实施例中都需要这样的分离,并且应当理解,所描述的程序组件和系统通常可以一起集成在单个软件产品中或者打包到多个软件产品中。
因此,已经描述了主题的具体实施例。其他实施例在以下权利要求的范围内。在一些情况下,权利要求中所述的动作可以以不同的次序执行,并且仍能获得期望的结果。此外,附图中描绘的过程未必需要所示的特定次序或顺序来实现期望的结果。在一些实现中,多任务和并行处理可能是有利的。

Claims (10)

1.一种计算机实现的方法,包括:
由归因处理装置从应用服务器获得用于在客户端设备处的应用的安装的第一数据集,其中,第一数据集包括第一匿名令牌的第一散列值、第二匿名令牌的第二散列值和第三匿名令牌的第三散列值;
向多个内容平台发送对在客户端设备处的应用的安装的归因请求;
由归因处理装置从所述多个内容平台的内容平台获得对归因请求的响应,所述响应包括第二数据集,所述第二数据集包括第四匿名令牌的第四散列值、第五匿名令牌的第五散列值和第六匿名令牌的第六散列值;
由归因处理装置将第一数据集与第二数据集进行比较;
由归因处理装置确定第一数据集匹配第二数据集;以及
响应于确定第一数据集匹配第二数据集,由归因处理装置将应用的安装归因于内容平台。
2.根据权利要求1所述的计算机实现的方法,还包括基于从所述多个内容平台接收的数据集,确定多个内容平台的相应的归因信用。
3.根据权利要求1或2所述的计算机实现的方法,其中,由归因处理装置从应用服务器获得用于在客户端设备处的应用的安装的第一数据集包括从应用服务器接收安装通知。
4.根据权利要求1或2所述的计算机实现的方法,其中,由归因处理装置将第一数据集与第二数据集进行比较包括:
将第一匿名令牌的第一散列值与第四匿名令牌的第四散列值进行比较;
将第二匿名令牌的第二散列值与第五匿名令牌的第五散列值进行比较;以及
将第三匿名令牌的第三散列值与第六匿名令牌的第六散列值进行比较。
5.根据权利要求1或2所述的计算机实现的方法,其中:
第一匿名令牌和第四匿名令牌用于数字组件请求,针对所述数字组件请求,将应用的数字组件提供给客户端设备;
第二匿名令牌和第五匿名令牌用于报告在客户端设备处的数字组件的印象;以及
第三匿名令牌和第六匿名令牌用于报告在客户端设备处的用户与数字组件的交互。
6.根据权利要求1或2所述的方法,其中,所述内容平台从客户端设备接收第四匿名令牌、第五匿名令牌和第六匿名令牌。
7.根据权利要求1或2所述的方法,还包括响应于第二内容平台提供与第二匿名令牌的第二散列值匹配的用于显示应用的数字组件的匿名令牌的散列值,确定将应用的安装归因于第二内容平台。
8.根据权利要求1或2所述的计算机实现的方法,其中,每个匿名令牌包括包含用于设备完整性令牌的内容集的相应的令牌,其中,用于设备完整性令牌的内容集包括指示对客户端设备的信任级别的可信度判定、指示可信度判定被确定的时间的时间戳以及用于设备完整性令牌的公钥数据。
9.一种系统,包括:
一个或多个处理器;以及
一个或多个存储设备,存储指令,所述指令在由所述一个或多个处理器执行时使所述一个或多个处理器执行根据任一前述权利要求所述的方法。
10.一种承载指令的计算机可读存储介质,所述指令在由一个或多个处理器执行时使所述一个或多个处理器执行根据权利要求1至8中的任一项所述的方法。
CN202410480513.0A 2021-08-26 2022-08-26 使用鉴证令牌的安全归因的方法、系统以及介质 Pending CN118353668A (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
IL285887 2021-08-26

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN202280006821.9A Division CN116348874B (zh) 2021-08-26 2022-08-26 使用鉴证令牌的安全归因的方法、系统以及介质

Publications (1)

Publication Number Publication Date
CN118353668A true CN118353668A (zh) 2024-07-16

Family

ID=

Similar Documents

Publication Publication Date Title
CN113015974B (zh) 针对隐私保护的可验证同意
US11949688B2 (en) Securing browser cookies
KR20220123695A (ko) 암호화 방식으로 보안 요청 검증
JP2023096089A (ja) グループ署名による匿名イベント証明
CN114144993B (zh) 保护客户端设备通信的完整性的方法、系统和介质
US20240095364A1 (en) Privacy-preserving and secure application install attribution
CN114391242B (zh) 匿名事件证明
CN116348874B (zh) 使用鉴证令牌的安全归因的方法、系统以及介质
CN118353668A (zh) 使用鉴证令牌的安全归因的方法、系统以及介质

Legal Events

Date Code Title Description
PB01 Publication