首页> 中国专利> 隐私保护应用和设备错误检测

隐私保护应用和设备错误检测

摘要

方法、系统和装置,包括编码在计算机存储介质上的计算机程序,用于检测客户端设备及其相关联的应用中的错误,同时保护设备的用户的隐私。方法可以包括获得用于设备上的应用的上下文应用数据并且对其进行盲化。获得有关应用的数字证书的数据和设备可信任度数据,并将其与盲化数据一起提供给信任评估服务器。此服务器可以提供设备可信任和应用可靠的指示,并可以对盲数据进行数字签名。可以验证数字签名,并可以获得解盲的上下文应用数据。如果解盲的数据与上下文应用数据匹配,则应用可以将数字签名、指示和解盲的上下文应用数据提供给错误检测服务器,这继而可以指示该应用没有错误。

著录项

  • 公开/公告号CN113853603A

    专利类型发明专利

  • 公开/公告日2021-12-28

    原文格式PDF

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

    申请/专利号CN202080005624.6

  • 申请日2020-05-12

  • 分类号G06F21/64(20130101);G06F21/62(20130101);G06F21/60(20130101);

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

  • 代理人周亚荣;邓聪惠

  • 地址 美国加利福尼亚州

  • 入库时间 2023-06-19 13:26:15

说明书

相关申请的交叉引用

本申请是国际申请,并且要求2020年4月23日提交的IL申请No.274165的权益。前述申请的公开内容通过引用整体结合于此。

背景技术

本说明书通常涉及在保护客户端设备的用户的隐私的同时检测客户端设备及其相关联的应用中的错误。

客户端设备可以使用应用(例如,web浏览器、本机应用)来访问内容平台(例如,搜索平台、社交媒体平台或提供内容的另一平台)。内容平台可以提供数字内容,以供在客户端设备上启动的应用内显示。

在一些情况下,在客户端设备上执行的应用可以以例如偏离与内容平台的正常或预期的交互或破坏/损害内容平台的操作和/或安全性的方式与内容平台交互。此类交互可能是应用和/或客户端设备中错误的结果。在一些情况下,此类错误可能是由恶意实体引起或注入的,这些恶意实体可能已经损害或不适当地修改了应用(包括其软件开发工具包(“SDK”))、底层客户端设备和/或从应用提供到内容平台的数据。

发明内容

通常,本说明书中所述的主题的一个创新方面可以体现为包括下列操作的方法中:通过在客户端设备上执行的应用获得上下文应用数据,所述上下文应用数据表示在应用内的提供内容并与所述内容交互的上下文;通过应用对上下文应用数据进行盲化以生成盲化上下文应用数据;获得关于应用的数字证书的数据和设备可信任度数据,所述设备可信任度数据包括能够用于评估客户端设备的可信任度的数据;向信任评估服务器提供盲化上下文应用数据、关于数字证书的数据以及设备可信任度数据;信任评估服务器接收数据集,数据集包括(1)指定客户端设备是可信任的第一指示、(2)指定应用为真实的第二指示、以及(3)信任评估服务器在第一数据项上的数字签名;验证第一数据项上的数字签名;响应于验证第一数据项上的数字签名,应用对第一数据项进行解盲,以获得解盲的第一数据项;确认解盲的第一数据项与上下文应用数据匹配;响应于确认解盲的第一数据项与上下文应用数据匹配,向应用错误检测服务器提供第一数据项上的数字签名、第一指示、第二指示、以及解盲的第一数据项;以及从应用错误检测服务器接收指定应用没有任何错误的第三指示。该方面的其他实施例包括相应方法、装置和计算机程序,其被配置成执行在计算机存储设备上编码的方法的动作。这些和其他实施例可以各自可选地包括以下特征中的一个或多个。

在一些实施方式中,方法可以进一步包括:通过信任评估服务器:(1)基于设备可信任度数据确定客户端设备是可信任的;和(2)通过将关于应用的数字证书的数据与关于已知真实的应用的数字证书的数据进行比较来确定应用是真实的;和通过信任评估服务器向客户端设备提供指定客户端设备是可信任的第一指示和指定应用是已知的应用的第二指示。

在一些实施方式中,关于应用的数字证书的数据可以包括应用的应用包(APK)的数字摘要;或应用的APK的加密哈希。

在一些实施方式中,获得关于应用的数字证书的数据和包括能够用于评估客户端设备的可信任度的设备数据的设备可信任度数据可以包括:通过在客户端设备上执行的受信任的应用或操作系统获得关于应用的数字证书的数据;和通过在客户端设备上执行的设备可信任度客户端应用获得设备可信任度数据。

在一些实施方式中,指定客户端设备是可信任的第一指示可以是两位值,其中,两位值中的第一位指示客户端设备没有被不适当地修改或改变;两位值中的第二位指示客户端设备的配置文件与先前已证实的设备的配置文件匹配。

在一些实施方式中,方法可以进一步包括响应于向应用错误检测服务器提供第一数据项上的数字签名、第一指示、第二指示以及上下文应用数据,与信任评估服务器通信以证实数字签名的操作,其中,数字签名是IETF VOPRF数字签名并且可通过最初生成数字签名的信任评估服务器证实。

在一些实施方式中,方法可以进一步包括通过应用错误检测服务器从信任评估服务器接收指定数字签名是有效的第四指示的操作。

通常,本说明书中所述的主题的另一创新方面可以体现为包括下列操作的方法中:通过在客户端设备上执行的应用,生成随机数据集;通过应用对随机数据集进行盲化,以生成盲化随机数据集;获得关于应用的数字证书的数据和包括能够用于评估客户端设备的可信任度的设备数据的设备可信任度数据;向信任评估服务器提供盲化随机数据集、关于数字证书的数据以及设备可信任度数据;从信任评估服务器接收第一数据集,所述第一数据集包括:(1)指定客户端设备是可信任的第一指示、(2)指定应用为真实的第二指示、以及(3)信任评估服务器在第一数据项上的数字签名;验证第一数据项上的数字签名;响应于验证第一数据项上的数字签名,通过应用对第一数据项进行解盲,以获得解盲的第一数据项;确认解盲的第一数据项与随机数据集匹配;响应于确认解盲的第一数据项与随机数据集匹配,通过应用获得上下文应用数,所述上下文应用数据表示在应用内的提供内容并与所述内容交互的上下文;向应用错误检测服务器提供第一数据项上的数字签名、第一指示、第二指示、以及上下文应用数据;以及从应用错误检测服务器接收指定应用没有任何错误的第三指示。该方面的其他实施例包括相应方法、装置和计算机程序,其被配置成执行在计算机存储设备上编码的方法的动作。

本说明书中所述的主题的特定实施方式可以被实施为实现以下优点中的一个或多个。本说明书中所述的技术可以用于识别客户端设备和/或在客户端设备上执行的应用中的错误(例如,软件错误、程序错误、缺陷等)/其上的恶意活动。为了识别这样的错误/恶意活动,一些常规技术已经评价了从在客户端设备上执行的应用收集的上下文应用数据(例如,访问过的网站、访问时间、用于访问网站的浏览器或应用)。

然而,这样的常规解决方案不如本说明书中所述的技术那样鲁棒。这是因为在本说明书中所述的技术利用设备可信任度和应用真实性确定来增强基于上下文应用数据的错误/恶意活动检测。例如,在本说明书中所述的设备可信任度和应用真实性分析可以确定某些活动正在植根的移动设备上运行的修改后的浏览器(或其他模拟浏览器的应用)上执行。作为另一示例,本说明书中所述的设备可信任度和应用真实性分析可以确定某些活动正在修改后的浏览器上执行,修改后的浏览器正在仿真器中执行。在这些示例中,本文所述的技术将识别出的客户端设备视为不可信任的,将应用(在这种情况下为浏览器)视为不真实的,这继而可以强有力地指示应用有错误(甚至可能受到损害)。因此,这些技术相对于不考虑设备可信任度或应用真实性的常规系统提供了改进。

此外,本说明书中所述的创新还利用隐私保护技术来验证客户端设备和/或应用的可信任度/真实性,并确定与应用的交互是否指示应用中的错误。在一些常规系统中,脚本收集上下文应用数据(例如,访问过的网站、访问时间、用于访问网站的浏览器或应用),该数据可以用于识别应用错误。在其他常规系统中,可以汇总用户在多个不同内容页面、内容平台和应用之间的历史交互,以识别应用错误。然而,常规系统中的这样的数据收集还可能用于用户指纹识别,即,用于聚集应用/设备的用户专用的数据并监视用户的活动。

相反,本说明书中所述的技术使得能够证实客户端设备和/或应用的可信任度/真实性,并确定与应用的交互是否指示应用中的错误,同时防止用户指纹识别,由此提高了隐私性。在一些实施方式中,本说明书中所述的技术通过利用其中信任评估服务器(或服务器实例)证实设备和应用的真实性/可信任度而另一应用错误检测服务器(或服务器实例)基于上下文应用数据识别错误的分叉架构来实现这样的改进私密性。这样的分叉架构限制了与客户端设备外部或与客户端设备分离的实体共享的用户/设备信息量。例如,执行设备可信任度和应用真实性评估所需的数据仅被提供给信任评估服务器,而不提供给应用错误检测服务器。类似地,执行应用错误检测所需的数据仅被提供给应用错误检测服务器,而不提供给信任评估服务器。如本说明书中进一步所述的,通过使用盲化签名来实现实体之间的这种信息屏蔽。

因此,所公开的技术在保护敏感的用户信息(例如,上下文应用数据)和确保用户隐私方面是有利的,因为该信息不能被客户端设备外部的任何实体链接到关于应用的数字证书的相应数据以及设备可信任度数据。这是因为信任评估服务器没有访问上下文应用数据的权限,并且应用错误检测服务器没有访问有关应用的数字证书的数据和设备可信任度数据的权限。这也防止了服务器之间的任何串通尝试和学习有关用户的信息(例如,通过将上下文应用数据与有关应用的数字证书的数据和设备可信任度数据进行匹配),因此,在识别客户端设备和/或设备的相关联应用中的错误的过程期间保护了用户信息。

本说明书中描述的主题的一个或多个实施例的细节在附图和以下描述中阐述。根据说明书、附图和权利要求书,本主题的其他特征、方面和优点将变得显而易见。

附图说明

图1是数字内容被分发到客户端设备并呈现在客户端设备上的示例环境的框图。

图2是图示在检测在客户端设备上执行的应用中的错误时在图1中所引用的各种实体的示例操作和交互的泳道图。

图3是用于检测在客户端设备上执行的应用中的错误的示例过程的流程图。

图4是可用于执行所描述的操作的示例计算机系统的框图。

具体实施方式

本说明书主要涉及用于在不损害客户端设备的用户隐私的情况下,在客户端设备和/或其相关联的应用中(相对于常规系统)进行更鲁棒的错误检测的技术。

如在整个说明书中所述的,改进的错误检测技术使用其中一个系统/服务器/服务器实例执行设备和应用的可信任度/真实性评估(例如,图1中所示的信任评估服务器)而第二系统/服务器/服务器实例基于上下文应用数据来检测应用和/或设备中的错误(例如,图1中所示的应用错误检测服务器)的分叉架构(如本说明书中进一步所述的)。通过使用这样的架构并在被提供给这些系统/服务器/服务器实例的某些数据上应用盲化(blind)签名,与任何一个服务器/系统/实例共享最少的用户/设备信息(例如,仅执行该系统/服务器/服务器实例的操作所需的信息)。这具有防止设备和应用可信任度/真实性评估所需的数据被(客户端设备外部的)外部实体与上下文应用数据匹配的优点。因此,这防止了任何外部实体由于匹配而学习关于用户的信息,由此提供了改善的用户隐私。

下面总结并在整个说明书中详细地描述应用错误检测服务器、信任评估服务器和客户端设备在检测应用和/或客户端设备中的错误时的操作/交互。

客户端设备首先获得数据集,包括(1)上下文应用数据,其表示在应用内的提供内容并与所述内容交互的上下文(例如,用户浏览历史,当前网页/访问过的网站,鼠标移动,用户与当前域的交互,或脚本可以从应用收集的任何信号,用户与应用中显示的内容的交互等),(2)关于应用的数字证书的数据(例如,应用的应用包(APK)的数字摘要或加密哈希),以及(3)设备可信任度数据,其包括可以用于评估客户端设备的可信任度的数据(例如,所使用的设备的类型,设备的操作系统等)。应用(或操作系统/受信任的应用)对上下文应用数据进行盲化,并将该盲化数据与设备可信任度数据和有关数字证书的数据一起发送到信任评估服务器。

基于接收到的设备可信任度数据和关于数字证书的数据,信任评估服务器确定设备是否可信任以及应用是否是真实的(即,应用是官方版本和/或是已知的、受信任的应用,例如已经扫描过安全问题,并且被认为没有任何恶意软件或病毒(或其他安全问题))。

因为上下文应用数据是盲化的,所以信任评估服务器无法访问或解密该数据(即使它是从应用接收到该数据的)。信任评估服务器对盲化上下文应用数据进行数字签名,并将该数字签名以及指定设备是否可信任以及应用是否是真实的指示提供给应用(或操作系统/受信任的应用)。

在从信任评估服务器接收到数据之后,应用(或操作系统/受信任的应用)证实数字签名,以确保信任评估服务器提供的数据(即,盲化签名)未被修改,或者是未被破坏或伪造。一旦被证实,应用(或操作系统/受信任的应用)就对上下文应用数据进行解盲(unblind),并将解盲的上下文应用数据与应用先前发送给信任评估服务器的上下文应用数据进行比较。如果基于该比较找到匹配,则应用(或操作系统/受信任的应用)将(来自信任评估服务器的)数字签名、解盲的应用数据以及有关设备和应用的可信任度/真实性的指示提供给应用错误检测服务器。由于仅关于设备和应用的可信任度/真实性的指示(而不是设备可信任度数据和关于应用的数字证书的数据)被提供给应用错误检测服务器,所以该服务器永远不会参与设备可信任度数据或关于应用的数字证书的数据(这进一步保护了用户/设备的隐私)。由于所采用的盲化签名方案,因此信任评估服务器也不参与上下文应用数据,这进一步保护了用户/设备的隐私。

在从应用(或操作系统/受信任的应用)接收到数据后,应用错误检测服务器证实接收到的数字签名。一旦证实,应用错误检测系统就使用上下文应用数据以及有关设备和应用的可信任度/真实性的指示,以确定应用和/或客户端设备中是否存在错误。应用错误检测系统将其有关错误存在(或不存在)的确定提供给内容平台和/或客户端设备,这进而可以确定是否限制,约束或允许应用与客户端设备/或内容平台之间的继续交互。

下面参考图1至图4描述这些特征和附加特征。

图1是其中数字内容被分配到客户端设备并呈现在客户端设备上的示例环境的方框图。示例环境100包括网络120,诸如局域网(LAN)、广域网(WAN)、因特网或其组合。网络120连接客户端设备102、内容平台150、应用错误检测服务器140以及信任评估服务器130。示例环境100可以包括许多不同的客户端设备102、内容平台150、应用错误检测服务器140以及信任评估服务器130。

内容平台150是使得能够分配内容的计算平台。示例内容平台150包括搜索引擎、社交媒体平台、新平台、数据汇总器平台或其他内容共享平台。每个内容平台150可以由内容平台服务提供商操作。内容平台150可以发布其自己的内容并使得其自己的内容在平台上可用。例如,内容平台150可以是新闻平台,其发布其自己的新闻文章。内容平台150还可以呈现由一个或多个内容源/提供商提供的内容。在以上示例中,新闻平台还可以呈现由不同作者创建并由一个或多个内容源提供的内容。作为另一示例,内容平台150可以是数据汇总器平台,其不发布其自己的任何内容,而是汇总并呈现由不同新闻网站(即,内容源/提供商)提供的新闻文章。

客户端设备102是能够通过网络120请求和接收内容的电子设备。示例客户端设备102包括个人计算机、移动通信设备、数字助理设备、可穿戴设备、智能家居设备和可以通过网络120发送和接收数据的其他设备。

客户端设备102通常包括一个或多个用户应用(例如,应用104),诸如Web浏览器或本机应用,以便于通过网络120发送和接收内容。在客户端设备102处呈现的内容示例包括网页、文字处理文档,便携式文档格式(PDF)文档、图像、视频以及搜索结果页面和数字广告。

当客户端设备102访问由内容平台150在应用(例如,应用104,其可以是浏览器或本机应用)内提供的内容页面时,内容页面上的脚本或客户端应用104中的本机代码请求来自一个或多个内容源的内容。响应于对内容的请求,一个或多个内容源可以提供可以被提供以在应用104内显示的内容。

如下文概述并参考图2和3更详细地所述的,客户端设备102的一个或多个组件(诸如操作系统106、受信任的应用108以及设备可信任度客户端110)可以与信任评估服务器130和应用错误检测服务器140协作工作,以识别应用104中的错误。下面对这些组件的结构和操作进行概述,并参考图2更详细地描述。

客户端设备102包括操作系统106,操作系统106主要负责管理设备的硬件和软件资源。客户端设备102还包括一个或多个非临时性存储设备,以基于特定实施方式、应用和/或使用情况临时或永久地存储数据。

客户端设备102包括受信任的应用108。本说明书中使用的“受信任的应用108”是在客户端设备102上的安全环境内操作并执行某些核心设备服务(类似于由操作系统中的特权/内核代码执行的设备服务)的应用。在一些实施方式中,受信任的应用108可以是操作系统106或web浏览器的一部分,或者可以由操作系统分销商(或web浏览器分销商)实现和/或发布。在一些实施方式中,操作系统106可以是开源操作系统,而受信任的应用108作为私有/封闭源操作系统来操作。在一些实施方式中,可以将受信任的应用108从客户端102排除或移除,在这种情况下,受信任的应用108的操作可以由操作系统106执行。

受信任的应用108(或操作系统106)可以收集应用(例如,Web浏览器)的应用包(APK)证书,并计算其数字摘要(是通常通过将哈希函数应用于证书的一个或多个字段来生成的证书的唯一标识符)。该数字摘要可以用于评估应用是否是真实的/可信任的。类似地,受信任的应用108可以计算应用包(APK)的加密哈希。APK加密哈希结果可以用于评估应用是否是真实的/可信任的。

客户端设备102包括设备可信任度客户端110。当被操作系统106和/或可信任的应用108调用时,设备可信任度客户端110单独或与操作系统106协作从客户端设备102的环境收集信号。设备可信任度客户端110收集的信号的示例包括但不限于设备的类型、设备的型号、设备是否已被植根和/或越狱的证据、设备上运行的操作系统、设备何时最后一次被更新等。这些信号(统称为设备可信任度数据)可以用于确定客户端设备102的可信任度(如参考图2和3进一步所述的)。

环境100进一步包括信任评估服务器130,其使用由客户端设备102提供的数据来确定客户端设备102的可信任度和/或应用104的真实性(如参考图2和图3进一步所述的)。

环境100还包括应用错误检测服务器140,其检测应用104中的错误。在一些实施方式中,应用错误检测服务器140和信任评估服务器130可以是单独且不相关的服务器。在其他实施方式中,这些服务器可以是在与单个实体相关联的单个服务器或系统上运行的单独实例。如参考图2和图3所述的,应用错误检测服务器140基于从客户端设备102接收的上下文应用数据以及由信任评估服务器130提供/从信任评估服务器130接收的可信任度确定/指示来检测应用中的错误。本说明书中所使用的上下文应用数据包括表示在应用内的提供内容并与所述内容交互的上下文的数据。示例上下文应用数据项包括但不限于在应用中访问的网站名称、访问网站的时间、在执行应用期间用户与客户端设备的交互类型(例如,设备屏幕上的触摸、鼠标点击、滑动、滚动、键盘输入等)、浏览历史记录、安装的浏览器插件或字体,以及查看应用内提供的内容页面的各部分所花费的时间。当使用应用104(或在应用中执行的本机代码)访问内容平台150时,这样的上下文应用数据可以由脚本收集。在一些实施方式中,脚本将该数据作为不透明字节数组(或作为防止应用104修改该数据结构的另一种数据结构)提供给应用104。

如果应用错误检测服务器140基于从应用104接收的数据检测到应用104和/或客户端设备102中的错误,则它可以将检测到错误的消息传达给内容平台150,这继而可以限制或防止应用与内容平台150的交互和任何进一步动作。另外或可替选地,应用错误检测服务器140可以将检测到错误的信息传达给操作系统106和/或受信任的应用108,这继而可以限制或防止应用与内容平台150的交互。

下面参考图2进一步描述上述组件在检测应用104和/或客户端设备102中的错误时的操作。

图2是示出了在检测应用104和/或客户端设备102中的错误时图1中所提及的各种实体/组件的示例操作和其间的交互的泳道图。下面仅出于说明的目的描述过程200的操作。过程200的操作可以由任何适当的设备或系统(例如任何适当的数据处理装置)执行。过程200的操作还可以被实现为存储在非暂时性计算机可读介质/存储设备上的指令。指令的执行引起一个或多个数据处理装置执行过程200的操作。

在应用104内提供的内容页面上的脚本收集上下文应用数据(在202)。在一些实施方式中,当使用应用104(例如,web浏览器)经由(在客户端设备102上执行的)应用104访问由内容平台150提供的内容页面时,内容页面上的脚本(例如,通过调用应用104的应用编程接口(API))执行并收集上下文应用数据。上下文应用数据不需要限于在其中在应用中呈现内容的当前上下文;它也可以包括在其中在应用内呈现内容的先前上下文(例如,应用使用历史记录)。脚本可以将收集到的上下文应用数据打包成不透明字节数组(或另一适当的数据结构,其防止接收该数据的实体修改该数组中的数据)。

应用104获得上下文应用数据(在204)。在一些实施方式中,脚本向应用104提供(没有任何提示或响应于对来自应用104的上下文应用数据的请求)。因而,应用104从脚本获得上下文应用数据。

应用104对上下文应用数据进行盲化,以生成盲化上下文应用数据(在206)。在一些实施方式中,应用104可以使用IETF VOPRF标准来对打包的上下文应用数据(例如,不透明字节数组)进行盲化,以生成盲化上下文应用数据。在其他实施方式中,可以使用用于对数据结构进行盲化的其他已知标准/技术来生成盲化上下文应用数据。在一些实施方式中,应用104可以将盲化上下文应用数据提供给受信任的应用108或操作系统106(没有任何提示或响应于来自受信任的应用108或操作系统106的对这样的数据的请求)。在其他实施方式中,应用104可以将盲上下文应用数据提供给设备可信任度客户端110(没有任何提示或者响应于来自设备可信任度客户端110的对这样的数据的请求)。在一些实施方式中,操作系统106或受信任的应用108可以从应用接收上下文应用数据,然后对该数据进行盲化。

受信任的应用108获得有关应用的数字证书的数据(在208)。在一些实施方式中,受信任的应用108可以收集应用104的数字证书(例如,应用包(APK)证书)并计算证书的数字摘要,或生成APK加密哈希(或证书的另一适当的唯一标识符)。计算出的数字摘要、APK加密哈希或证书的另一适当的唯一标识符构成有关应用104的数字证书的数据。受信任的应用108也可以获得数字证书的安装程序包的名称,从而通知将应用104如何安装在设备上(例如,是否旁加载)的。在一些实施方式中,代替受信任的应用108,操作系统106可以获得关于应用的数字证书的数据。在一些实施方式中,受信任的应用108(或操作系统106)向设备可信任度客户端提供盲化上下文数据和关于数字证书的数据(没有任何提示或响应于对来自应用104的这样的数据的请求)。

设备可信任度客户端110获得设备可信任度数据(在210),如参考图1所述的。可替选地,操作系统106可以代替设备可信任度客户端110获得设备可信任度数据。在一些实施方式中,设备可信任度客户端110将设备可信任度数据提供给受信任的应用108或操作系统106(没有任何提示或响应于来自受信任的应用108或操作系统106的对这样的数据的请求)。

在图2中将操作206至210示出为顺序地执行。尽管在一些实施方式中可能以这样的次序执行这些操作,但是在其他实施方式中也可以以不同的次序执行它们。可替选地,这些操作也可以并行执行。

在一些实施方式中,操作系统106、受信任的应用108或设备可信任度客户端110打包盲化上下文应用数据、关于数字证书的数据和设备可信任度数据,并将该打包的数据提供给信任评估服务器130。可替选地,应用104、受信任的应用108/操作系统106以及设备可信任度客户端110中的每一个可以单独地将盲化上下文应用数据、关于数字证书的数据以及设备可信度数据分别提供给信任评估服务器130。

信任评估服务器130基于接收到的数据(即,盲化上下文应用数据,关于数字证书的数据以及设备可信任度数据)执行操作212至218,如下文进一步所述的。信任评估服务器130可以顺序地执行这些操作(尽管它们不必以下文所述的顺序执行),或者可以并行地执行这些操作。应注意,由于上下文应用数据是盲化的,因此信任评估服务器130无法解密它或将其链接回任何特定用户及其在应用104中的活动。因而,这样的盲化相对于与信任评估服务器130的交互保护了用户隐私。

信任评估服务器130证实了与应用104的数字证书(例如,APK哈希或数字摘要)有关的数据(在212)。信任评估服务器130包括存储关于真实的或官方发布的应用的数据的受信任的证书数据库(或另一适当的数据结构,诸如查找表)。在一些实施方式中,受信任的证书数据库包括应用数字证书(例如,APK证书)和相应的APK数字摘要或APK加密哈希(或数字证书的适当的唯一标识符)之间的映射。

信任评估服务器130通过将关于应用的数字证书(例如APK哈希或数字摘要)的数据与关于存储的已知的、真实的应用的数字证书的数据进行比较,来确定应用104是否是真实的。在一些实施方式中,信任评估服务器130将应用104的数字证书(从应用104接收到的)的数字摘要或APK加密哈希(或数字证书的另一适当的唯一标识符),与存储在受信任的证书数据库中的数字摘要/APK加密哈希(或数字证书的另一适当的唯一标识符)进行比较/查找。如果基于该比较找到匹配,则信任评估服务器130确定应用104是真实的(即,它是应用的官方版本和/或是已知的、受信任的应用)。然而,如果基于比较未找到匹配,则信任评估服务器130确定应用104不是真实的(即,它不是应用的官方版本和/或不是已知的、受信任的应用)。在一些实施方式中,信任评估服务器130可以使用一位值来指示应用104是否真实(例如,如果应用104是真实的,则为1;如果应用104不是真实的,则为0)。

信任评估服务器130基于设备可信任度数据来确定设备可信任度判定(在214和216)。在一些实施方式中,信任评估服务器130可以包括基于规则的引擎,其使用规则集来分析设备可信任度数据以确定客户端设备102是否是可信任的。可替选地,信任评估服务器130可以包括机器学习模型(受监督或不受监督的机器学习模型、或另一适当的统计模型),其接受客户端设备102的设备可信任度数据并输出客户端设备102的可信任度。在一些实施方式中,机器学习模型可以是使用训练数据训练的受监督模型,训练数据包括多个设备的设备可信任度数据以及多个设备中的每一个的已知的、相应的设备可信任度。

在一些实施方式中,(由基于规则的引擎、模型或其他适当的装置输出的)设备可信任度判定可以是两位值。两位值的第一位指示客户端设备是否已经被不适当地修改或改变(例如,1表示客户端设备未被修改/改变,而0表示客户端设备已被修改/改变)。两位值的第二位指示客户端设备的配置文件与先前已证实的设备的配置文件匹配(例如,1表示客户端设备已知,而2表示客户端设备未知)。可替选地,设备可信任度判定可以简单地是一位值,其提供关于客户端设备是否可信任的指示。本领域技术人员应理解,可以使用附加位来编码有关设备的确定的可信任度的附加信息。

信任评估服务器130对由应用104提供的上下文应用数据进行盲化签名(在218)。在一些实施方式中,信任评估服务器130使用IETF VOPRF标准(或另一适当的盲化签名标准或技术)对由应用104提供的上下文应用数据进行盲化签名。

在一些实施方式中,信任评估服务器130可以通过对盲化上下文应用数据进行签名来指示客户端设备是可信任的和/或应用是真实的。相反,信任评估服务器可以通过简单地不对盲化上下文应用数据进行签名来指示设备是不可信任的或应用是不真实的。这样的实施方式消除了对提供附加数据位的需要,附加数据位对由信任评估服务器130确定的设备的可信任度和/或应用104的真实性的信息进行编码。这是因为仅在盲化上下文数据上存在数字签名指示设备的可信任度和应用104的真实性。可替选地,附加位仍可以用于提供有关设备的可信任度和应用104的真实性的附加细粒度细节。

为了说明的目的,下文对图2说明假定信任评估服务器130不管设备可信任度判定如何都对上下文应用数据进行盲化签名,并且单独地提供指示客户端设备102的可信任度和/或应用104的真实性的一个或多个位。

信任评估服务器130向应用104提供——并且应用104从信任评估服务器130接收——盲化签名的上下文应用数据,以及指定客户端设备是否是可信任的指示(第一指示)和指定应用是否是已知的、受信任的应用(或者换句话说,应用是否是真实的)的另一指示(第二指示)。在一些实施方式中,信任评估服务器130在数组(或另一适当的数据结构)中一起提供该数据,其中,数组的一个位置存储盲化签名的上下文应用数据,数组的另一位置存储指定客户端设备是否是可信任的指示,并且数组的另一位置存储指定应用是否是已知的、受信任的应用的指示。在一些实施方式中,信任评估服务器130基于设备的可信任度和/或应用的真实性的不同级别,使用不同的签名密钥对上下文应用数据进行盲化签名。在这样的实施方式中,信任评估服务器130通过以这样的方式创建数字签名来传递第一指示和第二指示,即,使得签名由一些可能的密钥之一来验证。例如,如果第一指示和第二指示分别具有两种可能性,则存在第一指示和第二指示的四种可能组合。在这样的情况下,信任评估服务器130可以使用4个可能的密钥之一来生成要验证的签名。

在从信任评估服务器130接收到数据之后,应用104证实盲化签名(在220)。如果应用104确定盲化签名不是由信任评估服务器130签名的有效签名,则应用104确定从信任评估服务器接收的数据已经被破坏,因而是不可靠的。在这种情况下,错误检测处理停止。在这种情况下,应用错误检测服务器140确定应用104和/或客户端设备102具有错误。另一方面,如果应用104确定盲化签名是由信任评估服务器130签名的有效签名,则应用104对数据进行解盲(在222)。

如果应用104确定解盲的上下文应用数据(也称为第一数据项)与先前提供给信任评估服务器130的上下文应用数据不匹配,则应用104确定从信任评估服务器130接收的数据有错误或已经被以其他方式破坏。在这种情况下,过程200的错误检测处理停止。另一方面,如果应用104确定被解盲的上下文应用数据与先前提供给信任评估服务器130的上下文应用数据匹配,则处理进入操作224(下文描述)。

应用104向应用错误检测服务器140提供第一数据项上的数字签名、第一指示、第二指示以及在操作222处被解盲的第一数据项(在224)。在提供该数据时,应用104请求应用错误检测服务器140检测应用104和/或客户端设备102内的错误。应注意,通过仅提供第一指示和第二指示,应用错误检测服务器140不接收先前提供给信任评估服务器130的任何设备可信任度数据,因而在与应用错误检测服务器130的交互中保护了设备可信任度数据的隐私。作为代替,仅以第一指示和第二指示的形式向应用错误检测服务器130提供最少的设备和应用可信任度/真实性信息。由于第一指示和第二指示未提供设备或应用唯一的任何信息,因此,应用错误检测服务器无法学习在这些指示之外的与应用或客户端设备有关的任何具体细节。这意味着,即使应用错误检测服务器和信任评估服务器合谋试图学习有关用户的信息,这也是不可能的,因为服务器针对任何给定用户将不能将(错误检测服务器已知的)上下文应用数据匹配到(信任评估服务器已知的)关于应用的数字证书的数据和设备可信任度数据。

在其中受信任的应用108或操作系统106对上下文应用数据进行盲化处理的实施方式中,信任评估服务器130向受信任的应用108/操作系统106提供盲化签名的上下文应用数据,以及指定客户端设备是可信任的指示(第一指示)和指定应用是已知的、受信任的应用(或者换句话说,如果应用是真实的)的另一指示(第二指示)。在这样的实施方式中,受信任的应用108/操作系统106证实盲化签名,对盲化数据进行解盲,并且将被解盲的数据与上下文应用数据进行比较。在这样的实施方式中,受信任的应用108/操作系统106向应用错误检测服务器140提供第一数据项上的数字签名、第一指示、第二指示和在操作222处被解盲的第一数据项。

在从应用104(或受信任的应用108/操作系统106)接收到数据后,应用错误检测服务器140验证盲化签名(在226)。在其中使用IETF VOPRF盲化签名标准的实施方式中,应用错误检测服务器140与信任评估服务器130进行交互以证实签名。这是因为VOPRF盲化签名不可公开证实。在这样的实施方式中,应用错误检测服务器140与信任评估服务器130通信以证实盲化签名。如果信任评估服务器130确定签名有效,则其提供指定数字签名有效的指示。另一方面,如果信任评估服务器130确定签名无效,则其提供指定数字签名无效的指示。在一些实施方式中,代替VOPRF标准,可以使用可公开证实的数字签名算法,在这种情况下,应用错误检测服务器140本身可以证实数字签名是否有效(而不必与信任评估服务器130(即生成数字签名的实体)联系)。

如果应用错误检测服务器140确定盲化签名不是由信任评估服务器130签名的有效签名,则应用错误检测服务器140确定从应用104接收的数据已经被破坏,因而是不可靠的。在这种情况下,应用错误检测服务器140确定应用104和/或客户端设备102具有错误。另一方面,如果应用错误检测服务器140确定盲化签名是由信任评估服务器130签名的有效签名,则处理继续到操作228(如下所述)。

应用错误检测服务器140基于第一指示、第二指示和上下文应用数据来确定应用104是否具有任何错误(在228)。在一些实施方式中,应用错误评估服务器140可以包括基于规则的引擎,该引擎使用规则集来处理从应用104接收的数据,以确定在应用104中是否存在任何错误。可替选地,应用错误评估服务器140可以包括机器学习模型(例如,受监督或不受监督的机器学习模型,或另一适当的统计模型),该模型接受在操作224从应用104接收的数据,并输出指定应用是否具有任何错误的指示(即,第三指示)。在一些实施方式中,机器学习模型可以是使用训练数据训练的受监督模型,该训练数据包括第一指示、第二指示和多个设备中的每一个设备的上下文应用数据,以及指定在应用中是否存在错误的已知的相应的指示。

在以上段落中所述的任何实施方式中,关于客户端设备102的可信任度和应用104的真实性的数据可以考虑到应用104和/或客户端设备102中存在错误的最终确定。例如,如果第一指示和第二指示分别指定客户端设备102是可信任的并且应用104是真实的,则应用错误检测服务器140可以降低在应用104中存在错误的可能性。作为另一示例,如果第一指示和第二指示分别指定客户端设备104是不可信任的并且应用104是不真实的,则应用错误检测服务器140可以提高在应用104中存在错误的可能性。结果,应用错误检测服务器140的错误检测比在应用错误确定时不考虑设备可信任度和应用真实性的常规技术更鲁棒。

总之,相对于常规系统,图1的各个组件的上述操作以及它们之间的交互提供了应用中存在错误的更鲁棒指示,同时保护了用户的隐私(通过向应用错误检测服务器140和信任评估服务器130暴露最少信息,因而最小化或可能甚至消除任何用户指纹)。

图3是用于检测在客户端设备102上执行的应用104中的错误的示例过程300的流程图。下面将过程300的操作描述为由图1中所述和所示的系统的组件执行。下面仅出于说明目的描述过程300的操作。过程300的操作可以由任何适当的设备或系统,例如,任何适当的数据处理装置执行。过程300的操作还可以被实现为存储在非暂时性计算机可读介质上的指令。指令的执行引起一个或多个数据处理装置执行过程300的操作。

(在客户端设备102上执行的)应用104获得上下文应用数据(在302)。如参考图1和图2所述的,当使用应用104来访问由内容平台150提供的内容页面时,脚本执行并收集上下文应用数据,上下文应用数据表示在应用内的提供内容并与所述内容交互的上下文。

应用104对上下文应用数据进行盲化,以生成盲化上下文应用数据(在304)。如参考图1和图2所述,应用104根据IETF VOPRF标准(或另一适当的标准或盲化签名技术)对上下文应用数据(可以打包成不透明的字节数组)进行盲化,以生成盲化上下文应用数据。

客户端设备102上的操作系统106或受信任的应用108获得有关应用的数字证书的数据和设备的可信任度数据(在306)。如参考图1和图2所述的,客户端设备102的受信任的应用108(或操作系统106)获得关于应用104的数字证书的数据,该数据可以包括应用的APK证书、数字摘要、与APK证书或APK二进制本身相对应的APK加密哈希(或另一适当的唯一标识符)、以及证书的安装程序包名称。还如参考图1和图2所述的,客户端设备102的设备可信任度客户端110(或操作系统106)获得设备可信任度数据,设备可信任度数据包括可用于评估客户端设备的可信任度的数据(例如,设备类型、设备上安装的操作系统等)。

信任评估服务器130被提供了盲化上下文应用数据、关于数字证书(例如,APK哈希)的数据和设备可信任度数据(在308)。如参考图1和图2所述的,受信任的应用108、设备可信任度客户端110或操作系统106将关于数字证书(或APK哈希)的数据与设备可信任度数据以及盲化上下文应用数据(其在操作304被生成)一起打包,并将该数据提供给信任评估服务器130。

应用104从信任评估服务器130接收数据集(在310)。如参考图1和图2所述的,信任评估服务器130使用关于数字证书(例如,APK摘要或APK哈希)的数据和(在操作308接收到的)设备可信任度数据来确定客户端设备102是否是可信任的,以及应用是否是已知的、受信任的应用。另外,信任评估服务器130还对第一数据项进行数字签名,第一数据项可以是盲化上下文应用数据(也参考图1和图2进行了描述)。信任评估服务器130向应用104提供——并且应用104从信任评估服务器130接收——数据集,其包括(1)指定客户端设备是可信任的第一指示、(2)指定应用是已知的、受信任的应用的第二指示、以及(3)在第一数据项上的信任评估服务器的数字签名(如参考图1和2进一步所述的)。

应用104验证数据集中的第一数据项上的数字签名(在312)。如参考图1和图2所述的,应用104验证第一数据项上的数字签名是信任评估服务器130的有效签名。

响应于验证第一数据项上的数字签名,应用对第一数据项进行解盲,以获得解盲的第一数据项(在314)。在一些实施方式中,应用104对(在操作310从信任评估服务器130接收到的)数据集中包括的第一数据项进行解盲。

应用104确认解盲的第一数据项与在操作302处由应用获得的上下文应用数据匹配(在316)。如上文参考图2所述的,应用104将解盲的第一数据项与在操作302处获得的上下文应用数据进行比较。在找到匹配之后,应用104确认解盲的第一数据项实际上是先前被发送给信任评估服务器130的上下文应用数据。

响应于确认解盲的第一数据项与上下文应用数据匹配,应用向应用错误检测服务器140提供第一数据项上的数字签名、第一指示、第二指示以及解盲的第一数据项(在318)。

应用104从应用错误检测服务器140接收指定应用没有任何错误的第三指示(在320)。如参考图1和图2所述的,应用错误检测服务器140在操作318中使用其从应用104接收的数据来确定应用104和/或客户端设备102是否具有任何错误。如果应用错误检测服务器140确定应用104和/或客户端设备102具有错误,则它向应用104提供(并且应用104接收)指定应用(和/或客户端设备)有错误的指示。另一方面,如果应用错误检测服务器140确定应用没有错误,则它向应用104提供(并且应用104接收)指定应用(和/或客户端设备102)没有错误的指示。

在一些可替选的实施方式中,通过不将盲化上下文应用数据发送到信任评估服务器,可以修改图3的操作以减少一些潜在延迟。除了在下文描述的一些操作差异之外,这样的实施方式具有与参考图3所述相同的操作。为了简洁起见,下面在这些可替选实施方式的说明中仅描述操作差异;然而,应注意,在这些实施方式中使用了图3的其余操作及其对应的说明(并且为避免任何疑问,那些操作通过引用并入本文)。

在这样的可替选实施方式中,应用104仍然获得上下文应用数据,但是它不会对该数据进行盲化。作为代替,应用104生成随机数据集(例如,随机数),并对该随机数据集进行盲化,以生成盲化随机数据集(它替代了上文图3的说明中的操作304)。该盲化随机数据集被提供给信任评估服务器130(而不是如操作306所述的那样提供盲化上下文应用数据)。此外,信任评估服务器130在盲化随机数据集上生成数字签名(而不是如参考上文图3说明的操作310那样,在盲化上下文应用数据上生成数字签名)。应用104对该盲化数据进行解盲,以确认其与先前生成的随机数据集相同。在确认这一点后,应用将上下文应用数据以及数字签名、第一指示和第二指示一起提供(与图3中的操作318一样),所有这些数据都由应用错误检测服务器140用来确定应用104(和/或客户端设备102)是否具有任何错误(与图3中的操作320一样)。

图4是可用于执行上述操作的示例计算机系统400的框图。系统400包括处理器410、存储器420、存储设备430和输入/输出设备440。组件410、420、430和440中的每一个均可例如使用系统总线450来互连。处理器410能够处理在系统400内执行的指令。在一些实施方式中,处理器410是单线程处理器。在另一实施方式中,处理器410是多线程处理器。处理器410能够处理存储在存储器420中或在存储设备430上的指令。

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

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

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

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

本说明书中描述的主题和操作的实施例可用数字电子电路或者用计算机软件、固件或硬件包括本说明书中公开的结构及其结构等同物或者用它们中的一个或多个的组合加以实现。本说明书中描述的主题的实施例可作为编码在计算机存储介质(或多个介质)上以供由数据处理装置执行或者控制数据处理装置的操作的一个或多个计算机程序即计算机程序指令的一个或多个模块被实现。替换地或此外,可将程序指令编码在人工生成的传播信号上,所述传播信号例如为机器生成的电、光或电磁信号,其被生成来对信息进行编码以便传输到适合的接收器装置以供由数据处理装置执行。计算机存储介质可以是或者被包括在计算机可读存储设备、计算机可读存储基板、随机或串行存取存储器阵列或设备或它们中的一个或多个的组合中。此外,虽然计算机存储介质不是传播信号,但是计算机存储介质可以是编码在人工生成的传播信号中的计算机程序指令的源或目的地。计算机存储介质也可以是或者被包括在一个或多个单独的物理组件或介质(例如,多个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 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号