CN118043812A - 隐私保护和安全应用程序安装归因 - Google Patents

隐私保护和安全应用程序安装归因 Download PDF

Info

Publication number
CN118043812A
CN118043812A CN202280064779.6A CN202280064779A CN118043812A CN 118043812 A CN118043812 A CN 118043812A CN 202280064779 A CN202280064779 A CN 202280064779A CN 118043812 A CN118043812 A CN 118043812A
Authority
CN
China
Prior art keywords
attribution
application
token
client device
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
CN202280064779.6A
Other languages
English (en)
Inventor
G·王
N·A·B·萨巴蒂诺
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 CN118043812A publication Critical patent/CN118043812A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/572Secure firmware programming, e.g. of basic input output system [BIOS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/02Marketing; Price estimation or determination; Fundraising
    • G06Q30/0201Market modelling; Market analysis; Collecting market data
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/033Test or assess software

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Business, Economics & Management (AREA)
  • Finance (AREA)
  • Strategic Management (AREA)
  • Development Economics (AREA)
  • Accounting & Taxation (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Data Mining & Analysis (AREA)
  • Game Theory and Decision Science (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • General Business, Economics & Management (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

描述了用于在保护用户隐私的同时安全地归因应用程序(应用)安装的方法、系统和设备,包括在计算机存储介质上编码的计算机程序。在一个方面,一种方法包括给定数字组件,其可以被提供并且可以包括对软件应用程序的引用。可以检测发起应用程序的安装的与数字组件的用户交互。软件应用程序可以安装在客户端装置处。可以获得以下各项:(i)引用软件应用程序的印象数据以及(ii)引用软件应用程序的交互数据。可以通过将归因模型应用于呈现数据和交互数据来分配针对软件应用程序的安装的归因信用。可以生成归因令牌,其包括(i)标识软件应用程序的数据,(ii)标识分配给实体的相应归因信用的数据,以及(iii)完整性令牌。

Description

隐私保护和安全应用程序安装归因
技术领域
本说明书涉及数据安全和数据处理。
背景技术
诸如移动电话的计算装置的有用性主要由安装在装置上的通常称为“移动应用”或“应用”的应用程序来限定。应用可以提供诸如个人生产力、社交网络、消息传送、电子邮件、新闻、游戏以及许多其他类别的功能。
当用户与移动装置交互时,可以向其提供数字组件,数字组件向用户通知各种应用的可用性。此类数字组件对用户和应用发布者都是有益的:用户了解到某个应用可能会有用,并且应用发布者获得对其应用的用户曝光。供应提供此类信息的数字组件的第三方数字组件提供商可以增强这种协同作用。
发明内容
本说明书整体涉及用于在保护用户隐私和抵抗恶意活动的同时安全地归因应用程序安装的系统和技术。来自多个应用安装的数据可以在数据被报告给归因设备之前进行聚合和匿名化,从而为安装应用的用户提供增强的隐私。
一般而言,本说明书中描述的主题的一个创新方面可以体现在包括以下操作的方法中:在客户端装置处提供包括对软件应用程序的引用的给定数字组件。客户端装置检测与该给定数字组件的用户交互,该用户交互发起该软件应用程序在该客户端装置上的安装。该软件应用程序安装在该客户端装置处。可以获得以下各项:(i)引用该软件应用程序的一个或多个数字组件在该客户端装置处的一次或多次提供中的每一者的印象(impression)数据,以及(ii)与引用该软件应用程序的该一个或多个数字组件中的至少一者的一次或多次用户交互中的每一者的交互数据,其中该一个或多个数字组件包括该给定数字组件。通过向呈现数据和交互数据应用归因模型,将用于该软件应用程序的安装的相应归因信用(credit)分配给提供该一个或多个数字组件的一个或多个实体。对于每个实体,生成归因令牌。该归因令牌包括(i)标识该软件应用程序的数据,(ii)标识分配给该实体的相应归因信用的数据,以及(iii)完整性令牌,该完整性令牌验证该软件应用程序安装在该客户端装置上并且验证该归因令牌是由可信客户端装置生成的。提供该归因令牌。该方面的其他实现方式包括对应的设备、系统和计算机程序,其被配置为执行这些方法的各方面、在计算机存储装置上编码。
这些和其他实现方式可以各自可选地包括以下特征中的一个或多个特征。每个实体的归因令牌可以包括标识由该实体提供的特定数字组件的数据。每个实体的归因令牌可以包括标识该软件应用程序的数据、标识分配给该实体的相应归因信用的数据以及完整性令牌的数字签名,该完整性令牌验证该软件应用程序安装在该客户端装置上并且验证该归因令牌是由可信客户端装置生成的。每个实体的归因令牌可以包括应用程序的公钥,该应用程序发起对由该实体提供的数字组件的请求,提供由该实体提供的数字组件,并且用户在该应用程序处与由该实体提供的数字组件交互。用户交互可以包括在指定的时间段内显示该数字组件。客户端装置可以将印象数据或交互数据中的至少一者存储在该客户端装置上运行的受信任程序的安全存储区(secure storage)中。对于数字组件的每次提供,可以将该数字组件的印象数据提供给提供该数字组件的实体。对于与数字组件的每次交互,该数字组件的用户交互令牌可以发送到提供该给定数字组件的实体。该归因令牌可以包括所安装的软件应用程序的身份或从其下载该软件应用程序的应用程序提供商中的一者或多者。
可以实现本说明书中描述的主题的特定实施例,以便实现以下优点中的一个或多个优点。下面描述的技术可以通过从网络中消除不涉及实际应用安装的所有归因和/或事件报告消息来提高资源效率。由于与应用的数字组件的显示相比,安装发生的频率相对较低,例如在许多情况下为1%或更少,所以消息减少可能是相当大的,特别是当在数百万的客户端装置和数十亿的数字组件呈现上聚合时,由此保存否则将被浪费的网络带宽。该消息减少减少了数字内容平台的服务器资源和网络带宽的消耗,以及用户的移动装置上的客户端装置资源(包括存储器、本地存储区、带宽和电池)的消耗。
下面描述的技术还通过防止敏感用户数据的收集以及通过防止跨不同应用程序和跨应用程序发布者的用户跟踪来保护用户隐私。此外,通过以隐私保护方式(例如,使用聚合引擎)提供与印象和数字组件交互有关的丰富元数据,所述技术支持组件安装的正确归因而不牺牲隐私保证。此外,所述技术例如通过对在系统组件之间传输的消息进行密码编码并使用数字签名来检测此类消息的内容的更改来支持检测和/或抵抗恶意活动。
本说明书的主题的一个或多个实现方式的细节在附图和以下描述中阐述。根据说明书、附图和权利要求书,本主题的其他特征、方面和优点将变得显而易见。
附图说明
图1是用于应用安装归因的示例过程的流程图。
图2是用于隐私保护应用安装归因的示例环境的框图。
图3是用于用户印象、数字组件交互和应用交互证明的示例过程的流程图。
图4是用于印象证明的示例过程的流程图。
图5是用于用户组件交互证明的示例过程的流程图。
图6是用于用户应用安装证明的示例过程的流程图。
图7是示例计算机系统的框图。
各种附图中相同的附图标记和名称表示相同的元件。
具体实施方式
软件应用程序,诸如为简洁起见也称为“应用”的移动应用,通过增强计算装置的能力来提高装置的有用性。实际上,应用足够有用,使得一些当代的应用存储库包含超过一百万个可用的应用。虽然大量可用的应用提供了几乎无限的使用选项,但是应用的量也使用户难以了解可能满足特定需求的应用。
为了帮助用户找到相关应用,一些应用发布者例如通过将关于他们的应用的信息嵌入web内容或其他应用中来提供关于他们的应用的信息。在一些情况下,应用发布者招募第三方数字组件提供商,其供应数字组件,数字组件提供关于一个或多个应用程序的信息以增强此协同作用。实际上,用户经常与数字组件交互,例如查看至少指定的时间段和/或选择由多个第三方提供的数字组件,其中一些第三方可能为同一应用程序提供信息。这导致挑战:当安装了应用时,应用发布者可能必须确定哪个第三方发起了安装。
为了提供此类归因,系统可以测量例如与应用安装有关的四个事件:(i)用户提出请求,该请求可以是对关于应用的信息的直接请求,也可以是其中各种信号用于确定该请求与应用相关的间接请求;(ii)向用户提供应用信息,从而创建“印象”;(iii)用户与信息交互,从而创建用户交互;以及(iv)用户安装并打开应用。然而,每个事件可以发起单独的报告消息,并且跨这些消息的关联可涉及提供将跨所有四个阶段使用的公共标识符(CID),这可能对用户隐私有害。例如,CID可用于聚合用户跨平台(例如,跨数字组件的发布者、内容提供商、应用提供商等)的行为,从而潜在地提供对用户行为的侵入性见解。
报告每个此类事件来提供应用安装归因是资源低效的。如上所述,步骤(ii)是印象的指示—即,用户接收到关于可用应用的信息。然而,只有很小百分比的印象导致应用安装—通常为1%或更少—因此与归因机构相关的绝大多数(99%或更多)消息被浪费,从而报告实际上不会导致安装的印象。消除此类不必要的消息可以通过减少拥塞来提高网络性能,同时还减少创建和传输消息的装置以及接收和处理消息的服务器上的负载。
本文档中描述的技术提供了应用安装的准确和安全的归因,同时保护用户隐私并减少归因过程对系统资源的影响。准确的归因通常涉及在上面列出的所有四个步骤中针对恶意活动的弹性,并且在每个步骤中均存在此类活动的机会。例如:(i)操作系统仿真器可以生成用户请求;(ii)模拟的印象可以在装置外呈现,并且实际上对于用户从不可见,或者该印象可能不涉及对安装在用户装置上的特定应用的引用;(iii)用户交互可以以编程方式生成;以及(iv)应用程序安装的报告可以是伪造的或以其他方式是恶意的。所述系统和技术提供了跨这些机会中的每一者针对恶意活动的弹性。
为了防止恶意活动,归因提供商可以测量这四个事件以确定哪个第三方应针对安装获得信用。然而,为此,归因提供商收集大量信息以促进归因过程。例如,归因提供商可以收集关于用户请求、印象和交互的所有信息,而不管它们是否导致应用安装。与引起大量网络消息一起,此类信息潜在地以微小的细节揭示用户的应用内活动,从而威胁用户隐私。
此外,用户请求、印象和用户交互经常发生在与安装的应用不同的应用上,即网页或应用显示数字组件,该数字组件引用最终安装的第二应用。因此,归因过程可以跨边界,包括应用边界(即,超出单个应用),并且甚至跨应用发布者边界(即,超出单个应用发布者)链接用户的活动。此类链接可能影响用户隐私和数据安全,并且在某些情况下被禁止,包括当禁止跨应用、跨发布者(例如,跨域)跟踪时。本文档中描述的技术提供了对恶意活动的内置抵抗,同时在不收集此类敏感数据的情况下以及在禁止跟踪的平台和/或环境中仍然保护用户隐私和数据安全。因此,本文档中描述的技术可以甚至在阻止收集此类敏感数据的系统内提供安全、准确和抵抗恶意活动的归因。
此外,当禁止跨应用或跨发布者跟踪时,CID可能不可用于帮助归因提供商形成跨事件(i)至(iv)的因果链,从而破坏归因过程。例如,通过使用诸如用户指纹的禁止技术跨应用合并用户活动,归因提供商可能会尝试规避对使用CID的禁止,但是,在某些情况下,此类技术被平台政策和相关法规禁止,并且可能是不可靠的。
本文档中描述的技术提供了一种解决方案,其解决了与欺诈归因相关的问题,同时保护了隐私和网络资源。具体地,本文档中描述的技术至少提供以下优点:(a)检测恶意活动和针对恶意活动的弹性,使得归因过程是安全的;(b)强有力的隐私保护和数据安全;(c)支持报告的可验证因果链;以及(d)系统资源的高效使用。
一些解决方案可以提供这些优点的子集,但不是全部。例如,基于密码学的解决方案可以使用密码学来开发信任和证明链。在此类解决方案中,可以使用例如使用椭圆曲线数字签名算法或另一种适当的数字签名技术生成的数字签名来确保诸如印象或交互的事件实际发生在装置上。装置可以将数字签名附加到该事件,并且其他方可以使用该数字签名来验证该事件是可信的。受信任程序(下面描述)可以维护公钥/私钥对,并且使用私钥来对与事件相关联的令牌进行签名。此类令牌允许第三方确认事件由装置上的受信任程序签名。
此外,受信任程序可以为每个应用发布者维护公钥/私钥对(统称为“密钥对”)。此类设计可以称为“分片”,因为密钥对是按发布者分开的(分片的)。对于所支持的事件(例如,源自应用的请求),应用可以基于其发布者的密钥对来请求安全令牌。然后,受信任程序可以使用分配给发布者的私钥对令牌签名。在此类设计中,分片安全事件(即,具有用私钥签名的令牌的事件)在发布者之间是分开的,因此无法在不同发布者提供的应用之间跟踪用户,从而提高了隐私保护。
除了贯穿本文档的描述,可以向用户提供控件(例如,用户可以与之交互的用户界面元素),从而允许用户做出关于本文描述的系统、程序或特征是否以及何时可以允许收集用户信息(例如,关于用户的社交网络、社交动作或活动、职业、用户的偏好或用户的当前位置的信息)以及是否从服务器向用户发送内容或通信的选择。此外,某些数据在存储或使用之前可能会以一种或多种方式进行处理,使得删除个人可识别信息。例如,可以处理用户的身份,使得不能确定用户的个人可识别信息,或者可以在获得位置信息的情况下将用户的地理位置一般化(诸如到城市、邮政编码或州级别),使得不能确定用户的特定位置。因此,用户可以控制收集关于用户的什么信息、如何使用该信息以及向用户提供什么信息。
图1是如上所述的用于隐私保护应用安装归因的示例过程100的流程图。用户安装(110)应用,然后第一次打开(120)该应用。该应用向存在于该应用内的归因软件开发包(SDK)发送(130)消息。该SDK向可存在于装置上的受信任程序请求(140)分片安全令牌,并且该受信任程序用该令牌进行响应(150)。归因SDK可以向归因提供商发送(160)包括安全令牌的归因。由于归因包括安全令牌,因此归因提供商知道安装是可信的。
尽管该技术确保应用安装报告是可信的,但它未能满足可验证的因果链来支持报告。具体地,虽然安全令牌可用于验证安装,但由于与一个发布者相关联的安全令牌无法与在其他发布者的应用中发生的并且导致应用安装的请求、印象和点击事件合并,因此无法正确归因。因此,链断裂。此外,此类解决方案不能有效地使用系统资源,因为过多的消息由各种计算系统传输和处理。
如下面进一步描述的,本说明书描述了在满足上面列出的要求(即,检测恶意活动和针对恶意活动的弹性、强隐私保护、可验证的因果关系和系统资源的高效使用)的同时提供归因的技术。
图2是用于隐私保护应用安装归因的示例环境200的框图。示例环境200包括数据通信网络205,诸如局域网(LAN)、广域网(WAN)、互联网、移动网络或它们的组合。网络205连接客户端装置210、发布者230、网站240、内容平台250、内容提供商260、应用程序提供商275和归因处理设备280。环境200可以包括许多客户端装置210、发布者230、网站240、内容平台250、内容提供商260、应用程序提供商275和归因处理设备280。
网站240是与域名相关联并由一个或多个服务器托管的一个或多个资源245。示例网站是以HTML格式化的网页的集合,其可以包含文本、图像、多媒体内容和诸如脚本的编程要素。每个网站240由发布者230维护,该发布者是控制、管理和/或拥有网站240的实体。
资源245是可以通过网络205提供的任何数据。资源245由与资源245相关联的资源地址(例如,统一资源定位符(URL)或统一资源标识符(URI))来标识。资源包括HTML页面、文字处理文档和可移植文档格式(PDF)文档、图像、视频和馈送源,仅举几例。资源可以包括内容,例如单词、短语、图像和声音,其可以包括嵌入的信息(诸如超链接中的元信息)和/或嵌入的指令(诸如程序或脚本)。
客户端装置210是能够通过网络205进行通信的电子装置。示例客户端装置210包括个人计算机、移动通信装置(例如,智能电话)、数字媒体播放器、智能扬声器和可穿戴设备(例如,智能手表)、游戏控制台、流传输装置以及可以通过网络205发送和接收数据并且可以在其上安装应用程序的其他装置。客户端装置210可以包括显示器,该显示器可以是能够检测诸如“轻击”和“轻扫”的用户交互的触摸屏显示器。客户端装置210可以包括其他输入和输出机构和/或装置。
客户端装置210包括操作系统(OS)218,其是管理客户端装置210上的硬件、安装在客户端装置210上的软件应用程序并为应用程序提供公共服务的软件。例如,当用户在触摸屏显示器上轻击时,OS218可以将与轻击相关联的事件中继到已经注册以接收此类事件的应用程序211。
客户端装置210还可以包括数字组件SDK(DC SDK)217。DC SDK 217使得客户端装置210上的应用程序能够从内容平台250请求和下载数字组件229,并且当发生印象(例如,数字组件229的显示)时、当发生用户交互(例如,选择)时和/或当发生应用的安装时通知一个或多个内容平台250。DC SDK 217可以包括软件库,该软件库可以通过网络205与发布者230、网站240和内容平台250通信或使得客户端装置210能够通过该网络与它们通信。例如,DC SDK 217可以使用超文本传输协议(HTTP)或HTTP安全(HTTP-S)进行通信。从DC SDK发送到系统中的其他元件的消息可以包括内容(例如,请求串)和令牌(其可以是安全令牌)。返回到DC SDK的消息可以包括内容(包括数字组件229)、安全令牌等。
一种类型的安全令牌是证明令牌222、224、226。证明令牌是包含用于安全地传送事件发生的证据的信息的安全令牌。例如,证明令牌222、224、226可以用于提供与印象、用户交互和安装有关的信息。
实体使用证明令牌222、224、226来校验(validate)请求的完整性和客户端装置210的完整性。例如,使得用户能够管理其由其他实体存储的数据可能导致恶意用户试图管理和/或窃取其他用户的数据的可能性。对于数字组件,一些恶意实体可能试图伪造数字组件请求的参数,例如,以指定数字组件将与其一起提供的不同资源和/或指定将向其呈现数字组件的不同用户,以使请求看起来比其实际更有价值。此外,一些恶意方可能出于恶意目的而试图模仿其他人的客户端装置。
证明令牌222、224、226通过中介在客户端装置210与计算机或其他实体的其他装置之间提供安全通信信道,该安全通信信道防止其他人更改消息220、223、225,确保消息220、223、225来自经校验的客户端装置210。证明令牌222、224、226包括一组数据和基于该组数据生成的签名(例如,数字签名),例如,诸如SHA-256的散列函数。数字签名可以用于校验证明令牌222、224、226。接收证明令牌的组件可以通过验证证明令牌的数字签名来校验证明令牌。例如,接收证明令牌的组件可以解密内容并计算该组数据的签名,并将该签名与所接收的数字签名进行比较。如果签名匹配,则可以确定证明令牌有效;如果签名不匹配,则可以确定证明令牌无效。
该组数据可以包括发送请求的客户端装置210的公钥213、指示创建证明令牌222、224、226的时间的令牌创建时间、有效载荷和/或装置完整性令牌。有效载荷可以包括印象令牌220、交互令牌223和归因令牌225。在本说明书中,证明令牌和该组数据的组合可以称为安全消息。
客户端装置210生成并维护一对或多对相关密码密钥,包括私钥212和对应于私钥212并在数学上链接到该私钥的公钥213。使用私钥212进行数字签名的数据只能使用对应的公钥213来验证。包括使用对应于公钥213的私钥212生成的数字签名的证明令牌222、224、226只能使用对应的公钥213来验证。类似地,使用公钥213加密的数据只能使用对应的私钥212解密。
发起请求的应用程序211(或在客户端装置210上操作的另一应用程序)使用私钥212来生成该组数据的签名。在一些实现方式中,应用程序211使用椭圆曲线数字签名算法(ECDSA)来生成数字签名,但是也可以使用其他签名技术,例如RSA。由于证明令牌222、224、226可以从移动装置发送,因此导致较小数据量的签名技术可能是优选的。公钥213与证明令牌222、224、226一起被提供,使得接收到证明令牌222、224、226的实体可以使用公钥213来验证该组数据的签名。
可以替换客户端装置210的私钥212和公钥213。例如,可以基于指定的时间段周期性地替换密钥212和213,以防止实体使用包括在证明令牌222、224、226中的公钥213来跟踪用户。在另一示例中,用户可以发起密钥替换,并且作为响应,可以由客户端装置210生成一对新的私钥和公钥。
客户端装置210的公钥213可以用作客户端装置110的唯一装置标识符。如下面更详细描述的,处于该角色的公钥213可以使安全消息的接收者能够验证安全消息源自客户端装置210。
如上所述,令牌创建时间指示创建证明令牌222、224、226的时间。应用程序211可以记录应用程序创建证明令牌时的创建时间。该令牌创建时间可以是高分辨率时间戳(例如,精确到秒、毫秒或微秒)。令牌创建时间可用于确定包括证明令牌222、224、226的安全消息是否是新的或最近的请求。例如,接收证明令牌222、224、226的实体可以将令牌创建时间与当前时间或接收到证明令牌222、224、226的时间进行比较。如果两个时间之间的差超过阈值,则实体可以确定请求不是新的或者是无效的,如下面更详细描述的。
令牌创建时间还可以用于检测重放攻击。例如,如果接收到具有包括相同令牌创建时间的相同的一组数据的多个请求,则接收到请求的实体可以确定请求是复制的和/或请求是重放攻击的一部分。
令牌创建时间结合其他数据还可以用作安全消息的事务标识符。例如,事务标识符可以是证明令牌222、224、226的令牌创建时间和证明令牌222、224、226的公钥213中的两者或更多者的组合。事务标识符可以用于对从多个信道接收的同一请求的多个版本进行去重复。
有效载荷可以包括用于各个安全消息的数据。例如,如果安全消息是对数字组件的请求,则有效载荷可以包括可用于选择数字组件的数据。该有效载荷可以包括具有数字组件槽的资源(或资源的URL)、关于资源的信息(例如,资源的主题)、关于数字组件槽的信息(例如,槽的数量、槽的类型、槽的大小等)、关于客户端装置210的信息(例如,装置的类型、客户端装置210的地理位置等)(如果用户启用了该特征)和/或其他适当的信息。
客户端装置210通常包括应用程序211,诸如web浏览器和/或本地应用程序,以促进通过网络205发送和接收数据。本地应用程序是为特定平台或特定装置开发的应用程序。发布者可以开发并向客户端装置210提供本地应用程序(例如使本地应用程序可用于下载)。例如,响应于客户端装置210的用户在web浏览器的地址栏中输入资源的资源地址或者选择引用资源地址的链接,web浏览器可以从托管发布者的网站的web服务器请求资源。类似地,本地应用程序可从发布者的远程服务器请求应用程序内容。
一些资源245、应用程序页面或其他应用程序内容可以包括用于与资源245或应用程序页面一起呈现数字组件的数字组件槽。如贯穿本文档所使用的,短语“数字组件”是指数字内容或数字信息的离散单元(例如,视频剪辑、音频剪辑、多媒体剪辑、图像、文本或另一内容单元)。数字组件229可以作为单个文件或文件集合以电子方式存储在物理存储器装置中,并且数字组件可以采取视频文件、音频文件、多媒体文件、图像文件或文本文件的形式并且包括广告信息,使得广告是一种类型的数字组件。例如,数字组件229可以是旨在补充由应用程序211呈现的网页、资源或应用程序页面的内容的内容。更具体地,数字组件229可以包括与资源内容相关的数字内容(例如,数字组件可涉及与网页内容相同的主题,或涉及相关主题)。数字组件229的提供因此可以补充并且通常增强网页内容。在一些情况下,数字组件229将从属于在安装时可以提高客户端装置210的效用的应用程序211。
当应用程序211(也称为第一应用程序)加载包括一个或多个数字组件槽的资源245或应用程序内容时,应用程序211可以从内容平台250请求每个槽的数字组件229。一些发布者240使用诸如供应方平台(SSP)的内容平台250来管理获得其资源和/或应用程序的数字组件槽的数字组件的过程。SSP是以硬件和/或软件实现的技术平台,其使获得资源和/或应用程序的数字组件的过程自动化。每个发布者240可以具有对应的SSP或多个SSP。多个发布者240可以使用相同SSP。
内容平台250可以继而从内容提供商260请求数字组件。内容提供商260是提供用于与资源245和/或其他内容一起呈现的数字组件的实体。示例内容提供商是发布应用程序(例如,移动装置的本地应用程序)的组织。内容提供商可以提供包括与应用程序相关的内容和下载该应用程序的链接的数字组件。内容提供商260可以使用诸如需求方平台(DSP)的内容平台250来管理其数字组件的提供,以便在数字组件槽中呈现。DSP是以硬件和/或软件实现的技术平台,其使分发数字组件以与资源和/或应用程序一起呈现的过程自动化。DSP可以代表内容提供商260与多个SSP交互,以提供用于与多个不同发布者240的资源和/或应用程序一起呈现的数字组件。一般而言,DSP可以接收对数字组件的请求(例如,从SSP),基于该请求生成(或选择)由一个或多个内容提供商创建的一个或多个数字组件的选择参数,并且将与该数字组件相关的数据(例如,该数字组件本身)和该选择参数提供给SSP。然后,SSP可以选择用于在客户端装置210处呈现的数字组件,并向客户端装置210提供使客户端装置210显示该数字组件的数据。
内容平台250可以基于各种标准为每个数字组件槽选择数字组件。例如,内容平台250可以基于与资源245或其他应用程序内容的相关性、数字组件的性能(例如,用户与数字组件交互的速率)等,从接收自内容提供商260的数字组件中选择数字组件。内容平台250然后可以向客户端装置210提供所选择的数字组件,用于与资源245或其他应用程序内容一起呈现。内容平台250可以将所选择的数字组件229传输到一个或多个客户端装置210,以供在客户端装置210上操作的应用程序212呈现。
客户端装置210还可以包括生成应用程序212的安全令牌的受信任程序214。受信任程序214可以包括来自难以伪造或损害的可靠的源的受信任代码。例如,受信任程序214可以是操作系统210、操作系统210的一部分、安全web浏览器等。通常,受信任程序214难以渗透,并且犯罪者篡改受信任程序214所需花费的时间量和精力过高。另外,因为受信任程序214由可靠的源(例如,操作系统供应商)提供和维护,所以出现的任何漏洞都可以由该源解决。以这种方式使用此类受信任程序214提供了客户端装置处增加的安全性的技术优点,因为受信任程序214难以渗透。另外,受信任程序214提供了减轻受信任程序214中的漏洞的优点,因为该程序由可靠的源维护。
受信任程序214可以是客户端装置210的本地程序。例如,受信任程序214可以是客户端装置210的操作系统的装置驱动程序。在一些实现方式中,受信任程序214完全在客户端装置210本地操作,从而减少了传输用户信息的需要。在一些实现方式中,受信任程序214可以在客户端装置210本地以及通过诸如网络205的网络操作。例如,受信任程序214可以是安装在用户装置210上并且通过网络205传输和接收信息的web浏览器。
受信任程序214可以生成加密密钥(例如,公钥/私钥对)、将加密密钥存储在安全存储区215(例如,安全高速缓存)中、将装置完整性令牌存储在安全存储区215中、生成安全令牌、生成加密密钥或其衍生物的盲签名,和/或获取和存储证书。在一些实现方式中,受信任程序214与装置完整性客户端交互,以向装置完整性系统270发送数据以及从其接收数据,如下所述。
为了生成安全令牌,例如证明令牌222、224、226,客户端装置210的受信任程序214可以生成诸如公钥/私钥对的加密密钥。公钥/私钥对可以是非对称密钥对。每个公钥/私钥对包括私钥和对应于私钥并且在数学上链接到该私钥的公钥。每个生成的加密密钥可以与诸如应用发布者、应用、计算装置(包括客户端装置)等的特定实体相关联。受信任程序214可以将加密密钥和实体之间的关联存储在安全存储区215或其他存储区中。安全令牌可以用私钥签名,这确保拥有私钥的一方(即,客户端装置)是安全令牌的签名者。
客户端装置210上的应用程序211可以通过呈现其内容来显示数字组件229。呈现内容可以包括在客户端装置的显示器上显示图像、文本、视频等、将音频数据发送到与装置相关联的扬声器(例如,作为装置的一部分或物理连接到装置或通过诸如蓝牙的网络链路连接到装置的扬声器)、使装置振动等。显示内容对应于上述印象。在显示数字组件229之后,客户端装置210(例如,客户端装置210的受信任程序214)可以创建印象证明令牌220(或为了简洁起见,“印象令牌”)并将其存储在安全存储区215中,该印象证明令牌包括与数字组件229在装置210上的印象有关的信息。印象令牌220可以包括第一证明令牌222,或者是该第一证明令牌的形式。此外,客户端装置210可以将印象令牌220传输到感兴趣的各方。下面参考图4进一步描述与印象有关的处理。
诸如第一证明令牌222、第二证明令牌224和第三证明令牌226的证明令牌通过中介在客户端装置210与计算机或其他实体的其他装置之间提供安全通信信道,该安全通信信道防止其他人更改网络205上的消息的内容并确保它们来自经校验的客户端装置210。
例如,第一证明令牌222可以由诸如内容提供商260的实体使用,以校验请求的完整性和客户端装置210的完整性。例如,一些恶意实体可能试图伪造对数字组件的请求的参数,例如,以指定数字组件将与其一起提供的不同资源和/或指定将向其呈现数字组件的不同用户,以使请求看起来比其实际更有价值。此外,一些恶意方可能出于恶意目的而试图模仿其他人的客户端装置。
当创建印象令牌220时,数字组件SDK(DC SDK)217可以创建附加的元数据,诸如当前数字组件的目的的指示,例如,它是否与特定应用相关(例如,由数字组件呈现的内容是否与特定应用相关),并且如果是,则创建特定应用的身份的指示。回溯期可以由受信任程序214存储,并且向受信任程序214通知受信任程序214应当出于归因目的存储(例如,高速缓存)元数据多长时间。数字组件SDK可以将元数据存储在安全存储区215中。当回溯期过去时,数字组件SDK可以删除元数据。
在一些实现方式中,数字组件229可以包括可引用由应用程序提供商275发布的应用276的内容。例如,数字组件229可以与视频流式传输服务相关。在该示例中,数字组件229可以包括标识应用程序提供商275和由应用程序提供商275发布的视频流式传输服务的应用程序的内容。客户端装置210的用户在暴露于由客户端装置210的应用程序211呈现的数字组件229之后,可以与数字组件229交互(例如,在客户端装置210的触敏屏幕上按压手指和/或触笔)。
在一些实现方式中,响应于用户与数字组件229交互,客户端装置210可创建、存储(在安全存储区215中)和传输描述用户交互的交互令牌223。交互数据可包括对数字组件229的引用、用户标识符和诸如交互时间、交互持续时间、交互类型(例如,按压、轻扫等)等的其他元数据。交互令牌223还可以包括第二证明令牌224。下面参考图5进一步描述与交互有关的处理。
在一些实现方式中,响应于该交互,客户端装置210的用户可以经由由客户端装置210使用数字组件229的内容生成的URL被重定向到应用程序提供商275。然后,用户可以在客户端装置210上下载和/或安装所引用的应用276。例如,用户可以下载视频流式传输服务的应用。一旦下载了应用,用户就可以例如通过安装应用或通过安装然后打开应用来与应用交互。在一些实现方式中,客户端装置210可以在安全存储区215中存储描述应用交互的交互令牌225。可以响应于客户端装置检测到安装、客户端装置检测到用户打开应用或者使用其他提示来存储交互令牌。
在一些实现方式中,响应于安装,可以是DC SDK 217的组件的归因SDK可以向归因处理设备280提供可以包括第三证明令牌226的归因令牌225。归因处理设备280可以由独立实体管理,并且可以包括以硬件和/或软件实现的技术平台,该技术平台使归因内容平台250的过程自动化,其中内容平台250用于提供导致应用程序下载和/或安装的数字组件。当归因处理设备280接收到归因令牌时,归因处理设备280可以为每个内容平台250确定、存储和/或分发归因。该归因可以是到内容平台250的信用的形式,例如货币或非货币信用。下面参考图6进一步描述与安装有关的处理。
图3是用于为应用安装生成和提供归因令牌的示例过程300的流程图。为了方便,过程300将被描述为由用于隐私保护应用安装归因的系统执行,该系统被适当地编程为执行过程300。例如,过程300的操作可以由客户端装置(例如,图2的客户端装置210)执行,并且操作可以与环境200的其他组件协作执行。过程300的操作还可以实现为存储在可以是非暂态的一个或多个计算机可读介质上的指令,并且由一个或多个数据处理设备执行指令可以使该一个或多个数据处理设备执行过程300的操作。本文描述的一个或多个其他组件可以执行过程300的操作。
系统在客户端装置处提供(310)例如显示给定数字组件,该数字组件包括对软件应用程序的引用,如上所述,软件应用程序也称为应用。数字组件可由内容提供商响应于来自客户端装置的请求而递送到客户端装置。在一些情况下,客户端装置可以通过向内容提供商发送请求(例如,通过HTTP或HTTPS)来直接请求数字组件。在一些情况下,客户端装置可以向web服务器发送请求,并且web服务器可以从内容提供商检索数字组件并将数字组件提供给客户端装置。在一些情况下,客户端装置可以向web服务器发送请求,并且web服务器可以将客户端装置重定向到托管数字组件的内容提供商(例如,使用HTTP重定向),并且内容提供商可以向客户端装置发送数字组件。
对应用的引用可以包括与应用相关的内容。对应用的引用还可以包括响应于用户与应用交互而发起应用的安装的数据。例如,对应用的引用可以包括到客户端装置210的应用存储库的链接,该链接使得客户端装置210能够将应用下载到客户端装置210。在另一示例中,对应用的引用可以包括到网络位置的链接,例如到可以从其下载应用的应用程序提供商265的网络服务器的链接。
系统可以通过激活客户端装置上被配置为显示数字组件的应用程序来提供数字组件。例如,如果数字组件被编码为超文本标记语言(HTML),则系统可以激活客户端装置上的web浏览器,并使web浏览器显示数字组件。
响应于显示数字组件,系统还可以将对数字组件的引用以及数字组件与数字组件所引用的每个软件应用程序之间的关联存储在客户端装置上,例如存储在客户端装置上的安全存储区中(如参考图2所述)。例如,系统可以将数据存储在表格中,其中表格中的每行包括对数字组件的引用和对由数字组件引用的软件应用程序的引用。系统还可以存储附加数据,诸如提供数字组件的内容提供商的指示符、提供应用程序的应用程序提供商、向其显示数字组件的用户的标识符等。
系统检测(320)与该数字组件的用户交互,该用户交互发起应用在用户装置上的安装。系统可以通过监视由在装置上运行的操作系统提供的事件来检测用户交互。在一些实现方式中,系统可以登记对与数字组件的交互有关的事件(例如,安装或打开)的兴趣。响应于接收到与数字组件的交互相关的事件,系统可以确定事件是否发起应用的安装。例如,如果数字组件包括“安装”用户界面按钮,并且系统接收到指示安装按钮被选择的交互,则系统可以确定将在客户端装置上开始安装,并产生反映安装的事件。
在一些实现方式中,检测用户交互可以包括确定已经查看了数字组件。例如,如果系统检测到数字组件已经在客户端装置上显示至少指定的时间段,则系统可以确定已发生用户交互。在另一示例中,如果系统检测到数字组件在客户端装置的视口内在指定的时间段内可见,则系统可以确定已发生用户交互。
系统可以在客户端装置上的存储区中(例如,在如参考图2描述的安全存储区中)存储交互的指示。例如,系统可以将数据存储在表格中,其中表格中的每行包括对数字组件的引用和对与数字组件交互的用户的引用。系统还可以存储附加数据,诸如交互的时间戳。
系统在客户端装置处安装(330)应用。在一些实现方式中,当系统确定与安装按钮交互(例如,按下)时(如上所述),该系统可以通过调用由操作系统提供的、通知操作系统应安装应用程序的API来使操作系统安装由数字组件引用的应用程序。系统可以将安装记录存储在例如客户端装置上的安全存储区(例如,如参考图2所述)中。
系统获得(340)引用应用的一个或多个数字组件在客户端装置处的一个或多个印象中的每一者的印象数据。系统可以通过从存储区(例如,如参考图2所述的安全存储区)检索该数据来获得印象数据。如参考操作310所述,存储区中的表格可以存储数字组件和应用程序之间的关联。系统可以检查表格以确定哪些数字组件显示在客户端装置处并且引用应用。
系统获得(350)与引用应用的一个或多个数字组件中的至少一者的一次或多次用户交互中的每一者的交互数据。例如,可以向客户端装置的用户显示各自引用应用的多个数字组件。在一些情况下,多个实体(例如,多个内容平台)可以向同一客户端装置提供引用同一应用程序的数字组件。
系统可以通过从存储区检索数据来获得交互数据。从操作340,系统可以获得数字组件引用,并且如参考操作320所述,存储区中的表格可以存储数字组件引用和交互之间的关联。系统可以使用数字组件引用来检查表格,以确定数字组件的交互数据。
系统将针对应用安装的相应归因信用分配(360)给提供一个或多个数字组件的一个或多个实体。系统可以将归因模型应用于印象证明令牌和交互数据,并且使用该模型来将针对应用安装的相应归因信用确定给提供该一个或多个数字组件的一个或多个实体(例如,内容平台)。
系统可以使用各种归因模型中的一者或多者。在一些实现方式中,系统可包括将针对应用安装的整个归因归给提供具有最近的用户交互的引用应用的数字组件的实体的模型。在一些实现方式中,系统可以包括将相等的归因级别归给与之存在交互并引用应用程序的每个数字组件的提供商的模型。在一些实现方式中,系统可以包括将相等的归因级别归给引用应用程序并且由客户端装置呈现的每个数字组件的提供商的模型。在一些实现方式中,系统可以包括将归因信用归给与之存在交互并引用应用程序的每个数字组件的提供商的模型,其中信用与交互水平(例如,点击次数)成比例地归给。在一些实现方式中,系统可以包括与交互的新近度成比例地将归因级别归给与之存在交互并引用应用程序的每个数字组件的提供商的模型,例如,其中最近的交互接收到更多的归因信用,并且信用随着自交互以来的时间线性地减少。可以替代地或另外地包括其他归因模型。
系统生成(370)可以包括有效载荷数据的归因令牌,该有效载荷数据包括(i)标识应用的数据,(ii)标识要接收归因信用的实体的数据,(iii)标识分配给实体的相应归因信用的数据,以及(iv)完整性令牌,该完整性令牌验证应用安装在客户端装置上并且证明令牌是由可信客户端装置生成的。如上所述,归因令牌还可以包括指示创建归因令牌的时间的时间戳、客户端装置的公钥以及归因令牌的其他数据(例如,时间戳、公钥和有效载荷数据)的数字签名。
完整性令牌可以由受信任评估器提供给客户端装置,该受信任评估器评估从客户端装置接收的欺诈信号以确定客户端装置是否为可信客户端装置,例如而非仿真器。如果评估器认为客户端装置是可信的,则评估器可以向客户端装置提供完整性令牌以包括在通信中,例如包括证明令牌的通信中。
完整性令牌可以包括与证明令牌类似的数据。例如,完整性令牌可以包括指示完整性令牌何时生成的时间戳、受信任评估器的公钥、指示客户端装置的可信度判定的有效载荷数据,以及使用其他数据(例如,时间戳、公钥和有效载荷数据)生成的数字签名。可以使用受信任评估器的私钥来生成数字签名。以这种方式,归因令牌的接收者可以以与证明令牌类似的方式验证完整性令牌,以校验客户端装置是可信赖装置。例如,接收者可以使用包括在完整性令牌中的公钥来验证数字签名以确保在生成完整性令牌之后未修改其他数据,验证时间戳指示最近的时间(例如,在当前时间的阈值持续时间内),以及验证判定指示客户端装置是可信赖的。如果任何验证检查失败,则接收者可以认为客户端装置不可信赖,并确定不提供归因。
系统向一个或多个接收者提供(380)归因令牌。系统可以通过在网络上传输寻址到一个或多个归因目标的消息来提供归因令牌。归因目标可以是归因处理设备、内容提供商、发布者、应用程序提供商或其他方中的一者或多者。系统可以使用任何适当的网络协议(诸如HTTP或HTTPs)来提供归因令牌。
归因令牌的每个接收者可以例如在基于该归因令牌采取任何动作之前验证该归因令牌。该验证可以包括若干验证检查。例如,一个验证检查可以包括验证归因令牌的时间戳在当前时间的阈值时间段内。另一验证检查可以包括使用包括在归因令牌中的公钥来验证归因令牌的数字签名。这确保了归因令牌的内容在创建之后未被修改。如上所述,另一验证检查可以包括验证完整性令牌。如果所有检查被成功验证,则接收者可以确定归因信息可信,并基于归因信息执行一个或多个动作。
例如,如果接收者是基于归因信息确定聚合测量的归因处理设备280,则归因处理设备280可以确定在确定聚合测量时使用归因信息。如果归因处理设备280基于聚合测量向内容平台250提供归因信用,则归因处理设备280可以在成功验证归因令牌时信任归因信息是可信的,并提供此类信用。
如果归因令牌未被成功验证,则接收者可以忽略该归因信息和/或执行其他动作。例如,接收者可以向归因处理机构警告潜在恶意的归因令牌。
图4是用于印象证明的示例过程400的流程图。为了方便,过程400将被描述为由用于隐私保护应用安装归因的系统(例如,图2的环境200的组件)执行,该系统被适当地编程为执行该过程。过程400的操作还可以实现为存储在可以是非暂态的一个或多个计算机可读介质上的指令,并且由一个或多个数据处理设备执行指令可以使该一个或多个数据处理设备执行过程400的操作。本文描述的一个或多个其他组件可以执行过程400的操作。
当应用程序指示DC SDK呈现DC(410)时,DC SDK请求(420)受信任程序创建印象证明令牌。该请求可以包括元数据,诸如DC的目的(例如,提供关于所引用的应用的信息)、所引用的应用程序(例如,视频播放器应用)的标识符以及适用于当前数字组件的归因回溯期。回溯期指示受信任程序在指定的持续时间内高速缓存印象元数据。在一些实现方式中,如果未指定回溯期,则受信任程序可在配置的时间段内高速缓存印象元数据。在接收到请求时,DC SDK还可以将元数据存储(430)在安全存储区中。
受信任程序可以创建(440)印象证明令牌并将该令牌返回(450)给DC SDK。受信任程序还可以将印象证明令牌存储在安全存储区中(如参考图2所述)。然后,DC SDK可以向内容平台传输(460)印象证明令牌。
印象证明令牌可以包括例如指示印象令牌何时创建的时间戳、客户端装置的公钥、有效载荷数据(例如,与印象有关的数据(诸如印象时间)、标识所显示的数字组件的数据、数字组件被显示多长时间、什么应用程序或网页包括数字组件等)以及数字签名。可以通过使用客户端装置的私钥对印象证明令牌的其他数据(例如,时间戳、公钥和有效载荷数据)进行签名来生成数字签名。
图5是用于用户组件交互证明的示例过程500的流程图。(为了简洁,“用户组件交互证明”可以称为“点击证明”,其可指示用户与数字组件交互,例如,但点击或以其他方式选择该组件。)为了方便,过程500将被描述为由用于隐私保护应用安装归因的系统(例如,图2的用于隐私保护应用安装归因的环境200的组件)执行,该系统被适当地编程为执行该过程。过程500的操作还可以实现为存储在可以是非暂态的一个或多个计算机可读介质上的指令,并且由一个或多个数据处理设备执行指令可以使该一个或多个数据处理设备执行过程500的操作。本文描述的一个或多个其他组件可以执行过程500的操作。
当用户例如通过在数字组件的显示区域的边界内轻击触摸屏来选择数字组件(510)时,客户端装置的屏幕组件可以创建轻击事件并将其递送(520)到OS。
然后,OS可以向DC SDK传输(530)轻击事件。作为响应,DC SDK的归因SDK组件请求(540)受信任程序使用所选择的归因模型(例如,参考图3描述的归因模型)执行归因。归因SDK可以代表归因提供商选择并指定归因模型和相关联的参数(例如,测量归因信用的时间长度),该归因提供商与应用发布者签订了执行归因的合同。
受信任程序可以请求(550)相关元数据,例如,在图3的操作330中存储的元数据,并且安全存储区(如参考图2所述)可以返回(560)元数据。安全存储区可以通过将所存储的元数据的元素(例如,所引用的应用程序的标识符)与DC SDK提供的对应元数据进行匹配来检索元数据。此外,DC SDK可以基于归因模型和指定的适用参数来处理元数据,然后相应地将信用分配给适用的印象和点击。例如,如果点击证明模型在过去三天内发生的印象之间均匀地分配信用,并且在该时间段内存在两个印象,则DC SDK可以向负责这两个印象的内容平台均匀地分配信用。(参考图3进一步描述归因模型。)受信任程序可以将与点击和印象相关联的元数据存储(570)在安全存储区中(例如,如参考图2所述)。
受信任程序可以创建(580)交互证明令牌并将该交互证明令牌返回(590)给DCSDK。DC SDK可以例如通过使用诸如HTTP或HTTPS的合适的网络协议通过网络传输交互证明令牌来向内容提供商提供(595)包括交互证明令牌的点击证明。
交互证明令牌可以包括例如指示交互证明令牌何时创建的时间戳、客户端装置的公钥、有效载荷数据(例如,与用户交互有关的数据(诸如交互发生的时间)、标识与之交互的数字组件的数据、什么应用程序或网页包括该数字组件等)以及数字签名。可以通过使用客户端装置的私钥对交互证明令牌的其他数据(例如,时间戳、公钥和有效载荷数据)进行签名来生成数字签名。
图6是用于用户应用安装证明的示例过程600的流程图。为了方便,过程600将被描述为由用于隐私保护应用安装归因的系统(例如,图2的环境200的组件)执行,该系统被适当地编程为执行过程600。过程600的操作还可以实现为存储在可以是非暂态的一个或多个计算机可读介质上的指令,并且由一个或多个数据处理设备执行指令可以使该一个或多个数据处理设备执行过程600的操作。本文描述的一个或多个其他组件可以执行过程600的操作。如上所述,用户应用交互可以是应用的安装或与应用的交互,诸如第一次打开应用。
用户与应用交互(610)。如上所述,交互的类型可以包括安装或打开应用。应用的安装可以例如通过从用户的客户端装置上的操作系统接收指示应用安装的事件来确定。可以使用各种方法来确定打开应用,包括从用户的客户端装置上的操作系统接收指示应用已经打开的事件和/或从应用接收指示应用已经打开的事件。响应于确定用户已经与应用交互,应用程序向DC SDK发送(620)初始化消息。该消息可以是例如对由DC SDK提供的API的调用,其向DC SDK指示交互已经发生。初始化消息可以包括所选择的归因模型的指示。
DC SDK请求(630)受信任程序使用所选择的归因模型(例如,最后点击归因)执行归因。如上所述,受信任程序可以支持多种预定义的归因模型,并且如果没有指示归因模型,则受信任程序可以使用已经被配置为默认模型的归因模型。
受信任程序从安全存储区请求(640)与先前印象相关联的元数据,并且安全存储区用所请求的元数据进行响应(650)。参考图3描述了存储和检索元数据。
受信任程序基于归因模型和指定的适用参数来处理(660)元数据,然后相应地将信用分配给适用的印象和点击。例如,如果归因模型仅使用最近的印象,则受信任程序仅处理存储在安全存储区中的最近的归因数据(例如,如参考图2所述)。在另一示例中,如果归因模型使用在配置的时段期间发生的所有印象,则受信任程序处理存储在安全存储区中的与那些印象相关的所有归因数据。
受信任程序创建(670)安装令牌,并将可包括安装令牌的事件级归因信息提供(680)给归因设备。如上所述,安装令牌可以包括用于在网络上安全且可验证地传送归因结果的安全令牌。在一些实现方式中,当安装信用被分配给多个内容平台时,受信任程序可以为每个获得信用的内容平台创建和提供事件级归因信息。
在一些实现方式中,受信任程序可以可选地向内容平台提供(685)可以包括安装令牌的事件级归因通知。内容平台可以根据接收到的归因令牌创建(690)聚合测量。例如,如果内容提供商已经接收到与多个数字组件印象相关的归因信用,则内容提供商可以聚合并报告那些统计数据。在一些实现方式中,聚合的统计数据不包括客户端装置的用户的指示符,从而保护用户的隐私。
在一些实现方式中,受信任程序对事件级归因进行加密,使得只有归因处理设备可以对其进行解密。例如,受信任程序可以使用归因处理设备的公钥对数据进行加密,并且归因处理设备且仅归因处理设备可以对数据进行解密。
聚合引擎可以向归因处理设备提供(695)所聚合的测量。为了抵制来自受损或模仿的客户端装置的归因欺诈尝试,在应用聚合以生成聚合报告之前,归因处理设备可以在应用聚合以生成聚合报告之前,例如通过校验与报告相关联的证明令牌来校验在各个归因报告中接收到的归因令牌。该过程确保应用安装事件发生在未受损装置上,并且归因证明令牌由未受损装置生成。
对于每个内容平台,所聚合的测量可以包括该内容平台的跨多个客户端装置的聚合的归因,例如,对于由内容平台提供的每个数字组件。例如,如果内容平台将特定数字组件分发给多个客户端装置,并且它导致在多个客户端装置处安装由该数字组件引用的应用程序,则每个安装的信用可以被归因于该内容平台。该内容平台的聚合测量可以包括针对多个安装聚合的归因信用。
在一些实现方式中,所聚合的测量可以包括与应用安装有关的元数据,诸如所安装的应用的身份、从其下载(或侧载(side-loaded))应用的应用商店、下载时间戳、安装时间戳等。为了保护隐私,可以使用不精确的时钟来创建时间戳,例如,仅报告事件(下载或安装)的日期和小时的时钟。
在一些实现方式中,所聚合的测量可以包括与数字组件请求、印象和点击事件相关的元数据。例如,元数据可以包括数字组件请求、印象和点击事件的时间戳以及对应的数字组件请求、印象标识符。另外,元数据可以包括印象和点击事件的归因结果。
为了进一步改善隐私保护,受信任程序可以向所传输的信息添加噪声(即,随机信息)。受信任程序还可以在传输信息之前插入随机或伪随机延迟,并且受信任程序可以使用一个或多个代理服务器(例如,Tor网络)来屏蔽客户端装置的IP地址。
图7是可用于执行上述操作的示例计算机系统700的框图。系统700包括处理器710、存储器720、存储装置730和输入/输出装置740。组件710、720、730和740中的每一者可以例如使用系统总线750互连。处理器710能够处理用于在系统700内执行的指令。在一个实现方式中,处理器710是单线程处理器。在另一实现方式中,处理器710是多线程处理器。处理器710能够处理存储在存储器720中或存储装置730上的指令。
存储器720在系统700内存储信息。在一个实现方式中,存储器720是计算机可读介质。在一个实现方式中,存储器720是易失性存储器单元。在另一实现方式中,存储器720是非易失性存储器单元。
存储装置730能够为系统700提供大容量存储。在一个实现方式中,存储装置730是计算机可读介质。在各种不同的实现方式中,存储装置730可以包括例如硬盘装置、光盘装置、由多个计算装置通过网络共享的存储装置(例如,云存储装置),或一些其他大容量存储装置。
输入/输出装置740为系统700提供输入/输出操作。在一个实现方式中,输入/输出装置740可以包括网络接口装置(例如,以太网卡)、串行通信装置(例如,RS-232端口)和/或无线接口装置(例如,802.11卡)中的一者或多者。在另一实现方式中,输入/输出装置可以包括被配置为接收输入数据并将输出数据发送到其他输入/输出装置(例如,键盘、打印机和显示装置760)的驱动器装置。然而,也可以使用其他实现方式,诸如移动计算装置、移动通信装置、机顶盒电视客户端装置等。
虽然在图7中描述了示例处理系统,但是本说明书中描述的主题和功能操作的实现方式可以在其他类型的数字电子电路系统中或在计算机软件、固件或硬件中实现,包括本说明书中公开的结构及其结构等同物或它们中的一者或多者的组合。
电子文档(为简洁起见,将其简称为文档)不必对应于文件。文档可以存储在保存其他文档的文件的一部分中,存储在专用于所涉文档的单个文件中,或者存储在多个协调文件中。
本说明书结合系统和计算机程序组件使用术语“配置”。对于将被配置为执行特定操作或动作的一个或多个计算机的系统,意味着该系统已经在其上安装了在操作中使该系统执行这些操作或动作的软件、固件、硬件或它们的组合。对于被配置为执行特定操作或动作的一个或多个计算机程序,意味着该一个或多个程序包括在由数据处理设备执行时使该设备执行这些操作或动作的指令。
本说明书中描述的主题和功能操作的实施例可以在数字电子电路系统中、在有形地体现的计算机软件或固件中、在计算机硬件中实现,包括本说明书中公开的结构及其结构等同物或它们中的一者或多者的组合。本说明书中描述的主题的实施例可以实现为一个或多个计算机程序,即在有形的非暂态存储介质上编码的计算机程序指令的一个或多个模块,以供数据处理设备执行或控制数据处理设备的操作。计算机存储介质可以是机器可读存储装置、机器可读存储基板、随机或串行存取存储器装置或它们中的一者或多者的组合。替代地或另外地,可以在人工生成的传播信号(例如,机器生成的电、光或电磁信号)上对程序指令进行编码,生成该人工生成的传播信号以对信息进行编码,以便传输到适当的接收器设备以供数据处理设备执行。
术语“数据处理设备”是指数据处理硬件,并且包括用于处理数据的所有类型的设备、装置和机器,例如包括可编程处理器、计算机或多个处理器或计算机。该设备还可以是或进一步包括专用逻辑电路系统,例如FPGA(现场可编程门阵列)或ASIC(专用集成电路)。除了硬件之外,该设备还可以可选地包括为计算机程序创建执行环境的代码,例如,构成处理器固件、协议栈、数据库管理系统、操作系统或它们中的一者或多者的组合的代码。
计算机程序,其也可以称为或描述为程序、软件、软件应用程序、应用、模块、软件模块、脚本或代码,可以用任何形式的编程语言(包括编译型或解释型语言或者声明式或过程式语言)编写;并且它可以以任何形式部署,包括作为独立程序或作为模块、组件、子例程或适合在计算环境中使用的其他单元。程序可以但不必对应于文件系统中的文件。程序可以存储在保存其他程序或数据(例如存储在标记语言文档中的一个或多个脚本)的文件的一部分中、存储在专用于所涉程序的单个文件中或存储在多个协调文件(例如存储一个或多个模块、子程序或代码部分的文件)中。计算机程序可以被部署为在一个计算机上或在位于一个站点处或分布在多个站点上并通过数据通信网络互连的多个计算机上执行。
在本说明书中,术语“引擎”广泛地用于指被编程为执行一个或多个特定功能的基于软件的系统、子系统或过程。通常,引擎将被实现为安装在一个或多个位置中的一个或多个计算机上的一个或多个软件模块或组件。在一些情况下,一个或多个计算机将专用于特定引擎;在其他情况下,多个引擎可以安装并运行在相同的一个或多个计算机上。
本说明书中描述的过程和逻辑流程可以由一个或多个可编程计算机执行,该一个或多个可编程计算机执行一个或多个计算机程序以通过对输入数据进行操作并生成输出来执行功能。过程和逻辑流程也可以由专用逻辑电路系统(例如,FPGA或ASIC)或由专用逻辑电路系统和一个或多个编程计算机的组合来执行。
适于执行计算机程序的计算机可以基于通用或专用微处理器或两者,或任何其他种类的中央处理单元。通常,中央处理单元将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的基本元件是用于履行或执行指令的中央处理单元和用于存储指令和数据的一个或多个存储器装置。中央处理单元和存储器可以由专用逻辑电路系统补充或并入专用逻辑电路系统中。通常,计算机还将包括用于存储数据的一个或多个大容量存储装置,例如磁盘、磁光盘或光盘,或者操作性地耦合以从其接收数据或将数据传输到其或两者。然而,计算机不必具有此类装置。此外,计算机可以嵌入另一装置中,例如移动电话、个人数字助理(PDA)、移动音频或视频播放器、游戏控制台、全球定位系统(GPS)接收器或便携式存储装置,例如通用串行总线(USB)闪存驱动器,仅举几例。
适于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储器装置,包括例如半导体存储器装置(例如EPROM、EEPROM和闪存装置)、磁盘(例如内部硬盘或可移动磁盘)、磁光盘以及CD-ROM和DVD-ROM盘。
为了提供与用户的交互,本说明书中描述的主题的实施例可以在具有用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或LCD(液晶显示器)监视器)以及用户可以通过其向计算机提供输入的键盘和指向装置(例如,鼠标或轨迹球)的计算机上实现。也可以使用其他类型的装置来提供与用户的交互;例如,提供给用户的反馈可以是任何形式的感觉反馈,例如视觉反馈、听觉反馈或触觉反馈;并且可以以任何形式接收来自用户的输入,包括声音、语音或触觉输入。此外,计算机可以通过向用户使用的装置发送文档以及从用户使用的装置接收文档来与用户交互;例如,通过响应于从web浏览器接收的请求向用户装置上的web浏览器发送网页。此外,计算机可以通过向个人装置(例如,运行消息传送应用程序的智能电话)发送文本消息或其他形式的消息,并且作为回应从用户接收响应消息来与用户交互。
用于实现机器学习模型的数据处理设备还可以包括例如专用硬件加速器单元,用于处理机器学习训练或生产(即,推断、工作负载)的通用和计算密集部分。
可以使用机器学习框架(例如,TensorFlow框架、Microsoft Cognitive Toolkit框架,Apache Singa框架或Apache MXNet框架)来实现和部署机器学习模型。
本说明书中描述的主题的实施例可以在计算系统中实现,该计算系统包括后端组件(例如,作为数据服务器),或者包括中间件组件(例如,应用程序服务器),或者包括前端组件(例如,具有用户可以通过其与本说明书中描述的主题的实现方式交互的图形用户界面、web浏览器或应用的客户端计算机),或者一个或多个此类后端、中间件或前端组件的任何组合。系统的组件可以通过任何形式或介质的数字数据通信(例如,通信网络)互连。通信网络的示例包括局域网(LAN)和广域网(WAN),例如互联网。
计算系统可以包括客户端和服务器。客户端和服务器通常彼此远离,并且通常通过通信网络进行交互。客户端和服务器的关系是由于在相应计算机上运行并且彼此具有客户端-服务器关系的计算机程序而产生的。在一些实施例中,服务器将数据(例如,HTML页面)传输到用户装置,例如,用于向与充当客户端的装置交互的用户显示数据并从其接收用户输入。可以在服务器处从装置接收在用户装置处生成的数据,例如,由于用户交互。
虽然本说明书包含许多特定的实现方式细节,但这些细节不应解释为对任何发明的范围或可能要求保护的范围的限制,而应解释为对可能是特定发明的特定实施例所特有的特征的描述。在本说明书中在单独实施例的上下文中描述的某些特征也可以在单个实施例中组合实现。相反,在单个实施例的上下文中描述的各种特征也可以在多个实施例中单独地或以任何合适的子组合来实现。此外,尽管特征可以在上面描述为以某些组合起作用并且甚至最初如此要求保护,但是在一些情况下可以从组合中删除来自所要求保护的组合的一个或多个特征,并且所要求保护的组合可以涉及子组合或子组合的变体。
类似地,虽然在附图中描述了操作并且在权利要求中以特定的顺序叙述了操作,但是这不应理解为要求以所示的特定顺序或以连续的顺序来执行这些操作,或者要求执行所有示出的操作,来实现期望的结果。在某些情况下,多任务处理和并行处理可能是有利的。此外,上述实施例中的各种系统模块和组件的分离不应理解为在所有实施例中都需要此类分离,并且应当理解,所描述的程序组件和系统通常可以一起集成在单个软件产品中或封装到多个软件产品中。
已经描述了本主题的特定实施例。其他实施例在以下权利要求的范围内。例如,权利要求中记载的动作可以以不同的顺序执行并且仍然实现期望的结果。作为一个示例,附图中所示的过程不一定需要所示的特定顺序或连续顺序来实现期望的结果。在一些情况下,多任务处理和并行处理可能是有利的。

Claims (12)

1.一种计算机实现的方法,其:
在客户端装置处提供包括对软件应用程序的引用的给定数字组件;
在所述客户端装置处检测与所述给定数字组件的用户交互,所述用户交互发起所述软件应用程序在所述客户端装置上的安装;
在所述客户端装置处安装所述软件应用程序;
获得(i)引用所述软件应用程序的一个或多个数字组件在所述客户端装置处的一次或多次提供中的每一者的印象数据,以及(ii)与引用所述软件应用程序的所述一个或多个数字组件中的至少一者的一次或多次用户交互中的每一者的交互数据,其中所述一个或多个数字组件包括所述给定数字组件;
通过将归因模型应用于呈现数据和所述交互数据,将针对所述软件应用程序的所述安装的相应归因信用分配给提供所述一个或多个数字组件的一个或多个实体;
对于每个实体,
生成归因令牌,所述归因令牌包括:
(i)标识所述软件应用程序的数据,
(ii)标识分配给所述实体的所述相应归因信用的数据,以及
(iii)完整性令牌,所述完整性令牌验证所述软件应用程序安装在所述客户端装置上并且验证所述归因令牌是由可信客户端装置生成的;以及
向一个或多个接收者提供所述归因令牌。
2.如权利要求1所述的计算机实现的方法,其中每个实体的所述归因令牌包括标识由所述实体提供的特定数字组件的数据。
3.如权利要求1或2所述的计算机实现的方法,其中每个实体的所述归因令牌包括标识所述软件应用程序的所述数据、标识分配给所述实体的所述相应归因信用的所述数据以及所述完整性令牌的数字签名,所述完整性令牌验证所述软件应用程序安装在所述客户端装置上并且验证所述归因令牌是由可信客户端装置生成的。
4.如任一前述权利要求所述的计算机实现的方法,其中每个实体的所述归因令牌包括应用程序的公钥,所述应用程序发起对由所述实体提供的所述数字组件的请求,提供由所述实体提供的所述数字组件,并且用户在所述应用程序处与由所述实体提供的所述数字组件交互。
5.如任一前述权利要求所述的计算机实现的方法,其中所述一次或多次用户交互中的至少一者包括在至少指定的时间段内显示给定数字组件。
6.如任一前述权利要求所述的计算机实现的方法,其还包括:
由所述客户端装置将所述印象数据或所述交互数据中的至少一者存储在所述客户端装置上运行的受信任程序的安全存储区中。
7.如任一前述权利要求所述的计算机实现的方法,其还包括对于数字组件的每次提供,将所述数字组件的所述印象数据提供给提供所述数字组件的所述实体。
8.如任一前述权利要求所述的计算机实现的方法,其还包括对于与数字组件的每次交互,将所述数字组件的用户交互令牌发送到提供所述给定数字组件的所述实体。
9.如任一前述权利要求所述的计算机实现的方法,其中所述归因令牌包括所安装的所述软件应用程序的身份或从其下载所述软件应用程序的应用程序提供商中的一者或多者。
10.一种系统,其包括:
一个或多个处理器;以及
一个或多个存储装置,所述一个或多个存储装置存储指令,所述指令在由所述一个或多个处理器执行时使所述一个或多个处理器执行如任一前述权利要求所述的方法。
11.一种计算机可读介质,所述计算机可读介质承载指令,所述指令在由一个或多个处理器执行时使所述一个或多个处理器执行如权利要求1至9中任一项所述的方法。
12.一种计算机程序产品,所述计算机程序产品包括指令,所述指令在由计算机执行时使所述计算机执行如权利要求1至9中任一项所述的方法的步骤。
CN202280064779.6A 2022-05-06 2022-05-06 隐私保护和安全应用程序安装归因 Pending CN118043812A (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2022/028130 WO2023214975A1 (en) 2022-05-06 2022-05-06 Privacy-preserving and secure application install attribution

Publications (1)

Publication Number Publication Date
CN118043812A true CN118043812A (zh) 2024-05-14

Family

ID=81846567

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202280064779.6A Pending CN118043812A (zh) 2022-05-06 2022-05-06 隐私保护和安全应用程序安装归因

Country Status (3)

Country Link
US (1) US20240095364A1 (zh)
CN (1) CN118043812A (zh)
WO (1) WO2023214975A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP4361929A1 (en) * 2024-01-24 2024-05-01 Apple Inc. Techniques for managing transaction tokens to facilitate reconciliation procedures

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150262223A1 (en) * 2014-03-13 2015-09-17 HasOffers, Inc. Systems and methods for assigning credit for installs of applications
US20200366754A1 (en) * 2019-05-13 2020-11-19 Google Llc Systems and methods for processing content item operations based on fraud resistent device identifiers
KR20220123695A (ko) * 2020-10-27 2022-09-08 구글 엘엘씨 암호화 방식으로 보안 요청 검증

Also Published As

Publication number Publication date
WO2023214975A1 (en) 2023-11-09
US20240095364A1 (en) 2024-03-21

Similar Documents

Publication Publication Date Title
CN113015974B (zh) 针对隐私保护的可验证同意
KR20220123695A (ko) 암호화 방식으로 보안 요청 검증
EP4022845A1 (en) Cryptographically secure data protection
KR102608325B1 (ko) 클라이언트 장치에서 통신의 무결성 보호
US20240095364A1 (en) Privacy-preserving and secure application install attribution
US11381600B1 (en) Encryption techniques for constraining browser cookies
EP4042312A1 (en) Multi-recipient secure communication
EP4211870B1 (en) Secure attribution using attestation tokens
EP4042665B1 (en) Preventing data manipulation in telecommunication network measurements
CN115087978B (zh) 用于欺诈检测的跨域频率滤波器

Legal Events

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