将设备标识符和用户标识符相关联的设备盗窃防护的制作方法

文档序号:13081673阅读:142来源:国知局
将设备标识符和用户标识符相关联的设备盗窃防护的制作方法与工艺



背景技术:

随着技术的发展,计算设备在我们的日常生活中日益普及。这些计算设备中的许多是便携式的,诸如智能电话、平板计算机等。尽管这种便携性提供了许多好处,但是其也使得这些设备成为盗贼的目标。许多计算设备对于盗窃提供很少的防护或不提供防护,从而容许盗贼容易地出售或使用这些被盗设备。



技术实现要素:

提供本发明内容来以简化的形式介绍概念的选择,这些概念在下面的具体实施方式中进一步描述。本发明内容不意图标识所要求保护的主题的关键特征或必要特征,也不意图用于限制所要求保护的主题的范围。

根据一个或多个方面,确定要在计算设备上启用盗窃防护。将计算设备的用户的用户凭证在网络上发送到身份服务,并从身份服务接收指示用户凭证已被身份服务验证的票据。票据在网络上被发送到密钥服务,并且由密钥服务基于用于计算设备的恢复密钥以及标识计算设备的设备标识符所生成的值被从密钥服务接收并在计算设备上被保存为已认证变量。

根据一个或多个方面,做出要验证计算设备的所有权的决定。响应于在网络上对密钥服务的访问可用,从密钥服务获得用户是否是计算设备的所有者的指示,该指示是基于输入到计算设备的用户凭证。响应于在网络上对密钥服务的访问不可用,使用作为用户输入被接收的恢复密钥来确定用户是否是计算设备的所有者。响应于用户被确定为是计算设备的所有者而允许用户访问计算设备,以及响应于用户被确定为不是计算设备的所有者而拒绝用户访问计算设备。

附图说明

参照附图描述了具体实施方式。在附图中,附图标记的最左边的(一个或多个)数字标识其中首次出现该附图标记的附图。在说明书和附图中的不同实例中使用相同的附图标记可以指示相似或相同的项目。在附图中表示的实体可以指示一个或多个实体,并因此在讨论中可以互换地参照单数或复数形式的实体。

图1图示了根据一个或多个实施例的、实现把设备标识符和用户标识符相关联的设备盗窃防护的示例系统。

图2图示了根据一个或多个实施例的示例计算设备。

图3a和图3b是图示根据一个或多个实施例的、实现把设备标识符和用户标识符相关联的设备盗窃防护的示例过程的流程图。

图4a和图4b是图示根据一个或多个实施例的、实现基于计算设备的恢复密钥和标识符的数据值获得的示例过程的流程图。

图5图示了包括示例计算设备的示例系统,示例计算设备代表可以实现本文描述的各种技术的一个或多个系统和/或设备。

具体实施方式

本文讨论了把设备标识符和用户标识符相关联的设备盗窃防护。用户可以使他或她的计算设备受保护。受保护的计算设备或处于受保护状态的计算设备是指与用户的账户相关联的计算设备。不受保护的计算设备或处于不受保护状态的计算设备是指与未与用户的账户相关联的计算设备。在启动对计算设备的保护的时间,用户的凭证被提供给一个或多个服务,其验证凭证并生成恢复密钥。基于恢复密钥和计算设备的标识符(例如,通过对恢复密钥和计算设备标识符应用密码散列函数)生成数据值,并将数据值提供给计算设备。计算设备将数据值存储为已认证变量,从而允许该数据值在计算设备处被读取而不被盖写,除非由所述一个或多个服务授权那样做。

在不同的时间(例如,当用户期望使他或她的计算设备成为不受保护的计算设备时、当在计算设备上安装新版本的操作系统时、当报告用户的设备被偷或丢失时)处提示用户证明他或她对该设备的所有权。计算设备的所有者是其账户与计算设备相关联的用户。计算设备的所有者可以用不同的方式证明他或她对设备的所有权。如果计算设备经由网络(例如,互联网)连接到一个或多个服务,则用户将他或她的凭证提供给计算设备,该计算设备与一个或多个服务进行通信以验证用户的凭证,并因此验证该用户是设备的所有者。如果计算设备未经由网络连接到一个或多个服务,则用户使用该设备的恢复密钥。用户可以例如使用不同的计算设备来获得恢复密钥。使用计算设备的标识符和恢复密钥,在计算设备处生成数据值,并且如果基于用户所提供的恢复密钥生成的数据值与先前从一个或多个服务接收的数据值相同,则证明了该用户的对计算设备的所有权。如果用户证明了他或她的对计算设备的所有权,则被准许访问该设备。然而,如果用户未证明他或她的对计算设备的所有权,则不被准许访问该设备(对设备的访问被拒绝)。

因此,本文讨论的技术通过将计算设备与特定用户相链接或相关联来提高计算设备的安全性。如果用户的设备被偷,盗贼将不知道恢复密钥或用户的凭证,并因此将不能够访问和使用该设备。然而,通过允许设备的所有者(其能够证明他或她对设备的所有权)访问和使用设备而不管设备是否耦合到验证用户的凭证的一个或多个服务,提高了设备的可用性。此外,存储在计算设备上的数据值被存储为已认证变量,这指的是:在未经一个或多个服务(其验证用户的凭证)批准的情况下不能被写入的变量,因此盗贼进行的盖写数据值的尝试将被挫败。

本文讨论的技术通过利用远程服务管理计算设备的受保护状态和计算设备本身管理计算设备的受保护状态这二者的优点而进一步提高了计算设备的安全性和可用性。受信任的移动运营商或制造商能够在计算设备已经被用户退回(例如,以换取另一设备或退款)的情况下,禁用计算设备的受保护状态。此外,即使在计算设备无法访问验证用户凭证的远程服务的情况下,计算设备的所有者仍然能够证明对计算设备的所有权。

本文提到了密码术,其可以包括对称密钥密码术与对称密钥、和/或公钥密码术与公钥/私钥对。尽管这样的密钥密码术是本领域技术人员所熟知的,但本文包括对这样的密码术的简要概述以给予读者帮助。在公钥密码术中,实体(诸如用户、硬件或软件组件、设备、域等)已经与公钥/私钥对相关联。可以使公钥公开地可得到,但实体将私钥保持为秘密的。在没有私钥的情况下,在计算上很难对使用公钥加密的数据进行解密。因此,数据可以由任何实体用公钥进行加密,而仅可以由实体用对应的私钥解密。附加地,可以通过使用数据和私钥来生成该数据的数字签名。在没有私钥的情况下,在计算上很难创建可以使用公钥来验证的签名。具有公钥的任何实体可以使用公钥来通过对公钥、签名和被签名的数据执行合适的数字签名验证算法来验证数字签名。

另一方面,在对称密钥密码术中,共享密钥(也称为对称密钥)为两个实体所知并且由其保持为秘密的。具有共享密钥的任何实体典型地能够对用该共享密钥加密的数据进行解密。在没有共享密钥的情况下,在计算上很难对用共享密钥加密的数据进行解密。因此,如果两个实体均已知共享密钥,则每个实体都可以加密数据,该数据能被另一实体解密,但如果其他实体不知道共享密钥,则其他实体不能解密该数据。类似地,具有共享密钥的实体可以加密数据,该数据能被同一实体解密,但如果其他实体不知道共享密钥,则其他实体不能解密该数据。此外,可以基于对称密钥密码术(比如使用密钥散列消息认证码机制)来生成数字签名。具有共享密钥的任何实体可以生成和验证数字签名。例如,受信任的第三方可以基于特定实体的身份生成对称密钥,然后可以既生成又验证对于该特定实体的数字签名(例如,通过使用对称密钥对数据进行加密或解密)。

图1图示了根据一个或多个实施例的、实现把设备标识符和用户标识符相关联的设备盗窃防护的示例系统100。系统100包括计算设备102,其可以经由网络108与身份服务104和密钥服务106通信。网络108可以是各种各样不同的网络,包括互联网、局域网(lan)、蜂窝或其他电话网络、内联网、其他公共和/或私有网络、它们的组合等。

计算设备102可以是各种各样不同类型的设备,诸如台式计算机、服务器计算机、膝上型计算机或上网本计算机、移动设备(例如,平板计算机或平板手机设备、蜂窝或其他无线电话(例如智能电话)、记事本计算机、移动站)、可穿戴设备(例如,眼镜、头戴式显示器、手表、手环(bracelet))、娱乐设备(例如娱乐器械、通信地与显示设备耦合的机顶盒、游戏控制台)、电视或其他显示设备、汽车用计算机等。因此,计算设备102的范围可以从具有大量存储器和处理器资源的全资源设备(例如,个人计算机、游戏控制台)到具有有限的存储器和/或处理资源的低资源设备(例如,传统机顶盒、手持游戏控制台)。

服务104和106可以各自被实现为各种各样不同类型的设备中的一个或多个。类似于对计算设备102的讨论,实现服务104和106的这些设备可以是各种各样不同类型的设备,其范围从具有大量存储器和处理器资源的全资源设备到具有有限存储器和/或处理资源的低资源设备。尽管被图示为两个单独的服务,但服务104和106可替代地被实现为单个服务。

身份服务104为计算设备102的用户维护和验证用户凭证。这些用户凭证可以采取各种形式,例如用户id和口令组合、从智能卡或其他设备获得的数字证书或其他经数字签名的数据结构、由身份服务104提供给用户的个人标识号码等。身份服务104从计算设备102接收用户凭证,尝试验证用户凭证(例如,验证所接收的用户凭证是与先前提供给身份服务104的相同的用户凭证),并向计算设备102返回这些用户凭证是否被验证的指示。

密钥服务106生成并维护与计算设备标识符相关联的恢复密钥。计算设备102将其从身份服务104接收到的经验证的用户凭证的指示、连同计算设备102的标识符一起提供给密钥服务106。密钥服务106生成用于计算设备102的恢复密钥,并将该恢复密钥的记录维护为与计算设备102的设备标识符及用户的标识符(例如,如在从身份服务104接收的、关于是否验证了用户凭证的指示中所标识的)相关联。密钥服务106基于恢复密钥和设备标识符生成数据值,比如通过将密码散列算法应用于恢复密钥和设备标识符的组合(例如,级联)来进行。将该数据值返回计算设备102。密钥服务106还维护计算设备102是处于受保护状态还是不受保护状态的记录。

计算设备102包括盗窃防护系统110。盗窃防护系统110与身份服务104和密钥服务106通信。盗窃防护系统110向身份服务104提供用户凭证,并从身份服务104接收用户凭证是否被验证的指示。盗窃防护系统110还将用户凭证是否被验证的指示连同计算设备102的设备标识符的指示一起提供给密钥服务106。作为响应,盗窃防护系统110接收已经由密钥服务106基于计算设备102的恢复密钥以及标识计算设备102的设备标识符所生成的数据值。盗窃防护系统110还选通(gate)或控制对计算设备102的功能性的访问,从而允许用户访问和使用计算设备102,或拒绝用户访问和使用计算设备102。如下面更详细地讨论的,如果计算设备102处于受保护状态,则是否允许访问计算设备102的功能性是基于用户是否被证明是计算设备102的所有者。如果计算设备102处于不受保护状态,则不论用户是否被证明是计算设备102的所有者都允许访问计算设备102的功能性。

系统100还包括计算设备114。计算设备114可以是与上面关于计算设备102的讨论类似的各种各样类型计算设备中的任何一种。计算设备114的用户也可以访问身份服务104和密钥服务106,并接收与特定计算设备相关联的恢复密钥。作为示例,计算设备102的用户还可以是计算设备114的用户,并向身份服务104提供他或她的用户凭证。用户凭证被验证的指示被返回到计算设备114,计算设备114可以向密钥服务106提供这些用户凭证。密钥服务106使计算设备102的恢复密钥对于计算设备114的用户可用(密钥服务106如上面所讨论的那样把该恢复密钥维护为与该用户的标识符相关联)。如下面更详细地讨论的,计算设备的用户然后可以使用该恢复密钥来证明他或她是计算设备102的所有者。

应当注意,计算设备114和计算设备102是分开的设备,它们不需要为了让用户使用计算设备114来获得用于计算设备102的恢复密钥而彼此通信。计算设备102不需要经由有线连接或无线连接而连接到计算设备114(例如,计算设备102不需要被拴(tether)到计算设备114)。相反,用户把经由计算设备114获得的用于计算设备102的恢复密钥输入到计算设备102。例如,用户可以经由触摸屏、键区、可闻的输入等输入恢复密钥。

图2图示了根据一个或多个实施例的示例计算设备102。计算设备102包括盗窃防护系统110、用户输入模块202、输出模块204和已认证变量存储系统206。虽然本文参考模块202和204以及系统110和206来讨论特定功能性,但应当注意,模块202和204以及系统110和206中的单独个体的功能性可以被分成多个模块或系统,和/或多个模块或系统的至少一些功能性可以被组合成单个模块或系统。

如以上所论述的,盗窃防护系统110与身份服务104和密钥服务106进行通信,并选通或控制对计算设备102的功能性的访问。盗窃防护系统110可以用各种各样不同的方式中的任何一种来选通或控制对计算设备102的功能性的访问。在一个或多个实施例中,盗窃防护系统110在引导计算设备102的过程期间及早地(比如在预引导序列期间)操作,并且如果计算设备102的用户未被证明是计算设备的所有者,则终止计算设备102的引导。附加地或替代地,盗窃防护系统110可以在计算设备102的引导之后例如响应于来自密钥服务106或其他远程服务的请求而操作。在这样的情况下,盗窃防护系统110使得计算设备102的操作系统停止执行其他程序(例如,除盗窃防护系统110使用的那些程序之外的程序),直到计算设备102的用户被证明是计算设备102的所有者为止。

用户输入模块202从计算设备102的用户接收用户输入。可以用各种各样不同的方式提供用户输入,诸如通过按下设备102的键区或键盘的一个或多个键、按下设备102的控制器(例如,遥控设备、鼠标、轨迹板等)的一个或多个键、按下设备102的触摸板或触摸屏的特定部分、在设备102的触摸板或触摸屏上做出特定手势和/或在设备102的控制器(例如,遥控设备、鼠标、轨迹板等)上做出特定手势。也可以经由输入到设备102的其它物理反馈(诸如轻击设备102的任何部分)、可由设备102的运动检测组件或其他组件识别的动作(例如摇动设备102、旋转设备102、弯曲或折曲设备102等)等来提供用户输入。用户输入也可以用其他方式提供,诸如经由向麦克风的语音或其他可闻的输入、经由被图像捕获设备观察到的手或其他身体部位的运动等。

输出模块204生成、管理和/或输出内容以供显示、回放和/或其他呈现。该内容可以由输出模块204创建或从计算设备102的其他模块获得。该内容可以例如是用户界面(ui)的显示或回放部分、针对输入用户凭证或恢复密钥的提示等。内容可以由计算设备102的组件(例如,扬声器、交互式显示设备等)显示或以其他方式回放。替代地,输出模块204可以生成输出到与计算设备102分离的其他设备或组件(例如,扬声器、显示设备等)的一个或多个信号。

已认证变量存储系统206操作来存储本文讨论的各种不同的变量或数据值。在一个或多个实施例中,已认证变量存储系统206允许各种不同的程序或模块去读取由已认证变量存储系统206存储的变量或数据,但将这样的变量或数据写入已认证变量存储系统206中是仅当这样的写入是经认证的动作时才允许。可以用不同的方式来确定变量或数据的写入是经认证的,比如通过由一个或多个受信任的实体对变量或数据进行数字签名。这些一个或多个受信任的实体可以例如是盗窃防护系统110、身份服务104和密钥服务106之一或组合。在一个或多个实施例中,已认证变量存储系统206是符合并实现统一可扩展固件接口(uefi)规范(版本2.4勘误b,2014年4月)的系统。

图3a和图3b是图示根据一个或多个实施例的、用以实现把设备标识符和用户标识符相关联的设备盗窃防护的示例过程300的流程图。过程300由计算设备(比如图1的计算设备102)执行,并且可以用软件、固件、硬件或其组合来实现。过程300被示出为一组动作,且不限于所示出的执行各种动作的操作的顺序。过程300是用于实现把设备标识符和用户标识符相关联的设备盗窃防护的示例过程;参考不同附图在本文中包括对于实现把设备标识符和用户标识符相关联的设备盗窃防护的附加讨论。

在过程300中,做出有关是否启用对计算设备的保护的确定(动作302)。在过程300中提及的计算设备是实现过程300的计算设备。可以在不同时间启用对计算设备的保护。在一个或多个实施例中,当新的计算设备(例如,新购买的或开箱即用的计算设备)被首次引导时,该计算设备被默认地确定为启用保护,尽管用户可以可选地选择退出启用保护。附加地或替代地,可以确定计算设备的保护在不同时间被启用,比如响应于向计算设备的请求启用保护的用户输入、来自另一服务(例如,密钥服务106)的启用保护的请求等。

响应于确定为计算设备启用保护,从密钥服务获得基于用于计算设备的恢复密钥和计算设备的标识符的数据值(动作304)。如以上所论述的,可以通过将密码散列函数应用于恢复密钥和计算设备标识符而由密钥服务生成数据值。恢复密钥由密钥服务生成,而计算设备标识符由计算设备提供。计算设备标识符可以采用允许不同计算设备彼此区分的各种各样不同形式中的任何一种,诸如包括在计算设备的硬件组件中的独特的硬件标识符、由设备上的硬件或软件标识符的组合生成的值等。

图4a和图4b是图示根据一个或多个实施例的、实现基于计算设备的恢复密钥和标识符的数据值获得的示例过程400的流程图。在一个或多个实施例中,过程400实现图3a的动作304。过程400可以用软件、固件、硬件或其组合实现。图4的左手侧图示的过程400的动作由身份服务(比如图1的身份服务104)执行。图4的右手侧图示的过程400的动作由密钥服务(比如图1的密钥服务106)执行。图4的中间图示的过程400的动作由计算设备(比如图1或图2的计算设备102)执行。过程400被示出为一组动作,并且不限于所示出的执行各种动作的操作的顺序。过程400是用于基于计算设备的恢复密钥和标识符的数据值获得的示例过程;参考不同附图在本文中包括对基于计算设备的恢复密钥和标识符的数据值获得的附加讨论。

在过程400中,获得计算设备的用户的用户凭证(动作402)。这些用户凭证可以采取如以上所论述的各种形式,并且可以通过如以上所论述的各种各样不同的用户输入中的任何一个来提供。

用户凭证在网络(比如图1的网络108)上被发送到身份服务(动作404)。身份服务接收用户凭证(动作406)并验证所接收的用户凭证(动作408)。可以用不同的方式来验证用户凭证,比如通过将用户凭证与用户先前(从相同的计算设备或不同的计算设备)提供并由身份服务存储的用户凭证进行比较,并确定所接收的用户凭证与所存储的用户凭证是否匹配(与之相同)。附加地或替代地,可以用其他方式验证用户凭证,比如通过将各种规则或算法应用于用户凭证。

由身份服务进行数字签名并指示用户凭证被验证的票据被返回到计算设备(动作410)。票据是数据的集合(例如,数据分组或其他数据结构)。应当注意,过程400假设用户凭证被身份服务验证。如果用户凭证未被身份服务验证,则由身份服务返回到计算设备的票据指示用户凭证未被验证。

签名的票据由计算设备接收,计算设备在网络(诸如图1的网络108)上将签名的票据和计算设备的标识符发送到密钥服务(动作414)。密钥服务接收签名的票据和计算设备标识符(动作416)并生成用于计算设备的恢复密钥(动作418)。恢复密钥可以通过应用基于计算设备标识符等的特定规则或算法而以各种不同的方式生成,比如使用随机数生成器或伪随机数生成器来生成。

基于恢复密钥和计算设备标识符生成数据值(动作420)。在一个或多个实施例中,通过组合(例如,级联)恢复密钥和计算设备标识符、然后将密码散列函数应用于被组合的恢复密钥和计算设备标识符来生成数据值。

密钥服务维护恢复密钥的副本(动作422)。恢复密钥的副本由密钥服务存储,且恢复密钥与计算设备的计算设备标识符(例如,如从计算设备接收的)和用户的标识符(例如,如由身份服务签名的票据所指示的)相关联的指示被维护。此关联可以用不同的方式来维护,例如通过使用标识该关联的列表、记录、表格或其他数据结构来维护。

数据值被返回到计算设备(动作424),所述计算设备从密钥服务接收数据值(动作426)。

应当注意,过程400假设用户凭证被身份服务验证,并进一步地假设票据上的数字签名被密钥服务验证。如果用户凭证未被身份服务验证和/或票据上的数字签名未被密钥服务验证,则密钥服务不在动作418中生成恢复密钥,并且不在动作424中将数据值返回到计算设备。

返回到图3a,获得的数据值被作为已认证变量保存到计算设备上的已认证变量存储系统(动作306)。如以上所论述的,仅当数据值被认证(例如,被受信任的实体来数字地签名)时,才保存数据值。如下面更详细地讨论的,该数据值可被用于证明计算设备的用户是计算设备的所有者。

在一个或多个实施例中,该数据值被称为保护状态变量。在使用uefi规范实现已认证变量存储系统的情况下,保护状态变量被存储为已认证uefi变量,其具有指示以下项的属性,即:该变量要被存储在非易失性存储器中、在计算设备引导期间将可访问、在计算设备的运行时间期间将可访问、以及具有指示该变量被存储的日期和时间的时间戳。

在某个时间点,做出要验证计算设备的所有权的决定(动作308)。该决定例如由计算设备102的盗窃防护系统110做出。可以在各种时间或响应于各种不同事件来做出该决定:盗窃防护系统110的开发者或设计者已经确定:合意的是验证计算设备的用户确实是计算设备所有者。这样的时间或事件可以是例如:在用户期望使他或她的计算设备成为不受保护的计算设备时、在计算设备上安装操作系统的新版本时、每次当从远程服务(例如,密钥服务106)接收到报告该用户的设备被偷或丢失的通知时、每次当用户尝试在计算设备上闪现(flash)新图像时等。

过程300基于对密钥服务的访问是否对于计算设备可用而继续进行(步骤310)。由于各种原因,诸如计算设备不在具有网络接入的位置、计算设备的网络功能性被停用等,对密钥服务的访问可能对于计算设备是不可用的。

如果对密钥服务的访问对于计算设备是可用的,则在计算设备处获得用户凭证(动作312)。访问密钥服务以基于用户凭证获得关于用户是否是计算设备所有者的指示(动作314)。在动作314中,将用户凭证提供给身份服务,身份服务返回指示用户凭证被验证的经数字签名的票据,并且计算设备向密钥服务提供经数字签名的票据,如上文参照过程300所讨论的。密钥服务确定它是否具有针对该用户标识符和由计算设备提供的计算设备标识符的有效恢复密钥的记录。如果密钥服务具有针对该用户标识符和由计算设备提供的计算设备标识符的有效恢复密钥的记录,则密钥服务返回该用户是计算设备所有者的指示。如果密钥服务不具有针对该用户标识符和由计算设备提供的计算设备标识符的有效恢复密钥的记录,则密钥服务返回该用户不是计算设备所有者的指示。

恢复密钥当由密钥服务生成(例如,在图4b的动作418)时,最初是有效恢复密钥。恢复密钥可以响应于各种各样不同的事件而变得无效。一个这样的事件是将计算设备102改变为不受保护状态的用户请求(例如,来自图1的计算设备102或图1的计算设备114)。另一个这样的事件是密钥服务向另一设备(例如,图1的计算设备114)透露恢复密钥。替代地,不是维护恢复密钥无效的记录,而是密钥服务可以简单地删除恢复密钥,使得密钥服务没有针对该用户标识符和由计算设备提供的计算设备标识符的恢复密钥的记录。

过程300基于用户是否是计算设备的所有者而继续进行(步骤316)。如果密钥服务指示用户是计算设备的所有者,则用户已被证明是计算设备的所有者并被允许访问计算设备(动作318)。然而,如果密钥服务指示用户不是计算设备的所有者,则用户未被证明是计算设备的所有者并且用户被拒绝对计算设备的访问(动作320)。

返回到动作310,如果对密钥服务的访问对于计算设备不可用,则接收指定恢复密钥的用户输入(动作322)。可以使用以上论述的各种各样不同的用户输入的任一种来提供恢复密钥。恢复密钥通过以下步骤获得:用户使用不同的计算设备(例如,图1的计算设备114)向身份服务提供他或她的用户凭证、从身份服务接收指示用户凭证被验证的经数字签名的票据、以及向密钥服务提供经数字签名的票据,密钥服务进而向用户透露恢复密钥(例如,将恢复密钥发送到计算设备114以供显示)。然后,用户可以在动作322中将恢复密钥输入到计算设备(例如,恢复密钥可以是由用户经由键区或触摸屏输入的字母数字字符的序列)。

恢复密钥被用于确定用户是否是计算设备的所有者(步骤324)。通过以下方式使用恢复密钥来确定用户是否是计算设备的所有者,即:将恢复密钥与计算设备标识符相组合、并且例如通过将密码散列函数应用于恢复密钥和计算设备标识符的组合来生成数据值。数据值可以在动作324中用各种方式生成,但是是用与图4b的动作420中的密钥服务生成数据值相同的方式生成。由于由计算设备和密钥服务生成的数据值是用相同方式生成的,所以如果用户输入的恢复密钥与由密钥服务生成的恢复密钥相同,则将生成相同的数据值。因此,如果由计算设备生成的数据值与动作306中作为已认证变量被存储在计算设备上的数据值相同,则在动作324中用户被确定为是计算设备的所有者。然而,如果由计算设备生成的数据值与动作306中作为已认证变量被存储在计算设备上的数据值不同,则在动作324中用户被确定为不是计算设备的所有者。

过程300基于用户是否是计算设备的所有者而继续进行(在316处)。如果在动作324中用户被确定为是计算设备的所有者,则用户已被证明是计算设备的所有者并被允许访问计算设备(动作318)。然而,如果在动作324中用户被确定为不是计算设备的所有者,则用户未被证明是计算设备的所有者并且用户被拒绝对计算设备的访问(动作320)。

返回到图2,在一个或多个实施例中,通过提供恢复密钥的用户输入来证明用户是计算设备的所有者的过程还操作来将计算设备的状态从受保护状态改变为不受保护状态。由用户提供的恢复密钥被存储在已认证变量存储系统206中作为未认证变量(尽管可以替换地被存储为已认证变量)。未认证变量指的是在没有验证用户凭证的服务的任何批准的情况下可以被盖写的变量。

存储在已认证变量存储系统206中的恢复密钥可被盗窃防护系统110用于验证计算设备102处于不受保护状态。存储在已认证变量存储系统206中的恢复密钥可以连同计算设备标识符一起被用于生成数据值(以与图4b的动作420中密钥服务生成数据值相同的方式)并将其与存储在已认证变量存储系统206中的数据值进行比较。如果生成的数据值与存储在已认证变量存储系统206中的数据值相同,则盗窃防护系统110获知计算设备102处于不受保护状态。通过在已认证变量存储系统206中维护恢复密钥,计算设备保持可操作(例如,不被阻挡或“围堵(bricked)”),然而是处于不受保护状态。

在一个或多个实施例中,存储在已认证变量存储系统206中的恢复密钥被称为恢复密钥变量。在使用uefi规范实现已认证变量存储系统的情况下,恢复密钥变量被存储为未认证uefi变量,其具有指示以下项的属性,即:该变量要被存储在非易失性存储器中、要在计算设备引导期间可访问以及要在计算设备的运行时间期间可访问。

应当注意,一旦计算设备102处于不受保护状态,则恢复密钥不再被用于验证计算设备102处于受保护状态。然而,如果要再次保护计算设备102,则生成新的恢复密钥,并如上文在图4a和图4b的过程400中所讨论的那样在计算设备102上存储新的数据值。

在一个或多个实施例中,计算设备102还保护免遭操作系统回滚。会出现操作系统的一些版本包括本文所讨论的盗窃防护系统110,而操作系统的先前版本不包括盗窃防护系统110的情况。在这样的情况下,计算设备102操作来阻止计算设备102的操作系统回滚到操作系统的不支持本文所讨论的盗窃防护(例如,不包括盗窃防护系统110)的先前版本。

在一个或多个实施例中,已认证变量存储系统206包括将不会在计算设备102上运行的操作系统版本(例如,因为它们不包括盗窃防护系统110)的标识符列表。这样的列表也被称为黑名单,并且操作系统的版本的标识符可以采取各种形式(例如,由操作系统制造商指派的标识符、通过将散列函数应用于操作系统的组件或模块而生成的值等)。如果进行尝试去利用将不会在计算设备102上运行的操作系统引导计算设备102,或用其他方式进行尝试去在计算设备102上运行这样的操作系统,则已认证变量存储系统206阻止该操作系统在计算设备102上引导或以其他方式运行。因此,盗贼为了避免需要输入(他或她将不知道的)用户凭证而在计算设备102上安装操作系统的早期版本的任何尝试都将不成功。在使用uefi规范来实现已认证变量存储系统206的情况下,把将不会在计算设备102上运行的操作系统版本的标识符列表存储在已认证变量存储系统206的dbx数据库中。

返回到图1,还应当注意,会出现以下情况:其中密钥服务106和盗窃防护系统110对计算设备102是处于受保护状态还是不受保护状态有两种不同的看法。例如,计算设备114的用户可以访问密钥服务106并将计算设备102的状态改变为不受保护状态。直到计算设备102能够与密钥服务106通信为止,密钥服务106都相信计算设备102处于不受保护状态,但计算设备102相信计算设备102处于受保护状态。这种情况通过盗窃防护系统110从密钥服务106获得计算设备102现在处于不受保护状态的指示,而得到解决。可以以推送方式(例如,密钥服务106发起向盗窃防护系统110发送消息或其他指示)或以拉取方式(例如,盗窃防护系统110以规则或不规则的间隔与密钥服务106接洽)接收这样的指示。

还应当注意,会出现以下情况:其中受信任的移动运营商或制造商希望使计算设备从不受保护状态改变成受保护状态。例如,用户可以购买计算设备,将计算设备置于受保护状态,并且然后退回计算设备以求退款或用它换取另一设备。在这样的情况下,受信任的移动运营商或制造商能够向密钥服务106的管理员、或向在密钥服务106上运行的认证程序证明他们的身份和他们对计算设备所有权的权利。一旦受信任的移动运营商或制造商证明了他们的身份和对计算设备所有权的权利,则密钥服务106向移动运营商或制造商提供恢复密钥,从而允许移动运营商或制造商将计算设备改变为不受保护状态。然而,在向新用户重新销售或以其它方式提供该计算设备时,新用户可以使计算设备改变为受保护状态,同时生成新的恢复密钥,并且将新的数据值(基于新的恢复密钥和计算设备标识符)存储在计算设备上。

应当注意,本文讨论的技术允许计算设备在各种时间被置于保护状态,并在处于受保护状态和不受保护状态之间切换。本文讨论的技术不依赖于在制造计算设备时由制造商或设备设计者采取的任何特定动作来导致计算设备的受保护状态。

尽管本文参考特定模块讨论了特定功能性,但应当注意,本文所讨论的各个模块的功能性可以分成多个模块,和/或多个模块的至少一些功能性可以组合成单个模块。附加地,在本文中特定模块被讨论为执行动作包括:该特定模块本身执行该动作,或替代地该特定模块调用或以其他方式访问执行该动作(或与该特定模块协作地执行该动作)的另一个组件或模块。因此,特定模块执行动作包括:该特定模块本身执行该动作和/或被该特定模块调用或以其他方式访问的另一模块执行该动作。

图5总地在500处图示了一种示例系统,其包括代表可以实现本文描述的各种技术的一个或多个系统和/或设备的示例计算设备502。计算设备502可以是例如服务提供商的服务器、与客户端相关联的设备(例如,客户端设备)、片上系统和/或任何其它适当的计算设备或计算系统。

所图示的示例计算设备502包括彼此通信耦合的处理系统504、一个或多个计算机可读介质506和一个或多个i/o接口508。尽管没有示出,但计算设备502还可以包括将各种组件彼此耦合的系统总线或其它数据和命令传输系统。系统总线可以包括不同总线结构中的任何一种或组合,诸如存储器总线或存储器控制器、外围总线、通用串行总线、和/或利用各种各样的总线架构中的任何一种的处理器或本地总线。还设想到各种各样的其它示例,诸如控制和数据线。

处理系统504代表使用硬件执行一个或多个操作的功能性。相应地,处理系统504被图示为包括可以被配置成处理器、功能块等的硬件单元510。这可以包括以硬件实现为专用集成电路或者使用一个或多个半导体形成的其它逻辑器件。硬件单元510不受形成它们的材料或者其中所采用的处理机制的限制。例如,处理器可以包括(一个或多个)半导体和/或晶体管(例如,电子集成电路(ic))。在这样的上下文中,处理器可执行指令可以是电子地可执行指令。

计算机可读介质506被图示为包括存储器/存储装置512。存储器/存储装置512代表与一个或多个计算机可读介质相关联的存储器/存储装置容量。存储器/存储装置512可以包括易失性介质(诸如随机存取存储器(ram))和/或非易失性介质(诸如只读存储器(rom)、闪存、光盘、磁盘等)。存储器/存储装置512可以包括固定介质(例如,ram、rom、固定硬驱动器等)以及可拆卸介质(例如,闪存、可拆卸硬驱动器、光盘等)。计算机可读介质506可以用各种各样的其它方式配置,如在下文进一步描述的。

一个或多输入/输出接口508代表允许用户向计算设备502录入命令和信息、并且还允许使用各种输入/输出设备将信息呈现给用户和/或其它组件或设备的功能性。输入设备的示例包括键盘、光标控制设备(例如鼠标)、麦克风(例如用于语音输入)、扫描仪、触摸功能性(例如被配置成检测物理触摸的电容式或其它传感器)、相机(例如其可以采用可见波长或诸如红外频率之类的不可见波长来将不涉及触摸的移动检测为手势)等。输出设备的示例包括显示设备(例如监视器或投影仪)、扬声器、打印机、网卡、触觉响应设备等。因而,计算设备502可以如在下文进一步描述的用各种各样的方式配置来支持用户交互。

计算设备502还包括盗窃防护系统514。盗窃防护系统514提供上文论述的各种盗窃防护功能性。盗窃防护系统514可以实现例如图1和图2中的盗窃防护系统110。

本文可以在软件、硬件单元或程序模块的一般上下文中描述各种技术。一般地,这样的模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、元件、组件、数据结构等。当在本文中使用时,术语“模块”、“功能性”和“组件”一般表示软件、固件、硬件或其组合。本文描述的技术的特征是与平台无关的,这意味着这些技术可以被实现在具有各种各样处理器的各种各样计算平台上。

所描述的模块和技术的实现可以被存储在某种形式的计算机可读介质上或者跨某种形式的计算机可读介质传送。计算机可读介质可以包括能由计算设备502访问的各种各样的介质。作为示例而非限制,计算机可读介质可以包括“计算机可读存储介质”和“计算机可读信号介质”。

“计算机可读存储介质”是指使得能够进行信息的持久性存储的介质和/或设备,和/或与单纯的信号传送、载波或信号本身形成对比的有形的存储装置。因而,计算机可读存储介质是指非信号承载介质。计算机可读存储介质包括硬件,诸如以适合于存储诸如计算机可读指令、数据结构、程序模块、逻辑元件/电路或其它数据之类的信息的方法或技术实现的易失性和非易失性、可拆卸和不可拆卸介质和/或存储设备。计算机可读存储介质的示例可以包括但不限于ram、rom、eeprom、闪存或其它存储器技术、cd-rom、数字多功能盘(dvd)或其它光学存储装置、硬盘、磁带盒、磁带、磁盘存储装置或其它磁性存储设备、或者适于存储期望的信息并且可以由计算机访问的其它存储设备、有形介质或制造品。

“计算机可读信号介质”是指配置为诸如经由网络向计算设备502的硬件传送指令的信号承载介质。信号介质典型地可以将计算机可读指令、数据结构、程序模块或者其它数据具体化在调制的数据信号(诸如载波、数据信号或者其它传输机制)中。信号介质还包括任何信息递送介质。术语“调制的数据信号”意指如下的信号,即:使其特性中的一个或多个按照将信息编码在信号中这样的方式进行设定或改变。作为示例而非限制,通信介质包括诸如有线网络或直接有线连接之类的有线介质,以及诸如声学、rf、红外之类的无线介质和其它无线介质。

如之前所述,硬件单元510和计算机可读介质506代表以硬件形式实现的指令、模块、可编程设备逻辑和/或固定设备逻辑,其在一些实施例中可被用于实现本文描述的技术的至少一些方面。硬件单元可以包括以下项的组件:集成电路或片上系统、专用集成电路(asic)、现场可编程门阵列(fpga)、复杂可编程逻辑器件(cpld)、以及在硅或其它硬件设备中的其它实现。在这个上下文中,硬件单元可以作为处理设备来操作,其执行由通过该硬件单元以及被利用于存储指令以供执行的硬件设备(例如之前描述的计算机可读存储介质)而具体化的指令、模块和/或逻辑所定义的程序任务。

前述内容的组合也可被用于实现本文描述的各种技术和模块。相应地,软件、硬件或程序模块以及其它程序模块可被实现为具体化在某种形式的计算机可读存储介质上的和/或由一个或多个硬件单元510具体化的一个或多个指令和/或逻辑。计算设备502可以被配置为实现与软件和/或硬件模块对应的特定指令和/或功能。相应地,将模块作为可由计算设备502作为软件执行的模块的实现方式可以至少部分地以硬件来达成,例如通过使用计算机可读存储介质和/或处理系统的硬件单元510来达成。指令和/或功能可以是可由一个或多个制造品(例如,一个或多个计算设备502和/或处理系统504)执行/操作来实现本文描述的技术、模块和示例的。

如图5中进一步图示的,示例系统500使得当在个人计算机(pc)、电视设备和/或移动设备上运行应用时能够实现用于无缝用户体验的普适环境。为了在利用应用、播放视频游戏、观看视频等的时候在从一个设备向下一个设备转换时的共同的用户体验,服务和应用在全部三个环境中基本上类似地运行。

在示例系统500中,通过中央计算设备互连多个设备。中央计算设备可以在多个设备的本地或者可以位于多个设备的远方。在一个或多个实施例中,中央计算设备可以是通过网络、互联网或其它数据通信链路连接到多个设备的一个或多个服务器计算机的云。

在一个或多个实施例中,该互连架构使得能够跨多个设备递送功能性以向多个设备的用户提供共同且无缝的体验。多个设备中的每一个可以具有不同的物理要求和能力,并且中央计算设备使用平台以使得能够向设备递送既针对该设备定制又是全部设备所共同的体验。在一个或多个实施例中,创建目标设备类并且针对通用设备类定制体验。设备类可以由设备的物理特征、使用类型或者其它共同特性来限定。

在各种实现中,计算设备502可以采取各种各样不同配置,诸如用于计算机516、移动装置518和电视520用途。这些配置中的每一个包括可以具有通常不同的构造和能力的设备,并且因而计算设备502可以根据不同设备类中的一个或多个进行配置。例如,计算设备502可以被实现为计算机516类的设备,其包括个人计算机、桌上型计算机、多屏幕计算机、膝上型计算机、上网本等。

计算设备502还可以被实现为移动装置518类的设备,其包括移动设备,诸如移动电话、便携式音乐播放器、便携式游戏设备、平板计算机、多屏幕计算机等。计算设备502还可以被实现为电视520类的设备,其包括在休闲的观看环境中具有或连接到一般更大的屏幕的设备。这些设备包括电视、机顶盒、游戏控制台等。

本文描述的技术可以由计算设备502的这各种配置来支持并且不限于本文描述的技术的具体示例。该功能性还可以诸如经由如下所述的平台524在“云”522上全部地或者部分地通过使用分布式系统而实现。

云522包括和/或代表用于资源526的平台524。平台524对云522的硬件(例如服务器)和软件资源的底层功能性进行抽象。资源526可以包括在远离计算设备502的服务器上执行计算机处理的时候可以利用的应用和/或数据。资源526还可以包括在互联网上和/或通过订户网络(诸如蜂窝或wi-fi网络)提供的服务。

平台524可以对资源和功能进行抽象以将计算设备502与其它计算设备连接。平台524还可以用来抽象资源的衡量(scale)以对所遇到的对于经由平台524实现的资源526的需求提供对应的规模水平。相应地,在互连设备环境中,本文描述的功能性的实现可以遍及系统500地分布。例如,功能性可以部分地在计算设备502上以及经由抽象云522的功能性的平台524而实现。

在本文的讨论中,描述了各种不同的实施例。应当理解并认识到,本文描述的每个实施例可以独自地使用或与本文所述的一个或多个其他实施例相结合地使用。本文讨论的技术的其它方面涉及以下实施例中的一个或多个。

一种在计算设备中实现的方法,所述方法包括:确定要在计算设备上启用盗窃防护;在网络上向身份服务发送计算设备的用户的用户凭证;从身份服务接收指示所述身份服务已经验证了用户凭证的票据;在网络上向密钥服务发送票据;从密钥服务接收已经由密钥服务基于用于计算设备的恢复密钥以及标识计算设备的设备标识符生成的数据值;以及在计算设备上将该数据值保存为已认证变量,通过将计算设备与用户相关联来提高计算设备的安全性。

替代地或附加于上述方法中的任何一个,有以下的任何一项或其组合:已经由密钥服务生成恢复密钥,并已通过向恢复密钥和设备标识符的组合应用密码散列函数来生成数据值;该方法还包括阻止计算设备的操作系统回滚到操作系统的不支持盗窃防护的先前版本;该阻止包括:检查被包括在计算设备的已认证变量存储系统中的操作系统版本标识符列表是否包括在计算设备上正被引导的操作系统的标识符;以及如果操作系统版本标识符列表包括在计算设备上正被引导的操作系统的标识符,则阻止该操作系统在计算设备上引导;该方法还包括:确定要验证计算设备的所有权;响应于在网络上对密钥服务的访问可用,获得来自密钥服务的、用户是否是计算设备的所有者的指示,该指示是基于输入到计算设备的用户凭证;响应于在网络上对密钥服务的访问不可用,使用接收的恢复密钥作为用户输入来确定用户是否是计算设备的所有者;响应于用户被确定为是计算设备的所有者,允许用户访问计算设备;以及响应于用户被确定为不是计算设备的所有者,拒绝用户访问计算设备;该方法还包括:接收作为计算设备的恢复密钥的用户输入;基于该用户输入以及标识计算设备的设备标识符而生成附加数据值;确定数据值与附加数据值是否是相同的值;以及响应于数据值和附加数据值是相同的值,将计算设备改变为不受保护状态;将数据值保存为已认证变量包括:将数据值写入计算设备的已认证变量存储系统,并且该方法还包括:将恢复密钥写入已认证变量存储系统以作为未认证变量;将数据值保存为已认证变量包括:将数据值写入计算设备的已认证变量存储系统。

一种计算设备,包括:一个或多个处理器;以及其上存储有多个指令的计算机可读存储介质,该多个指令响应于被该一个或多个处理器执行而使得该一个或多个处理器执行动作,该动作包括:确定要验证计算设备的所有权;响应于在网络上对密钥服务的访问可用,获得来自密钥服务的、用户是否是计算设备的所有者的指示,该指示是基于输入到计算设备的用户凭证;响应于在网络上对密钥服务的访问不可用,使用接收的恢复密钥作为用户输入来确定用户是否是计算设备的所有者;响应于用户被确定为是计算设备的所有者,允许用户访问计算设备;以及响应于用户被确定为不是计算设备的所有者,拒绝用户访问计算设备,通过将计算设备与用户相关联来提高计算设备的安全性。

替代地或附加于上述计算设备中的任何一个,有以下的任何一项或其组合:所述动作还包括响应于在网络上对密钥服务的访问不可用,基于恢复密钥以及标识计算设备的设备标识符而生成第一数据值,确定第一数据值和存储在计算设备的已认证变量存储系统中的第二数据值是否是相同的值,以及响应于第一数据值和第二数据值是相同的值而将计算设备改变为不受保护状态;所述动作还包括将恢复密钥写入已认证变量存储系统以作为未认证变量。

一种计算设备,包括:一个或多个处理器;以及其上存储有多个指令的计算机可读存储介质,该多个指令响应于被该一个或多个处理器执行而使得该一个或多个处理器执行动作,所述动作包括:确定要在计算设备上启用盗窃防护;在网络上向身份服务发送计算设备的用户的用户凭证;从身份服务接收指示身份服务已经验证了用户凭证的数据结构;在网络上向密钥服务发送该数据结构;从密钥服务接收已经由密钥服务基于计算设备的恢复密钥以及标识计算设备的设备标识符而生成的第一数据值;以及在计算设备上将第一数据值保存为已认证变量,通过将计算设备与用户相关联来提高计算设备的安全性。

替代地或附加于上述计算设备中的任何一个,有以下的任何一项或其组合:已通过向恢复密钥和设备标识符的组合应用密码散列函数生成第一数据值;所述动作还包括阻止计算设备的操作系统回滚到操作系统的不支持盗窃防护的先前版本;所述阻止包括:检查被包括在计算设备的已认证变量存储系统中的操作系统版本标识符列表是否包括在计算设备上正被引导的操作系统的标识符,以及如果操作系统版本标识符列表包括在计算设备上正被引导的操作系统的标识符则阻止该操作系统在计算设备上引导;所述动作还包括:确定要验证计算设备的所有权;响应于在网络上对密钥服务的访问可用,获得来自密钥服务的、用户是否是计算设备的所有者的指示,该指示是基于输入到计算设备的用户凭证;响应于在网络上对密钥服务的访问不可用,使用接收的恢复密钥作为用户输入来确定用户是否是计算设备的所有者;响应于用户被确定为是计算设备的所有者,允许用户访问计算设备;以及响应于用户被确定为不是计算设备的所有者,拒绝用户访问计算设备;所述动作还包括:接收作为计算设备的恢复密钥的用户输入;基于用户输入以及标识计算设备的设备标识符而生成第二数据值;确定第一数据值与第二数据值是否是相同的值;以及响应于第一数据值和第二数据值是相同的值而将计算设备改变为不受保护状态;将数据值保存为已认证变量包括:将数据值写入计算设备的已认证变量存储系统,并且该动作还包括:将恢复密钥写入已认证变量存储系统以作为未认证变量;将数据值保存为已认证变量包括:将数据值写入计算设备的已认证变量存储系统;已认证变量存储系统实现统一的可扩展固件接口规范。

尽管已经以特定于结构特征和/或方法动作的语言描述了主题,但要理解,在所附权利要求中限定的主题未必限于以上描述的具体特征或动作。相反,以上描述的具体特征和动作是作为实现权利要求的示例形式而公开的。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1