首页> 中国专利> 使用可信代码证明令牌改善数据完整性

使用可信代码证明令牌改善数据完整性

摘要

用于验证与数字组件的交互的方法、系统和计算机可读介质。该方法包括:接收指示与由内容提供商提供并由用户设备的用户界面呈现的数字组件相关联的交互的输入;通过用户设备的可信程序确定该交互有效;由可信程序并基于根据有效性评估的交互有效的确定,生成证明与数字组件的交互的有效性的数字签名令牌;和通过可信程序向第三方提供数字签名令牌,作为交互的有效性的指示。

著录项

  • 公开/公告号CN112655173A

    专利类型发明专利

  • 公开/公告日2021-04-13

    原文格式PDF

  • 申请/专利权人 谷歌有限责任公司;

    申请/专利号CN202080002974.7

  • 发明设计人 G.王;A.D.雅各布森;

    申请日2020-04-23

  • 分类号H04L9/32(20060101);G06Q30/02(20060101);G06F21/64(20060101);G06F21/56(20060101);

  • 代理机构11105 北京市柳沈律师事务所;

  • 代理人金玉洁

  • 地址 美国加利福尼亚州

  • 入库时间 2023-06-19 10:35:20

说明书

技术领域

本文件涉及使用可信代码证明令牌来改善数据完整性。

背景技术

与互联网上的内容进行交互的用户会生成易于操纵的交互数据。操纵后的交互数据可用于欺诈性方案或破坏在线系统。

发明内容

通常,可以以一种方法来体现本说明书中描述的主题的一个创新方面,该方法包括在用户设备处并且在特定时间接收指示与数字组件相关联的交互的输入,该数字组件是(i)由内容提供商提供的,并且(ii)由用户设备的用户界面呈现的。该方法包括经过以下步骤通过用户设备的可信程序确定交互是否有效:通过可信程序检测用户设备的用户界面是活动的,并在特定时间主动呈现数字组件;通过可信程序并响应于检测到用户设备的用户界面是活动的并且在特定时间主动呈现数字组件来确定数字组件的属性集,所述属性集包括主动呈现数字组件的用户界面内的位置;通过可信程序,将所确定的属性集的每个属性与内容提供商提供的数字组件的参考属性集中的对应属性进行比较;基于所述比较并通过所述可信程序来评估所述交互的有效性,其中,响应于(i)所述比较指示所确定的属性集与所述参考属性集之间的匹配,并且(ii)检测用户设备的用户界面是活动的,并在特定时间主动呈现数字组件,所述交互被视为有效。该方法包括由可信程序并基于根据有效性评估的交互有效的确定,生成证明与数字组件的交互的有效性的数字签名令牌;和通过可信程序向第三方提供数字签名令牌,作为交互的有效性的指示。

这些和其他实施例可各自可选地包括以下特征中的一个或多个。该方法还可以包括:在特定时间之前的第一时间通过可信程序检测触发事件,该触发事件指示特定用户与用户设备的显示器的交互。该方法还可以包括在所述特定时间的所述第一时间之后,通过所述可信程序检测目标事件,所述目标事件指示与所述用户设备的显示器的不同用户交互。该方法还可以包括:通过可信程序并基于在特定时间之前的第一时间的触发事件的检测和在特定时间的目标事件的检测,来识别数字组件时隙,在该数字组件时隙中呈现与触发事件和目标事件相关联的数字组件。该方法还可以包括:通过可信程序并基于(i)在特定时间之前的第一时间检测触发事件和在特定时间检测目标事件,以及(ii)识别与触发事件和目标事件相关联的数字组件时隙,来确定,(a)第一时间与特定时间之间的时间段,以及(b)发生了未经验证的用户与数字组件的交互。可以响应于以下各项的确定,执行用于接收指示与数字组件交互的输入:(a)在第一时间和特定时间之间的时间段;以及(b)发生了未经验证的用户与数字组件的交互。未验证的用户交互可以是通过所述输入指示的交互。

在一些实施方式中,所确定的数字组件的属性集包括在其中呈现数字组件的应用。

在一些实施方式中,所确定的数字组件的属性集包括数字组件的大小、类型和内容之一。

在一些实施方式中,与所述数字组件相关联的交互是所述数字组件对所述用户设备的用户的印象。

在一些实施方式中,与所述数字组件相关联的交互是所述用户设备的用户对所述数字组件的点击。

在一些实施方式中,与所述数字组件相关联的交互包括:由所述用户设备向所述第三方设备提供对所述数字组件的请。

在一些实施方式中,所述数字签名令牌证明所述用户设备生成了(i)所述请求和(ii)所述令牌。

在一些实施方式中,所述数字签名令牌证明尚未对所述数字组件的所述请求进行修改。

在一些实施方式中,所述数字签名令牌证明:(i)所述请求是由所述用户设备生成的;以及(ii)所述用户设备未被修改或是设备仿真器。

该方面的其他实施例包括被配置为执行在计算机存储设备上编码的执行方法的动作的相应的系统、装置和计算机程序。

可以实施本文中描述的主题的特定实施例,以实现以下优点中的一个或多个。所提出的技术通过依赖可信代码来验证事件(例如,用户与数字组件的交互)的有效性,从而提高了所生成数据的完整性,并减少了欺诈的可能性。诸如操作系统代码或可信程序(例如,Web浏览器)的二进制代码之类的可信代码难以渗透,因此,花费资源来破坏这种代码的完整性通常在规模上不经济可行。因此,提出的技术既要更可靠,又要不太可能成为漏洞的目标。

可信应用可以是例如用户设备的操作系统的一部分,诸如设备驱动器。设备驱动器是响应某些事件(例如触摸屏的触摸事件)的第一款软件。在任何第三方应用级别代码接收到指示用户触摸屏幕的数据之前,设备驱动器可以检测并验证触摸事件,以使第三方应用代码没有机会通过伪造交互来进行干预。证明令牌验证方法允许对交互事件进行验证,而没有会促进点击欺诈和印象(impression)欺诈的漏洞。

通过可信代码生成证明令牌以及在验证用户交互事件中使用这些令牌是对现有欺诈检测方法的补充,并提供了额外的安全层。该方法以较低的附加计算成本提供了更高质量的欺诈检测。每次检测到用户与数字组件的交互时,数字组件的提供商都会将验证交互的请求发送到用户设备。数字组件分发系统已经招致了接收和处理请求的费用,因此设备上验证的额外费用并不是很大的额外负担。该方法分为三个部分:(1)通过生成并签名证明令牌来进行设备上或浏览器内验证,该需要不到一毫秒的时间。(2)通过机器学习模型进行处理以验证数字组件的声明属性,这取决于机器学习模型的复杂程度;(3)由数字组件的提供商验证证明令牌的数字签名,以确保签名是有效的,这也可能需要不到一毫秒的时间。总体而言,与现有解决方案结合使用时,执行证明令牌验证方法的额外计算时间和成本微不足道。

当前的欺诈检测方法通常基于统计分析,并且需要人工输入,例如手动定义的规则。例如,一个规则可以指定如果特定设备上的点击事件始终在右上角的相同精确坐标处,则该点击很可能是欺诈事件。但是,为了确定和定义这些规则,需要人工输入来分析数据以找到欺诈性模式。因此,与传统方法相比,所提出的技术需要更少的资源来进行开发和验证。另外,由于证明令牌是在设备上或浏览器中生成的,而不需要将用户交互数据传输到第三方应用程序,因此,所提出的技术可在事件验证期间保护用户隐私。所提出的技术可以在本地分析、处理和存储用户数据。通过减少基于统计分析方法的欺诈检测需求,证明令牌方法相对于其他方法降低了损害用户数据的风险。

本说明书中描述的主题的一个或多个实施例的细节在附图和以下描述中阐述。根据说明书、附图和权利要求书,本主题的其他特征、方面和优点将变得显而易见。

附图说明

图1是示例环境的框图,其中通过确定性的加密过程来验证用户与为呈现电子文档而分发的数字组件的交互。

图2是用于验证用户与数字组件的交互的示例数据流。

图3是用于通过证明令牌的生成来验证用户与数字组件的交互的示例过程的流程图。

图4是示例计算系统的框图。

在各个附图中相似的参考数字和标号指示相似的元件。

具体实施方式

本文描述了通过确定性的密码技术来改善数据完整性并防止印象和/或点击欺诈的方法、系统和设备。欺诈在数字生态系统中十分猖獗,导致数十亿美元的资源和收入损失。为了减少和/或消除这种欺诈活动,需要改善从客户端设备收集的数据的完整性的技术。所提出的技术包括可信代码(例如,在客户端设备中执行),该可信代码接收验证用户交互的请求,确定用户交互为有效交互,生成证明用户交互和请求的有效性的加密令牌,并将加密的令牌提供给第三方,例如与之交互的数字组件的提供商。诸如操作系统代码或应用程序的二进制代码之类的可信代码不太容易受到欺诈和篡改,并且可以通过对可信代码进行更新或修补,轻松更新用户设备以包括此改进的欺诈检测功能。此可信代码生成证明用户交互有效性的加密令牌。这些令牌,称为证明令牌,在被提供给第三方以证明诸如印象和点击事件之类的事件是合法交互之前,由用户设备进行数字签名。例如,即使通过具有多个不同实体的实体链,也可以将签名的证明令牌提供给数字组件分发系统以验证数字签名并检测欺诈,例如印象和点击欺诈。

注意,在用户正在浏览可用应用程序(例如,在在线分析应用程序或网络浏览器中)或在其他环境中(例如,在发布者网页上)的情况下,也可以实施本文档中描述的技术。为简洁起见,下面的许多描述将参考数据分析环境,但应理解,本文档中讨论的技术可以应用于希望改善代表与客户端设备交互的数据完整性的其他情况。例如,本文档中讨论的技术也可以用于验证请求访问特定服务器、特定网站、特定数据集或特定帐户的客户端设备上的用户交互,以确保该请求是有效的。

如在整个文档中使用的,短语“数字组件”是指数字内容或数字信息的离散单元(例如,视频剪辑、音频剪辑、多媒体剪辑、图像、文本或另一内容单元)。数字组件可以作为单个文件或文件集合电子存储在物理存储设备中,数字组件可以采用视频文件、音频文件、多媒体文件、图像文件或文本文件的形式,并包含广告信息,这样广告就是一种数字组件。通常,数字组件由单个提供商或源(例如,广告商,发布者或其他内容提供商)定义(或由其提供),但是可以是来自多个源的内容的组合。可以将来自多个不同来源的数字组件合并为一个电子文档(例如,各种不同的数字组件的集合),并且可以将来自不同来源的各种数字组件的一部分合并为具有从搜索结果(或内容的其他部分)中提取的信息的单个数字组件。

图1是示例环境100的框图,其中数字组件被分发以与电子文档一起呈现。收集用户与这些数字组件的交互,并将其用于生成培训数据。生成的数据用于训练确定交互有效性的验证模型。示例环境100包括网络102,诸如局域网(LAN)、广域网(WAN)、因特网或其组合。网络102连接电子文档服务器120、用户设备104和数字组件分发系统(DCDS)112(也称为分发系统)。示例环境100可以包括许多不同的电子文档服务器120以及多种类型的用户设备104。

用户设备104是能够通过网络102请求和接收资源的电子设备。示例性用户设备104包括个人计算机、移动通信设备以及可以通过网络102发送和接收数据的其他设备。在一些示例中,用户设备104是移动设备,例如手机、虚拟现实设备(例如,在耳机中或在例如扬声器和显示器的组合的其他设备中实现的)、智能手机、个人数字助理(例如,在台式扬声器或例如扬声器和显示器的组合的其他设备中实现的)或平板电脑,并通过无线网络进行通信。用户设备104通常包括用户应用程序,例如Web浏览器,以促进通过网络102发送和接收数据,但是由用户设备104执行的本机应用程序也可以促进通过网络102发送和接收数据。

用户设备104包括可信程序130和验证模型140。可信程序130包括来自难以伪造的可靠源的可信代码。例如,可信程序130可以是操作系统、操作系统的一部分、Web浏览器等。通常,可信程序130难以渗透,并且施暴者需要花费大量时间和精力来对可信程序130进行篡改的可能性很高。另外,由于可信程序130由可靠的源提供和维护,因此出现的任何漏洞都可以由该源解决。

可信程序130可以位于用户设备104的本地。例如,可信程序130可以是用户设备104的操作系统的设备驱动程序。在一些实施方式中,可信程序130完全在用户设备104的本地运行,减少发送用户信息的需要。在一些实施方式中,可信程序130可以在用户设备104本地并且通过诸如网络102的网络运行。例如,可信程序130可以是安装在用户设备104上并通过网络102发送和接收信息的网络浏览器。

验证模型140可以是训练并实现机器学习模型以验证来自用户设备104的交互事件的系统。验证模型140可以是例如神经网络,其接收训练示例和用户或简档信息作为输入并输出有关交互事件本身或事件特征是否有效的预测。例如,验证模型140可以确定是否发生了事件,例如点击。验证模型140还可以确定事件的特征(例如发生印象的数字组件的内容)是否有效。

用户设备104可以收集用户交互数据来生成训练数据以输入到验证模型140。用户设备104可以选择随机样本以获得负面样本来训练例如逻辑回归模型140。用户设备104可以获取多个用户交互数据样本以生成一个或多个训练数据集。

当生成训练数据集时,用户设备从用户与数字组件的历史交互中选择在训练数据集内使用的训练特征。用户设备104以几种方式之一确定训练示例权重。在一些实施方式中,用户设备104可以均等地加权每个训练示例,并且仅在预定时间段内采样数据点。在一些实施方式中,用户设备104可以使用衰减函数来根据示例的最新程度如何来不同地加权训练示例。

系统可以将训练,验证和生成测试数据分成各种百分比的建模时间和资源。系统还可以交叉验证模型的输出。

验证模型140接收训练数据并训练机器学习模型以确定事件是否合法。机器学习模型可以使用多种技术中的任何一种,例如决策树、线性回归模型、逻辑回归模型、神经网络、分类器、支持向量机、归纳逻辑编程、模型集合(例如,使用诸如装袋(bagging)、提升(boosting)、随机森林等技术)、遗传算法、贝叶斯网络等,并且可以使用多种方法进行训练,例如深度学习、关联规则、归纳逻辑、聚类、最大熵分类、学习分类等。在某些示例中,机器学习模型使用监督学习。在某些示例中,机器学习模型使用无监督学习。机器学习模型还可以使用广泛和深度学习、长期短期记忆建模、提升、矩阵分解、用户嵌入或项目嵌入。

验证模型140用于确定交互是否为有效交互。验证模型140的输出是对该交互是否是有效交互的确定。在一些实施方式中,验证模型140可以输出该交互是有效交互的可能性。

电子文档是在用户设备104上呈现一组内容的数据。电子文档的示例包括分析报告、网页、文字处理文档、便携式文档格式(PDF)文档、图像、视频、搜索结果页面、和馈入源。诸如安装在移动设备,平板电脑或台式计算机设备上的应用程序之类的本机应用程序(例如“app”)也是电子文档的示例。电子文档121(“电子文档”)可以由电子文档服务器120(“电子文档服务器”)提供给用户设备104。例如,电子文档服务器120可以包括托管发布者网站的服务器。在该示例中,用户设备104可以发起对诸如给定发布者网页的资源的请求,并且托管给定发布者网页的电子文档服务器120可以通过发送在用户设备104上启动给定发布者的呈现的机器可执行指令来响应该请求。

在另一示例中,电子文档服务器120可以包括用户设备104可以从其下载应用的应用服务器。在该示例中,用户设备104可以请求资源,诸如安装应用、下载文件然后在本地执行所下载的应用所需的文件。

电子文档121可以包括各种内容。例如,电子文档121可以包括在电子文档本身之内和/或不随时间变化的静态内容(例如,文本或其他指定的内容)。电子文档121还可以包括动态内容,该动态内容可以随着时间或基于每个请求而改变。例如,给定电子文档121的发布者可以维护用于填充电子文档121的各部分的数据源。在该示例中,给定电子文档121可以包括一个或多个标签或脚本,一个或多个标签或脚本导致当给定的电子文档121被用户设备104处理(例如,渲染或执行)时,用户设备104从数据源请求内容。用户设备104将从数据源获得的内容集成到给定的电子文档121中以创建包括从数据源获得的内容的复合电子文档。电子文档还可以包括动态生成的报告,该报告处理其他来源的数据。例如,给定的电子文档121可以是动态生成的报告,该报告分析来自多个其他数据源的数据,例如用户与其他电子文档121的交互。

在某些情况下,给定的电子文档121可以包括一个或多个引用DCDS 112的数字组件标签或数字组件脚本。在这些情况下,当给定的电子文档被用户设备104处理时,用户设备104执行数字组件标签或数字组件脚本。数字组件标签或数字组件脚本的执行将用户设备104配置为生成对包含一个或多个数字组件的资源的请求(称为“组件请求”),通过网络102将请求发送到DCDS112。例如,数字组件标签或数字组件脚本可以使用户设备104能够生成包括报头和有效载荷数据的打包数据请求。组件请求可以包括事件数据,该事件数据指定诸如从中请求数字组件的服务器的名称(或网络位置)、请求设备(例如,用户设备104)的名称(或网络位置)和/或DCDS 112可用于选择响应于该请求而提供的一个或多个数字组件的信息等特征。组件请求由用户设备104通过网络102(例如,电信网络)发送到DCDS 112的服务器。

组件请求可以包括指定其他事件特征的事件数据,例如正在请求的电子文档以及可以在其上呈现数字组件的电子文档的位置特征。例如,指定将在其中呈现数字组件的电子文档(例如网页)的引用(例如URL)的事件数据、可用于呈现数字组件的电子文档的可用位置、可用位置的大小、和/或适合在该位置呈现的媒体类型可以提供给DCDS112。类似地,指定与电子文档相关联的关键字(“文档关键字”)的事件数据或电子文档所引用的实体(例如人,地方或事物)也可以包括在组件请求中(例如,作为有效载荷数据),并提供给DCDS112,以帮助标识适合与电子文档一起呈现的数字组件。事件数据还可包括从用户设备104提交以获得搜索结果页面的搜索查询,和/或指定搜索结果和/或搜索结果中包括的文本、可听或其他视觉内容的数据。

组件请求还可以包括与其他信息有关的事件数据,例如,客户端设备的用户已提供的信息,指示提交了组件请求的状态或区域的地理信息,或提供环境上下文的其他信息。将在环境中显示数字组件(例如,组件请求的一天中的时间,组件请求的一周中的一天,将在其上显示数字组件的设备(例如移动设备或平板电脑设备)的类型)。组件请求可以例如通过分组网络发送,并且组件请求本身可以被格式化为具有报头和有效载荷数据的分组数据。报头可以指定分组的目的地,并且有效载荷数据可以包括以上讨论的任何信息。

DCDS 112响应于接收到组件请求和/或使用组件请求中包括的信息来选择将与给定电子文档一起呈现的数字组件。系统110使用从用户与诸如电子文档121之类的数字组件的交互产生的数据来个性化呈现给用户设备104的电子文档121的选择。

用户设备104可以接收使用户设备104向DCDS 112请求数字组件的数据。例如,DCDS 112可以选择要呈现给用户设备104的数字组件。为了保持过程的完整性,用户设备104可以证明它是请求数字组件的设备,并且该请求是真实请求。用户设备104可以接收指示与数字组件的交互的数据。然后,数字组件的提供商向用户设备104生成用于验证交互的请求。当用户设备104接收到指示与数字组件进行交互的数据时,用户设备104开始验证交互的过程。交互可以简单地是用户设备104的用户对数字组件的呈现和随后的观看或印象。交互可以是用户设备104的用户与数字组件的显式交互。例如,交互可以是用户设备104的用户对数字组件的点击。在数字组件的上下文中,交互可以是印象或点击,并且可以为每次交互补偿数字组件分发系统。这样的交互很容易被篡改,因此,所提出的技术通过由可信程序验证每个交互的有效性来减少欺诈的情况。

用户设备104可以通过生成证明交互作用的有效性的确定性密码令牌或证明令牌,来验证对数字组件的请求或与数字组件的交互。例如,可信程序130可以基于交互数据和历史用户数据来生成证明令牌。当生成证明令牌时,用户设备104生成公钥和私钥。可信程序130使用一致的公钥/私钥架构,并允许跨平台一致的欺诈检测解决方案。当用户设备104发出敏感或易于欺诈的请求时,或者当用户设备104接收到用于验证交互的请求时,可信程序130在本地安全地存储私钥并发送出公钥。然后,用户设备104生成包括容易被伪造的参数的证明令牌,并用私钥对其进行签名。用户设备104可以将数字签名的证明令牌附加到对数字组件的请求,或者响应于对与数字组件的交互的有效性的请求而提供令牌。令牌可以用于验证请求是从特定设备生成的,该特定设备执行了交互,该交互是与特定数字组件进行的,和/或在传输期间未修改请求或数字组件参数。

证明令牌允许内容提供商独立地验证每个请求的来源,从而减少伪造的请求以及由于欺诈造成的资源损失的实例。因为证明令牌是由用户设备104用私钥进行数字签名的,所以内容提供商可以使用附加到请求的证明令牌对请求进行身份验证,以确保请求和令牌都是由用户设备104生成的。数字组件分发系统(例如DCDC 112)和/或其他设备可以验证请求和/或与响应于验证请求而提供的证明令牌的交互,以确保发生交互和/或交互与声明的数字组件有关。证明令牌的密码性质证明了请求和/或交互的完整性,并且允许其他第三方中的内容提供商和数字组件分发系统安全地知道未欺诈地创建或其由任何中间人修改请求和/或交互请求。内容提供商和/或数字组件分发系统可以使用证明令牌来确定请求是新请求还是重播攻击,和/或交互是否是由受感染的设备(例如根设备或设备仿真器)生成的以及其他欺诈活动。

图2是用于在图1的示例环境中实现验证过程的示例数据流200。数据流200的操作由用户设备104执行。流200的各个阶段在诸如环境100的网络环境内执行。

在一些示例中,用户设备104是具有触摸屏的移动设备,诸如手机、智能手机或平板电脑,并且通过诸如网络102的无线网络进行通信。在一些示例中,用户设备104可以是台式设备,例如膝上型计算机、台式计算机、工作站等设备,并且可以具有触摸屏。第三方设备210可以是例如在诸如网络102之类的无线网络或与用户设备104通过其通信的无线网络分开的有线网络上通信的服务器。例如,用户设备104可以是通过无线蜂窝网络进行通信的智能手机,而第三方设备210是通过有线网络进行通信的远程服务器。在一些示例中,第三方设备210可以是DCDS 112或电子文档服务器120。例如,第三方设备210可以是电子文档服务器120,并且可以在补偿DCDS 112之前验证交互事件的有效性。

在该特定示例中,用户设备104是具有触摸屏的智能手机;在流程200的各个阶段执行的通信通过网络102发生,该网络可以是因特网;第三方设备210是电子文档服务器120,它提供通过DCDS 112服务于用户设备104的数字组件。

印象验证

流程200是验证过程,并且在该示例中,流程200示出了用于验证印象的过程的数据流。在该示例中,用户设备104渲染数字组件以通过用户设备104的UI向用户显示。用户设备104的SDK或浏览器通信地连接到提供该数字组件的电子文档服务器120,可以在例如数字组件时隙中渲染该数字组件。在渲染数字组件时,用户设备104的内容提供商SDK向用户设备104的可信程序130请求印象证明令牌。用户设备104的可信程序130例如可以是用户设备104的OS或安装在用户设备104上的Web浏览器应用程序。

流程200从阶段(A)开始,其中用户设备104接收指示特定时间的交互事件的数据。在该示例中,阶段(A)被描绘为阶段(A-1),其中用户设备104接收指示与数字组件的交互事件的数据。数据可以指示事件,在该事件中,数据导致用户设备104的内容提供商SDK渲染数字组件时隙内的数字组件。数据指示数字组件由内容提供商提供。例如,数字组件可以由电子文档服务器120提供。在该特定示例中,第三方设备210是电子文档服务器120,其向用户设备104提供了为其提供交互事件数据的数字组件。数字组件通过用户设备104的用户界面(UI)呈现给用户设备104的用户。例如,数字组件可以通过智能手机用户设备104的触摸屏呈现给智能手机用户设备104的用户。数据指示交互事件是与数字组件的交互。例如,数字组件可以由DCDS112提供给用户设备104,并且用户交互可以仅仅是数字组件时隙内的数字组件的渲染,使得用户设备104的用户可以查看数字组件,这已知为印象。在接收到引起数字组件时隙内的数字组件渲染的数据后,用户设备104的SDK通过从用户设备104的可信程序130请求证明令牌来请求进行交互验证。

流程200继续至阶段(B),在阶段(B)中,用户设备104的可信程序130确定指示与数字组件的交互的数据有效。可信程序130通过检测用户设备104的UI是活动的并且在特定时间主动呈现数字组件(即,数字组件对用户可见)来确定指示交互的数据是有效的,并且确定数字组件的一个或多个属性有效。

在此示例中,由数据指示的交互是印象或数字组件时隙内的数字组件的渲染,使得用户设备104的用户可以查看数字组件。可信程序130通过确保用户设备104的UI中显示了数字组件的部分在特定时间处于用户设备104的显示器前景中来确定指示交互的数据有效。

可信程序130还可以确定数字组件的属性。例如,可信程序130可以确定数字组件的大小、内容和位置。

流程200继续至阶段(C),在阶段(C)中,可信应用程序130使用验证模型140将确定的属性与数字组件的声明的属性集进行比较,并根据比较评估交互的有效性。验证模型140可以将确定的数字组件的属性与数字组件的声明的属性集进行比较。声明的属性集可以由例如提供数字组件的电子文档服务器120或呈现数字组件的SDK提供。验证模型140可以基于通过将数字组件的每个确定的属性与数字组件的声明属性集进行比较的比较,来评估交互的有效性。例如,验证模型140可以比较并确认所确定的数字组件的位置坐标与所声明的数字组件的位置坐标相匹配;该数字组件是视频,并且与该数字组件的声明类型匹配;并且该数字组件为300x100像素,并且与声明的数字组件大小匹配。

验证模型140可以将数字组件的源与声明的数字组件的源进行比较。例如,电子文档服务器120请求验证与数字组件的交互,并且验证模型140可以将确定的数字组件内容的源与声明的源(在此示例中为电子文档服务器120)进行比较,以验证与正确的数字组件进行交互。

验证模型140可以将数字组件的内容与声明的数字组件的内容进行比较。例如,验证模型140可以确定数字组件是与运动鞋有关的图像,并确认这与声明的数字组件的内容匹配。

验证模型140可以基于交互是否可疑来执行这些比较中的一个或多个。例如,验证模型140可以使用特定于用户的训练的机器学习模型,并且可以检测交互是否偏离用户或具有类似特征的其他用户先前采取的交互。可以给每个未验证的交互相对于过去的交互的异常分数。如果未验证的交互高于阈值异常评分,则验证模型140可以执行更多属性的比较,以提高安全性。

验证模型140可以基于在特定时间在用户设备104的显示器中显示的数字组件以及与所声明的属性集匹配的确定属性来确定该交互是有效的交互。例如,用户设备104的验证模型140可以自动执行确定的数字组件的属性与声明的数字组件的属性集的比较,以评估交互的有效性。在此特定示例中,交互是印象。

为了维持数字组件的准确注册,可信程序130可以获取有关用户设备104的UI中呈现数字组件的部分的信息。例如,可信程序130可以确定在用户设备104上运行的哪个应用中呈现了数字组件时隙和数字组件。然后,可信程序130可以更新数字组件的注册表,以将应用程序和数字组件包括在注册表中。注册表维护数字组件占用的屏幕区域,并可以提供数字组件位置的验证数据。例如,可以基于当前在用户设备104的屏幕的特定区域中显示的数字组件来更新注册表。

流程200继续至阶段(D),在阶段(D)中,用户设备104的可信应用程序130基于交互有效的确定来生成证明令牌。可信应用程序130可以为令牌生成一个公/私对,并通过密码方法生成证明令牌本身。

流程200继续到阶段(E),在阶段(E)中,用户设备104对证明令牌进行数字签名,并将令牌提供给第三方设备210。在该特定示例中,第三方设备210是提供数字组件的电子文档服务器120。

点击验证

流程200是验证过程,并且在此示例中,流程200示出了用于验证点击的过程的数据流。在该示例中,用户设备104通过用户设备104的UI来渲染要显示给用户的数字组件。用户设备104可以在数字组件时隙内渲染数字组件以向用户呈现。用户设备104的可信程序130可以是例如用户设备104的OS的一部分,例如用于用户设备104的的显示器的设备驱动器或安装在用户设备104上的Web浏览器应用程序。在这个特定示例中,显示器是触摸屏显示器。在一些实施方式中,设备驱动器可以是用于用户设备104的物理用户接口设备(诸如鼠标或轨迹球)的驱动器。

可信程序130可以检测指示特定用户与用户设备104的显示器的交互的触发事件。例如,设备驱动器130可以从触摸用户设备104的触摸屏的用户接收手指向下事件。设备驱动器130是用户设备104的操作系统的一部分,并且是接收手指向下事件的第一软件。设备驱动器130可以检测手指向下事件以及该事件的属性,例如时间、位置、所使用的力的量等。

在稍后的时间,可信程序130可以检测指示与用户设备104的显示器进行不同的用户交互的目标事件。例如,设备驱动器130可以接收来自从用户设备104的触摸屏抬起其手指的用户的手指抬起事件。设备驱动器130可以检测到手指抬起事件和该事件的属性,例如时间、位置、所使用的力的量等。

在检测到目标事件和目标事件的时间时,设备驱动器130识别最近的触发事件。在此特定示例中,最近的触发事件是最近的手指向下事件。然后,设备驱动器130可以确定与手指向上事件和最近的手指向下事件相关联的数字组件时隙。另外,一旦识别出手指向上事件和最近的手指向下事件,设备驱动器130就可以使用验证模型140来验证点击事件。例如,设备驱动器130可以确定手指向上事件与最近的手指向下事件之间的时间量,并将该时间量提供给验证模型140以验证交互,如下文进一步所述。设备驱动器130还可以通过计算所确定的事件的坐标之间的距离来确定手指向上事件与最近的手指向下事件之间的距离,并且如下所述将距离提供给验证模型140作为用于验证交互的输入。

在此特定示例中,流程200从阶段(A)开始,在阶段(A)中,用户设备104在确定了手指向下事件与后续手向上起事件之间的时间量之后,接收指示特定时间的交互事件的数据,并且发生了与数字组件的未经验证的用户交互。

流程200继续进行上述关于印象验证过程的阶段(B)。

流程200继续到阶段(C),在阶段(C)中,可信应用程序130使用验证模型140将确定的属性与声明的数字组件的属性集进行比较,并根据比较评估交互的有效性。除了以上阶段(C)的描述之外,验证模型140还可以基于时间量以及手指向下和手指向上事件的检测到的属性来确定该点击是否是合法点击。验证模型140可以自动确定用户可能执行的点击的定义。验证模型140可以确定在点击可接受的手指向下事件与后续手指向上事件之间的时间量的最小和最大阈值。例如,如果手指向下事件和随后的手指向上事件之间的时间低于人类可能执行动作的最小阈值时间量,则验证模型140可以确定点击可能是结果机器人攻击或欺诈性点击。另外,验证模型140可以确定点击可接受的手指向下事件与后续手指向下事件之间的距离的最小和最大阈值。例如,最初可以将最小距离阈值设置为人的手指从最初的手指向下事件到释放触摸屏点击的手指向上触摸事件的运动的距离范围的下限。验证模型140可以通过确定手指向下事件和手指向上事件对在多大距离处被认为是滚动来自动确定最大距离阈值。例如,如果手指向下事件和随后的手指向上事件之间的距离大于最大阈值距离,则验证模型140可以确定手指向下事件和手指向下事件一起构成滚动动作而不是点击。在一些实施方式中,可以使用针对特定用户的数据来训练验证模型140,从而个性化针对每个用户的验证结果。

流程200继续阶段(D),并结束于阶段(E),如上面关于印象验证过程所述的。

请求验证

流程200是验证过程,并且在该示例中,流程200示出了生成针对数字组件的请求并将令牌附加到该请求的过程的数据流。流程200从阶段(A)开始。在该示例中,阶段(A)被描绘为阶段(A-2),其中用户设备104接收指示与数字组件的交互事件的数据。在该示例中,用户设备104接收使用户设备104从数字组件分发系统请求数字组件的数据。用户设备104的可信程序130可以是例如用户设备104的OS的一部分或安装在用户设备104上的Web浏览器应用程序。在此特定示例中,第三方设备210是DCDS 112。

流程200从阶段(A-2)继续到阶段(D),在其中,用户设备104的可信应用程序130基于交互有效的确定来生成证明令牌。可信应用程序130可以为令牌生成一个公/私对,并通过密码方法生成证明令牌本身。

流程200继续至阶段(E),在该阶段中,用户设备104数字签名证明令牌,并将该令牌与对数字组件的请求一起提供给第三方设备210。

图3是用于验证交互事件的示例过程300的流程图。在一些实施方式中,过程300的操作可以由用户设备实施。例如,过程300的操作可以由图1 2的用户设备104来实现。在一些实施方式中,过程300可以被实现为存储在非暂时性计算机可读介质上的指令,并且当指令由用户设备执行时,该指令可以使用户设备执行过程300的操作。

过程300开始于在用户设备和特定时间接收指示与数字组件相关联的交互的输入,该数字组件由(i)由内容提供商提供,并且(ii)由用户设备的用户界面呈现(302)。例如,用户设备104可以接收导致在用户设备104的UI的数字组件时隙内呈现数字组件的数据。在该示例中,数字组件由电子文档服务器120提供。通过用户设备104的用户界面呈现数字组件。

过程300继续通过用户设备的可信程序确定交互是有效的(304)。在该示例中作为用户设备104的OS 130的可信程序130可以确定由输入数据指示的交互有效。

确定交互是有效的包括通过用户设备的可信程序检测用户设备的用户界面是活动的并且在特定时间主动呈现数字组件(306)。例如,用户设备104的可信程序130可以确定该数字组件在用户设备104的用户界面的前景中,并且该数字组件在特定时间是可见的。

确定交互作用是有效的还包括通过可信程序并响应于检测到用户设备的用户界面处于活动状态并在特定时间主动呈现数字组件来确定数字组件的属性集,包括用户界面中主动呈现数字组件的位置(308)。例如,可信程序130可以确定数字组件的属性集,例如大小、位置和内容等。

确定交互是有效的还包括通过用户设备的可信程序将所确定的属性集的每个属性与内容提供商所提供的数字组件的参考属性集中的对应属性进行比较(310)。例如,可信程序130可以使用验证模型140来比较所确定的属性集的每个属性与参考属性集中的对应属性。参考属性可以是作为数字组件的内容提供商的电子文档服务器120提供的声明的属性集。

确定交互是有效的还包括基于所述比较并由所述可信程序评估所述交互的有效性,其中响应于(i)所述比较指示所确定的属性集和参考属性集之间的匹配的比较,以及(ii)检测用户设备的用户界面是活动的并且在特定时间主动呈现数字分量,则所述交互被视为有效(312)。例如,可信程序130可以响应于指示所确定的属性集和参考属性集之间的匹配的比较,以及检测到数字组件可见和在特定时间向用户设备104的用户呈现而使用验证模型140来确定交互是有效的。

过程300继续由用户设备的可信程序并基于有效性评估基于交互有效的确定来生成数字签名令牌,该令牌证明了与数字组件的交互的有效性(314)。例如,可信程序130可以使用密码方法来生成证明令牌。证明令牌证明了交互的有效性。

处理300还包括通过用户设备的可信程序向第三方提供数字签名的证明令牌,以作为交互的有效性的指示(316)。例如,可信程序130可以将数字签名的证明令牌发送到第三方设备210、电子文档服务器120和DCDS 112等。

图4是可用于执行上述操作的示例计算机系统400的框图。系统400包括处理器410、存储器420、存储设备430和输入/输出设备440。组件410、420、430和440中的每一个都可以例如使用系统总线450互连。处理器410能够处理在系统400内执行的指令。在一个实施方式中,处理器410是单线程处理器。在另一个实施方式中,处理器410是多线程处理器。处理器410能够处理存储在存储器420或存储设备430中的指令。

存储器420在系统400内存储信息。在一个实施方式中,存储器420是计算机可读介质。在一个实施方式中,存储器420是易失性存储单元。在另一实施方式中,存储器420是非易失性存储单元。

存储设备430能够为系统400提供大容量存储。在一个实施方式中,存储设备430是计算机可读介质。在各种不同的实施方式中,存储设备430可以包括例如硬盘设备、光盘设备,由多个计算设备(例如,云存储设备)在网络上共享的存储设备或其他一些大容量存储设备。

输入/输出设备440为系统400提供输入/输出操作。在一个实施方式中,输入/输出设备440可以包括:一个或多个网络接口设备,例如,以太网卡;串行通信设备,例如,RS-232端口;和/或无线接口设备,例如802.11卡。在另一实施方式中,输入/输出设备可以包括驱动器设备,该驱动器设备被配置为接收输入数据并将输出数据发送到其他输入/输出设备,例如键盘、打印机和显示设备460。但是,也可以使用其他实施方式,例如移动计算设备、移动通信设备、机顶盒电视客户端设备等。

尽管在图4中描述了示例处理系统,但是可以以其他类型的数字电子电路或计算机软件,固件或硬件来实现本说明书中所描述的主题的实现和功能操作,包括本说明书中公开的结构及其等同结构、或它们的一种或多种的组合。

电子文档(为简便起见将其简称为文档)不一定必须与文件相对应。文档可以存储在保存其他文档的文件的一部分中、专用于所讨论文档的单个文件中或多个协调文件中。

本说明书中描述的主题和操作的实施例可以在数字电子电路中、或在计算机软件、固件或硬件中、或以它们的一种或多种的组合来实施,包括本说明书中公开的结构及其等同结构。本说明书中描述的主题的实施例可以被实现为一个或多个计算机程序,即,计算机程序指令的一个或多个模块,被编码在计算机存储介质(或多个介质)上以由数据处理装置执行或控制数据处理装置的操作。替代地或另外,程序指令可以被编码在人工产生的传播信号上,例如机器产生的电、光或电磁信号,其被产生以对信息进行编码以传输到合适的接收器装置以由数据处理装置执行。计算机存储介质可以是计算机可读存储设备、计算机可读存储基板、随机或串行存取存储器阵列或设备、或它们中的一个或多个的组合或包括在计算机可读存储设备、计算机可读存储基板、随机或串行存取存储器阵列或设备、或它们中的一个或多个的组合中。此外,尽管计算机存储介质不是传播信号,但是计算机存储介质可以是以人工生成的传播信号编码的计算机程序指令的源或目的地。计算机存储介质也可以是一个或多个单独的物理组件或介质(例如,多个CD,磁盘或其他存储设备)或包含在其中。

本说明书中描述的操作可以被实现为由数据处理装置对存储在一个或多个计算机可读存储设备上或从其他源接收的数据执行的操作。

术语“数据处理装置”涵盖用于处理数据的所有种类的装置,设备和机器,例如,包括可编程处理器、计算机、片上系统或前述的多个或组合,以上所述。该装置可以包括专用逻辑电路,例如,FPGA(现场可编程门阵列)或ASIC(专用集成电路)。除了硬件之外,该装置还可以包括为所讨论的计算机程序创建执行环境的代码,例如,构成处理器固件、协议栈、数据库管理系统、操作系统、跨平台运行时环境、虚拟机或其中一个或多个的组合的代码。装置和执行环境可以实现各种不同的计算模型架构,例如网络服务、分布式计算和网格计算架构。

计算机程序(也称为程序,软件,软件应用程序,脚本或代码)可以用任何形式的编程语言(包括编译或解释语言,声明性或过程语言)编写,并且可以部署为任何形式,包括作为独立程序或作为模块、组件、子例程、对象或适用于计算环境的其他单元。计算机程序可以但不必对应于文件系统中的文件。程序可以存储在保存其他程序或数据的文件的一部分中(例如,存储在标记语言文档中的一个或多个脚本)、专用于所讨论程序的单个文件中或多个协调文件中(例如,存储一个或多个模块、子程序或部分代码的文件)。可以部署计算机程序以在位于一个站点上或分布在多个站点上并通过通信网络互连的一台计算机或多台计算机上执行。

本说明书中描述的过程和逻辑流程可以由执行一个或多个计算机程序的一个或多个可编程处理器执行,以通过对输入数据进行操作并生成输出来执行动作。处理和逻辑流程也可以由专用逻辑电路执行,并且装置也可以被实现为专用逻辑电路,例如FPGA(现场可编程门阵列)或ASIC(专用集成电路)。

例如,适合于执行计算机程序的处理器包括通用和专用微处理器。通常,处理器将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的基本元件是用于根据指令执行动作的处理器和用于存储指令和数据的一个或多个存储设备。通常,计算机还将包括一个或多个用于存储数据的大容量存储设备(例如,磁盘、磁光盘或光盘)或可操作地耦合到一个或多个用于存储数据的大容量存储设备,以从一个或多个用于存储数据的大容量存储设备接收数据或将数据发送到一个或多个大容量存储设备或两者。但是,计算机不必具有此类设备。此外,计算机可以被嵌入到另一个设备中,例如,移动电话、个人数字助理(PDA)、移动音频或视频播放器、游戏机、全球定位系统(GPS)接收器或便携式存储设备(例如,通用串行总线(USB)闪存驱动器),仅举几例。适用于存储计算机程序指令和数据的设备包括所有形式的非易失性存储器、介质和存储设备,例如,包括半导体存储设备,例如EPROM、EEPROM和闪存设备;磁盘,例如内部硬盘或可移动磁盘;磁光盘;以及CD ROM和DVD-ROM磁盘。处理器和存储器可以由专用逻辑电路补充或合并到专用逻辑电路中。

为了提供与用户的交互,可以在具有用于向用户显示信息的显示设备(例如,CRT(阴极射线管)或LCD(液晶显示器)监视器)以及用户可以通过其向计算机提供输入的键盘和指示设备(例如鼠标或轨迹球)的计算机上实现本说明书中描述的主题的实施例。其他种类的设备也可以用于提供与用户的交互,例如,提供给用户的反馈可以是任何形式的感觉反馈,例如视觉反馈,听觉反馈或触觉反馈;并且可以以任何形式接收来自用户的输入,包括声音、语音或触觉输入。另外,计算机可以通过向用户使用的设备发送文档和从用户使用的设备接收文档来与用户进行交互,例如,通过响应从网络浏览器收到的请求,将网页发送到用户客户端设备上的网络浏览器。

本说明书中描述的主题的实施例可以在包括:后端组件(例如,作为数据服务器);或者包括中间件组件(例如,应用服务器);或者包括前端组件(例如,具有图形用户界面或Web浏览器的客户端计算机,用户可以通过该Web浏览器与本说明书中描述的主题的实现进行交互);或者包括一个或多个此类后端组件、中间件或前端组件的任意组合。系统的组件可以通过数字数据通信的任何形式或介质(例如,通信网络)互连。通信网络的示例包括局域网(“LAN”)和广域网(“WAN”)、网际网络(例如Internet)和对等网络(例如ad hoc对等网络)。

计算系统可以包括客户端和服务器。客户端和服务器通常彼此远离,并且通常通过通信网络进行交互。客户端和服务器之间的关系是通过在各自计算机上运行并彼此具有客户端-服务器关系的计算机程序而产生的。在一些实施例中,服务器将数据(例如,HTML页面)发送到客户端设备(例如,出于向与客户端设备交互的用户显示数据并从中接收用户输入的目的)。可以在服务器处从客户端设备接收在客户端设备处生成的数据(例如,用户交互的结果)。

尽管本说明书包含许多特定的实施细节,但是这些不应被解释为对任何发明或可要求保护的范围的限制,而是对具体到特定发明的特定实施例的特征的描述。在分离的各个实施例的上下文中在本说明书中描述的某些特征也可以在单个实施例中组合实现。相反,在单个实施例的上下文中描述的各种特征也可以分别在多个实施例中或以任何合适的子组合来实现。而且,尽管以上可以将特征描述为以某些组合起作用并且甚至最初如此声称,但是在某些情况下,可以从组合中去除所要求保护的组合中的一个或多个特征,并且可以将所要求保护的组合用于子组合或子组合的变体。

类似地,虽然在附图中以特定顺序描绘了操作,但是这不应理解为要求以所示的特定顺序或以连续的顺序执行这样的操作,或者执行所有示出的操作以实现期望的效果。在某些情况下,多任务和并行处理可能是有利的。此外,上述实施例中的各种系统组件的分离不应理解为在所有实施例中都需要这种分离,并且应当理解,所描述的程序组件和系统通常可以集成在单个软件产品中或打包成多个软件产品。

因此,已经描述了本主题的特定实施例。其他实施例在所附权利要求的范围内。在某些情况下,可以以不同的顺序执行权利要求中记载的动作,并且仍然实现期望的结果。另外,附图中描绘的过程不一定需要所示的特定顺序或连续顺序来实现期望的结果。在某些实施方式中,多任务和并行处理可能是有利的。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号