一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

匿名事件证明的制作方法

2022-04-25 05:14:48 来源:中国专利 TAG:

匿名事件证明


背景技术:

1.客户端设备通过公共网络(诸如互联网)传输请求和其他数据。这些通信可能被其他方(诸如截取通信的各方和/或接收通信并将其转发给其他方的中介)更改。
2.客户端设备也容易受到恶意攻击,诸如可以在用户不知情或未授权的情况下发送欺诈性请求的病毒和恶意软件。此外,其他方可以模仿客户端设备来发送看似源自客户端设备、但实际上来自其他方的设备的请求。
3.各种认证技术可以用于防止欺诈和滥用并且保护通过公共网络的事务的完整性。同时,这些认证技术可能涉及隐私问题。例如,客户端设备的用户可能不希望共享可以用于跟踪客户端设备或这些客户端设备的用户的信息(诸如稳定设备标识符),并且数据提供方可能在防止他们接收或处理这样的信息的隐私保护标准下进行操作。


技术实现要素:

4.本说明书描述了与认证技术相关的技术,其用于保护从客户端设备传输的通信的完整性,同时避免使用可以用于跟踪客户端设备或其用户的稳定设备标识符。
5.一般来说,本说明书中描述的主题的第一创新方面可以体现在计算机实施的方法中,该方法包括:由设备完整性计算系统从客户端设备接收对n个设备完整性元素的请求,该请求包括客户端设备的设备级欺诈检测信号以及n个设备完整性元素中的每一个的公钥数据,所述公钥数据包括以下各项中的至少一个:(i)设备完整性元素的相应公钥或(ii)设备完整性元素的相应公钥的派生物;由设备完整性计算系统至少基于设备级欺诈检测信号来确定客户端设备的可信度判定;对于n个设备完整性元素中的每一个,由设备完整性计算系统使用至少该设备完整性元素的公钥数据来生成设备完整性元素,其中设备完整性元素包括基于含有该设备完整性元素的公钥数据的内容集而生成的数字签名;以及由设备完整性计算系统将n个设备完整性元素传输到客户端设备。n可以是例如大于或等于2的整数。该方面的其他实施方式包括相对应的装置、系统和计算机程序,该计算机程序被配置为执行方法的各方面并且被编码在计算机存储设备上。
6.在一些方面,每个设备完整性元素包括相应的设备完整性令牌,设备完整性令牌包括设备完整性元素的内容集,其中设备完整性元素的内容集包括指示确定可信度判定的时间的时间戳以及设备完整性元素的公钥数据;以及生成每个设备完整性元素包括使用设备完整性计算系统的私钥对设备完整性元素的内容集进行数字签名。设备完整性元素的内容集还可以包括可信度判定。
7.在一些方面,生成每个设备完整性元素包括使用盲签名方案生成设备完整性元素的公钥数据的盲签名,其中设备完整性元素是盲签名。该方法还可以包括为客户端设备发布与m个可信度级别相对应的m个盲签名核验密钥,并且保留与m个核验密钥相对应的m个相应的签名密钥。
8.在一些方面,确定可信度判定可以包括向客户端设备指派从m个可信度级别中选择的可信度级别。例如,每个设备完整性元素的公钥数据可以包括设备完整性元素的公钥
的派生物,并且设备完整性元素的公钥的派生物可以包括使用盲签名方案盲化的盲化公钥。设备完整性元素的公钥的派生物可以包括设备完整性元素的公钥的盲化截断密码散列。
9.在一些方面,盲签名方案包括可私下核验的盲签名方案。例如,可私下核验的盲签名方案可以是ietf voprf盲签名方案。
10.在其他方面,盲签名方案包括可公开核验的盲签名方案。例如,可公开核验的盲签名方案可以是盲rsa签名方案。
11.本说明书中描述的主题的另一创新方面可以体现在由客户端设备执行的方法中,该方法包括:向设备完整性计算系统传输对匿名证书的第一请求,该请求包括客户端设备的设备级欺诈检测信号;从设备完整性计算系统接收匿名证书,其中匿名证书对应于至少基于设备级欺诈检测信号从设备可信度组集合中选择的给定签名组,其中每个设备可信度组对应于相应的可信度类别;创建匿名证明令牌,包括(i)含有第二请求和指示匿名证明令牌的创建时间的证明令牌创建时间戳的数据集,以及(ii)使用具有匿名证书的组签名方案生成的数据集的数字签名;以及将证明令牌传输到接收方。该方面的其他实施方式包括相对应的装置、系统和计算机程序,该计算机程序被配置为执行该方法的方面并且被编码在计算机存储设备上。
12.在一些方面,组签名方案是直接匿名证明(direct anonymous attestation,daa)签名方案。daa签名方案可以是椭圆曲线密码(elliptic curve cryptography,ecc)daa签名方案。ecc daa签名方案可以是具有barreto-naehrig曲线的ecc daa签名方案。
13.在一些方面,匿名证书是不可撤销的匿名证书,其指示客户端设备已被不可撤销地指派给给定签名组。
14.在一些方面,设备可信度组集合至少包括第一可信度组和第二可信度组,第一可信度组包括具有第一程度的可信度的设备作为成员,第二可信度组包括具有小于第一程度的可信度的第二程度的可信度的设备作为成员,其中给定组是第一组或第二签名组之一。第一可信度组和第二可信度组可以具有由设备完整性计算系统发布的相对应的第一组公钥和第二组公钥。
15.在一些方面,该方法还包括将匿名证书存储在客户端设备上的安全私有密钥库中。
16.在一些方面,令牌创建时间戳的时间分辨率小于约1毫秒或小于约1微秒。
17.在一些方面,该方法还包括:接收指示证明令牌数量限制的信息;以及在创建之前,核验创建不会超过证明令牌数量限制。证明令牌数量限制可以是对在选定时间范围内有资格从客户端设备发送到选定目的地域的匿名令牌的数量的限制;或者证明令牌数量限制可以是对有资格在选定时间范围内从客户端设备上的一个或多个选定应用发送到选定目的地域的匿名令牌的数量的限制;或者证明令牌数量限制可以是对在选定时间范围内有资格从客户端设备发送到选定目的域内的选定端点的匿名令牌的数量的限制;或者证明令牌数量限制可以是对在选定时间范围内有资格从客户端设备上的一个或多个选定应用发送到选定目的域内的选定端点的匿名令牌的数量的限制;或其任意组合。
18.本说明书中描述的主题可以在特定实施例中实施,以便实现以下优点中的一个或多个。
19.使用证明令牌来传输来自客户端设备的数据提供了客户端设备与计算机或其他实体的其他设备之间的安全通信信道。将包括在证明令牌中的数据的数字签名包括在证明令牌中使得实体能够核验证明令牌中的数据在证明令牌被创建之后没有被改变。此外,在证明令牌中包括令牌创建时间使得接收方能够确定请求是新的还是重放攻击的潜在部分。
20.证明令牌还可以包括指示传输证明令牌的客户端设备的完整性的设备完整性令牌,这使得证明令牌的(多个)接收方能够核验数据来自可信客户端设备,而不是例如来自模仿器或被盗用的设备。设备完整性令牌可以由可信设备分析器(例如,第三方设备分析器)生成并进行数字签名,使得证明令牌的接收方可以核验客户端设备由可信设备分析器评估以及设备完整性令牌中的数据在由可信设备分析器创建之后没有被修改。
21.虽然证明令牌保护从客户端设备传输的通信的完整性,但是存在与证明令牌的使用相关联的潜在隐私问题。第一个隐私问题是,在多个证明令牌内重用相同的设备完整性令牌可能潜在地使得证明令牌接收方能够关联由相同的客户端设备传输的多个请求并且基于该关联来聚集用户数据。本文档中描述的技术可以通过使用多个设备完整性令牌来增强针对这种关联的隐私性,每个设备完整性令牌包括客户端设备的唯一公钥。例如,客户端设备可以生成一批n个公钥/私钥对,然后将n个公钥发送到第三方设备分析器以接收一批n个相对应的设备完整性令牌。然后客户端设备可以例如为每个请求使用新的设备完整性令牌;或者客户端设备可以在某个时间间隔内对所有请求使用相同的设备完整性令牌;或者客户端设备可以对源自客户端设备上的相同应用的所有请求使用相同的设备完整性令牌;或其某种组合。限制每个公钥的使用限制了接收方可以基于公钥来进行关联的请求的数量。使用这种批处理方法还通过处理更少请求减少了设备分析器的负担,减少了网络带宽的消耗,并且减少了在传输将会包括设备完整性令牌的请求时在客户端设备处的延迟——如果客户端设备每次需要设备完整性令牌时都发送对设备完整性令牌的请求,则会另外引入该延迟。
22.第二个隐私问题是,与设备分析器共享客户端设备的稳定公钥可能潜在地使得设备分析器能够跟踪客户端设备。例如,通过与设备分析器串通,多个不同的证明令牌的接收方可以得知设备分析器在来自相同设备的相同批次的请求中接收到那些证明令牌,且因此这种证明令牌的接收方可以关联由相同的客户端设备传输的多个请求并且基于该关联来聚集用户数据。本文档中描述的技术可以通过向设备分析器发送公钥的盲化版本而不是公钥的原始值来增强针对这种跟踪的隐私性。例如,客户端设备可以生成一批n个公钥-私钥对,盲化这n个公钥(或公钥的密码散列),然后将这n个盲化密钥发送到设备分析器;第三方设备分析器返回一批n个相对应的盲签名,而从不接收客户端设备公钥的原始值。
23.本公开的其他方面可以通过使用组签名方案而不是公钥签名方案来提供增强隐私性以防止被可信设备分析器和证明令牌接收方两者跟踪的优点。例如,第三方设备分析器可以将客户端设备指派给与客户端设备的可信度级别相对应的签名组,并且向客户端设备提供签名组的匿名证书。然后,客户端可以使用具有匿名证书的组签名方案对每个证明令牌进行签名,并且证明令牌接收方可以使用由第三方设备分析器发布的组公钥来验证匿名签名。使用这种方法减轻了客户端设备的资源创建许多公钥/私钥对的负担,并且减轻了设备分析器的资源为每个公钥创建设备完整性令牌的负担。这释放了相应的资源来执行其他功能,并且使得设备分析器能够使用释放的资源在更短时间内评估更多客户端设备。因
此,使用组签名方案提供了更高效的过程,因为减少了公钥/私钥对的生成。
24.下面参考附图描述前述主题的各种特征和优点。根据本文描述的主题和权利要求,附加的特征和优点是显而易见的。
附图说明
25.图1是数字组件系统分发数字组件的环境的框图。
26.图2是示出用于请求和接收一批n个设备完整性令牌的示例过程的流程图。
27.图3是示出了用于发送、接收和验证证明令牌的示例过程的流程图。
28.图4是示出了用于请求和接收一批n个被盲签名的设备完整性令牌的示例过程的流程图。
29.图5是示出用于发送、接收和验证被盲签名的证明令牌的示例过程的流程图。
30.图6是示出为签名组请求匿名私钥的示例过程的流程图。
31.图7是示出用于发送、接收和验证被匿名签名的证明令牌的示例过程的流程图。
32.图8是示出用于节流证明令牌以符合发布的令牌数量限制的示例过程的流程图。
33.图9是示例计算机系统的框图。
34.不同附图中相同的附图标记和名称指示相同的元素。
具体实施方式
35.一般来说,本文描述的系统和技术可以在客户端设备与其他实体之间提供安全通信信道,其他实体诸如是内容发布方、数字组件分发系统和数字组件提供方,它们创建并提供数字组件以供数字组件分发系统分发。客户端设备可以通过网络上的请求和其他数据传输来提供证明令牌,其他实体使用该证明令牌来验证请求的完整性和客户端设备的完整性。请求可以包括例如管理用户数据(例如,删除用户相关数据)的请求、对内容的请求和/或对与其他内容一起呈现的数字组件的请求。使用证明令牌保护通信信道确保欺诈性用户不能改变、删除或以其他方式访问用户数据,或改变请求的内容,或创建新请求,例如以欺骗数字组件分发系统和/或提供方。
36.在一些方法中,可以使用客户端设备的私钥对证明令牌进行数字签名。客户端设备可以保密地维护私钥。证明令牌可以包括与私钥相对应的公钥、有效载荷和设备完整性令牌等。设备完整性令牌可以包括指示客户端设备的完整性级别的判定,该判定由可信设备完整性系统(例如,与客户端设备的用户和证明令牌的接收方不同的实体所维护的第三方设备完整性系统)来确定。设备完整性令牌还可以包括客户端设备的公钥(或公钥的密码散列),以将设备完整性令牌绑定到客户端设备。
37.设备完整性系统可以使用设备完整性系统保持机密的私钥对设备完整性令牌进行数字签名。与该私钥相对应的公钥可以被提供给接收方,使得他们可以相信客户端设备已经由设备完整性系统(例如,通过使用公钥核验设备完整性令牌的数字签名)进行了评估。这种使用两对密钥的组合提供了安全通信信道,安全通信信道使得接收方能够验证客户端设备的完整性和从客户端设备接收的通信的完整性,并且将设备完整性令牌绑定到客户端设备,使得其他设备不能使用设备完整性令牌来伪造它们的完整性。
38.在一些方法中,设备完整性系统不接收公钥的原始数据以用于包括在设备完整性
令牌中。相反,客户端设备可以通过使用盲签名方案盲化公钥或其派生物来发送盲化公钥或公钥的盲化派生物(例如,公钥的盲化截断密码散列)。利用盲签名方案,设备完整性系统可以证明客户端设备的完整性,而无需接收客户端设备的公钥的原始值,从而通过降低经由公钥的潜在跟踪的风险增强了客户端设备或用户的隐私性。设备完整性系统可以发布接收方可以用来核验盲签名的盲签名核验密钥。
39.在其他方法中,可以使用组签名(group signature)方案,其中设备完整性系统作为组管理器。例如,设备完整性系统可以为m个可信度组发布m个组核验密钥,将客户端设备指派给m个可信度组之一,并且将匿名证书递送给客户端设备。客户端设备可以使用匿名证书对证明令牌匿名地签名,并且这些匿名签名可以由接收方使用发布的组核验密钥来核验。利用组签名方案,设备完整性系统和证明令牌的接收方都不需要接收客户端设备的公钥的原始值,从而通过降低经由公钥的潜在跟踪的风险进一步增强了客户端设备或用户的隐私性。
40.图1是在其中数字组件系统150分发数字组件129的环境100的框图。示例环境100包括数据通信网络105,诸如局域网(lan)、广域网(wan)、互联网、移动网络或其组合。网络105连接客户端设备110、发布方130、网站140、数字组件分发系统150和设备完整性系统170(也可以称为设备完整性计算系统)。示例环境100可以包括许多不同的客户端设备110、发布方130、网站140、数字组件分发系统150和设备完整性系统170。
41.网站140是与域名相关联并由一个或多个服务器托管的一个或多个资源145。示例网站是html格式的网页的集合,其可以包含文本、图像、多媒体内容和编程元素,诸如脚本。每个网站140由发布方130维护,发布方130是控制、管理和/或拥有网站140的实体。
42.资源145是可以通过网络105提供的任何数据。资源145由与资源145相关联的资源地址(例如,统一资源定位符(url))来标识。资源包括html页面、文字处理文档和可移植文档格式(pdf)文档、图像、视频和馈源,仅举几例。资源可以包括内容,诸如单词、短语、图像和声音,内容可以包括嵌入式信息(诸如超链接中的元信息)和/或嵌入式指令(诸如脚本)。
43.客户端设备110是能够通过网络105进行通信的电子设备。示例客户端设备110包括个人计算机、移动通信设备(例如,智能电话)、数字媒体播放器、智能扬声器、可穿戴设备(例如,智能手表)以及可以通过网络105发送和接收数据的其他设备。客户端设备110通常包括应用111,诸如包括网络浏览器和/或本地应用以便于通过网络105发送和接收数据。本地应用是为特定平台或特定设备开发的应用。发布方130可以开发本地应用并将其提供给客户端设备110。
44.一些资源145、应用页面或其他应用内容可以包括用于呈现具有资源145或应用页面的数字组件的数字组件槽。如贯穿本文档所使用的,短语“数字组件”是指数字内容或数字信息的分立单元(例如,视频剪辑、音频剪辑、多媒体剪辑、图像、文本或另一内容单元)。数字组件129可以作为单个文件或在文件集合中电子地存储在物理存储器设备中,并且数字组件可以采取视频文件、音频文件、多媒体文件、图像文件或文本文件的形式,并且包括广告信息,使得广告是一种类型的数字组件。例如,数字组件129可以是旨在补充由应用111呈现的网页、资源或应用页面的内容的内容。更具体地,数字组件129可以包括与资源内容相关的数字内容(例如,数字组件可以涉及与网页内容相同的主题或者相关主题)。因此,由数字组件分发系统150提供数字组件可以补充并且通常增强网页内容。
45.当应用111加载包括一个或多个数字组件槽的资源145或应用内容时,应用111(可以是网络浏览器)可以向数字组件分发系统150请求用于每个槽的数字组件129。数字组件分发系统150进而可以向数字组件提供方160请求数字组件。数字组件提供方160是提供数字组件以与资源145和/或其他内容一起呈现的实体。示例数字组件提供方是提供广告的广告商。
46.在一些情况下,数字组件分发系统150还可以向一个或多个数字组件伙伴152请求数字组件。数字组件伙伴152是响应于数字组件请求来代表数字组件提供方160选择数字组件的实体。
47.数字组件分发系统150可以基于各种标准为每个数字组件槽选择数字组件。例如,数字组件分发系统150可以基于与资源145或其他应用内容的相关性、数字组件的性能(例如,用户与数字组件的交互率)等,从接收自数字组件提供方160和/或数字组件伙伴152的数字组件中选择数字组件。数字组件分发系统150然后可以向客户端设备110提供(多个)选定数字组件,以用于与资源145或其他应用内容一起呈现。数字组件分发系统150可以将选定数字组件129传输到一个或多个客户端设备110,以供在客户端设备110上运行的应用111呈现。
48.当应用111通过网络105发送请求120时,应用111可以发送具有请求的证明令牌122。例如,如果应用111向数字组件分发系统150发送数字组件请求,则该请求可以包括证明令牌122。类似地,如果应用111向另一实体(例如,向发布方130、数字组件分发系统150、数字组件伙伴152或数字组件提供方160)发送管理(例如,删除)由该实体存储的数据的请求,则该请求可以包括证明令牌122。
49.在一些实施方式中,应用111被配置为发送用于指定类型的请求的证明令牌122。例如,发送证明令牌122的每个应用111可以包括使得应用111生成和/或发送证明令牌122的软件开发工具包(sdk)或应用编程接口(api)。sdk可以指定请求集,例如对管理用户数据的请求、请求数字组件的请求等,对于这些请求将包括证明令牌122。其他类型的请求(例如,请求新闻网页的请求)可能不需要证明令牌122。
50.客户端设备110还可以包括为应用111生成证明令牌的可信程序114。可信程序114可以包括来自难以伪造的可靠来源的可信代码。例如,可信程序114可以是操作系统、操作系统的一部分、网络浏览器等。通常,可信程序114难以渗透,并且入侵者篡改可信程序114所需花费的时间量和努力精力高得惊人。此外,因为可信程序114是由可靠来源提供和维护的,所以出现的任何安全隐患都可以由该来源解决。以这种方式使用这种可信程序提供了增加客户端设备处的安全性的技术优点,因为可信程序难以渗透。此外,可信程序提供了减轻可信程序中的安全隐患的优点,因为该程序是由可靠来源维护的。
51.可信程序114可以位于客户端设备110的本地。例如,可信程序114可以是客户端设备110的操作系统的设备驱动器。在一些实施方式中,可信程序114完全在客户端设备110的本地操作,从而减少了传输用户信息的需要。在一些实施方式中,可信程序114可以在客户端设备110的本地操作,并且可以通过诸如网络105的网络来操作。例如,可信程序114可以是安装在用户设备110上并通过网络105发送和接收信息的网络浏览器。
52.可信程序114可以生成加密密钥(例如,公钥/私钥对),将加密密钥存储在安全存储装置115(例如,安全高速缓存)中,将设备完整性令牌存储在安全存储装置115中,生成证
明令牌,生成加密密钥或其派生物的盲签名,和/或获取并存储证书,如下面更详细描述的。在一些实施方式中,可信程序114与设备完整性客户端进行交互,以向设备完整性系统170发送数据和从设备完整性系统170接收数据。在一些实施方式中,可信程序114被配置为为指定类型的请求集(例如,改变用户隐私设置的请求)中的每一个请求生成证明令牌122。
53.实体使用证明令牌122来验证请求的完整性和客户端设备110的完整性。例如,使得用户能够管理他们的由其他实体存储的数据可能会为恶意用户尝试管理和/或窃取其他用户的数据提供可能性。对于数字组件,一些恶意实体可能尝试伪造数字组件请求的参数,例如,指定数字组件将被提供的不同资源和/或指定数字组件将被呈现给的不同用户,以使请求看起来比它实际上更有价值。此外,一些恶意方可能出于邪恶的目的而尝试模仿其他人的客户端设备。
54.证明令牌122通过中介在客户端设备110与其他实体的计算机或其他设备之间提供安全通信信道,安全通信信道防止其他人更改请求120并确保请求120来自经验证的客户端设备110。
55.可信程序114可以生成具有不同形式或包含不同内容的不同类型的证明令牌122。在一些实施方式中,证明令牌122包括内容集,内容集包括客户端设备110的公钥113、指示创建证明令牌122的时间的令牌创建时间、有效载荷数据、以及由设备完整性系统170或由可信程序114使用从客户端设备110接收的数据生成的设备完整性令牌。证明令牌122还可以包括由可信程序114使用私钥112生成的数字签名,私钥112对应于包括在证明令牌122和内容集中的公钥113。也就是说,可信程序114可以使用私钥112对内容集进行数字签名,并且将所得数字签名包括在具有内容集的证明令牌122中。
56.在一些实施方式中,证明令牌122包括内容集,内容集包括有效载荷数据、指示创建证明令牌122的时间的证明令牌创建时间、以及内容集的数字签名。在该示例中,可信程序114可以使用组签名方案和由设备完整性系统170发给客户端设备110的证书来生成数字签名。
57.在任一示例中,客户端设备110可以在发送到数字组件分发系统150或其他接收方的请求120中包括证明令牌122。证明令牌122的接收方可以尝试验证证明令牌122和/或包括在证明令牌122中的设备完整性令牌(如果适当的话)。如果证明令牌122被成功验证,则接收方可以确定客户端设备110是否是可信设备,并且相应地处理请求。如果证明令牌122没有被成功验证,则接收方可以忽略或删除请求120,例如,不对请求120做出响应或不响应于请求120而改变数据。用于生成包括证明令牌122的请求并验证证明令牌的示例过程在图2-图8中示出并在下面描述。
58.证明令牌创建时间指示证明令牌122被创建的时间。可信程序114可以记录可信程序114创建证明令牌时的创建时间。该证明令牌创建时间可以是高分辨率时间戳(例如,精确到秒、毫秒或微秒)。证明令牌创建时间可以用于确定包括证明令牌122的请求120是新请求还是最近的请求。例如,接收证明令牌122的实体可以将令牌创建时间与当前时间或接收证明令牌122的时间进行比较。如果两个时间之间的差超过阈值,则实体可以确定该请求不是新的或者是无效的,如下面更详细描述的。
59.证明令牌创建时间还可以用于检测重放攻击。例如,如果接收到具有包括相同证明令牌创建时间的相同数据集的多个请求,则接收这些请求的实体可以确定这些请求是重
复的和/或这些请求是重放攻击的一部分。
60.证明令牌创建时间结合其他数据还可以用作请求120的事务标识符。例如,在证明令牌122包括公钥113的实施方式中,事务标识符可以是证明令牌122的证明令牌创建时间和证明令牌122的公钥113中的两个或更多个的组合。事务标识符可以用于对从多个信道接收的同一请求的多个版本进行去重复(deduplicate)。例如,数字组件提供方160-3可以从数字组件分发系统150和数字组件伙伴152两者接收相同的请求。在该示例中,事务标识符可以基于证明令牌122的令牌创建时间和证明令牌122的公钥113。数字组件提供方160-3可以将两个或更多个请求中的两条数据进行比较,以确定这些请求是否重复。
61.有效载荷可以包括个体请求120的数据。例如,如果请求120是针对数字组件的,则有效载荷可以包括可用于选择数字组件的数据。该有效载荷可以包括具有数字组件槽的资源145(或资源145的url)、关于资源145的信息(例如,资源的主题)、关于数字组件槽的信息(例如,槽的数量、槽的类型、槽的大小等)、关于客户端设备110的信息(例如,设备的类型、设备的ip地址、客户端设备110的地理位置)(如果用户已经启用该特征的话)和/或其他适当的信息。
62.如果请求120是为了在发布方130、数字组件分发系统150、数字组件伙伴152、数字组件提供方160或另一实体处管理用户数据,则请求120可以包括指定所请求的改变的数据。例如,如果用户选择从数字组件提供方160-2移除用户的所有数据,则有效载荷将会包括指定该数据移除和数字组件提供方160-2的数据(例如,数字组件提供方160-2的标识符或网络地址)。
63.设备完整性系统170评估从客户端设备110(例如,从可信程序114)接收的设备级欺诈检测信号,并且基于设备级欺诈检测信号确定客户端设备110的可信度(或完整性)级别。设备级欺诈检测信号可以包括表示客户端设备的操作特性或度量的数据,该数据可以用于确定客户端设备是否被盗用或者客户端设备是作为正常客户端设备还是模仿客户端设备来操作。相对于模仿器,真实客户端设备的某些操作特性和度量往往是不同的。在一些实施方式中,设备级欺诈检测信号包括应用级欺诈检测信号,应用级欺诈检测信号包括请求信任令牌的应用111的操作特性和度量。可信程序114可以收集这些设备级欺诈检测信号,并且将这些信号包括在对信任令牌的请求中。
64.设备完整性系统170可以发出指示客户端设备110的可信度(或完整性)级别的判定。接收方使用该判定来确定是否信任包括该判定的请求120。例如,如果判定指示客户端设备110不值得信任,则接收方可以忽略请求,例如,不对请求进行响应。
65.如上所述,在一些方法中,设备私钥/公钥对(以及与设备公钥相关联的设备完整性令牌)可以在多个证明令牌之间变化,以增强客户端设备或用户的隐私性从而防止被证明令牌接收方跟踪。例如,客户端设备可以生成成批次的私钥/公钥对,并且从设备完整性服务器中提取相对应的成批次的设备完整性令牌,使得减少或消除设备完整性令牌的重用。在图2中描绘了这种分批处理的说明性示例。
66.在该示例中,客户端设备200创建n个公钥/私钥对(201)。例如,客户端设备200的可信程序可以生成公钥/私钥对。公钥/私钥对可以是非对称密钥对。每个公钥/私钥对包括私钥和与该私钥相对应且在数学上链接到该私钥的公钥。使用私钥进行数字签名的数据只能使用相对应的公钥来核验。类似地,使用公钥加密的数据只能使用相对应的私钥来解密。
67.客户端设备200向设备完整性计算系统220发送对n个设备完整性元素的请求(202)。数字n可以是大于或等于2的整数。在该示例中,设备完整性元素是设备完整性令牌,并且该请求针对与n个公钥/私钥对相对应的n个设备完整性令牌。可信程序可以基于可信程序在请求中使用唯一设备完整性令牌的频率来确定要请求的设备完整性令牌的数量n。客户端设备可以为每个所请求的设备完整性令牌生成公钥/私钥对,并且在请求中包括公钥数据。在该示例中,公钥数据可以是公钥本身。因此,请求涉及将客户端设备200的n个公钥211传递给设备完整性服务器220。在该示例中,n个公钥211包括实际的公钥,例如,n个公钥211的原始数据。请求还可以包括设备级欺诈检测信号。例如,可信程序可以收集设备级欺诈检测信号,并且将这些信号包括在请求中。
68.设备完整性计算系统220接收请求(221)。基于从客户端设备接收的设备级欺诈检测信号,设备完整性计算系统220确定客户端设备的可信度级别(222)。例如,设备完整性计算系统可能具有m个可能的可信度级别,每个可信度级别对应于相应的判定。在该示例中,如上所述,设备完整性计算系统220可以基于设备级欺诈检测信号来选择这m个可能的可信度级别之一。
69.设备完整性计算系统220生成n个设备完整性元素(223)。在该示例中,每个设备完整性元素是设备完整性令牌的形式。也就是说,设备完整性计算系统220为每个接收到的公钥生成相应的设备完整性令牌。
70.每个设备完整性令牌可以包括可信度判定、可信度判定的时间戳、以及客户端设备200的n个公钥211之一。时间戳指示生成设备完整性令牌的时间。设备完整性系统可以基于n个公钥211之一来生成每个设备完整性令牌。例如,设备完整性系统220可以组装包括客户端设备200的公钥、可信度判定和时间戳的数据集。在一些方法中,在可信度判定仅包括两种可能的判定(值得信任和不值得信任)的情况下,可信度判定可以从设备完整性令牌中省略。换句话说,在这些方法中,设备完整性系统可以为值得信任的设备生成设备完整性令牌(其中这些令牌省略了隐含的可信度判定),并且简单地拒绝为不值得信任的设备生成设备完整性令牌。
71.设备完整性计算系统220对n个设备完整性令牌中的每一个进行数字签名(224)。例如,设备完整性计算系统220可以使用设备完整性系统的私钥并且基于设备完整性令牌的其他数据(例如,可信度判定、客户端设备200的公钥和时间戳)来生成数字签名。
72.设备完整性计算系统220将n个设备完整性令牌传输到客户端设备(225)。客户端设备200接收并存储该批次的设备完整性令牌以备后用(203)。客户端设备200可以本地存储设备完整性令牌,例如,存储在由可信程序维护的高速缓存或安全存储装置中。每个缓存的设备完整性令牌可以包括,例如:(1)由设备完整性计算系统220确定的可信度判定;(2)创建设备完整性令牌的时间戳;(3)客户端设备的公钥;以及(4)使用设备完整性计算系统220的私钥进行签名的令牌组件的数字签名。
73.已经获得了一批设备完整性令牌,如图2的示例所示,客户端设备可以使用设备完整性令牌来组装并发送证明令牌,作为去往数字组件提供方或其他证明令牌接收方的各种请求的一部分,如上所述。这种请求的说明性示例在图3中被描绘为过程流程图。
74.为了准备请求,客户端设备300可以从客户端设备的本地存储装置中提取设备完整性令牌(301)。在各种方法中,客户端设备300可以例如(1)为每个请求使用新的设备完整
性令牌;或者(2)在选定的时间间隔(例如,连续h个小时)内使用相同的设备完整性令牌,并且当该时间间隔过去时,使用不同的设备完整性令牌;或者(3)对源自相同应用或网站的所有请求使用相同的设备完整性令牌(例如,其中,不同的设备完整性令牌用于每个应用或网站);或者(4)使用这些令牌重用方法中的两种或更多种的组合(例如,在选定的时间间隔内对源自相同应用或网站的所有请求使用相同的设备完整性令牌)。因此,客户端设备300可以基于为其生成请求的应用或网站或者生成请求的当前时间来提取设备完整性令牌。
75.客户端设备300可以生成请求(302)。请求311可以包括例如有效载荷数据(如上所述)、请求创建时间戳、所提取的设备完整性令牌、与设备完整性令牌相对应的设备公钥、以及请求组件的数字签名。客户端设备的可信程序或者客户端设备的操作系统的可信组件可以通过访问有效载荷数据和设备完整性令牌来生成请求311,请求311可以包括证明令牌或者是证明令牌的形式。可信程序还可以将当前时间确定为请求创建时间戳。可信程序可以使用客户端设备的私钥(例如,与请求中包括的设备公钥相对应的私钥)来生成有效载荷数据、公钥和时间戳的数字签名。在一些方法中,作为减小证明令牌大小的简单优化,证明令牌省略了设备公钥,因为设备公钥已经存在于作为证明令牌的组件而被包括在内的设备完整性令牌中。
76.客户端设备300向接收方的计算系统320发送请求311(303)。在该示例中,接收方是数字组件提供方。例如,客户端设备300可以向数字组件分发系统发送请求311,并且数字组件分发系统可以向一个或多个数字组件提供方发送请求。
77.接收方计算系统320接收请求(321)。接收方计算系统320验证请求(322)。例如,接收方计算系统320可以通过使用包括在请求中的设备公钥核验请求的数字签名来核验请求。接收方计算系统320可以尝试使用公钥和由客户端设备300签名的请求的内容(例如,有效载荷数据、时间戳、公钥和设备完整性令牌)来核验数字签名。如果在生成数字签名之后该内容发生了任何变化,则核验将会失败。例如,如果恶意方将设备完整性令牌插入到另一请求中,或者将具有更高可信度判定的不同设备完整性令牌插入到该请求中,则签名核验将会失败。这确保了请求的内容在请求的传输期间没有被改变,例如,没有被中介改变。
78.接收方计算系统320验证设备完整性令牌(323)。例如,接收方计算系统320可以通过使用设备完整性计算系统的公钥核验设备完整性令牌的签名来验证设备完整性令牌。这类似地确保了设备完整性令牌的内容自设备完整性令牌由设备完整性令牌计算系统发出起没有被改变。如果证明令牌包括设备公钥,则设备完整性令牌的验证还可以包括对证明令牌所包括的设备公钥与设备完整性令牌内所包括的设备公钥相匹配的确认。
79.接收方计算系统320验证设备完整性令牌的时效性和客户端设备的可信度(324),例如以确认设备完整性令牌是最近创建的(即,不是在超过选定时间间隔(例如做出请求的时间之前的诸如h小时或d天,h,d=1,2,3,

)的时间创建的),并且确认设备完整性令牌中的可信度判定是足以兑现请求的判定。
80.如果所有这些有效性检查通过,则接收方计算系统320可以对请求进行响应(325),例如改变设置、添加或移除用户数据、递送数字组件等,如上所述。如果任何有效性检查失败,则接收方计算系统320可以忽略请求。例如,接收方计算系统320可不对请求进行响应,可不执行所请求的操作,等等。
81.对于涉及递送数字组件的请求,响应325可以包括可选地发送适当的数字组件
312。例如,接收方计算系统320可以基于请求的有效载荷来选择数字组件,并且将该数字组件发送到向数字组件提供方发送请求的数字组件分发系统。进而,数字组件分发系统可以将数字组件发送到客户端设备300。客户端设备300可以接收数字组件(304)。进而,客户端设备300可以呈现数字组件。
82.如上所述,在一些方法中,可以在生成设备完整性令牌的过程中使用盲签名方案,使得设备完整性计算系统看不到客户端设备的公钥的原始数据。例如,客户端设备可以生成成批次的私钥/公钥对,然后在将公钥发送到设备完整性系统以提取相对应的批次的设备完整性元素之前,使用盲签名方案来盲化公钥(或者这些公钥的合适的派生物,其可以用作盲签名方案的提交阶段的值,派生物诸如公钥的密码散列或者与设备型号级联的公钥的密码散列)。在该示例中,设备完整性元素是盲化公钥的盲签名。在图4中描绘了这种分批处理的说明性示例。
83.在该示例中,设备完整性计算系统420可以为客户端设备定义m个不同的可信度级别,并且为相对应的m个可信度级别发布m个不同的盲签名核验密钥411(421)。例如,m个级别可以包括两个级别,值得信任和不值得信任。在另一示例中,m个级别可以包括三个级别,可疑、满意和可信。在其他示例中,m个级别可以包括四个级别,欺诈、可疑、满意和可信。也可以使用其他数量的级别。因此,m可以是大于或等于2的整数。在一些方法中,代替为最低可信度级别(例如,可信度级别为“不值得信任”或“欺诈”)指派盲签名核验密钥,可以从m个可信度级别中省略最低可信度级别,并且设备完整性计算系统可以简单地拒绝为具有最低可信度级别的设备提供盲签名。因此,在这些方法中,m可以是大于或等于1的整数。
84.设备完整性计算系统420可以使用盲签名方案为每个可信度级别生成相应的盲签名核验密钥411。盲签名方案可以是可私下核验的盲签名方案,诸如互联网工程任务组(internet engineering task force,ietf)可核验不经意伪随机函数(verifiable oblivious pseudorandom function,voprf)盲签名方案。在其他方法中,盲签名方案可以是可公开核验的盲签名方案,诸如rivest

shamir

adleman(rsa)盲签名方案。
85.设备完整性计算系统420可以发布盲签名核验密钥411,使得客户端设备(包括客户端设备400)可以获得盲签名核验密钥411。例如,设备完整性计算系统420可以向网站或移动应用商店发布盲签名核验密钥411。
86.客户端设备400可以接收这些盲签名核验密钥(401)。例如,客户端设备400可以下载盲签名核验密钥411,并且将盲签名核验密钥411本地存储在例如安全存储装置或高速缓存中。客户端设备400可以保留盲签名核验密钥411,以核验稍后从设备完整性计算系统420接收的盲签名,如下面进一步讨论的。在一些方法中,设备完整性计算系统420可以周期性地发布新的盲签名核验密钥411(例如,每小时、每天、每周或其他适当的时间段),并且盲签名核验密钥的集合的这种刷新可以用于验证设备完整性令牌的时效性,如下面进一步描述的。
87.为了获得一批n个设备完整性令牌,客户端设备400创建n个公钥/私钥对(402)。例如,客户端设备的可信程序可以为每个设备完整性令牌创建相应的非对称公钥/私钥对。
88.客户端设备400根据用于生成盲签名核验密钥的盲签名方案来盲化每个公钥或每个公钥的派生物(403)。也就是说,客户端设备400盲化每个公钥的公钥数据,其中公钥数据是公钥或公钥的派生物。盲化公钥可以包括通过对公钥的原始值应用盲化因子来隐藏公钥
的原始值。以这种方式,设备完整性计算系统420不能访问从客户端设备400接收的公钥的原始值以及使用那些值来跟踪用户或客户端设备400,例如,使用从接收具有附加数据的公钥的原始值的另一实体接收的数据。
89.为了减少需要由设备完整性计算系统420进行盲签名的数据量,代替盲化每个完整的设备公钥,客户端设备400(例如,其可信程序)可以生成公钥的派生物,并且盲化公钥的派生物。派生物可以是公钥的密码散列。例如,客户端设备400可以使用密码散列函数来生成每个公钥的密码散列,然后使用盲签名方案来盲化公钥的密码散列。在一些实施方式中,密码散列算法可以是sha256。
90.在一些实施方式中,客户端设备420可以通过截断密码散列、然后盲化截断的密码散列,来进一步减小盲化的公钥数据的数据大小。例如,这种截断可以将密码散列从具有较大数据大小的原始密码散列限制到16字节。这种截断导致客户端设备400使用盲签名方案来盲化的密码散列较短。
91.以这种方式减少盲签名的数据量减少了在对数据进行盲签名时放置在设备完整性计算系统420上的负担(例如,减少cpu周期、数据存储要求、内存消耗等),这允许设备完整性计算系统420比提供完整公钥的盲化版本的情况更快、更有效地生成盲签名以及处理更多的请求。这也减少了通过其发送请求的网络的带宽消耗,并且使得大量盲化公钥数据能够在单个请求中发送。
92.客户端设备400向设备完整性计算系统420发送对n个设备完整性令牌的请求412(404)。数字n可以是大于或等于2的整数。该请求可以包括由客户端设备400生成的每个公钥411的盲化公钥数据。例如,该请求可以包括n个盲化公钥、n个公钥的盲化密码散列或n个公钥的盲化截断密码散列。该请求还可以包括例如由客户端设备400的可信程序收集的设备级欺诈检测信号。
93.设备完整性计算系统420接收请求(422)。设备完整性计算系统420基于设备级欺诈检测信号来确定客户端设备400的可信度判定(423)。例如,设备完整性计算系统400可以具有m个可能的可信度判定(对应于在操作421中发布的m个盲签名核验密钥)。设备完整性计算系统420可以基于设备级欺诈检测信号将客户端设备400指派给m个可能的判定之一。
94.在确定了客户端设备400的可信度判定之后,设备完整性计算系统400使用盲签名私钥对每条盲化公钥数据(例如,每n个盲化公钥或每个盲化密码散列)进行签名(424)。例如,设备完整性计算系统420可以获得与为客户端设备400确定的可信度判定相对应的盲签名私钥,例如,与所确定的可信度判定的公共盲签名核验密钥相对应的盲签名私钥(424)。以这种方式使用盲签名方案,设备完整性计算系统420可以在不知道公钥数据的实际值的情况下生成盲化公钥数据的数字签名。
95.设备完整性计算系统420将n个盲签名413返回给客户端设备(425)。客户端设备400从设备完整性计算系统接收盲签名(405)。
96.客户端设备400使用盲签名方案对盲签名去盲化(unblind)(406)。例如,客户端设备400的可信程序可以使用为其生成盲签名的盲化公钥数据和由设备完整性计算系统420发布的盲签名核验密钥来验证每个盲签名。为此,可信程序可以(例如,针对每个可信度判定)尝试使用多个盲签名核验密钥来验证盲签名。如果该判定与指派给客户端设备400的判定不匹配,则使用该判定的盲签名核验密钥不能验证该盲签名。可信程序可以基于成功验
证盲签名的盲签名核验密钥来确定客户端设备400的被指派的可信度判定,例如,与盲核验密钥相对应的可信度判定是指派给客户端设备400的判定。如果得以验证,则可信程序可以使用盲签名方案对盲签名去盲化。
97.客户端设备400生成一批设备完整性令牌(408)。例如,客户端设备400的可信程序可以为在上面的操作402中生成的每个公钥生成设备完整性令牌。每个设备完整性令牌可以包括例如:(1)为其生成设备完整性令牌的客户端设备的公钥;(2)由设备完整性计算系统确定的可信度判定;以及(3)盲化的公钥或公钥(例如,截断)密码散列的去盲化的盲签名。在一些方法中,设备完整性令牌可以省略可信度判定,因为这可以从去盲化的盲签名中隐含得到。如果盲签名是不可公开核验的,则当设备完整性计算系统被调用来核验盲签名时(例如,参见如下所述的图5中的541),设备完整性计算系统也可以返回判定。如果盲签名是可公开核验的,则核验盲签名的公钥也隐含了设备的可信度判定。
98.客户端设备400存储设备完整性令牌(410)。例如,客户端设备400的可信程序可以将设备完整性令牌存储在安全存储装置中,以供以后在发送应该包括设备完整性令牌的请求时使用。安全存储装置可以是客户端设备400的令牌高速缓存。
99.如图4的示例所示,在生成并存储了一批设备完整性令牌之后,客户端设备可以使用设备完整性令牌来组装并发送证明令牌,作为对数字组件提供方或其他证明令牌接收方做出的各种请求的一部分,如上所述。这种请求的说明性示例在图5中被描绘为过程流程图。
100.为了准备请求,客户端设备500可以例如从客户端设备的令牌高速缓存提取设备完整性令牌(501)。在各种方法中,客户端可以例如(1)为每个请求使用新的设备完整性令牌;或者(2)在选定的时间间隔(例如,连续h个小时)内使用相同的设备完整性令牌;或者(3)对源自相同应用或网站的所有请求使用相同的设备完整性令牌;或者(4)使用这些令牌重用方法的组合(例如,在选定的时间间隔内对源自相同应用或网站的所有请求使用相同的设备完整性令牌)。因此,客户端设备500可以基于为其生成请求的应用或网站或者生成请求的当前时间来提取设备完整性令牌。
101.客户端设备500可以组装包括内容集的请求511,内容集包括请求有效载荷(如上所述)、指示生成请求的时间的请求创建时间戳、设备完整性令牌、以及与设备完整性令牌相对应的设备公钥(例如,其公钥数据被盲签名并且连同去盲化的盲签名一起被包括在设备完整性令牌中的公钥)。该请求还可以包括使用客户端设备的私钥(例如,与请求中包括的公钥相对应的私钥)进行签名(502)的内容集的数字签名。例如,客户端设备500的可信程序可以使用私钥基于内容集生成数字签名。该请求可以包括证明令牌或者是证明令牌的形式。例如,证明令牌可以包括内容集(例如,具有证明令牌创建时间戳)和数字签名。
102.客户端设备500向接收方的计算系统520发送请求511(503)。如果接收方是数字组件提供方,则客户端设备500可以将该请求传输到数字组件分发系统,数字组件分发系统进而将该请求转发到适当的数字组件提供方。
103.接收方计算系统520验证请求(522)。接收方计算系统520可以通过使用包括在请求内的设备公钥验证请求的数字签名来验证请求。接收方计算系统520还可以通过将请求中的时间戳与接收到请求的时间进行比较来验证请求。如果签名被成功验证,并且时间戳在当前时间的阈值持续时间内,则客户端设备500可以认为该请求得以验证。
104.接收方计算系统520还验证设备完整性令牌。该验证过程可以基于设备完整性计算系统540在生成盲签名时使用的盲签名方案而不同。如果盲签名方案是可公开核验的方案(例如,rsa),则接收方计算系统520可以在不调用设备完整性计算系统的情况下验证设备完整性令牌(523a)。在该示例中,接收方计算系统520可以使用盲签名方案来核验包括在设备完整性令牌中的公钥数据的去盲化的盲签名。如果使用了公钥的密码散列,则接收方计算系统520可以使用与客户端设备500相同的密码散列函数来生成包括在请求中的公钥的密码散列(并且如果适当的话将其截断),并且使用盲签名方案来核验密码散列的去盲化的盲签名。
105.如果盲签名方案是可私下核验的方案(例如,ietf voprf),则接收方计算系统520可以调用设备完整性计算系统540来核验去盲化的盲签名(523b)。在该示例中,接收方计算系统520可以向设备完整性计算系统540发送去盲化的盲签名和公钥或公钥的密码散列。
106.设备完整性计算系统540可以尝试使用盲签名方案来核验去盲化的盲签名,并且向数字组件提供方提供响应(541)。该响应可以指示核验是否成功,以及与核验去盲化的盲签名的盲签名核验密钥相对应的客户端设备的可信度。
107.接收方计算系统520验证设备完整性令牌的时效性和客户端设备的可信度(524),例如,以确认设备完整性令牌是最近创建的,并且确认设备完整性令牌中的可信度判定是足以兑现请求的判定。因为设备完整性计算系统540可以周期性地重新发布新的盲签名核验密钥,所以时效性验证可以包括确认设备完整性令牌的盲签名不是用无效的过时密钥进行签名的,例如通过确定设备完整性令牌是用已经过期的盲签名核验密钥进行核验的。在一种方法中,接收方计算系统可以确定盲签名核验密钥已经过期,因为盲签名核验密钥的有效日期被编码为所发布的密钥的url的一部分。在另一种方法中,接收方计算系统可以确定盲签名核验密钥已经过期,因为核验密钥是与编码核验密钥的过期日期的元数据一起发布的。
108.如果所有这些有效性检查都通过,则接收方计算系统520可以对请求进行响应(525),例如改变设置、添加或移除用户数据、递送数字组件等,如上所述。对于涉及递送数字组件的请求,响应525因此可以包括可选地向客户端设备500发送适当的数字组件512。在该示例中,客户端设备500可以呈现数字组件。如果任何有效性检查失败,则接收方计算系统520可以忽略请求,例如,选择不发送对请求的响应、更新设置等。
109.虽然在图2-5的示例中示出并且在上面描述的方法涉及使用客户端设备的设备公钥,但是其他方法可以放弃使用设备公钥而支持组签名方案。一般来说,组签名方案是一种允许组成员代表组对消息匿名地签名的方法。在组签名方案中,组管理者发布组签名函数sign(message,c),其可以用来用证书c对消息(message)进行签名,其中证书c是已经由组管理者私下地颁发给组成员的机密证书(也称为匿名私钥)。组管理器还发布组核验密钥k(也称为组公钥)和组签名核验函数verify(sign(message,c),k),当且仅当使用匿名证书c用组签名函数对消息进行签名并且k是c的组核验密钥时,该组签名核验函数才返回true(真)。
110.这些技术可以利用设备完整性系统作为组管理器、采用组签名方案来证明客户端设备请求。虽然一些组签名方案允许组管理者对由组成员创建的匿名签名进行去匿名化,但是隐私考虑可能倾向于不包括这种去匿名化能力的组签名方案,诸如直接匿名证明
(daa)。例如,在一些方法中,设备完整性系统可以使用椭圆曲线密码(ecc)daa方案,诸如具有barreto-naehrig曲线的ecc daa。此外,虽然一些组签名方案可以允许组管理者撤销组成员资格,但是效率考虑可能倾向于不包括这种撤销能力的组签名方案,使得该技术可扩展到互联网规模,例如具有数百万或数十亿组成员的组。
111.在图6和图7的过程流程图中描绘了用于证明客户端设备请求的组签名方案的说明性示例。在该示例中,设备完整性计算系统620可以为客户端设备定义m个不同的可信度级别,并且为相对应的m个可信度级别发布m个不同的组核验密钥。例如,设备完整性系统可以发布一个、两个或多个组核验密钥,例如,与设备可信度级别相对应的ecc daa核验密钥。对于m=1的方法,组核验密钥对应于某个最低可信度级别,并且不满足该最低可信度级别的设备将不会加入作为可信度组的成员。对于m≥2的方法,不同的组核验密钥对应于设备可信度的相应级别或分类。在一些方法中,设备完整性计算系统可以周期性地发布新的组核验密钥(例如,每小时、每天、每周或其他适当的时间段),并且组核验密钥的集合的这种刷新可以用于验证客户端设备请求的时效性,如下面进一步描述的。
112.现在参考图6,客户端设备600可以为由设备完整性服务器620管理的m个可信度组之一请求机密证书形式的私有设备完整性证书(601)。该请求可以包括(例如,由客户端设备600的可信程序收集的)设备级欺诈检测信号。
113.设备完整性计算系统接收请求(621)。设备完整性计算系统620可以基于设备级欺诈检测信号来确定客户端设备的可信度判定,并且将客户端设备指派给与可信度判定相对应的选定可信度组(622)。
114.设备完整性计算系统620然后可以生成或选择与选定可信度组相对应的匿名证书611,并且将匿名证书611返回给客户端设备(623)。例如,设备完整性计算系统可以生成与ecc daa核验密钥相对应的凭证,该ecc daa核验密钥与由设备完整性计算系统指派给设备的设备可信度级别相关联。客户端设备620可以接收匿名证书611,并且将其安全地存储在客户端设备620本地,例如,存储在私有密钥库中(602)。例如,客户端设备可以使用私有密钥库的主密钥来加密证书,使得恶意方不能盗用证书并在不同的设备上使用它。
115.在获得了特定可信度组中的成员资格的匿名证书之后,客户端设备可以使用该匿名证书来组装并发送证明令牌,作为向数字组件提供方或其他证明令牌接收方做出的各种请求的一部分。在该示例中,证明令牌可以被称为匿名证明令牌,因为它们不包括客户端设备的公钥。这种请求的说明性示例在图7中被描绘为过程流程图。
116.客户端设备700可以发起对数字组件提供方或其他证明令牌接收方做出的请求(701)。在一些实施方式中,客户端设备可以可选地确认请求没有超过证明令牌限制(702),如下面进一步描述的。客户端设备700例如从客户端设备上的私有密钥库中提取匿名证书(703),如上文和图6中所述,客户端设备700先前已经从设备完整性计算系统获得了证书。
117.客户端设备700生成请求711,并且用所提取的匿名证书对该请求进行签名(704)。请求的生成可以包括例如生成内容集,内容集包括请求有效载荷和请求创建时间戳。请求有效载荷可以包括例如可用于选择数字组件的数据,或者指定将由证明令牌接收方做出的所请求的改变(诸如数据的移除)的数据。请求创建时间戳可以指示生成请求的时间。在一些情况下,请求创建时间戳的时间分辨率小到足以检测到重复请求或重放攻击。例如,请求创建时间戳的时间分辨率可以小于大约1毫秒或者小于大约1微秒。在组签名方案是概率组
签名方案的方法中,客户端设备700对同一请求711的两次单独签名将生成不同的签名。在这些方法中,请求711的接收方可以通过拒绝具有相同签名的请求来防止重复请求或重放攻击。
118.与上面描述的以及图3和图5中的其他方法相反,请求711不包括客户端设备的公钥,也不包括设备完整性令牌(比较图3中的请求311和图5中的请求511)。先前描述的方法的这些证明令牌特征对于本方法的组签名方案是不必要的,在本方法的组签名方案中,客户端设备对匿名证书c的拥有和使用表明客户端设备是由设备完整性计算系统管理的可信度组的成员。客户端设备使用所发布的组签名函数sign(message,c)、使用匿名证书c对请求711进行签名。例如,客户端设备700可以使用匿名证书c来生成内容集的数字签名,例如,客户端设备可以利用先前由设备完整性服务器提供给客户端设备的ecc daa证书、使用ecc daa签名方案来对请求进行签名。
119.客户端设备向接收方的计算系统720发送请求711(705)。如果接收方是数字组件提供方,则客户端设备700可以将该请求传输到数字组件分发系统,数字组件分发系统进而将该请求转发到适当的数字组件提供方。
120.接收方计算系统720接收请求(722)。在从客户端设备700接收请求711之前,接收方计算系统720接收(721)设备完整性计算系统的m个可信度类的m个不同的组核验密钥的集合。设备完整性计算系统740发布(741)这m个组核验密钥,并且可以周期性地重新发布新的组核验密钥(例如,每小时、每天、每周或其他适当的时间段),在这种情况下,证明令牌接收方将周期性地接收新的组核验密钥,利用该组核验密钥来验证来自客户端设备的请求。在一种方法中,使用众所周知的url在众所周知的路径上发布组核验密钥,使得任何接收方计算系统720都可以使用标准http请求来获取组核验密钥。路径可以编码日期/时间信息,或者伴随组核验密钥的元数据可以编码密钥过期日期,使得接收方计算系统可以确定密钥是否是当前的,如下面进一步讨论的。
121.接收方计算系统720验证请求的时效性(723)。例如,接收方可以审查请求创建时间戳以确认请求不是重复的(或重放尝试)以及请求不是过时的(例如,请求创建时间戳与接收方计算系统接收到请求的时间之间的差在阈值内),等等。
122.接收方计算系统720验证请求的匿名签名和可信度(724)。例如,接收方可以通过针对m个所发布的组核验密钥的集合中的每一个所发布的组核验密钥k评估核验函数verify(sign(message,c),k)来验证匿名签名。核验函数可以是例如ecc daa签名核验函数,ecc daa签名核验函数是使用由设备完整性服务器先前发布的ecc daa核验密钥来计算的。如果对于每个所发布的组核验密钥k,该函数均为false(假),则接收方可以确定该请求是伪造的,或者客户端设备700不属于任何可信度组。另一方面,如果对于特定的组核验密钥k,该函数为true,则客户端设备700属于与该特定组核验密钥k相对应的可信度组。
123.如果这些有效性检查通过,则证明令牌接收方然后可以对请求进行响应(725),例如改变设置、添加或移除用户数据、递送数字组件等,如上所述。对于涉及递送数字组件的请求,响应725然后可以包括可选地向客户端设备700发送适当的数字组件712。客户端设备700接收数字组件(706)。进而,客户端设备700可以向客户端设备700的用户呈现数字组件。
124.虽然图6和图7中示出并且在上面描述的组签名方法通过防止基于客户端设备的设备公钥的跟踪来增强客户端设备或用户的隐私性,但是它也可以防止证明令牌接收方
(诸如数字组件提供方)识别可以向证明令牌接收方发送不合理数量的请求的滥用设备或应用。相应地,在一些方法中,客户端设备可以包括可信节流器,可信节流器可以限制客户端设备发送过量的证明令牌。再次参考图7,节流器可以例如在允许请求继续之前执行核验所发起的请求没有超过证明令牌限制的操作702。节流器可以是例如客户端设备的可信操作系统的线程、进程、子例程或其他组件。尽管以下在图6-8的组签名方法的上下文中描述了节流器,但是设想了节流器可用于在本文描述的任何证明令牌上下文中限制证明令牌的量。例如,节流器可以用于限制图3的请求311或图5的请求511。
125.这种节流方法的说明性示例在图8的过程流程图中进行了描绘。各种证明令牌接收方850(诸如数字组件提供方和包括证明令牌的请求或其他通信的其他接收方)可以发布指示证明令牌数量限制的信息(851)。例如,证明令牌接收方可以发布(1)在选定时间范围内可以从每个个体客户端设备发送到接收方的选定目的地域的令牌数量限制(例如,在y秒、y分钟或y小时内不超过x个请求);(2)在选定时间范围内可以从个体客户端设备上的一个或多个选定应用发送到接收方的选定目的地域的令牌数量限制(例如,在y秒、y分钟或y小时内,来自应用a的或来自除应用a之外的任何应用的请求不超过x个);(3)在选定时间范围内可以从个体客户端设备发送到接收方的选定目的地域内的选定端点的令牌数量限制;(4)在选定时间范围内可以从客户端设备上的一个或多个选定应用发送到选定目的域内的选定端点的令牌数量限制;或(5)两个或多个这种限制的任意组合。
126.作为客户端设备800的可信程序820(例如,操作系统)的组件,节流器830接收所发布的令牌数量限制信息(821)。可以以各种方式接收所发布的令牌数量限制信息。在一种方法中,每个证明令牌接收方在用令牌接收方的私钥签名的文件中发布令牌数量信息。可信爬虫周期性地获取这些文件(以及令牌接收方的公钥),并且将这些文件递送给每个客户端设备800。然后,每个客户端设备上的节流器830在核验令牌接收方的签名之后兑现节流要求。例如,节流器830可以通过不为将会超过限制的请求生成证明令牌来确保不超过限制。
127.在另一种方法中,每个令牌接收方向数字分发平台(诸如可以从其下载移动应用的移动应用商店)提交签名的令牌数量信息。数字分发平台核验令牌数量信息并且对其进行签名。然后,每个令牌接收方将两次签名的令牌数量信息递送给客户端设备800。然后,每个客户端设备上的节流器830在核验令牌接收方和数字分发平台两者的签名之后兑现节流要求。例如,节流器830可以通过不为将会超过限制的请求生成证明令牌来确保不超过限制。
128.当客户端设备上的应用810向可信程序820发起对证明令牌的请求时(811),可信程序820接收该请求(822)。可信程序820然后可以调用节流器来评估兑现请求是否将会使得客户端设备超过所发布的令牌数量限制中的一个或多个(823)。如果请求将会超过所发布的令牌数量限制中的一个或多个,则可信程序820拒绝证明令牌请求(步骤823a)。如果请求不会超过所发布的令牌数量限制,则可信操作系统820允许生成证明令牌并将其发送到适当的证明令牌接收方(步骤823b)。
129.除了上面的描述之外,可以向用户提供控制,以允许用户选择本文描述的系统、程序或特征是否以及何时可以使能对用户信息(例如,关于用户的社交网络、社交动作或活动、职业、用户偏好或用户当前位置的信息)的收集,以及是否从服务器向用户发送个性化内容或通信。此外,在存储或使用某些数据之前,可能会以一种或多种方式对其进行处理,
使得个人可识别信息被移除。例如,可以处理用户的身份,使得不能确定用户的个人可识别信息(例如,电话号码、imei、设备序列号),或者可以在获得位置信息的地方一般化用户的地理位置(诸如一般化为城市、zip码或州级),使得不能确定用户的特定位置。因此,用户可以控制收集关于用户的什么信息、如何使用该信息、信息保留策略以及向用户提供什么信息。
130.图9是可以用于执行上述操作的示例计算机系统900的框图。系统900包括处理器910、存储器920、存储设备930和输入/输出设备940。组件910、920、930和940中的每一个可以例如使用系统总线950互连。处理器910能够处理指令以在系统900内执行。在一些实施方式中,处理器910是单线程处理器。在另一实施方式中,处理器910是多线程处理器。处理器910能够处理存储在存储器920或存储设备930中的指令。
131.存储器920存储系统900内的信息。在一种实施方式中,存储器920是计算机可读介质。在一些实施方式中,存储器920是易失性存储器单元。在另一实施方式中,存储器920是非易失性存储器单元。
132.存储设备930能够为系统900提供大容量存储。在一些实施方式中,存储设备930是计算机可读介质。在各种不同的实施方式中,存储设备930可以包括例如硬盘设备、光盘设备、由多个计算设备通过网络共享的存储设备(例如,云存储设备)或某个其他大容量存储设备。
133.输入/输出设备940为系统900提供输入/输出操作。在一些实施方式中,输入/输出设备940可以包括一个或多个网络接口设备(例如,以太网卡)、串行通信设备(例如,rs-232端口)和/或无线接口设备(例如,802.11卡)。在另一实施方式中,输入/输出设备可以包括被配置为接收输入数据并将输出数据发送到外部设备960的驱动设备,例如键盘、打印机和显示设备。然而,也可以使用其他实施方式,诸如移动计算设备、移动通信设备、机顶盒电视客户端设备等。
134.尽管在图9中描述了示例处理系统,但是本说明书中描述的主题和功能操作的实施方式可以在其他类型的数字电子电路中实施,或者在计算机软件、固件或硬件(包括本说明书中公开的结构及其结构等同物)中实施,或者在它们中的一个或多个的组合中实施。
135.本说明书中描述的主题和操作的实施例可以在数字电子电路中实施,或者在计算机软件、固件或硬件(包括本说明书中公开的结构及其结构等同物)中实施,或者在它们中的一个或多个的组合中实施。本说明书中描述的主题的实施例可以被实施为一个或多个计算机程序,即被编码在计算机存储介质(或媒介)上的一个或多个计算机程序指令模块,用于由数据处理装置执行或控制数据处理装置的操作。替代地或附加地,程序指令可以被编码在人工生成的传播信号上,例如,机器生成的电、光或电磁信号,其被生成以编码信息,用于传输到合适的接收器装置供数据处理装置执行。计算机存储介质可以是或被包括在计算机可读存储设备、计算机可读存储基底、随机或串行存取存储器阵列或设备、或者它们中的一个或多个的组合中。此外,虽然计算机存储介质不是传播信号,但是计算机存储介质可以是编码在人工生成的传播信号中的计算机程序指令的源或目的地。计算机存储介质也可以是或被包括在一个或多个分立的物理组件或介质中(例如,多个cd、盘或其他存储设备)。
136.本说明书中描述的操作可以被实施为由数据处理装置对存储在一个或多个计算机可读存储设备上或从其他源接收的数据执行的操作。
137.术语“数据处理装置”包含用于处理数据的所有种类的装置、设备和机器,包括例如可编程处理器、计算机、片上系统、或者多个前述各项或前述各项的组合。装置可以包括专用逻辑电路,例如fpga(现场可编程门阵列)或asic(专用集成电路)。除了硬件之外,装置还可以包括为所讨论的计算机程序创建执行环境的代码,例如,构成处理器固件、协议栈、数据库管理系统、操作系统、跨平台运行时环境、虚拟机或它们中的一个或多个的组合的代码。装置和执行环境可以实现各种不同的计算模型基础设施,诸如网页服务、分布式计算和网格计算基础设施。
138.计算机程序(也称为程序、软件、软件应用、脚本或代码)可以用任何形式的编程语言编写,包括编译或解释语言、声明或过程语言,并且它可以以任何形式部署,包括作为独立程序或作为模块、组件、子例程、对象或适合在计算环境中使用的其他单元。计算机程序可以但不需要对应于文件系统中的文件。程序可以被存储在保存其他程序或数据的文件的一部分(例如,标记语言文档中所存储的一个或多个脚本)中,被存储在专用于所讨论的程序的单个文件中,或者被存储在多个协作文件(例如,存储一个或多个模块、子程序或代码部分的文件)中。计算机程序可以被部署为在一个计算机上执行,或者在位于一个地点或分布在多个地点并通过通信网络互连的多个计算机上执行。
139.本说明书中描述的过程和逻辑流程可以由执行一个或多个计算机程序的一个或多个可编程处理器来执行,以通过对输入数据进行操作并生成输出来执行动作。过程和逻辑流程也可以由专用逻辑电路来执行,并且装置也可以被实施为专用逻辑电路,例如fpga(现场可编程门阵列)或asic(专用集成电路)。
140.举例来说,适于执行计算机程序的处理器包括通用和专用微处理器两者。通常,处理器将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的基本元件是用于根据指令执行动作的处理器和用于存储指令和数据的一个或多个存储器设备。通常,计算机还将包括或可操作地耦合到一个或多个用于存储数据的大容量存储设备(例如,磁盘、磁光盘或光盘),以从其接收数据,或者向其传送数据,或者两者兼有。然而,计算机不需要具有这样的设备。此外,计算机可以嵌入在另一设备中,例如,移动电话、个人数字助理(pda)、移动音频或视频播放器、游戏控制台、全球定位系统(gps)接收器或便携式存储设备(例如,通用串行总线(usb)闪存驱动器),仅举几例。适于存储计算机程序指令和数据的设备包括所有形式的非易失性存储器、介质和存储器设备,包括例如:半导体存储设备,例如eprom、eeprom和闪存设备;磁盘,例如内部硬盘或可移动盘;磁光盘;以及cd-rom和dvd-rom盘。处理器和存储器可以由专用逻辑电路来补充或并入其中。
141.为了提供与用户的交互,本说明书中描述的主题的实施例可以在计算机上实施,该计算机具有用于向用户显示信息的显示设备(例如crt(阴极射线管)或lcd(液晶显示器)监视器)以及用户可以用来向计算机提供输入的键盘和定点设备(例如鼠标或轨迹球)。也可以使用其他类型的设备来提供与用户的交互;例如,提供给用户的反馈可以是任何形式的感觉反馈,例如视觉反馈、听觉反馈或触觉反馈;并且可以以任何形式接收来自用户的输入,包括声音、语音或触觉输入。此外,计算机可以通过向用户使用的设备发送文档和从用户使用的设备接收文档来与用户进行交互;例如,通过响应于从网络浏览器接收的请求,向用户的客户端设备上的网络浏览器发送网页。
142.本说明书中描述的主题的实施例可以在计算系统中实施,该计算系统包括后端组
件(例如,作为数据服务器),或者包括中间件组件(例如,应用服务器),或者包括前端组件(例如,具有图形用户界面或网络浏览器的客户端计算机,用户可以通过图形用户界面或网络浏览器与本说明书中描述的主题的实施进行交互),或者一个或多个这样的后端、中间件或前端组件的任何组合。系统的组件可以通过任何形式或介质的数字数据通信(例如,通信网络)来互连。通信网络的示例包括局域网(“lan”)和广域网(“wan”)、互联网(例如,因特网)和对等网络(例如,自组织对等网络)。
143.计算系统可以包括客户端和服务器。客户端和服务器通常彼此远离,并且通常通过通信网络进行交互。客户端和服务器的关系是借由在相应的计算机上运行且彼此具有客户端-服务器关系的计算机程序而产生的。在一些实施例中,服务器将数据(例如,html页面)传输到客户端设备(例如,为了向与客户端设备进行交互的用户显示数据并从其接收用户输入)。在客户端设备处生成的数据(例如,用户交互的结果)可以在服务器处从客户端设备接收。
144.虽然本说明书包含许多具体的实施细节,但是这些不应被解释为对任何发明的范围或可能要求保护的范围的限制,而是对特定发明的特定实施例所特有的特征的描述。本说明书中在分开的实施例的上下文中描述的某些特征也可以在单个实施例中组合实施。相反,在单个实施例的上下文中描述的各种特征也可以在多个实施例中单独或以任何合适的子组合来实施。此外,尽管特征可能在上面被描述为在某些组合中起作用,并且甚至最初被如此要求保护,但是来自所要求保护的组合的一个或多个特征在一些情况下可以从该组合中删除,并且所要求保护的组合可以针对子组合或子组合的变体。
145.类似地,虽然在附图中以特定的次序描述了操作,但是这不应被理解为要求这些操作以所示的特定次序或顺序次序执行,或者要求所有示出的操作都被执行,以获得期望的结果。在某些情况下,多任务和并行处理可能是有利的。此外,上述实施例中的各种系统组件的分离不应被理解为在所有实施例中都需要这样的分离,并且应该理解,所描述的程序组件和系统通常可以一起集成在单个软件产品中或者打包到多个软件产品中。
146.因此,已经描述了主题的特定实施例。其他实施例在以下权利要求的范围内。在一些情况下,权利要求中所述的动作可以以不同的次序执行,并且仍能获得期望的结果。此外,附图中描绘的过程不一定需要所示的特定次序或连续次序来获得期望的结果。在某些实施方式中,多任务和并行处理可能是有利的。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献