首页> 中国专利> 用户同意框架

用户同意框架

摘要

描述了方法、系统和装置,包括用于根据用户同意设置来管理用户数据的装置。在一些方面中,一种方法包括确定用于由客户端设备传输到接收者的请求将包括客户端设备的用户的用户数据。响应于确定请求将包括用户数据,方法包括:从客户端设备的同意管理模块请求由用户指定的当前用户同意设置,当前用户同意设置限定以下各项中的至少一项:(i)能够从客户端设备传输的用户数据,(ii)能够如何使用从客户端设备传输的用户数据,或者(iii)哪些接收者能够从客户端设备接收和保留用户数据。方法进一步包括:从同意管理模块接收当前用户同意设置,并且根据当前用户同意设置来生成请求数据。

著录项

  • 公开/公告号CN114902259A

    专利类型发明专利

  • 公开/公告日2022-08-12

    原文格式PDF

  • 申请/专利权人 谷歌有限责任公司;

    申请/专利号CN202080091737.2

  • 发明设计人 王刚;高易安;

    申请日2020-01-22

  • 分类号G06Q10/10(2006.01);

  • 代理机构中原信达知识产权代理有限责任公司 11219;中原信达知识产权代理有限责任公司 11219;

  • 代理人邓聪惠;周亚荣

  • 地址 美国加利福尼亚州

  • 入库时间 2023-06-19 16:20:42

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2022-08-30

    实质审查的生效 IPC(主分类):G06Q10/10 专利申请号:2020800917372 申请日:20200122

    实质审查的生效

说明书

背景技术

用户同意是在线隐私保护的重要部分。在一些情况下,用户可能想要确保仅根据他们的偏好收集和使用他们的数据。尊重用户同意并保护同意的用户数据有助于获得用户信任并改善用户的在线体验。

发明内容

本说明书描述了涉及跨在线生态系统系统地收集、传播和强制执行用户同意的端到端用户同意框架的技术。

通常,本说明书中描述的主题的一个创新方面能够体现在方法中,方法包括确定用于由客户端设备传输到接收者的请求将包括客户端设备的用户的用户数据。响应于确定请求将包括用户数据,方法包括从客户端设备的同意管理模块请求由用户指定的当前用户同意设置,用户同意设置限定以下各项中的至少一项:(i)能够从客户端设备传输的用户数据,(ii)能够如何使用从客户端设备传输的用户数据,或者(iii)哪些接收者能够从客户端设备接收和保留用户数据。方法进一步包括从同意管理模块接收当前用户同意设置并且根据当前用户同意设置来生成请求数据。生成请求数据包含:在请求数据中包括用户已经同意向接收者传输的用户的用户数据的一个或多个部分;以及在请求数据中包括指定给予接收者的对用户数据的一个或多个部分的同意的用户同意设置的至少一部分,其中,同意限制接收者对用户数据的一个或多个部分的使用。方法进一步包括将请求数据传输到接收者。该方面的其他实施方式包括被配置为执行编码在计算机存储设备上的方法的方面的对应的装置、系统和计算机程序。另一方面包括一种包括指令的暂时性计算机可读介质,指令在由一个或多个处理器执行时,使处理器执行本文公开的方法。

这些和其他实施方式能够各自任选地包括以下特征中的一个或多个特征。

一些方面包括使用客户端设备的计算平台的私钥来生成指定给予接收者的用于使用用户数据的一个或多个部分的同意的用户同意设置的部分的数字签名。将请求数据传输到接收者能够包括生成并传输证明令牌,证明令牌至少包括请求数据、用户同意数据和数字签名。一些方面能够包括向第三方提供与客户端设备的计算平台的私钥相对应的公钥。公钥使得第三方能够验证用户同意数据。这实现了第三方验证由用户指定的用户同意数据的安全方法。

一些方面包括从多个同意管理平台接收指定对给定同意管理平台的选择的选择数据。方法进一步包括:从给定同意管理平台或应用商店获得同意管理模块,以及在客户端设备上安装客户端设备上的同意管理模块。

一些方面包括呈现使得用户能够指定用户同意设置并审查当前用户同意设置的交互式界面。该方面能够包括接收指定用户同意设置的数据并且将用户同意设置存储在客户端设备处。该方面还能够包括在交互式界面中呈现一个或多个推荐的用户同意设置。该方面还能够包括至少基于客户端设备的当前位置或客户端设备上的用户活动来选择一个或多个推荐的用户同意设置。用户界面能够使得用户能够有效地审查和管理同意设置,由此进一步促进用户对他们的用户数据的同意设置的改进的控制。此外,呈现推荐的用户同意设置为用户提供了一种有效的方法来指定他们的用户同意设置而不必手动地选择设置,而是能够采用推荐的同意设置,这可以基于客户端设备的当前位置或客户端设备上的用户活动。

一些方面能够包括接收用于呈现在客户端设备处的数字组件以及确定数字组件是基于用户的用户数据的一个或多个部分而选择的个性化数字组件。响应于确定数字组件是基于用户的用户数据的一个或多个部分而选择的个性化数字组件,方法包括:确定当前用户同意设置是否允许呈现由提供个性化数字组件的数字组件分发系统提供的个性化数字组件;以及响应于确定当前用户同意设置不允许呈现由数字组件分发系统提供的个性化数字组件,阻止客户端设备呈现个性化数字组件。以这种方式,方法使用当前用户同意设置来防止不想要的个性化数字组件被呈现在客户端设备上。

在一些方面中,同意管理模块包括客户端设备的计算平台的用户同意插件。在一些方面中,同意管理模块包括客户端设备的操作系统的用户同意插件。在一些方面中,同意管理模块包括客户端设备的web浏览器的用户同意插件。以这些实施例的方式借助于插件提供同意管理模块允许将同意管理模块作为插件安装到客户端设备上的预先存在的应用或系统,由此将由同意管理模块提供的附加功能提供给这些预先存在的应用或系统。

本说明书中描述的主题能够被实施在特定实施例中,以便实现以下优点中的一个或多个。本文档中描述的用户同意平台使得用户能够使用单个同意管理插件(或其他模块)和/或单个用户界面来指定针对多个接收者(例如,域)的用户同意设置,从而使对如何收集和使用用户数据的控制更容易且更有效。换言之,所公开的主题为用户提供了一种手段来集中地管理针对多个接收者的他们的用户数据的用户同意设置,由此向用户提供对他们的个人用户数据的改进的控制。同意管理插件还能够例如基于用户的地理位置为用户推荐定制用户同意设置,由此进一步提高管理同意设置的效率和容易性,并且基于各个国家或地区的法律或规则来确保同意设置是适当的。客户端设备能够在传输用户数据之前查询用户同意设置,以防止传输用户尚未同意传输的用户数据。

当从客户端设备传输用户数据时,传输的数据能够包括必须由接收者存储的数字签名的用户同意设置。以这种方式,能够审计用户和用户数据的使用以确保合规性,同时防止接收者欺诈性地篡改接收到的用户同意设置。

下面参考附图描述前述主题的各种特征和优点。根据本文描述的主题和权利要求,附加特征和优点是显而易见的。

附图说明

图1是提供用于管理对数据收集和使用的用户同意的框架的环境的框图。

图2是图示用于在客户端设备上安装用户选择的同意管理模块的示例过程的流程图。

图3是图示用于使得用户能够指定用户同意设置并存储用户同意设置的示例过程的流程图。

图4是图示用于根据用户同意设置来传输请求的示例过程的流程图。

图5是能够用于执行上述操作的示例计算机系统的框图。

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

具体实施方式

通常,本文描述的系统和技术提供了跨在线生态系统(例如,跨完全分离的域)系统地收集、传播和强制执行用户同意的端到端用户同意框架。许多不同的公司和其他组织收集、共享和依靠用户数据以用于各种目的,诸如为用户定制内容。一种管理用户同意的方式是使每一个组织例如通过在用户访问网站或下载应用时请求用户选择偏好来获得其每一个用户的同意。然而,这对于用户来说能够是令人懊恼的,可能需要输入重复数据,并且不能确保根据那些偏好来收集和/或使用用户的数据。因此,公开的主题涉及解决提供更简单且更有效的管理用户同意数据的方法的技术问题。

该技术问题的一个或多个技术解决方案涉及公开的用户同意框架,公开的用户同意框架可以被实施为系统、方法、装置、计算机可读介质和计算机程序。本文档中描述的用户同意框架使得用户能够从多个同意管理平台中选择同意管理平台来管理他们的用户同意设置。用户的用户同意设置限定例如能够收集什么用户数据、谁能够接收数据以及每一个接收者能够如何使用数据。以这种方式,用户能够使用单个平台跨整个在线生态系统集中地管理他们的隐私。换句话说,通过使用同意管理平台,用户能够一次提交他们的同意设置,并且能够在用户访问多个不同的域(例如,网站)和应用(例如,移动app)时强制执行那些设置,而不需要用户重新提交他们的同意设置。

同意管理平台能够向用户的客户端设备提供同意管理模块,例如,用于操作系统的插件,其使得用户能够指定用户同意设置。同意管理模块能够提供使得用户能够指定用户同意设置的一个或多个交互式用户界面。当客户端设备将要传输将包括用户数据的请求时,客户端设备的平台能够查询当前用户同意设置以确定什么(如果有的话)用户数据能够被包括在请求中以及对数据的什么限制应当被包括在请求中。客户端设备然后能够根据当前用户同意设置来生成请求并将请求传输到其接收者。

为了确保遵守用户同意设置,从客户端设备发送的请求能够包括接收者能够存储的数字签名的用户同意设置。以这种方式,审计者能够验证由接收者接收的用户同意设置,而接收者不能够更改或伪造用户同意设置。

同意管理模块还能够向用户推荐用户同意设置,以使用户更容易指定用户同意设置。同意管理模块能够基于各种因素(包括例如用户设备的当前地理位置、接收者对在用户设备处呈现的数字组件的贡献、和/或设备上的用户活动)来推荐用户同意设置。

图1是提供用于管理对数据收集和使用的用户同意的框架的环境100的框图。示例环境100包括数据通信网络105,诸如局域网(LAN)、广域网(WAN)、互联网、移动网络或其组合。网络105连接客户端设备110、发布者130、网站140、数字组件分发系统150和同意管理提供者系统170。示例环境100可以包括许多不同的客户端设备110、发布者130、网站140和同意管理提供者系统170。

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

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

客户端设备110是能够通过网络105进行通信的电子设备。示例客户端设备110包括个人计算机、移动通信设备(例如,智能电话)以及能够通过网络105发送和接收数据的其他设备。客户端设备110具有设备平台113,设备平台113是软件应用在其中执行的环境。设备平台113能够包括客户端设备110的硬件和/或客户端设备110的操作系统。

客户端设备110通常包括在设备平台113中运行并且促进通过网络105发送和接收数据的应用112,诸如web浏览器和/或本机应用。本机应用是针对特定平台或特定设备开发的应用。发布者130能够开发本机应用并将本机应用提供给客户端设备110,例如,使本机应用可用于下载。在一些实施方式中,客户端设备110是数字媒体设备,例如,插入电视或其他显示器以将视频流传输到电视的流传输设备。数字媒体设备还能够包括web浏览器和/或流传输视频和/或呈现资源的其他应用。

web浏览器能够从托管发布者130的网站140的web服务器请求资源145,例如,响应于客户端设备110的用户在web浏览器的地址栏中输入资源145的资源地址或选择引用资源地址的链接。类似地,本机应用能够从发布者130的远程服务器请求应用内容。

一些资源145、应用页面、或其他应用内容能够包括用于呈现具有资源145或应用页面的数字组件的数字组件槽。如贯穿本文档所使用的,短语“数字组件”是指数字内容或数字信息的离散单元(例如,视频剪辑、音频剪辑、多媒体剪辑、图像、文本或另一内容单元)。数字组件能够作为单个文件或以文件的集合电子地存储在物理存储器设备中,并且数字组件能够采用视频文件、音频文件、多媒体文件、图像文件或文本文件的形式,并且包括广告信息,使得广告是一种类型的数字组件。例如,数字组件可以是旨在补充由应用112呈现的网页或其他资源的内容的内容。更具体地,数字组件可以包括与资源内容相关的数字内容(例如,数字组件可以涉及与网页内容相同的话题,或者涉及相关话题)。因此,由数字组件分发系统150对数字组件的提供能够补充并且通常增强网页或应用内容。

当应用112加载包括一个或多个数字组件槽的资源145(或应用内容)时,应用112能够从数字组件分发系统150发送针对每一个槽的数字组件的请求120(其能够包括如下所述的证明令牌122)。数字组件分发系统150继而能够从数字组件提供者160请求数字组件。数字组件提供者160是提供用于与资源145一起呈现的数字组件的实体。

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

数字组件分发系统150能够基于各种标准来选择针对每一个数字组件槽的数字组件129。例如,数字组件分发系统150能够基于与资源145(或应用内容)的相关性或关联、数字组件的性能(例如,用户与数字组件交互的速率)等来从从数字组件提供者160和/或数字组件合作伙伴157接收到的数字组件中选择数字组件。然后,数字组件分发系统150能够将选择的(一个或多个)数字组件129提供给客户端设备110以用于与资源145或其他应用内容一起呈现。

客户端设备110还能够包括使得客户端设备110的用户能够管理限定是否和/或如何收集和使用用户的数据的用户同意设置的同意管理模块114。同意管理模块114能够被实施为设备平台113的插件,例如,被实施为客户端设备110的操作系统的插件。插件是向应用提供附加特征的软件组件。在一些实施方式中,同意管理模块114能够被实施为web浏览器或本机应用的插件。

同意管理模块114能够在将同意管理模块114与客户端设备110的其他应用和/或资源隔离的严格控制的环境中运行。例如,同意管理模块114能够在设备平台113的沙箱中运行。以这种方式,同意管理模块114不能在设备平台113外部通信或者干扰相同设备上的其他应用112的执行。

同意管理模块114使得用户能够指定如何收集和使用用户数据,诸如用户在客户端设备上的活动、web浏览历史、下载或访问的本机应用、人口统计信息、位置信息、兴趣和/或其他个人数据。在一些实施方式中,同意管理模块114使得用户能够单独地为所有接收者和/或每一个接收者指定接收者是否能够在客户端设备110上存储和/或访问信息、使用用户数据来选择数字组件、使用用户数据来创建一个或多个用户简档、使用用户数据(例如,使用(一个或多个)简档)来选择个性化数字组件、(例如,基于用户是否与数字组件或其他内容交互)测量数字组件或其他内容的性能、和/或生成观众见解。

同意管理模块114能够提供使得用户能够指定用户同意设置的一个或多个同意管理用户界面116。例如,用户界面能够针对每一个设置呈现允许用户同意该设置或拒绝该设置的复选框控件。在特定示例中,设置可以是使得能够从客户端设备110传输任何用户数据。在该示例中,用户能够选择用于该设置的复选框(例如,选中)或者不选择该复选框(例如,未选中)以拒绝该设置。

在另一示例中,用户界面116能够使得用户能够从用于设置的多个选项中进行选择。例如,用户界面116能够针对一组域名(其能够包括发布者、数字组件提供者160、数字组件分发系统150、和/或数字组件合作伙伴157的网站)和/或本机应用中的每一个呈现多个按钮,每一个按钮限定能够由应用发送到该域的数据的类型。用户能够通过选择按钮来同意数据的类型,并且通过取消选择按钮来撤销同意。

同意管理模块114能够使得用户能够指定用户同意设置,用户同意设置限定从客户端设备110传输什么数据、能够如何使用该数据(例如,定制网页或应用的内容、以加密或非加密形式仅通过安全信道选择数字组件)、能够向哪些接收者发送数据、是否能够存储用户数据以及能够存储用户数据多长时间、和/或对用户数据的使用的其他适当同意。同意管理模块114能够使得用户能够为所有接收者指定设置,例如,整体设置,或者为每一个接收者指定设置。以这种方式,用户能够对如何收集和使用他们的数据进行微调控制。

同意管理模块114能够将由用户指定的用户同意设置存储在同意存储单元117中。同意存储单元117能够被隔离和/或加密以防止其他设备或应用访问或修改。

同意管理模块114能够用于管理客户端设备110上的每一个web浏览器和本机应用对用户数据的收集和使用。当客户端设备110将要例如代表web浏览器或本机应用发送包括用户数据的请求120时,设备平台113能够向同意管理模块114查询当前用户同意设置。然后,设备平台113能够生成仅包括用户同意并由当前用户同意设置限定的程度的用户数据的请求。以这种方式,单个同意模块114能够防止从多个应用传输用户尚未同意的用户数据。因此,在一些实施方式中,每一个客户端设备110可以仅具有安装在客户端设备110上和/或在给定时间在客户端设备110上活动的一个同意管理模块114。

在一些情况下,可以存在操作同意管理提供者系统170以用于根据用户同意设置来管理用户数据的多个同意管理提供者。每一个同意管理提供者能够使同意管理模块114对用户可用。在该示例中,每一个用户能够从他们优选的同意管理提供者的同意管理提供者系统170下载或以其他方式安装他们的同意管理模块114。

在一些实施方式中,同意管理模块114能够使得用户能够指定音频、视频和/或图像数据是否被收集、传输到其他人和/或由其他人使用。例如,同意管理模块114能够使得用户能够指定客户端设备110或另一设备(例如,辅助设备(例如,智能扬声器)、另一移动设备等)是否能够收集、接收或使用音频、视频或图像数据。在一些实施方式中,同意管理模块114能够使得用户能够指定(例如,来自智能恒温器或物联网(IoT)设备的)传感器信息是否能够由其他人收集、传输或使用。在这样的示例中,这些设备能够查询同意管理模块114以确定是否能够以与设备平台113类似的方式将数据发送到另一设备。

同意管理模块114还能够包括例如基于限定是否能够收集用户数据和/或能够如何使用用户数据的法律、法规或最佳实践的标准设置。这些标准设置能够包括设备平台113是否应当向接收者(例如,特定网络域)发送用户数据或请求、对接收者的请求是否应当包含任何用户标识符、接收者是否能够向用户提供个性化内容和/或其他适当设置。

同意管理模块114能够例如针对对标准设置、用于实施同意管理模块114的逻辑的更新和/或对推荐引擎115的更新(如下所述)周期性地向同意管理提供者系统170发送查询171。作为响应,同意管理提供者系统170能够提供由查询171请求的更新173。以这种方式,响应于用户隐私法律、法规或最佳实践的变化,能够更新每一个客户端设备110上的同意管理模块114。

推荐引擎115能够向用户推荐(一个或多个)用户界面116中的用户同意设置。推荐115能够基于各种因素来推荐用户设置,各种因素包括例如客户端设备110的当前地理位置、接收者对在客户端设备110处呈现的数字组件的贡献和/或客户端设备110上的用户活动。该用户活动能够包括例如web浏览历史、位置历史、安装在客户端设备110上的应用和/或例如在给定时间段期间由用户访问的应用。例如,推荐引擎115能够基于由客户端设备110的全球定位系统(GPS)接收器定义的用户的当前地理位置或者基于从设备的互联网协议(IP)地址推断的用户的当前地理位置来推荐符合本地法律、法规或最佳实践的用户同意设置。以这种方式,能够向国际旅行的用户提供适合于当前位置的推荐的用户同意设置。

如上所述,推荐引擎115能够使用接收者对在客户端设备110处呈现的数字组件的贡献。同意管理模块114或另一应用(例如,web浏览器或本机应用)能够确定在给定时间段内多个域对在客户端设备110处呈现数字组件的贡献水平。例如,数字组件能够包括指示对数字组件的递送做出贡献的一个或多个域的元数据。在特定示例中,元数据能够指示第一域贡献了数字组件中的某些图形,并且第二域贡献了数字组件中的文本。同意管理模块114或应用能够确定对在客户端设备110处呈现的至少一个数字组件做出贡献的每一个域的贡献水平。

能够以各种方式确定域的贡献水平。例如,域的贡献水平能够基于域贡献的在客户端设备110处呈现的数字组件的数量、在客户端设备110上与之交互并且域贡献的数字组件的百分比、域贡献的在客户端设备110处呈现的数字组件的类型或大小、和/或其他适当的因素。

推荐引擎115能够使用贡献水平来向用户推荐用户同意设置。例如,如果域在客户端设备110上存储数据和/或从客户端设备110接收用户数据,但是对在客户端设备110处呈现的数字组件没有贡献,则推荐引擎115能够推荐用户阻止(例如,不同意)域将数据存储在客户端设备110上或者从客户端设备110接收用户数据,因为它可能不知道域为什么正在收集用户数据。

推荐引擎115能够将域的贡献水平与阈值进行比较。如果贡献水平不满足阈值(例如,小于阈值),则推荐引擎115能够推荐用户不同意域将数据存储在客户端设备110上或从客户端设备110接收用户数据。如果贡献水平满足阈值(例如,满足或超过阈值),则推荐引擎115能够推荐用户同意域将数据存储在客户端设备110上和/或从客户端设备110接收用户数据。推荐引擎115能够针对对在客户端设备110处呈现的至少一个数字组件做出贡献的每一个域执行该推荐过程。

用户能够在(一个或多个)用户界面116中查看推荐的用户同意设置,并且确认或拒绝推荐的用户同意设置。例如,用户界面116能够呈现覆盖多个域和/或多种类型的同意(例如,存储数据、传输数据等)的一组推荐的用户同意设置,并且用户能够简单地接受或拒绝推荐的用户同意设置。这能够使用户更容易且更有效地相对于定制每种类型的设置和/或针对每一个域指定用户同意设置。

在一些实施方式中,设备平台113发送具有包括用户数据的请求120的用户同意设置。能够要求用户数据的每一个接收者存储用户同意设置,例如,用于审计目的。以这种方式,审计者能够审计由接收者存储的用户数据和用户同意设置,以确保接收者根据用户的同意设置来存储和使用每一个用户的数据。

为了防止接收者的欺诈,设备平台113(或发送请求的web浏览器或本机应用)能够使用由设备平台113(或web浏览器或本机应用)秘密地维护的私钥来至少对用户同意设置进行数字签名。审计者能够使用对应于(例如,数学上链接到)私钥的公钥和存储的使用的同意设置来验证签名。如果不能使用公钥和存储的用户同意设置来验证签名,则审计者能够确定用户同意设置已经被更改。

在一些实施方式中,设备平台113生成被包括在请求120中或者实施请求120的证明令牌122。证明令牌是能够包括同意设置和(使用私钥的)同意设置的数字签名以及其他数据的令牌,使得能够检测到在创建之后对用户同意设置的任何修改。例如,证明令牌能够是包括同意设置和其他数据的复杂消息。签名数据能够包括用户的唯一标识符,使得证明令牌的接收者能够验证证明令牌是从用户发送的。证明令牌还能够包括完整性令牌,例如设备完整性令牌和/或浏览器完整性令牌,使得接收者能够验证证明令牌是从可信设备或可信web浏览器接收的。

证明令牌120能够包括指定请求的目的或操作(例如,以改变用户同意设置或请求数字组件)的数据、唯一地识别用户的用户标识符(例如,客户端设备110的公钥)、指示创建证明令牌122的时间的证明令牌创建时间、完整性令牌(例如,设备完整性令牌和/或浏览器完整性令牌)以及证明令牌122的其他数据的至少一部分的数字签名。

完整性令牌能够是使得实体能够确定请求120是否是由可信客户端设备110发送的设备完整性令牌。例如,设备完整性令牌能够由第三方设备完整性系统发布,第三方设备完整性系统评估客户端设备的欺诈信号并且基于该评估向客户端设备指派可信度水平。客户端设备110的设备完整性令牌能够包括指示在生成设备完整性令牌时客户端设备110的可信度(或完整性)水平的判断、指示生成设备完整性令牌的时间的设备完整性令牌创建时间、以及客户端设备110的唯一标识符(例如,客户端设备的设备公钥113B或其衍生物)。设备完整性令牌还能够包括使用设备完整性系统的私钥的设备完整性令牌中的数据的数字签名。例如,设备完整性系统能够使用其私钥对数据进行签名,系统秘密地维护该私钥。接收证明令牌122的实体能够使用设备完整性系统的公钥来验证设备完整性令牌的签名。由于客户端设备110的完整性能够随时间改变,因此每一个客户端设备110能够周期性地请求新的设备完整性令牌。接收证明令牌122的实体能够检查设备完整性令牌的创建时间以识别旧的设备完整性令牌。

对于代表web浏览器发送的请求,完整性令牌能够是指示web浏览器的完整性或用户与网站的交互是否真实的浏览器完整性令牌。非真实用户交互的示例包括由机器人等而不是用户发起的交互。浏览器完整性令牌能够由第三方浏览器完整性系统基于发送到第三浏览器完整性系统的欺诈检测信号来发布。欺诈信号能够包括例如鼠标移动速度、方向、间歇和其他模式、点击模式等。

类似于设备完整性令牌,用于web浏览器的浏览器完整性令牌能够包括指示在生成浏览器完整性令牌时web浏览器的可信度(或完整性)水平或用户与网站的交互的真实性水平的判断、指示生成浏览器完整性令牌的时间的浏览器完整性令牌创建时间、以及客户端设备110的唯一标识符(例如,客户端设备或web浏览器的公钥)。浏览器完整性令牌还能够包括使用浏览器完整性系统的私钥的浏览器完整性令牌中的数据的数字签名。例如,浏览器完整性系统能够使用其私钥对数据进行数字签名,系统秘密地维护该私钥。接收证明令牌122的实体能够使用浏览器完整性系统的公钥来验证浏览器完整性令牌的签名。客户端设备110能够存储完整性令牌(例如,设备完整性令牌和/或浏览器完整性令牌)以用于包括在证明令牌122中。

如上所述,客户端设备110能够从数字组件分发系统150请求数字组件。在应用(例如,web浏览器或本机应用)呈现数字组件之前,应用能够确保用户已经同意正在呈现的数字组件。数字组件能够包括数据,例如元数据,数据指定提供者(例如,数字组件分发系统150、数字组件合作伙伴157和/或数字组件提供者160)以及数字组件是否是基于用户的数据(例如,基于针对用户生成的用户简档)而选择和/或定制的个性化数字组件。

在渲染数字组件之前,应用(例如,web浏览器或本机应用)能够向同意管理模块114查询提供者是否具有向用户示出个性化内容的适当用户同意。例如,应用能够向同意管理模块114提供指定提供者以及数字组件是否利用查询被个性化的先前提取的数字组件或元数据。同意管理模块114能够基于当前用户同意设置和接收到的数字组件或元数据来确定用户是否已经同意正在呈现的数字组件。同意管理模块114然后能够利用指定能够呈现或不呈现数字组件的数据来响应应用。应用然后能够基于来自同意管理模块114的响应来呈现数字组件或阻止数字组件。

在一些实施方式中,同意管理模块114还能够使得用户能够查看哪些域具有用户的数据以及每一个域具有什么数据。同意管理模块114还能够使得用户能够请求域删除用户的数据、不将用户的数据传输到另一实体、校正用户的数据、和/或将用户的数据导出到例如客户端设备110。

图2是图示用于在客户端设备上安装用户选择的同意管理模块的示例过程200的流程图。过程200能够例如由客户端设备110实施。过程200的操作还能够被实施为存储在非暂时性计算机可读介质上的指令,并且由一个或多个数据处理装置对指令的执行能够使一个或多个数据处理装置执行过程200的操作。

接收对同意管理平台的选择(202)。客户端设备的应用(例如,web浏览器或本机应用)或设备平台能够向用户呈现使得用户能够从多个同意管理平台中进行选择的用户界面。每一个同意管理平台能够为用户提供管理用户同意设置的方式,用户同意设置控制如何收集和使用用户的数据。例如,每一个同意管理平台能够提供同意管理模块,同意管理模块使得用户能够在客户端设备处指定用户同意设置,并且管理在客户端设备处和在其他位置处(例如,在远程服务器或其他实体处)对用户数据的收集和使用。

能够响应于确定应用正在尝试将用户数据从客户端设备发送到另一实体并且同意管理模块当前未安装在客户端设备上或未在客户端设备上活动而呈现用户界面。用户能够从用户界面选择同意管理平台,或者拒绝选择任何同意管理平台。

从选择的同意管理平台获得同意管理模块(204),或者从诸如用户能够下载应用和应用的附加组件的应用商店的另一位置获得同意管理模块。例如,应用商店能够确保同意管理模块满足一些最低质量标准并且符合一些政策。响应于对同意管理平台的选择,客户端设备能够向选择的同意管理平台的同意管理提供者系统发送请求。作为响应,系统能够将同意管理模块(或用于安装同意管理模块的可执行文件)发送到客户端设备。

将同意管理模块安装在客户端设备上(206)。如上所述,同意管理模块能够以操作系统的插件的形式来实施。在该示例中,操作系统安装插件。同意管理模块的安装还能够包括配置应用以在发送请求和呈现数字组件时与同意管理模块交互。

图3是图示用于使得用户能够指定用户同意设置并存储用户同意设置的示例过程300的流程图。过程300能够例如由客户端设备的同意管理模块来实施。过程300的操作还能够被实施为存储在非暂时性计算机可读介质上的指令,并且由一个或多个数据处理装置对指令的执行能够使一个或多个数据处理装置执行过程300的操作。

呈现交互式界面(302)。交互式界面能够使得用户能够指定用户同意设置,用户同意设置限定例如能够收集什么用户数据、谁能够接收数据、数据保留策略(例如,在30天或另一适当的时间段之后自动删除)、以及每一个接收者能够如何使用数据。在一些实施方式中,交互式界面能够包括一组用户同意设置,并且对于每一个用户同意设置,包括使得用户能够同意或拒绝同意的用户界面控件。例如,交互式界面能够包括全局地控制是否能够将任何用户数据从用户设备传输到任何域的设置。交互式界面还能够包括使得用户能够同意传输用户数据或拒绝同意(这将防止从客户端设备传输任何用户数据)的复选框控件(或其他类型的控件)。交互式界面能够针对其他类型的用户同意、针对每一个域和/或针对安装在客户端设备上的每一个应用呈现类似的用户同意设置。如上所述,交互式界面还能够呈现推荐的设置。在客户端设备上执行的同意管理模块能够生成推荐的设置以及呈现交互式界面。

接收指定用户同意设置的数据(304)。用户界面能够将由用户指定的用户同意设置传递到同意管理模块。

将用户同意设置存储在客户端设备上(306)。同意管理模块能够将用户同意设置存储在安全存储设备中,例如,存储在客户端设备的设备平台的沙箱内,以防止从沙箱外部访问。在一些实施方式中,在适当的用户同意的情况下,同意管理模块能够将用户同意设置存储在由同意管理平台管理的互联网上的安全存储设备中。如果用户从多个设备登录,则这种互联网存储设备可以有益于备份/恢复目的以及有益于跨多个设备的一致用户体验。

图4是图示用于根据用户同意设置来传输请求的示例过程400的流程图。过程400能够例如由客户端设备的同意管理模块实施。过程400的操作还能够被实施为存储在非暂时性计算机可读介质上的指令,并且由一个或多个数据处理装置对指令的执行能够使一个或多个数据处理装置执行过程400的操作。

做出请求将包括用户数据的确定(402)。例如,客户端设备的设备平台能够代表诸如web浏览器和本机应用的应用传输请求。应用能够向设备平台提供请求的数据以及指示请求是否包括用户数据的数据。在另一示例中,设备平台能够评估从应用接收到的数据并确定请求将包括用户数据。在另一示例中,浏览器或本机应用将在生成和发送请求之前查询用户同意设置。

例如,当浏览器向域发送超文本传输协议(HTTP)请求时,如果域在浏览器cookiejar中具有cookie,并且cookie值具有足够的熵来识别用户(例如,超出简单的布尔值),则浏览器将向插件查询域是否具有收集用户数据的用户同意。当且仅当答案为“是”时,浏览器将cookie插入HTTP报头中。

在另一示例中,如果已知浏览器将向其发送请求的域使用被动指纹识别(即,取决于HTTP请求中的IP地址和浏览器用户代理以及其他信号)来跟踪用户,则浏览器将HTTP请求路由到网络,并且如果插件回复域没有收集用户数据的用户同意,则拒绝浏览器用户代理。

做出对当前用户同意设置的请求(404)。设备平台能够向同意管理模块提交对用户同意设置的查询。查询能够要求(例如,请求)特定用户同意设置,例如,针对将向其发送请求的域,或者所有用户同意设置。

接收当前用户同意设置(406)。同意管理模块能够响应于查询而提供当前用户同意设置。这些当前用户同意设置能够包括由用户指定的用户同意设置和/或同意管理模块的标准/默认用户同意设置。例如,标准/默认用户同意设置能够是基于用户的当前位置指示用户处于具有不允许收集特定用户数据的法规的国家而阻止该类型的用户数据被传输的设置。如果查询要求特定用户同意设置,则同意管理模块可以仅提供那些用户同意设置。

根据当前用户同意设置来生成请求数据(408)。设备平台能够使用用户同意设置来识别能够被包括在请求中的用户数据的部分(如果有的话)以及不能够被包括在请求中的用户数据的部分(如果有的话)。例如,设备平台能够评估用户同意设置以确定是否存在针对请求的接收者的设置。如果是,则设备平台能够使用那些用户同意设置来识别能够被包括在请求中的用户数据的部分。如果不是,则同意管理模块能够使用一般用户同意设置来识别能够被包括在请求中的用户数据的部分。

在特定示例中,用户可以同意将位置数据发送到特定数字组件分发系统,但不同意将web浏览历史发送到特定数字组件分发系统。在该示例中,设备平台能够确定请求是否包括位置数据或web浏览历史数据。如果请求包括web浏览历史数据,则设备平台能够从请求中移除web浏览历史数据。设备平台能够在将从客户端设备传输的请求数据中包括用户同意的位置数据。

请求数据还能够包括用户同意设置。请求能够仅包括应用到请求的用户同意设置,例如,针对请求的接收者的用户同意设置和/或用于允许用户数据被包括在请求中的任何全局用户同意设置。在另一示例中,请求能够包括针对接收者的用户同意设置和应用到所有接收者的任何用户同意设置。如上所述,能够生成至少用户同意设置的数字签名并将其包括在请求中,使得稍后能够例如在审计中验证用户同意设置。

传输请求数据(410)。设备平台能够将请求数据传输到请求的接收者,例如,传输到数字组件分发系统。如上所述,请求能够包括证明令牌或者是证明令牌的形式。

除了上面的描述之外,可以向用户提供控件,该控件允许用户关于本文描述的系统、程序或特征是否以及何时可以使得能够收集用户信息(例如,关于用户的社交网络、社交动作或活动、职业、用户的偏好或用户的当前位置的信息)以及是否从服务器向用户发送个性化内容或通信做出选择。另外,特定数据可以在它被存储或使用之前以一种或多种方式被处理,使得个人可识别信息被移除。例如,可以处理用户的身份,使得不能够确定用户的个人可识别信息,或者可以概括获得位置信息的用户的地理位置(诸如到城市、邮政编码或州级别),使得不能够确定用户的具体位置。因此,用户可以控制收集关于用户的什么信息、如何使用该信息、信息保留策略、以及向用户提供什么信息。

图5是能够用于执行上述操作的示例计算机系统500的框图。系统500包括处理器510、存储器520、存储设备530和输入/输出设备540。组件510、520、530和540中的每一个能够例如使用系统总线550相互连接。处理器510能够处理用于在系统500内执行的指令。在一些实施方式中,处理器510是单线程处理器。在另一实施方式中,处理器510是多线程处理器。处理器510能够处理存储在存储器520中或存储设备530上的指令。

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

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

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

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

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

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

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

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

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

适合于执行计算机程序的处理器包括例如通用微处理器和专用微处理器两者。通常,处理器将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的基本元件是用于根据指令来执行动作的处理器和用于存储指令和数据的一个或多个存储器设备。通常,计算机还将包括用于存储数据的一个或多个大容量存储设备,或者可操作地耦合以从用于存储数据的一个或多个大容量存储设备接收数据或将数据传输到用于存储数据的一个或多个大容量存储设备或两者,用于存储数据的一个或多个大容量存储设备例如磁盘、磁光盘或光盘。然而,计算机不必具有这样的设备。此外,计算机能够被嵌入另一设备(例如,移动电话、个人数字助理(PDA)、移动音频或视频播放器、游戏控制台、全球定位系统(GPS)接收器或便携式存储设备(例如,通用串行总线(USB)闪存驱动器),仅举几例)中。适合于存储计算机程序指令和数据的设备包括所有形式的非易失性存储器、介质和存储器设备,包括例如半导体存储器设备,例如,EPROM、EEPROM和闪存设备;磁盘,例如内部硬盘或可移除盘;磁光盘;以及CD-ROM和DVD-ROM盘。处理器和存储器能够由专用逻辑电路补充或并入专用逻辑电路中。

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

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

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

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

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

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

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号