掌桥专利:专业的专利平台
掌桥专利
首页

针对隐私保护的可验证同意

文献发布时间:2023-06-19 11:32:36


针对隐私保护的可验证同意

背景技术

浏览器cookie是web浏览器存储在用户装置上的少量数据。浏览器cookie可以用于许多目的,包括存储状态性信息、对用户进行认证和记录浏览活动。存在几种类型的cookie,包括第一方cookie和第三方cookie。第一方cookie是由用户直接查看的域(即在浏览器的地址栏中可查看的域)创建和/或访问的cookie。相反,第三方cookie是由与地址栏中可查看的域不同的域创建和/或访问的cookie。

发明内容

本说明书描述了与基于用户输入来更新用于用户数据收集和使用的用户同意设置以使得用户同意在技术上可验证相关的技术。

一般地,本说明书中所描述的主题的一个创新方面可以体现在方法中,这些方法包括:从客户端装置接收包括证明令牌的请求,该证明令牌包括:数据的集合,所述数据的集合至少包括:用户标识符,所述用户标识符唯一地标识客户端装置的用户;令牌创建时间,所述令牌创建时间指示创建证明令牌的时间;用户同意数据,所述用户同意数据指定接收证明令牌的一个或多个实体是否有资格使用用户的数据;以及响应于请求而将被执行的动作;以及至少包括用户标识符和令牌创建时间的数据的集合的至少一部分的数字签名;以及使用证明令牌来验证请求的完整性,包括:确定令牌创建时间是否在接收到请求的时间的阈值持续时间内;使用数字签名确定在创建证明令牌之后是否修改了数据的集合;以及至少基于令牌创建时间在接收到请求的时间的阈值持续时间内的确定以及自创建证明令牌以来未修改数据的集合的确定来确定请求的完整性有效;以及响应于确定请求的完整性有效而执行动作。该方面的其它实施方式包括对应的设备、方法和编码在计算机存储装置上配置成执行方法的方面的计算机程序。

可选地,这些和其它实施方式可以包括以下特征中的一个或多个。在一些方面,执行动作包括:确定用户同意数据指示要删除用户的数据;以及删除用户的数据。

在一些方面,执行动作包括:确定用户同意数据指定由用户授权将由给定实体使用用户的数据执行的一个或多个授权动作;以及防止给定实体将用户的数据用于指定的一个或多个授权动作以外的动作。

在一些方面,数据的集合包括有效载荷数据,该有效载荷数据包括用户同意数据。有效载荷数据可以包括动作所适用的域。一些方面可以包括确定动作是用户同意动作以修改用户针对域使用用户的数据所给予的先前同意。

在一些方面,数据的集合包括有效载荷数据,该有效载荷数据包括用户同意数据。有效载荷数据可以包括动作所适用的域。一些方面可以包括:确定动作是对一个或多个数字组成部分的请求;根据用户同意数据选择一个或多个数字组成部分;以及向客户端装置提供一个或多个数字组成部分。

在一些方面,数字签名是用户标识符、令牌创建时间和有效载荷的签名。在一些方面,数据的集合包括装置完整性令牌或浏览器完整性令牌中的至少一个。

在一些方面,一个或多个实体包括向其提供请求的多个接收者实体,并且针对每个接收者实体,用户同意数据包括加密的同意元素,该加密的同意元素包括特定于接收者实体的用户同意数据,其中使用接收者实体的公钥对针对每个接收者实体的加密的同意元素进行加密。

一些方面包括:接收包括第二用户标识符和第二令牌创建时间的第二请求;确定该第二请求的第二用户标识符与请求的用户标识符匹配;确定第二请求的第二令牌创建时间与请求的令牌创建时间匹配;以及响应于确定第二请求的第二用户标识符与请求的用户标识符匹配并且第二请求的第二令牌创建时间与请求的令牌创建时间匹配,确定第二请求是请求的副本或重放攻击已发生。

在特定实施例中可以实施在本说明书中所描述的主题以便实现以下优点中的一个或多个。使用本文档中所描述的证明令牌将用户同意设置传达给其它实体确保了从用户接收到用户同意设置,并且使得实体能够在技术上验证用户的同意。证明令牌使用数字签名方案来防止实体伪造用户的同意,从而维持数据安全性。证明令牌将用户标识符与用户数据以及与用户同意设置安全地链接在一起,以使得接收用户数据的实体可以根据用户同意来验证用户对使用用户数据的同意。以该方式,向用户提供了一种机制,其中当处理多个实体时,他们可以以安全的方式管理其数据。

每当用户同意设置被修改时和/或在到期之前,客户端装置可以发送具有到期日期的证明令牌,以建立用户同意设置的连续链。这种情况防止实体忽略用户对实体删除用户的数据或以指定方式停止使用数据的请求。客户端装置可以要求来自证明令牌的接收者的响应,以进一步验证用户同意设置的接收并防止接收者实体忽略用户请求。

如本文档中所描述的证明令牌的使用使得第三方审核者能够验证是否正仅根据用户的同意使用用户数据。这种情况使用户能够管理其它实体如何收集和使用其数据,并防止实体不当使用数据。这种情况还通过给予实体以受信任的方式验证给予其收集和使用数据的同意的手段,来保护恰当地使用这种数据的实体。

如本文档中所描述的证明令牌的使用还使得用户能够容易且安全地管理如何收集和使用其数据。例如,本文档中所描述的技术使得用户能够从单个用户接口改变适用于许多不同实体的同意设置,而不必针对每个实体单独地管理同意设置。

下文相对于附图描述了上述主题的各种特征和优点。附加的特征和优点通过本文中所描述的主题和权利要求书而明显。

附图说明

图1是数字组成部分系统分发数字组成部分的环境的框图。

图2是图示用于更新用户同意设置的示例过程的流程图。

图3是图示用于响应于请求而证实请求的完整性并执行动作的示例过程的流程图。

图4是图示用于使用证明令牌来确定请求的完整性是否有效的示例过程的流程图。

图5是图示用于使用证明令牌来确定请求的完整性是否有效的另一示例过程的流程图。

图6是图示用于使用证明令牌来确定请求的完整性是否有效的另一示例过程的流程图。

图7是示例计算机系统的框图。

在各个附图中,相似的附图标记和标号指示相似的元件。

具体实施方式

一般地,本文中所描述的系统和技术使得用户能够改变同意设置,这些同意设置定义了其它实体是否可以收集或维护其数据、收集了哪种数据和/或实体如何使用其数据。例如,电子资源(例如网页)的一些发布者使用cookie来收集用户数据,并使用该数据来定制资源的内容。本文档中所描述的技术提供了使得用户能够以安全的方式定义是否可以收集这种数据以及如果可以收集,如何使用该数据的技术机制。实体可以将用户数据与用户标识符一起存储,这些用户标识符唯一地标识数据所属的用户。

用户同意设置可以以证明令牌的形式从用户的客户端装置发送。证明令牌可以包括同意设置以及同意设置和其它数据的数字签名,以使得可以检测到在创建之后对用户同意设置的任何修改。签名后的数据可以包括用户的唯一标识符,以使得证明令牌的接收者可以验证证明令牌是从用户的装置发送的。证明令牌还可以包括完整性令牌,例如装置完整性令牌和/或浏览器完整性令牌,以使得接收者可以验证该证明令牌是从受信任的装置或受信任的web浏览器或其它应用接收到的。

图1是数字组成部分系统150分发数字组成部分129的环境100的框图。示例环境100包括数据通信网络105,诸如局域网(LAN)、广域网(WAN)、因特网、移动网络或其组合。网络105连接客户端装置110、发布者130、网站140、数字组成部分分发系统150和审核系统170。示例环境100可以包括许多不同的客户端装置110、发布者130和网站140。在一些实施方式中,环境100还可以包括多个数字组成部分分发系统150和/或审核系统170。

网站140是与域名相关联并且由一个或多个服务器托管的一个或多个资源145。示例网站是以HTML格式化的网页集合,该网页集合可以包含文本、图像、多媒体内容和编程元素,诸如脚本。每个网站140由发布者130维护,该发布者是控制、管理和/或拥有网站140的实体。

资源145是可以通过网络105提供的任何数据。资源145由与该资源145相关联的资源地址(例如通用资源定位符(URL))标识。资源包括HTML页面、文字处理文档和便携式文档格式(PDF)文档、图像、视频和馈源,仅举几例。资源可以包括内容,诸如单词、短语、图像和声音,该内容可以包括嵌入式信息(诸如超链接中的元信息)和/或嵌入式指令(诸如脚本)。

客户端装置110是能够通过网络105进行通信的电子装置。示例客户端装置110包括个人计算机、移动通信装置(例如智能电话)和可以通过网络105发送和接收数据的其它装置。客户端装置还可以包括数字助理装置,该数字助理装置通过麦克风接受音频输入并通过扬声器输出音频输出。当数字助理检测到激活麦克风以接受音频输入的“热词”或“热词语”时,可以将数字助理置于收听模式(例如准备接受音频输入)。数字助理装置还可以包括相机和/或显示器,以捕获图像并视觉呈现信息。可以以不同形式的硬件装置来实施数字助理,这些硬件装置包括可穿戴式装置(例如手表或眼镜)、智能电话、扬声器装置、平板装置或另一硬件装置。客户端装置还可以包括数字媒体装置,例如插入电视或其它显示器以将视频流传输到电视的流传输装置。

客户端装置110通常包括应用,诸如web浏览器111和/或本机应用112,以促进通过网络105的数据发送和接收。本机应用112是为特定平台或特定装置开发的应用。发布者130可以开发本机应用并将其提供给客户端装置110。

在一些实施方式中,客户端装置110是数字媒体装置,例如插入电视或其它显示器以将视频流传输到电视的流传输装置。数字媒体装置还可以包括web浏览器和/或流传输视频和/或呈现资源的其它应用。

web浏览器111可以例如响应于客户端装置110的用户在web浏览器111的地址栏中录入资源145的资源地址或选择引用资源地址的链路,而从托管发布者130的网站140的web服务器请求资源145。当web服务器(例如在特定域中)向web浏览器111提供资源145时,web服务器还可以提供web浏览器111存储在客户端装置110上的发布者130的cookie 116。Cookie 116是少量数据,例如文本文件,其可以用于许多目的,包括存储状态性信息、记录浏览活动和对用户进行认证。Cookie 116可以包括唯一的cookie标识符和少量的数据(其可以包括cookie值、属性等)。该cookie称为第一方cookie,这是由于该cookie由用户直接查看的网站(即域在web浏览器111的地址栏中可查看的网站)创建。

当web浏览器111随后导航到资源145时和/或在web浏览器111呈现资源145时,web浏览器111可以将发布者的第一方cookie发送给托管网站140的web服务器。web服务器可以使用cookie 116中的数据,例如,以为用户定制内容。

在一些情况下,托管另一个网站的另一web服务器(例如在与特定域不同的域中)也将cookie 116存储在客户端装置110上,同时在web浏览器111中呈现资源145,尽管该网站的域在web浏览器111的地址栏中不可查看,并且用户未将web浏览器导航到该网站。该cookie称为第三方cookie。当资源145调用来自另一web服务器的内容时,第三方cookie可以被存储在客户端装置110上。

一些资源145、应用页面或其它应用内容可以包括用于向数字组成部分呈现资源145或应用页面的数字组成部分插槽。如贯穿该文档所使用,短语“数字组成部分”是指数字内容或数字信息的分立单元(例如视频片段、音频片段、多媒体片段、图像、文本或另一内容单元)。数字组成部分129可以电子方式作为单个文件或文件集合存储在物理存储器装置中,并且数字组成部分可以采取视频文件、音频文件、多媒体文件、图像文件或文本文件的形式,并且包括广告信息,以使得广告是一种数字组成部分。例如,数字组成部分129可以是旨在补充网页的内容或由web浏览器111或本机应用112呈现的其它资源的内容。更具体地,数字组成部分129可以包括与资源内容相关的数字内容(例如数字组成部分可以与同网页内容相同的主题或与相关主题相关)。因此,由数字组成部分分发系统150配备数字组成部分可以补充并且通常增强网页或应用内容。

当web浏览器111加载包括一个或多个数字组成部分插槽的资源145时,web浏览器111可以从数字组成部分分发系统150为每个插槽请求数字组成部分129。数字组成部分分发系统150可以继而从数字组成部分提供者160请求数字组成部分。数字组成部分提供者160是提供数字组成部分以供与资源145一起呈现的实体。本机应用112可以以类似的方式请求和呈现数字组成部分129。

在一些情况下,数字组成部分分发系统150还可以从一个或多个数字组成部分伙伴157请求数字组成部分。数字组成部分伙伴157是响应于数字组成部分请求代表数字组成部分提供者160选择数字组成部分129的实体。

数字组成部分分发系统150可以基于各种标准为每个数字组成部分插槽选择数字组成部分。例如,数字组成部分分发系统150可以基于与资源145的相关性、数字组成部分的性能(例如用户与数字组成部分交互的速率)等从由数字组成部分提供者160和/或数字组成部分伙伴157接收到的数字组成部分中选择数字组成部分。然后,数字组成部分分发系统150可以将选择的数字组成部分提供给客户端装置110,以供与资源145一起呈现。

在一些情况下,数字组成部分分发系统150、数字组成部分伙伴157和/或数字组成部分提供者160(针对其提供了数字组成部分)也可以在客户端装置110上存储第三方cookie 116。web浏览器111还可以将第三方cookie 116提供给在客户端装置110上存储了第三方cookie的实体。以该方式,实体可以使用在第三方cookie 116中所存储的信息来选择数字组成部分,以供在客户端装置110处呈现。

web浏览器111和/或本机应用112可以包括使得用户能够管理由诸如发布者130、数字组成部分分发系统150、数字组成部分伙伴和数字组成部分提供者160的其它实体收集、存储和使用的数据的工具。例如,web浏览器111和/或本机应用112可以包括例如呈菜单、网页或应用页面的形式的用户接口,该用户接口使得用户能够管理其用户数据。

管理用户数据可以包括配置和/或调整用户同意设置。用户同意设置可以指定哪些实体可以从客户端装置110接收用户数据、实体是否可以存储用户数据以及存储多长时间、实体可以获得和存储哪些类型的用户数据和/或实体如何使用用户数据。用户数据可以包括与用户相关的各种数据,诸如用户所请求的资源、浏览器历史、呈现给用户的数字组成部分129、与用户交互(例如选择)的数字组成部分129和/或使用cookie收集到的其它适当数据。针对数字媒体装置,用户数据可以包括指定由用户查看和/或记录的视频、电影或节目、用户喜欢的频道、电影或节目、由用户查看或关注的运动队、使用web浏览器或设备的其它应用请求的资源的数据和/或其它适当的数据。

用户可以针对不同的实体指定不同的同意设置。例如,用户可以指定数字组成部分分发系统150(或操作系统的实体)可以收集和存储用户数据并使用用户数据来为用户选择数字组成部分。用户还可以指定数字组成部分伙伴157(或另一数字组成部分分发系统)可以收集和存储用户数据但仅可以使用数据来测量由数字组成部分伙伴157提供给用户的数字组成部分的性能而不使用用户数据来选择数字组成部分。用户还可以指定不允许数字组成部分提供者160-1收集或存储用户的用户数据。这些工具使得用户能够管理其数据,并且因此能够跨在线生态系统管理其隐私。通过在web浏览器111或本机应用112中实施功能性,提供了改进的用户接口,其中用户可以从单个接口跨生态系统管理其数据,而不必单独向每个实体提供各种同意。

用户的客户端装置110可以出于各种目的发送请求120。客户端装置110可以响应于用户改变客户端装置110处的设置而发送请求120以更新用户同意设置。客户端装置110还可以例如响应于web浏览器111或本机应用112加载包括数字组成部分插槽的资源而向数字组成部分分发系统150发送对数字组成部分的请求120。

当用户修改用户同意设置时,用于更新用户同意设置的web浏览器111或本机应用112可以生成请求120,并将请求发送给一个或多个实体。这些实体可以在注册表中包括实体集合。注册表可以包括已经约定遵守用户同意和隐私数据管理策略的实体。实体可以包括发布者130、数字组成部分分发系统150(例如广告技术公司)、数字组成部分伙伴157和/或数字组成部分提供者160。

在另一示例中,一个或多个实体可以包括用户已经允许收集和使用用户的用户数据的实体。在另一示例中,一个或多个实体可以仅包括针对其设置被用户改变的实体。web浏览器111或本机应用112可以标识接收者实体并将请求120发送给接收者实体,该请求包括指定用户同意设置(例如修改后的用户同意设置)的数据。

请求120可以包括证明令牌122。例如,改变用户同意设置的请求和对数字组成部分的请求可以包括证明令牌122。当web浏览器111发送请求120时,web浏览器111或客户端装置110的操作系统或在客户端装置110上运行的另一受信任程序)可以为请求120生成证明令牌122。当本机应用112发送请求120时,本机应用或操作系统可以生成证明令牌122。然而,使用操作系统或web浏览器的浏览器二进制文件的受信任代码来生成证明令牌122可能比使用本机应用112更安全。

用于由web浏览器111发送的请求的证明令牌122的结构和/或该证明令牌中所包括的数据可以不同于用于由本机应用112发送的请求的证明令牌122的结构和/或该证明令牌中所包括的数据。然而,证明令牌122可以具有类似的数据,包括数据123的集合和数据123的集合的数字签名124。在一些实施方式中,证明令牌122的结构和数据对于web浏览器111和本机应用112两者而言是相同或类似的。

数据123的集合对于web浏览器111和本机应用122两者而言可以包括指定请求的目的或操作(例如改变用户同意设置或请求数字组成部分)的数据、唯一地标识用户的用户标识符(例如公钥)、指示创建证明令牌122的时间的证明令牌创建时间、完整性令牌(例如装置完整性令牌和/或浏览器完整性令牌)和证明令牌122的其它数据的至少一部分的数字签名124。

针对本机应用112,证明令牌122中的数据123的集合可以包括用户标识符、证明令牌创建时间、有效载荷和装置完整性令牌。用户标识符可以是客户端装置110的公钥。例如,客户端装置110可以生成和/或维护一个或多个密码密钥对,所述密码密钥对包括装置私钥113A和对应于装置私钥113A并数学上链接到该装置私钥113A的装置公钥113B。使用私钥以数字方式签名的数据只能使用对应的公钥进行验证。类似地,使用公钥加密的数据只能使用对应的私钥进行解密。

本机应用112可以使用对应于用作用户标识符的装置公钥113B的装置私钥113A生成数据123的集合(或数据123的预处理,例如散列)的数字签名124。在一些实施方式中,本机应用112使用椭圆曲线数字签名算法(ECDSA)来生成数字签名124,但是可以使用其它数字签名技术,诸如RSA。由于证明令牌122可以从移动装置发送,并且许多证明令牌可以由实体存储,所以产生具有较小数据大小的签名的签名技术(例如ECDSA)对于降低带宽消耗和数据存储要求可能是优选的。通过将装置公钥113B包括在证明令牌122中,接收到证明令牌122的实体可以验证数字签名124。

客户端装置110的装置私钥113A和装置公钥113B可以被替换。例如,可以基于指定的时间段周期性地替换密钥113A和113B,以防止实体使用在证明令牌122中所包括的装置公钥113B跟踪用户。在另一示例中,用户可以发起密钥替换,并且作为响应,客户端装置110可以生成新的私钥和公钥对。

装置私钥113A可以由客户端装置110的操作系统(或其它受信任程序)安全且机密地维护。以该方式使用装置私钥113A的数字签名124的使用防止其它实体伪造证明令牌122的有效载荷或生成伪造的请求120以使这些请求看起来像是源自客户端装置110,这是由于对签名后的数据的任何改变可以产生完全不同的数字签名。

数据123的集合中的有效载荷可以包括与请求120相关的数据。例如,有效载荷可以包括请求的目的或操作(例如改变用户同意设置或请求数字组成部分)。针对改变用户同意设置的请求,有效载荷可以包括标识受设置影响的实体的数据,例如受设置影响的域以及针对每个实体的用户同意设置。例如,有效载荷可以包括针对实体的域名以及对使用由用户授予该域的用户的数据(例如测量数字组成部分性能、选择个性化数字组成部分)的同意。

有效载荷还可以包括针对用户同意设置的到期时间(例如日期和时间或持续时间)。每个实体可以具有相同或不同的到期时间。当到期时间过去时,用户同意设置将到期。在一些实施方式中,如果实体在到期时间之前未接收到更新后的用户同意数据,那么该实体需要删除用户的数据或至少停止使用用户的数据。在一些实施方式中,如果用户同意设置还没有被修改并且用户已经指定用户同意设置直到被修改才到期,那么本机应用112可以周期性地发送具有用户同意设置的请求120。以该方式,除非用户已采取行动删除用户数据,否则可以不删除用户数据。在一些实施方式中,本机应用112可以例如通过当用户同意设置接近到期时提示用户来要求用户主动约定继续用户同意设置。

本机应用112可以向每个实体发送不同的证明令牌122。例如,当用户修改用户同意设置时,在用户改变针对多个实体的设置的情况下,本机应用112可以向用户已修改了用户同意设置的每个实体发送不同的证明令牌122。这使针对每个实体的用户同意设置保持机密,并防止实体聚合其它实体的信息。

针对对于数字组成部分的请求,有效载荷可以包括可以用于选择数字组成部分的数据。该有效载荷可以包括正在发送请求120的本机应用112、关于本机应用112的信息(例如应用112的主题)、关于数字组成部分插槽的信息(例如插槽的数量、插槽的类型、插槽的大小等)、关于客户端装置110的信息(例如装置类型、装置的IP地址、客户端装置110的地理位置)(如果用户启用了该特征)和/或其它适当的信息。

如上文所描述,令牌创建时间指示创建证明令牌122的时间。创建证明令牌122的本机应用112或操作系统可以记录创建证明令牌122时的创建时间。该令牌创建时间可以是高分辨率时间戳(例如精确到秒、毫秒或微秒)。令牌创建时间可以用于确定包括证明令牌122的请求120是否是新请求或新近请求。例如,接收证明令牌122的实体可以将令牌创建时间与当前时间或接收证明令牌122的时间进行比较。如果两个时间之间的差超过阈值,那么实体可以确定请求不是新的,或是无效的。

令牌创建时间也可以用于检测重放攻击。例如,如果接收到具有包括相同令牌创建时间的数据123的相同集合的多个请求,那么接收请求的实体可以确定请求是副本和/或请求是重放攻击的部分。

在另一示例中,令牌创建时间与用户标识符(例如公钥)的组合可以用于检测重复的请求或重放攻击。该组合可以充当请求的唯一标识符以及请求的证明令牌。例如,如果两个请求包括相同的用户标识符并且具有匹配的令牌创建时间,那么请求可以是副本和/或是重放攻击的部分。

数据123的集合还可以包括完整性令牌,以增强证明令牌122的欺诈检测能力。完整性令牌可以是使得实体能够确定请求120是否由受信任的客户端装置110发送的装置完整性令牌。例如,装置完整性令牌可以由第三方装置完整性系统发出,该第三方装置完整性系统评估客户端装置的欺诈信号并基于评估向客户端装置分配可信度级别。

针对客户端装置110的装置完整性令牌可以包括指示在生成装置完整性令牌时客户端装置110的可信度(或完整性)的级别的判定、指示生成装置完整性令牌的时间的装置完整性令牌创建时间以及针对客户端装置110的唯一标识符(例如客户端装置的装置公钥113B或其派生物)。装置完整性令牌还可以使用装置完整性系统的私钥将数据的数字签名包括在装置完整性令牌中。例如,装置完整性系统可以使用其私钥对数据进行签名,系统机密地维护该私钥。接收证明令牌122的实体可以使用装置完整性系统的公钥来验证装置完整性令牌的签名。由于客户端装置110的完整性可以随着时间改变,因此每个客户端装置110可以周期性地请求新的装置完整性令牌。

证明令牌122的数字签名124可以是使用装置私钥113A的数据123的集合(或数据123的预处理)的数字签名。例如,数字签名124可以是有效载荷、用户标识符(例如装置公钥113B)、证明令牌创建时间和完整性令牌的数字签名。以该方式,接收请求120的实体可以通过使用公钥113B验证数字签名124来验证该数据没有被改变或伪造。

针对web浏览器111,证明令牌122可以包括与本机应用112的证明令牌122类似的数据和类似的结构。例如,证明令牌122可以包括数据123的集合,其包括用户标识符、证明令牌创建时间、完整性令牌和有效载荷。证明令牌122还可以包括数据123的集合的数字签名124。

完整性令牌可以是与上文针对来自本机应用的请求中所包括的证明令牌122所描述的相同装置完整性令牌。在另一示例中,完整性令牌可以是指示web浏览器111的完整性或用户与网站的交互是否真实的浏览器完整性令牌。非真实用户交互的示例包括由机器人等而非用户发起的交互。第三方浏览器完整性系统可以基于发送给第三浏览器完整性系统的欺诈检测信号来发出浏览器完整性令牌。欺诈信号可以包括例如鼠标移动速度、方向、间断和其它模式,点击模式等。

与装置完整性令牌类似,针对web浏览器111的浏览器完整性令牌可以包括指示在生成浏览器完整性令牌时web浏览器111的可信度(或完整性)的级别或用户与网站交互的真实性级别的判定、指示生成浏览器完整性令牌的时间的浏览器完整性创建时间以及针对客户端装置110的唯一标识符(例如客户端装置或web浏览器的公钥113B或其派生物)。浏览器完整性令牌还可以使用浏览器完整性系统的私钥将数据的数字签名包括在浏览器完整性令牌中。例如,浏览器完整性系统可以使用其私钥以数字方式对数据进行签名,系统机密地维护该私钥。接收证明令牌122的实体可以使用浏览器完整性系统的公钥来验证浏览器完整性令牌的签名。客户端装置110可以存储完整性令牌117(例如装置完整性令牌和/或浏览器完整性令牌)以供包括在证明令牌122中。

在由web浏览器111发送的证明令牌122中用作用户标识符的公钥可以在不同实施方式中变化。在一些实施方式中,用户标识符是类似于本机应用112的证明令牌中的用户标识符的装置公钥113B。

在一些实施方式中,用户可以与具有有限范围的多个用户标识符相关联。例如,web浏览器111可以为每个第一方域生成域私钥118A和对应于,例如在数学上链接到,域私钥118A的域公钥118B。例如,web浏览器111可以为web浏览器111在客户端装置110上导航到的每个域生成公钥/私钥对。针对特定域的该域公钥118B可以用作针对响应于web浏览器111导航到特定域而发送的请求120的用户的用户标识符。

以该方式,针对特定域,域公钥118B将是第三方上下文中的用户标识符。由于第三方看到的用户标识符对于每个第一方域将是不同的,因此该用户标识符的用户数据的范围将限于该第一方域的数据。因此,第三方将无法跨所有第一方域聚合用户数据。相反,第三方会将每个用户标识符视为唯一用户。通过使用针对每个域的公钥作为该域的用户标识符,可以在域级别验证用户同意。

在另一示例中,web浏览器111还可以为在客户端装置110上具有第三方cookie的每个第三方生成第三方私钥119A和对应的第三方公钥119B。例如,在web浏览器111正呈现第一方域的资源时,web浏览器111可以为在客户端装置110上存储cookie的每个第三方域生成公钥/私钥对。在该示例中,发送给第三方实体的证明令牌122中的用户标识符是针对第三方实体的第三方公钥。

在用户与多个用户标识符(例如针对多个第一方域的多个域公钥118B或针对多个第三方实体的多个第三方公钥119B)相关联的示例中,web浏览器111可以发送相应的请求120以针对每个用户标识符更新用户同意设置。例如,web浏览器111可以针对web浏览器111创建公共/私有对的每个第一方域发送:第一请求,包括针对第一域的域公钥作为用户标识符;第二请求,包括针对第二域的域公钥作为用户标识符等。每当用户更新针对各个实体的用户同意设置时,web浏览器111便可以这样做。

在一些实施方式中,用户标识符是公钥的密码散列。当公钥作为有效载荷发送时,可以使用用于生成公钥的散列的散列操作对照用户的标识来检查公钥。在一些实施方式中,从客户端装置110接收证明令牌122的实体可以显式地将用户的标识与用户的用户数据链接,以使得实体可以识别来自用户的新请求并将请求(及其数据)与用户的标识相关联。在该场境中,证明可以与使用公钥对请求进行签名相关联,该公钥是给定设置中的用户标识的部分(例如作为给定装置、浏览器等)。

相同的请求120或至少相同的证明令牌122可以从web浏览器111发送给多个实体。这种请求可以在数据123的集合中包括相同的有效载荷,例如与请求120相关的通用数据。有效载荷数据的示例包括但不限于证明令牌的意图或预期操作(例如更新用户同意、请求数字组成部分129)、与意图或预期操作相关的其它参数(例如更新后的用户同意所适用的域、将渲染数字组成部分129的插槽的大小和/或唯一地标识拥有网站140的发布者130的账单/帐户ID)。

然而,请求120或证明令牌122的一些数据可以特定于请求120被发送给的每个实体,例如注册表中的每个实体或针对其用户同意设置被修改的每个实体。由于该数据对于每个实体可能是机密的,因此证明令牌122可以包括针对请求被发送到的每个实体的加密的同意元素125。

针对实体的加密的同意元素125包括特定于该实体的数据。该数据可以包括与从本机应用112发送的请求的有效载荷类似的有效载荷。例如,有效载荷可以包括请求的目的或操作(例如改变用户同意设置或请求数字组成部分)。针对改变用户同意设置的请求,针对实体的加密的同意元素125的有效载荷可以包括用户为该实体指定的用户同意设置。有效载荷还可以包括针对用户同意设置的到期时间(例如日期和时间或持续时间),与上文所描述的到期时间类似。

针对对数字组成部分的请求,针对实体的加密的同意元素125的有效载荷可以包括可以用于选择数字组成部分的数据。由于用户可能已同意不同类型的数据或是否可以将数据完全发送给不同实体,因此该数据可以针对不同实体而变化。例如,该有效载荷数据可以包括具有数字组成部分插槽的资源145(或资源145的URL)、关于资源145的信息(例如资源的主题)、关于数字组成部分插槽的信息(例如插槽的数量、插槽的类型、插槽的大小、插槽的约束,例如仅支持视频类型的数字组成部分等)、关于客户端装置110的信息(例如装置的类型、装置的IP地址、客户端装置110的地理位置)(如果用户启用了该特征)和/或其它适当的信息。针对实体的加密的同意元素125的有效载荷还可以包括存储在客户端装置110处的实体的第三方cookie。

针对每个第三方实体的加密的同意元素125的有效载荷还可以包括用户的用户标识符,例如公钥。每个加密的同意元素125中的用户标识符可以与证明令牌122的数据123的集合中的用户标识符相同。例如,取决于实施方式,该用户标识符可以是装置公钥113B、针对web浏览器111针对其呈现资源的第一方域的域公钥118B或为其生成证明令牌122的第三方的第三方公钥119B。用户标识符在每个加密的同意元素125中的该包括将加密的同意元素绑定到用户标识符和证明令牌122。

在加密的同意元素的用户标识符与证明令牌122的用户标识符匹配并且将公钥用作用户标识符的实施方式中,每个加密的同意元素125中的用户标识符可以是公钥本身或公钥的派生物。例如,每个加密的同意元素125的用户标识符可以是使用密码散列函数(例如SHA256)生成的公钥的散列。相对于使用公钥本身,使用公钥的散列可以减少用户标识符的数据大小(例如,从使用NIST P-256的ECDSA的33字节到RSA-4096的512字节到随后为截断操作的SHA 256的16字节),这可以减少移动装置在发送请求120中消耗的带宽和电池寿命以及存储证明令牌122所需的存储器。由于一些实体可以存储针对许多(例如数千或数百万个)用户的证明令牌122,因此这种情况可以产生大量的数据存储节省。

加密的同意元素125还可以包括加密的同意元素125的其它数据的数字签名。例如,如果cookie被包括在加密的同意元素125中,那么加密的同意元素125可以包括用户标识符、有效载荷和实体的第三方cookie的数字签名。web浏览器可以使用对应于用作用户标识符的公钥的私钥为第三方实体生成针对加密的同意元素125的数字签名。

web浏览器111可以通过对针对每个实体的数据和数字签名进行加密来为每个实体生成加密的同意元素125。针对特定实体,web浏览器125可以生成同意元素,该同意元素包括用户标识符、实体的有效载荷以及可选的针对实体的第三方cookie。web浏览器125可以使用对应于用作用户标识符的公钥的私钥来生成该数据的数字签名。然后,web浏览器111可以使用由实体创建和发布的公钥来对针对实体的同意元素进行加密。在实体生成公钥/私钥对之后,web浏览器111可以从每个第三方实体的网站检索针对该实体的第三方公钥。实体可以机密地维护私钥,以使得实体是唯一可以对其加密的同意元素125进行解密的实体。在一些实施方式中,该加密使用证明令牌122的数据123的集合的其他数据的数字签名124作为加密初始化向量(IV)。

当呈现特定域的资源时,由web浏览器111发送的证明令牌122可以包括数据123的集合,该数据的集合包括用户标识符(例如域公钥)、证明令牌创建时间、有效载荷和完整性令牌。证明令牌122还包括使用对应于针对特定域的域公钥118B的域私钥118A生成的数据123的集合的数字签名124。针对在客户端装置110或其部分处具有第三方cookie的每个第三方实体,证明令牌122还可以包括针对该第三方实体的加密的同意元素。

在一些实施方式中,由本机应用112发送的证明令牌122可以包括加密的同意元素125,类似于由web浏览器111发送的证明令牌122。在一些实施方式中,web浏览器111可以发送请求120而没有加密的同意元素125。例如,如果仅针对一个实体更新用户同意数据,那么web浏览器111可以在有效载荷中或以其它方式以未加密的形式发送针对该一个实体的用户同意数据。在一些实施方式中,当例如通过web浏览器111或本机应用112将证明令牌125发送给多个实体时,将加密的同意元素125包括在证明令牌122中。

客户端装置110可以将由web浏览器111和本机应用112生成的请求120发送给一个或多个接收者实体。本机应用112可以向每个实体发送相应的请求120,这是由于针对本机应用生成的证明令牌122的有效载荷可能是特定于每个实体的,如上文所描述。每个实体可以通过使用证明令牌122中的装置公钥113B来验证数字签名124来验证请求120的完整性。该验证还可以包括使用装置完整性令牌来验证客户端装置110的完整性。

web浏览器111可以将请求发送给多个实体或数字组成部分分发系统150,该数字组成部分分发系统可以将对应请求发送给其它实体,诸如数字组成部分伙伴157和数字组成部分提供者160。这些实体可以通过验证数字签名124以及使用完整性令牌来验证客户端装置110和/或web浏览器111的完整性来验证请求的完整性。每个实体还可以使用其机密私钥来对其加密的同意元素125进行解密,以访问发送给该实体的有效载荷。

在任一情况下,如果请求120被验证,那么实体可以响应于请求而执行动作。如果请求是要相对于实体改变用户的用户同意设置,那么实体可以遵从该请求。例如,如果用户改变了设置,以使得实体无法收集用户的数据,那么实体可以通过删除用户的数据来遵从。如果用户将设置改变为仅使用用户的数据执行一个或多个特定操作,那么实体在接收到请求120之后只能将用户的数据用于这些动作。

如果请求120是针对数字组成部分的,那么实体可以基于有效载荷并根据针对该实体的用户的同意设置来选择一个或多个数字组成部分。例如,如果用户已经同意实体使用用户的数据来选择数字组成部分,那么实体可以例如结合有效载荷和/或请求120中的数据使用实体可以访问的用户的数据来选择数字组成部分。如果用户未同意实体使用用户的数据来选择数字组成部分,那么实体可以基于有效载荷和/或请求120中非特定于用户的数据来选择数字组成部分。

在一些实施方式中,即使请求是针对数字组成部分129的,用户同意设置也随每个请求120一起发送。以该方式,实体可以验证当前的用户同意设置,并且将用户同意设置与请求一起存储,以使得实体可以在必要时验证用户同意设置。通过将用户标识符、用户数据(例如具有用户的数据的cookie)和用户同意设置一起包括在以数字方式签名的请求中,可以在技术上验证针对该实体和该请求的用户同意设置的完整性。

每个实体可以存储从用户接收到的用户同意设置。实体还可以存储用户已同意的用户数据。例如,数字组成部分分发系统150包括用于存储用户数据的用户数据存储单元154和用于存储用户的用户同意设置的用户同意数据存储单元155。数字组成部分伙伴157、数字组成部分提供者160和/或其它实体可以包括类似的数据存储单元。

实体可以以在技术上可验证的方式存储用户同意设置。例如,实体可以针对每个用户存储包括用户的用户同意设置的证明令牌122。由于证明令牌122包括用户标识符、用户同意设置和用户同意设置的到期日期的数字签名,因此可以验证每个时间点的用户同意设置。该数据的数字签名确保实体或另一方无法修改数据。

审核系统170可以审核实体,以确保实体根据用户同意设置来存储和使用用户的用户数据。审核系统170可以由诸如行业或监管机构的独立第三方维护。审核系统170可以针对由实体维护的每个用户记录检查证明令牌122的数字签名。审核系统170还可以将每个记录的用户数据与用户同意进行比较,以确保已给予实体恰当同意来存储这种数据。这种审核可以周期性或随机地发生。

如上文所描述,web浏览器111或本机应用112可以周期性地发送具有用户同意设置的证明令牌122,以确保先前的用户同意设置不会到期。在一些实施方式中,每当实体从客户端装置110接收到证明令牌122(包括在针对数字组成部分的非周期性请求中)时,web浏览器111或本机应用112就可以响应于接收到证明令牌122而要求来自实体的确认响应。确认可以被存储在客户端装置110处和/或被发送给审核系统170。以该方式,审核系统170可以验证实体接收到用户同意设置,并且防止实体欺诈性地删除用户同意设置。例如,如果实体确认其接收到删除用户的数据的请求,那么实体在维护用户的数据的同时删除了请求,确认可以用于示出实体确实接收到请求但未能遵从请求。如果未接收到确认,那么web浏览器111或本机应用112向例如审核系统170发出警报。

在一些实施方式中,可以在没有用户同意设置的情况下,例如在没有证明令牌122的情况下,发送一些请求120。例如,web浏览器111或本机应用112可以发送数字组成部分请求,该数字组成部分请求包括用户标识符(例如公钥)和针对数字组成部分请求的有效载荷。接收到请求的实体可以使用用户标识符与适当的用户一起存储数据。在先前请求中从客户端装置110接收到的证明令牌可以用于在没有用户同意设置的请求时验证用户同意设置。

在一些实施方式中,审核系统170可以评估由每个实体(例如数字组成部分分发系统150、每个数字组成部分伙伴157、每个数字组成部分提供者160和/或每个发布者130)存储的用户数据,所述每个实体接收用户数据以确保实体正根据每个用户的用户同意设置存储和/或使用用户数据。该评估还包括验证包括用户同意设置的证明令牌和/或加密的同意元素的签名。由于用于验证数字签名的公钥包括在证明令牌中,因此审核系统170可以访问公钥并使用公钥来验证证明令牌和加密的同意元素的签名。如果数字签名不能被验证,那么证明令牌或加密的同意元素的内容已被例如欺诈性地修改。

图2是图示用于更新用户同意设置的示例过程200的流程图。可以例如由更新用户的用户同意设置的请求的接收者(诸如图1的发布者130、数字组成部分分发系统150、数字组成部分伙伴157或数字组成部分提供者160)来实施过程200。过程200的操作还可以实施为在非暂时性计算机可读介质上所存储的指令,并且由一个或多个数据处理设备进行的指令的执行可以使一个或多个数据处理设备进行过程200的操作。

接收到更新后的用户同意数据(202)。更新后的用户同意数据可以由在客户端装置上运行的web浏览器或本机应用接收。例如,web浏览器或本机应用可以呈现用户接口,该用户接口使得用户能够配置,例如选择或输入,针对一个或多个实体的用户同意设置。更新后的用户同意数据可以包括更新后的用户同意设置,这些更新后的用户同意设置定义其它实体是否可以收集或维护用户的数据、收集什么数据和/或实体如何使用其数据。如上文所描述,用户同意设置可以包括在证明令牌中。

生成证明令牌(204)。如上文所描述,客户端装置的web浏览器、操作系统或其它受信任程序可以生成证明令牌。证明令牌可以包括数据的集合,该数据的集合包括更新后的用户同意数据。数据的集合还可以包括用户标识符(例如公钥)、证明令牌创建时间、有效载荷、完整性令牌(例如装置完整性令牌)。证明令牌还可以包括数据的集合的数字签名。可以使用对应于用作用户标识符的公钥的私钥来生成数据的集合的数字签名。

针对使用本机应用来更新用户同意数据的情境,可以针对将接收更新后的用户同意数据的每个实体生成相应的证明令牌。针对每个实体的用户同意数据可以包括在针对该实体生成的证明令牌的有效载荷中。

针对使用web浏览器更新用户同意数据的情境,证明令牌可以包括针对每个实体的加密的同意元素。如上文所描述,针对实体的加密的同意元素可以包括针对该实体的用户同意数据,并且可以使用从该实体获得,例如取得,的公钥来加密。以该方式,可以将同一证明令牌发送给多个实体,但是每个实体只能对针对该实体的加密的同意元素进行解密,这是由于该实体是具有可以对其加密的同意元素进行解密的私钥的唯一实体。这种情况确保了没有其它实体可以访问针对其它实体的用户同意设置,并且确保实体无法跟踪其它实体。

将证明令牌发送给一个或多个实体(206)。例如,如果用户使用本机应用更新了用户同意数据,那么本机应用可以将相应的证明令牌发送给为其生成证明令牌的每个实体。如果用户使用web浏览器更新了用户同意数据,那么web浏览器可以将具有多个加密的同意元素的同一证明令牌发送给多个实体。

针对每个实体,确定是否从实体接收到确认(208)。例如,可以要求每个实体确认接收到每个用户的更新后的用户同意数据。将证明令牌发送给实体的web浏览器或本机应用可以监测来自该实体的确认。如果在指定的持续时间内未接收到确认,那么web浏览器或本机应用可以一次或多次请求确认。

如果没有从实体接收到确认,那么可以生成警报(210)。例如,响应于例如在指定的持续时间之后确定未从实体接收到确认,发送了证明令牌的web浏览器或本机应用可以生成警报并将其发送给审核系统。警报可以指定未确认接收到证明令牌的实体。在一些实施方式中,警报可以包括发送给实体的证明令牌。维护审核系统的审核者可以响应于警报而跟进实体,例如以确认实体遵从更新后的用户同意设置。

如果接收到确认,那么存储确认(212)。确认可以被存储在客户端装置处和/或被发送给审核系统以供存储。以该方式,如果恰当,确认可以用于审核从中接收到确认的实体。

图3是图示用于响应于请求而证实请求的完整性并执行动作的示例过程300的流程图。可以例如由请求的接收者(诸如图1的发布者130、数字组成部分分发系统150、数字组成部分伙伴157或数字组成部分提供者160)来实施过程300。过程300的操作还可以实施为在非暂时性计算机可读介质上所存储的指令,并且由一个或多个数据处理设备进行的指令的执行可以使一个或多个数据处理设备执行过程300的操作。

接收到请求(302)。请求可以包括证明令牌。如上文所描述,证明令牌可以包括指定请求的操作的有效载荷。在另一示例中,请求可以指定请求的操作,并且包括用于验证和/或安全性目的的证明令牌。

确定请求的完整性是否有效(304)。如果数据的集合中的任何数据在创建证明令牌的时间之间改变、令牌创建时间与接收到请求的时间之间的持续时间超过阈值、完整性令牌无效或证明令牌不包括接收者的加密的同意元素,请求的完整性可以是无效的。用于确定请求的完整性是否有效的示例过程在图4至6中进行图示并且在下文进行描述。

如果请求的完整性不是有效的,那么忽略该请求(306)。例如,接收到请求的实体可以删除请求和/或不响应于请求。实体还可以将指定请求无效的响应发送给客户端装置。以该方式,客户端装置可以重试请求,这是由于先前的请求在传输到实体期间可能已经被欺诈性地篡改了。

如果请求是要更新用户同意设置,那么接收到请求的实体可以响应于确定请求无效而确定不改变在证明令牌中所包括的用户标识符的用户同意设置。如果请求是针对数字组成部分的,那么实体可以不响应于请求而提供数字组成部分。

如果请求的完整性是有效的,那么响应于请求而执行动作(308)。计算机系统可以从证明令牌提取要执行的操作,以确定要执行的操作。例如,计算机系统可以从证明令牌的有效载荷提取操作。在另一示例中,计算机系统可以使用实体的私钥来对针对实体的加密的同意元素进行解密,如下文参考图5和6所描述。然后,计算机系统可以从解密的同意元素提取操作。

如果由请求指定的操作是要更新证明令牌中所包括的用户标识符的用户同意设置,那么实体可以更新用户标识符的用户同意设置。在特定示例中,如果更新后的用户同意设置指示要删除用户的数据,那么实体可以删除用户的数据以便遵从更新后的用户同意设置。针对用户同意设置更新,实体还可以出于验证目的存储证明令牌,如上文所描述。

如果由请求指定的操作正在请求数字组成部分,那么实体可以在用户的同意设置允许的范围内,例如基于请求中所包括的信息或有效载荷和/或存储的用户数据来选择数字组成部分。然后,实体可以将数字组成部分提供给客户端装置,以供呈现给用户。

图4是图示用于使用证明令牌来确定请求的完整性是否有效的示例过程400的流程图。可以例如由请求的接收者(诸如图1的发布者130、数字组成部分分发系统150、数字组成部分伙伴157或数字组成部分提供者160)来实施过程400。过程400的操作还可以实施为在非暂时性计算机可读介质上所存储的指令,并且由一个或多个数据处理设备进行的指令的执行可以使一个或多个数据处理设备执行过程400的操作。

访问证明令牌(402)。证明令牌可以与从web浏览器或本机应用接收到的请求包括在一起。在另一示例中,证明令牌可以用作请求。如上文所描述,证明令牌包括数据的集合、数据的集合的数字签名和可选的一个或多个加密的同意元素。数据的集合可以包括有效载荷(例如操作和与操作相关的数据)、指示创建证明令牌的时间的证明令牌创建时间以及完整性令牌,例如装置完整性令牌。

数据的集合还可以包括用户的用户标识符。用户标识符可以呈公钥的形式。例如,用户标识符可以是客户端装置的装置公钥、针对(例如响应于web浏览器导航到第一方域并从第一方域加载资源而)为其发送请求的资源的第一方域生成的域公钥或针对请求的接收者的第三方公钥。

确定令牌创建时间是否在接收到请求的时间的阈值持续时间内或在当前时间的阈值持续时间内(404)。例如,可以确定接收到请求的时间(或当前时间)与令牌创建时间之间的差。如果差小于或等于阈值持续时间,那么令牌创建时间在阈值持续时间内。如果令牌创建时间不在阈值持续时间内,例如意味着请求是旧的,那么可以将请求的完整性分类为无效(412)。

附加地,令牌创建时间和证明令牌中的公钥的组合可以唯一地标识证明令牌以及携带令牌的请求。接收者可以依靠组合来识别重复的请求或潜在的重放攻击。

如果令牌创建时间在阈值持续时间内,例如意味着请求是新的或新近的,那么确定在生成证明令牌的数字签名之后,是否已经修改了证明令牌的数据的集合中的数据(406)。例如,证明令牌的公钥可以用于验证证明令牌的数字签名。如果不能使用公钥来验证签名,那么确定已修改数据的集合中的数据。例如,这种数据可能已由拦截请求的实体或中介进行了修改。如果使用公钥验证了数字签名,那么确定尚未修改证明令牌的数据的集合中的数据。

如果确定数据的集合中的数据已经被修改,那么将请求的完整性分类为无效(412)。如果确定尚未修改证明令牌的数据的集合中的数据,那么确定完整性令牌是否有效(408)。完整性令牌可以是装置完整性令牌。该确定可以包括确定装置完整性令牌的判定是否指示客户端装置有效。如果判定无效,那么确定装置完整性令牌无效,并且将请求的完整性分类为无效。如果判定有效,那么可以确定装置完整性令牌有效。

该确定还可以包括验证装置完整性令牌的数字签名。如上文所描述,装置完整性系统可以使用装置完整性系统的私钥以数字方式对装置完整性令牌的数据进行签名。装置完整性系统可以将对应于该私钥的公钥提供给可以接收由装置完整性系统生成的装置完整性令牌的接收者。请求的每个接收者可以使用该公钥来验证装置完整性令牌的签名,如果成功,指示装置完整性令牌的数据自创建以来尚未被修改。在该示例中,如果判定有效并且装置完整性令牌的数字签名被成功验证,那么可以确定装置完整性令牌在有效中。

针对不包括加密的同意元素或甚至用户同意设置的证明令牌,如果已确定证明令牌创建时间在阈值内,尚未修改证明令牌的数据,并且完整性令牌有效,那么请求将被视为有效。针对包括加密的同意元素的证明令牌,可以使用可选操作410以确保请求有效。

在操作410中,确定证明令牌是否包括接收者的加密的同意元素。如上文所描述,针对请求的一个或多个接收者中的每个接收者,证明令牌可以包括加密的同意元素。针对接收者的加密的同意元素可以包括已使用接收者的公钥进行加密的数据的集合的加密版本。该数据的集合可以包括有效载荷,该有效载荷包括针对接收者的用户同意设置、与证明令牌相同的公钥(或其散列或其它派生物)、可选地已存储在客户端装置上的接收者的第三方cookie以及数据的集合的其余部分的数字签名。可以使用加密的同意元素和证明令牌中所包括的相同公钥来生成该数字签名。用于确定证明令牌是否包括接收者的加密的同意元素的示例过程在图5和6中进行图示并且在下文进行描述。

在一些实施方式中,如果证明令牌包括接收者的加密的同意元素,那么可以将请求的完整性分类为有效(414)。如果不是这样,那么可以将请求的完整性分类为无效。针对实体的同意元素并非总是需要加密。例如,在一些实施方式中,当用户改变同意时,装置的web浏览器、本机应用或操作系统可以通过超文本传送协议安全(HTTPS)向一个实体发送专用请求。在请求内,证明令牌携带仅适用于实体的用户同意元素。

图5和6图示了用于确定包括针对实体的加密的同意元素的请求的完整性的过程。如果针对接收者的加密的同意元素仅包含接收者的加密的同意元素,那么加密结果是稳定的。可以访问请求的中介或其他人可以依靠加密的同意元素作为稳定的标识符来跟踪用户。为了防止这种跟踪,可以将随机性引入加密过程,以使得针对给定接收者和给定客户端装置的加密同意元素特定于每个请求。过程500和600是引入这种随机性的两种示例方式。

图5是图示用于使用证明令牌来确定请求的完整性是否有效的另一示例过程500的流程图。可以例如由请求的接收者(诸如图1的发布者130、数字组成部分分发系统150、数字组成部分伙伴157或数字组成部分提供者160)来实施过程500。过程500的操作还可以实施为在非暂时性计算机可读介质上所存储的指令,并且由一个或多个数据处理设备进行的指令的执行可以使一个或多个数据处理设备执行过程500的操作。

在该示例过程500中,请求包括证明令牌,该证明令牌具有加密的同意元素的组,例如一个加密的同意元素针对多个接收者中的每个接收者。针对每个接收者的加密的同意元素是接收者的同意元素(例如公钥、有效载荷和可选的第三方cookie)和在证明令牌中所包括的数据的集合的数字签名的密码散列的组合的加密版本。即,发送请求的web浏览器可以使用给定的接收者的公钥来对接收者的同意元素和数字签名的密码散列的组合进行加密。可以通过在数字签名上应用密码算法或散列函数(例如SHA256)来计算针对每个接收者的数字签名的密码散列。该密码散列引入了随机性,该随机性使加密的同意元素特定于每个请求,并且还以密码方式将加密的同意元素绑定到证明令牌的其余部分。

计算请求的证明令牌中的数据的集合的数字签名的密码散列(502)。可以使用浏览器、操作系统或其它受信任程序所采用的密码散列算法来计算数字签名的密码散列。

访问加密的同意元素的组中的第一加密的同意元素(504)。在该示例中,逐个访问每个加密的同意元素。在其它实施方式中,可以例如使用多个线程或多个处理器并行地访问和处理多个加密的同意元素。

对加密的同意元素进行解密(506)。可以使用接收者的私钥来对加密的同意元素进行解密,该私钥对应于用于对其同意元素进行加密的接收者的公钥。

确定解密的同意元素是否包括与在操作502中所计算出的数字签名的密码散列匹配的部分(508)。例如,可以将数字签名的密码散列与解密的同意元素进行比较,以确定密码散列与解密的同意元素的部分之间是否存在匹配。

如果不存在匹配,那么确定当前访问的同意元素是否是组中所包括的最后一个加密的同意元素(510)。如果当前访问的同意元素不是组中的最后一个加密的同意元素,那么访问下一加密的同意元素(512)。然后,对该同意元素进行操作506和508。

针对包括与数字签名的密码散列匹配的部分的每个解密的同意元素,可以确定解密的同意元素是否包括与接收者的cookie标识符匹配的部分。例如,接收者可以使用加密的同意元素中的数据对其存储的用户数据进行查找操作,以确定是否存在与用户数据中存储的cookie标识符的匹配。如果是这样,那么接收者可以确定同意元素中的cookie是针对该cookie标识符的。如果不是这样,那么接收者可以存储新的cookie标识符,并根据用户的用户同意设置使用cookie标识符开始收集用户数据。

如果在操作508中解密的同意元素包括与数字签名的密码散列匹配的部分,那么将请求分类为有效(516)。如果在操作508中没有解密的同意元素包括与数字签名的密码散列匹配的部分,那么将请求分类为无效(514)。

图6是图示用于使用证明令牌来确定请求的完整性是否有效的另一示例过程600的流程图。可以例如由请求的接收者(诸如图1的发布者130、数字组成部分分发系统150、数字组成部分伙伴157或数字组成部分提供者160)来实施过程600。过程600的操作还可以实施为在非暂时性计算机可读介质上所存储的指令,并且由一个或多个数据处理设备进行的指令的执行可以使一个或多个数据处理设备执行过程600的操作。

在该示例过程600中,请求包括证明令牌,该证明令牌具有加密的同意元素的组,例如一个加密的同意元素针对多个接收者中的每个接收者。针对每个接收者的加密的同意元素是使用在证明令牌中所包括的数据的集合的数字签名或数字签名的密码散列作为加密初始化向量的接收者的同意元素的加密版本。加密初始化向量的使用引入了随机性,该随机性使加密的同意元素特定于每个请求,并且还以密码方式将加密的同意元素绑定到证明令牌的其余部分。

计算请求的证明令牌中的数据的集合的数字签名的密码学散列(602)。可以使用浏览器所采用的相同密码散列算法来计算数字签名的密码学散列。

访问加密的同意元素的组中的第一加密的同意元素(604)。在该示例中,逐个访问每个加密的同意元素。在其它实施方式中,可以例如使用多个线程或多个处理器并行地访问和处理多个cookie元素。

对加密的同意元素进行解密(606)。可以使用接收者的私钥和作为加密初始化向量的在证明令牌中所包括的数字签名或数字签名的密码散列对加密的同意元素进行解密,该私钥对应于用于对其同意元素进行加密的接收者的公钥。

确定解密的同意元素是否与接收者的标识符匹配(608)。如果不匹配,那么确定当前访问的同意元素是否是组中所包括的最后一个加密的同意元素(610)。如果当前访问的同意元素不是组中的最后一个加密的同意元素,那么访问下一加密的同意元素(612)。然后,对该同意元素进行操作606和608。

如果解密的同意元素与接收者的有效标识符匹配,那么将请求分类为有效(616)。如果没有解密的同意元素与接收者的有效同意标识符匹配,那么将请求分类为无效(614)。

图7是可以用于进行上文所描述的操作的示例计算机系统700的框图。系统700包括处理器710、存储器720、存储装置730和输入/输出装置740。组件710、720、730和740中的每个组件可以例如使用系统总线750互连。处理器710能够处理在系统700内执行的指令。在一些实施方式中,处理器710是单线程式处理器。在另一实施方式中,处理器710是多线程式处理器。处理器710能够处理在存储器720中或存储装置730上所存储的指令。

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

存储装置730能够为系统700提供海量存储。在一些实施方式中,存储装置730是计算机可读介质。在各种不同的实施方式中,存储装置730可以包括例如硬盘装置、光盘装置、由多个计算装置例如云存储装置)通过网络共享的存储装置或一些其它大容量存储装置。

输入/输出装置740为系统700提供输入/输出操作。在一些实施方式中,输入/输出装置740可以包括网络接口装置(例如以太网卡)、串行通信装置(例如和RS-232端口)和/或无线接口装置(例如和802.11卡)中的一个或多个。在另一实施方式中,输入/输出装置可以包括驱动器装置,该驱动器装置配置成接收输入数据并将输出数据发送给外部装置760,例如键盘、打印机和显示装置。然而,也可以使用其它实施方式,诸如移动计算装置、移动通信装置、机顶盒电视客户端装置等。

尽管已经在图7中对示例处理系统进行了描述,但是可以在其它类型的数字电子电路系统中或在计算机软件、固件或硬件(包括本说明书中所公开的结构和其结构等效物)中或在它们中的一个或多个的组合中实施本说明书中所描述的主题的实施方式和功能操作。

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

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

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

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

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

例如,适合于执行计算机程序的处理器包括通用微处理器和专用微处理器两者。通常,处理器将接收来自只读存储器或随机存取存储器或两者的指令和数据。计算机的必要元件是用于根据指令执行动作的处理器和用于存储指令和数据的一个或多个存储器装置。通常,计算机还会包括用于存储数据的一个或多个海量存储装置(例如磁盘、磁光盘或光盘),或计算机还会可操作地联接以接收来自该海量存储装置的数据或将数据传送给该海量存储装置或进行两者。然而,计算机不需要具有这种装置。此外,计算机可以嵌入在另一装置(例如移动电话、个人数字助理(PDA)、移动音频或视频播放器、游戏主控台、全球定位系统(GPS)接收器或便携式存储装置(例如通用串行总线(USB)随身碟),仅举数例)中。适合于存储计算机程序指令和数据的装置包括所有形式的非易失性存储器、介质和存储器装置,包括例如:半导体存储器装置,例如EPROM、EEPROM和闪速存储器装置;磁盘,例如内部硬盘或可移除盘;磁光盘;以CD-ROM和DVD-ROM盘。处理器和存储器可以被专用逻辑电路系统补充或可以被并入该专用逻辑电路系统中。

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

本说明书中所描述的主题的实施例可以实施在计算系统中,该计算系统包括后端组件(例如作为数据服务器)、或包括中间件组件(例如应用服务器)、或包括前端组件(例如具有图形用户接口或Web浏览器的客户端计算机,通过该Web浏览器,用户可以与本说明书中所描述的主题的实施方式交互)或这种后端组件、中间件组件或前端组件的任何组合。可以通过任何形式或介质的数字数据通信(例如通信网络)来将系统的组件互连。通信网络的示例包括局域网(“LAN”)和广域网(“WAN”)、网际网(例如因特网)以及点对点网络(例如自组网点对点网络)。

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

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

类似地,虽然在图式中以特定顺序描绘了操作,但是不应该将其理解为需要以所示出的特定顺序或以依序顺序来进行这种操作,或需要进行所有图示的操作以实现期望的结果。在某些情况下,多任务处理和并行处理可以是有利的。此外,不应该将在上文所描述的实施例中的各种系统组件的分离理解为在所有实施例中需要这种分离,并且应该理解,所描述的程序组件和系统通常可以一起集成在单个软件产品中或封装到多个软件产品中。

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

相关技术
  • 针对隐私保护的可验证同意
  • 基于可验证的对称可搜索加密的隐私保护方法
技术分类

06120112960476