CN112088374B - 作为浏览器Cookie的替代的域特定浏览器标识符 - Google Patents

作为浏览器Cookie的替代的域特定浏览器标识符 Download PDF

Info

Publication number
CN112088374B
CN112088374B CN201880092162.9A CN201880092162A CN112088374B CN 112088374 B CN112088374 B CN 112088374B CN 201880092162 A CN201880092162 A CN 201880092162A CN 112088374 B CN112088374 B CN 112088374B
Authority
CN
China
Prior art keywords
content provider
content
client device
identifier
provider
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.)
Active
Application number
CN201880092162.9A
Other languages
English (en)
Other versions
CN112088374A (zh
Inventor
高易安
王刚
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 CN112088374A publication Critical patent/CN112088374A/zh
Application granted granted Critical
Publication of CN112088374B publication Critical patent/CN112088374B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6245Protecting personal data, e.g. for financial or medical purposes
    • G06F21/6263Protecting personal data, e.g. for financial or medical purposes during internet communication, e.g. revealing personal data from cookies
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0407Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the identity of one or more communicating identities is hidden
    • H04L63/0421Anonymous communication, i.e. the party's identifiers are hidden from the other party or parties, e.g. using an anonymizer
    • 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/602Providing cryptographic facilities or services
    • 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/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6245Protecting personal data, e.g. for financial or medical purposes
    • G06F21/6254Protecting personal data, e.g. for financial or medical purposes by anonymising data, e.g. decorrelating personal data from the owner's identification
    • 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/0241Advertisements
    • G06Q30/0277Online advertisement
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/146Markers for unambiguous identification of a particular session, e.g. session cookie or URL-encoding
    • 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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • 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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/065Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
    • H04L9/0656Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher
    • H04L9/0662Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher with particular pseudorandom sequence generator
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0407Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the identity of one or more communicating identities is hidden
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0442Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply asymmetric encryption, i.e. different keys for encryption and decryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/2866Architectures; Arrangements
    • H04L67/30Profiles
    • H04L67/306User profiles
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/535Tracking the activity of the user

Landscapes

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

Abstract

本公开提供了安全的、用户透明的且高效的内容提供者特定的标识符(“CPSID”),有时被称为“只读cookie”(“ROC”)。这些内容提供者特定的标识符可以由客户端设备生成,并用内容提供者的公钥加密,从而防止第三方间接识别匹配,并且消除了对提供者方Cookie匹配表和资源密集型跟踪通信的需求。内容提供者特定的标识符的生成可以由用户策略控制,使得仅针对以下内容提供者来创建标识符:具有兼容服务条款(ToS)(例如,可从域内的预定地址检索)的内容提供者;在白名单(例如,用户明确提供同意的内容提供者)上的内容提供者;和/或不在黑名单(例如,用户明确拒绝同意的内容提供者)上的内容提供者。

Description

作为浏览器Cookie的替代的域特定浏览器标识符
背景技术
浏览器cookie或简短的设备、用户或会话特定的标识符,用于唯一(或半唯一)标识设备、用户或与内容提供者(例如网页发布者、广告客户或其他此类实体)的会话。这些Cookie通常是由内容提供者例如在第一会话或登录过程中生成的,并在来自客户端设备的浏览器或其他应用的后续请求中提供。然后,发布者可以将每个请求与相同的标识符(以及隐式地,相同的设备、用户或会话)相关联,从而允许定制内容选择。
但是,典型的浏览器cookie具有一些严重的缺陷。在网站内提供嵌入式内容的第三方内容提供者可以提供cookie来跟踪浏览器,而用户不必知道他们已被这些第三方标识或跟踪(例如,因为浏览器地址栏中显示的地址可能仅标识主页的来源而不一定是嵌入的内容)。因此,用户可能难以识别潜在的隐私问题并控制其个人信息的隐私。
另外,典型的浏览器cookie是特定于域的。为了提供安全性的某种措施,浏览器和其他应用制造商阻止内容提供者读取或接收其他域中其他内容提供者生成的cookie。为了解决此问题,出于合法和非法的原因,内容提供者利用cookie匹配在来自一个内容提供者的cookie和另一内容提供者的cookie之间生成关联。Cookie匹配的一种实现方式利用页面内的小的嵌入式内容项(例如,导致浏览器请求图像的1像素x 1像素“不可见”图像,以及相应cookie的传输,称为“跟踪像素”),请求由一个实体接收并重定向到另一实体。这导致两次往返通信交换以“渲染(render)”像素:对第一实体的请求和带有重定向地址的响应,以及对第二实体的请求和响应。对于具有十个或更多嵌入式跟踪像素的典型页面,执行这些通信可能会花费大量时间。如果用户在通信完成之前导航离开页面,则可能无法识别匹配项。结果,cookie匹配缓慢,经常不完整,减慢了网页的渲染,消耗了带宽并缩短了电池寿命。此外,cookie匹配允许第三方实体以非透明的方式跟踪在线行为,而无需用户提供明确的同意,提供明确的同意对用户隐私构成了威胁。
发明内容
本文讨论的系统和方法使用安全的、用户透明的和高效的内容提供者特定的标识符(“CPSID”)(有时称为“只读cookie”(“ROC”))来替代传统的浏览器cookie。这些内容提供者特定的标识符可以由客户端设备生成,并用内容提供者的公钥加密,从而防止第三方间接识别匹配,并消除了对提供者方Cookie匹配表和资源密集型Cookie匹配通信和防止用户透明以及清楚地了解和审核Cookie使用的系统的需求。内容提供者特定的标识符的生成可以由用户策略控制,使得仅针对下述内容提供者来创建标识符:具有例如可从域内的预定地址检索的兼容服务条款(ToS)的内容提供者;在白名单(例如,用户明确提供同意的内容提供者)上的内容提供者;和/或不在黑名单(例如,用户明确拒绝同意的内容提供者)上的内容提供者。
内容提供者特定的标识符可以从浏览器、应用、设备或会话特定的私有标识符(例如,特定与该设备的其他用户分开的用户的特定于浏览器实例的标识符)以及内容提供者的域名或地址(例如“example.com”)的输入中生成为加密散列(例如,任何合适的散列算法,例如MD5、SHA256等)。在一些实现方式中,为了提供附加的盐,散列输入可以包括针对内容提供者特定的标识符的创建时间或到期时间,例如,其可以与任一输入值级联。可以利用其他熵的源来类似地增加散列输入的复杂度,例如设备类型或序列号、时钟偏斜时间、硬件标识符或任何其他此类数据。在一些实现方式中,“到期时间”可以是粒度值,例如在内容提供者特定的标识符到期之前的几周、几个月或几年,从而允许客户端自动再生。
在其他实现方式中,内容提供者特定的标识符可以是存储在由内容提供者的域(例如example.com)键入的在查找表中的随机生成的值。与计算加密散列结果相比,这可能需要更少的处理器资源,但是可能需要用于表的大存储空间。
内容提供者特定的标识符可以由客户端设备经由内容提供者的公钥来加密,以生成加密的只读cookie(“eROC”)。在一些实现方式中,客户端设备可以在加密之前将内容提供者特定的标识符与创建时间戳和/或随机数(例如,随机数盐)进行级联,使得即使对于单个域所得到的eROC也高度地变化。因此,预期的内容提供者可能能够解密和提取内容提供者特定的标识符,而其他内容提供者(例如,尝试执行cookie匹配的那些内容提供者)将无法这样做。为了在通过中间设备从客户端设备传输到预期内容提供者的过程中保护eROC,可以使用创建时间戳和/或随机数值来生成不稳定的eROC,其是无用的并且除了预期内容提供者之外,其他任何人都无法理解。为了允许内容提供者之间的数据交换,第一内容提供者可以从客户端设备请求第二内容提供者的eROC,并且可以将接收的eROC转发给第二内容提供者。由于接收的Cookie是使用第二内容提供者的公钥加密的,因此第一内容提供者可能无法解密或恢复第二内容提供者的ROC,而只能转发eROC并请求关联的数据。因此,拥有适当的eROC指示已由客户端设备授权进行数据交换。因为每个请求都必须遍历客户端设备,所以客户端设备可以控制隐私和内容提供者之间的数据交换,还可以为任何此类传输生成审核日志或数据交换日志,从而增加了用户的透明度。
提及这些实现方式不是为了限制或定义本公开的范围,而是有助于理解本公开。可以开发特定的实现方式以实现以下优点中的一个或多个。通过用加密的内容提供者特定的标识符替换传统的浏览器cookie,客户端设备的用户可以利用标识任何此类交换的透明审核日志,更好地控制私有数据,包括伙伴内容提供者之间的数据交换。此外,通过利用客户端设备上的cookie生成和加密,避免了来自在内容提供者处大的cookie匹配表的资源消耗,从而提高了效率。消除跟踪像素和用于cookie匹配的双往返行程通信还可以提高效率并更好地保护用户隐私,从而允许客户端浏览器或应用更快地渲染页面,而较少利用电池和处理器。
附图说明
在附图和以下描述中阐述一种或多种实现方式的细节。根据说明书、附图和权利要求书,本公开的其他特征、方面和优点将变得显而易见,其中:
图1A是根据一些实现方式的用于数据交换的网络和设备环境的框图;
图1B是示出根据一些实现方式的传统的cookie交换和匹配的流程图;
图1C是根据一些实现方式的示例性cookie匹配表的图示;
图1D是示出根据一些实现方式的利用内容提供者特定的标识符(只读cookie或“ROC”)进行的设备标识符交换的流程图;
图2是说明用于内容提供者特定的标识符的计算设备的实现方式的框图;以及
图3A和3B是示出了使用内容提供者特定的标识符进行数据交换的方法的实现方式的流程图。
在各个附图中,相同的附图标记和指定指示相同的元件。
具体实施方式
浏览器cookie或简短的设备、用户或会话特定的标识符,用于唯一(或半唯一)标识设备、用户或与内容提供者(例如网页发布者、广告客户或其他此类实体)的会话。这些Cookie通常是由内容提供者例如在第一会话或登录过程中生成的,并在来自客户端设备的浏览器或其他应用的后续请求中提供。然后,发布者可以将每个请求与相同的标识符(以及隐式地,相同的设备、用户或会话)相关联,从而允许定制内容选择。
例如,图1A是根据一些实现方式的用于数据交换的网络和设备环境的框图。如图所示,客户端设备100可以经由网络106、106'与一个或多个内容服务器104-104N通信,该内容服务器通称为内容服务器或内容提供者104。客户端设备100可以包括任何类型和形式的计算设备,包括台式计算机、膝上型计算机、便携式计算机、平板计算机、可穿戴计算机、嵌入式计算机、智能电视、控制台、物联网(IoT)设备或智能设备或任何其他类型和形式的计算设备。在许多实现方式中,客户端设备100可以执行诸如web浏览器、社交媒体应用、视频游戏或其他此类应用之类的请求内容的应用。客户端设备100可以请求内容,并且可以提供设备标识符、cookie或其他这样的标识符,使得内容提供者可以为相应的设备或该设备的用户选择定制的内容。
网络106、106'可以包括任何类型和形式的网络,包括局域网(LAN)、诸如因特网的广域网(WAN)、卫星网络、电缆网络、宽带网络、光纤网络、微波网络、蜂窝网络、无线网络或这些或其他此类网络的任意组合。网络106、106'可以是相同类型的网络或不同类型,并且可以包括多个附加设备(未示出),包括网关、调制解调器、防火墙、路由器、交换机等。网络106、106'还可以包括被配置为在网络106、106'内接收和/或传输数据的任何数量的计算设备(例如,计算机、服务器、路由器、网络交换机等)。网络106、106'可以进一步包括任何数量的硬连线和/或无线连接。客户端设备100可以与收发器无线地(例如,经由WiFi、蜂窝、无线电等)通信,该收发器与网络106、106'中的其他计算设备硬连接(例如,经由光缆、CAT5电缆等)。在一些实现方式中,网络106、106'可以是虚拟网络,例如由单个物理机执行的多个虚拟机之间的虚拟网络,或可以是抽象网络,例如经由物理可移动媒体(例如Sneakernet、通过磁带介质、CD-ROM、闪存介质、外部硬盘驱动器、软盘等传输数据)的离线数据传输。
在许多实现方式中,通信可以经由中间服务器102流动,该中间服务器102可以用于从池或多个可用提供者中选择内容提供者。例如,在一些实现方式中,中间服务器102可以从客户端设备100接收对内容的请求,并且可以从内容提供者104中选择内容提供者以提供所请求的内容。在一些实现方式中,这样的选择可以是经由负载平衡算法、拍卖算法(例如,通过提供者来竞标提供内容的机会)等。中间服务器102因此可以被称为交换服务器、负载均衡器、拍卖提供者或任何其他此类术语。尽管在网络106、106'之间显示,但在许多实现方式中,中间服务器102可以部署在与内容服务器104相同的网段上。
中间服务器102和内容服务器104可以包括任何类型和形式的计算设备,包括台式计算机、服务器、工作站、膝上型计算机、便携式计算机、嵌入式计算机或任何其他类型和形式的计算设备。在许多实现方式中,中间服务器102和/或内容服务器104可以包括由一个或多个物理计算设备执行的虚拟机,并且可以被配置为服务器场、集群或设备的云。
如上所述,可以利用cookie提供定制的内容。例如,当发布对内容的请求时,客户端设备100可以向中间服务器102提供设备标识符或cookie。为了保存客户端隐私,在一些实现方式中,中间服务器102可以不将cookie转发到内容服务器104;相反,中间服务器102可以保存用于每个内容服务器104的标识符和客户端设备100的cookie的匹配表。在接收到cookie之后,中间服务器102可以在匹配表中搜索该cookie并检索用于每个内容提供者的标识符;然后,中间服务器102可以将内容提供者标识符与对于内容的请求一起传送给每个内容提供者。
例如,图1B是示出根据一些实现方式的传统的cookie交换和匹配的流程图。在步骤120,客户端设备100可以请求内容项,并且向中间服务器102提供与该设备、用户或会话相对应的设备标识符或cookie。在步骤122,中间服务器102可以将接收的cookie与每个内容服务器104的cookie匹配。在步骤124,中间服务器可以将对内容的请求和与内容服务器104对应的cookie传送到每个内容服务器104(因此,尽管仅显示了一个传输,但在许多实现方式中,可以在步骤124串行或并行传送许多请求。在步骤126,每个内容服务器104可以使用内容服务器标识符选择定制的内容,并可以在步骤128将内容提供给中间服务器。中间服务器102然后可以在步骤130向客户端设备转发一个(例如,在一些实现方式中,第一接收的内容)或所有接收的内容。
所示的实现方式只是使用浏览器cookie提供定制内容的一种方式,并且许多其他类似的实现方式也是可能的。例如,在一些实现方式中,中间服务器可以将请求与相应的内容服务器标识符一起传送到内容服务器104,并且一个或多个内容服务器104可以以对向客户端设备提供内容的机会的投标做出响应。中间服务器102可以选择中标并且从单个服务器请求选择的内容。
在其他实现方式中,可以由内容服务器104使用类似的匹配表来执行cookie匹配。内容服务器104可以接收由客户端设备提供并由中间服务器转发的cookie(所述cookie指向中间服务器的域或与中间服务器的域相关联),并在它们自己的匹配表中查找相应的cookie。因此,在每种实现方式中,为了提供隐私的措施,cookie是域或内容服务器特定的,并且不在不同域的内容服务器104之间共享,并且必须与由客户端设备提供的cookie匹配。
典型的浏览器cookie具有一些严重的缺点。在网站内提供嵌入式内容的第三方内容提供者104可以提供cookie来跟踪浏览器,而用户不必知道他们已被这些第三方标识或跟踪(例如,因为在浏览器地址栏中显示的地址可能仅识别主页的来源,不一定识别嵌入的内容)。因此,用户可能难以识别潜在的隐私问题并控制其个人信息的隐私。
因为典型的浏览器cookie是特定于域的,所以如上所述,内容提供者利用cookie匹配来生成来自一个内容提供者的cookie和另一内容提供者的cookie之间的关联。Cookie匹配的一种实现方式利用页面内的小的嵌入式内容项(例如,导致浏览器请求图像的1像素x 1像素“不可见”图像,以及相应cookie的传输,称为“跟踪像素”),请求由一个实体接收并重定向到另一实体。这导致两次往返通信交换以“渲染”像素:对第一实体的请求和带有重定向地址的响应,以及对第二实体的请求和响应。对于具有十个或更多嵌入式跟踪像素的典型页面,执行这些通信可能会花费大量时间。如果用户在通信完成之前导航离开页面,则可能无法识别匹配。结果,cookie匹配缓慢,经常不完整,减慢了网页的渲染,消耗了带宽并缩短了电池寿命。此外,cookie匹配允许第三方实体以非透明的方式跟踪在线行为,而无需用户提供明确的同意,这对用户隐私构成了威胁。另外,在填充cookie匹配表之后,中间服务器和内容服务器此后可以自由共享用户数据,而无需任何用户透明和控制,因为其他请求和服务器之间的数据交换不需要遍历客户端设备。即使用户清除了客户端设备上的缓存的cookie或账户标识符,此类用户数据共享也可能继续。即使在服务器处使用退出机制也可能无法提供安全性或隐私。
图1C是根据一些实现方式的示例性cookie匹配表135的图示。中间服务器102可以例如保存这样的表135,并且用设备标识符或cookie以及内容服务器cookie来填充该表。如图所示,该表可能会根据客户端设备和内容服务器的数量而非常大、非常快地增长。在具有成千上万的客户端设备或更多以及成百上千的内容提供者的典型实现方式中,该表可能需要大量存储,并且需要大量服务器资源(例如处理器时间和存储器)进行搜索以识别匹配项。
因此,传统的浏览器cookie实现方式可能缓慢且效率低下,消耗大量服务器资源,由于在跟踪和创建匹配表期间存在长时延而导致不准确或匹配不佳,并且可能由于来自跟踪像素的额外的来回通信会显著增加web页面渲染的延迟。另外,这些实现方式可能具有较差的安全性或隐私,和/或可能缺乏对用户的审核或透明性,这些用户可能无法确定是否或如何共享其私人信息。
相反,本文所讨论的系统和方法使用安全、用户透明且高效的内容提供者特定的标识符(“CPSID”)(有时称为“只读Cookie”(“ROC”))来替代传统浏览器Cookie。这些内容提供者特定的标识符可以由客户端设备生成,并用内容提供者的公钥加密,从而防止第三方间接识别匹配,并消除了对提供者方Cookie匹配表和资源密集型跟踪通信的需求。内容提供者特定的标识符的生成可以由用户策略控制,使得仅针对以下内容提供者来创建标识符:具有例如可从域内的预定地址检索的兼容服务条款(ToS)的内容提供者;在白名单(例如,用户明确提供同意的内容提供者)上的内容提供者;和/或不在黑名单(例如,用户明确拒绝同意的内容提供者)上的内容提供者。
内容提供者特定的标识符可以从浏览器、应用、设备或会话特定的私有标识符(例如,特定与该设备的其他用户分开的用户的特定于浏览器实例的标识符)以及内容提供者的域名或地址(例如“example.com”)的输入中生成为加密散列(例如,任何合适的散列算法,例如MD5、SHA256等)。在一些实现方式中,为了提供附加的盐,散列输入可以包括针对内容提供者特定的标识符的创建时间或到期时间,例如,其可以与任一输入值级联。可以利用其他熵的源来类似地增加散列输入的复杂度,散列输入例如是设备类型或序列号、时钟偏斜时间、硬件标识符或任何其他此类数据。在一些实现方式中,“到期时间”可以是粒度值,例如在内容提供者特定的标识符到期之前的几周、几个月或几年,从而允许客户端自动进行再生。在一些实现方式中,内容提供者特定的标识符可以在客户端设备上的各个应用之间进行统一,从而可以将相同的内容提供者特定的标识符用于来自设备上每个浏览器、移动应用、webview等的请求。例如,对于加密散列的输入可以包括内容提供者的域名或地址加上设备特定的标识符,以使输入相同,而不管哪个应用触发了散列计算(例如,设备上的web浏览器与视频游戏)。
在其他实现方式中,内容提供者特定的标识符或只读Cookie(ROC)可以是存储在由内容提供者的域(例如example.com)键入的的查找表中的随机生成的值。与计算散列结果相比,这可能需要更少的处理器资源,但是可能需要用于表的大存储空间。
内容提供者特定的标识符可以由客户端设备经由内容提供者的公钥来加密,以生成加密的只读cookie(“eROC”)。在一些实现方式中,客户端设备可以在加密之前将内容提供者特定的标识符与创建时间戳和/或随机数(例如,随机数盐)进行级联,使得即使对于单个域所得到的eROC也高度地变化。因此,预期的内容提供者可能能够解密和提取内容提供者特定的标识符,而其他拦截该标识符的内容提供者(例如,尝试执行cookie匹配的那些内容提供者)或恶意中介(例如中间人攻击者)将无法这样做。为了允许内容提供者之间的数据交换,第一内容提供者可以从客户端设备请求第二内容提供者的eROC,并且可以将接收的eROC转发给其指定或“合法”所有者,即第二内容提供者。由于接收的Cookie是使用第二内容提供者的公钥加密的,因此第一内容提供者可能无法解密或恢复第二内容提供者的原始的ROC,而只能转发eROC并请求关联的数据。因此,拥有适当的eROC指示已由客户端设备授权进行用户数据交换。因为每个请求都必须遍历客户端设备,所以客户端设备可以控制隐私和内容提供者之间的数据交换,还可以为任何此类传输生成审核日志或数据交换日志,从而增加了用户的透明度。
图1D是示出根据一些实现方式的利用内容提供者特定的标识符的cookie交换的流程图。在步骤150,客户端设备100可以请求内容项。在一些实现方式中,该请求可以在网页的渲染期间生成,例如,对于在网页中嵌入内容(例如横幅或其他图像)、媒体文件(例如前卷、后卷或插页式媒体文件)或任何其他此类内容的请求。在一些实现方式中,该请求可以针对未知的内容项,使得内容服务器104可以选择适当的内容项。在一些实现方式中,该请求可以包括客户端设备的设备标识符或其他标识符,包括用户名、账户名、地址或硬件标识符或任何其他此类信息。
在步骤152中,中间服务器可以接收该请求并选择一个或多个内容服务器或提供者以向客户端设备100提供内容。在一些实现方式中,内容服务器的选择可以基于负载平衡要求、拍卖赢家或任何其他此类方法。例如,中间服务器102可以从内容服务器列表中选择十个内容服务器104以潜在地提供内容,并且可以随着每个新请求旋转通过服务器。在一些实现方式中,中间服务器可以与内容服务器104通信,以请求投标或其他要约以向客户端设备100提供内容的机会。中间服务器可以选择一个或多个获胜投标来提供内容。
中间服务器102可以生成响应,该响应标识已经被选择以潜在地与客户端设备100交换数据的内容服务器。该响应可以包括每个所选内容服务器104的域或地址或其他这种标识符,所述标识符级联在一起。在一些实现方式中,标识符可以具有预定长度,例如32或64字节,其中填充较短的域或地址和截断较长的域。然后,由于客户端设备100可以根据预定长度提取每个标识符,因此可以直接级联标识符。在其他实现方式中,标识符可以由定界符(例如,预定字符或字符串)分隔。在步骤154,中间服务器可以将标识符列表传送到客户端设备。
在步骤156,客户端设备可以为列表中的每个内容服务器生成加密的只读cookie或内容提供者特定的标识符。如上所述,客户端设备可以从列表中提取内容提供者的标识符,例如域名或地址。客户端设备可以计算域名或地址的加密散列,加上客户端设备100所保存的并且不与其他设备共享的私钥或标识符。在一些实现方式中,可以将附加的盐应用于散列,或者可以将附加的数据用作熵的源,例如cookie的创建日期或cookie的到期日期。在一些实现方式中,“到期时间”可以是粒度值,例如在内容提供者特定的标识符到期之前的几周、几个月或几年,从而允许客户端自动进行重生。可以使用任何合适的单向散列函数,适当的散列函数在所利用的地址空间内具有很少或没有冲突(例如,域或地址长度加上私钥再加上任何其他熵盐)。散列函数可以包括MD5、SHA256或任何其他此类函数。
在一些实现方式中,代替计算散列结果,客户端设备可以代替地保存例如使用客户端设备的私钥或标识符作为种子来计算或以其他方式生成(例如,从随机数生成器或伪随机数生成器的输出)的随机值的查找表。查找表的索引可以包括内容提供者的域或地址。在一些实现方式中,可以预先生成查找表,而在其他实现方式中,如果条目并未已经存在,则客户端设备可以针对每个域或提供者标识符将条目添加到查找表中。
因此,无论是通过加密散列函数生成还是通过查找表中的随机数据生成,客户端设备都可以检索或创建特定于每个内容提供者的唯一标识符,但可重复,因为客户端设备可以检索或创建相同标识符,以便进一步请求内容提供者的cookie(在一些实现方式中,至少在cookie到期或用户重置之前)。
为了为cookie提供安全性,客户端设备100可以使用内容提供者的公共加密密钥对每个cookie进行加密。可以在cookie生成期间预先检索或动态检索密钥(例如,客户端设备可以从内容提供者的域的预定位置或地址中检索密钥,例如“example.com”域的“key.html”文件或“example.com/key.html”)。因此,在步骤154,客户端设备可以为列表中标识的每个内容提供者生成加密的只读cookie或eROC。在步骤158,可以在进一步的请求中将这些eROC提供给中间服务器102。在一些实现方式中,eROC可以直接级联,并且可以具有预定的长度(例如64字节、256字节等)。在其他实现方式中,eROC可以具有可变的长度,并且可以由预定的标识符或字符串(例如,URL中的参数-值对等)隔开。
在一些实现方式中,可以为在步骤154接收的列表中的每个内容提供者提供eROC。在其他实现方式中,客户端设备可以应用策略来过滤列表或者包括或排除内容提供者。例如,在一些实现方式中,客户端设备可以从每个域检索服务条款(ToS)文档以确保符合隐私和安全性要求。仅当可以检索到ToS文档时,和/或仅当ToS文档包括或匹配预定字符串(例如,安全策略、合法赔偿等)时,客户端设备才可以为提供者生成eROC。类似地,在一些实现方式中,客户端设备可以保存内容提供者的白名单和/或黑名单,使得必须在白名单中标识提供者,或者在黑名单中未标识提供者,以便客户端设备为提供者生成eROC。这可以向用户或管理员提供对可以接收可识别信息的内容提供者的控制措施。在一些实现方式中,黑名单可以由已经识别出恶意行为者的第三方实体(诸如安全机构或组)提供。
在接收到eROC时,在步骤160中,中间服务器102可以从响应中提取每个eROC,并将eROC与对于内容的请求一起转发给对应的内容提供者。在一些实现方式中,服务器102可以串行地提取和转发请求,在提取和转发下一个请求之前,等待来自内容提供者的响应或超时定时器到期;同时在其他实现方式中,服务器可以并行提取并转发多个请求。
每个内容提供者在接收到请求和与所述内容提供者相对应的eROC之后,可以在步骤162使用其私钥对eROC解密以恢复ROC。如上所述,因为ROC是作为随机数或单向散列结果生成的,内容提供者可能无法提取客户端设备的私有标识符。尽管如此,ROC对于该内容提供者可能是唯一的,并且可以用于将客户端设备唯一地标识为内容提供者特定的标识符(CPSID)。内容服务器可以选择要递送给客户端设备的内容,并且可以将内容传送给中间服务器164,后者可以在步骤166将内容转发给客户端设备。在一些实现方式中,内容服务器可以将内容直接传送给客户端设备。例如,在一些实现方式中,客户端设备可以在步骤154向列表中标识的每个内容服务器104传送eROC和请求,在步骤158-160绕过中间服务器;并且内容服务器可以在步骤164-166答复绕过中间服务器。在一些此类实现方式中,无需对ROC进行单独加密;相反,可以经由诸如HTTPS之类的加密协议来传送直接传送到对应内容服务器104的每个请求。在这样的实现方式中,可以通过协议加密来保护ROC免受第三方行为者的侵害,并且不需要由客户端单独加密ROC。取而代之,可以仅对间接通信(例如,经由中间服务器或其他内容服务器,如下所述)加密ROC。
如上所述,在一些实现方式中,内容服务器104可能具有共享用户数据的合法需要(例如,用于域之间的联合服务)。为了在保持安全性和私密性的同时实现方式这一点,在一些实现方式中,第一内容服务器104和/或中间服务器102可以向客户端设备发信号指示其希望与第二内容服务器交换数据。这可以通过对浏览器API的javascript调用、通过网页中的特殊标记参数、通过可公开访问的合作伙伴文件(例如,标识内容提供者将与之共享数据的域等)、通过HTTPS响应标头(用于标识元数据中的另一个域)或任何其他此类方式来完成。为了允许数据交换,客户端设备可以将与第一内容提供者相对应的eROC传送到所述第一内容提供者(以便第一内容提供者可以解密ROC并识别客户端设备),并且还可以传送与第二内容提供者相对应的eROC到所述第一内容提供者。例如,这些eROC可以在对内容的请求中被传送到内容提供者。由于第一内容提供者缺少第二内容提供者的私钥,因此它可能无法解密第二eROC并恢复第二ROC;但是,它可以将第二eROC与对用户数据的请求一起转发给合作伙伴内容提供者。在接收到请求之后,第二内容提供者可以解密第二eROC,根据ROC识别客户端设备,并将所请求的数据提供给第一内容提供者。在一些实现方式中,内容提供者可以针对时间周期缓存或存储在其自己的ROC和其伙伴内容提供者的eROC之间的映射,使得它可以使用eROC来请求其他数据。但是,在许多实现方式中,可能不允许或高度限制这种缓存,以使客户端设备可以保存用户数据交换的准确审核日志。
因为客户端设备接收到共享数据并提供eROC的请求,所以客户端设备能够生成在内容提供者之间或中间服务器102与内容服务器104之间共享数据的每个实例的审核日志或记录,以及应用隐私和安全策略(例如,防止此类数据在黑名单实体之间共享或将共享限制为白名单实体等)。
图2是示出用于内容提供者特定的标识符的计算设备的实现方式的框图。如上所述,客户端设备100可以不同地称为客户端、设备、客户端设备、计算设备、用户设备或任何其他此类术语,可以是台式计算机、膝上型计算机、平板计算机、智能电话、视频游戏控制台、智能电视或机顶盒、服务器、工作站或能够通过网络106通信的任何其他类型和形式的计算设备。在一些实现方式中,客户端设备100可以执行用于通过网络106进行通信的应用、服务、服务器、守护程序、例程或其他可执行逻辑,例如web浏览器、邮件客户端、视频播放器、音乐播放器、视频游戏或任何其他此类应用。这样的应用可以包括命令行界面、图形用户界面或这些或其他界面的任意组合。在客户端设备是智能电视或机顶盒的实现方式中,客户端设备可以通过第一接口(例如,地面、卫星或有线广播)接收内容;并可以通过网络106通过第二接口(例如,以太网或WiFi接口)与观众测量服务器进行通信。在其他实现方式中,客户端设备100可以经由网络106接收内容,并且可以经由网络106传送交互的标识。
客户端设备100可以是被配置为经由网络106进行通信的任意数量的不同类型的用户电子设备,包括但不限于膝上型计算机、台式计算机、平板计算机、智能电话、数字视频记录器、电视机机顶盒、视频游戏控制台或任何其他类型和形式的计算设备或设备组合。在一些实现方式中,客户端设备100的类型可以被分类为移动设备、台式设备或旨在保持静止或被配置为主要经由局域网来访问网络106的设备,或者诸如媒体消费设备的另一类电子设备。
在许多实现方式中,客户端设备100包括处理器200和存储器206。存储器206可以存储机器指令,该机器指令在由处理器200执行时使处理器200执行本文所述的一个或多个操作。处理器200可以包括微处理器、ASIC、FPGA等或其组合。在许多实现方式中。处理器200可以是多核处理器或处理器阵列。存储器206可以包括但不限于电子、光学、磁性或能够向处理器200提供程序指令的任何其他存储设备。存储器206可以包括软盘、CD-ROM、DVD、磁盘、存储器芯片、ROM、RAM、EEPROM、EPROM、闪存、光学介质或处理器200可以从中读取指令的任何其他合适的存储器。指令可以包括来自任何合适的计算机编程语言的代码,该计算机编程语言例如但不限于C、C++、C#、Java、JavaScript、Perl、HTML、XML、Python和VisualBasic。
客户端设备100可以包括一个或多个网络接口202。网络接口202可以包括任何类型和形式的接口,包括:包括10Base T、100Base T或1000Base T(“千兆比特”)的以太网;802.11无线的任何种类,例如802.11a、802.11b、802.11g、802.11n或802.11ac;蜂窝,包括CDMA、LTE、3G或4G蜂窝;蓝牙或其他短距离无线连接;或这些接口或用于与网络106通信的其他接口的任何组合。在许多实现方式中,客户端设备100可以包括多个不同类型的网络接口202,从而允许通过不同子网连接到各种网络106或诸如因特网的网络106。
客户端设备100可以包括一个或多个用户界面设备204。用户界面设备204可以是通过生成感官信息(例如,显示器上的可视化、一个或多个声音、触觉反馈等)将数据传送到用户和/或将从用户接收的感官信息转换为电子信号的任何电子设备(例如键盘、鼠标、定点设备、触摸屏显示器、麦克风等)。根据各种实现方式,一个或多个用户界面设备可以在客户端设备100的壳体内部,例如内置显示器、触摸屏、麦克风等,或者在客户端设备100的壳体外部,例如连接到客户端设备100的监视器、连接到客户端设备100的扬声器等。
客户端设备100可以在存储器206中包括应用208或可以使用处理器200执行应用208。应用208可以是应用、小应用、脚本、服务、守护程序、例程或用于接收内容和通过客户端设备的输出接口204(例如显示器、扬声器等)显示或否则输出内容的其他可执行逻辑。在一种实现方式中,应用208可以是web浏览器。应用208可以包括用于显示经由网络接口202接收的和/或由处理器200本地生成的内容的功能。在一些实现方式中,应用208可以是媒体播放器或包括嵌入式媒体播放器,例如在web浏览器中的插入式或本地媒体播放器。应用208可以提供用于与在媒体播放器中播放的内容进行交互的用户界面,例如跳过控件、不喜欢的按钮或任何类似的界面。
客户端100可以包括设备标识符210或由设备标识符210标识。设备标识符210可以是字母数字字符串、数据字符串、序列号、媒体访问控制(MAC)地址、互联网协议(IP)地址、用户名或账户名、全局唯一标识符(GUID)、Cookie、随机或伪随机数或任何其他类型和形式的标识符,包括这些或其他标识符的组合。在一些实现方式中,设备标识符210可以固定到设备或在设备中预先配置,例如制造商序列号或MAC地址,而在其他实现方式中,设备标识符210可以由内容提供者、流服务器、应用208或其他实体(例如Cookie或用户名)动态地设置。在一些实现方式中,可以为与内容提供者和/或受众测量服务器的每次通信设置唯一的或新的设备标识符210,而在其他实现方式中,可以不改变设备标识符210,或者可以周期性地(例如每小时、每天、每周等)或以其他间隔(例如,在客户端设备重启、登录到互联网服务等时)改变设备标识符210。在一些实现方式中,设备标识符210可以与一个或多个其他设备标识符210(例如,用于移动设备的设备标识符、用于家用计算机的设备标识符等)相关联。在许多实现方式中,如上所述,设备标识符210可以由内容提供者生成和/或传送到设备100。在其他实现方式中,如上所述,客户端100可以向测量服务或内容提供者请求设备标识符或cookie 210,并且可以与对内容或测量数据的请求相关联地将设备标识符或cookie210传送到测量服务或内容提供者。
在各种实现方式中,客户端设备100可以包括只读cookie查找表(LUT)216;和/或加密器214。如上所述,在一些实现方式中,ROC LUT 216可以包括用于每个内容提供者的随机标识符,其由对应的内容提供者的标识符(例如,域名、地址等)索引。随机标识符可以是预生成的,也可以是动态生成的(例如,在向LUT添加新的提供者时)。在一些实现方式中,设备标识符210可以用作用于生成随机标识符的种子。在其他实现方式中,加密器214可以用于根据设备标识符210的输入以及内容提供者的域或地址(以及如上所述的潜在的附加熵盐)来计算散列结果。加密器214可以包括硬件或软件或者硬件和软件的组合。在一些实现方式中,加密器214可以包括加密模块、可信平台模块(TPM)、ASIC或用于执行加密和加密散列计算的任何其他类型和形式的电路。
客户端设备100可以执行标识引擎212。标识引擎212可以包括应用、服务器、服务、守护程序、例程或其他可执行逻辑,用于从查找表216标识和检索ROC或用于基于设备标识符210和内容提供者的域或地址为内容提供者生成ROC。标识引擎可以被配置为生成或检索多个ROC,经由加密器214对ROC进行加密,并且将加密的ROC传送到中间服务器或直接传送到内容提供者104(例如,与对内容的请求一起)。
在图2中也示出了中间服务器102的实现方式的框图。与客户端设备100一样,中间服务器102可以包括一个或多个处理器200、存储器或存储设备206、网络接口202和用户界面204。在作为无头服务器的一些实现方式中,服务器102可以不包括用户界面204,但是可以经由网络106使用用户界面204与客户端100或内容提供者进行通信。在一些实现方式中,存储器206可以存储一个或多个应用以供服务器的处理器200执行,该服务器包括FTP服务器、web服务器、邮件服务器、文件共享服务器、对等服务器或其他此类应用,该其他词类应用用于传递内容或重定向命令,以允许客户端访问在内容提供者处的内容。
在一些实现方式中,中间服务器102可以包括内容提供者选择器220和/或cookie提取器222。内容提供者选择器220和cookie提取器222可以各自包括应用、服务器、服务、守护程序、例程或其他可执行逻辑。内容提供者选择器220可以被配置为例如通过轮询或其他负载平衡系统或通过基于拍卖的系统从内容提供者的列表中选择内容提供者104。因此,在一些实现方式中,内容提供者选择器220可以被配置为向内容提供者104传送请求并从内容提供者104接收响应,例如对向客户端设备提供内容的机会的投标。内容提供者选择器220还可被配置为生成对客户端设备100的请求的响应,该请求包括所选择的内容提供者的标识符,例如域或地址,从而客户端设备可以生成相应的eROC。
如上所述,在一些实现方式中,可以在来自客户端的进一步请求中将这些eROC提供给中间服务器102;在这样的实现方式中,cookie提取器222可以从请求中提取每个eROC,并将请求和对应的eROC转发给每个内容提供者。在其他实现方式中,客户端设备可以直接请求内容提供者的内容,并且可以将请求和相应的eROC传送到每个内容提供者。在一些实现方式中,每个eROC可以作为请求中的参数值对,作为数据的级联字符串(例如,在各种实现方式中由定界符分隔或具有固定长度),或以任何其他这样的格式被接收。因此,cookie提取器222可以被配置为从包括eROC的接收的请求中提取预定数量的字节,并将提取的eROC转发给对应的内容提供者。在一些实现方式中,可以在对从客户端接收的对于内容的请求中明确地标识每个内容提供者。例如,该请求可以包括内容提供者标识符和eROC的集合(例如“example.com,[eROC];example.org,[eROC]等”),这些内容提供者标识符和eROC或者由定界符或其他标识符分隔开,或者具有划分对应的字段的预定长度。在其他实现方式中,eROC的集合可以与中间服务器提供给客户端设备的内容提供者的列表一一对应(例如,在以上讨论的图1D的步骤154)。例如,给定标识了多个内容提供者(例如“example1.org、example2.org、example3.org等”)的列表,客户端可以为每个内容提供者生成或检索eROC,并将它们按相同的顺序附加到请求中(例如“eROC1、eROC2、eROC3等”);因此,中间服务器可以提取每个eROC并按照列表中标识的顺序将其转发到对应的内容提供者,而无需在客户端的请求中重新标识每个内容提供者。在这种实现方式中,服务器可能需要将列表保存在缓冲器或高速缓存中。在进一步的这种实现方式中,如果任何内容提供者104与客户端设备的策略不匹配(例如,没有在客户端设备保存的白名单中列出或在黑名单中列出,或者缺少兼容的ToS文档),则客户端设备可以为此类内容提供者提供默认(例如全零)、空值或随机数据串来代替eROC。对于默认或空数据串,中间服务器102可以被配置为丢弃数据串而不将其转发给内容提供者。对于随机数据串,中间服务器102可以将该串转发给内容提供者,就好像它是适当的eROC一样,其中内容提供者要么不能解密数据串,要么只能恢复无效数据。
在图2中也示出了内容提供者104。内容提供者104可以包括一个或多个计算设备,其连接到网络106并且被配置为直接或经由中间服务器102向客户端100提供内容。内容提供者可以被不同地称为内容提供者、服务器、web服务器、数据服务器、发布者、服务提供者或其他类似术语。在许多实现方式中,内容提供者可以包括被配置为服务器场或云的多个计算设备,并且可以包括路由器、负载平衡器、网络地址转换器、防火墙或其他这样的设备。内容提供者可以是计算机服务器(例如,FTP服务器、文件共享服务器、web服务器等)或服务器的组合(例如,数据中心、云计算平台等)。内容提供者可以提供任何类型和形式的内容,包括文本、图像、视频、音频、多媒体或其他数据或这些的任意组合。内容可以包括实况媒体内容、预记录的媒体内容、渲染的内容、电影、电视节目、播客、视频博客、视频游戏或其他交互式内容、任何格式的广告、社交媒体或任何其他类型和形式的内容。
如图所示,内容提供者104可以包括一个或多个处理器200、网络接口202、I/O接口204和/或存储器设备206。在许多实现方式中,内容提供者104可以包括多个计算设备,包括由物理设备执行的虚拟机。例如,内容提供者104可以包括由一个或多个物理计算设备执行的多个虚拟机,每个这样的虚拟机执行内容服务器(例如,web服务器、文件服务器、流媒体服务器等)并与一个或多个存储设备(例如网络存储设备、RAID存储设备或其他此类设备)通信。
内容提供者104可以包括内容选择器230。内容选择器230可以包括应用、服务、服务器、守护程序、例程或其他可执行逻辑,用于从内容存储234中选择内容以递送给客户端设备100。在许多实现方式中,内容选择器230可以基于存储在标识符数据库232中的关于客户端的信息来选择要递送给客户端的内容。例如,数据库232可以包括关于设备能力的信息(例如,屏幕分辨率或取向、颜色深度、带宽等等)或用于选择定制内容(由ROC索引)的其他任何此类信息。在一些实现方式中,一旦从中间服务器102或直接从客户端设备100接收到eROC,内容提供者104就可以解密eROC以恢复只读cookie(ROC)。内容选择器230可以经由cookie在数据库232中识别关于客户端的信息,并从存储234中选择相应的内容。在各种实现方式中,内容选择器230可以将内容推送或流式传输到客户端设备100,以向客户端设备100提供内容的唯一资源标识符(URI)或地址,以便客户端应用208随后可以请求要传递和渲染的内容(例如,从内容提供者104的web服务器),或将URI或地址提供给中间服务器102,以用于转发到客户端设备。
尽管在存储器206中示出了内容存储234,但是在许多实现方式中,内容存储234可以由与内容提供者通信的一个或多个附加存储设备(例如,存储云、网络存储等)提供。如上所述,内容存储234可以包括任何类型和形式的数据,包括音频、视频、动画、文本、多媒体、静止或动画图形、可执行脚本或任何其他类型和形式的内容。
如上所述,标识符数据库232可以包括数据库、平面文件、索引文件或其他类型和形式的数据结构,用于将有关客户端设备、账户或会话的信息与只读cookie或内容提供者特定的标识符相关联。在一些实现方式中,标识符数据库232可以被存储在存储器206中,而在其他实现方式中,标识符数据库232可以被独立地存储并且被提供给内容选择器230(例如,由通过独的数据库服务器)。
内容提供者104可以包括解密器236。解密器236可以包括用于经由内容提供者的私钥解密加密的只读cookie的软件、硬件或硬件和软件的组合。解密器236可以执行任何合适类型的解密算法,并且可以包括解密电路,例如ASIC、FPGA、可信平台模块(TPM)或其他这样的元件。
图3A和3B是示出使用内容提供者特定的标识符或只读cookie进行数据交换的方法的实现方式的流程图。每个流程图被部分划分以示出由客户端设备100、中间服务器102或内容提供者104执行的步骤或过程。
在步骤300处,在一些实现方式中,客户端设备100可以将对内容的请求传输到中间服务器102。在一些实现方式中,例如在渲染网页时或在播放另一内容项时遇到定时事件期间,客户端设备100上的应用(例如web浏览器或媒体应用)可以生成对于内容的请求。该请求可以通过任何合适的方式(例如,HTTPS请求、RESTful请求等)来传送,并且在一些实现方式中可以包括执行握手过程。在一些实现方式中,该请求可以包括设备标识符、账户标识符、用户标识符、会话标识符或其他这样的标识符,或者由客户端设备(例如,ROC)为中间服务器102唯一地识别客户端设备而生成的cookie。例如,在一些实现方式中,中间服务器102可以事先向客户端设备100提供cookie(例如,在认证过程或其他这样的事件期间),并且客户端设备100此后可以在请求中提供相同的cookie。
在一些实现方式中,在步骤302中,中间服务器102可以选择内容提供者以潜在地向客户端设备提供内容。如上所述,可以通过诸如拍卖系统或轮询算法或其他负载平衡系统之类的任何方法来选择内容提供者。在一些实现方式中,中间服务器102可以将请求传送到内容服务器104以获得投标,确认其可以提供内容,或者传送其他这样的请求(未示出),并且可以基于响应来选择内容服务器104。
在步骤304,中间服务器102可以将所选提供者添加到潜在地提供内容的提供者列表中。添加提供者可以包括将提供者的域名或地址添加到列表,将域名或地址级联到一组名称或地址,或者否则将提供者的标识添加到列表。
在步骤306,中间服务器可以确定是否应将其他提供者添加到列表中。在一些实现方式中,列表可以具有预定的长度(例如5个提供者、10个提供者等),并且中间服务器可以添加提供者直到达到该长度。在其他实现方式中,中间服务器可以添加提供者,直到达到计时器到期为止。例如,中间服务器102可以向内容提供者传送对投标或提供内容的可用性的请求,并且可以将在5秒、3秒、1秒或任何其他这样的时间段内做出响应的任何提供者添加到列表中。可以迭代地重复步骤302-306,直到列表完成(例如,达到预定长度或时间段,或者已经向所有提供者发出请求,或者将所有提供者添加到列表中,等等)。在步骤308,中间服务器可以将生成的列表传送到客户端设备作为对第一请求的响应。
在步骤310,客户端设备可以从列表中提取第一内容提供者域或地址。如上所述,在各种实现方式中,该列表可以包括预定长度的字段或由定界符分隔的可变长度字段。客户端设备可以相应地根据长度或定界符提取域或地址。
如上所述,在一些实现方式中,客户端设备可以保存查找表,该查找表具有针对每个内容提供者的随机生成并由内容提供者域或地址或其他标识符来索引的只读cookie。在这样的实现方式中,在步骤312A,客户端设备可以识别相应的ROC。如上所述,在一些实现方式中,可以用随机ROC值预填充该表。在其他实现方式中,客户端设备可以为提供者确定表中是否存在ROC;如果不是,则可以为提供者生成新的随机ROC(例如,使用客户端设备的私有标识符、随机种子或系统时间和/或任何其他熵的源,包括硬件随机数生成器、软件随机数生成器、网络特征(例如延迟、抖动、错误率等)或任何其他此类信息)。
在其他实现方式中,在步骤312B,客户端设备可以计算应用于内容提供者的域或地址或其他标识符的输入以及客户端设备的私钥或标识符的散列算法的结果。在一些实现方式中,可以使用附加的熵,例如cookie的到期时间或创建时间。可以使用任何合适的散列算法。在一些实现方式中,可以在生成之后(在一些实现方式中,对于临时时间段,诸如直到预定的到期时间段结束)由客户端设备存储或高速缓存cookie,以减少加密散列所需的计算资源。在这样的实现方式中,与步骤312A一样,客户端设备可以首先确定是否已经预先生成了用于内容提供者的ROC并将其存储在高速缓存中;如果不是,则可以计算散列并生成新的ROC。
在一些实现方式中,在步骤314,客户端设备可以例如在预定地址(例如“[domain]/key.html”)或其他此类位置检索内容提供者的公钥,或者可以发起HTTPS/TLS握手会话以获取内容提供者的公钥。在另一个实现方式中,预定的“受信任”服务器可以取回多个内容提供者的公钥,以传输到每个客户端设备或由每个客户端设备检索。在步骤316,客户端设备可以使用对应的内容提供者的公钥来加密缓存、检索或生成的ROC。在许多实现方式中,步骤314可以在步骤312A或312B之前执行。在许多实现方式中,内容提供者的公钥可以在该方法的第一通信或迭代期间由客户端设备缓存或存储,并且在随后的迭代期间,客户端设备可以从缓存或数据存储中检索公钥。例如,查找表可以存储内容提供者的ROC及其先前检索的公钥。在根据散列计算ROC的实现方式中,客户端设备仍可以保存由内容提供者域或地址索引的公钥的查找表,以在步骤314进行检索。
在步骤318,客户端设备可以确定列表是否包括其他提供者,并且如果这样,则可以重复步骤310-318。
如上所述,在一些实现方式中,客户端设备可以将安全或隐私策略应用于提供者列表。例如,在步骤310之后,在生成或检索提供者的ROC之前,客户端设备可以首先确定提供者是在黑名单中被标识还是在白名单中未被标识。如果是这样,则客户端设备可以直接跳到步骤318。类似地,在一些实现方式中,客户端设备可以确定提供者是否具有遵从的ToS协议(例如,通过从预定地址(例如“[domain]/tos.html”)检索协议)。如果不是,则客户端设备可以直接跳到步骤318。
类似地,在一些实现方式中,客户端设备可以在审核日志中记录在列表中被识别和/或被选择为向客户端设备提供内容的每个内容提供者的标识。因此,审核日志可以指示哪个或哪些内容提供者可以与中间服务器102共享用户数据,或者哪对内容提供者可以在它们之间共享用户数据。审核日志为客户端设备的用户提供了透明度,并进一步控制了用户信息的安全性和隐私性。
在一些实现方式中,在步骤320,客户端设备可以将加密的ROC(eROC)的集合传送到中间设备。如上所述,eROC可以由定界符级联或分隔,并且可以包括对应的内容提供者的标识,或者可以是按照与原始接收的列表相对应的顺序。在一些实现方式中,在步骤322,中间服务器可以例如根据定界符或固定长度从该集合中提取eROC。在步骤324,中间服务器可以将eROC和对内容项的请求转发给提供者。在一些实现方式中,转发eROC和请求可以包括请求投标以向客户端设备提供内容。在步骤326,中间服务器可以确定从客户端设备接收的通信是否包括附加的eROC,如果是,则可以针对每个附加的eROC重复步骤322-326。
在其他实现方式中,如上所述,客户端设备可以绕过中间服务器将每个eROC传送到对应的内容提供者。例如,这可以在中间服务器在步骤302执行负载平衡或拍卖的实现方式中完成,特别是在中间服务器仅选择单个内容提供者的情况下。在这种情况下,无需执行从多个eROC中提取和转发eROC的操作,而是客户端设备可以直接与内容提供者进行通信。
转向图3B,每个内容服务器104可以如图所示从中间服务器102接收对内容和eROC的请求(或者如上面在一些实现方式中所讨论的,内容服务器104可以直接从客户端设备接收请求和eROC)。在步骤332,内容服务器可以使用其私钥解密eROC。
在步骤334,内容服务器可以确定解密的ROC是否在其本地cookie数据库中。例如,如果这是ROC首次接收来自特定客户端的内容请求,或者该客户端的旧ROC已过期,或者用户重置了ROC使得客户端生成了新的ROC,则ROC可能不在其数据库中。如果ROC不在其数据库中,则内容服务器可以在步骤336将ROC添加到其本地数据库中。
在步骤338,内容服务器可以选择内容项以递送到客户端设备。可以经由任何合适的方式来选择内容项,并且可以例如基于与内容服务器的本地数据库中的ROC相关联的信息,以及基于从客户端设备接收的信息、与客户端设备相关联的网络浏览或搜索历史、先前的内容请求或互动或任何其他类型和形式的信息针对客户端设备将内容项进行个性化或定制。
在一些实现方式中,在步骤340,内容服务器可以将选择的内容传送到中间服务器。在步骤342,中间服务器可以将内容转发到客户端设备。在一些实现方式中,中间服务器可以从多个内容服务器104接收内容(例如,步骤330-340可以由多个内容服务器并行执行)。中间服务器可以在步骤342选择内容项,例如经由投标过程或拍卖,或者响应于从多个内容服务器接收的第一内容项,转发给客户端设备,其中其余内容项被丢弃。在其他实现方式中,内容服务器可以绕过步骤342直接将所选内容传送到客户端设备。简短地返回图3A,在接收到所选内容项之后,客户端设备可以在步骤350渲染或显示内容。
因此,本文所讨论的系统和方法使用安全的、用户透明的和高效的内容提供者特定的标识符(“CPSID”)(有时称为“只读cookie”(“ROC”))来替代传统浏览器cookie。这些内容提供者特定的标识符可以由客户端设备生成,并用内容提供者的公钥加密,从而防止第三方间接识别匹配,并消除了对提供者方Cookie匹配表和资源密集型跟踪通信的需求。内容提供者特定的标识符的生成可以由用户策略控制,使得仅针对下述内容提供者来创建标识符:具有例如可从域内的预定地址检索的兼容服务条款(ToS)的内容提供者;在白名单(例如,用户明确提供同意的内容提供者)上的内容提供者;和/或不在黑名单(例如,用户明确拒绝同意的内容提供者)上的内容提供者。另外,这些系统和方法可以应用于类似于常规浏览器cookie的设备标识系统,例如广告商标识符(IDFA)或广告商ID(AdID)系统。在这些系统的常规实现方式中,可以在客户端设备上使用用户可重置的标识符,并在与接收者无关的基础上在请求中将其提供给内容服务器,并且服务器可以使用IDFA或AdID标识符自由交换数据,而无需用户监督或控制。相反,所公开的方法和系统可以用于提供内容服务器特定的标识符或ROC。
在一个方面,本公开针对一种用于域之中的受控数据交换的方法。该方法包括:通过客户端设备的网络接口从中间服务器接收由所述中间服务器选择的内容提供者的列表。该方法包括,对于所述内容提供者的列表中的每个内容提供者:由所述客户端设备的标识引擎生成内容提供者特定的标识符,以及,所述客户端设备的加密器使用对应的所述内容提供者的加密密钥对所述内容提供者特定的标识符进行加密。该方法还包括:通过所述客户端设备的网络接口向所述中间服务器传送针对所述内容提供者的列表中的每个内容提供者的加密的内容提供者特定的标识符,所述中间服务器将每个加密内容提供者特定的标识符转发给对应的所述内容提供者。
在一些实现方式中,生成内容提供者特定的标识符包括:所述加密器计算包括所述客户端设备的标识符和对应的所述内容提供者的域名的输入的加密散列。在进一步的实现方式中,对所述加密散列的输入还包括所述内容提供者特定的标识符的到期时间。在另一个进一步的实现方式中,所述客户端设备的标识符特定于由所述客户端设备执行的应用。在一些实现方式中,生成所述内容提供者特定的标识符包括:所述标识引擎在查找表中的与对应的内容提供者的域名相关联的索引处识别预定的随机值。在一些实现方式中,生成所述内容提供者特定的标识符还包括由所述标识引擎确定在所述客户端设备的黑名单中没有标识出对应的所述内容提供者。在一些实现方式中,生成所述内容提供者特定的标识符还包括由所述标识引擎确定在所述客户端设备的同意列表中标识了对应的所述内容提供者。在一些实现方式中,生成所述内容提供者特定的标识符还包括:所述标识引擎经由所述网络接口来检索对应的所述内容提供者的公钥。在一些实现方式中,该方法包括:将每个对应的内容提供者的指示添加到接收标识符的内容提供者的日志中。
在另一方面,本申请针对一种用于域之中的受控数据交换的系统。该系统包括标识引擎,该标识引擎被配置为为从中间服务器接收的内容提供者列表中的每个内容提供者生成内容提供者特定的标识符。该系统还包括:加密器,该加密器被配置为使用对应的所述内容提供者的加密密钥(例如,公钥)来加密每个内容提供者特定的标识符;以及网络接口,被配置为向所述中间服务器传输针对所述内容提供者列表中的每个内容提供者的加密的内容提供者特定的标识符,所述中间服务器将每个加密的内容提供者特定的标识符转发给对应的所述内容提供者。
在一些实现方式中,所述加密器还被配置为针对所述内容提供者列表中的每个内容提供者计算输入的加密散列,所述加密散列包括所述客户端设备的标识符和对应的所述内容提供者的域名。在进一步的实现方式中,对所述加密散列的输入还包括所述内容提供者特定的标识符的到期时间。在另一个进一步的实现方式中,所述客户端设备的标识符特定于由所述客户端设备执行的应用。
在一些实现方式中,所述标识引擎还被配置为:针对所述内容提供者列表中的每个内容提供者,在查找表中的与对应的所述内容提供者的域名相关联的索引处识别预定的随机值。在一些实现方式中,所述标识引擎还被配置为确定在所述客户端设备的黑名单中未标识出所述内容提供者列表中的每个内容提供者。
在一些实现方式中,所述标识引擎还被配置为确定在所述客户端设备的同意列表中标识了所述内容提供者列表中的每个内容提供者。在一些实现方式中,所述标识引擎还被配置为经由所述网络接口来检索所述内容提供者列表中的每个内容提供者的公钥。在一些实现方式中,所述标识引擎还被配置为将每个对应的内容提供者的指示添加到接收标识符的内容提供者的日志中。
在另一方面,本公开针对一种用于受控数据交换的系统。该系统包括与客户端设备和多个内容提供者通信的网络接口,所述网络接口被配置为从所述客户端设备接收对内容的请求。该系统还包括内容提供者选择器,该内容提供者选择器被配置为选择所述多个内容提供者的子集,并生成包括所述选择的子集的每个内容提供者的标识的列表。所述网络接口还被配置为:将所述列表传送到所述客户端设备;从所述客户端设备接收响应,所述响应包括针对所述多个内容提供者的另一个子集的每个内容提供者的加密的内容提供者特定的标识符;向所述另一子集的每个内容提供者传送对内容的其他请求,每个其他请求包括与所述接收者内容提供者相对应的加密的内容提供者特定的标识符;从第一内容提供者接收由所述内容提供者基于所述接收的加密的内容提供者特定的标识符选择的内容项,以及,将所述接收的内容项转发给所述客户端设备以供所述客户端设备呈现。
在一些实现方式中,该系统包括标识符提取器,所述标识符提取器被配置为从所述响应中提取每个加密的内容提供者特定的标识符,并将每个提取的加密的内容提供者特定的标识符与对应的所述内容提供者相关联。
在本说明书中描述的主题和操作的实现方式可以实现在数字电子电路中或在计算机软件、固件或硬件中,包括本说明书中公开的结构及其结构等同物或者它们的一个或更多的组合。本说明书中描述的主题的实现方式可以被实现为一个或多个计算机程序,即,计算机程序指令的一个或多个模块,其被编码在一个或多个计算机存储介质上,用于由数据处理装置执行或控制数据处理装置的操作。可选地或另外地,程序指令可以在人工生成的传播信号(例如,机器生成的电、光或电磁信号)上编码,所述信号被生成以对信息进行编码以传输到合适的接收机装置,以供数据装置设备执行。计算机存储介质可以是或包括在计算机可读存储设备、计算机可读存储基板、随机或串行存取存储器阵列或设备或它们中的一个或多个的组合中。此外,虽然计算机存储介质不是传播信号,但是计算机存储介质可以是在人工生成的传播信号中编码的计算机程序指令的源或目的地。计算机存储介质还可以是或者包括在一个或多个单独的组件或介质(例如,多个CD、盘或其他存储设备)中。因此,计算机存储介质可以是有形的。
在本说明书中描述的操作可以由数据处理装置对存储在一个或多个计算机可读存储设备上或从其他源接收的数据执行。
术语“客户端”或“服务器”包括用于处理数据的各种装置、设备和机器,诸如可编程处理器、计算机、片上系统或多个芯片上的系统或者上面部分的组合。该装置可以包括专用逻辑电路,例如FPGA(现场可编程门阵列)或ASIC(专用集成电路)。除了硬件之外,该装置还可以包括为所讨论的计算机程序创建执行环境的代码,例如构成处理器固件、协议栈、数据库管理系统、操作系统、跨平台运行时环境、虚拟机或它们中的一个或多个的组合的代码。装置和执行环境可以实现各种不同的计算模型基础设施,诸如web服务、分布式计算和网格计算基础设施。
计算机程序(也称为程序、软件、软件应用、脚本或代码)可以以任何形式的编程语言编写,包括编译或解释语言、声明性或过程语言,并且它可以以任何形式部署,包括作为独立程序或作为适于在计算环境中使用的模块、组件、子例程、对象或其它单元。计算机程序可以但不需要对应于文件系统中的文件。程序可以存储在保存其他程序或数据(例如,存储在标记语言文档中的一个或多个脚本)的文件的一部分中、专用于所述程序的单个文件中或者在多个协同文件中(例如,存储一个或多个模块、子程序或代码部分的文件)。计算机程序可以被部署为在一个计算机上或在位于一个地点或分布在多个地点并通过通信网络互连的多个计算机上执行。
本说明书中描述的过程和逻辑流程可以由执行一个或多个计算机程序的一个或多个可编程处理器执行,以通过对输入数据进行操作并生成输出来执行动作。过程和逻辑流程也可以被执行,并且装置也可以实现为专用逻辑电路,例如,FPGA(现场可编程门阵列)或ASIC(专用集成电路)。
适合于执行计算机程序的处理器包括但不限于通用和专用微处理器,以及任何种类的数字计算机的任何一个或多个处理器。通常,处理器将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的基本元件是用于根据指令执行行为的处理器和用于存储指令和数据的一个或多个存储器设备。通常,计算机还将包括用于存储数据的一个或多个大容量存储设备,例如磁盘、磁光盘或光盘,或者可操作地耦合以从其接收数据或向其传送数据。然而,计算机不需要具有这样的设备。此外,计算机可以嵌入在另一设备中,例如移动电话、个人数字助理(PDA)、移动音频或视频播放器、游戏控制台、全球定位系统(GPS)接收器或便携式存储设备(例如,通用串行总线(USB)闪存驱动器),这里仅举几个例子。适合于存储计算机程序指令和数据的设备包括所有形式的非易失性存储器、介质和存储器设备,包括但不限于半导体存储器设备,例如EPROM、EEPROM和闪存设备;磁盘,例如内部硬盘或可移动盘;磁光盘;和CD ROM和DVD-ROM盘。处理器和存储器可以由专用逻辑电路补充或并入专用逻辑电路中。
为了提供与用户的交互,本说明书中描述的主题的实现方式可以被实现在具有显示设备(例如,CRT(阴极射线管)、LCD(液晶显示器)、OLED(有机发光二极管)、TFT(薄膜晶体管)、等离子体、其他柔性配置,或用于向用户显示信息的任何其他监视器)以及键盘、指点设备(例如鼠标,轨迹球等)、或用户可以通过它们向计算机提供输入的触摸屏,触摸板等的计算机上。其他类型的设备也可以用于提供与用户的交互;提供给用户的反馈可以是任何形式的感觉反馈,例如视觉反馈、听觉反馈或触觉反馈;并且可以以任何形式接收来自用户的输入,包括声音、语音或触觉输入。另外,计算机可以通过向用户使用的设备发送文档或从用户使用的设备接收文档、通过响应从web浏览器收到的请求将网页发送到用户客户端设备上的web浏览器来与用户进行交互。
在本说明书中描述的主题的实现方式可以实现在计算系统中,该计算系统包括诸如作为数据服务器的后端组件,或者包括诸如应用服务器的中间件组件,或者包括诸如具有图形用户界面或Web浏览器的客户端计算机的前端组件,或者包括一个或多个这样的后端、中间件或前端组件的任何组合,用户可以通过该Web浏览器与本说明书中描述的主题的实现方式交互。系统的组件可以通过任何形式或介质的数字数据通信,例如通信网络,互连。通信网络包括局域网(“LAN”)和广域网(“WAN”)、网络间(例如,因特网)和对等网络(例如,自组织对等网络)。
在这里讨论的系统和方法收集关于用户的个人信息或者可以利用个人信息的情况下,可以向用户提供下述机会:控制程序或特征是否收集用户信息(例如,关于用户的社交网络、社交行为、职业、用户的偏好或用户的位置的信息),或者控制是否和/或如何从内容服务器或其他数据处理系统接收可能与用户更有关的内容。另外,某些数据在存储或使用之前可能会以一种或多种方式被匿名化,以便在生成参数时,删除个人身份信息。例如,可以对用户的身份进行匿名化,使得不能为用户确定个人可识别信息,或者可以在获得位置信息(例如,城市、邮政编码或州级)的情况下将用户的地理位置概括化,以至于不能确定用户的特定位置。因此,用户可以控制如何收集和由内容服务器使用关于用户的信息。
虽然本说明书包含许多具体的实现方式细节,但这些细节不应被解释为对任何发明或可能要求保护的内容的范围的限制,而是作为特定于特定发明的特定实现方式的特征的描述。在单独实现方式的上下文中,本说明书中描述的某些特征也可以在单个实现方式中组合地实现。相反,在单个实现方式的上下文中描述的各种特征也可以在多个实现方式中单独或以任何合适的子组合来实现。此外,尽管上文可以将特征描述为以某些组合起作用并且甚至最初要求如此,但是可以在一些情况下从组合中删除来自所要求保护的组合的一个或多个特征,并且所要求保护的组合可以针对子组合或子组合的变形。
类似地,尽管在附图中以特定顺序描绘了操作,但是这不应该被理解为要求以所示的特定顺序或依序执行这样的操作,或者要执行所有示出的操作,以实现期望的结果。在某些情况下,多任务和并行处理可能是有利的。此外,上述实现方式中的各种系统组件的分离不应该被理解为在所有实现方式中都需要这种分离,并且应该理解,所描述的程序组件和系统通常可以一起集成在单个软件产品中或者封装到多个软件产品内。
因此,已经描述了主题的特定实现方式。其他实现方式在所附权利要求的范围内。在一些情况下,在权利要求中所述的动作可以以不同的顺序执行并且仍然实现期望的结果。另外,附图中描绘的过程不一定需要所示的特定顺序或依序的顺序来实现方式期望的结果。在一些实现方式中,可以利用多任务或并行处理。

Claims (18)

1.一种用于域之中的受控数据交换的方法,包括:
由客户端设备的网络接口从中间服务器接收由所述中间服务器选择的内容提供者的列表;
对于所述内容提供者的列表中的每个内容提供者:
由所述客户端设备的标识引擎生成内容提供者特定的标识符;由所述标识引擎确定所述内容提供者特定的标识符可从由所述内容提供者执行的服务器的域内的预定网络地址检索;
由所述标识引擎经由所述网络接口从对应的所述内容提供者的位置检索对应的所述内容提供者的公钥,以及
由所述客户端设备的加密器使用对应的所述内容提供者的所述公钥对所述内容提供者特定的标识符进行加密;以及
由所述客户端设备的网络接口向所述中间服务器传送针对所述内容提供者的列表中的每个内容提供者的加密的内容提供者特定的标识符,所述中间服务器将每个加密的内容提供者特定的标识符转发给对应的所述内容提供者。
2.根据权利要求1所述的方法,其中,生成所述内容提供者特定的标识符包括:由所述加密器计算输入的加密散列,所述输入的加密散列包括所述客户端设备的标识符和对应的所述内容提供者的域名。
3.根据权利要求2所述的方法,其中,对所述加密散列的输入还包括所述内容提供者特定的标识符的到期时间。
4.根据权利要求2所述的方法,其中,所述客户端设备的标识符特定于由所述客户端设备执行的应用。
5.根据权利要求1所述的方法,其中,生成所述内容提供者特定的标识符包括由所述标识引擎在查找表中的与对应的内容提供者的域名相关联的索引处识别预定的随机值。
6.根据权利要求1所述的方法,其中,生成所述内容提供者特定的标识符还包括由所述标识引擎确定在所述客户端设备的黑名单中没有标识出对应的所述内容提供者。
7.根据权利要求1所述的方法,其中,生成所述内容提供者特定的标识符还包括由所述标识引擎确定在所述客户端设备的同意列表中标识了对应的所述内容提供者。
8.根据权利要求1所述的方法,还包括将每个对应的内容提供者的指示添加到接收标识符的内容提供者的日志中。
9.一种用于域之中的受控数据交换的系统,包括:
一个或多个计算机;以及
与所述一个或多个计算机耦合并存储指令的一个或多个存储设备,所述指令在由所述一个或多个计算机执行时使所述一个或多个计算机执行操作,所述操作包括:
从中间服务器接收的内容提供者的列表中的每个内容提供者生成内容提供者特定的标识符并且经由网络接口从对应的所述内容提供者的位置检索对应的所述内容提供者的公钥;
确定所述内容提供者特定的标识符可从由所述内容提供者执行的服务器的域内的预定网络地址检索;
使用对应的所述内容提供者的所述公钥来加密每个内容提供者特定的标识符;以及
向所述中间服务器传送针对所述内容提供者的列表中的每个内容提供者的加密的内容提供者特定的标识符,所述中间服务器将每个加密的内容提供者特定的标识符转发给对应的所述内容提供者。
10.根据权利要求9所述的系统,其中,所述操作还包括针对所述内容提供者的列表中的每个内容提供者计算输入的加密散列,所述输入的加密散列包括客户端设备的标识符和对应的所述内容提供者的域名。
11.根据权利要求10所述的系统,其中,对所述加密散列的输入还包括所述内容提供者特定的标识符的到期时间。
12.根据权利要求10所述的系统,其中,所述客户端设备的标识符特定于由所述客户端设备执行的应用。
13.根据权利要求9所述的系统,其中,所述操作还包括针对所述内容提供者的列表中的每个内容提供者,在查找表中的与对应的所述内容提供者的域名相关联的索引处识别预定的随机值。
14.根据权利要求9所述的系统,其中,所述操作还包括确定在客户端设备的黑名单中未标识出所述内容提供者的列表中的每个内容提供者。
15.根据权利要求9所述的系统,其中,所述操作还包括确定在客户端设备的同意列表中标识了所述内容提供者的列表中的每个内容提供者。
16.根据权利要求9所述的系统,其中,所述操作还包括将每个对应的内容提供者的指示添加到接收标识符的内容提供者的日志中。
17.一种用于受控数据交换的系统,包括:
与客户端设备和多个内容提供者通信的网络接口,所述网络接口被配置为从所述客户端设备接收对内容的请求;
内容提供者选择器,所述内容提供者选择器被配置为选择所述多个内容提供者的子集,并生成包括所选择的子集中的每个内容提供者的标识的列表;
其中,所述网络接口还被配置用于:
将所述列表传送到所述客户端设备,
从每个内容提供者的位置向所述客户端设备传送与所述多个内容提供者的另一个子集的每个内容提供者相对应的公钥,其中,所述公钥允许所述客户端设备的加密器对内容提供者特定的标识符进行加密,以生成所述多个内容提供者的所述另一个子集的每个内容提供者的加密的内容提供者特定的标识符,
从所述客户端设备接收响应,所述响应包括针对所述多个内容提供者的所述另一个子集中的每个内容提供者的所述加密的内容提供者特定的标识符,
向所述另一个子集中的每个内容提供者传送对内容的其他请求,每个其他请求包括与接收者内容提供者相对应的加密的内容提供者特定的标识符;
从第一内容提供者接收由所述内容提供者基于所接收的加密的内容提供者特定的标识符而选择的内容项,以及
将所接收的内容项转发给所述客户端设备以由所述客户端设备呈现。
18.根据权利要求17所述的系统,还包括标识符提取器,被配置为从所述响应中提取每个加密的内容提供者特定的标识符,并将每个提取的加密的内容提供者特定的标识符与对应的所述内容提供者相关联。
CN201880092162.9A 2018-04-05 2018-04-05 作为浏览器Cookie的替代的域特定浏览器标识符 Active CN112088374B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2018/026287 WO2019194811A1 (en) 2018-04-05 2018-04-05 Domain specific browser identifiers as replacement of browser cookies

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN202410446097.2A Division CN118313001A (zh) 2018-04-05 作为浏览器Cookie的替代的域特定浏览器标识符

Publications (2)

Publication Number Publication Date
CN112088374A CN112088374A (zh) 2020-12-15
CN112088374B true CN112088374B (zh) 2024-04-30

Family

ID=62092251

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201880092162.9A Active CN112088374B (zh) 2018-04-05 2018-04-05 作为浏览器Cookie的替代的域特定浏览器标识符

Country Status (6)

Country Link
US (2) US11601404B2 (zh)
EP (1) EP3759638B1 (zh)
JP (1) JP7132350B2 (zh)
KR (1) KR102390938B1 (zh)
CN (1) CN112088374B (zh)
WO (1) WO2019194811A1 (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10942909B2 (en) * 2018-09-25 2021-03-09 Salesforce.Com, Inc. Efficient production and consumption for data changes in a database under high concurrency
CN111600952B (zh) * 2020-05-15 2021-09-07 华人运通(上海)云计算科技有限公司 场景推送方法、执行方法、装置、终端、服务器和系统
CN111787088B (zh) * 2020-06-28 2023-04-28 百度在线网络技术(北京)有限公司 小程序数据处理的方法和装置
US11917022B1 (en) * 2020-07-15 2024-02-27 Quantcast Corporation Consent system
CN111881387B (zh) 2020-07-21 2024-04-26 北京百度网讯科技有限公司 用于小程序的数据处理方法、装置、设备和介质
IL276440A (en) * 2020-08-02 2022-03-01 Google Llc Using multilateral calculation techniques and k-anonymity to protect confidential information
CN112672354B (zh) * 2020-12-25 2022-02-01 四川长虹电器股份有限公司 一种应用程序升级认证方法、装置及智能终端设备
TWI778533B (zh) * 2021-03-03 2022-09-21 樂建中 網頁瀏覽器之瀏覽軌跡記錄方法

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101727553A (zh) * 2008-10-16 2010-06-09 国际商业机器公司 联合环境中启用数字权限管理的策略管理的方法和系统
CN102638581A (zh) * 2012-03-31 2012-08-15 奇智软件(北京)有限公司 一种cookie 信息存储方法和系统
CN102783115A (zh) * 2010-02-09 2012-11-14 交互数字专利控股公司 用于可信联合标识的方法和装置
CN102859509A (zh) * 2010-03-26 2013-01-02 微软公司 跟踪相同浏览器选项卡内的导航流
CN105850100A (zh) * 2013-12-24 2016-08-10 谷歌公司 用于受众测量的系统和方法
CN106471539A (zh) * 2014-08-14 2017-03-01 谷歌公司 用于混淆受众测量的系统和方法
CN107251528A (zh) * 2015-10-14 2017-10-13 智能管道科技有限公司 作为服务的网络标识
CN107256366A (zh) * 2012-08-30 2017-10-17 尼尔森(美国)有限公司 收集媒体印象和搜索项的分布式用户信息的方法和设备

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7475404B2 (en) 2000-05-18 2009-01-06 Maquis Techtrix Llc System and method for implementing click-through for browser executed software including ad proxy and proxy cookie caching
US7478434B1 (en) 2000-05-31 2009-01-13 International Business Machines Corporation Authentication and authorization protocol for secure web-based access to a protected resource
KR20060056311A (ko) 2003-07-14 2006-05-24 소니 가부시끼 가이샤 통신방법, 통신장치 및 프로그램
JP5323685B2 (ja) 2006-05-02 2013-10-23 コーニンクレッカ フィリップス エヌ ヴェ 改善されたドメインへのアクセス
US7904470B2 (en) * 2007-06-13 2011-03-08 Sap Ag Discovery service for electronic data environment
CN101960434A (zh) * 2008-03-05 2011-01-26 富士胶片株式会社 代理服务器以及控制它的方法和程序
US8874662B2 (en) * 2008-10-17 2014-10-28 Alan Graham Method and apparatus for controlling unsolicited messages in a messaging network using an authoritative domain name server
JP5397071B2 (ja) 2009-07-31 2014-01-22 富士通株式会社 中継装置、中継方法、および中継プログラム
US20110055552A1 (en) * 2009-09-02 2011-03-03 Max Planck Gesellschaft Zur Foerderung Der Wissenschaften Private, accountable, and personalized information delivery in a networked system
WO2013122869A1 (en) * 2012-02-13 2013-08-22 Eugene Shablygin Sharing secure data
US10084595B2 (en) * 2012-08-24 2018-09-25 At&T Intellectual Property I, L.P. Algorithm-based anonymous customer references
US9571390B2 (en) * 2013-11-25 2017-02-14 Cisco Technology, Inc. Path optimization for adaptive streaming
US10049392B2 (en) * 2014-05-20 2018-08-14 Oath Inc. Systems and methods for identity-protected advertising network
KR102333395B1 (ko) * 2015-02-17 2021-12-03 삼성전자 주식회사 이동통신 시스템의 단말에서 프로파일 수신을 위한 방법 및 장치
US9798896B2 (en) * 2015-06-22 2017-10-24 Qualcomm Incorporated Managing unwanted tracking on a device
US10348684B2 (en) * 2016-09-01 2019-07-09 Hewlett Packard Enterprise Development Lp Filtering of packets for packet types at network devices
US10630648B1 (en) * 2017-02-08 2020-04-21 United Services Automobile Association (Usaa) Systems and methods for facilitating digital document communication
US10902016B2 (en) * 2018-02-12 2021-01-26 Artem Shamsutdinov Autonomous interdependent repositories

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101727553A (zh) * 2008-10-16 2010-06-09 国际商业机器公司 联合环境中启用数字权限管理的策略管理的方法和系统
CN102783115A (zh) * 2010-02-09 2012-11-14 交互数字专利控股公司 用于可信联合标识的方法和装置
CN102859509A (zh) * 2010-03-26 2013-01-02 微软公司 跟踪相同浏览器选项卡内的导航流
CN102638581A (zh) * 2012-03-31 2012-08-15 奇智软件(北京)有限公司 一种cookie 信息存储方法和系统
CN107256366A (zh) * 2012-08-30 2017-10-17 尼尔森(美国)有限公司 收集媒体印象和搜索项的分布式用户信息的方法和设备
CN105850100A (zh) * 2013-12-24 2016-08-10 谷歌公司 用于受众测量的系统和方法
CN106471539A (zh) * 2014-08-14 2017-03-01 谷歌公司 用于混淆受众测量的系统和方法
CN107251528A (zh) * 2015-10-14 2017-10-13 智能管道科技有限公司 作为服务的网络标识

Also Published As

Publication number Publication date
CN112088374A (zh) 2020-12-15
JP2021519981A (ja) 2021-08-12
US20230188507A1 (en) 2023-06-15
KR20200131311A (ko) 2020-11-23
EP3759638B1 (en) 2024-03-27
KR102390938B1 (ko) 2022-04-26
US11601404B2 (en) 2023-03-07
US20210336937A1 (en) 2021-10-28
WO2019194811A1 (en) 2019-10-10
JP7132350B2 (ja) 2022-09-06
EP3759638A1 (en) 2021-01-06
EP4365806A2 (en) 2024-05-08

Similar Documents

Publication Publication Date Title
CN112088374B (zh) 作为浏览器Cookie的替代的域特定浏览器标识符
CN112166590B (zh) 用于在联网环境中消息生成的受限环境
WO2022125182A1 (en) Using secure multi-party computation to improve content selection process integrity
JP2022543947A (ja) ブラウザクッキーを保護する
KR102346120B1 (ko) 도메인 특정 브라우저 식별자 자체 인증
JP7301223B2 (ja) プライバシーを保護するデータ収集および分析
JP7074926B1 (ja) コンテンツ要求データの暗号化のためのシステムおよび方法
CN114500489B (zh) 在联网环境中授权数据传输的方法和系统
CN118313001A (zh) 作为浏览器Cookie的替代的域特定浏览器标识符
EP3895368A1 (en) Preventing fraud in aggregated network measurements
US11277481B1 (en) Content selection through intermediary device
US11968297B2 (en) Online privacy preserving techniques
JP2023551077A (ja) プライバシー保護のための局所的暗号技法

Legal Events

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