用于保护数据的系统和方法与流程

文档序号:25543451发布日期:2021-06-18 20:40
用于保护数据的系统和方法与流程



背景技术:

互联网已使得能够访问各种各样的数据。在某些情况下,例如,可以通过密码保护数据来限制对数据的访问。诸如加密技术的其他技术也可以用于限制对数据的访问。



技术实现要素:

此文档讨论用于保护数据的技术。如此文档通篇所详细讨论的,可以通过要求接收数据的设备(例如,请求访问数据的设备)正确响应(例如,回答)嵌入在响应于对数据的请求而提供的数据中的质询(challenge)来保护数据。如果接收数据的设备能够生成对质询的正确响应,则可以将该设备验证为旨在接收数据的设备。附加地或可替代地,当设备能够生成对质询的正确响应时,例如根据在针对数据的请求中接收的信息,该正确响应可以指示所请求的数据正如所旨在的那样被使用。例如,为了生成对质询的正确响应,可以要求接收数据的设备(例如,不是该设备的用户)确认实际使用数据的上下文与对数据的请求中指定的提议的上下文匹配。换句话说,质询可以确保在请求中指定的上下文实际上是数据实际上将在其中被使用的上下文,所述在请求中指定的上下文被响应于请求而触发数据分发的服务器认为是使用数据的适当环境。这可以阻止“欺骗”活动,在所述“欺骗”活动中一个设备在请求内使用适当上下文信息来请求对数据的访问,并且然后在接收到数据后将数据转发或以其他方式重定向到不适当的环境。

在一些实施方式中,服务器接收数据请求,该数据请求包括表征将向其提供所请求的数据的客户端设备的环境的一个或多个属性。例如,该请求可以是对数字组成部分的请求,该数字组成部分将与由不同实体分发的内容(例如,与提供数字组成部分的实体不同的实体提供的网页或本机应用)一起被合并在资源中。在此示例中,表征客户端设备的环境的属性可以指定将在其中呈现数字组成部分的上下文。上下文可以至少部分地由将在其中合并数字组成部分以进行呈现的应用或网页定义。各种其他信息可以作为请求的一部分。例如,代替上下文信息或除了上下文信息之外,该请求可以指定服务器可以检索上下文信息的位置。一个或多个属性可以包括客户端设备的浏览器的公钥、客户端设备的公钥、客户端设备的地址、服务器的cookie名称和值以及应用名称的任意组合。

服务器基于接收到的一个或多个属性来选择响应数据。在一些实施方式中,服务器可以例如使用来自请求的上下文信息来选择要在应用中呈现给用户的数字组成部分(例如,基于应用的类型、名称或另一特性)。在一些实施方式中,响应数据与响应脚本组合,该响应脚本被用于与验证质询结合来控制对响应数据的访问。

服务器生成验证质询,该验证质询控制对响应数据的访问。也就是说,当客户端设备对验证质询的回答正确回答验证质询时,客户端设备提供对响应数据的访问。当客户端设备对验证质询的响应未正确回答验证质询时,阻止客户端设备访问响应数据。例如,服务器可以生成仅客户端设备可以解密的加密的唯一值。在一些实施方式中,将表征向其提供所请求的数据的客户端设备的环境的一个或多个属性用于生成验证质询。在特定示例中,请求的一个或多个属性也与唯一值一起被加密(例如,使用客户端设备的公钥)。客户端设备可以使用这些属性来对验证质询背后的一个或多个服务器进行验证。在一些实施方式中,响应数据本身可以包括加密的数据,使得即使客户端设备正确地回答验证质询,客户端设备仍将需要能够解密响应数据中的至少部分以给用户呈现响应数据。这种额外的加密可以阻止绕过验证质询来访问响应数据。

服务器利用验证质询来安全保护(secure)响应数据。例如,可以基于接收客户端设备是否可以解密和处理验证质询以及正确响应该验证质询来提供或阻止对所选择的数字组成部分的访问。如在上面所讨论的,在一些实施方式中,响应数据的至少一部分可以被加密(例如,为了增加安全性)。在那些实施方式中,响应数据的加密版本被包括在验证质询中。然后,服务器可以将验证质询和对原始请求的响应数据传输到客户端设备。例如,服务器可以将数字组成部分与验证质询一起传输到客户端设备。除非并且直到客户端设备正确回答验证质询,否则以客户端设备无法访问或呈现数字组成部分的方式安全保护数字组成部分。例如,数字组成部分包可以包括可执行代码(例如,响应脚本),其使客户端设备仅在客户端设备生成对验证质询的有效响应时才能够访问客户端设备上的响应数据。因此,该可执行代码使仅在已正确回答了验证质询后才能够渲染数字组成部分。

在一些实施方式中,数字组成部分包包括对验证质询的期望响应(例如,由服务器生成的唯一值的密码散列)。验证质询还可以包括唯一值的另一个副本,该另一个副本由服务器生成但是利用客户端设备的公钥进行加密。在一些实施方式中,除了或代替添加对验证质询的期望响应,服务器可以使用对称密钥加密算法来加密响应数据的至少一部分。

例如,如果该客户端设备具有与通过其对验证质询加密的公钥相对应的私钥,则该客户端设备接收验证质询并将其解密。也就是说,如果验证质询是通过客户端设备的公钥来加密,则客户端设备可以使用其私钥解密验证质询。当验证质询被解密时,客户端设备从数字组成部分包中检索唯一值,并将该唯一值转换为质询回答(例如,生成被解密的唯一值的密码散列)。例如,客户端设备可以对唯一值执行诸如安全散列算法(sha)函数的密码散列函数以生成密码散列。客户端设备可以执行响应脚本(例如,数字组成部分脚本),并将所生成的质询回答(例如,在客户端设备上生成的唯一值的密码散列)提交给脚本。该脚本将提交的散列与期望响应(例如,服务器上生成的密码散列)进行比较。如果散列匹配,则客户端设备访问并渲染数字组成部分。如果散列不匹配,则阻止对数字组成部分的访问。

客户端设备通过将在质询中接收到的解密的一个或多个属性与原始数据请求的一个或多个属性进行比较来对验证质询本身进行验证。如果属性匹配,则客户端设备将唯一值的密码散列提交给数字组成部分脚本。如果属性不匹配,则客户端设备可以抑制执行响应脚本。如在上面所提及的,可以对响应数据的一部分或全部进行加密,使得例如不能绕过数字组成部分脚本来检索响应数据。在那些情况下,当客户端设备确定散列匹配时,客户端设备可以(使用响应脚本)解密响应数据并将数据呈现给用户。

在一些实施方式中,不是从客户端设备本身而是从中间服务器接收请求。在这些实施方式中,服务器可以从请求中检索客户端设备的地址,并将具有响应数据的验证质询传输到该地址。在响应数据将被呈现在应用中,但是来自应用内的上下文信息对于用户设备而言是未知的,但是对于应用提供商的中间服务器而言是已知的时,则这可能是有利的。

所公开的数据保护技术提供各种优点。例如,公开的数据保护技术使得能够验证所请求的数据将被呈现给用户的环境。以对请求本身的响应包括验证环境的方式而无需客户端与服务器之间的额外通信的方式来执行验证。此外,该技术使客户端设备能够利用用于呈现响应数据的适当环境属性验证来自服务器的数据以确认由客户端设备发送的或代表客户端设备发送的请求本身。

所公开的数据保护技术提供的另一优点在于中间服务器的攻击和/或欺诈尝试。例如,当响应数据通过中间服务器网络从服务器传输到客户端设备时,中间服务器中的一个或多个可能尝试将响应数据重定向到不同客户端设备,所述不同客户端设备尝试将响应数据呈现给不同的用户和/或不同的环境,因为不同的客户端设备将无法正确回答验证质询并因此无法访问响应数据,所以所公开的技术可以阻止这种欺诈。

本文公开的技术可以在预期阻止对数据的非法访问的任何适当的上下文中。纯粹是为了更具体地说明本公开,下面讨论示例性上下文,其中要保护的数据是广告数据或出行应用的数据。将理解的是,这些是可以使用本文公开的技术的上下文的非限制性示例,并且其他上下文也是可能的。

在一些实施方式中,一个或多个服务器接收数据请求,该数据请求包括表征将向其提供所请求的数据的客户端设备的环境的一个或多个属性。一个或多个服务器基于一个或多个属性来选择响应数据,并使用表征将向其提供所请求的数据的客户端设备的环境的一个或多个属性,生成基于客户端设备是否生成对验证质询的正确回答来控制对响应数据的访问的验证质询。因此,当客户端设备生成的回答正确响应验证质询并且客户端设备验证该验证质询中指定的环境的一个或多个属性时,为客户端设备提供对响应数据的访问,并当客户端设备生成的回答未正确响应验证质询或客户端设备未验证该验证质询中指定的环境的一个或多个属性时,阻止客户端设备访问响应数据。一个或多个服务器利用验证质询来安全保护响应数据,并将利用验证质询安全保护的响应数据传输到客户端设备。

客户端设备生成质询响应,并确定质询响应是否是对验证质询的有效响应。响应于确定质询响应是对验证质询的有效响应,客户端设备访问响应数据。

在一些实施方式中,向客户端设备提供对响应数据的访问包括向客户端设备提供可执行代码,该可执行代码使客户端设备能够在客户端设备生成对验证质询的有效响应时访问客户端设备上的响应数据。

在一些实施方式中,一个或多个属性包括以下中的一个或多个:客户端设备的浏览器的公钥、客户端设备的公钥、客户端设备的地址、服务器的cookie名称和值或应用名称。另外,在一些实施方式中,生成验证质询包括生成唯一值、检索客户端设备的公钥、使用客户端设备的公钥对唯一值和请求的一个或多个属性进行加密以及生成包括加密的一个或多个属性中的一个和唯一值的验证质询。

在一些实施方式中,一个或多个服务器通过使用客户端设备的公钥对响应数据的至少一部分进行加密来利用验证质询来安全保护响应数据。此外,在一些实施方式中,接收包括表征将向其提供所请求的数据的客户端设备的环境的一个或多个属性的数据请求包括从存储一个或多个属性中的至少一部分的中间服务器接收数据请求。

在一些实施方式中,一个或多个服务器通过从数据请求中提取客户端设备的地址并将验证质询传输到客户端的地址来将利用验证质询安全保护的响应数据传输到客户端设备。

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

附图说明

图1描绘根据本公开中讨论的技术的通信序列。

图2是用于利用验证质询来安全保护响应数据的框图。

图3示出包括可以被包括在数据请求中并且可以被服务器接收的示例属性的数据结构。

图4图示包括用于验证质询的字段的数据结构的示例。

图5是客户端设备可以执行以回答验证质询的说明性动作的框图。

图6图示脚本可以执行以确定是提供还是阻止对响应数据的访问的动作。

在各个附图中,相同的附图标记和命名指示相同的元件。

具体实施方式

图1示出系统100,其描绘根据本公开中讨论的技术的通信序列。系统100包括客户端设备102。客户端设备102可以是智能电话、电子平板电脑或另一合适的客户端设备。系统100还包括用于与客户端设备通信的一个或多个服务器104。具体地,一个或多个服务器104从客户端接收数据请求,并将包括所安全保护的响应数据的验证质询传输到客户端设备102。该数据请求由客户端设备上的web浏览器或另一应用生成,而无需任何用户输入和/或独立于任何用户输入。客户端设备接收验证质询,并将质询响应提交给应用106(例如,向其中将响应数据呈现给用户的浏览器或另一应用)。

图2是用于利用验证质询来安全保护响应数据的过程200的框图。在202处,一个或多个服务器(例如,在服务器104之中)接收数据请求,该数据请求包括表征将向其提供所请求的数据的客户端设备的环境的一个或多个属性。数据请求可以包括客户端设备的浏览器的公钥、客户端设备的公钥、客户端设备的地址、服务器的cookie名称和值(例如,为其中将要呈现响应数据的网页服务的服务器的cookie的名称和值)、应用名称和其他合适的属性中的一个或多个。如果从客户端设备本身接收到数据请求,则客户端设备可以确定环境的哪些属性需要包括在数据请求中。

在一些实施方式中,数据请求是由中间服务器生成,因为例如,中间服务器可以具有关于其中响应数据将被呈现给用户的客户端设备的环境的一些信息。具体地,如果响应数据要在应用内(例如,在客户端设备上玩的游戏内)呈现给用户,则客户端设备可能无法访问该应用以确定响应数据将被呈现的环境,尤其是在应用和提供数据的服务器之间的通信被加密的情况下。但是,向应用提供数据的中间服务器可以具有有关环境的数据。例如,如果该应用是出行应用,则正在向该应用提供出行信息的服务器(例如,响应于搜索请求)具有关于将呈现响应数据的环境信息的更好的数据。即,如果用户正在搜索特定的出行位置,则该信息对中间服务器是已知的,而对于客户端设备是未知的。因此,在这些实施方式中,中间服务器生成并传输数据请求。在一些实施方式中,中间服务器向客户端设备查询中间服务器可能不具有的一些属性(例如,客户端设备上的应用的公钥)。

图3示出数据结构300,其包括可以包括在数据请求中并由服务器接收的示例属性。公钥302是与客户端设备上的私钥相对应的公钥,客户端设备可以使用该私钥来解密验证质询。在一些实施方式中,公钥是设备本身的公钥。在其他实施方式中,公钥是为响应数据将在其中被呈现给用户的应用生成的公钥。例如,除了或代替任何客户端设备公钥/私钥,web浏览器还可以具有生成的公钥/私钥对。因此,如果其中将呈现响应数据(例如,响应于数据请求)的应用是浏览器,则数据请求可以包括与该浏览器内的私钥相对应的公钥。服务器可以使用公钥/私钥基础设施(pki)的各种实施方式来生成客户端设备的公钥和私钥。

互联网协议(ip)地址304是可以向其发送验证质询的客户端设备的ip地址。在从客户端设备接收请求的实施方式中,生成数据请求的客户端设备上的应用可以向客户端设备的操作系统查询客户端设备的ip地址。在数据请求不来自客户端设备而是来自例如中间服务器的实施方式中,中间服务器可以向客户端设备查询地址,或者可以基于使用其中将会显示响应数据的应用发送和接收的通信来确定客户端设备的地址。

统一资源定位符(url)306可以是要在其中显示响应数据的网页的地址。例如,如果响应数据要在浏览器中显示,则url可以将网站和/或网页的上下文或类型以及有关网站和/或网页的其他信息通知服务器。应用名称308是将在其内显示响应数据的应用名称。字段310可以包括可以由服务器接收作为数据请求的部分的一个或多个其他属性。其他属性可以包括例如应用内的上下文。对于出行应用,上下文可以是用户已经请求的出行位置。对于骑行服务应用,上下文可以是用户的当前位置和目的地以及其他用户偏好。在一些实施方式中,可以将其他属性字段添加到数据结构300。

返回参考图2,在204处,服务器(例如,服务器104中的)基于一个或多个属性来选择响应数据。响应数据可以是数字组成部分。如本文档通篇所使用的,短语“数字组成部分”是指数字内容或数字信息的离散单元(例如,视频剪辑、音频剪辑、多媒体剪辑、图像、文本或其他内容单元)。数字组成部分可以电子方式作为单个文件或文件集合存储在物理存储设备中,并且数字组成部分可以采用视频文件、音频文件、多媒体文件、图像文件或文本文件的形式,并且可以包括广告信息,使得广告是一种数字组成部分。在一些实施方式中,数字组成部分包括或可以被插入到脚本中以向用户呈现数字组成部分的数据。该脚本可以包括用于确定针对验证质询的回答是否正确的可执行指令。

在一些实施方式中,可以在广告上下文中使用验证质询。即,客户端设备(例如,智能电话或电子平板电脑)上的web浏览器或另一应用可以请求将广告发送到客户端设备以向用户呈现。服务器可以基于属性(例如,将在其中显示广告的环境)来选择广告,以传输回到客户端设备。在一些实施方式中,广告被封装到广告脚本中。包括所选择的广告的广告脚本可以是将由验证质询保护的响应数据。

在一些实施方式中,可以在出行上下文中使用验证质询。例如,当用户预期从开始位置出行到结束位置时,用户设备可以生成数据请求。数据请求可以包括作为一个或多个属性的开始位置和结束位置。另外,数据请求可以包括关于用户和用户设备的其他信息。当服务器接收到数据请求时,服务器可以选择响应数据(例如,数字组成部分)以传输到客户端设备。该数字组成部分可以包括关于用户可用的一个或多个车辆的信息。数字组成部分可以包括出行所需的其他信息。此外,质询验证过程能够被用于出行上下文中的驾驶员。也就是说,驾驶员的客户端设备可以生成数据请求,该数据请求利用向服务器发送的驾驶员的环境的属性来向服务器指示该驾驶员可用于驾驶行为。这些属性可以包括驾驶员的位置、驾驶员的标识、驾驶员的客户端设备的公钥以及包括上面讨论的任何属性的其他合适的属性。

返回参考图2,在206处,服务器(例如,服务器104中的)生成验证质询,该验证质询控制对响应数据的访问。验证质询基于客户端设备是否生成对验证质询的正确回答来控制对响应数据的访问。具体地,当由客户端设备生成的回答正确地响应验证质询时,向客户端设备提供对响应数据的访问。当客户端设备生成的回答未正确响应验证质询时,阻止客户端设备访问响应数据。服务器可以通过多种方式生成验证质询。在一些实施方式中,服务器可以使用加密来生成验证质询。服务器可以生成唯一值。唯一值可以是例如数字值(例如,多位数字)、十六进制值、词、短语或其他合适的唯一值。例如,服务器可以使用随机数生成器结合一个或多个算法来生成唯一值。

在一些实施方式中,可以使用请求的一个或多个参数来生成唯一值。例如,服务器可以使用来自请求的ip地址、来自请求的url的散列和/或来自请求的应用名称以生成唯一值。以下是唯一值的示例数据结构:

{唯一值:…

ip地址:…

应用名称:…}

数据结构可以存储为类似javascript对象表示法(json)的格式。在一些实施方式中,为了减小数据结构的大小,可以采用二进制编码方案(例如,协议缓冲器或cborhttp://cbor.io)。

在一些实施方式中,服务器检索或接收客户端设备的公钥。如上所述,客户端设备的公钥可以被包括在数据请求中,因此,服务器可以从请求中检索客户端设备的公钥。在一些实施方式中,服务器可以通过查询客户端设备本身来从客户端设备检索公钥。在另一个示例中,服务器可以从中间服务器检索客户端设备的公钥。在实施方式中,在需要的密钥来自客户端设备上的特定应用的情况下,客户端设备可能无法访问该密钥,而替代地中间服务器可以存储该密钥。因此,服务器可以从中间服务器检索公钥。

当服务器获得客户端设备的公钥并生成唯一值时,服务器使用客户端设备的公钥对唯一值进行加密。加密的唯一值成为验证质询的部分。另外,服务器可以生成所生成的唯一值的密码散列。服务器可以对唯一值执行密码散列函数,诸如安全散列算法(sha)函数,以生成密码散列。服务器将唯一值的密码散列添加到验证质询。密码散列成为期望响应。

在一些实施方式中,密码散列被添加到脚本或其他可执行代码以在客户端设备上进行比较。例如,脚本可以是可执行代码,所述脚本在客户端设备生成对验证质询的有效响应时,使客户端设备能够访问客户端设备上的响应数据。客户端设备可以在回答验证质询时执行脚本。在一些实施方式中,服务器使用客户端设备的公钥来加密在数据请求中接收到的属性中的一个或多个。客户端设备可以解密属性,并使用这些属性来验证验证质询本身。即,客户端设备可以确定验证质询是否是响应于服务器接收到的特定数据请求。

再次参考图2,在208处,服务器(例如,服务器104中的)利用验证质询来安全保护响应数据。例如,服务器可以响应于数据请求来生成包括响应数据和验证质询的响应包(例如,包括使用客户端设备的公钥加密的唯一值,包括唯一值的密码散列的期望响应,并且在一些实施方式中,使用客户端设备的公钥加密的数据请求中接收到的属性)。响应包可以包括其他数据。如上所述,数字组成部分可以是响应数据或响应数据的部分。在一些实施方式中,除了或代替添加对验证质询的期望响应,服务器可以使用对称密钥加密算法或使用客户端设备的公钥(例如,客户端设备的浏览器的密钥)对响应数据的至少一部分进行加密。客户端设备可以使用客户端设备返回的唯一值作为解密密钥使用相同的对称密钥加密算法来解密响应数据。如果使用客户端设备的公钥来加密响应数据的部分,则客户端设备可以使用对应的私钥来解密响应数据的该部分。

在广告上下文中,响应数据可以包括脚本(例如,广告脚本),该脚本在该脚本内除了可执行代码之外还包括要呈现给用户的广告。在出行上下文中,响应数据可以包括具有车辆的驾驶员/车辆信息的数字组成部分,该车辆可以将用户从数据请求中指定的起点运载到终点。在驾驶员侧出行上下文中,响应数据可以包括具有乘客信息的数字组成部分,以供驾驶员将乘客从预期的起点运载到预期的终点。在所有上下文中,响应数据可以封装在脚本中和/或使用客户端设备的公钥加密。

在一些实施方式中,服务器(例如,使用客户端设备的公钥)对响应数据的至少部分进行加密。响应数据的加密对于阻止客户端设备上或中间服务器处的系统或应用绕过脚本或通过尝试提取响应数据来妨碍验证质询很有用。客户端设备可以在将响应数据呈现给用户之前解密响应数据的加密部分。图4图示包括验证质询中的字段的数据结构400的示例。字段402包括加密的唯一值(例如,使用客户端设备的公钥加密)。字段404包括期望响应(例如,唯一值的密码散列)。字段406包括响应数据。例如,字段406可以包括数字组成部分。在一些实施方式中,字段404和406是存储脚本的单个字段,该单个字段包括期望响应和响应数据。字段408存储在请求中接收到的一个或多个加密属性。如在上面所讨论的,这些属性可以用于在验证客户端设备上验证质询。如字段410所图示的,其他数据可以包括在数据结构400中。

再次参考图2,在210处,服务器(例如,服务器104中的)将利用验证质询来安全保护的响应传输到客户端设备。在一些实施方式中,服务器从请求中提取客户端设备的地址(例如,ip地址),并将验证质询传输到客户端设备的地址。在一些实施方式中,服务器可能不能访问客户端设备的地址。例如,如果从中间服务器接收到原始数据请求,则服务器可以将验证质询传输到中间服务器以最终在客户端设备处被接收。在一些实施方式中,传输到(例如,提供给)客户端设备的响应数据包括可执行代码,该可执行代码使客户端设备能够在客户端设备生成对验证质询的有效响应时访问客户端设备上的响应数据。

在一些实施方式中,服务器通过多个中间服务器传输验证质询。中间服务器中的一个或多个可能会尝试拦截响应数据并将响应数据重定向到另一客户端设备。但是,因为已经使用特定客户端设备的公钥执行加密,所以只有该客户端设备能够正确回答验证质询并访问响应数据。

在一些实施方式中,减小验证质询的大小可能对于传输(例如,在较慢的网络上)是有用的。在这些和其他实施方式中,验证质询可以包括加密的唯一值而无需以上讨论的属性(例如,无需地址、应用名称或其他合适的属性)。可以使用对称密钥加密算法(例如,高级加密标准算法)来加密响应数据,其中唯一值动作作为用于该算法的加密密钥。因为有效的客户端设备将具有可以与解密的唯一值组合以访问响应数据的所有其他属性信息,因此此实施方式可能是有用的。此外,可以使用对称密钥加密算法对验证质询本身进行加密。为了使用对称密钥加密算法来加密验证质询,该请求应该是web请求(例如,针对要被包括在网页中的数字组成部分的请求)。其他要求可能包括由服务器丢(drop)入浏览器的cookie存储中的cookie、服务器通过cookie匹配过程经由服务器自身的cookie识别浏览器、服务器正确标记服务器的cookie以阻止cookie被盗以及服务器尚未与其他方共享服务器的cookie值。另外,服务器应在服务器的cookie值中具有足够的熵,以唯一地标识每个浏览器,使得其他方无法确定服务器的cookie值。在一些实施方式中,服务器可以是需求侧平台(dsp)广告网络的一部分,并且响应数据可以是要在客户端设备上呈现给用户的广告。

图5是客户端设备可以执行以回答验证质询的动作的框图。在502处,客户端设备接收利用验证质询来安全保护的数据。例如,客户端设备可以从生成验证质询的服务器或从中间服务器接收验证质询。在504处,客户端设备使用客户端设备的私钥解密该验证质询。当验证质询被正确解密后,客户端设备能够在验证质询内检索数据。在506处,客户端设备验证该验证质询。客户端设备将作为验证质询的部分而接收到的属性与由客户端设备或代表客户端设备生成的原始数据请求的属性进行比较。如果在验证质询中接收到的属性与数据请求的属性相匹配(例如,环境的属性),则客户端设备确定验证质询对应于由客户端设备或代表客户端设备生成的数据请求。如果在验证质询中接收到的属性与数据请求的属性不匹配,则客户端设备未验证该验证质询(例如,停止处理验证质询并抑制回答验证质询)。在508处,客户端设备检索唯一值。如在上面所讨论的,唯一值可以是例如数字、短语、十六进制数字、多位数字、词或其他合适的值。如果不同的客户端设备接收验证质询连同响应数据(例如,因为中间服务器已经欺诈性地重定向响应(即,响应数据和验证质询)),则该不同的客户端设备将无法正确执行解密操作并正确回答验证质询。

在510处,客户端设备将唯一值转换为质询回答。例如,客户端设备可以对唯一值执行密码散列算法。当唯一值正确时(即,当唯一值表示如在请求中指定的将在其中使用响应数据的上下文)时,转换方法将产生与期望响应相同的密码散列值。在一些实施方式中,转换方法与服务器转换方法同步(例如,经由相同的密码散列算法)。当唯一值不正确时,转换方法将不会产生与期望响应相同的密码散列值,这指示客户端设备的上下文不同于请求中指定的上下文。

在512处,客户端设备将质询回答与期望响应进行比较。在一些实施方式中,客户端设备可以检索作为验证包的一部分而接收到的脚本,并执行脚本以执行比较。客户端设备可以将转换后的唯一值提交给脚本。图6图示脚本可以执行以确定是提供还是阻止对响应数据访问的动作。在602处,脚本接收质询响应。例如,脚本可以接收作为输入的解密后的唯一值的密码散列。在604处,脚本检索期望响应数据。例如,脚本可以检索在服务器上散列的唯一值的加密散列。

在606处,脚本将所检索的期望响应数据与质询响应进行比较,该质询响应也被称为由客户端设备生成的回答。例如,脚本可以比较两个密码散列。在608处,脚本确定所检索的期望响应数据(例如,服务器生成的密码散列)是否与质询响应中的数据(例如,客户端设备上生成的密码散列)匹配。如果密码散列匹配,则过程600移至610,在610处脚本向客户端设备提供对响应数据的访问。如果密码散列不匹配,则过程600移至612,在612处脚本阻止客户端设备访问响应数据。因此,客户端设备生成质询响应,确定质询响应是否是对验证质询的有效响应,并且响应于确定质询响应是对验证质询的有效响应,访问响应数据。

当由客户端设备生成的回答正确地响应验证质询并且客户端设备验证在验证质询中指定的环境的一个或多个属性时,向客户端设备提供对响应数据的访问。但是,当客户端设备生成的回答未正确响应验证质询或客户端设备未验证验证质询中指定的环境的一个或多个属性时,将阻止客户端设备访问响应数据。

在对响应数据的至少一部分进行加密的实施方式中,客户端设备(例如,脚本)可以例如使用对称密钥加密算法(例如,高级加密标准(aes))对该数据进行解密。这些实施方式可能要求该请求是web请求(例如,对要被包括在网页中的数字组成部分的请求)。其他要求可以包括由服务器丢入浏览器的cookie存储中的cookie、服务器通过cookie匹配过程经由服务器自身的cookie识别浏览器、服务器正确标记服务器的cookie以阻止cookie被盗以及服务器尚未与其他方共享服务器的cookie值。另外,服务器在服务器的cookie值中应具有足够的熵,以唯一地标识每个浏览器,并且使得其他方无法确定服务器的cookie值。在一些实施方式中,服务器可以是需求侧平台(dsp)广告网络的一部分,并且响应数据可以是要在客户端设备上呈现给用户的广告。

在其中使用对称密钥加密算法对响应数据的至少一部分进行加密的实施方式中,客户端设备可以将解密的唯一数字用作针对响应数据的解密密钥。即,客户端设备可以使用对称密钥加密算法来解密响应数据,其中唯一数据是解密密钥。

再次参考图5,在514处,客户端设备基于比较来制定渲染策略。如在上面所讨论的,质询验证系统可以在许多不同的场景中实现。渲染策略可用于在浏览器或其他应用中渲染任何类型的数据。例如,如果该应用是游戏应用,则可以在游戏内部渲染附加的游戏数据。在另一个示例中,如果质询验证系统是在广告上下文中实现,则该系统可以包括各种其他组成部分和步骤。例如,原始数据请求可以包括客户端设备的广告标识符。广告标识符唯一地向其他系统标识设备而不需要设备或用户特定的信息。在广告上下文中,脚本可以是使得能够访问广告的广告脚本。因此,渲染策略使广告能够在适当的环境下呈现给用户。即,渲染策略可以基于要呈现广告的环境是否与原始数据请求中的属性匹配来使得能够实现或阻止将广告呈现给用户。在一些实施方式中,如果密码散列不匹配,则渲染策略可以指示应渲染占位符。

如果质询验证系统在出行上下文中被实现,则响应数据可以是数字组成部分,该数字组成部分包括可用于从原始数据请求中指示的开始位置向结束位置驾驶送客户端设备的用户的驾驶员信息。在一些实施方式中,当正确地回答验证质询时,可以使得客户端设备能够联系车辆的驾驶员或得到对车辆的前进的更新。

在一些实施方式中,可以使用一个或多个应用编程接口(api)来实现验证质询系统。可以构建可以安装在客户端设备和服务器两者上的api。另外或替代地,可以构建两个api,一个用于服务器,并且另一个用于客户端设备。客户端设备上的验证质询系统可以包括编程以将数据请求提交给服务器侧上的api。另外,可以为中间服务器创建执行代码,以向服务器提交数据请求。可以为服务器创建第二api,以接收数据请求,生成验证质询并将验证质询传输到客户端设备。在一些实施方式中,此api可以与请求api相结合。

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

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

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

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

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

作为示例,适合于执行计算机程序的处理器包括通用和专用微处理器和任何种类的数字计算机中的任意一个或者多个处理器两者。通常,处理器将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的必要元件是用于依照指令来执行动作的处理器以及用于存储指令和数据的一个或多个存储器设备。通常,计算机还将包括或者在操作上耦合以从用于存储数据的一个或多个大容量存储设备接收数据,或者将数据转移到用于存储数据的一个或多个大容量存储设备,或者兼而有之,所述一个或多个大容量存储设备例如是磁盘、磁光盘或光盘。然而,计算机不必具有这样的设备。此外,计算机可被嵌入在另一设备中,所述另一设备例如移动电话、个人数字助理(pda)、移动音频或视频播放器、游戏控制台、全球定位系统(gps)接收器或便携式存储设备(例如,通用串行总线(usb)闪存驱动器),仅举几例。适合于存储计算机程序指令和数据的设备包括所有形式的非易失性存储器、介质和存储器设备,作为示例包括:半导体存储器设备,例如eprom、eeprom和闪速存储器设备;磁盘,例如内部硬盘或可移动盘;磁光盘;以及cdrom和dvd-rom盘。处理器和存储器可由专用逻辑电路补充,或者被并入在专用逻辑电路中。

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

本说明书中描述的主题的实施例可被实现在计算系统中,所述计算系统包括后端组件,例如,作为数据服务器;或者包括中间件组件,例如,应用服务器;或者包括前端组件,例如,具有用户可用来与本说明书中描述的主题的实施方式交互的图形用户界面或web浏览器的客户端计算机;或者包括一个或多个这样的后端、中间件或前端组件的任何组合。系统的组件可通过任何形式或介质的数字数据通信来互连,所述数字数据通信例如是通信网络。通信网络的示例包括局域网(“lan”)和广域网(“wan”)、互连网络(例如,互联网)和对等网络(例如,自组织对等网络)。

计算系统可包括客户端和服务器。客户端和服务器一般地彼此远离并且通常通过通信网络来交互。客户端和服务器的关系借助于在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序而产生。在一些实施例中,服务器向客户端设备传输数据(例如,html页面)(例如,用于向与客户端设备交互的用户显示数据并且从与客户端设备交互的用户接收用户输入的目的)。可在服务器处从客户端设备接收在客户端设备处生成的数据(例如,用户交互的结果)。

虽然本说明书包含许多具体实施方式细节,但是这些不应该被解释为对任何发明的或可以要求保护的范围构成限制,而是相反被解释为特定于特定发明的特定实施例的特征的描述。也可在单个实施例中相结合地实现在本说明书中在单独的实施例的上下文中描述的某些特征。相反地,也可单独地或者按照任何适合的子组合在多个实施例中实现在单个实施例的上下文中描述的各种特征。此外,尽管特征可以在上面被描述为按照某些组合起作用并且甚至最初被如此要求保护,但是可在一些情况下从该组合中除去来自要求保护的组合的一个或多个特征,并且所要求保护的组合可以针对子组合或子组合的变化。

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

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

再多了解一些
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1