一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

用于安全标识检索的系统和方法与流程

2022-06-08 23:42:44 来源:中国专利 TAG:

用于安全标识检索的系统和方法


背景技术:

1.人们可以在线购买商品,而不是去实体店。当人们正在访问不同的网页和域进行购物时,在许多情况下,与网页和域相关联的第三方可能能够识别用于访问网页的计算设备并使用各种技术(例如,第三方cookie(小甜饼))识别有关计算设备的信息。当人们使用他们的计算设备访问网页和域时,第三方通常是向人们提供内容的内容提供商。经由内容服务器,第三方可以将信息连同标识与存储的信息相关联的计算设备的设备标识符一起存储在内容服务器的数据库中。
2.随着人们继续在线购物,越来越多的第三方可以通常在人们不知道的情况下获得关于他们的计算设备的信息。当计算设备访问更多网页时,第三方可以使用存储在内容服务器上的信息向计算设备提供内容。虽然存在要求第三方根据请求确认他们是否拥有关于计算设备的信息的法律,但如果第三方还没有关于该设备的信息,计算设备可以在提出请求时向第三方提供设备信息(例如,与计算设备相关联的设备标识符)。此外,第三方可能不愿意可靠地回答来自计算设备的请求,因为恶意方可能窃听请求以确定第三方拥有多少信息。


技术实现要素:

3.本文所讨论的系统和方法提供了安全标识检索的方法,因此计算设备无需向内容服务器或内容提供商提供在请求确定内容服务器或内容提供商是否已经收集了关于计算设备的数据时内容服务器或内容提供商还没有的信息。计算设备可以计算特定于每个计算设备并且在一些实现方式中,基于具有随时间连续改变的值的周期性变量的查询令牌。计算设备可以与各种内容服务器同步,因此内容服务器可以使用与计算设备相同的周期性变量和加密技术来计算内容服务器的数据库中的设备标识符的存储的查询令牌。为了避免内容服务器和计算设备之间的任何同步错误,在一些实现方式中,内容服务器可以计算内容服务器的数据库中的每个设备标识符的多个查询令牌。当内容服务器接收包括查询令牌的请求时,内容服务器可以将查询令牌与数据库中的存储的查询令牌进行比较以标识匹配。如果内容服务器标识出匹配,则内容服务器可以发送指示找到匹配的响应信号(例如,答案)。内容服务器还可以在响应信号中包括关于与匹配的存储的查询令牌相关联的计算设备的特征的标识。如果内容服务器不能标识与查询的查询令牌匹配的存储的查询令牌,则内容服务器可以向计算设备发送与指示未找到匹配的查询相关联的响应信号。
4.为了保护查询内容服务器的计算设备的隐私和内容服务器本身的数据机密性(例如,保持内容服务器的数据量和数据收集能力私有),内容服务器可以确认计算设备与内容服务器接收的查询相关联,并对内容服务器发送给查询计算设备的任何答案进行加密。内容服务器可以通过对由计算设备生成来对它们的查询进行签名的数字签名使用与计算设备的设备标识符相关联的公钥来验证计算设备的身份。内容服务器可以使用与计算设备相关联的公钥来加密对计算设备的答案。因此,只有与它们的设备标识符相关联的计算设备可以从内容服务器获得关于内容服务器是否已经收集了关于它们的数据的信息。在一些实
现方式中,指示不匹配的响应信号可以被填充到预定长度,可以包括默认或空信息,和/或可以被散列或加密,使得否定响应信号看起来类似于对任何窃听设备或对试图探测信息的恶意计算设备的肯定响应信号。
5.本文所述的系统和方法也可以被浏览器用来确定哪些域已经收集了关于浏览器的数据。浏览器可以使用与上述类似的加密技术,但用域和cookie的值来计算cookie查询令牌。域可以使用浏览器用于计算cookie查询令牌的相同技术和值来计算域已为其存储数据的浏览器的存储的cookie查询令牌。域可以将它们从浏览器接收到的cookie查询令牌与存储的cookie查询令牌进行比较,以确定域是否已为浏览器存储数据。域可以在正在托管域的服务器处存储关于浏览器的数据。域可以向浏览器发送响应信号,指示是否存储关于浏览器的任何信息以及信息的类别。域可以加密响应信号,因此恶意第三方可能无法确定域收集了多少或什么类型的数据。
6.有利地,通过实现本文讨论的系统和方法,计算设备可以安全地查询内容服务器以标识内容服务器是否具有关于计算设备的信息,而无需向内容提供商提供标识内容服务器尚未存储的信息的任何设备。查询令牌可能不断改变,因此不具有查询设备的设备标识符的内容服务器不能获得关于设备的任何持久信息。类似地,系统可以通过使用散列或加密响应和填充否定确认来防止对信息的探测尝试。此外,设备和内容服务器之间的通信可以是安全的,以保护内容服务器不向恶意第三方提供指示内容服务器已经收集了多少信息的数据。因此,所讨论的系统和方法提供了计算设备和内容服务器之间的安全通信方法,因此计算设备可以在不提供任何新的设备标识信息的情况下从内容服务器请求信息,并且内容服务器可以在不向恶意第三方提供数据的情况下进行响应。
7.在本文所述的一个方面,描述了用于安全标识检索的方法。所述方法可以包括由服务器设备检索周期性变量的值以及由所述服务器设备根据对应的多个客户端设备标识符和所述周期性变量的所述值计算多个查询令牌。每个查询令牌可以与第一数据库中的对应客户端设备标识符相关联。所述方法还可以包括由所述服务器设备从第一客户端设备接收根据所述第一客户端设备的客户端设备标识符和所述周期性变量的所述值计算的第一查询令牌;由所述服务器设备标识所述第一数据库中的所述计算的多个查询令牌中与所述第一查询令牌匹配的第二查询令牌;以及响应于所述标识,由所述服务器设备检索所述相关联的客户端设备标识符。所述方法还可以包括由所述服务器设备根据所述相关联的客户端设备标识符从第二数据库中检索所述第一客户端设备的一个或多个特征;以及由所述服务器设备向所述客户端设备发送所述检索的一个或多个特征。
8.在一些实现方式中,所述方法还可以包括由所述服务器设备基于所述计算的多个查询令牌生成概率数据结构;以及由所述服务器设备将所述第一查询令牌与所述概率数据结构进行比较。标识所述第二查询令牌可以是响应于与所述概率数据结构匹配的所述第一查询令牌而执行的。
9.在一些实现方式中,所述概率数据结构可以包括布隆过滤器。在一些实现方式中,所述周期性变量可以包括当前日期、证券交易所收盘价或可相互验证的值。在一些实现方式中,计算所述多个查询令牌可以包括根据所述对应的多个客户端设备标识符和所述周期性变量的先前值计算第二多个查询令牌,所述第二多个查询令牌与所述对应的客户端设备标识符相关联存储在所述第一数据库中。
10.在一些实现方式中,所述方法还可以包括由所述服务器设备从所述第一数据库中移除第三多个查询令牌,所述第三多个查询令牌是根据所述多个客户端设备标识符和所述周期性变量的两倍先前值计算的。在一些实现方式中,计算所述多个查询令牌还包括为所述多个查询令牌中的每一个计算所述周期性变量的所述值和所述对应的客户端设备标识符的组合的单向散列(例如,由美国国家标准与技术研究院发布的任何散列函数,诸如安全散列算法-256)。在一些实现方式中,检索所述第一客户端设备的所述一个或多个特征还包括从所述第二数据库检索所述第一客户端设备的公共加密密钥。发送所述检索到的一个或多个特征还可以包括用所述第一客户端设备的所述检索到的公共加密密钥对所述一个或多个特征进行加密。
11.在一些实现方式中,所述方法还可以包括由所述服务器设备从第二客户端设备接收根据所述第二客户端设备的客户端设备标识符和所述周期性变量的所述值计算的第三查询令牌;以及由所述服务器设备确定所述第一数据库中不存在对应于所述第三查询令牌的条目。
12.在一些实现方式中,所述方法还可以包括响应于所述确定所述第一数据库中不存在对应于所述第三查询令牌的条目,由所述服务器设备向所述第二客户端设备发送随机数据串或空数据串中的一个。在一些实现方式中,所述多个客户端设备标识符可以包括cookie值。在一些实现方式中,所述多个查询令牌可以是根据所述周期值、所述cookie值和多个域标识符来计算的,每个cookie值对应于所述多个域标识符中的域标识符。在一些实现方式中,第一cookie值可以与第一域相关联并且与第二域共享。在一些实现方式中,所述服务器设备可以与所述第一域或所述第二域中的一个相关联,并且第二服务器设备与所述第一域或所述第二域中的另一个相关联。
13.在一些实现方式中,检索所述相关联的客户端设备标识符还可以包括检索第一cookie值和第一域标识符。发送所述检索到的一个或多个特征还可以包括由与所述第二域相关联的所述服务器设备用所述第一cookie值和所述第一域标识符对所述检索到的一个或多个特征进行加密。
14.在本文所述的另一方面,描述了用于安全标识检索的服务器设备。所述服务器设备可以包括与多个客户端设备中的第一客户端设备通信的网络接口;存储第一数据库和第二数据库的存储设备,所述第一数据库包括多个查询令牌和对应的多个相关联的客户端设备标识符,所述第二数据库包括所述多个客户端设备标识符和相关联的设备特征;以及处理器。所述处理器可以被配置为检索周期性变量的值,根据所述对应的多个客户端设备标识符和所述周期性变量的所述值计算所述多个查询令牌,并且经由所述网络接口从所述第一客户端设备接收根据所述第一客户端设备的客户端设备标识符和所述周期性变量的所述值计算的第一查询令牌。所述处理器可以进一步被配置为标识所述第一数据库中的所述计算的多个查询令牌中与所述第一查询令牌匹配的第二查询令牌并且响应于所述标识,从所述第一数据库检索所述相关联的客户端设备标识符。所述处理器可以进一步被配置为根据所述相关联的客户端设备标识符从所述第二数据库中检索所述第一客户端设备的一个或多个特征,并且经由所述网络接口向所述客户端设备发送所述检索的一个或多个特征。
15.在一些实现方式中,所述处理器可以进一步被配置为基于所述计算的多个查询令牌生成概率数据结构;并且将所述第一查询令牌与所述概率数据结构进行比较。标识所述
第二查询令牌可以是响应于与所述概率数据结构匹配的所述第一查询令牌而执行的。
16.在一些实现方式中,所述处理器可以进一步被配置为根据所述对应的多个客户端设备标识符和所述周期性变量的先前值计算第二多个查询令牌,所述第二多个查询令牌与所述对应的客户端设备标识符相关联存储在所述第一数据库中。在一些实现方式中,所述处理器可以进一步被配置为从所述第一数据库中移除第三多个查询令牌,所述第三多个查询令牌是根据所述多个客户端设备标识符和所述周期性变量的两倍先前值计算的。在一些实现方式中,所述处理器可以进一步被配置为针对所述多个查询令牌中的每一个,计算所述周期性变量的所述值和所述对应的客户端设备标识符的组合的单向散列。
17.一个方面的可选特征可以与任何其他方面组合。
附图说明
18.在附图和以下具体实现方式中阐述一个或多个实现方式的细节。从说明书、附图和权利要求书中,本公开的其他特征、方面和优点将变得显而易见,其中:
19.图1是根据一些实现方式的两个序列的框图,每个序列包括客户端设备查询内容服务器以确定内容服务器是否已收集关于客户端设备的数据;
20.图2是根据一些实现方式的用于安全地查询内容服务器的系统的实现方式的框图;以及
21.图3是示出根据一些实现方式的用于安全标识检索的方法的流程图。
22.在各个附图中,相同的附图标记和标识表示相同的组件。
具体实施方式
23.当用户浏览互联网时,内容服务器可以获得用户用来浏览的关于计算设备的设备标识符和各种其他数据,而用户通常不知道内容服务器已经收集了这样的数据。通过获得设备标识符和各种其他数据,内容服务器可以单独标识计算设备以向它们提供目标内容(例如,基于关于计算设备的数据的内容)。因为计算设备的设备标识符可以在计算设备访问各种网页时由内容服务器检索和存储,所以使用计算设备的人可能无法阻止他们的计算设备被内容服务器标识。虽然计算设备可以查询内容服务器以确定内容服务器是否已经收集了关于计算设备的数据,但内容服务器通常基于计算设备的设备标识符来存储数据。因此,在此类实现方式中,向内容服务器发送对于设备标识的查询的客户端设备可能无法在不提供客户端设备的设备标识符以供内容服务器标识的情况下发送查询。一旦内容服务器已经标识了设备标识符,内容服务器就可以存储设备标识符以在将来向计算设备提供目标内容。
24.例如,在一些实现方式中,首先参考图1,图示了两个序列102和110的框图,每个序列102和110包括设备向内容服务器发送查询,询问内容服务器是否存储了关于该设备的数据,并且如果内容服务器存储了关于该设备的数据,则询问数据的类型或类别。序列102可以是客户端设备104向内容服务器106发送查询以指示内容服务器106是否已收集关于客户端设备104的数据的序列。当客户端设备104浏览互联网并查看各种网页和/或域时,内容服务器106可能已经收集了关于客户端设备104的数据。客户端设备104可以在查询中包括客户端设备104的设备标识符,因此内容服务器106可以标识内容服务器106已经存储并且与
客户端设备104相关联的数据。
25.在序列102,客户端设备104可以向内容服务器106发送查询,询问内容服务器106是否具有关于客户端设备104的数据。客户端设备104可以在查询中包括客户端设备104的设备标识符(例如,设备8),所述设备标识符可以单独标识客户端设备104。内容服务器106可以包括数据库108,所述数据库108包括内容服务器106已经为其收集数据的各种设备的设备标识符(例如,设备1、设备2、设备3等)的列表。内容服务器106可以处理数据库108并将查询的设备标识符与数据库108中的设备标识符进行比较。如果内容服务器106在设备数据库108中标识匹配的标识符,则内容服务器106可以向客户端设备104发送指示内容服务器106已经收集了关于客户端设备104的数据的信号。然而,如果内容服务器106没有在数据库108中标识匹配的标识符,则内容服务器106可以向客户端设备104发送指示内容服务器106还未收集到关于客户端设备104的数据的信号。
26.在一些实现方式中,如果内容服务器106确定在数据库108中没有匹配的设备标识符,则内容服务器106可以将客户端设备104的设备标识符添加到数据库108。内容服务器106可以通知客户端设备104它已经将设备标识符添加到数据库108,或者在一些情况下,指示内容服务器106没有关于客户端设备104的数据,但仍然存储客户端设备104的设备标识符。因此,通过查询内容服务器106以确定内容服务器是否具有关于客户端设备104的数据,客户端设备104进而可能无意或不合需要地向内容服务器106提供关于客户端设备104的数据(例如,客户端设备104ip地址)。在一些实现方式中,内容服务器106可能能够获得关于客户端设备104的附加信息连同查询,诸如设备类型、浏览器类型、操作系统类型或其他这样的信息(例如来自http请求中的元数据,诸如用户代理字段、设备是否具有触摸屏的标识(指示设备可能是移动设备)等)。
27.相反,序列110示出了客户端设备112向内容服务器114发送类似查询的示例序列。然而,在序列110中,客户端设备112可以在查询中向内容服务器114发送加密的(或加密散列的,例如经由sha256)设备标识符。具体地,在序列110的一些实现方式中,客户端设备112可以向内容服务器114发送查询,询问内容服务器114是否具有关于客户端设备104的数据,而不包括明确的或未加密的设备标识符或其他数据作为查询的一部分。为了发送查询,客户端设备112可以首先基于客户端设备112的设备标识符来计算查询令牌。查询令牌还可以基于周期性变量(例如,每小时、每天、每周或任何其他此类间隔更新的变量)的值和内容服务器114和客户端设备112两者已知的加密技术(例如,像sha256的单向散列技术)来计算。周期性变量可以是可由客户端设备112和内容服务器114验证的可相互验证的变量。如以下将更详细描述的,在一些实现方式中,客户端设备112可以通过将客户端设备112的设备标识符与周期性变量的值连接并执行客户端设备112和内容服务器114两者已知的加密技术来计算查询令牌。客户端设备112可以计算查询令牌(例如,所示示例中的27d2c8bc4)并将查询令牌与查询一起发送到内容服务器114。
28.内容服务器114可以是收集关于诸如客户端设备112的客户端设备的数据并将数据存储在内容服务器114的数据库116中的服务器。内容服务器114可以收集和存储与内容服务器114已为其存储数据的每个客户端设备相关联的设备标识符。内容服务器114可以为每个设备标识符计算多个存储的查询令牌。内容服务器114可以使用与客户端设备112相同的周期性变量和相同的加密技术的值来计算存储的查询令牌。在一些实现方式中,内容服
务器114可以为每个设备标识符存储多个存储的查询令牌,以防内容服务器114和客户端设备112没有完全同步(例如,依赖于来自不匹配的不同源(诸如提供不同时间的时钟)的数据),如果内容服务器114针对基于不同于客户端设备112用于计算查询令牌的值的周期性变量的值计算的所存储的查询令牌搜索数据库116,这可能导致伪报错。
29.内容服务器114可以将客户端设备112发送到内容服务器114的查询令牌与数据库116中存储的查询令牌进行比较。如果内容服务器114标识出匹配的查询令牌,则内容服务器114可以向客户端设备112发送指示找到了匹配的信号。在一些实现方式中,内容服务器114还可以检索先前存储的关于客户端设备112的信息(例如,来自单独的数据库或与同一数据库中的令牌标识符相关联),并且可以发送指示内容服务器114已经为客户端设备112收集的数据的类别的信号。然而,如果内容服务器114确定不存在匹配值,则内容服务器114可以向客户端设备112发送指示未找到匹配的信号,并且因此,内容服务器114没有收集关于客户端设备112的数据。客户端设备112可以向任意数量的内容服务器发送类似的查询以确定已经收集了关于客户端设备112的数据的内容服务器的数量。
30.有利地,如序列110所示,因为客户端设备112对客户端设备112的设备标识符使用加密技术,所以客户端设备可以将查询发送到各种内容服务器,而无需单独标识其自身并将与客户端设备112相关联的设备标识符提供给内容服务器。同时已经收集了关于客户端设备112的数据的内容服务器可能能够基于客户端设备112发送的查询令牌来标识与客户端设备112相关联的设备标识符,这些内容服务器已经在数据库中存储了客户端设备112的设备标识符。由于在设备标识符上执行的加密技术,确定它们在内容服务器的数据库中不具有匹配的查询令牌的内容服务器可能无法从查询令牌中标识客户端设备112。例如,在序列110中,虽然内容服务器可能能够将标识符“27d2c8bc4”添加到其数据库中,但因为该标识符是基于内容服务器未知的周期性变量和设备标识符计算的,所以它可能无法计算后续标识符(例如,用于周期性标识符的下一个值)。因此,任何获取关于内容服务器先前不知道的客户端设备的信息的尝试最多只能在短时间内有效。因此,这些内容服务器可能仅能够将指示数据库中不存在匹配查询的信号发送回客户端设备112,而不标识发送查询的设备的任何信息(例如,设备标识符)。
31.例如,现在参考图2,根据一些实现方式,示出了用于安全标识检索的系统200的实现方式。系统200被示为包括客户端设备202、网络216和内容服务器218。客户端设备202可以通过访问与不同第三方相关联的网页和域来浏览互联网。客户端设备202可以通过网络216浏览互联网。网络216可以包括同步或异步网络。当客户端设备202浏览互联网时,内容服务器(例如,内容服务器218)可以收集和存储关于客户端设备202的数据。所述数据可以包括客户端设备202的一个或多个特征(地理位置、访问的网页、访问的网页的内容、ip地址等)。内容服务器可以标识与客户端设备202相关联的设备标识符并将设备标识符存储在内容服务器的数据库中。客户端设备202可以向(例如,查询)内容服务器218发送请求,以标识内容服务器218是否已经存储了关于客户端设备202的特征(例如,数据)。
32.客户端设备202可以包括任何类型和形式的媒体设备或计算设备,包括台式计算机、膝上型计算机、便携式计算机、平板计算机、可穿戴计算机、嵌入式计算机、智能电视机、机顶盒、控制台、物联网(iot)设备或智能家电,或任何其他类型和形式的计算设备。(一个或多个)客户端设备可以不同地称为客户端、设备、客户端设备、用户设备、计算设备、匿名
计算设备或任何其他此类术语。(一个或多个)客户端设备可以通过任何适当的网络接收数据,包括局域网(lan)、广域网(wan),诸如互联网、卫星网络、有线网络、宽带网络、光纤网络、微波网络、蜂窝网络、无线网络或这些或其他此类网络的任何组合。在许多实现方式中,网络可以包括可以是相同或不同类型的多个子网,并且可以包括多个附加设备(未示出),包括网关、调制解调器、防火墙、路由器、交换机等。
33.客户端设备202可以包括一个或多个客户端设备,所述客户端设备被配置为从内容服务器(例如,内容服务器218)安全地检索标识,所述标识指示内容服务器是否已经收集了关于客户端设备202的数据。在一些实现方式中,客户端设备202被示为包括处理器204和存储器206。客户端设备202内的一个或多个组件可以促进客户端设备202内的每个组件与诸如内容服务器218和其他内容服务器(未示出)的外部组件之间的通信。
34.在一些实现方式中,处理器204可以包括一个或多个处理器,所述处理器被配置为在客户端设备202内的存储器206中的模块和/或组件上执行指令。在一些实现方式中,存储器206被示为包括变量检索器208、查询令牌计算器210、浏览器212和解密器214。存储器206可以包括任何数量的组件。通过在存储器206中的模块上执行指令以执行每个组件208、210、212和214的操作,处理器204可以防止内容服务器218(或任何其他内容服务器)从客户端设备202发出的请求中标识客户端设备202以确定内容服务器218是否已经收集了关于客户端设备202的数据。
35.简而言之,处理器204可以计算查询令牌,如果内容服务器218还没有客户端设备202的设备标识符,所述查询令牌在没有向内容服务器218提供客户端设备202的设备标识符(或没有提供可能仅在有限的时间段内有效并且可能无法从其中计算其他后续标识符或令牌的散列标识符或令牌)的情况下唯一标识客户端设备202。处理器204可以检索随时间变化的周期性变量的值。处理器204可以将周期性变量的值与客户端设备202的设备标识符连接以计算连接标识符,或者可以以其他方式组合周期性值和设备标识符(例如,通常称为连接标识符的乘法、按位异或等)。处理器204可以在查询中将连接标识符发送到内容服务器218以确定内容服务器218是否具有关于客户端设备202的一个或多个特征。处理器204可以从内容服务器218接收加密的答案,用客户端设备202的公钥加密,并使用客户端设备202特定的私钥解密所述答案。在一些实现方式中,答案或响应可以不被加密(例如,在其中使用没有附加数据的否定响应或肯定响应的一些实现方式中,或者在其中使用诸如传输层安全性的其他安全措施来防止截获的一些实现方式中)。
36.存储器206被示为包括变量检索器208。在一些实现方式中,变量检索器208可以包括应用程序、服务器、服务、守护进程、例程或其他可执行逻辑以检索周期性变量的值。在某些情况下,变量检索器208可以从客户端设备202的管理员或用户接收请求,以查询各种内容服务器218以确定哪些内容服务器已经收集了关于客户端设备202的数据。在接收到请求时,变量检索器208可以检索周期性变量的值。
37.周期性变量可以是具有随时间连续改变并且在某些情况下由管理员确定的值的变量,使得两个独立方可以在给定相同信息时独立地检索周期性变量的相同值。所述值可以是包括字母数字字符和/或符号的字符串。例如,周期性变量可以是芝加哥的当前时间(例如,9:00pm或21:00)。如果两个不同位置的两方可以同时检索芝加哥的当前时间,则双方可能会检索到相同的值。如果双方在初始检索后五分钟检索了芝加哥的当前时间,则双
方将检索到与第一次检索的时间不同的时间,但双方将检索到彼此相同的时间。在该示例中,时间可以是值。周期性变量的其他示例包括但不限于指定时区中的当前日期(例如6/21/19)、纽约证券交易所的股票的收盘价(例如$200)、以设定频率连续增加的随机数值等。因此,周期性变量可以包括任何信息或信息的组合,其周期性地更新并且可由客户端设备和内容服务器两者独立地确定或检索。
38.如所描述的,周期性变量的值可以以任何形式表示并且可以包括任何类型的字符或符号。例如,纽约证券交易所的股票的现值可以用字符串$200或200表示,当前日期可以用字符串6/21/19或6-21-19表示,并且当前时间可以用字符串9:00pm或21:00表示。所述值可以任何形式表示。管理员可以确定周期性变量的值的类型和形式。
39.取决于周期性变量,变量检索器208可以通过从客户端设备202的各种数据库或从通过网络216的各种服务器检索周期性变量的值来检索它们。例如,如果周期性变量是芝加哥的当前日期,则客户端设备202可以基于芝加哥的当前日期维护内部日历并从内部日历中标识当前日期。在一些情况下,变量检索器208可以通过网络216从服务器标识周期性变量的值。在一个示例中,变量检索器208可以从通过网络216存储这种数据的服务器标识和检索纽约证券交易所的股票的当前价值。变量检索器208可以标识和检索来自任何源的值。
40.存储器206被示为包括查询令牌计算器210。在一些实现方式中,查询令牌计算器210可以包括应用程序、服务器、服务、守护进程、例程或其他可执行逻辑以计算查询令牌并将它们发送到内容服务器218。查询令牌可以是与周期性变量的值连接的设备标识符的单向散列。查询令牌计算器210可以标识由变量检索器208检索的周期性变量的值以及与客户端设备202相关联的设备标识符。查询令牌计算器210可以将周期性变量的值连接到设备标识符的末尾或开头以获得连接的设备标识符,或者可以执行其他操作来组合周期性变量和设备标识符(例如乘法、加法、减法等。)。在一些情况下,查询令牌计算器210可以将周期性变量的值的多个实例连接到设备标识符。
41.查询令牌计算器210可以对连接的设备标识符执行加密技术以获得查询令牌。加密技术可以是单向加密技术,诸如单向散列(例如,sha-1、sha-256、sha-512、md5等)。有利地,通过对连接的设备标识符使用单向加密技术,查询令牌计算器210可以计算不能被第二方或设备(例如,内容服务器218)解密以恢复明文的设备标识符的查询令牌(尽管如果第二方或设备知道设备标识符是什么、周期性变量的值是什么以及使用哪种加密技术来计算查询令牌,则第二方或设备可以生成具有匹配值的令牌,并且可以比较生成的令牌和查询令牌以标识底层数据(例如设备标识符和周期性变量值)匹配。因此,如果内容服务器还没有客户端设备202的设备标识符,则客户端设备202可以将查询令牌发送到任何内容服务器而不向任何内容服务器提供客户端设备202的设备标识符。
42.当向内容服务器218发送查询令牌时,查询令牌计算器210或客户端设备202的任何其他组件可以使用与客户端设备202相关联的私钥对包含查询令牌的消息进行数字签名。如下所述,如果内容服务器218已经收集了关于客户端设备202的数据,则内容服务器218可以检索与客户端设备202的设备标识符相关联的公钥,并且基于数字签名,验证包括查询令牌的消息是从与设备标识符相关联的客户端设备接收到的。如果内容服务器218确定所述消息不是由客户端设备202发送的(例如,如果数字签名验证失败),则内容服务器218可以不响应所述消息和/或拆除内容服务器218具有的与发送消息的计算设备的任何
tcp/ip套接字连接。
43.查询令牌计算器210可以在计算查询令牌时将计算的查询令牌发送到内容服务器218。在一些实现方式中,查询令牌计算器210可以在从可能已经收集了关于查询令牌计算器210的数据的内容服务器的列表中标识出内容服务器218之后将计算的查询令牌发送到内容服务器218。查询令牌计算器210可以从通过网络216存储列表的服务器下载内容服务器的列表。查询令牌计算器210可以标识内容服务器列表上的每个内容服务器并将查询令牌发送到所标识的内容服务器中的每一个或一部分。客户端设备202可以从列表上的每个内容服务器接收答案并且确定已经收集了关于客户端设备202的数据的内容服务器的数量。
44.在一些实现方式中,内容服务器218可以包括一个或多个服务器或处理器,所述服务器或处理器被配置用于在确定内容服务器218是否已经收集关于各种计算设备(例如,客户端设备202)的数据时进行安全标识检索。在一些实现方式中,内容服务器218被示为包括处理器220和存储器222。简而言之,通过处理器220,内容服务器218可以被配置为检索周期性变量的值,计算与内容服务器218已为其收集数据的客户端设备相关联的存储查询令牌,从客户端设备接收查询令牌,比较所述查询令牌与数据库中存储的查询令牌,标识数据库中匹配的存储查询令牌,从第二数据库检索与匹配的存储查询令牌相关联的设备标识符,基于设备标识符检索客户端设备202的一个或多个特征,并将一个或多个特征发送到客户端设备202。内容服务器218内的一个或多个组件可以促进内容服务器218内的每个组件与诸如客户端设备202的外部组件之间的通信。内容服务器218可以包括多个连接的设备(例如,作为服务器组、一组刀片服务器或多处理器系统),每个设备可以提供必要操作的部分。
45.在一些实现方式中,处理器220可以包括一个或多个处理器,所述处理器被配置为在内容服务器218内的存储器222中的模块或组件上执行指令。在一些实现方式中,处理器220可以执行存储器222内的模块。在一些实现方式中,存储器222被示为包括变量检索器224、查询令牌计算器226、结构生成器228、查询令牌匹配器230、加密器232、服务器应用程序234、标识符数据库236和特征数据库238。
46.存储器222被示为包括变量检索器224。在一些实现方式中,变量检索器224可以包括应用程序、服务器、服务、守护进程、例程或其他可执行逻辑以检索周期值的值。变量检索器224可以以类似于客户端设备202的变量检索器208如何检索周期性变量的值的方式检索周期性变量的值。变量检索器224可以与客户端设备202通信或从管理员接收输入,因此变量检索器224检索与客户端设备202的变量检索器208相同类型和/或来自与变量检索器208相同源的周期性变量的值。例如,客户端设备202的变量检索器208可以被配置为检索与芝加哥的当前日期相对应的周期性变量的值。作为与客户端设备202通信或来自管理员输入的结果,内容服务器218的变量检索器224还可以被配置为检索与芝加哥的当前日期相对应的周期性变量的值。因此,变量检索器208和变量检索器224可以在进行本文描述的过程时检索周期性变量的相同值(例如,变量检索器208和变量检索器224可以同步)。
47.变量检索器224可以检索周期性变量的多个值。例如,如果周期性变量是芝加哥的当前日期,则变量检索器224可以检索芝加哥的当前日期、前一天到当前日期的日期和/或当前日期第二天的日期的值,从而提供可以比较查询令牌的周期性变量的值的滑动窗口。在另一个示例中,如果周期性变量是纽约证券交易所收盘时股票的价值,则变量检索器224
可以检索与当前日期之前的一天或多天和/或当前日期的收盘时股票相关联的值。变量检索器224可以检索任意数量的值。
48.在一些实现方式中,变量检索器224可以响应于从客户端设备202接收到查询令牌来检索周期性变量的值。变量检索器224可以接收查询令牌、标识周期性变量(例如,纽约的一天中的时间、纽约的日期等),并检索周期性变量的对应值。有利地,通过在接收到查询令牌之后检索周期性变量,内容服务器218可以不必将加密设备标识符的值连续存储在数据库中,从而节省存储器和存储空间。然而,在此类实现方式中,内容服务器可能需要在处理查询令牌之前为其数据库中的每个设备标识符生成令牌集,这可能需要大量的处理资源。在类似的实现方式中,内容服务器可以使用在接收到查询令牌之后检索到的周期性变量的值来迭代地为其数据库中的每个标识符生成令牌,并且在继续进入下一个标识符之前将每个生成的令牌与接收到的查询令牌进行比较,这可以平均减少处理时间(例如,如果在仅处理标识符的子集之后标识出匹配)。在其他实现方式中,如下所讨论,概率数据结构可用于显着减少非匹配令牌的处理时间。
49.存储器222被示为包括查询令牌计算器226。在一些实现方式中,查询令牌计算器226可以包括应用程序、服务器、服务、守护进程、例程或其他可执行逻辑以计算内容服务器218已为其存储数据的各种设备标识符的查询令牌。查询令牌计算器226可以以与客户端设备202如何计算查询令牌类似的方式计算设备标识符的查询令牌。对于存储在标识符数据库236的数据结构中的如下所述的每个设备标识符,查询令牌计算器226可以将检索到的周期性变量的值连接到设备标识符的结尾或开头以获得连接的存储的设备标识符。查询令牌计算器226可以对与客户端设备202对客户端设备202的连接的设备标识符执行的加密技术相对应(例如,相同)的连接的存储的设备标识符执行加密技术以计算存储查询令牌。查询令牌计算器226可以计算与标识符数据库236中的设备标识符中的每一个或一部分相关联的存储的查询令牌。
50.在一些实现方式中,查询令牌计算器226可以为标识符数据库236中的每个设备标识符计算多个存储的查询令牌。例如,如下表所示,查询令牌计算器226可以为设备标识符计算存储的查询令牌,所述设备标识符对应于昨天日期、今天日期和明天日期的值。
51.存储的查询令牌公式值sha
256
(设备id||昨天的日期)存储的查询令牌sha
256
(设备id||今天的日期)存储的查询令牌sha
256
(设备id||明天的日期)存储的查询令牌
52.在表中,||表示将字符串(例如,设备标识符和周期性变量的值)连接在一起的任何方法,并且sha
256
表示sha-256散列函数。可以使用任何类型的值或加密技术来计算存储的查询令牌。所述表的数据可以存储在标识符数据库236中,如下所述。
53.在一些实现方式中,存储器222还被示为包括标识符数据库236。标识符数据库236可以是动态数据库,其包括与内容服务器218已为其收集数据的计算设备相关联的设备标识符。标识符数据库236可以是图形数据库、mysql、oracle、microsoft sql、postgresql、db2、文档存储、搜索引擎、键值存储等。标识符数据库236可以被配置为保存任何数量的数据并且可以由任意数量的组件组成。设备标识符可以与由查询令牌计算器226计算的存储的查询令牌相关联。设备标识符可以与查找表(例如,散列表)中的存储的查询令牌相关联,
所述查找表将设备标识符与由查询令牌计算器226计算的存储的查询令牌相匹配。每个设备标识符可以与多个存储的查询令牌匹配,所述查询令牌是基于周期性变量的不同值计算的。在一些实现方式中,设备标识符和对应的存储的查询令牌可以与标识符数据库236的概率数据结构相关联。
54.在一些实现方式中,标识符数据库236的存储的查询令牌可以由内容服务器218以固定或可变速率从标识符数据库236周期性地添加和/或移除。例如,某一天,查询令牌计算器226可以基于今天日期、昨天日期和明天日期的值来计算标识符数据库236中的每个设备标识符的查询令牌。在第二天,查询令牌计算器226可以从标识符数据库236中移除对应于第二天日期前两天的日期的存储的查询令牌。查询令牌计算器226还可以将对应于第二天之后的日期的查询令牌添加到标识符数据库236。因此,可以控制标识符数据库236中的存储的查询令牌的数量以需要标识符数据库236的固定的存储器量和/或减少存储所存储的查询令牌所需的存储器量。
55.存储器222被示为包括结构生成器228。结构生成器228可以包括应用程序、服务器、服务、守护进程、例程或其他可执行逻辑以生成标识符数据库236的数据结构,所述数据结构与由查询令牌计算器226计算的存储的查询令牌相关联。数据结构可以是概率数据结构(例如,布隆过滤器、基数统计(hyperloglog)、最小略图等)。在布隆过滤器的情况下,结构生成器228可以生成概率数据结构,因此数据结构可以指示存储的查询令牌可以与概率数据结构相关联,或者存储的查询令牌绝对不与概率数据结构相关联。
56.结构生成器228可以生成概率数据结构作为与存储的查询令牌相关联的阵列。查询令牌计算器226可以计算每个存储的查询令牌的二进制阵列(例如,二进制值的阵列)并将二进制阵列添加到概率数据结构的阵列中。例如,结构生成器228可以将值为56的存储的查询令牌的二进制阵列计算为[1,1,1,0,0,0]。结构生成器228可以通过在概率数据结构和存储的查询令牌的二进制阵列之间执行or运算(或运算)来将二进制阵列添加到概率数据结构。结构生成器228可以将标识符数据库236中的每个存储的查询令牌的二进制阵列添加到概率数据结构。在一些实现方式中,查询令牌计算器226可能已经将存储的查询令牌计算为和/或存储为二进制阵列。
[0057]
在一些实现方式中,结构生成器228可以通过对存储的查询令牌执行各种散列函数并将对应于散列函数的输出的指数设置为一来生成概率数据结构。与输出不对应的指数可能保持为零。
[0058]
当进行查询以确定匹配的存储的查询令牌是否在标识符数据库236中时,如下所述的查询令牌匹配器230可以计算查询令牌匹配器230从客户端设备202接收到的查询令牌的二进制阵列。查询令牌匹配器230可以通过将查询令牌的字符串转换为二进制(如果字符串不是二进制)或对查询令牌执行各种散列函数并将对应于散列函数的输出的阵列的指数设置为一而其余指数保持为零来计算二进制阵列,这取决于结构生成器228如何被配置为生成概率数据结构。如果查询令牌匹配器230使用散列函数计算二进制阵列,则查询令牌匹配器230可以使用与结构生成器228用于生成概率数据结构的相同散列函数来生成查询令牌的二进制阵列。查询令牌匹配器230可以将二进制阵列的指数值与概率数据结构的阵列进行比较。查询令牌匹配器230可以将查询令牌的二进制阵列的指数的“1”值与概率数据结构的对应指数进行比较(例如,在查询令牌和概率数据结构之间执行按位and运算(与运
算))。如果比较的每个指数值都是一,则匹配的查询令牌可以在标识符数据库236中(允许误报)。然而,如果比较的一个指数值是零,则匹配的查询令牌不在标识符数据库236中。此类概率数据结构或过滤器可能不会导致误报,从而允许在进行更密集的逐个令牌比较之前快速验证是否存在匹配。
[0059]
在一些实现方式中,结构生成器228可以通过在从标识符数据库236中移除数据的每个实例处生成新的数据结构来更新概率数据结构。结构生成器228可以执行上述技术以生成新的数据结构。例如,如果查询令牌计算器226每天为对应于今天的日期、昨天的日期和明天的日期的周期性变量的值计算存储的查询令牌,则标识符数据库236可以在基于内部日历和时钟确定它是新的一天时被配置为移除对应于昨天日期的前一天的日期的存储的查询令牌,并且基于明天的日期将新的存储的查询令牌添加到标识符数据库236。结构生成器228可以每天生成对应于标识符数据库236中的更新数据的新数据结构。
[0060]
在一些实现方式中,结构生成器228可以生成计数过滤器,而不是每天生成新的数据结构。计数过滤器可能类似于布隆过滤器,但不是每个指数都具有值一或零,计数过滤器可以为每个指数值增加计数器,所述计数器对应于在指数处具有一值的存储的查询令牌的数量。例如,如果三个存储的查询令牌在同一指数处具有一值,则概率数据结构的指数可能具有值三。随着数据结构生成器228移除存储的查询令牌和/或将存储的查询令牌添加到计数过滤器,指数的值可以分别减少或增加。当查询令牌匹配器230将查询令牌与计数过滤器进行比较时,查询令牌匹配器230可以确定每个指数值是非零还是零而不是一或零,以确定查询令牌在标识符数据库236中是否具有匹配的查询令牌。
[0061]
存储器222被示为包括查询令牌匹配器230。查询令牌匹配器230可以包括应用程序、服务器、服务、守护进程、例程或其他可执行逻辑以确定标识符数据库236中是否存在匹配的存储的查询令牌。查询令牌匹配器230可以将内容服务器218从客户端设备202接收的查询令牌与标识符数据库236的数据结构和/或标识符数据库236的存储的查询令牌进行比较。如果查询令牌匹配器230确定在标识符数据库236中存在匹配的存储的查询令牌,则查询令牌匹配器230可以标识匹配的存储的查询令牌。查询令牌匹配器230可以从存储所存储的查询令牌和对应的设备标识符的标识符数据库236的查找表中标识匹配的所存储的查询令牌。
[0062]
查询令牌匹配器230可以通过将内容服务器218从客户端设备202接收的查询令牌与概率数据结构进行比较来确定存在匹配的查询令牌。查询令牌匹配器230可以标识内容服务器218从客户端设备202接收的查询令牌并将其与如上所述的与标识符数据库236的数据结构相关联的布隆过滤器进行比较。查询令牌匹配器230可以确定指示查询令牌是否具有标识符数据库236中的匹配的存储的查询令牌的二进制值(例如,是或否)。如果可能存在匹配的存储的查询令牌,则查询令牌匹配器230可以接收属实答案,如果不存在匹配的存储的查询令牌,则可以接收不属实答案。如果查询令牌匹配器230接收不属实答案,则加密器232可以向客户端设备202发送指示不存在匹配的信号。如果查询令牌匹配器230接收属实答案,则加密器232可以向客户端设备202发送指示存在匹配的信号。
[0063]
在一些实现方式中,如果查询令牌匹配器230基于与概率数据结构的比较确定存在匹配,则查询令牌匹配器230可以将查询令牌与在标识符数据库236中的查找表的存储的查询令牌进行比较。有利地,通过将查询令牌与标识符数据库236中的查找表进行比较,查
询令牌匹配器230可以消除或减少可能基于与概率数据结构的比较而产生的误报的可能性。在一些实现方式中,查询令牌匹配器230可以最初将查询令牌与查找表进行比较,而不将查询令牌与概率数据结构进行比较。如果查询令牌匹配器230标识具有与内容服务器218从客户端设备202接收的查询令牌相同的散列值(例如,字符串)的存储的查询令牌,则查询令牌匹配器230可以确定在标识符数据库236中存在匹配的查询令牌。如果查询令牌匹配器230没有标识具有匹配的散列值的存储的查询令牌,则查询令牌匹配器230可以确定不存在匹配的查询令牌。
[0064]
存储器222被示为包括加密器232。加密器232可以包括应用程序、服务器、服务、守护进程、例程或其他可执行逻辑以加密内容服务器218响应于来自客户端设备202的查询而发送到客户端设备202的答案。在查询令牌匹配器230没有标识在标识符数据库236中的匹配的存储的查询令牌的情况下,加密器232可以向客户端设备202发送随机字符串或空数据字符串。在一个示例中,随机字符串可以包括时间戳的多个实例。因此,当客户端设备202接收随机字符串或空数据字符串时,客户端设备202可以尝试对其进行解密并确定它是随机的。基于字符串是随机的确定,客户端设备可以确定内容服务器218可能没有存储关于客户端设备202的信息。有利地,通过包括时间戳的多个实例,可以增加加密的熵,使得第三方更难以解密从内容服务器218到客户端设备202的信号。拦截来自内容服务器218的答案的内容服务器或其他第三方可能无法解密或知道随机字符串或空数据字符串的含义。
[0065]
然而,如果查询令牌匹配器230确定在标识符数据库236中存在匹配的查询令牌,则加密器232可以标识与匹配的查询令牌相关联的设备标识符并将设备标识符与特征数据库238中的查找表进行比较。标识符数据库236中的设备标识符中的每一个或一部分可以与公钥相关联。公钥可以存储在特征数据库238中并且与设备标识符相关联。加密器232可以将设备标识符与特征数据库238的表进行比较并且检索与设备标识符相关联的公钥。加密器232可以用公钥加密由加密器232发送回客户端设备202的答案。加密的答案可以包括指示内容服务器218已经收集关于客户端设备202的数据的标识和/或包括内容服务器218已经存储的关于客户端设备202的信息和信息类别的一个或多个特征。加密器232可以将加密的答案发送到客户端设备202。客户端设备202的解密器214可以解密加密的答案,如下所述。
[0066]
在一些实现方式中,加密器232可以进一步使用随机数值和时间戳来加密发送到客户端设备202的答案。加密器232可以使用以下等式来加密答案:
[0067]
答案
加密
=公钥加密(密钥
公共
,答案
明文
||随机数||时间戳)
[0068]
如上所述,||描述了将分开的字符串的值连接成一个字符串。答案
明文
可以是加密器232加密的答案,并且可以包括存储的关于客户端设备202的信息的标识符。加密器232可以通过使用不断递增(例如,对应于时间、在服务器218和客户端设备202之间发送的消息等递增)的计数器来检索随机数的值。随机数可以在内容服务器218和客户端设备202之间同步,因此客户端设备202将知道加密器232用来加密答案的随机数。在一些实现方式中,所有或部分随机数可以与答案一起发送到客户端设备202,因此客户端设备202可以标识随机数并对答案进行解密,或者可以作为查询的一部分从客户端设备202接收。加密器232可以通过从服务器218的内部时钟检索时间来生成时间戳。随机数和时间戳中的每一个都可以以任意顺序和任意次数与答案连接。
[0069]
在一些实现方式中,存储器222还被示为包括特征数据库238。特征数据库238可以是动态数据库,包括设备标识符、与设备标识符相关联的公钥、以及与设备标识符相关联的计算设备的一个或多个特征。对应于公钥的私钥可以秘密地存储在与设备标识符相关联的设备或同一用户的其他设备上。特征数据库238可以是图形数据库、mysql、oracle、microsoft sql、postgresql、db2、文档存储、搜索引擎、键值存储等。特征数据库238可以被配置为保存任何数量的数据并且可以由任意数量的组件组成。设备标识符可以与由查询令牌计算器226计算的存储的查询令牌相关联。设备标识符可以与标识符数据库236的对应设备标识符相关联。特征数据库238的设备标识符中的每一个或一部分可以与公钥和/或一个或多个特征相关联。公钥和/或一个或多个特征可以存储在将它们与对应的设备标识符匹配的查找表中。一个或多个特征可以包括与设备标识符相关联的客户端设备的地理位置、访问的网页、访问的网页的内容等中的一个或多个。一个或多个特征可以包括客户端设备或与客户端设备交互的用户的任何特征或客户端设备或用户的推断特征。
[0070]
加密器232可以将所标识的客户端设备标识符与特征数据库238进行比较以标识和检索与客户端设备202的所标识的设备标识符相关联的公钥和客户端设备202的一个或多个特征的数据两者。使用公钥,加密器232可以加密在答案中包括一个或多个特征的信号,并将加密的信号发送到客户端设备202。
[0071]
仍然参考图2,客户端设备202的存储器206被示为包括解密器214。解密器214可以包括应用程序、服务器、服务、守护进程、例程或其他可执行逻辑以接收和解密来自内容服务器218的加密信号。解密器214可以从客户端设备202的数据库(未示出)访问特定于客户端设备202的私钥。解密器214可以使用私钥对加密信号进行解密,以处理加密信号中的答案,以确定内容服务器218是否已经收集了关于客户端设备202的数据。此外,如果内容服务器218发送指示其已经收集了关于客户端设备202的数据的信号,则解密器214可以确定内容服务器218已经收集的数据类别。
[0072]
在一些实现方式中,客户端设备202可以向多个内容服务器发送查询令牌以确定已经收集关于客户端设备202的数据的内容服务器的数量以及每个内容服务器已经收集的任何数据的类别。解密器214可以增加和维护用于每个内容服务器的计数器,每个内容服务器向客户端设备202发送指示客户端设备202的标识符在内容服务器的数据库中的信号。在一些实现方式中,解密器214还可以针对具有与每个类别相关联的客户端设备202的数据的内容服务器的数量增加和维护与每个数据类别相关联的计数器。通过类别计数器,客户端设备202可以确定具有与每个类别相关联的数据的内容服务器的数量的计数。
[0073]
在另一个实现方式中,系统200可以被实现为使得客户端设备的浏览器可以确定哪些内容服务器具有与浏览器相关联的数据。当浏览器访问与内容服务器相关联的域时,内容服务器可能已经收集了与浏览器相关联的数据。在某些情况下,多个内容服务器可能与单个域相关联。在某些情况下,单个内容服务器可能与多个域相关联。内容服务器可能会使用cookie(例如第三方cookie)从浏览器收集数据。cookie可以是计算设备的设备标识符,因为cookie的值可能特定于计算设备。cookie也可能与各种域相关联。在某些情况下,多个内容服务器可能访问由浏览器的cookie提供的相同信息。在此类情况下,每个内容服务器都可以从cookie中获得相同的信息或相同信息的一部分。例如,存储在计算设备的浏览器上的cookie(和cookie的值)可以与第一域和第二域相关联。一个内容服务器可以与第
一域相关联,并且另一个内容服务器可以与第二域相关联。因此,虽然两个内容服务器可以与不同的域相关联,但是每个内容服务器可以从cookie接收计算设备的浏览器的数据。
[0074]
系统200提供了确定哪些内容服务器已经使用cookie收集了关于浏览器的数据的方法。例如,客户端设备202被示为包括浏览器212。浏览器212可以包括应用程序、服务器、服务、守护进程、例程或其他可执行逻辑以生成cookie查询令牌以发送到内容服务器218以确定内容服务器是否已经收集了关于浏览器212的数据。浏览器212可以执行类似于由变量检索器208和/或查询令牌计算器210执行的操作的操作以查询内容服务器以确定哪些内容服务器(例如,内容服务器218)已经收集了关于浏览器212的数据以及数据可能属于的任何类别。尽管被称为浏览器,但浏览器212可以包括用于与内容服务器通信的任何类型和形式的应用程序,包括作为生产力应用程序、媒体应用程序、游戏应用程序、网络浏览器应用程序或其他此类应用程序的一部分。
[0075]
浏览器212可以生成浏览器查询令牌以发送到内容服务器(例如,内容服务器218)的各种应用程序,以确定哪些内容服务器已经收集了关于浏览器212的数据。浏览器212可以通过网络216从各种服务器或从客户端设备202的内部数据库检索周期性变量的值(例如,芝加哥一天中的时间、芝加哥的日期、纽约证券交易所收盘时股票的价值等)。浏览器212还可以从存储在客户端设备202上的文件中检索和/或标识cookie的值(例如cookie值),所述值与与浏览器212正在查询的内容服务器相关联的域相关联并且可以特定于浏览器212。浏览器212可以进一步检索域的域标识符(例如,www.example.com)。浏览器212可以连接所检索的值以获得连接的cookie标识符并执行诸如sha-256的加密技术以将连接的cookie标识符加密为cookie查询令牌。该过程的示例方程式如下再现:
[0076]
浏览器查询令牌=sha
256
(cookie值||域||今天日期)
[0077]
在示例中,今天的日期是与当前日期相对应的周期性变量的值。浏览器212可以计算浏览器查询令牌并将其发送到与域相关联的内容服务器,以确定内容服务器218和与同一域和/或cookie相关联的任何其他服务器是否已经收集了关于浏览器212的数据。
[0078]
内容服务器218被示为包括服务器应用程序234。服务器应用程序234可以包括应用程序、服务器、ftp服务器、http服务器、服务、守护进程、例程或其他可执行逻辑以从客户端设备(例如,客户端设备202)接收cookie查询令牌并确定服务器应用程序234是否已经收集了与客户端设备的浏览器(例如,浏览器212)相关联的数据。服务器应用程序234可以为服务器应用程序234已从其收集数据的浏览器中的每一个或一部分计算存储的cookie查询令牌。服务器应用程序234可以通过以类似于客户端设备202的浏览器212如何检索周期性变量的值的方式检索周期性变量的值来计算存储的cookie查询令牌。服务器应用程序234可以基于与浏览器212相同的信息(例如,相同的变量)和/或数据源来检索周期性变量的值,因此服务器应用程序234检索的值可以匹配浏览器212检索的值。服务器应用程序234可以以周期性间隔检索值以计算存储的cookie查询令牌。例如,服务器应用程序234和浏览器212两者可以被配置为检索与今天的日期(例如,02-3-2019)相关联的值。服务器应用程序234可以从内容服务器218的内部日历中检索今天的日期的值,而浏览器212可以从客户端设备202的内部日历中检索今天的日期的值。因为客户端设备202和内容服务器218的日历可以同步,所以服务器应用程序234和客户端设备202两者可以检索相同的值。此外,客户端设备202和内容服务器218可以以相同的形式检索相同的值。
[0079]
在一些实现方式中,服务器应用程序234可以检索周期性变量的多个值以计算多个存储的cookie查询令牌。例如,如果周期性变量与今天的日期相关联,则服务器应用程序234可以为当前日期、明天日期和昨天日期检索今天日期的值。服务器应用程序234可以检索与任何周期性变量相关联的任意数量的值。
[0080]
服务器应用程序234可以为与和服务器应用程序234相关联的域相关联的每个cookie计算存储的cookie查询令牌。服务器应用程序234可以通过将cookie值与域(例如,域标识符)和周期性变量的检索值连接来计算存储的cookie查询令牌。继续上面的示例,服务器应用程序234可以将浏览器212的cookie值与域的值(例如,与cookie相关联的域的名称)和今天的日期连接。服务器应用程序234可以执行与浏览器212执行的加密技术相匹配的加密技术以计算存储的cookie查询令牌。在某些情况下,域的cookie值可能在多个内容服务器之间(例如,在cookie联盟中)共享,每个内容服务器都有其自己的域。在此类情况下,存储的cookie查询令牌可能与先前丢弃或创建cookie的域的值相关联(例如,用所述值标记)(例如,拥有cookie)。如果域的cookie值不与任何内容服务器共享,而与用于域的内容服务器218共享,则存储的cookie查询令牌可能不与域的值相关联。
[0081]
在一些实现方式中,服务器应用程序234可以为与各种浏览器相关联的每个cookie计算多个存储的cookie查询令牌。例如,如下面的查找表所示,服务器应用程序234可以为与昨天日期、今天日期和明天日期的周期性变量的值相关联的每个cookie计算存储的cookie查询令牌。
[0082]
存储的cookie查询令牌公式值sha
256
(cookie值||域||昨天日期)(cookie值,域)sha
256
(cookie值||域||今天日期)(cookie值,域)sha
256
(cookie值||域||明天日期)(cookie值,域)
[0083]
查找表例示了服务器应用程序234可能已经为与各种浏览器相关联的cookie存储的查找表。服务器应用程序234可以将计算的存储的cookie查询令牌存储在标识符数据库236中。服务器应用程序234可以将任意数量的cookie的任意数量的存储的cookie查询令牌存储在数据库中。在一些实现方式中,对于过去的每一天,服务器应用程序234可以移除与昨天日期的值相关联的存储的cookie查询令牌并计算与明天日期的值相关联的新的存储的cookie查询令牌。
[0084]
在一些实现方式中,存储的cookie查询令牌可以与类似于上面讨论的概率数据结构的概率数据结构(例如,布隆过滤器)相关联。服务器应用程序234可以将服务器应用程序234从浏览器212接收的cookie查询令牌与概率数据结构进行比较以确定标识符数据库236中是否存在匹配的存储的cookie查询令牌。服务器应用程序234可以将cookie查询令牌与概率数据结构进行比较,并确定关于数据库中是否存在匹配的cookie查询令牌的二进制是或否的答案。是答案可以对应于标识符数据库236中存在匹配的存储的cookie查询令牌的高概率,而否答案可以对应于标识符数据库236中不存在匹配的cookie查询令牌。
[0085]
服务器应用程序234可以经由浏览器212从客户端设备202接收cookie查询令牌并且确定cookie查询令牌是否与存储在数据库中的任何存储的cookie查询令牌匹配。服务器应用程序234可以将cookie查询令牌与标识符数据库236中查找表的存储的cookie查询令牌进行比较,以确定标识符数据库236中是否存在匹配的存储的cookie查询令牌。如果存在
匹配的存储的cookie查询令牌,这可能表明服务器应用程序234已通过与浏览器212相关联的cookie收集了关于浏览器212的数据。在这种情况下,服务器应用程序234可以确认存在匹配的cookie查询令牌并通过将cookie查询令牌与标识符数据库236的查找表的存储的cookie查询令牌进行比较来标识与匹配的cookie查询令牌相关联的cookie的值和/或域。
[0086]
如果服务器应用程序234确认存在匹配的cookie查询令牌,则服务器应用程序234可以从查找表中标识与匹配的cookie查询令牌相关联的cookie的值。服务器应用程序234可以将cookie的值与第二数据库(例如,特征数据库238)进行比较,以标识服务器应用程序234已经为其收集和存储与浏览器212相关联的数据的一个或多个特征。一个或多个特征可以存储在特征数据库238内的查找表中并且被组成服务器应用程序234已经收集的关于浏览器212的不同数据类别。例如,服务器应用程序234可能已经收集了与浏览器212相关联的数据,所述数据指示浏览器212在新闻网站、娱乐网站、广告商网站等上的行为。服务器应用程序234可以将信号发送回浏览器212,所述信号包括指示服务器应用程序234是否已收集关于客户端设备202的数据和/或服务器应用程序234已收集的数据的类别(例如,一个或多个特征)的列表的布尔响应。
[0087]
为了确保恶意方不会在服务器应用程序234发送到浏览器212的信号中拦截和/或查明来自服务器应用程序234的任何信息,服务器应用程序234可以使用各种技术对信号进行加密。服务器应用程序234可以将响应填充到固定长度,因此恶意方可能无法确定服务器应用程序234可能已经收集的数据量。此外,服务器应用程序234可以使用https协议保护信号。服务器应用程序234可以用使用来自上述查找表的cookie值和域作为加密密钥的对称密钥算法(例如,aes)来加密信号。服务器应用程序234还可以在应用对称密钥加密技术之前在响应中包括时间戳。
[0088]
现在参考图3,示出了根据一些实现方式的用于安全标识检索的方法300的流程图。方法300可以包括任意数量的操作。可以按任何顺序执行操作。方法300可以由服务器设备(例如,内容服务器218)来执行。在操作302,服务器设备可以检索周期性变量的值。周期性变量可以是具有以设定或变化频率连续改变的值的变量。例如,周期性变量可以是当前日期、一天中的当前时间、纽约证券交易所收盘时各种股票的股价、基于递增计数器确定的随机数值等。取决于周期性变量,服务器设备可以将值存储在服务器设备内的数据库中,或者从另一个源(例如,存储纽约证券交易所股票价格值的数据库)检索值。
[0089]
在操作304,服务器设备可以计算多个查询令牌。服务器设备可以通过标识周期性变量的值并将所述值连接到服务器设备为其存储信息的任何客户端设备标识号的末尾来计算多个查询令牌,以为每个客户端设备获得连接的标识符。服务器设备可以对与每个客户端设备相关联的连接的标识符执行诸如单向散列的加密技术以获得多个查询令牌。在一些实现方式中,服务器设备可以计算第二多个查询令牌。第二多个查询令牌可以包括与与多个查询令牌相同的客户端设备相关联但基于不同的周期性变量值的查询令牌。
[0090]
在操作306,服务器设备可以生成可以与多个查询令牌中的每一个相关联的概率数据结构。多个查询令牌可以存储在服务器设备的数据库中。服务器设备可以在任何时间(包括以设定的时间间隔)从数据库中添加和/或移除查询令牌。在一些实现方式中,概率数据结构可以是布隆过滤器,其指示查询令牌在一定程度上是否可能在数据库中或绝对不在数据库中。
[0091]
在操作308,服务器设备可以从客户端设备接收第一查询令牌。客户端设备可以使用服务器设备用来计算多个查询令牌中的每一个的相同或相似技术来生成第一查询令牌。第一查询令牌可以与客户端设备的设备标识符相关联。客户端设备可以通过检索周期性变量的值来计算第一查询令牌并将所述值与设备标识符连接以获得连接的设备标识符。客户端设备可以通过对连接的设备标识符使用加密技术来从连接的设备标识符计算第一查询令牌以获得第一查询令牌。加密技术可以是服务器设备为获得多个查询令牌中的每一个而执行的相同加密技术。客户端设备可以在查询中向服务器设备发送第一查询令牌以确定服务器设备是否具有关于客户端设备的信息。在一些实现方式中,在发送查询之前,客户端设备可以用私钥对查询进行签名。
[0092]
在操作310,服务器设备可以确定服务器设备是否具有与服务器设备的数据库中的第一查询令牌匹配的查询令牌。服务器设备可以将第一查询令牌与数据库的数据结构进行比较。如果服务器设备在数据结构中没有标识出与第一查询令牌匹配(例如,具有相同的字符串)的查询令牌,则服务器设备可以确定在数据库中不存在查询客户端设备的匹配的查询令牌。因此,在操作312,服务器设备可以向客户端设备发送指示未找到匹配的信号。
[0093]
然而,如果服务器设备在数据结构中标识出与第一查询令牌匹配的查询令牌,则服务器设备可以确定在数据库中存在与查询客户端设备的查询令牌匹配的查询令牌。因此,在操作314,服务器设备可以标识第二查询令牌。服务器设备可以从第二查询令牌标识发出请求的客户端设备的设备标识符。
[0094]
在操作316,服务器设备可以从存储客户端设备的特征的第二数据库中检索客户端设备的一个或多个特征。一个或多个特征可以是服务器设备已收集的关于设备的数据(例如,地理位置、访问的网页、访问的网页的内容等)。服务器设备可以将客户端设备的设备标识符与第二数据库的数据结构进行比较以获得客户端设备的公共加密密钥。服务器设备可以使用公钥来基于数字签名验证查询是从与设备标识符相关联的客户端设备接收到的。
[0095]
在操作318,服务器设备可以使用公钥来加密对来自客户端设备的查询的回答中的一个或多个特征。加密的答案可以包括服务器设备通过将答案、随机数和时间戳连接在一起来计算的连接值。所述答案可以包括二进制值(例如,服务器设备是否已经为客户端设备收集了数据)和/或服务器设备已经收集的关于客户端设备的不同类别的用户数据(例如,一个或多个特征)的标识。在操作320,服务器设备可以将一个或多个特征发送到客户端设备。客户端设备可以基于数字签名使用客户端设备的私钥对加密的答案进行解密。
[0096]
有利地,通过计算与向内容服务器发出标识请求的计算设备的设备标识符相关联的查询令牌,当设备查询内容服务器时,计算设备可以从还没有关于它们的数据的内容服务器中维持匿名。本文提供的系统和方法允许设备通过向内容服务器发送查询而不发送设备的设备标识符来查询内容服务器以确定内容服务器是否具有关于查询设备的信息。相反,设备可以使用加密技术(如单向加密技术)计算查询令牌并将查询令牌发送到内容服务器。查询令牌可以包括临时加密值(例如,时间戳或当前日期),因此内容服务器无法基于查询令牌标识关于查询设备的任何内容。内容服务器可能知道用于生成查询令牌的加密技术,并且类似地为内容服务器已存储的设备标识符计算相应的存储的查询令牌。因此,因为可以使用单向加密技术来计算查询令牌,所以如果设备标识符未知,则内容服务器只能标
识它们是否具有关于查询设备的数据而不能标识查询设备的设备标识符。此外,设备和内容服务器之间的通信可能被加密,因此恶意方可能无法标识关于内容服务器的数据。
[0097]
在本文描述的系统收集关于用户或安装在用户设备上的应用程序的个人信息或利用个人信息的情况下,可以向用户提供控制程序或特征是否收集用户信息(例如、关于用户社交网络、社交行为或活动、职业、用户偏好或用户当前位置的信息)的机会。另外,某些数据在被存储或使用之前可能会以一种或多种方式进行处理,使得移除个人信息。例如,用户的身份可能被处理,使得无法确定用户的个人身份信息,或者用户的地理位置可能在获得位置信息的地方被概括(例如为城市、邮政编码或州级),使得无法确定用户的特定位置。因此,用户可以控制如何收集关于用户的信息并由内容服务器使用。
[0098]
本说明书中描述的主题和操作的实现方式可以在数字电子电路或者计算机软件、固件或硬件中实现,包括本说明书中公开的结构和它们的结构等效物或者它们中的一者或多者的组合。本说明书中描述的主题的实现方式可以实现为一个或多个计算机程序,即,在一个或多个计算机存储介质上编码的计算机程序指令的一个或多个模块,以由数据处理装置执行或控制数据处理装置的操作。另选地或附加地,程序指令可以被编码在人工生成的传播信号上,例如机器生成的电信号、光信号或电磁信号上,该信号被生成来编码信息以传输到合适的接收器装置,以由数据处理装置执行。计算机存储介质可以是或包括在计算机可读存储设备、计算机可读存储衬底、随机或串行存取存储器阵列或设备、或它们中的一个或多个的组合中。此外,虽然计算机存储介质不是传播信号,但是计算机存储介质可以是编码在人工生成的传播信号中的计算机程序指令的源或目的地。计算机存储介质也可以是或包括在一个或多个单独的组件或介质(例如,多个cd、盘或其他存储设备)中。因此,计算机存储介质可以是有形的。
[0099]
本说明书中描述的操作可以被实现为由数据处理装置对存储在一个或多个计算机可读存储设备上或从其他来源接收的数据执行的操作。
[0100]
术语“客户端”或“服务器”包括用于处理数据的所有类型的装置、设备和机器,诸如可编程处理器、计算机、片上系统或上述的多个单个设备或其组合。该装置可以包括专用逻辑电路,例如fpga(现场可编程门阵列)或asic(专用集成电路)。除了硬件之外,该装置还可以包括为所讨论的计算机程序创建执行环境的代码,例如,构成处理器固件、协议栈、数据库管理系统、操作系统、跨平台运行时环境、虚拟机或它们中的一个或多个的组合的代码。装置和执行环境可以实现各种不同的计算模型基础设施,诸如web服务、分布式计算和网格计算基础设施。
[0101]
计算机程序(也称为程序、软件、软件应用程序、脚本、或代码)可以以任何形式的编程语言编写,包括编译或解释语言、声明性或过程性语言,并且它可以以任何形式部署,包括作为独立程序或作为模块、组件、子例程、对象或其他适合在计算环境中使用的单元。计算机程序可以但不需要对应于文件系统中的文件。程序可以存储在保存其他程序或数据的文件的一部分中(例如,存储在标记语言文档中的一个或多个脚本),存储在专用于所讨论的程序的单个文件中,或者存储在多个协调文件中(例如,存储一个或多个模块、子程序或代码部分的文件)。计算机程序可以部署为在一台计算机上执行,或者在位于一个站点或分布在多个站点之间并通过通信网络互连的多台计算机上执行。
[0102]
本说明书中描述的过程和逻辑流程可以由一个或多个可编程处理器执行,所述可
编程处理器通过在输入数据上操作并且生成输出来执行一个或多个计算机程序以执行动作。过程和逻辑流程也可以由专用逻辑电路执行,并且装置也可以实现为专用逻辑电路,例如,fpga(现场可编程门阵列)或asic(专用集成电路)。
[0103]
适用于执行计算机程序的处理器包括通用和专用微处理器以及任何类型的数字计算机的任何一个或多个处理器。一般来讲,处理器将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的基本元件是用于根据指令执行动作的处理器和用于存储指令和数据的一个或多个存储器设备。通常,计算机还将包括用于存储数据的一个或多个大容量存储设备,例如磁盘、磁光盘或光盘,或者操作地耦合以从其接收数据或将数据传送到其或这两者。然而,计算机不需要具有此类设备。此外,计算机可以嵌入到另一个设备中,这里仅举几例,例如,移动电话机、个体数字助理(pda)、移动音频或视频播放器、游戏控制台、全球定位系统(gps)接收器或便携式存储设备(例如,通用串行总线(usb)闪存驱动器)。适于存储计算机程序指令和数据的设备包括所有形式的非易失性存储器、介质和存储器设备,包括半导体存储器设备,例如eprom、eeprom和闪存设备;磁盘,例如内部硬盘或可装卸磁盘;磁光盘;以及cd-rom和dvd-rom光盘。处理器和存储器可以由专用逻辑电路补充或者并入专用逻辑电路中。
[0104]
为了提供与用户的交互,本说明书中描述的主题的实现方式可以在具有用于向用户显示信息的显示设备(例如,crt(阴极射线管)、lcd(液晶显示器)、oled(有机发光二极管)、tft(薄膜晶体管)、等离子、其他灵活配置或任何其他监视器)和键盘、定点设备(例如,鼠标、轨迹球等)或触摸屏、触摸板等的计算机上实现,其中用户可以通过其向计算机提供输入。其他类型的设备也可以用于提供与用户的交互;提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈或触觉反馈);并且可以以任何形式接收来自用户的输入,包括声学、语音或触觉输入。此外,计算机可以通过向用户使用的设备发送文档和从用户使用的设备接收文档来与用户交互;通过响应于从网络浏览器接收的请求将网页发送到用户计算设备上的网站浏览器。
[0105]
本说明书中描述的主题的实现方式可以在计算系统中实现,所述计算系统包括后端组件,例如数据服务器,或者包括中间件组件,例如应用服务器,或者包括前端组件,例如具有图形用户界面或网络浏览器的客户端计算机,其中用户可以与本说明书中描述的主题的实现方式交互,或者包括一个或多个此类后端组件、中间件组件或前端组件的任意组合。系统的部件可通过数字数据通信的任何形式或介质(例如通信网络)互连。通信网络可以包括局域网(“lan”)和广域网(“wan”)、互联网络(例如因特网)和对等网络(例如自组织对等网络)。
[0106]
尽管本说明书包含许多特定的实施细节,但这些不应被解释为对任何发明的范围或可能要求保护的范围的限制,而是对特定于特定发明的特定实现方式的特征的描述。在单独的实现方式上下文中在本说明书中描述的某些特征也可以在单个实现方式中组合实现。与此相反,在单一实现方式的背景下描述的不同特征也可以在多个实现方式中分开地或以任何适合的子组合来实施。此外,尽管特征可以描述为以某些组合起作用并且甚至最初如此声明,但是在一些情况下可以从组合中切除来自所要求保护的组合的一个或多个特征,并且所要求保护的组合可以涉及子组合或子组合的变型。
[0107]
类似地,虽然在附图中按特定顺序描绘操作,但这不应被理解为要求此类操作以
所示出的特定顺序或按先后顺序执行,或者执行所有示出的操作以实现期望的结果。在某些情况下,多任务和并行处理可能是有利的。此外,以上描述的实现方式中的各种系统部件的单独性不应当被理解为在所有实现方式中都要求这种单独性,并且应当理解,一般可将所描述的程序部件和系统一起集成在单个软件产品中或打包到多个软件产品中。
[0108]
因此已经描述了主题的特定实现方式。其他实现方式在以下权利要求的范围内。在一些情况下,权利要求中陈述的动作可以不同次序执行并且仍然实现所期望的结果。另外,附图中描绘的过程不一定要求所示出的特定次序、或顺序次序来实现所期望的结果。在某些实现方式下,可以利用多任务或并行处理。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献