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

保护客户端设备通信的完整性的制作方法

2022-03-05 03:48:26 来源:中国专利 TAG:
保护客户端设备通信的完整性
背景技术
::1.客户端设备通过公共网络(诸如互联网)传输请求和其他数据。这些通信可能被其他方改变,诸如拦截通信的各方和/或接收通信并将它们转发给其他方的中介。2.客户端设备也容易受到恶意攻击,诸如可以在用户不知情或没有认证的情况下发送欺诈请求的病毒和恶意软件。此外,其他方可以仿真客户端设备来发送看似源自客户端设备但实际上来自其他方的设备的请求。技术实现要素:3.本说明书描述了与用于保护客户端设备传输的通信的完整性的认证技术相关的技术。4.一般来说,本说明书中描述的主题的一个创新方面可以体现在方法中,所述方法包括从客户端设备接收包括由客户端设备生成的证明令牌(attestationtoken)的请求,所述证明令牌包括:数据的集合,至少包括(i)客户端设备的公钥,(ii)令牌创建时间,其指示证明令牌被创建的时间,以及(iii)设备完整性令牌,其包括指示客户端设备的可信度等级的判决(verdict);和数据的集合的数字签名,其中,数字签名是使用与公钥相对应的私钥生成的;使用证明令牌来验证请求的完整性,包括:确定令牌创建时间是否在接收到请求的时间的阈值持续时间内;使用公钥和使用私钥生成的数据的集合的数字签名,确定数据的集合在证明令牌被创建之后是否被修改;确定设备完整性令牌的判决是否指示客户端设备是可信的客户端设备;和至少基于令牌创建时间在接收到请求的时间的阈值持续时间内的确定、自证明令牌被创建以来数据的集合没有被修改的确定、以及判决指示客户端设备是可信的客户端设备的确定,来确定请求的完整性是有效的;以及如果确定是请求是有效的,则响应于确定请求的完整性是有效,对请求做出响应。该方面的其他实现包括相应的装置、系统和计算机程序,其被配置为执行在计算机存储设备上编码的方法的方面。5.这些和其他实现可以各自可选地包括一个或多个以下特征。在一些方面,数据的集合还包括有效载荷,所述有效载荷包括特定于请求的数据。所述请求可以是删除用户数据的请求,并且有效载荷可以包括指定删除用户数据的操作的数据。6.一些方面可以包括如果确定请求不是有效的,则忽略请求。在一些方面,设备完整性令牌是由不同于客户端设备的设备完整性系统基于从客户端设备接收的信号生成的。7.在一些方面,设备完整性令牌包括被包含在设备完整性令牌中的数据的第二集合的数字签名,数据的第二集合的数字签名是使用设备完整性系统的第二私钥生成的,并且确定请求的完整性是有效的包括使用与第二私钥相对应的第二公钥来验证数据的第二集合的数字签名,确定自设备完整性令牌被生成以来数据的第二集合没有被改变。8.在一些方面,数据的第二集合包括由客户端设备生成的公钥,并且确定请求的完整性是有效的包括确定证明令牌的数据的集合中的公钥与设备完整性令牌的数据的第二集合中的公钥相匹配。9.在一些方面,数据的第二集合可以包括第二令牌创建时间,其指示设备完整性令牌被创建的时间,并且确定请求的完整性是有效的还包括确定第二令牌创建时间在接收到请求的时间的第二阈值持续时间内。10.本说明书中描述的主题可以在特定实施例中实现,以便实现一个或多个以下优点。11.使用证明令牌从客户端设备传输数据提供了客户端设备和其他实体的计算机或其他设备之间的安全通信信道。利用证明令牌,包括在证明令牌中包括的数据的数字签名使得实体能够验证证明令牌中的数据在证明令牌被创建之后没有被改变。此外,在证明令牌中包含令牌创建时间使接收方能够确定请求是新的还是可能是重放攻击(replayattack)的一部分。这些效果用于增加通信的可信度,诸如从客户端设备接收的请求。这增加了做出响应请求的决定的可靠性。这些效果用于增加客户端设备和其他实体的计算机或其他设备之间的通信信道的可信度。12.证明令牌还可以包括指示发送证明令牌的客户端设备的完整性的设备完整性令牌,这使得证明令牌的接收方能够验证数据来自可信的客户端设备,例如而不是来自仿真器或受损设备。设备完整性令牌可以由第三方设备分析器生成和数字签名,使得证明令牌的接收方可以验证客户端设备是由第三方设备分析器评估的,并且设备完整性令牌中的数据在由第三方设备分析器创建之后没有被修改。这些效果用于增加从客户端设备接收到的数据的可信度。这增加了做出对请求做出响应的决定的可靠性。13.设备完整性令牌还可以包括用于对证明令牌进行数字签名的客户端设备的公钥,或者公钥的加密哈希(cryptohash)(可能尺寸较小)。这将设备完整性令牌绑定到证明令牌。这也可用于验证设备完整性令牌属于该客户端设备并代表该客户端设备的完整性。包括指示设备完整性令牌何时被创建的令牌创建时间使得接收方能够确定客户端设备何时被评估,接收方可以使用该时间来确定客户端设备的信任等级。可以周期地评估客户端设备,并且可以基于每个评估来发布新的设备完整性令牌,使得客户端设备的设备完整性令牌表示客户端设备的当前完整性,其可以随着时间而改变,例如响应于新的攻击。这些效果用于增加特定客户端设备的可信度。这增加了从特定客户端设备接收的数据的可信度。这增加了做出对请求做出响应的决定的可靠性。14.下面参照附图描述前述主题的各种特征和优点。从这里描述的主题和权利要求中,附加的特征和优点是显而易见的。附图说明15.图1是数字组件系统分发数字组件的环境的框图。16.图2是示出了用于证实请求和发送该请求并响应该请求的客户端设备的完整性的示例过程的流程图。17.图3是示出使用证明令牌来确定请求和发送请求的客户端设备的完整性是否是有效的的示例过程的流程图。18.不同附图中相同的附图标记和名称指示相同的元件。19.具体实现20.一般来说,本文描述的系统和技术可以在客户端设备和其他实体之间提供安全的通信信道,所述其他实体诸如是内容发布方、数字组件分发系统和数字组件提供方,其创建并提供由数字组件分配系统分发的数字组件。客户端设备可以通过请求和网络上的其他数据传输,提供由其他实体用来证实请求的完整性和客户端设备的完整性的证明令牌。这些请求可以包括例如管理用户数据的请求(例如,删除用户相关的数据)、对内容的请求、和/或对数字组件呈现其他内容的请求。使用证明令牌保护通信信道确保欺诈用户不能改变、删除或以其他方式访问用户数据、或者改变请求的内容,例如,欺骗数字组件分发系统、提供方和/或其他实体。证明令牌证明传输的有效性。21.可以使用客户端设备的私钥对证明令牌进行数字签名。对被包含在证明令牌中的数据的集合进行数字签名导致数据的集合的数字签名也被包含在证明令牌内。客户端设备可以对私钥进行保密维护。此外,证明令牌可以包括与私钥相对应的公钥、有效载荷和设备完整性令牌。设备完整性令牌可以包括指示由第三方设备完整性系统确定的客户端设备的完整性等级的判决。第三方设备完整性系统可以使用第三方设备完整性系统保密的私钥对设备完整性令牌进行数字签名。与私钥相对应的公钥可以被提供给接收方,使得他们可以相信客户端设备已经被设备完整性系统评估。这种组合使用两对密钥例如通过绑定两个密钥来提供安全的通信信道,这使得接收方能够证实客户端设备的完整性和从客户端设备接收到的通信的完整性。22.图1是环境100的框图,其中数字组件系统150分发数字组件129。示例环境100包括数据通信网络105,诸如局域网(lan)、广域网(wan)、互联网、移动网络或其组合。网络105连接客户端设备110、发布方130、网站140、数字组件分发系统150和设备完整性系统170。示例环境100可以包括许多不同的客户端设备110、发布方130和网站140。23.网站140是与域名相关联并由一个或多个服务器托管的一个或多个资源145。示例网站是用html格式化的网页集合,其中可以包含文本、图像、多媒体内容和编程元素,诸如脚本。每个网站140由发布方130维护,发布方130是控制、管理和/或拥有网站140的实体。24.资源145是可以通过网络105提供的任何数据。资源145由与资源145相关联的资源地址(例如,统一资源定位符(universalresourcelocator,url))来标识。资源包括html页面、文字处理文档和可移植文档格式(portabledocumentformat,pdf)文档、图像、视频和提要源,仅举几例。资源可以包括内容,诸如单词、短语、图像和声音,其可以包括嵌入的信息(诸如超链接中的元信息)和/或嵌入的指令(诸如脚本)。25.客户端设备110是能够通过网络105通信的电子设备。示例客户端设备110包括个人计算机、移动通信设备(例如智能电话、数字媒体播放器、智能扬声器、可穿戴设备(例如,智能手表))、以及能够通过网络105发送和接收数据的其他设备。客户端设备110通常包括应用111,诸如网络浏览器和/或本地应用,以便于通过网络105发送和接收数据。本机应用是为特定平台或特定设备开发的应用。发布方130可以开发本地应用并将其提供给客户端设备110。26.一些资源145、应用页面或其他应用内容可以包括数字组件槽,用于用资源145或应用页面呈现数字组件。如本文通篇所用,短语“数字组件”指数字内容或数字信息的离散单元(例如,视频剪辑、音频剪辑、多媒体剪辑、图像、文本或其他内容单元)。数字组件129可以作为单个文件或文件集合以电子方式存储在物理存储器设备中,并且数字组件可以采取视频文件、音频文件、多媒体文件、图像文件或文本文件的形式,并且包括广告信息,使得广告是数字组件的一种类型。例如,数字组件129可以是旨在补充由应用111呈现的网页、资源或应用页面的内容的内容。更具体地,数字组件129可以包括与资源内容相关的数字内容(例如,数字组件可以与网页内容相同的主题相关,或者与相关主题相关)。因此,由数字组件分发系统150提供数字组件可以补充并且通常增强网页内容。27.当应用111加载包括一个或多个数字组件槽的资源145或应用内容时,网络浏览器111可以从数字组件分发系统150请求每个槽的数字组件129。数字组件分发系统150又可以从数字组件提供方160请求数字组件。数字组件提供方160是提供数字组件以便与资源145和/或其他内容一起呈现的实体。示例数字组件提供方是提供广告的广告商。28.在一些情况下,数字组件分发系统150还可以从一个或多个数字组件合作伙伴152请求数字组件。数字组件合作伙伴152是代表数字组件提供方160响应于数字组件请求来选择数字组件的实体。29.数字组件分配系统150可以基于各种标准为每个数字组件槽选择数字组件。例如,数字组件分发系统150可以基于与资源的相关性、或其他应用内容、数字组件的性能(例如,用户与数字组件交互的速率)等,从从数字组件提供方160和/或数字组件合作伙伴152接收到的数字组件中选择数字组件。数字组件分发系统150然后可以将所选择的数字组件提供给客户端设备110,以便与资源145或其他应用内容一起呈现。数字组件分发系统150可以将所选择的数字组件129传输到一个或多个客户端设备110,以供在客户端设备110上运行的应用111呈现。30.当应用111通过网络105发送请求120时,应用111可以发送带有该请求的证明令牌122。例如,如果应用111向数字组件分发系统150发送数字组件请求,该请求可以包括证明令牌122。类似地,如果应用111向其他实体(例如,向发布方130、数字组件分发系统150、数字组件合作伙伴152或数字组件提供方160)发送请求或其他数据来管理(例如,删除)由该实体存储的数据,则该请求可以包括证明令牌122。31.在一些实现中,应用111被配置为发送用于指定的类型的请求的证明令牌122。例如,发送证明令牌122的每个应用111可以包括软件开发工具包(softwaredevelopmentkit,sdk)或应用编程接口(applicationprogramminginterface,api),其使得应用111生成和/或发送证明令牌111。sdk可以指定请求的集合,例如,管理用户数据的请求、请求数字组件等,其中将包括证明令牌122。其他类型的请求,例如,请求新闻网页,可能不需要证明令牌122。32.在一些实现中,应用111被配置为针对每个指定的类型的请求生成证明令牌122。在一些实现中,应用111被配置为从客户端设备110的操作系统或在客户端设备111上操作的其他应用请求证明令牌122,以与请求120一起发送。例如,网络浏览器的浏览器二进制文件中的操作系统的可信的代码可以生成证明令牌122。在该示例中,应用111可以向其他应用发送包括在证明令牌122中的数据的集合123。33.实体使用证明令牌122来证实请求的完整性和客户端设备110的完整性。例如,使用户能够管理由其他实体存储的数据可能会导致恶意用户试图管理和/或窃取其他用户的数据。对于数字组件,一些恶意实体可能试图伪造数字组件请求的参数,例如,指定将提供数字组件的不同资源和/或指定将呈现数字组件的不同用户,以使请求看起来比实际更有价值。此外,一些恶意方可能会出于恶意目的试图模仿他人的客户端设备。34.证明令牌122通过中介在客户端设备110和其他实体的计算机或其他设备之间提供安全通信信道,防止其他方改变请求120并确保请求120来自经证实的客户端设备110。证明令牌122包括数据的集合123和基于数据的集合123生成的签名124,例如,数字签名。数据的集合123可以包括发送请求的客户端设备110的公钥(例如,公钥123)、指示证明令牌122被创建的时间的令牌创建时间、有效载荷和/或设备完整性令牌125。35.客户端设备110生成并维护一对或多对相关的加密密钥(cryptographickey),包括私钥112和公钥113,公钥113对应于私钥112并数学链接到私钥112。使用私钥112数字签名的数据只能使用相应的公钥113来验证。包括使用与公钥113相对应的私钥112生成的数字签名124的证明令牌122只能使用相应的公钥113来验证。类似地,使用公钥113加密的数据只能使用相应的私钥112解密。36.发起请求的应用111(或在客户端设备110上运行的其他应用)使用私钥112生成数据的集合123的签名124。在一些实现中,应用111使用椭圆曲线数字签名算法(ellipticcurvedigitalsignaturealgorithm,ecdsa)来生成数字签名,但是也可以使用其他签名技术,诸如rsa。由于证明令牌122可以从移动设备发送,导致较小数据尺寸的签名技术可能是优选的。公钥113与证明令牌122一起提供,使得接收证明令牌122的实体可以使用公钥113来验证数据的集合123的签名124。37.可以替换客户端设备110的私钥112和公钥113。例如,密钥112和113可以基于指定的时间段被周期地替换,以防止实体使用被包括在证明令牌122中的公钥113来跟踪用户。在另一示例中,用户可以发起密钥替换,并且作为响应,客户端设备110可以生成新的一对私钥和公钥。38.客户端设备110的公钥113可以用作客户端设备110的唯一设备标识符。如下文更详细描述的,该角色中的公钥113可以使请求120的接收方能够验证请求120源自客户端设备110。39.如上所述,令牌创建时间指示证明令牌122被创建的时间。应用111可以记录应用创建证明令牌的创建时间。该令牌创建时间可以是高分辨率时间戳(例如,精确到秒、毫秒或微秒)。令牌创建时间可用于确定包括证明令牌122的请求120是新的还是最近的请求。例如,接收证明令牌122的实体可以将令牌创建时间与当前时间或接收到证明令牌122的时间进行比较。如果两次之差超过阈值,实体可以确定请求不是新的或是无效的,如下面更详细描述的。40.令牌创建时间也可用于检测重放攻击。例如,如果接收到具有相同数据的集合123的多个请求,包括相同的令牌创建时间,则接收请求的实体可以确定这些请求是重复的和/或这些请求是重放攻击的一部分。41.令牌创建时间与其他数据相结合,也可以用作请求120的交易标识符。例如,交易标识符可以是证明令牌122的令牌创建时间和证明令牌122的公钥113中的两个或多个的组合。交易标识符可用于对从多个信道接收的相同请求的多个版本进行重复数据消除。例如,数字组件提供方160-3可以从数字组件分发系统150和数字组件合作伙伴152两者接收相同的请求。在该示例中,交易标识符可以基于证明令牌122的令牌创建时间和证明令牌122的公钥113。数字组件提供方160-3可以比较两个或更多个请求中的两条数据,以确定这些请求是否是重复的。42.有效载荷可以包括单个请求120的数据。例如,如果请求120是针对数字组件的,有效载荷可以包括可以用于选择数字组件的数据。该有效载荷可以包括具有数字组件槽的资源145(或资源145的网址)、关于资源145的信息(例如,资源的主题)、关于数字组件槽的信息(例如,槽的数量、槽的类型、槽的尺寸等)、关于客户端设备110的信息(例如,设备类型、设备的ip地址、客户端设备110的地理位置)(如果用户启用了此特征)和/或其他适当的信息。43.如果请求120是在发布方130、数字组件分发系统150、数字组件合作伙伴152、数字组件提供方160或其他实体处管理用户的数据,则请求120可以包括指定所请求的改变的数据。例如,如果用户选择从数字组件提供方160-2移除用户的所有数据,则有效载荷将包括指定该数据移除和数字组件提供方160-2的数据(例如,数字组件提供方160-2的标识符或网络地址)。44.设备完整性令牌125通过使接收方能够确定请求120是否由可信的客户端设备110发送来增强证明令牌122的欺诈检测能力。客户端设备110可以从设备完整性系统170请求设备完整性令牌125。例如,客户端设备110可以包括设备完整性应用,其获得欺诈检测信号,例如,与客户端设备110相关的设备等级欺诈信号,并将这些信号发送到设备完整性系统170。设备完整性系统170可以评估欺诈检测信号,并确定客户端设备110是否是可信的。在一些实现中,设备完整性系统170可以基于评估向客户端设备110分配表示可信度等级的判决。例如,可信度等级可以包括指示完全可信的设备的第一值、指示不完全可信的可信的设备的第二值、指示可疑设备的第三值以及指示不可信的设备的第四值。设备完整性系统170随后可以向客户端设备110发送包括判决的设备完整性令牌125。45.客户端设备110可以为从客户端设备110发送的包括证明令牌122的每个请求120请求设备完整性令牌125。然而,由于可能有成千上万的客户端设备110每天生成数百万个请求,这可能会使设备完整性系统170负担过重。在一些实现中,每个客户端设备110可以基于指定的时间段,例如,每小时、每天、每周等,周期地为客户端设备110请求设备完整性令牌125。客户端设备110然后可以将设备完整性令牌125存储在令牌高速缓存115中。为请求120生成证明令牌122的应用然后可以从令牌高速缓存115访问设备完整性令牌125。46.通过周期地更新和替换客户端设备110的设备完整性令牌125,设备完整性令牌125表示客户端设备110的当前(基于指定的时间段)完整性。例如,客户端设备110的完整性可以随着时间而改变,例如,响应于下载病毒。因此,对设备完整性令牌的更频繁更新可以更好地表示客户端设备的完整性,但代价是向设备完整性系统170发送更多请求(例如,使用更多带宽)以及设备完整性系统170处理更多请求(例如,需要更多处理能力)。47.设备完整性令牌125可以包括客户端设备110的公钥113(或客户端设备110的公钥113的加密哈希或客户端设备110的其他标识符)、指示设备完整性令牌125被创建的时间的令牌创建时间、判决以及签名,例如,数字签名。在设备完整性令牌125中包括公钥113将设备完整性令牌125绑定到证明令牌122,因为两个令牌都包括公钥113。通过将客户端设备110的公钥113包括在设备完整性令牌125中,证明令牌122的接收方可以确定为该客户端设备110生成了设备完整性令牌125。这防止其他方能够在来自仿真器或受损客户端设备的请求中包括可信的设备的设备完整性令牌125。48.该令牌创建时间使得包括设备完整性令牌125的请求120的接收方能够确定客户端设备110上次被评估的时间。反过来,这可以用于确定是否信任客户端设备110。例如,如果设备完整性令牌125是在请求120被生成和接收之前几周创建的,则接收方可能会犹豫是否信任客户端设备110,因为客户端设备110的完整性在这几周内可能已经改变。49.如上所述,该判决指示在生成设备完整性令牌125时客户端设备110的可信度(或完整性)等级。接收方使用判决来确定是否信任包括设备完整性令牌125的请求120。例如,如果判决指示客户端设备110是不可信的,则接收方可以忽略该请求,例如,不响应该请求。50.设备完整性系统170可以使用私钥和设备完整性令牌125中的数据来生成包括在设备完整性令牌125中的数字签名。设备完整性系统170可以对该私钥保密,并将与私钥相对应的公钥分发给客户端设备110发送的请求的潜在接收方,诸如发布方130、数字组件分发系统150、数字组件合作伙伴152和数字组件提供方160。这使得接收方能够验证设备完整性令牌125的数字签名。这也允许接收方知道客户端设备110是由设备完整性系统170评估的,因此,判决是可信的。51.客户端设备110可以发送包括证明令牌122的请求120,证明令牌122又包括设备完整性令牌125。由于客户端设备110可以是无线通信的移动设备,证明令牌122的尺寸应该尽可能小,以减少传输证明令牌122所需的带宽量。可以使用几种技术来减小证明令牌122的尺寸。在所示示例中,证明令牌122和设备完整性令牌125两者都包括客户端设备110的公钥113。52.在一些实现中,生成证明令牌122的应用可以在数字签名已经生成之后但在传输证明令牌122之前移除公钥之一。例如,应用可以从证明令牌122中移除公钥113,但是将公钥113留在设备完整性令牌125中。在该示例中,证明令牌122的接收方可以从设备完整性令牌125获得公钥113,用于验证证明令牌122的数字签名。53.类似地,应用可以从设备完整性令牌125中移除公钥113,但是将公钥留在证明令牌122中。在该示例中,证明令牌122的接收方可以从证明令牌122获得公钥,用于验证设备完整性令牌125的数字签名。例如,接收方的设备可以被配置为检查两个令牌的公钥113。如果只有一个令牌包括公钥113,则设备可以从包括公钥113的令牌获得公钥113,用于验证不包括公钥113的令牌的数字签名。例如,设备可以将公钥113复制到令牌中公钥113通常所在的位置,然后使用令牌的数据验证数字签名。54.在一些应用中,客户端设备110可以用设备完整性令牌125和本技术中讨论的除了设备的公钥113之外的所有其他数据来填充证明令牌122,然后对证明令牌进行数字签名(同样在证明令牌122中没有设备公钥,但是在设备完整性令牌125中有设备公钥)。除了使用设备完整性令牌125中包括的设备公钥113进行数字签名证实之外,接收方将证实证明令牌122和嵌入的设备完整性令牌125,如这里所讨论的。在一些更多的应用中,如果设备公钥113的加密哈希小于其加密哈希,则设备完整性令牌125可以包含设备公钥113的加密哈希,并且证明令牌122可以包含设备公钥113。注意,这可以在传输期间减小证明令牌122的尺寸,而不降低检测欺诈或伪造的请求的加密能力。55.当接收方接收到包括证明令牌122的请求120(或其他数据通信)时,接收方可以使用证明令牌122来证实请求120的完整性和发送请求120或其他数据通信的客户端设备110的完整性,如图2和图3中所述。56.图2是示出用于证实请求和发送请求并响应请求的客户端设备的完整性的示例过程200的流程图。过程200可以由例如请求的接收方实现,诸如图1的发布方130、数字组件分发系统150、数字组件合作伙伴170或数字组件提供方160。过程200的操作也可以被实现为存储在非暂时性计算机可读介质上的指令,并且由一个或多个数据处理设备执行指令可以使得一个或多个数据处理设备执行过程200的操作。57.接收包括证明令牌的请求(202)。客户端设备的应用可以响应于用户与应用的交互发送请求。例如,如果用户导航到网站以查看资源,则网络浏览器应用可以向网站发送请求。在另一示例中,如果资源或应用内容包括数字组件槽,则应用可以向数字组件分发系统发送对数字组件的请求。在又一个示例中,如果用户改变用于存储用户数据的设置,例如,存储已经在缓存文件(cookie)中捕获并发送到其他实体的用户数据,则该请求可以是修改(例如,删除)用户数据的请求。58.如上所述,该请求可以包括证明令牌,该证明令牌包括数据的集合和数据的集合的数字签名。数据的集合可以包括发送请求的客户端设备的公钥、指示证明令牌创建时间的令牌创建时间、有效载荷和/或设备完整性令牌。应用可以使用客户端设备的公钥生成数据的集合的数字签名。59.确定请求的完整性是否是有效的(204)。如果在创建证明令牌的时间之间数据的集合中的任何数据改变了或者令牌创建时间和接收到请求的时间之间的持续时间超过阈值,则请求的完整性可能无效。换句话说,如果所确定的令牌创建时间超过接收到请求的时间的阈值持续时间,则可以确定请求的完整性无效。60.如果确定请求的完整性是无效的,则不提供对请求做出响应(206)。也就是说,收件人可以忽略该请求。例如,如果请求是针对资源的,则网站可能不会提供该资源。如果请求是针对数字组件的,则确定请求是无效的的接收方可能不提供数字组件。如果请求是删除或改变用户数据,则如果请求的完整性是无效的,则接收方不得响应请求而删除或改变用户数据。61.如果确定请求的完整性是有效的,则确定发送请求的客户端设备的完整性是否是有效的(206)。该确定可以基于设备完整性令牌进行。如上所述,设备完整性令牌可以包括数据的集合,该数据的集合包括发送请求的客户端设备的公钥、指示设备完整性令牌何时被创建的令牌创建时间、指示发送请求的客户端设备的可信度等级的判决。设备完整性令牌还可以包括使用设备完整性系统的私钥和设备完整性令牌的数据的集合生成的数字签名。62.客户端设备的完整性是否是有效的的确定可以基于设备完整性令牌的数据在生成设备完整性令牌之后是否被改变、设备完整性令牌的判决和/或令牌创建时间和接收到请求的时间之间的持续时间是否超过阈值。例如,如果判决指示客户端设备是不可信的,则接收方可以确定客户端设备的完整性是无效的。用于确定请求的完整性是否是有效的以及客户端设备的完整性是否是有效的的示例过程在图3中示出并在下面描述。63.如果确定请求的完整性是无效的,则不提供对请求做出响应(206)。如果确定请求的完整性和客户端设备的完整性两者都是有效的,则提供对请求的响应(208)。例如,如果请求是针对资源的,则网站可以响应于该请求来提供资源。如果该请求是针对数字组件的,则确定该请求是有效的的接收方可以响应于该请求提供数字组件。如果请求是删除或改变用户数据,则如果请求的完整性是有效的,则接收方可以响应于该请求来删除或改变用户数据。64.图3是示出使用证明令牌来确定请求的完整性是否是有效的的示例过程300的流程图。过程300可以由例如请求的接收方来实现,诸如图1的发布方130、数字组件分发系统150、数字组件合作伙伴170或数字组件提供方160。过程300的操作也可以被实现为存储在非暂时性计算机可读介质上的指令,并且由一个或多个数据处理设备执行指令可以使得一个或多个数据处理设备执行过程300的操作。65.访问证明令牌(302)。证明令牌可以被包括在从客户端设备接收的请求中,例如,从在客户端设备上运行的应用接收的请求中。如上所述,证明令牌包括数据的集合和该数据的集合的数字签名。数据的集合可以包括发送请求的客户端设备的公钥、指示客户端设备创建证明令牌的时间的令牌创建时间、有效载荷和/或设备完整性令牌。66.确定令牌创建时间是在接收到请求的时间的阈值持续时间内还是在当前时间的阈值持续时间内(304)。例如,可以确定接收请求的时间(或当前时间)和令牌创建时间之间的差。如果差小于或等于阈值持续时间,则令牌创建时间在阈值持续时间内。如果令牌创建时间不在阈值持续时间内,例如,意味着请求是旧的,则请求的完整性可以被分类为无效(312)。67.如果令牌创建时间在阈值持续时间内,例如,意味着请求是新的或最近的,则确定证明令牌的数据的集合中的数据在证明令牌的数字签名生成之后是否已经被修改(306)。例如,包括在证明令牌中的浏览器的公钥可用于验证数据的集合的数字签名。如果数字签名被验证,则在生成数字签名后数据没有被修改。如果判决数据的集合在证明令牌被创建之后没有被修改,则请求可能是可信的。如果数字签名没有被验证,则确定数据的至少一部分被修改。如果判决是数据的集合在证明令牌被创建之后被修改,则可以确定该请求不可信。例如,如果欺诈方改变了请求的内容,或者请求被错误地或错误地传输,数据的集合内的数据可能已经被修改。68.如果确定数据的集合中的数据已经被修改,则请求的完整性被分类为无效(312)。如果确定证明令牌的数据的集合中的数据没有被修改,则确定设备完整性令牌是否是有效的(308)。可以基于设备完整性令牌的判决,使用设备完整性系统的公钥和/或指示设备完整性令牌创建时间的令牌创建时间,确定设备完整性令牌的数字签名是否可以被验证。69.接收方可以将设备完整性令牌的判决与该接收方的可信度阈值等级进行比较。例如,判决可以基于对从客户端设备接收的欺诈信号的评估来指定多个可信度等级之一。在特定的示例中,可能有两个等级,可信的或不可信的。在该示例中,如果判决指示客户端设备是不可信的,则接收方可以确定客户端设备的完整性是无效的,因此请求的完整性是无效的312。70.在另一个示例中,可信度可以有两个以上的等级。在这个示例中,接收方的设备可以将判决指定的可信度等级与接收方指定的最低可信度等级进行比较。如果判决的可信度等级满足最低等级,则客户端设备被认为对于该接收方是可信的。例如,范围可以是0-5,0表示完全不可信,5表示完全可信。接收方可以考虑接收方将响应的三个或更多有效设备的等级。在这个示例中,如果判决指定了两个或两个以下的等级,则接收方的设备将确定客户端设备的完整性是无效的,因此请求的完整性是无效的。71.设备完整性系统的公钥和设备完整性令牌中的数据也可用于验证设备完整性令牌的数字签名。如果数字签名没有被验证,那么设备的数据完整性令牌已改变,设备完整性令牌是无效的。在这种情况下,请求的完整性被分类为无效(312)。如果验证了数字签名,则自设备完整性令牌创建以来,设备完整性的数据没有改变。72.还可以确定指示接收到设备完整性令牌的时间的令牌创建时间是在接收到请求的时间的阈值持续时间内还是在当前时间的阈值持续时间内。例如,可以确定接收请求的时间(或当前时间)和设备完整性令牌的令牌创建时间之间的差。如果差小于或等于阈值持续时间,则令牌创建时间在阈值持续时间内。如果令牌创建时间不在阈值持续时间内,例如,意味着设备完整性令牌是旧的,则设备完整性令牌可以被认为是无效的,因此,该请求被分类为无效(312)。73.如果判决指示客户端设备是可信的或者由判决指定的可信等级满足阈值,则数字签名被验证,并且设备完整性系统的令牌创建时间在其阈值持续时间内,设备完整性令牌可以被认为是有效的。如果设备完整性令牌是有效的,证明令牌的令牌创建时间在其阈值持续时间内,并且证明令牌的数字签名被验证,则请求的完整性被分类为有效。74.在一些实现中,可以确定证明令牌的公钥是否匹配设备完整性令牌的公钥。这两者都应该是客户端设备的公钥。如果它们匹配,并且其他标准(例如,判决是可信的、签名已验证等)被满足,则该请求可以被认为是有效的。但是,如果两个公钥不匹配,则可以认为请求无效。在一些实现中,这种检查可能不会发生,因为在从客户端设备传输之前,可以从令牌之一中移除公钥之一,纯粹是为了更小的传输尺寸,而不牺牲检测欺诈或伪造的请求的加密能力。75.本说明书中描述的主题和操作的实施例可以在数字电子电路中实现,或者在计算机软件、固件或硬件中实现,包括本说明书中公开的结构及其结构等同,或者在它们中的一个或多个的组合中实现。本说明书中描述的主题的实施例可以被实现为一个或多个计算机程序,即编码在计算机存储介质上的计算机程序指令的一个或多个模块,用于由数据处理装置执行或控制数据处理装置的操作。可替换地或附加地,程序指令可以被编码在人工生成的传播信号上,例如,机器生成的电、光或电磁信号,其被生成来编码信息以传输到合适的接收器装置,用于由数据处理装置执行。计算机存储介质可以是或包括在计算机可读存储设备、计算机可读存储基底、随机或串行存取存储器阵列或设备、或它们中的一个或多个的组合中。此外,虽然计算机存储介质不是传播信号,但是计算机存储介质可以是编码在人工生成的传播信号中的计算机程序指令的源或目的地。计算机存储介质也可以是或包括在一个或多个单独的物理组件或介质(例如,多个cd、磁盘或其他存储设备)中。76.本说明书中描述的操作可以实现为由数据处理设备对存储在一个或多个计算机可读存储设备上或从其他来源接收的数据执行的操作。77.术语“数据处理装置”包括用于处理数据的所有种类的装置、设备和机器,包括例如可编程处理器、计算机、片上系统、或前述的多个或组合。该装置可以包括专用逻辑电路,例如,fpga(现场可编程门阵列)或asic(专用集成电路)。除了硬件之外,该装置还可以包括为所讨论的计算机程序创建执行环境的代码,例如,构成处理器固件、协议栈、数据库管理系统、操作系统、跨平台运行时环境、虚拟机或它们中的一个或多个的组合的代码。该装置和执行环境可以实现各种不同的计算模型基础设施,诸如网络服务、分布式计算和网格计算基础设施。78.计算机程序(也称为程序、软件、软件应用、脚本或代码)可以用任何形式的编程语言编写,包括编译或解释语言、声明性或过程性语言,并且它可以以任何形式部署,包括作为独立程序或作为模块、组件、子例程、对象或适合在计算环境中使用的其他单元。计算机程序可以,但不是必须,与文件系统中的文件相对应。程序可以存储在保存其他程序或数据的文件的一部分中(例如,存储在标记语言文档中的一个或多个脚本),存储在专用于所讨论的程序的单个文件中,或者存储在多个协同文件中(例如,存储一个或多个模块、子程序或部分代码的文件)。计算机程序可以被部署为在一台计算机上或位于一个站点或分布在多个站点并通过通信网络互连的多台计算机上执行。79.本说明书中描述的过程和逻辑流可以由一个或多个可编程处理器执行,该处理器执行一个或多个计算机程序,以通过对输入数据进行操作并生成输出来执行动作。这些过程和逻辑流也可以由专用逻辑电路来执行,并且装置也可以被实现为专用逻辑电路,例如,fpga(现场可编程门阵列)或asic(专用集成电路)。80.适于执行计算机程序的处理器包括,例如,通用和专用微处理器两者,以及任何类型的数字计算机的任何一个或多个处理器。通常,处理器将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的基本元件是用于根据指令执行动作的处理器以及用于存储指令和数据的一个或多个存储器设备。通常,计算机还将包括或可操作地耦合到一个或多个用于存储数据的大容量存储设备,例如磁盘、磁光盘或光盘,以从其接收数据或向其传输数据,或两者兼有。然而,计算机不需要有这样的设备。此外,计算机可以嵌入到其他设备中,例如,移动电话、个人数字助理(personaldigitalassistant,pda)、移动音频或视频播放器、游戏控制台、全球定位系统(gps)接收器、或便携式存储设备(例如,通用串行总线(usb)闪存驱动器),仅举几例。适于存储计算机程序指令和数据的设备包括所有形式的非易失性存储器、介质和存储器设备,包括例如半导体存储器设备,例如,eprom、eeprom和闪存设备;磁盘,例如,内部硬盘或可移动磁盘;磁光盘;和cdrom和dvd-rom盘。处理器和存储器可以由专用逻辑电路来补充或结合在其中。81.为了提供与用户的交互,本说明书中描述的主题的实施例可以在计算机上实现,该计算机具有用于向用户显示信息的显示设备,例如,crt(阴极射线管)或lcd(液晶显示器),以及用户可以向计算机提供输入的键盘和定点设备,例如,鼠标或轨迹球。也可以使用其他类型的设备来提供与用户的交互;例如,提供给用户的反馈可以是任何形式的感官反馈,例如,视觉反馈、听觉反馈、或触觉反馈;并且可以以任何形式接收来自用户的输入,包括声音、语音或触觉输入。此外,计算机可以通过向用户使用的设备发送文档和从用户使用的设备接收文档来与用户交互;例如,通过响应于从网络浏览器接收的请求,将网页发送到用户客户端设备上的网络浏览器。82.本说明书中描述的主题的实施例可以在计算系统中实现,该计算系统包括后端组件(例如,作为数据服务器)、或者包括中间件组件(例如,应用服务器)、或者包括前端组件(例如,具有图形用户界面或网络浏览器的客户端计算机,用户可以通过该图形用户界面或网络浏览器与本说明书中描述的主题的实现交互)、或者一个或多个这样的后端、中间件或前端组件的任意组合。该系统的组件可以通过任何形式或介质的数字数据通信互连,例如,通信网络。通信网络的示例包括局域网(“lan”)和广域网(“wan”)、内部网络(例如,互联网)和对等网络(例如,自组织对等网络)。83.计算系统可以包括客户端和服务器。客户端和服务器通常彼此远离,并且通常通过通信网络进行交互。客户端和服务器的关系是通过运行在各自计算机上的计算机程序产生的,并且彼此之间具有客户端-服务器关系。在一些实施例中,服务器将数据(例如,html页面)传输到客户端设备(例如,出于向与客户端设备交互的用户显示数据和从其接收用户输入的目的)。在客户端设备处生成的数据(例如,用户交互的结果)可以在服务器处从客户端设备接收。84.虽然本说明书包含许多具体的实施细节,但是这些不应被解释为对任何发明或可能要求保护的范围的限制,而是对特定发明的特定实施例的特定特征的描述。单个实施例的上下文中本说明书中描述的某些特征也可以在单个实施例中组合实现。相比之下,在单个实施例的上下文中描述的各种特征也可以在多个实施例中单独实现或者在任何合适的子组合中实现。此外,尽管特征可以在上面被描述为在某些组合中起作用,并且甚至最初被这样要求保护,但是在一些情况下,来自所要求保护的组合的一个或多个特征可以从该组合中删除,并且所要求保护的组合可以指向子组合或子组合的变体。85.类似地,虽然在附图中以特定顺序描述了操作,但是这不应该被理解为要求以所示的特定顺序或顺序执行这些操作,或者要求执行所有示出的操作,以获得期望的结果。在某些情况下,多任务和并行处理可能是有利的。此外,上述实施例中的各种系统组件的分离不应该被理解为在所有实施例中都需要这种分离,并且应该理解,所描述的程序组件和系统通常可以集成在单个软件产品中或者封装到多个软件产品中。86.因此,已经描述了主题的特定实施例。其他实施例在以下权利要求的范围内。在一些情况下,权利要求中列举的动作可以以不同的顺序执行,并且仍然获得期望的结果。此外,附图中描述的过程不一定需要所示的特定顺序或顺序来获得期望的结果。在某些实现中,多任务和并行处理可能是有利的。当前第1页12当前第1页12
再多了解一些

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

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

相关文献