CN112166586B - 自认证域特定浏览器标识符 - Google Patents

自认证域特定浏览器标识符 Download PDF

Info

Publication number
CN112166586B
CN112166586B CN201980023493.1A CN201980023493A CN112166586B CN 112166586 B CN112166586 B CN 112166586B CN 201980023493 A CN201980023493 A CN 201980023493A CN 112166586 B CN112166586 B CN 112166586B
Authority
CN
China
Prior art keywords
partner
domain
client device
content
list
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
CN201980023493.1A
Other languages
English (en)
Other versions
CN112166586A (zh
Inventor
G.王
Y.高
M.扬
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 CN112166586A publication Critical patent/CN112166586A/zh
Application granted granted Critical
Publication of CN112166586B publication Critical patent/CN112166586B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/321Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving a third party or a trusted authority
    • H04L9/3213Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving a third party or a trusted authority using tickets or tokens, e.g. Kerberos
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • 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/0251Targeted advertisements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0876Network architectures or network communication protocols for network security for authentication of entities based on the identity of the terminal or configuration, e.g. MAC address, hardware or software configuration or device fingerprint
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/16Implementing security features at a particular protocol layer
    • H04L63/168Implementing security features at a particular protocol layer above the transport layer
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0825Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3297Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving time stamps, e.g. generation of time stamps
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/60Digital content management, e.g. content distribution
    • 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]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Business, Economics & Management (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Finance (AREA)
  • Accounting & Taxation (AREA)
  • Development Economics (AREA)
  • Strategic Management (AREA)
  • Power Engineering (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Game Theory and Decision Science (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Economics (AREA)
  • General Business, Economics & Management (AREA)
  • Marketing (AREA)
  • Information Transfer Between Computers (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

本公开提供了一种安全的、用户透明的和高效的内容提供者特定标识符只读cookie(“ROC”)。这些ROC包括客户端设备的内容提供者特定标识符,并且由客户端设备(100)生成,并用内容提供者(102)或合作伙伴设备(104)的公钥进行加密,以创建加密的ROC eROC,从而防止第三方间接标识匹配。ROC可以包括认证令牌,以使得客户端设备能够确定ROC是否由内容提供者或其他第三方缓存或以其他方式滥用。只有在认证令牌被验证的情况下,才显示(318)来自合作伙伴设备的内容。合作伙伴设备包括例如使从内容提供者检索的网页个性化的内容。

Description

自认证域特定浏览器标识符
背景技术
浏览器cookie,或简称设备特定、用户特定或会话特定标识符,用于唯一地(或半唯一地)向内容提供者标识设备、用户或会话。这些cookie通常由内容提供者例如在第一次会话或登录过程期间生成,并在来自客户端设备的浏览器或其他应用的后续请求中提供。然后,发布者可以将每个请求与相同的标识符(隐含地,相同的设备、用户或会话)相关联,从而允许内容选择的定制。
然而,典型的浏览器cookie有一些严重的缺点。在网站内提供嵌入式内容的第三方内容提供者可以提供cookie来跟踪浏览器,而用户不一定知道它们正被这些第三方标识或跟踪(例如,因为浏览器地址栏中示出的地址只能标识主页的源,而不一定是嵌入式内容的源)。因此,用户很难识别潜在的隐私问题并控制其个人信息的隐私。
发明内容
根据本公开的至少一个方面,一种控制数据交换的系统可以包括加密器。该加密器可以为合作伙伴域列表中的每个合作伙伴域生成合作伙伴域特定标识符,并使用对应合作伙伴域的加密密钥来加密合作伙伴域特定标识符和第一认证令牌。该系统可以包括网络接口,用以向内容提供者发送合作伙伴域列表中的每个合作伙伴域的加密的合作伙伴域特定标识符。该网络接口可以从内容提供者接收由内容提供者基于来自合作伙伴域列表中的每个合作伙伴域的数据而选择的内容项。来自合作伙伴域列表中的每个合作伙伴域的数据是基于接收加密的合作伙伴域特定标识符而选择的。该网络接口可以通过客户端设备从内容提供者接收合作伙伴域列表中的每个合作伙伴域的第二认证令牌。该系统可以包括审核引擎,用以基于合作伙伴域列表中的每个合作伙伴域的第一认证令牌和合作伙伴域列表中的每个合作伙伴域的第二认证令牌的比较来确定是否显示内容项。
根据本公开的至少一个方面,一种控制数据交换的方法可以包括由客户端设备从内容提供者接收合作伙伴域列表。该方法可以包括,对于合作伙伴域列表中的每个合作伙伴域,由客户端设备生成合作伙伴域特定标识符,并且由客户端设备使用对应合作伙伴域的加密密钥来加密合作伙伴域特定标识符和第一认证令牌。该方法可以包括由客户端设备向内容提供者发送合作伙伴域列表中的每个合作伙伴域的加密的合作伙伴域特定标识符。该方法可以包括由客户端设备从内容提供者接收由内容提供者基于来自合作伙伴域列表中的每个合作伙伴域的数据而选择的内容项。来自合作伙伴域列表中的每个合作伙伴域的数据是基于接收加密的合作伙伴域特定标识符而选择的。该方法可以包括由客户端设备从内容提供者接收合作伙伴域列表中的每个合作伙伴域的第二认证令牌。该方法可以包括由客户端设备基于合作伙伴域列表中的每个合作伙伴域的第一认证令牌和合作伙伴域列表中的每个合作伙伴域的第二认证令牌的比较来显示内容项。
提及这些实施方式不是为了限制或限定本公开的范围,而是为了帮助理解本公开。可以开发特定的实施方式来实现以下优点中的一个或多个。通过用加密的内容提供者特定标识符来替换传统的浏览器cookie,客户端设备的用户对私有数据(包括合作伙伴内容提供者之间的数据交换,并具有标识任何这种交换的透明审核日志)具有更大的控制。加密的内容提供者特定标识符另外允许客户端设备自动控制内容的修改,并且具体地,控制是否许可特定的第三方修改用于显示的内容。此外,通过利用客户端设备上的cookie生成和加密,避免了来自内容提供者处的大cookie匹配表的资源消耗,提高了效率。用于cookie匹配的跟踪像素和双往返通信的消除也提高了效率并且更好地保护了用户隐私,允许客户端浏览器或应用以更低的电池和处理器利用率更快地呈现页面。
附图说明
一个或多个实施方式的细节在附图和以下描述中阐述。根据说明书、附图和权利要求,本公开的其他特征、方面和优点将变得显而易见,其中:
图1示出了根据一些实施方式的用于数据交换的网络和设备环境的框图;
图2示出了根据一些实施方式的在图1中示出的网络和设备环境中使用的计算设备的实施方式的框图;
图3示出了根据一些实施方式的客户端设备过滤内容请求的流程图;并且
图4和图5示出了根据一些实施方式的具有自实施许可的数据交换的方法的流程图。
不同附图中相同的附图标记和名称指示相同的元件。
具体实施方式
浏览器cookie,或简称设备特定、用户特定或会话特定标识符,用于唯一地(或半唯一地)向内容提供者(诸如网页发布者、广告商或其他这样的实体)标识设备、用户或会话。这些cookie通常由内容提供者或其他设备在第一次会话或登录过程期间生成。cookie可以在来自客户端设备的浏览器或其他应用的后续请求中提供。然后,发布者可以将每个请求与相同的标识符(隐含地,相同的设备、用户或会话)相关联,从而允许内容选择的定制。
然而,典型的浏览器cookie有一些严重的缺点。在网站内提供嵌入式内容的第三方内容提供者可以提供cookie来跟踪浏览器,而用户不一定知道它们正被这些第三方标识或跟踪(例如,因为浏览器地址栏中示出的地址只能标识主页的源,而不一定是嵌入式内容的源)。因此,用户很难识别潜在的隐私问题并控制其个人信息的隐私。隐私控制在技术上可能是困难的,因为一旦数据被提供给第二方,实施如何控制数据在技术上就是一个挑战。例如,第二方可以与第三方共享数据,而无需来自数据的原始提供者的准许。
在本文中描述的系统和方法可以增加用户安全性和隐私,同时允许定制的内容选择。此外,当前的系统和方法可以减少选择或定制内容所需的传输次数,以节省带宽和其他计算资源。内容的定制可以基于来自多个不同域的数据而执行。该域中的每一个可以向客户端设备提供使得客户端设备的偏好能够被存储并且稍后被检索的cookie。来自多个不同域的偏好可以用于内容的选择和定制中。在本文中描述的系统和方法可以过滤、限制或阻止内容请求。向第三方过滤选择的内容请求使得用户能够控制第三方对内容的定制。然而,限制附加的内容请求节省了传输带宽,也增加了用户隐私。
在本文中讨论的系统和方法提供了用安全的、用户透明的和高效的内容提供者特定标识符来替换传统的浏览器cookie,该内容提供者特定标识符可以被称为“只读cookie”(Read-Only Cookie,ROC)。ROC可以由客户端设备生成,并用第三方域(例如,内容提供者)的公钥进行加密。加密的ROC可以被称为eROC。ROC的加密防止非预期的第三方域读取ROC。
ROC的生成可以通过用户策略来控制,使得仅为以下第三方创建标识符:具有符合规定的服务条款(Terms of Service,ToS)的第三方,其中这些服务条款(ToS)可从第三方域内的预定地址检索;白名单(例如,用户已经针对其明确提供准许的)上的第三方;和/或不在黑名单(例如,用户已经针对其明确拒绝准许的)上的第三方。
一旦ROC生成,违反ToS协定可能难以检测。例如,第三方可能具有有效的ToS协定;然而,该第三方可能会在违反ToS的情况下缓存第二个第三方的ROC或eROC。在另一示例中,列入白名单的第三方可能与列在黑名单上的第二个第三方共享ROC。本系统和方法可以识别隐私侵犯,并防止违反第三方域的后续ROC生成。此外,该系统和方法可以防止没有添加到定制内容的选择的第三方的ROC生成,从而提高用户的隐私。
例如,当为客户端设备选择内容时,内容提供者可以与一个或多个合作伙伴域进行交互。合作伙伴域可以为内容的选择或定制提供分析或其他数据。为了从合作伙伴请求数据,根据ToS协定,内容提供者可能需要请求许可与合作伙伴域共享关于浏览器的数据。在本文中描述的系统和方法可以提供自实施ROC,其中该自实施ROC可以提供ToS的基于工程的实施。例如,自实施ROC可以防止内容提供者缓存ROC供稍后使用。在本文中描述的系统和方法可以生成包括一次性使用认证令牌的eROC。认证令牌可以临时授权内容提供者和合作伙伴域之间的数据共享。
当响应于内容请求而返回内容项时,浏览器可以审核由内容提供者随内容项返回的认证令牌。浏览器可以确定该内容项是使用缓存的ROC、缓存的eROC选择的,还是违反ToS而选择的。如果内容项未通过审核过程,浏览器可以决定不显示返回的内容。
图1示出了根据一些实施方式的用于数据交换的网络和设备环境50的框图。如图所示,客户端设备100可以经由网络106、106’与一个或多个内容提供者102和一个或多个合作伙伴设备104(1)-104(N)(一般可以被称为合作伙伴设备104)通信。网络106、106’可以被统称为网络106。
网络和设备环境50可以包括一个或多个客户端设备100。客户端设备100可以包括任何类型和形式的计算设备,包括台式计算机、膝上型计算机、便携式计算机、平板计算机、可穿戴计算机、嵌入式计算机、智能电视机、控制台、物联网(Internet of Things,IoT)设备或智能电器,或者任何其他类型和形式的计算设备。客户端设备100可以运行应用(诸如网络浏览器、社交媒体应用、视频游戏、或其他这样的应用)以请求内容。客户端设备100可以请求内容,并且可以提供设备标识符、cookie、或其他这样的标识符,使得内容提供者102或合作伙伴设备104可以用来为对应设备或客户端设备100的用户选择定制内容。
网络和设备环境50可以包括一个或多个网络106、106’。网络106、106’可以包括任何类型和形式的网络,包括局域网(Local Area Network,LAN)、诸如互联网的广域网(WideArea Network,WAN)、卫星网络、电缆网络、宽带网络、光纤网络、微波网络、蜂窝网络、无线网络、或者这些或其他这样的网络的任何组合。网络106、106’可以是相同类型的网络或不同类型的网络。网络106、106’可以是相同网络的不同部分。网络106、106’可以包括多个附加设备,包括网关、调制解调器、防火墙、路由器、交换机等。网络106、106’还可以包括被配置为在网络106、106’内接收和/或发送数据的任何数量的计算设备(例如,计算机、服务器、路由器、网络交换机等)。网络106、106’可以包括任何数量的硬连线和/或无线连接。客户端设备100可以无线地(例如,经由Wi-Fi、蜂窝网络、无线电等)与硬连线(例如,经由光纤电缆、CAT5电缆等)到网络106、106’中的其他计算设备的收发器通信。在一些实施方式中,网络106、106’可以是虚拟网络,诸如由单个物理机器运行的多个虚拟机之间的虚拟网络,或者抽象网络,诸如经由物理可移动介质的数据的离线传输(例如,球鞋网络(Sneakernet),经由磁带介质、CD-ROM、闪存介质、外部硬盘驱动器、软盘等传输数据)。
网络和设备环境50可以包括一个或多个内容提供者102。内容提供者102可以选择内容。内容提供者102可以从合作伙伴设备104的池中选择或接收内容。例如,内容提供者102可以从客户端设备100接收对内容的请求,并且可以从合作伙伴设备104当中选择合作伙伴设备104来提供所请求的内容。选择可以经由负载平衡算法、竞拍算法(例如,提供者为提供内容的机会出价)等。内容提供者102因此可以被称为交换服务器、负载平衡器、竞拍提供者或任何其他这样的术语。尽管被示出在网络106、106’之间,但是内容提供者102可以被部署在与合作伙伴设备104相同的网段上。
网络和设备环境50可以包括一个或多个合作伙伴设备104。合作伙伴设备104可以基于客户端设备100的标识符,经由网络106、106’选择内容以提供给客户端设备100。标识符可以是在本文中描述的ROC中的一个。合作伙伴设备104还可以支持内容提供者102或其他合作伙伴设备104对内容的选择。例如,合作伙伴设备104可以向内容提供者102和其他合作伙伴设备104提供分析、偏好、内容和其他信息,这些分析、偏好、内容和其他信息可以实现为客户端设备100选择定制或裁剪内容。合作伙伴设备104向内容提供者102或其他合作伙伴设备104提供的分析、偏好、内容和其他信息可以一般地被称为数据。
内容提供者102和合作伙伴设备104可以利用cookie(诸如ROC)来向客户端设备100提供定制内容。例如,当发布对内容的请求时,客户端设备100可以向内容提供者102提供设备标识符或cookie。为了维护客户端隐私,客户端设备100可以为内容提供者102和合作伙伴设备104中的每一个生成私有cookie,诸如ROC。为了防止内容提供者102缓存cookie,合作伙伴设备的cookie可以包括唯一令牌,该唯一令牌只能由相应的合作伙伴设备104或内容提供者102从cookie中提取。唯一令牌可以被称为认证令牌。认证令牌可以包括随机文本字符串或编码字符串。编码字符串可以包括时间戳、公钥、唯一标识符、随机数、盐(salt)、域标识符或其组合的组合。当向内容提供者102返回数据或内容时,合作伙伴设备104可以返回认证令牌。认证令牌然后被转发到客户端设备100,作为来自合作伙伴设备104的数据是响应于当前请求而选择而不是响应于缓存的cookie而生成的证明。
内容提供者102和合作伙伴设备104可以包括任何类型和形式的计算设备,包括台式计算机、服务器、工作站、膝上型计算机、便携式计算机、嵌入式计算机、或者任何其他类型和形式的计算设备。内容提供者102和合作伙伴设备104可以包括由一个或多个物理计算设备运行的虚拟机,并且可以被配置为服务器群、集群或设备云。
图2示出了在网络和设备环境50中使用的计算设备的实施方式的框图。如上所述,网络和设备环境50可以包括可以经由内容提供者102接收内容的一个或多个客户端设备100。内容提供者102可以从一个或多个合作伙伴设备104接收内容或其他数据。
如上所讨论的,客户端设备100可以被不同地称为客户端、设备、客户端设备、计算设备、用户设备或任何其他这样的术语,并且可以是台式计算机、膝上型计算机、平板计算机、智能手机、视频游戏控制台、智能电视机或机顶盒、服务器、工作站、或能够通过网络106通信的任何其他类型和形式的计算设备。在一些实施方式中,客户端设备100可以运行应用、服务、服务器、守护进程、例程、或用于通过网络106通信的其他可运行逻辑,诸如网络浏览器、邮件客户端、视频播放器、音乐播放器、视频游戏或任何其他这样的应用。这样的应用可以包括命令行界面、图形用户界面、或者这些或其他界面的任何组合。在客户端设备是智能电视机或机顶盒的实施方式中,客户端设备可以经由第一接口(诸如陆地、卫星或有线广播)接收内容,并且可以经由网络106经由第二接口(诸如以太网或Wi-Fi接口)与受众测量服务器通信。在其他实施方式中,客户端设备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和Visual Basic)的代码。
客户端设备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可以包括一个或多个用户I/O接口204。I/O接口204可以是或可以连接到通过生成感觉信息(例如,显示器上的可视化、一个或多个声音、触觉反馈等)向用户传达数据和/或将从用户接收的感觉信息转换成电子信号的任何电子设备(例如,键盘、鼠标、定点设备、触摸屏显示器、麦克风等)。根据各种实施方式,一个或多个用户接口设备可以位于客户端设备100的外壳内部,诸如内置显示器、触摸屏、麦克风等,或者可以位于客户端设备100的外壳外部,诸如连接到客户端设备100的监视器、连接到客户端设备100的扬声器等。
客户端设备100可以在存储器206中包括应用208。客户端设备100可以用处理器200运行应用208。应用208可以是应用、小应用、脚本、服务、守护进程、例程、或者用于接收内容并经由客户端设备的I/O接口204(例如,显示器、扬声器)显示或以其他方式输出内容的其他可运行逻辑。应用208可以是网络浏览器。应用208可以包括用于显示经由网络接口202接收的和/或由处理器200本地生成的内容的功能。在一些实施方式中,应用208可以是媒体播放器或者包括嵌入式媒体播放器,诸如网络浏览器内的插件或本地媒体播放器。
客户端100可以包括设备标识符210或者用设备标识符210来标识。设备标识符210可以是字母数字串、数据串、序列号、媒体访问控制(Media Access Control,MAC)地址、互联网协议(Internet Protocol,IP)地址、用户名或帐户名、全球唯一标识符(GloballyUnique Identifier,GUID)、cookie、随机数或伪随机数、或任何其他类型和形式的标识符,包括这些或其他标识符的组合。在一些实施方式中,设备标识符210可以固定到设备或者预先配置在设备中,诸如制造商序列号或MAC地址。设备标识符210可以由内容提供者、流服务器、应用208、用户或其他实体动态设置。例如,设备标识符可以被设置并存储在cookie或用户名中。
在一些实施方式中,可以为与内容提供者102或合作伙伴设备104的每个通信设置唯一或新的设备标识符210。在一些实施方式中,设备标识符210可以是静态的、基于时间的(例如,周期性改变的—每小时、每天、每周)、或者基于间隔的(例如,在重启客户端设备或登录到服务时改变的)。
在一些实施方式中,设备标识符210可以与一个或多个其他设备标识符210(例如,移动设备的设备标识符、家用计算机的设备标识符等)相关联。设备标识符210可以由内容提供者102或合作伙伴设备104提供。在一些实施方式中,客户端100可以从内容提供者102或合作伙伴设备104请求设备标识符210,并且可以将设备标识符210与对内容或测量数据的请求相关联地发送给内容提供者102或合作伙伴设备104。
客户端设备100可以包括加密器214。加密器214可以是任何应用、小应用、脚本、服务、守护进程、例程、或生成ROC和eROC的其他可运行逻辑。加密器214可以用于基于输入来计算散列结果。散列结果可以用于(或用作)ROC和eROC。加密器214可以包括硬件、软件、或硬件和软件的组合。在一些实施方式中,加密器214可以包括加密模块、可信平台模块(Trusted Platform Module,TPM)、ASIC、或用于执行加密和加密散列计算的任何其他类型和形式的电路。
如上所述,客户端设备100可以用安全的、用户透明的ROC来替换传统的浏览器cookie。加密器214可以生成ROC。然后,加密器214可以用内容提供者102、合作伙伴设备104或其他第三方的公钥来加密ROC,以形成加密的ROC(eROC)。eROC的使用可以防止非预期方使用eROC内包含的标识符。例如,只有与公钥相关联的私钥的拥有者才能解密eROC以访问标识符。对ROC进行加密可以使得客户端设备100能够向内容提供者102发送目的地为合作伙伴设备104的eROC,该内容提供者102可以将eROC转发给相应的合作伙伴设备104。由于eROC没有用内容提供者的公钥(而是用合作伙伴设备104的公钥)进行加密,所以内容提供者102不能使用或访问包含在目的地为合作伙伴设备104的eROC内的标识符。
内容提供者特定标识符的生成可以通过用户策略来控制,使得仅通过以下创建标识符:针对符合服务条款(ToS)的内容提供者;从白名单(例如,用户已经针对其明确提供准许的)上的内容提供者;和/或从不在黑名单(例如,用户已经针对其明确拒绝准许的)上的内容提供者。在一些实施方式中,如果ToS可从域内的预定地址检索,并且检索到的ToS的内容未从原始ToS改变,则该ToS可以是符合规定的。
加密器214可以使用加密散列来生成ROC和eROC。加密散列可以包括任何合适的散列算法,诸如MD5和SHA256。加密器214可以通过散列输入来生成ROC,其中该散列输入可以包括浏览器特定私有标识符、应用特定私有标识符、设备特定私有标识符或会话特定私有标识符(例如,特定于与设备的其他用户分开的特定用户的浏览器实例的标识符)和接收方(例如,内容提供者102或合作伙伴设备104)的域名或地址。
在一些实施方式中,为了提供附加的盐,散列输入还可以包括ROC的创建时间或期满时间。熵的其他源(诸如设备类型或序列号、时钟偏移时间、硬件标识符或任何其他这样的数据)可以用于类似地增加散列输入的复杂性。在一些实施方式中,“期满时间”可以是粒度值,诸如内容提供者特定标识符期满之前的数周、数月或数年,从而允许客户端自动再生。
加密器214可以通过经由合法拥有者或预期接收方(例如,内容提供者102或合作伙伴设备104)的公钥对ROC进行加密来生成eROC。加密器214可以通过首先将ROC与创建时间戳、随机数连结,并且先用接收方的公钥对连结结果进行加密来生成eROC,使得即使对于单个域,产生的eROC也是高度变化的。
客户端设备100可以使用随机数作为认证令牌。加密器214可以在每次加密器214生成eROC时生成新的认证令牌。加密器214可以通过连结请求域、接收方或合作伙伴域、时间戳和私有标识符来生成认证令牌。私有标识符可以是域特定标识符。加密器214可以加密连结的字符串以形成随机数。加密器214可以用对称密钥加密来加密连结的字符串,以形成随机数。对称密钥加密可以包括AES加密或基于AES的GCM加密等。在一些实施方式中,预期接收方(例如,内容提供者102或合作伙伴设备104)可以解密并提取私有标识符和认证令牌。内容提供者102或合作伙伴设备104可以使用私有标识符来选择或定制内容。
客户端设备100可以包括审核日志216。审核日志216可以是存储在存储器206中的数据库。当加密器214生成认证令牌时,加密器214可以将每个认证令牌作为键值对的值存储在查找表中。键值对的键可以是请求标识符。例如,响应于内容请求,客户端设备100可以从内容提供者102接收请求,以发起与多个合作伙伴设备104的数据共享。加密器214可以为合作伙伴设备104中的每一个生成eROC,并将认证令牌存储在审核日志216中,作为键入到请求标识符的值。如结合图3和图4等所述的,审核引擎212可以通过确定合作伙伴设备104中的每一个是否返回了有效的认证令牌(如审核引擎212找到与审核日志216中的返回的认证令牌的匹配所指示的),在显示返回的内容之前审核内容请求。审核日志216还可以包括提供合作伙伴设备在选择返回的内容中的相对贡献的指示的另一查找表。审核引擎212可以与合作伙伴设备104的标识符相关联地保存贡献的指示。
客户端设备100可以运行审核引擎212。审核引擎212可以包括应用、服务器、服务、守护进程、例程、或用于审核对返回的内容请求的响应的其他可运行逻辑。审核引擎212可以对审核日志216进行审核,以确定内容提供者102或合作伙伴设备104是否正在通过例如缓存eROC或ROC而违反ToS。
如上所述,响应于向内容提供者102传送内容请求,内容提供者102可以请求许可与一个或多个合作伙伴设备104共享信息或数据以用于选择或定制内容。客户端设备100可以通过为合作伙伴设备104中的每一个生成相应的eROC来批准请求。每个eROC可以包括认证令牌,其中加密器214可以将该认证令牌存储在审核日志216中。审核日志216可以包括多行。每一行都可以包括随机生成的密钥,该密钥可以用作认证令牌。保存到相应行中的每一行的数据可以是用认证令牌编码的数据或在认证令牌中编码的数据。当内容提供者102用内容项来响应内容请求时,内容提供者102可以将认证令牌从合作伙伴设备104转发到客户端设备100。由于eROC是用合作伙伴设备的公钥编码的,所以只有合作伙伴设备104(而不是内容提供者102)可以从eROC中提取认证令牌。审核引擎212可以通过访问审核日志216并确定认证令牌是否对应于最近的内容请求来确定认证令牌是否有效。在一些实施方式中,如上所述,时间戳可以被包括或嵌入在认证令牌中。审核引擎212可以为认证令牌设置预定的超时时段。如果返回的认证令牌的时间戳在超时时段之外,则审核引擎212可以确定认证令牌不是有效的。如果认证令牌不是有效的,指示例如eROC被缓存,则审核引擎212可以指示应用208不显示返回的内容。在一些实施方式中,认证令牌可以是“自包含的”。例如,认证令牌可以包括客户端设备100(或其他设备)对认证令牌进行认证所需的数据。例如,请求的指示、合作伙伴域、时间戳或其他数据可以用客户端设备100的私钥进行加密,并包括在认证令牌中。在接收到认证令牌时,客户端设备100可以解密认证令牌以检索加密的数据,并使用解密的数据来对认证令牌进行认证。
对于内容,内容提供者102还可以发送包括每个合作伙伴设备104在内容的选择中的贡献的数据结构。该数据结构可以包括指示每个合作伙伴设备104(键)的贡献(值)的键-值对。给定合作伙伴设备104对内容项的选择的贡献可以在合作伙伴设备104和内容提供者102之间协商。在合作伙伴设备104参与预定数量的内容请求之后,审核引擎212可以计算合作伙伴设备104对选择或定制内容的平均贡献。响应于未来的内容请求,如果合作伙伴设备的贡献低于预定阈值,则加密器214可以不为合作伙伴设备104生成eROC。
网络和设备环境50可以包括内容提供者102。如同客户端设备100一样,内容提供者102可以包括一个或多个处理器200、存储器或存储设备206、网络接口202和接口204。在一些实施方式中,内容提供者102可以是不包括用户界面但可以经由网络106与客户端100或合作伙伴设备104通信的无头服务器。在一些实施方式中,存储器206可以存储由服务器的处理器200运行的一个或多个应用,包括FTP服务器、网络服务器、邮件服务器、文件共享服务器、对等服务器、或用于传递内容或重定向命令以允许客户端访问内容提供者处的内容的其他这样的应用。
内容提供者102可以响应于来自客户端设备100的内容请求直接或间接选择内容。例如,内容提供者102可以通过从内容提供者102的内容数据库234中选择内容项来直接响应内容请求。通过将请求转发给可以选择内容的一个或多个合作伙伴设备104或者通过接收使得内容提供者102能够选择定制内容的分析和其他数据,内容提供者102可以间接响应内容请求。
内容提供者102可以从合作伙伴设备列表中选择合作伙伴设备104。内容提供者102可以经由轮询(round robin)或其他负载平衡系统或者经由基于竞拍的系统来选择合作伙伴设备104。当选择了一个或多个合作伙伴设备104时,内容提供者102可以发送许可将合作伙伴设备104包括在所请求的内容的选择中的请求。在一些实施方式中,请求可以被包括在将呈现内容的网页或其他应用中。例如,将呈现内容的内容槽(slot)可以包括标识将在内容项的实现中使用的合作伙伴设备104的多个标签。合作伙伴设备104的指示可以被包括在网页的标题中。响应于对许可的请求,内容提供者102可以从客户端设备100接收客户端设备100许可参与内容项的选择的每个合作伙伴设备104的eROC。
内容提供者102可以包括响应表220。响应表220可以包括数据库、平面文件、索引文件、或者用于存储从合作伙伴设备104接收的认证令牌的其他类型和形式的数据结构。如本文所述的,eROC可以包括认证令牌。当合作伙伴设备向内容提供者102提供内容或其他数据时,合作伙伴设备104可以向内容提供者102提供认证令牌的实例。内容提供者102可以将认证令牌存储到响应表220中。与认证令牌相关联地,内容提供者102还可以存储合作伙伴设备对内容提供者102向客户端设备100提供的内容的选择的贡献的指示。当内容提供者102向客户端设备100提供内容时,内容提供者102还可以提供响应表220的实例。发送到客户端设备100的响应表220的实例可以包括键-值对,其中认证令牌作为键,并且合作伙伴设备的贡献作为值存储在响应表220中。
同样如图2所示,网络和设备环境50可以包括一个或多个合作伙伴设备104。合作伙伴设备104可以包括连接到网络106并且被配置为响应于内容请求而选择或使得能够选择内容的一个或多个计算设备。合作伙伴设备104可以直接或经由内容提供者102向客户端设备100提供内容项。合作伙伴设备104可以是内容提供者、服务器、网络服务器、数据服务器、发布者、服务提供者、分析系统或其他这样的设备。合作伙伴设备104可以包括被配置为服务器群或云的多个计算设备,并且可以包括路由器、负载平衡器、网络地址转换器、防火墙、或其他这样的设备。合作伙伴设备104可以是计算机服务器(例如,FTP服务器、文件共享服务器、网络服务器等)或服务器的组合(例如,数据中心、云计算平台等)。合作伙伴设备104可以提供任何类型和形式的内容,包括文本、图像、视频、音频、多媒体或其他数据,或者这些的任何组合。内容可以包括实况媒体内容、预先录制的媒体内容、呈现内容、电影、电视节目、播客、视频博客、视频游戏或其他交互式内容、任何格式的广告、社交媒体、或任何其他类型和形式的内容。
合作伙伴设备104可以包括一个或多个处理器200、网络接口202、I/O接口204和/或存储器设备206。合作伙伴设备104可以包括多个计算设备,包括由物理设备运行的虚拟机。例如,内容提供者104可以包括由一个或多个物理计算设备运行的多个虚拟机,每个这样的虚拟机运行合作伙伴设备(例如,网络服务器、文件服务器、流媒体服务器等)并与一个或多个存储设备(诸如网络存储设备、RAID存储设备或其他这样的设备)通信。
合作伙伴设备104和内容提供者102可以包括内容选择器230。内容选择器230可以包括应用、服务、服务器、守护进程、例程、或用于从内容存储装置234中选择内容以用于传递给客户端设备100的其他可运行逻辑。内容选择器230可以基于存储在标识符数据库232中的关于客户端的信息来选择用于传递给客户端设备100的内容。例如,数据库232可以包括关于客户端设备的能力(例如,屏幕分辨率或方向、颜色深度、带宽等)的信息或用于选择定制内容的任何其他这样的信息。存储在数据库232中的内容可以由ROC或包含在ROC中的、从ROC推导的、或以其他方式与ROC相关联的私有标识符来索引。
例如,在从客户端设备100接收到eROC时,内容提供者102和合作伙伴设备104可以解密eROC以恢复ROC。内容选择器230可以经由ROC标识数据库232中的关于客户端设备100的信息,并从内容存储装置234中选择对应的内容。内容选择器230可以向客户端设备100推送或流式传输内容,向客户端设备100提供内容的唯一资源标识符(Unique ResourceIdentifier,URI)或地址,使得客户端应用208可以(例如,从内容提供者104的网络服务器)随后请求用于传递和呈现的内容,或者向内容提供者102提供URI或地址,以用于转发给客户端设备。
内容存储装置234可以由与内容提供者102或合作伙伴设备104通信的一个或多个附加存储设备提供。内容存储装置234可以包括任何类型和形式的数据,包括音频、视频、动画、文本、多媒体、静止或动画图形、可运行脚本、或任何其他类型和形式的内容。
标识符数据库232可以包括数据库、平面文件、索引文件、或其他类型和形式的数据结构,以用于将关于客户端设备、账户或会话的信息与ROC或私有标识符相关联。标识符数据库232可以被存储在存储器206中。标识符数据库232可以被单独存储并被提供给内容选择器230(例如,通过单独的数据库服务器)。
内容提供者102和合作伙伴设备104可以各自包括解密器236。解密器236可以是任何应用、小应用、脚本、服务、守护进程、例程、或解密eROC的其他可运行逻辑。解密器236可以包括用于经由eROC的接收方(例如,内容提供者102或合作伙伴设备104)的私钥解密eROC的软件、硬件、或硬件和软件的组合。解密器236可以执行任何合适类型的解密算法,并且可以包括解密电路,诸如ASIC、FPGA、可信平台模块(TPM)或其他这样的元件。解密器236可以解密eROC,并从解密的ROC(诸如ROC)中提取认证令牌和其他数据。
图3示出了客户端设备自实施服务条款并过滤内容请求的流程图。在步骤300处,客户端设备100可以请求内容项。在一些实施方式中,请求可以在网页的呈现期间生成,例如,对页面中的嵌入式内容(诸如横幅或其他图像)、媒体文件(诸如片头广告、片尾广告或插播广告媒体文件)或任何其他这样的内容的请求。在一些实施方式中,请求可以是针对未知的内容项,使得内容提供者102或合作伙伴设备104可以选择适当的内容项。在一些实施方式中,请求可以包括客户端设备的设备标识符或其他标识符,包括用户名、帐户名、地址或硬件标识符、或者任何其他这样的信息。
在步骤302处,内容提供者102可以请求与一个或多个选择的合作伙伴设备104共享数据的许可。例如,响应于接收到请求,内容提供者102可以选择可以向客户端设备100提供内容或者协助向客户端设备100提供内容的一个或多个合作伙伴设备104。合作伙伴设备104的选择可以基于负载平衡要求、竞拍参与者或任何其他这样的方法。例如,内容提供者102可以与合作伙伴设备104通信,以请求对向客户端设备100提供内容的机会的出价或其他报价。在一些实施方式中,合作伙伴设备104可以提供附加信息或数据,其可以实现或改进为客户端设备100选择内容。例如,合作伙伴设备104可以提供在其上可以选择或定制内容的偏好或兴趣指示。在一些实施方式中,在为客户端设备100选择内容时采用合作伙伴设备104可以要求内容提供者102与合作伙伴设备104共享关于客户端设备100的信息。在与合作伙伴设备104共享信息之前,内容提供者102可以从客户端设备100请求与合作伙伴设备104共享信息的许可。在一些实施方式中,对许可的请求可以被嵌入在内容将被呈现到其中的应用或网页中。例如,对许可的请求可以在网页的标题或网页的内容槽中作为多个标签,其中该多个标签标识参与提供内容的合作伙伴设备104中的每一个。在这些实施方式中,内容提供者102可以不向客户端设备100传送请求许可的显式传输(例如,步骤302),并且客户端设备对嵌入在网页中的数据共享请求的批准可以被包括在对内容的请求中(例如,步骤300)。例如,步骤300处的对内容的请求还可以包括以下描述的ROC和eROC的传输(例如,步骤306)。
对许可的请求可以包括每个选择的合作伙伴设备104的域、地址或其他标识符。在一些实施方式中,标识符可以具有预定长度,诸如32或64字节,其中,更短的域或地址被填充,并且更长的域被截断。然后,可以直接连结标识符,因为客户端设备100可以根据预定长度来提取每个标识符。在其他实施方式中,标识符可以由分隔符(例如,预定的字符或字符串)分开。
在步骤304处,如果客户端设备100批准共享数据的请求,则客户端设备100可以为被批准的合作伙伴设备104中的每一个生成加密的eROC。例如,如本文所述的,客户端设备100可以为被批准的合作伙伴设备104中的每一个生成eROC。eROC可以基于与合作伙伴设备104中的每一个相关联的标识符而生成,并且可以包括认证令牌。eROC可以包括向合作伙伴设备104标识客户端设备100的私有标识符(例如,eROC)。客户端设备100可以与合作伙伴设备标识相关联地将每个认证令牌存储在审核日志中。
在步骤306处,客户端设备100可以向内容提供者102发送eROC。客户端设备100可以在HTTP请求中向内容提供者102发送eROC。在步骤308处,内容提供者102可以将相应的eROC转发给相应的合作伙伴设备104中的每一个。当向合作伙伴设备104转发eROC时,传输可以包括对内容的请求或对数据的请求,以使得能够选择内容。
在步骤310处,每个合作伙伴设备104在接收到请求和对应于该合作伙伴设备104的eROC时,可以使用它们的私钥对eROC进行解密,以恢复ROC。一旦eROC被解密,合作伙伴设备104就可以提取客户端设备的私有标识符和认证令牌。基于私有标识符,合作伙伴设备104可以选择用于传递给客户端设备100的内容或者可以在内容的选择中使用的数据。在步骤312处,合作伙伴设备104可以向内容提供者102发送数据或内容。
在步骤314处,内容提供者102可以选择内容。内容提供者102可以从由不同合作伙伴设备104中的每一个提供的多个内容项中选择内容项。内容提供者102可以基于由合作伙伴设备104提供的偏好或其他数据来选择内容项。例如,合作伙伴设备104可以提供客户端设备的计算能力、客户端设备100的用户的偏好或其他数据的指示。在该示例中,内容提供者102可以选择满足用户偏好并且可以根据客户端设备的计算能力而呈现的内容。
当内容提供者102从合作伙伴设备104接收内容或数据时,内容提供者102可以收集合作伙伴设备104提供的认证令牌和从合作伙伴设备104发送的数据。内容提供者102可以与对应于当前内容请求的内容请求标识符相关联地将认证令牌存储在表中。
在步骤316处,内容提供者102可以向客户端设备100发送内容和收集的认证令牌。在步骤318处,客户端设备100可以审核返回的认证令牌并显示接收的内容。客户端设备100可以在显示或呈现内容之前审核认证令牌。如果认证令牌没有通过审核,则客户端设备100可以拒绝或谢绝呈现内容。例如,客户端设备100可以审核认证令牌,以确定返回的认证令牌中的每一个是否有效。有效的认证令牌可以指示内容提供者102接收到与合作伙伴设备104共享数据的许可。无效的认证令牌可以指示内容提供者102没有接收到与合作伙伴设备104共享数据的许可,并且试图例如缓存和重新使用一个或多个eROC或认证令牌。
图4和图5示出了具有自实施许可的数据交换方法的流程图。每个流程图被划分成部分以示出由客户端设备100、内容提供者102和合作伙伴设备104执行的步骤或过程。
在步骤400处,客户端设备100可以向内容提供者102发送对内容的请求。客户端设备100上的应用(诸如网络浏览器或媒体应用)可以生成对内容的请求。应用可以在网页的呈现期间或在另一内容项的回放期间遇到定时事件时生成请求。请求可以经由任何合适的传输协议(例如,HTTPS请求、RESTful请求等)来发送并且可以包括执行握手过程。请求可以包括设备标识符、账户标识符、用户标识符、会话标识符、或由客户端设备为内容提供者102生成以唯一地标识客户端设备100的其他这样的标识符或cookie(例如,ROC)。例如,在一些实施方式中,内容提供者102可以先前已经向客户端设备100提供了cookie(例如,在认证过程或其他这样的事件期间),并且客户端设备100可以在此后的请求中提供相同的cookie。
在步骤402处,内容提供者102可以标识一个或多个合作伙伴设备104,以潜在地向客户端设备100提供内容,或者提供用于选择提供给客户端设备100的内容的数据。内容提供者102可以经由任何方法(诸如竞拍系统或轮询算法或其他负载平衡系统)选择合作伙伴设备104。在一些实施方式中,可以在针对其生成内容请求的网页或应用中向客户端设备100标识合作伙伴设备104。例如,合作伙伴设备104的列表可以在网页中或经由在网页中标识的可公开访问的合作伙伴文件被包括在多个标签参数中。
在步骤404处,内容提供者102可以请求与在步骤402处标识的一个或多个合作伙伴设备104共享数据的许可。与合作伙伴设备104的数据的共享可以包括内容提供者102共享例如内容提供者102从客户端设备100接收的上述客户端标识符。在一些实施方式中,合作伙伴设备104中的每一个可能先前已经与客户端设备100交换了设备标识符、账户标识符、用户标识符、会话标识符、或其他这样的标识符或cookie。先前共享的标识符可以是在客户端设备100和相应的合作伙伴设备104之间唯一的ROC(或其他标识符)。例如,客户端设备100可以为合作伙伴设备104中的每一个存储不同的ROC。在一些实施方式中,对共享数据的许可的请求可以包括对客户端设备100将先前存储的标识符发送到合作伙伴设备104的请求。
许可请求可以包括向客户端设备100标识合作伙伴设备104的标识符,诸如域。例如,内容提供者102可以将选择的合作伙伴设备104添加到列表。添加合作伙伴设备104可以包括将合作伙伴设备104的域名或地址添加到列表,将域名或地址连结到名称或地址的集合,或者以其他方式将合作伙伴设备104的标识添加到列表。
在步骤406处,客户端设备100可以从与共享数据的请求一起接收的列表中提取第一合作伙伴设备104的域或地址。如上所述,列表可以包括预定长度的字段或由分隔符分开的可变长度字段。相应地,客户端设备100可以根据长度或分隔符来提取域或地址。
客户端设备100可以确定是否应该为(由内容提供者102或直接从客户端设备100)与合作伙伴设备104共享数据给出许可。如上所述,客户端设备100可以维护审核日志,该审核日志可以包括列入白名单或列入黑名单的合作伙伴设备104的列表。客户端设备100可以搜索列入白名单或列入黑名单的合作伙伴设备104,以确定是否应该与合作伙伴设备104共享数据。例如,如果合作伙伴设备的域被包括在黑名单中,则客户端设备100可以确定数据不应该与合作伙伴设备104共享。客户端设备100可以通过返回到步骤406并标识由内容提供者102提供的列表中的下一个合作伙伴设备104,确定不为合作伙伴设备104生成eROC。
如上所述,审核日志可以包括合作伙伴设备104中的每一个的贡献信息。贡献信息可以指示合作伙伴设备对先前提供的内容的选择的贡献。例如,如关于步骤428进一步描述的,当实现内容请求时,内容提供者102可以提供合作伙伴设备104中的每一个在选择内容以实现请求中提供的贡献量的指示。对于每个合作伙伴设备104,贡献水平可以被表示为百分比。合作伙伴设备104中的每一个实现内容请求的合计百分比贡献可以等于100%。合作伙伴设备104在实现内容请求中提供的贡献水平可以基于内容提供者102和相应的合作伙伴设备104之间的协定而确定。例如,在来自合作伙伴设备104的、使得内容提供者102能够定制提供给客户端设备100的内容的数据的交换中,内容提供者102可以给予合作伙伴设备104 10%的贡献。在一些实施方式中,如果向内容提供者102提供了用于提供内容的支付,则可以基于各自在选择内容中扮演的贡献水平来在内容提供者102和合作伙伴设备104中的每一个之间分割支付。
为了确定合作伙伴设备104的过去贡献,客户端设备100可以计算合作伙伴设备104的贡献值。贡献值可以是合作伙伴设备104在选择过去的内容项中提供的贡献水平的平均值。在一些实施方式中,贡献值可以基于时间限制或特定数量的内容实现而计算。例如,贡献值可以仅基于最后一天、一周、一月、一年或其他时间范围内的内容实现。在另一示例中,贡献值可以基于过去的N个内容实现。贡献值可以是加权平均。例如,来自最近的内容实现的贡献水平可以被加权为高于来自相对更早的内容实现的贡献水平。
在步骤410处,客户端设备100可以确定计算出的贡献值是否高于预定阈值。如果贡献值高于阈值,则客户端设备100可以前进到步骤412。如果贡献值低于阈值,则客户端设备100可以返回到步骤406,并且不为当前标识的合作伙伴设备104生成eROC。客户端设备100可以将计算出的贡献值与阈值进行比较,以确定合作伙伴设备104对内容的选择和定制有什么影响。为了使得合作伙伴设备104能够在为客户端设备100选择内容中提供输入,从(或关于)客户端设备100向合作伙伴设备104提供一些信息。为了增加客户端设备100的隐私,客户端设备100可以决定不授权与基本上不影响内容选择(例如,贡献值小于阈值)的合作伙伴设备104共享数据。当合作伙伴设备104具有低贡献值时,通过不与合作伙伴设备104共享数据,客户端设备100可以保护客户端设备100的隐私,同时不影响为客户端设备100选择的内容的质量。在一些实施方式中,如果合作伙伴设备104在步骤400发送请求之前没有参与内容请求的实现,则即使合作伙伴域的贡献值低于预定阈值,客户端设备100也可以将合作伙伴域传递给ROC的生成(例如,步骤412)。客户端设备100可以向新的合作伙伴域提供宽限期,在该宽限期内,即使当合作伙伴域的贡献值低于预定阈值时,合作伙伴域也被授权参与数据共享。宽限期可以持续预定的时间长度(例如,一天、一周或一月)或预定的间隔(例如,对于10、50或100个内容请求)。
如果客户端设备100确定贡献值高于阈值,则客户端设备100可以计算合作伙伴设备104的ROC。在一些实施方式中,代替将贡献值与阈值进行比较或者除了将贡献值与阈值进行比较之外,客户端设备100可以确定合作伙伴设备104的域是否在指示数据共享授权的白名单或黑名单上。例如,客户端设备100可以包括客户端设备100已经给出授权与其共享数据而不管合作伙伴设备的贡献值如何的合作伙伴设备104的白名单。在另一示例中,客户端设备100可以将合作伙伴设备104的域包括在黑名单上,并且可以从不提供许可与合作伙伴设备104共享数据,而不管合作伙伴设备的贡献如何。在另一示例中,客户端设备100可以仅考虑与合作伙伴设备104相关联的标识符是否在白名单或黑名单上,并且在确定是否许可与合作伙伴设备104共享数据时,可以不计算合作伙伴设备104的相对贡献。
在步骤412处,已经批准了与合作伙伴设备104共享数据,客户端设备100可以为合作伙伴设备104生成ROC。为了生成ROC,客户端设备100可以计算合作伙伴设备104的域或地址或其他标识符和客户端设备100的私钥或标识符的单向安全加密散列。客户端设备100的标识符可以是在客户端设备100和合作伙伴设备104之间可以向合作伙伴设备104标识客户端设备100的私有标识符。例如,私有标识符可以是由合作伙伴设备104先前(诸如例如,当客户端设备100访问合作伙伴设备104的域上的网页时)提供给客户端设备100的cookie或其他标识符。可以使用任何合适的加密散列算法。在一些实施方式中,客户端设备100可以将ROC存储在审核日志中。例如,客户端设备100可以将ROC存储或缓存预定的时间长度,以减少加密散列所需的计算资源。当该ROC被本地缓存在客户端设备100处时,在步骤412处,客户端设备100可以在生成新的ROC之前搜索缓存。
在步骤414处,客户端设备100可以从在步骤412处生成的ROC生成eROC。客户端设备100可以通过检索合作伙伴设备104的公钥来生成eROC。客户端设备100可以从预定地址(例如,“[domain]/key.html”)或从密钥服务器检索密钥。在一些实施方式中,一旦客户端设备100接收到公钥,客户端设备100就可以将该密钥缓存预定的时间长度,以用于为合作伙伴设备104生成未来的eROC。
客户端设备100可以通过用合作伙伴设备的公钥加密在步骤412处生成的ROC来生成eROC。在一些实施方式中,客户端设备100可以将ROC与其他数据连结,并对产生的字符串进行加密以生成eROC。例如,客户端设备100可以连结ROC、时间戳、认证令牌、公钥或其任何组合以生成字符串。
客户端设备100可以将认证令牌存储在审核日志中。认证令牌可以与域相关联地被存储在审核日志中。在一些实施方式中,认证令牌可以仅在预定的时间长度内有效,并且时间戳或期满时间可以与认证令牌相关联地被保存到审核日志,以使得客户端设备100能够确定当由内容提供者102或合作伙伴设备104返回时认证令牌是否有效。
在步骤416处,客户端设备可以确定列表是否包括附加的提供者,如果包括,则可以重复步骤406-414。
在对从内容提供者102接收的列表中的合作伙伴设备104中的每一个重复步骤406-416之后,客户端设备100退出步骤406-416的循环,该循环已经为客户端设备100批准与其共享数据的合作伙伴设备104中的每一个生成了eROC。客户端设备100还更新了审核日志,以包括为合作伙伴设备104中的每一个生成的认证令牌的指示。
在步骤418处,客户端设备100可以为内容提供者102生成ROC。客户端设备100可以如上关于为合作伙伴设备104中的每一个生成ROC所述地生成ROC。在一些实施方式中,客户端设备100可以不加密内容提供者102的ROC,因为客户端设备100将在安全通信信道中直接向内容提供者102发送内容提供者的ROC。同时,如图3中所示,当内容提供者102从客户端设备100接收到ROC(如eROC)并且将ROC(其可以由客户端设备100加密为eROC)转发给相应的合作伙伴设备104中的每一个时,合作伙伴设备104可以经由内容提供者102接收它们的ROC。由于内容提供者的ROC将被直接发送到内容提供者102,所以客户端设备100可以通过不对内容提供者的ROC进行加密来节省计算资源。客户端设备100可以通过安全信道(诸如经由HTTPS请求)向内容提供者102发送ROC(以及向内容提供者102发送eROC)。在一些实施方式中,在步骤418之后,客户端设备100可以加密内容提供者的ROC以生成发送给内容提供者102的eROC。
作为步骤420,客户端设备100可以向内容提供者102发送eROC的集合。在步骤422处,内容提供者102可以将eROC转发给相应的合作伙伴设备104中的每一个。
在步骤500处,如图5所示,合作伙伴设备104可以解密eROC。合作伙伴设备104可以使用合作伙伴设备的私钥来解密eROC。解密eROC生成用于在步骤414处生成eROC的字符串。值(例如,ROC、时间戳、认证令牌和公钥)中的每一个可以是已知的固定长度或由分隔符分开。合作伙伴设备104可以基于固定长度的值或分隔符来提取ROC、时间戳、认证令牌和公钥中的每一个。
在步骤502处,合作伙伴设备104可以基于ROC来选择数据。如上所述,ROC可以是或者可以包括客户端设备100和合作伙伴设备104之间向合作伙伴设备104标识客户端设备100的私有标识符。合作伙伴设备104可以基于ROC来选择用于传递给客户端设备100的内容项。内容项可以经由任何合适的方式进行选择,并且可以针对客户端设备100进行个性化或定制。可以基于合作伙伴设备的本地数据库中与ROC相关联的信息来个性化内容。例如,与ROC相关联的信息可以包括先前从客户端设备100接收的信息(例如,偏好)、与客户端设备100相关联的网络浏览或搜索历史、先前的内容请求或交互、或任何其他类型和形式的信息。在一些实施方式中,除了选择内容项之外或代替选择内容项,合作伙伴设备104可以选择先前从客户端设备100接收的信息(例如,偏好)、与客户端设备100相关联的网络浏览或搜索历史、先前的内容请求或交互、或与ROC相关联地存储在合作伙伴设备104的内部数据库中的任何其他类型和形式的信息。合作伙伴设备104可以将数据发送到可以基于该数据来选择内容的内容提供者102或另一合作伙伴设备104。
在步骤504处,合作伙伴设备104可以确定认证令牌。如上所述,认证令牌可以被包括在加密在eROC内的字符串中。一旦eROC被解密以揭示字符串,合作伙伴设备104就可以基于字符串内的固定长度的值和/或字符串内的分隔符从字符串中提取认证令牌。
在步骤506处,合作伙伴设备104可以向内容提供者102发送认证令牌和数据,其中该数据可以包括内容项。在一些实施方式中,当数据包括内容项时,发送到内容提供者102的数据可以包括向客户端设备100显示或提供内容项的出价。
回到图4,在步骤424处,内容提供者102可以在选择内容项中从合作伙伴设备104中的每一个收集认证令牌和相对贡献。例如,内容提供者102可以包括内容项的内部数据库,内容提供者102从该内部数据库中选择内容以用于响应客户端设备的内容请求。内容提供者102可能已经从四个不同的合作伙伴设备104中的每一个接收到客户端设备100的偏好。与偏好信息一起,内容提供者102可以从提供偏好信息的合作伙伴设备104中的每一个接收认证令牌。内容提供者102可以收集认证令牌中的每一个,并与合作伙伴设备104中的每一个的相对贡献相关联地将认证令牌存储在表中。例如,四个合作伙伴设备104的表可以是阵列,诸如[(令牌1,5)、(令牌2,5)、(令牌3,7)、(令牌4,2)],指示与令牌1相关联的合作伙伴设备104贡献了5%、与令牌2相关联的合作伙伴设备104贡献了5%、与令牌3相关联的合作伙伴设备104贡献了7%、并且与令牌4相关联的合作伙伴设备104贡献了2%来选择内容项。在该示例中,内容提供者102可能已经对内容项的选择负81%(100%-5%-5%-7%-2%)的责。总贡献可以是100%,使得内容提供者102对合作伙伴设备104中的一个未提供的贡献负责。在一些实施方式中,内容提供者102可以通过搜索存储在内容提供者102处的贡献表来确定每个合作伙伴设备104的贡献。在一些实施方式中,在合作伙伴设备104向内容提供者102提供数据之前,内容提供者102和合作伙伴设备104可以商定合作伙伴设备104在向内容提供者102提供数据(或内容)以促进内容选择时将接收的贡献得分。商定的贡献得分可以被存储在贡献表中。
在步骤428处,内容提供者102可以向客户端设备100发送内容项、认证令牌和相对贡献。
在步骤430处,客户端设备100可以呈现接收的内容。在一些实施方式中,客户端设备100可以在呈现内容之前审核返回的认证令牌。客户端设备100可以将返回的认证令牌中的每一个用作键(key)来在审核日志中查找认证令牌。如果认证令牌期满、与不同的内容请求相关联或者不位于审核日志中,则客户端设备100可以确定认证令牌无效。例如,在违反ToS的情况下,内容提供者102可能已经缓存了合作伙伴设备104的eROC或认证令牌,使得内容提供者102可以与合作伙伴设备104共享数据,而无需首先询问客户端设备100的许可。在该示例中,当内容提供者102缓存了认证令牌时,客户端设备100可以确定认证令牌已经期满并且无效。在一些实施方式中,如果在步骤428处返回给客户端设备100的认证令牌中的一个或多个无效,则客户端设备100可以决定不呈现内容。
在步骤432处,客户端设备100可以更新审核日志。更新审核日志可以包括添加刚刚完成的内容请求的条目。条目可以包括基于在步骤428处发送到客户端设备100的贡献得分来更新合作伙伴设备104中的每一个的总体或运行贡献得分。在一些实施方式中,更新审核日志可以包括如果相应的内容提供者或合作伙伴设备的认证令牌中的任何一个被确定为无效,则将内容提供者102或合作伙伴设备104的标识符添加到黑名单。
根据本公开的至少一个方面,一种控制数据交换的系统可以包括加密器。该加密器可以为合作伙伴域列表中的每个合作伙伴域生成合作伙伴域特定标识符,并使用对应合作伙伴域的加密密钥来加密合作伙伴域特定标识符和第一认证令牌。合作伙伴域特定标识符可以是或可以包括合作伙伴域的域(例如,.example.com)的指示或其散列。合作伙伴域特定标识符可以由系统作为随机生成的、顺序生成的或其他类型的标识符分配给合作伙伴域。该系统可以包括网络接口,用以向内容提供者发送合作伙伴域列表中的每个合作伙伴域的加密的合作伙伴域特定标识符。该网络接口可以从内容提供者接收由内容提供者基于来自合作伙伴域列表中的每个合作伙伴域的数据而选择的内容项。来自合作伙伴域列表中的每个合作伙伴域的数据是基于接收加密的合作伙伴域特定标识符而选择的。例如,合作伙伴域可以对加密的合作伙伴域特定标识符进行解密,并且在查找表中将合作伙伴域特定标识符用作键来标识与合作伙伴域特定标识符相关联的数据。该网络接口可以通过客户端设备从内容提供者接收合作伙伴域列表中的每个合作伙伴域的第二认证令牌。该系统可以包括审核引擎,用以基于合作伙伴域列表中的每个合作伙伴域的第一认证令牌和合作伙伴域列表中的每个合作伙伴域的第二认证令牌的比较来决定显示内容项。例如,如果第一认证令牌和第二认证令牌匹配,则审核引擎可以显示内容项。
在一些实施方式中,审核引擎被配置为基于比较来决定显示内容项,其还包括将合作伙伴域列表中的每个合作伙伴域的第一认证令牌中的每一个与合作伙伴域列表中的每个合作伙伴域的第二认证令牌中的一个进行匹配。审核引擎还可以被配置为确定第二合作伙伴域的贡献得分。贡献得分可以指示在选择第二内容项中的贡献水平。审核引擎可以基于贡献得分小于预定阈值来决定不为第二合作伙伴域生成合作伙伴域特定标识符。贡献得分可以指示在选择一个或多个先前内容项中的贡献水平。
在一些实施方式中,加密器可以为第二合作伙伴域列表中的每个域合作伙伴生成第一认证令牌。网络接口可以从内容提供者接收由内容提供者基于来自第二合作伙伴域列表中的每个合作伙伴域的数据而选择的第二内容项。网络接口还可以从内容提供者接收第二合作伙伴域列表中的每个域合作伙伴的第二认证令牌。审核引擎可以基于不将第二合作伙伴域列表中的每个域合作伙伴的第一认证令牌与第二合作伙伴域列表中的每个域合作伙伴的第二认证令牌中的相应一个进行匹配来决定不显示第二内容项。
加密器可以被配置为通过计算客户端设备标识符和对应合作伙伴域的域名的加密散列来生成合作伙伴特定标识符。客户端设备标识符对于合作伙伴域列表中的合作伙伴域中的每一个可以是唯一的。为了加密合作伙伴域特定标识符,加密器被配置为通过至少连结合作伙伴域特定标识符、第一认证令牌和时间戳来生成字符串。加密器然后可以加密字符串。
在一些实施方式中,加密器可以被配置为基于合作伙伴域没有被列在黑名单中来生成合作伙伴域特定标识符。加密器可以被配置为基于合作伙伴域的贡献得分高于预定阈值来生成合作伙伴域特定标识符。
根据本公开的至少一个方面,一种控制数据交换的方法可以包括由客户端设备从内容提供者接收合作伙伴域列表。该方法可以包括,对于合作伙伴域列表中的每个合作伙伴域,由客户端设备生成合作伙伴域特定标识符,并且由客户端设备使用对应合作伙伴域的加密密钥来加密合作伙伴域特定标识符和第一认证令牌。该方法可以包括由客户端设备向内容提供者发送合作伙伴域列表中的每个合作伙伴域的加密的合作伙伴域特定标识符。该方法可以包括由客户端设备从内容提供者接收由内容提供者基于来自合作伙伴域列表中的每个合作伙伴域的数据而选择的内容项。来自合作伙伴域列表中的每个合作伙伴域的数据是基于接收加密的合作伙伴域特定标识符而选择的。该方法可以包括由客户端设备从内容提供者接收合作伙伴域列表中的每个合作伙伴域的第二认证令牌。该方法可以包括由客户端设备基于合作伙伴域列表中的每个合作伙伴域的第一认证令牌和合作伙伴域列表中的每个合作伙伴域的第二认证令牌的比较来显示内容项。
在一些实施方式中,该方法可以包括基于比较来显示内容项,并且还包括将合作伙伴域列表中的每个合作伙伴域的第一认证令牌中的每一个与合作伙伴域列表中的每个合作伙伴域的第二认证令牌中的一个进行匹配。
该方法可以包括由客户端设备接收第二合作伙伴域。该方法可以包括由客户端设备确定第二合作伙伴域的贡献得分。贡献得分指示在选择第二内容项中的贡献水平。该方法可以包括由客户端设备基于贡献得分小于预定阈值来决定不为第二合作伙伴域生成合作伙伴域特定标识符。贡献得分可以指示在选择一个或多个先前内容项中的贡献水平。
在一些实施方式中,该方法可以包括由客户端设备接收第二合作伙伴域列表。该方法可以包括由客户端设备为第二合作伙伴域列表中的每个域合作伙伴生成第一认证令牌。该方法可以包括由客户端设备从内容提供者接收由内容提供者基于来自第二合作伙伴域列表中的每个合作伙伴域的数据而选择的第二内容项。该方法可以包括由客户端设备从内容提供者接收第二合作伙伴域列表中的每个域合作伙伴的第二认证令牌。该方法可以包括由客户端设备基于不将第二合作伙伴域列表中的每个域合作伙伴的第一认证令牌与第二合作伙伴域列表中的每个域合作伙伴的第二认证令牌中的相应一个进行匹配来决定不显示第二内容项。
在一些实施方式中,生成合作伙伴特定标识符可以包括计算客户端设备标识符和对应合作伙伴域的域名的加密散列。客户端设备标识符对于合作伙伴域列表中的合作伙伴域中的每一个可以是唯一的。加密合作伙伴域特定标识符可以包括通过至少连结合作伙伴域特定标识符、第一认证令牌和时间戳来生成字符串。该方法可以包括加密字符串。该方法可以包括基于合作伙伴域没有被列在黑名单中来生成合作伙伴域特定标识符。该方法可以包括基于合作伙伴域的贡献得分高于预定阈值来生成合作伙伴域特定标识符。
本说明书中描述的操作可以实施为由数据处理装置对存储在一个或多个计算机可读存储设备上或从其他源接收的数据执行的操作。
术语“客户端”或“服务器”包括用于处理数据的各种装置、设备和机器,诸如可编程处理器、计算机、片(或多个片)上系统、或前述的组合。装置可以包括专用逻辑电路,例如,FPGA(field programmable gate array,现场可编程门阵列)或ASIC(application-specific integrated circuit,专用集成电路)。除了硬件之外,装置还可以包括为所讨论的计算机程序创建运行环境的代码,例如,构成处理器固件、协议栈、数据库管理系统、操作系统、跨平台运行时环境、虚拟机或它们中的一个或多个的组合的代码。装置和运行环境可以实现各种不同的计算模型基础设施,诸如网络服务、分布式计算和网格计算基础设施。
计算机程序(也被称为程序、软件、软件应用、脚本或代码)可以用任何形式的编程语言编写,包括编译或解释语言以及声明性或过程性语言,并且它可以以任何形式部署,包括作为独立程序或作为模块、组件、子例程、对象或适合在计算环境中使用的其他单元。计算机程序可以但不必对应于文件系统中的文件。程序可以存储在保存其他程序或数据的文件的一部分中(例如,存储在标记语言文档中的一个或多个脚本)、存储在专用于所讨论的程序的单个文件中、或者存储在多个协同文件中(例如,存储一个或多个模块、子程序或代码部分的文件)。计算机程序可以被部署为在一个计算机上或在位于一个站点或跨多个站点分布并通过通信网络互连的多个计算机上运行。
本说明书中描述的过程和逻辑流程可以由一个或多个可编程处理器执行,该一个或多个可编程处理器运行一个或多个计算机程序,以通过对输入数据进行操作并生成输出来执行动作。过程和逻辑流程也可以由专用逻辑电路来实施,并且装置也可以被实施为专用逻辑电路,例如,FPGA(现场可编程门阵列)或ASIC(专用集成电路)。
适于运行计算机程序的处理器包括通用和专用微处理器两者以及任何类型的数字计算机的任何一个或多个处理器。一般地,处理器将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的基本要素是用于根据指令执行动作的处理器和用于存储指令和数据的一个或多个存储器设备。一般地,计算机还将包括或可操作地耦合以从用于存储数据的一个或多个大容量存储设备(例如磁盘、磁光盘或光盘)接收数据或向其传输数据或两者兼有。然而,计算机不必具有这样的设备。此外,计算机可以嵌入另一个设备,例如移动电话、个人数字助理(Personal Digital Assistant,PDA)、移动音频或视频播放器、游戏控制台、全球定位系统(Global Positioning System,GPS)接收器或便携式存储设备(例如,通用串行总线(Universal Serial Bus,USB)闪存驱动器),仅举几个示例。适于存储计算机程序指令和数据的设备包括所有形式的非易失性存储器、介质和存储器设备,包括半导体存储器设备,例如EPROM、EEPROM和闪存设备;磁盘,例如内部硬盘或可移动盘;磁光盘;和CD-ROM和DVD-ROM盘。处理器和存储器可以由专用逻辑电路来补充或并入专用逻辑电路。
为了提供与用户的交互,本说明书中描述的主题的实现可以在具有显示设备(例如,CRT(Cathode Ray Tube,阴极射线管)、LCD(Liquid Crystal Display,液晶显示器)、OLED(Organic Light Emitting Diode,有机发光二极管)、TFT(Thin-Film Transistor,薄膜晶体管)、等离子显示器、其他灵活配置、或用于向用户显示信息的任何其他监视器)以及用户可以通过其向计算机提供输入的键盘、定点设备(例如,鼠标、轨迹球等)、或触摸屏、触摸板等的计算机上实施。也可以使用其他类型的设备来提供与用户的交互;提供给用户的反馈可以是任何形式的感官反馈,例如视觉反馈、听觉反馈或触觉反馈;并且可以以任何形式接收来自用户的输入,包括声音、语音或触觉输入。此外,计算机可以通过向用户使用的设备发送文档和从用户使用的设备接收文档,或者通过响应于从网络浏览器接收的请求向用户的客户端设备上的网络浏览器发送网页,来与用户进行交互。
本说明书中描述的主题的实现可以在计算系统中实施,该计算系统包括后端组件,例如数据服务器,或者包括中间件组件,例如应用服务器,或者包括前端组件,例如具有图形用户界面或网络浏览器的客户端计算机,用户可以通过该图形用户界面或网络浏览器与本说明书中描述的主题的实现进行交互,或者一个或多个这样的后端、中间件或前端组件的任何组合。系统的组件可以通过任何形式或介质的数字数据通信(例如,通信网络)来互连。通信网络可以包括局域网(“LAN”)、广域网(“WAN”)、互联网络(例如,互联网)和对等网络(例如,自组织对等网络)。
对于其中本文讨论的系统收集关于用户的个人信息或者可以利用个人信息的情况,可以向用户提供机会来控制程序或特征是否可以收集个人信息(例如,关于用户的社交网络、社交动作或活动、用户偏好或用户位置的信息),或者控制是否或如何从合作伙伴设备或可能与用户更相关的其他数据处理系统接收内容。此外,某些数据可以在存储或使用之前以一种或多种方式匿名化,使得在生成参数时移除个人可识别信息。例如,用户的身份可以被匿名化,使得不能为用户确定个人可识别信息,或者用户的地理位置可以被概括为获得位置信息的地方(诸如概括到城市、邮政编码或州级),使得不能确定用户的具体位置。因此,用户可以控制如何收集关于他或她的信息并由合作伙伴设备使用。
虽然本说明书包含许多具体的实施方式细节,但这些不应被解释为对任何发明或可要求保护的范围的限制,而是对特定于特定发明的特定实施方式的特征的描述。本说明书中在分开的实施方式的上下文中描述的某些特征也可以在单个实施方式中组合实施。相反,在单个实施方式的上下文中描述的各种特征也可以在多个实施方式中分开实施或者以任何合适的子组合实施。此外,尽管特征可以在上文中被描述为在某些组合中起作用,并且甚至最初被要求保护如此,但是在一些情况下,来自所要求保护的组合的一个或多个特征可以从该组合中删除,并且所要求保护的组合可以指向子组合或子组合的变型。
类似地,虽然在附图中以特定顺序描绘了操作,但是这不应被理解为要求以所示的特定顺序或先后顺序执行这些操作,或者要求执行所有示出的操作,以获得期望的结果。在某些情况下,多任务和并行处理可能是有利的。此外,上述实施方式中的各种系统组件的分离不应该被理解为在所有实施方式中都需要这种分离,并且应该理解,所描述的程序组件和系统一般可以一起集成在单个软件产品中或者封装到多个软件产品中。
因此,已经描述了主题的特定实施方式。其他实施方式在以下权利要求的范围内。在一些情况下,权利要求中列举的动作可以以不同的顺序执行,并且仍然获得期望的结果。此外,附图中描绘的过程不一定需要所示的特定顺序或先后顺序来实现期望的结果。在某些实施方式中,可以利用多任务或并行处理。

Claims (20)

1.一种控制数据交换的系统,包括:
加密器,用以为合作伙伴域列表中的每个合作伙伴域:
生成合作伙伴域特定标识符;以及
使用对应合作伙伴域的加密密钥来加密所述合作伙伴域特定标识符和第一认证令牌;
网络接口,用以:
向内容提供者发送所述合作伙伴域列表中的每个合作伙伴域的加密的合作伙伴域特定标识符和加密的第一认证令牌;
从所述内容提供者接收由所述内容提供者基于来自所述合作伙伴域列表中的每个合作伙伴域的数据而选择的内容项,其中,来自所述合作伙伴域列表中的每个合作伙伴域的所述数据是基于接收所述加密的合作伙伴域特定标识符而选择的;
从所述内容提供者接收所述合作伙伴域列表中的每个合作伙伴域的第二认证令牌;以及
审核引擎,用以基于所述合作伙伴域列表中的每个合作伙伴域的第一认证令牌和所述合作伙伴域列表中的每个合作伙伴域的第二认证令牌的比较来确定显示所述内容项。
2.根据权利要求1所述的系统,其中,所述审核引擎基于所述比较来确定显示所述内容项还包括将所述合作伙伴域列表中的每个合作伙伴域的第一认证令牌中的每一个与所述合作伙伴域列表中的每个合作伙伴域的第二认证令牌中的一个进行匹配。
3.根据权利要求1或2所述的系统,还包括所述审核引擎:
确定第二合作伙伴域的贡献得分,其中,所述贡献得分指示在选择第二内容项中的贡献水平;以及
基于所述贡献得分小于预定阈值,确定不为所述第二合作伙伴域生成合作伙伴域特定标识符。
4.根据权利要求3所述的系统,其中,所述贡献得分指示在选择一个或多个先前内容项中的贡献水平。
5.根据权利要求1或2所述的系统,还包括:
所述加密器为第二合作伙伴域列表中的每个域合作伙伴生成第一认证令牌;
所述网络接口:
从所述内容提供者接收由所述内容提供者基于来自所述第二合作伙伴域列表中的每个合作伙伴域的数据而选择的第二内容项;
从所述内容提供者接收所述第二合作伙伴域列表中的每个域合作伙伴的第二认证令牌;以及
所述审核引擎基于不将所述第二合作伙伴域列表中的每个域合作伙伴的第一认证令牌与所述第二合作伙伴域列表中的每个域合作伙伴的第二认证令牌中的相应一个进行匹配来确定不显示所述第二内容项。
6.根据权利要求1或2所述的系统,其中,所述加密器被配置为通过计算客户端设备标识符和对应合作伙伴域的域名的加密散列来生成所述合作伙伴域特定标识符。
7.根据权利要求6所述的系统,其中,所述客户端设备标识符对于所述合作伙伴域列表中的合作伙伴域中的每一个是唯一的。
8.根据权利要求1或2所述的系统,其中,为了加密所述合作伙伴域特定标识符,所述加密器被配置为:
通过至少连结所述合作伙伴域特定标识符、所述第一认证令牌和时间戳来生成字符串;以及
加密所述字符串。
9.根据权利要求1或2所述的系统,其中,所述加密器被配置为基于所述合作伙伴域没有被列在黑名单中来生成所述合作伙伴域特定标识符。
10.根据权利要求1或2所述的系统,其中,所述加密器被配置为基于所述合作伙伴域的贡献得分高于预定阈值来生成所述合作伙伴域特定标识符。
11.一种控制数据交换的方法,包括:
由客户端设备从内容提供者接收合作伙伴域列表;
对于所述合作伙伴域列表中的每个合作伙伴域:
由所述客户端设备生成合作伙伴域特定标识符;以及
由所述客户端设备使用对应合作伙伴域的加密密钥来加密所述合作伙伴域特定标识符和第一认证令牌;
由所述客户端设备向所述内容提供者发送所述合作伙伴域列表中的每个合作伙伴域的加密的合作伙伴域特定标识符和加密的第一认证令牌;
由所述客户端设备从所述内容提供者接收由所述内容提供者基于来自所述合作伙伴域列表中的每个合作伙伴域的数据而选择的内容项,其中,来自所述合作伙伴域列表中的每个合作伙伴域的所述数据是基于接收所述加密的合作伙伴域特定标识符而选择的;
由所述客户端设备从所述内容提供者接收所述合作伙伴域列表中的每个合作伙伴域的第二认证令牌;以及
由所述客户端设备基于所述合作伙伴域列表中的每个合作伙伴域的第一认证令牌和所述合作伙伴域列表中的每个合作伙伴域的第二认证令牌的比较来显示所述内容项。
12.根据权利要求11所述的方法,其中,基于所述比较来显示所述内容项还包括将所述合作伙伴域列表中的每个合作伙伴域的第一认证令牌中的每一个与所述合作伙伴域列表中的每个合作伙伴域的第二认证令牌中的一个进行匹配。
13.根据权利要求11或12所述的方法,还包括:
由所述客户端设备接收第二合作伙伴域;
由所述客户端设备确定所述第二合作伙伴域的贡献得分,其中,所述贡献得分指示在选择第二内容项中的贡献水平;以及
由所述客户端设备基于所述贡献得分小于预定阈值来确定不为所述第二合作伙伴域生成合作伙伴域特定标识符。
14.根据权利要求13所述的方法,其中,所述贡献得分指示在选择一个或多个先前内容项中的贡献水平。
15.根据权利要求11或12所述的方法,还包括:
由所述客户端设备接收第二合作伙伴域列表;
由所述客户端设备为所述第二合作伙伴域列表中的每个域合作伙伴生成第一认证令牌;
由所述客户端设备从所述内容提供者接收由所述内容提供者基于来自所述第二合作伙伴域列表中的每个合作伙伴域的数据而选择的第二内容项;
由所述客户端设备从所述内容提供者接收所述第二合作伙伴域列表中的每个域合作伙伴的第二认证令牌;以及
由所述客户端设备基于不将所述第二合作伙伴域列表中的每个域合作伙伴的第一认证令牌与所述第二合作伙伴域列表中的每个域合作伙伴的第二认证令牌中的相应一个进行匹配来确定不显示所述第二内容项。
16.根据权利要求11或12所述的方法,其中,生成所述合作伙伴域特定标识符包括计算客户端设备标识符和对应合作伙伴域的域名的加密散列。
17.根据权利要求16所述的方法,其中,所述客户端设备标识符对于所述合作伙伴域列表中的合作伙伴域中的每一个是唯一的。
18.根据权利要求11或12所述的方法,其中,加密所述合作伙伴域特定标识符包括:
通过至少连结所述合作伙伴域特定标识符、所述第一认证令牌和时间戳来生成字符串;以及
加密所述字符串。
19.根据权利要求11或12所述的方法,还包括基于所述合作伙伴域没有被列在黑名单中来生成所述合作伙伴域特定标识符。
20.根据权利要求11或12所述的方法,还包括基于所述合作伙伴域的贡献得分高于预定阈值来生成所述合作伙伴域特定标识符。
CN201980023493.1A 2019-04-16 2019-04-16 自认证域特定浏览器标识符 Active CN112166586B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2019/027737 WO2020214157A1 (en) 2019-04-16 2019-04-16 Self-authenticating domain specific browser identifiers

Publications (2)

Publication Number Publication Date
CN112166586A CN112166586A (zh) 2021-01-01
CN112166586B true CN112166586B (zh) 2023-04-18

Family

ID=66334565

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201980023493.1A Active CN112166586B (zh) 2019-04-16 2019-04-16 自认证域特定浏览器标识符

Country Status (6)

Country Link
US (1) US20210367784A1 (zh)
EP (1) EP3756331B1 (zh)
JP (1) JP7015400B2 (zh)
KR (1) KR102346120B1 (zh)
CN (1) CN112166586B (zh)
WO (1) WO2020214157A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11356275B2 (en) * 2020-05-27 2022-06-07 International Business Machines Corporation Electronically verifying a process flow

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1554063A (zh) * 2001-07-06 2004-12-08 ��˹��ŵ�� 移动通信环境中的数字权利管理
CN101563880A (zh) * 2006-10-25 2009-10-21 约维申有限公司 全球唯一设备专用标识符的创建和验证
EP2793444A1 (en) * 2013-04-19 2014-10-22 Proximic, Inc. Transmitting information from a first information provider to a second information provider via an information intermediary
CN105210353A (zh) * 2013-03-15 2015-12-30 脸谱公司 通过社交网络维护无线数据隐私
CN105210094A (zh) * 2013-03-07 2015-12-30 脸谱公司 基于配对的标识符识别广告机会的用户
CN105229985A (zh) * 2013-03-20 2016-01-06 诺基亚技术有限公司 标识令牌
EP3167402A1 (en) * 2014-07-10 2017-05-17 Schlage Lock Company LLC Networked access control system
CN107046687A (zh) * 2016-01-26 2017-08-15 谷歌公司 低功率设备的安全连接
CN108431819A (zh) * 2015-12-03 2018-08-21 奥卡交互有限公司 保护客户端访问视频播放器的drm代理的服务的方法和系统
US10158646B1 (en) * 2016-10-10 2018-12-18 Charles Schwab & Co., Inc. System and method for providing a web service using a mobile device capturing dual images

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050108096A1 (en) * 1999-09-28 2005-05-19 Chameleon Network Inc. Portable electronic authorization system and method
US7487354B2 (en) * 2001-05-18 2009-02-03 Microsoft Corporation Methods and systems for using digital signatures in uniform resource locators
JP4569828B2 (ja) * 2003-07-14 2010-10-27 ソニー株式会社 通信方法、通信装置およびプログラム
US20050193015A1 (en) * 2004-02-19 2005-09-01 Sandraic Logic, Llc A California Limited Liability Company Method and apparatus for organizing, sorting and navigating multimedia content
MX2008013880A (es) * 2006-05-02 2009-04-02 Koninkl Philips Electronics Nv Acceso mejorado a dominios autorizados.
US7721091B2 (en) * 2006-05-12 2010-05-18 International Business Machines Corporation Method for protecting against denial of service attacks using trust, quality of service, personalization, and hide port messages
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
JP5020399B1 (ja) * 2011-06-30 2012-09-05 楽天株式会社 情報処理装置、情報処理装置の制御方法、プログラム、及び情報記憶媒体
US10565598B2 (en) * 2012-07-10 2020-02-18 Facebook, Inc. Sponsored advertisement ranking and pricing in a social networking system
AU2013204953B2 (en) * 2012-08-30 2016-09-08 The Nielsen Company (Us), Llc Methods and apparatus to collect distributed user information for media impressions
US10049392B2 (en) * 2014-05-20 2018-08-14 Oath Inc. Systems and methods for identity-protected advertising network
US10671690B2 (en) * 2016-12-29 2020-06-02 Google Llc Search and retrieval of keyed data maintained using a keyed database
US11429998B1 (en) * 2021-04-09 2022-08-30 Inmar Clearing, Inc. Deep-linking authentication system and related methods

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1554063A (zh) * 2001-07-06 2004-12-08 ��˹��ŵ�� 移动通信环境中的数字权利管理
CN101563880A (zh) * 2006-10-25 2009-10-21 约维申有限公司 全球唯一设备专用标识符的创建和验证
CN105210094A (zh) * 2013-03-07 2015-12-30 脸谱公司 基于配对的标识符识别广告机会的用户
CN105210353A (zh) * 2013-03-15 2015-12-30 脸谱公司 通过社交网络维护无线数据隐私
CN105229985A (zh) * 2013-03-20 2016-01-06 诺基亚技术有限公司 标识令牌
EP2793444A1 (en) * 2013-04-19 2014-10-22 Proximic, Inc. Transmitting information from a first information provider to a second information provider via an information intermediary
EP3167402A1 (en) * 2014-07-10 2017-05-17 Schlage Lock Company LLC Networked access control system
CN108431819A (zh) * 2015-12-03 2018-08-21 奥卡交互有限公司 保护客户端访问视频播放器的drm代理的服务的方法和系统
CN107046687A (zh) * 2016-01-26 2017-08-15 谷歌公司 低功率设备的安全连接
US10158646B1 (en) * 2016-10-10 2018-12-18 Charles Schwab & Co., Inc. System and method for providing a web service using a mobile device capturing dual images

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Mashup应用中的开放身份管理框架研究;楚鼎;《中国优秀硕士学位论文全文数据库》;20110915;全文 *
Sessionlock:securing web sessions against eavedropping;Ben Adida;《ACM》;20080421;全文 *

Also Published As

Publication number Publication date
EP3756331B1 (en) 2021-07-28
US20210367784A1 (en) 2021-11-25
JP7015400B2 (ja) 2022-02-02
WO2020214157A1 (en) 2020-10-22
KR20200122384A (ko) 2020-10-27
KR102346120B1 (ko) 2021-12-31
CN112166586A (zh) 2021-01-01
JP2021519022A (ja) 2021-08-05
EP3756331A1 (en) 2020-12-30

Similar Documents

Publication Publication Date Title
US10931683B2 (en) Automatic token-based secure content streaming method and apparatus
KR102390938B1 (ko) 브라우저 쿠키를 대체하는 도메인 특정 브라우저 식별자
EP3763108B1 (en) Restricted environments for message generation in networked environments
EP4070223A1 (en) Using secure multi-party computation to improve content selection process integrity
US20210216614A1 (en) Systems and methods for authentication
CN112166586B (zh) 自认证域特定浏览器标识符
JP7442553B2 (ja) 集約されたコンバージョンの測定
US11277481B1 (en) Content selection through intermediary device
CN115695040A (zh) 用于保护数据的系统和方法
US11968297B2 (en) Online privacy preserving techniques
CN117321593A (zh) 密码安全和隐私保护匹配
CN116368488A (zh) 用于隐私保护的本地化密码技术

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