使用服务器的TPM的远程密码服务的制作方法

文档序号:11637066阅读:412来源:国知局
使用服务器的TPM的远程密码服务的制造方法与工艺



背景技术:

随着计算机变得越来越普遍,越来越多的数据已被存储在计算机上。这对用户有很多好处,包括在相对较小的空间中存储大量数据的能力。然而,该数据中的一些通常旨在保密或者只向某些人披露。该数据可以以不同的方式进行保护,诸如使用口令或个人标识号码。虽然这样的保护可能是有帮助的,但是计算机可能容易受到诸如字典攻击或暴力攻击(其中进行了大量的尝试以猜测口令或个人标识号码)之类的攻击。这些漏洞可能导致用户减少对其计算机的信任,从而减损积极的用户体验。



技术实现要素:

提供本发明内容以便以简化的形式介绍在下面的具体实施方式中进一步描述的概念的选择。本发明内容并非旨在标识所要求保护的主题的关键特征或必要特征,也不旨在用于帮助确定所要求保护的主题的范围。

描述了用于利用主机设备的可信平台模块的技术。根据各种实施例,不包括可信平台模块(tpm)的客户端设备可以利用主机设备的tpm向客户端设备提供信任服务。

附图说明

具体实施方式参照附图进行描述。在附图中,附图标记的最左边的(多个)数字标识出该附图标记首次出现在其中的图。在描述和附图中在不同实例中使用相同的附图标记可以指示相似或相同的项目。

图1是在根据一个或多个实施例的可操作来采用本文所讨论的技术的示例实现中的环境的图示。

图2描绘了根据一个或多个实施例的用于使主机设备的tpm能够为客户端设备提供信任服务的示例实现场景。

图3描绘了根据一个或多个实施例的用于供应主机设备和主机设备tpm的示例实现场景。

图4描绘了根据一个或多个实施例的用于使得信任命令被执行的示例实现场景。

图5是描述根据一个或多个实施例的用于使能客户端设备和主机设备的可信平台模块之间的通信的方法中的步骤的流程图。

图6是描述根据一个或多个实施例的用于使得主机设备能够被配置为执行客户端设备的信任命令的方法中的步骤的流程图。

图7是描述根据一个或多个实施例的用于供应主机设备的tpm以为客户端设备提供信任服务的方法中的步骤的流程图。

图8是描述根据一个或多个实施例的用于使主机设备的tpm执行客户端设备的信任命令的方法中的步骤的流程图。

图9图示出了参考图1描述的示例系统和计算设备,其被配置为实现本文所描述的技术的实施例。

具体实施方式

概述

描述了用于利用主机设备的可信平台模块的技术。在各种实现中,不包括可信平台模块(tpm)的客户端设备可以利用主机设备的tpm向客户端设备提供信任服务。例如,客户端设备可以被实现为具有比主机设备更少的处理和存储器资源的轻量级设备。因此,本文讨论的技术使能客户端设备与主机设备的tpm之间的基于信任的交互。

根据各种实现,在主机设备上实现信任代理器,其代理在客户端设备和主机设备的tpm之间的交互。例如,信任代理器可以被实现为安装在主机设备上并且被配置为代表客户端设备与主机设备的tpm进行通信的可执行代码。

实现利用客户端设备的设备秘密来保护客户端设备的密码资产的使用。例如,密码资产(例如授权证书、密码密钥等)以加密形式存储在主机设备上。主机设备的tpm维护被设置为设备秘密并且用于保护密码资产的使用的授权值。例如,请求主机设备的tpm使用其密码资产以执行信任命令的客户端设备例如经由信任代理器向tpm提供设备秘密。tpm然后确定设备秘密是否匹配授权值。如果设备秘密与授权值匹配,则tpm利用密码资产来执行所请求的信任命令,诸如对授权证书签名,加密数据,解密数据等。否则,如果设备秘密与授权值不匹配,则密码资产的使用被拒绝。

因此,通过消除对客户端设备上的tpm的需求,同时通过远程服务向客户端设备提供可信平台模块功能,可以节省制造成本。此外,仍然可以通过与主机设备的tpm的交互向具有不允许本地安装的tpm的形式因子的小型设备提供tpm功能。

在下面的讨论中,首先描述可操作以采用本文所描述的技术的示例环境。接下来,标题为“示例实现场景”的章节描述了根据一个或多个实施例的用于利用主机设备的可信平台模块的一些示例场景。在此之后,标题为“示例规程”的章节描述了根据一个或多个实施例的用于利用主机设备的可信平台模块的一些示例方法。最后,标题为“示例系统和设备”的章节描述了根据一个或多个实施例的可操作来采用本文讨论的技术的示例系统和设备。

示例环境

图1是可操作以采用用于利用本文所讨论的主机设备的可信平台模块的技术的示例实现中的环境100的图示。环境100包括客户端设备102,客户端设备102可以被实现为任何合适的设备,诸如,作为示例而非限制,智能电话、可穿戴设备等。在至少一些实现中,客户端设备102表示智能轻量级器具,诸如恒温器、湿度传感器、安全硬件(例如,照相机、运动传感器等)、灯具、门锁系统等等。因此,客户端设备102一般可以表示具有最小处理能力和/或数据存储资源的轻量级设备。客户端设备102的各种不同示例中的一个示例在下面在图9中示出和描述。

客户端设备102包括客户端操作系统104和通信模块106。一般地,客户端操作系统104表示用于抽象化客户端设备102的各种系统组件(诸如硬件、内核级模块和服务等等)的功能。

通信模块106表示使得客户端设备102能够通过有线和/或无线连接进行通信的功能。例如,通信模块106表示用于经由各种不同的有线和/或无线技术和协议进行通信的硬件和逻辑。

客户端设备102还包括安全模块108,其表示用于执行利用主机设备的可信平台模块的技术的各个方面的客户端设备102的功能。例如,安全模块108包括设备标识符(id)110和设备秘密112。一般地,设备id110表示将客户端设备102与其他客户端设备区分开的标识符。例如,设备id110可以对应于绑定到客户端设备102的随机生成的值。可替换地或附加地,设备id110可以对应于通过将设备秘密112应用于特定的数据值以便生成设备id110而生成的密码值。然而,这并非旨在限制,并且可以以各种其他方式生成设备id110,同时保持在本文讨论的实现的精神和范围内。

一般地,设备秘密112表示根据任何合适的密码协议生成的密码密钥。根据各种实现,设备秘密112被永久地存储在安全模块108内,并且不能被诸如客户端操作系统104之类的外部实体访问。设备秘密112例如被存储在可编程只读存储器(prom)中,其仅可由安全模块108访问。

客户端设备102还包括客户端密码(“(crypto)密码”)引擎114,其表示对用于客户端设备102的数据进行加密和解密的功能。根据各种实现,客户端密码引擎114可以根据各种不同的密码协议(诸如安全散列算法(sha)协议、rsa、md5等)中的一种或多种来操作。在至少一些实现中,密码引擎114可以利用通过使用基于散列的消息认证码(hmac)导出的密钥对数据进行加密和解密。

环境100还包括主机设备116,其可以被体现为任何合适的设备,诸如通过示例而非限制,智能电话、平板计算机、便携式计算机(例如,膝上型计算机)、台式计算机、等等。一般地,主机设备116被认为是“主机”,原因在于其为客户端设备102托管各种功能和服务,诸如以便使能用于利用本文讨论的主机设备的可信平台模块的技术的方面。根据各种实现,主机设备116包括比客户端设备102更大的处理和数据存储容量,并且因此可以向客户端设备102提供基于信任的服务。以下在图9中示出和描述主机设备116的各种不同示例中的一个示例。

主机设备116包括使得各种活动和任务能够被执行的各种不同功能。例如,主机设备116包括主机操作系统118。一般地,主机操作系统118表示用于抽象主机设备116的各种系统组件(诸如硬件、内核级模块和服务等)的功能。例如,主机操作系统118可以将主机设备116的各种组件抽象为主机设备116的其他功能,诸如抽象为应用、服务等等。

主机设备116还包括可信平台模块(tpm)120,其表示主机设备116的一部分,该部分被保护而免于由主机设备116的大多数或所有其他功能进行的一般访问。tpm120可以以各种方式实现,诸如单独的专用硬件环境(例如,专用芯片)、现有硬件环境的被细分部分(例如,中央处理单元(cpu)的子部分))、受保护的固件环境等等。在一个或多个实现中,tpm120是根据从可信计算组(tcg)可获得的可信平台模块(tpm)规范的模块。然而,这并非旨在限制,而是可以以各种其他方式来实现tpm120。

根据各种实现,由tpm访问模块122使能与tpm120的交互。一般地,tpm访问模块122表示使得主机设备116的不同组件能够与tpm120交互的功能,诸如主机操作系统118的组件。例如,tpm访问模块122表示用于tpm120的设备驱动器。tpm访问模块122可以以各种方式来实现,诸如主机操作系统118的组件、主机设备116的单独系统组件(例如,内核级组件)、其组合等等。

tpm120包括tpm处理器124和tpm存储装置126。根据各种实现,tpm处理器124表示可由tpm120利用以执行各种处理任务的专用硬件处理单元。tpm存储装置126表示用于tpm120的数据存储容量,并且其被保护而免于被tpm120外部的实体访问。

存储在tpm存储装置126上的是授权策略128和认可(endorsement)证书130。一般地,授权策略128表示用于控制对存储在主机设备116上的安全资产的访问的不同条件、规则、参数和指令。例如,单独的授权策略128可以被绑定到单独的安全资产,使得可以经由相应的授权策略128来控制对单独的安全资产的访问。安全资产的示例包括由主机设备116维护的安全密钥和其他密码资产。

认可证书130表示可以被利用来向其他实体认证tpm120的身份的安全证书。认可证书130例如表示tpm120的认可密钥(ek)证书。认可证书130包括认可密钥132,其可以用于加密和解密与其他设备的通信。

tpm存储装置126还存储根密钥134和授权值136。根密钥134表示由tpm120用于保护由主机设备116维护的安全资产的存储根密钥。根密钥134例如可以用于在密码资产被导出到tpm120之外之前“掩藏”各种密码资产。

授权值136表示针对与客户端设备102相关联的设备密钥138的使用授权值。例如,为了允许使用设备密钥138,请求实体将提供授权值136。在至少一些实现中,授权值136与设备秘密112相同。

tpm120还包括平台功能140和平台寄存器142。平台功能140表示用于提供信息的安全存储的各种功能,诸如认证功能、密钥生成功能、加密和解密功能、上下文相关功能等等。根据各种实现,tpm访问模块122可以与平台功能140交互以生成和/或配置tpm120的各个方面和属性,诸如使用根密钥134掩藏各种密码资产,将信任命令与授权值136相匹配,等等。

平台寄存器142表示用于存储主机设备116的系统状态和上下文信息的存储位置。例如,可以利用平台寄存器142来存储各种系统组件的“度量”,诸如在系统引导时收集的主机操作系统118的模块的度量。在至少一些实现中,平台寄存器表示tpm120的平台配置寄存器(pcr)。

一般地,“度量”是指标识和/或表征各种设备相关的数据(诸如主机设备116的代码模块、主机设备116的配置数据等等)的方式。如本文所使用的,术语“代码模块”一般是指可执行代码的部分,诸如主机操作系统118的部分、进程、各种二进制文件和/或可执行文件等等。度量的示例包括从设备相关的数据生成的散列值、数据签名、设备相关的数据的加密版本和/或设备相关的数据的部分等等。例如,可以通过将安全散列算法(sha)(例如sha-1、sha-2等)应用于设备相关的数据来生成度量。

环境100还包括信任服务144,其表示为客户端设备102以及其他设备和/或实体提供各种与信任相关的服务的功能。根据本文讨论的实现,主机设备116包括信任代理器(“代理器”)模块146,其表示用于代表客户端设备102与信任服务144进行交互的功能。例如,在至少一些实现中,客户端设备102不直接与信任服务144交互,而是可以触发信任代理器模块146代表客户端设备102与信任服务144进行交互。

一般地,主机设备116和信任服务144之间的通信通过(多个)网络148发生。(多个)网络148可以采用各种不同的配置,诸如局域网(lan)、广域网(wan)、因特网等。例如,(多个)网络148可以包括经由任何合适的有线和/或无线协议和/或其组合实现的有线和/或无线网络的组合。在至少一些实现中,如关于图9进一步描述的,参考环境100讨论的功能和/或本文的讨论的其他部分可以在分布式环境(例如,“通过云”)中实现。例如,信任服务144表示可以在一个或多个基于网络的位置处托管的基于云的和/或分布式的服务。

信任服务144维护设备id150和设备秘密152。一般地,设备id150表示诸如客户端设备102之类的不同设备的标识符。

设备秘密152表示不同设备的秘密值,诸如随机数(nonce)、加密密钥、解密密钥等。例如,由设备id150标识的各个设备各自包括由设备秘密152维护的设备秘密的不同的相应实例。根据各种实现,可以通过使用特定设备的设备id在设备秘密152上执行查找来定位该特定设备的设备秘密152。

信任服务144还包括服务密码(密码(crypto))引擎154,其表示为信任服务144执行各种密码功能的功能。例如,服务密码引擎154可以执行加密和解密任务。根据各种实现,服务密码引擎154可以根据各种不同的密码协议(诸如sha协议、rsa、md5等)中的一种或多种进行操作。在至少一些实现中,服务密码引擎154可以利用hmac导出的密钥对数据进行加密和解密。

作为环境100的一部分进一步示出的是设备管理机构156,其表示具有关于客户端设备102的某些安全特权和/或责任的实体。例如,设备管理机构156表示客户端设备102的制造商。可替换地或附加地,设备管理机构156表示管理和/或维护客户端设备102的实体,诸如其用于发布客户端设备102的组件(例如,针对软件、固件等等)的更新,用于发布客户端设备102的安全资产,用于修复客户端设备102等等。

客户端设备102还包括作为安全模块108的一部分存储的授权证书158。一般地,授权证书158表示可以由客户端设备102用于各种目的的安全证书,诸如向第三方认证客户端设备102的身份。在至少一些实现中,授权证书158由信任服务144生成并经由信任代理器模块146供应给客户端设备102。授权证书158可以以各种方式实现,诸如根据x.509证书标准来实现。

已经描述了其中本文所描述的技术可以操作的示例环境,现在考虑根据一个或多个实施例的示例实现场景的讨论。

示例实现场景

本章节描述了根据一个或多个实现的一些示例实现场景。实现场景可以在上述环境100和/或任何其他合适的环境中实现。

图2图示出了根据一个或多个实现的用于使得主机设备的tpm能够为客户端设备提供信任服务的示例实现场景200。在至少一些实现中,当客户端设备102初始安装和/或上电时(诸如,进一步针对客户端设备102的初始开箱即用(out-of-box)体验)发生场景200。例如,场景200可以表示在客户端设备102离开制造设施之后的客户端设备102的第一个上电事件。

在场景200中,客户端设备102将触发事件202传送到主机设备116。触发事件202例如指令主机设备116与信任服务144通信并获得用于为客户端设备102执行各种信任服务的功能。在至少一些实现中,触发事件202包括到信任服务144的链接(例如,超链接)。

响应于触发事件202,针对用于为客户端设备102提供信任服务的功能,主机设备116将请求204传送给信任服务144。在至少一些实现中,经由到信任服务144(其从触发事件202取回)的链接来传送请求204。

然后,信任服务144将响应206传送到包括代理器模块146的主机设备116。主机设备116执行安装规程208以使代理器模块146安装在主机设备116上。

继续场景200,客户端设备102将请求210传送到主机设备116,以发起用于验证tpm120是否被信任的验证规程,使得其可以被利用来为客户端设备102提供信任服务。请求210包括设备id110。响应于接收到请求210,在客户端设备102和信任服务144之间执行验证规程212。在至少一些实现中,验证规程212由代理器模块146主持(moderate)。

一般地,验证规程212包括将认可证书130从tpm120传送到信任服务144。信任服务144利用认可证书130来验证tpm120是否是可信的tpm。例如,信任服务检查认可证书130是否由可信管理机构(诸如由可信的证书管理机构和/或可信的tpm制造商)发布。假设认可证书130被发现是有效的且可信的,则确定tpm120被信任以便为客户端设备102提供信任服务。

图3图示出了根据一个或多个实现的用于供应主机设备和主机设备tpm的示例实现场景300。在至少一些实现中,场景300发生在上述场景200的后面,并且表示上述场景200的扩展。

在场景300中,信任服务144利用设备id110执行秘密定位规程302以定位客户端设备102的设备秘密112。例如,信任服务144利用设备id110在设备秘密152上执行查找以定位设备秘密112。一旦设备秘密112被定位,就执行授权会话发起规程304以使得在信任服务144和tpm120之间发起授权会话。一般地,授权会话使得能够在信任服务144与tpm120之间进行数据的安全交换。如图3中所图示,信任服务144和tpm120之间的各种交互由代理器模块146进行代理。

根据各种实现,作为发起规程304的一部分交换的数据和信任服务144与tpm120之间的后续通信使用来自认可证书的认可密钥132(例如,认可密钥132的公共部分)进行加密。例如,授权会话涉及,信任服务144读取根密钥134的公共部分以确认根密钥134是否是可信的。

继续场景300,信任服务144使得执行密钥供应规程306,从而使得在tpm120上生成和供应客户端设备102的设备密钥138。可以以各种方式执行密钥生成供应306。例如,信任服务144可以自己生成设备密钥138并将设备密钥138传送到客户端设备102以便在tpm120上供应。在这种实现中,设备密钥138从信任服务144导入到tpm120,并且使用根密钥134进行掩藏。可替换地,信任服务144可以通知tpm120以利用根密钥134生成设备密钥138。

一旦生成了设备密钥138,就执行密钥授权(“auth(授权)”)规程308,其使得针对设备密钥138的使用授权值136被设置到设备秘密112。在其中设备密钥138由信任服务144生成的实现中,设备密钥138和授权值136可以在被传送到tpm120之前被绑定在一起并加密。在其中设备密钥138由tpm120生成的实现中,授权值136可以在被传送到tpm120之前被信任服务144加密(例如,使用参数加密)。

进一步针对场景300,对于授权证书158执行证书(“cert(证书)”)供应规程310。例如,信任服务144生成用于设备密钥138的授权证书158,并将授权证书158传送到主机设备116。代理器模块146然后将授权证书158传送到客户端设备102。因此,设备密钥138和授权证书158现在可以用作针对客户端设备102的可信身份并为客户端设备102提供信任服务,其示例在下面描述。

图4图示出了根据一个或多个实现的用于使得执行信任命令的示例实现场景400。在至少一些实现中,场景400发生在上述场景200、300之后并且表示上述场景200、300的扩展。

在场景400中,客户端设备将信任指令402传送到客户端设备102上的代理器模块146。一般地,信任指令402包括用于特定的基于信任的动作的信任命令。可以请求各种类型的信任命令,诸如向第三方(例如,使用授权证书158)验证客户端设备102的身份,加密要发送给第三方的数据,解密从第三方发送的经加密的数据等等。一般地,可以请求从可信平台模块可获得的各种信任命令。

根据各种实现,信任指令402包括设备秘密112和描述信任命令的数据,并且在被传送到主机设备116之前被客户端密码引擎114加密。例如,可以通过将hmac函数应用于设备秘密112和描述所请求的信任命令的数据来生成信任指令402的数据。在至少一些实现中,通过使用使用设备秘密112生成的基于会话的秘密来执行加密。

响应于接收到信任指令402,代理器模块146将请求402转发给tpm120。然后,tpm120(例如,使用会话秘密)对信任指令402解密404以披露设备秘密112和描述信任命令的数据。一般地,信任命令指定了要使用设备密钥138执行的信任动作,诸如利用设备密钥138对授权证书158签名以向第三方认证客户端设备102的身份的命令。

继续进行场景400,tpm120执行秘密验证规程406以确认来自信任指令402的设备秘密112是否与用于设备密钥138的授权值136匹配。响应于确定设备秘密112与授权值136相匹配,tpm120使用设备密钥138执行408所请求的命令。然后,tpm120生成命令响应410,该命令响应410包括执行信任命令的结果,诸如利用设备密钥138签名了的授权证书158。在至少一些实现中,命令响应410由tpm120诸如使用由tpm120和客户端设备102共享的会话秘密进行加密。

然后,tpm120将命令响应410传递到代理器模块146,代理器模块146然后使命令响应410被传送到客户端设备102。客户端设备102然后解密命令响应410以暴露命令结果412,该命令结果412对应于执行信任命令的结果,诸如授权证书158的经签名的版本、经解密的数据、经加密的数据等。因此,实现提供了为各种设备(诸如,没有本地安装的tpm的轻量级设备)代理信任服务的方式。

已经描述了可以采用本文描述的技术的一些示例实现场景,现在考虑根据一个或多个实施例的一些示例规程的讨论。

示例规程

以下章节描述了根据一个或多个实施例的利用主机设备的可信平台模块的一些示例规程。示例规程可以在图1的环境100、图9的系统900和/或任何其他合适的环境中采用。根据一个或多个实现,所述规程描述了用于执行上述示例实现场景的各个方面的示例方式。在至少一些实现中,针对各种规程描述的步骤被自动实现并且独立于用户交互。

图5是描述根据一个或多个实施例的方法中的步骤的流程图。例如,该方法描述了根据一个或多个实施例的用于使能在客户端设备和主机设备的可信平台模块之间的通信的示例规程。

步骤500使代理器模块安装在主机设备上,用于代理客户端设备与主机设备的可信平台模块(tpm)之间的通信。例如,客户端设备102将触发事件传送到主机设备116以便安装代理器模块146。主机设备116然后(例如,从信任服务144)获得代理器模块146并安装代理器模块146。

步骤502使代理器模块发起与信任服务的验证规程,以验证主机设备的tpm的可信状态。例如,客户端设备102向代理器模块146传送指令以与信任服务144验证tpm120的信任状态。然后,信任服务144对tpm120执行信任验证规程,其示例在本文其他地方讨论。

因此,可以采用上述规程来设立主机设备以使其tpm能够被供应用于为客户端设备提供基于信任的服务。

图6是描述根据一个或多个实施例的方法中的步骤的流程图。例如,该方法描述了根据一个或多个实施例的用于使主机设备能够被配置成为客户端设备执行信任命令的示例规程。

步骤600使得验证规程被执行以验证主机设备的可信平台模块(tpm)的可信状态。例如,代理器模块146将用于tpm120的认可证书130传送给信任服务144。在至少一些实现中,代理器模块146响应于来自所述客户端设备102的通知而将认可证书130传送给信任服务144。

步骤602代理客户端设备的设备秘密向主机设备的tpm的供应。代理器模块146例如从客户端设备102接收设备id110,并将设备id110传送到信任服务144。信任服务144将设备秘密112返回到代理器模块146,代理器模块146然后将设备秘密112传送给tpm120,以便用于设置授权值136。设备秘密一般地使得能够控制客户端设备的密码资产的使用。例如,代理器模块146代理设备秘密112向tpm120的供应,以使得设备密钥138的使用能够被控制。

根据一个或多个实现,代理器模块146提供在主机设备116的网络端口与tpm120之间的接口。因此,经由网络端口接收的tpm120的通信可以由代理器模块146传送到tpm120。另外,来自tpm120的针对特定实体(例如,客户端设备102、信任服务144等)的通信可以由代理器模块146从tpm120传送到网络端口以转发到该特定实体。

步骤604从客户端设备接收信任命令和设备秘密。例如,代理器模块146从客户端设备102接收例如按照加密形式的可信命令和设备秘密112。

步骤606将信任命令和设备秘密传送给主机设备的tpm。例如,信任命令和设备秘密112由代理器模块146传送到tpm120。代理器模块146还可以将设备密钥138加载到tpm120中以使其能够使用。根据各种实现,这通过将设备秘密112与授权值136进行匹配来使可信命令被tpm120授权,从而tpm120使用设备密钥138执行信任命令。因此,密码资产的使用通过提供设备秘密112而被授权。

步骤608使得执行信任命令的结果被传送到客户端设备。例如,代理器模块146将结果传送到客户端设备102,这使得客户端设备102基于执行信任命令的结果来执行一个或多个动作。这样的动作的示例在下面详述。

图7是描述根据一个或多个实施例的方法中的步骤的流程图。例如,该方法描述了根据一个或多个实施例的用于供应主机设备的tpm以为客户端设备提供信任服务的示例规程。

步骤700接收客户端设备的设备标识符和主机设备的信任平台模块(tpm)的认可证书。信任服务144例如从代理器模块146接收设备id110和认可证书130。

步骤702基于认可证书来验证tpm是可信的。例如,信任服务144向tpm管理机构查询认可证书130和/或认可密钥132,以确认认可证书130和/或认可密钥132是否与已知的可信tpm相关联。

步骤704利用设备标识符来检索客户端设备的设备秘密。例如,信任服务144利用设备id110查询设备秘密152以标识客户端设备102的设备秘密112。一般地,设备秘密152可以包括用于多个不同客户端设备的设备秘密,并且各个设备秘密被映射到针对其相应的客户端设备的各个设备标识符。

步骤706使针对客户端设备的密码资产和设备秘密被供应给主机设备。例如,信任服务144使得设备密钥138被供应给主机设备116,并且授权值136被设置到设备密码112。如上所讨论的,信任服务144可以生成设备密钥138并将设备密钥138导入代理器模块146。代理器模块146将设备密钥138传递到tpm120,tpm120利用根密钥134掩藏设备密钥138以存储在主机设备116上。可替换地,信任服务144可以提示tpm120自己例如利用根密钥134生成设备密钥138。

一般地,授权值136使得能够控制设备密钥138的使用。相应地,响应于从客户端设备102接收到设备秘密112,来自客户端设备102的信任命令可由tpm120使用设备密钥138来执行。

在至少一些实现中,信任服务144生成伴随设备密钥138的授权证书158,并将授权证书158传送到主机设备116以供应给客户端设备102。设备密钥138可以由tpm120用于对授权证书158签名,从而认证客户端设备102的身份。

图8是描述根据一个或多个实施例的方法中的步骤的流程图。该方法例如描述了根据一个或多个实施例的用于使主机设备的tpm为客户端设备执行信任命令的示例规程。

步骤800传送客户端设备的信任命令和设备秘密,以由主机设备的可信平台模块(tpm)接收。客户端设备102例如将信任命令与设备秘密112一起传送到代理器模块146,代理器模块146将信任命令和设备秘密112转发到tpm120。如本文所讨论的,可以以各种方式实现信任命令。例如,信任命令可以指令tpm120利用设备密钥138对授权证书158签名,诸如用于验证客户端设备102的身份。可以执行各种其他信任命令,诸如利用设备密钥138加密数据的命令,利用设备密钥138解密经加密的数据的命令等等。

步骤802接收执行信任命令的结果。例如,客户端设备102从代理器模块146接收tpm120执行信任命令的结果。执行信任命令的结果可以以各种方式体现,诸如授权证书158的经签名的版本、经由设备密钥138加密的数据、经由设备密钥138解密的数据等等。

步骤804利用执行信任命令的结果在客户端设备上执行动作。基于作为tpm120执行信任命令的结果的从代理器模块146接收的数据,客户端设备102例如执行动作。

可以基于执行信任命令的结果来执行各种类型的动作。例如,结果可以包括来自远程实体的指示客户端设备102的设备设置的变化的经解密的数据。例如,客户端设备102可被实现为智能器具,诸如恒温器、光源、安全设备、安全器具等。因此,执行信任命令的结果可以包括可用于执行动作(诸如设置和/或改变在智能器具上的器具设置的动作)的经解密的数据。一般地,改变器具设置可以改变客户端设备102的操作行为以优化设备性能,改变数据(例如,传感器输入)被收集的方式,改变来自客户端设备102的数据被传送到的实体等等。

作为另一示例,信任命令的结果可以包括用于客户端设备102的经加密的数据。例如,客户端设备102可以具有要传输到远程实体的数据,并且因此可以将数据传送到tpm120,以便使用设备密钥138进行加密。代理器模块146可以从tpm120返回经加密的数据,并且所执行的动作可以包括将经加密的数据传送到远程实体,以避免将明文的数据暴露给未授权实体和/或恶意实体。

在再一个示例中,信任命令的结果可以包括授权证书158的经签名的版本。因此,客户端设备102执行的动作可以包括,将经签名的证书传送给第三方以认证客户端设备102的可信身份。

相应地,根据用于利用本文讨论的主机设备的可信平台模块的技术,通过代理器模块146和tpm120的交互来增强到客户端设备102和来自客户端设备102的通信的安全性。

已经讨论了利用主机设备的可信平台模块的一些示例规程,现在考虑根据一个或多个实施例的示例系统和设备的讨论。

示例系统和设备

图9一般地在900处图示出了示例系统,其包括表示可以实现本文描述的各种技术的一个或多个计算系统和/或设备的示例计算设备902。例如,上面参考图1讨论的主机设备116可以被体现为计算设备902。计算设备902可以是例如服务提供商的服务器、与客户端相关联的设备(例如,客户端设备)、片上系统和/或任何其他合适的计算设备或计算系统。

如图示的示例计算设备902包括彼此通信地耦合的处理系统904、一个或多个计算机可读介质906以及一个或多个输入/输出(i/o)接口908。尽管未示出,但是计算设备902还可以包括将各种组件彼此耦合的系统总线或其他数据和命令递送系统。系统总线可以包括不同总线结构中的任何一个或组合,诸如存储器总线或存储器控制器、外围总线、通用串行总线和/或利用各种总线架构中的任何一种的处理器或局部总线。还设想到了各种其他示例,诸如控制和数据线。

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

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

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

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

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

“计算机可读存储介质”可以指的是,与纯粹的信号传输、载波或信号本身相对照的使能永久存储信息的介质和/或设备。计算机可读存储介质不包括信号本身。计算机可读存储介质包括诸如易失性和非易失性、可移除和不可移除介质和/或存储设备的硬件,其以适合于存储诸如计算机可读指令、数据结构、程序模块、逻辑元件/电路或其他数据之类的信息的方法或技术来实现。计算机可读存储介质的示例可以包括但不限于适合于存储所需信息并可由计算机访问的ram、rom、eeprom、闪存或其他存储器技术、cd-rom、数字通用盘(dvd)或其他光学存储装置、硬盘、磁盒、磁带、磁盘存储装置或其他磁存储设备、或其他存储设备、有形介质或制品。

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

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

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

如图9中进一步所图示,示例系统900在个人计算机(pc)、电视设备和/或移动设备上运行应用时,使得能够实现无缝的用户体验的普遍存在的环境。服务和应用在所有三个环境中实质上相似地运行,以便在利用应用、玩视频游戏、观看视频等的同时当从一个设备转变到下一个设备时供给共同的用户体验。

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

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

在各种实现中,诸如对于计算机914,移动装置916和电视918使用而言,计算设备902可以采取各种不同的配置。这些配置中的每一个包括可以具有一般不同的构造和能力的设备,因此可以根据不同设备类中的一个或多个配置计算设备902。例如,计算设备902可以被实现为包括个人计算机、台式计算机、多屏幕计算机、膝上型计算机、上网本等的计算机914设备类。

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

本文描述的技术可以由计算设备902的这些各种配置来支持,并且不限于本文所描述的技术的具体示例。例如,参考主机设备116和/或信任服务144讨论的功能可以通过使用分布式系统(诸如经由下面描述的平台922通过“云”920)全部或部分地实现。

云920包括和/或表示用于资源924的平台922。平台922抽象化云920的硬件(例如,服务器)和软件资源的底层功能。资源924可以包括在远离计算设备902的服务器上执行计算机处理时可以利用的数据和/或应用。资源924还可以包括通过因特网和/或通过诸如蜂窝或wi-fi网络之类的订户网络提供的服务。

平台922可以抽象化资源和功能以将计算设备902与其他计算设备连接。平台922还可以用于抽象化资源的缩放以便针对所遇到的对于经由平台922实现的资源924的需求提供相应级别的规模。相应地,在互连设备实施例中,本文描述的功能的实现可以分布在整个系统900中。例如,功能可以部分地实现在计算设备902上,以及经由抽象化云920的功能的平台922来实现。

这里讨论的是可以被实现以执行本文所讨论的技术的多种方法。所述方法的方面可以在硬件、固件或软件或其组合中实现。所述方法被示为指定由一个或多个设备执行的操作的步骤集合,并且不一定限于由相应块执行操作所示的顺序。此外,根据一个或多个实现,可以将关于特定方法示出的操作与不同方法的操作组合和/或互换。可以通过以上参照环境100讨论的各种实体之间的交互来实现所述方法的方面。

本文讨论的示例实现包括。

1.一种示例系统,包括:一个或多个处理器;以及存储计算机可执行指令的一个或多个计算机可读存储介质,所述计算机可执行指令响应于被所述一个或多个处理器执行而使得所述系统执行操作,所述操作包括:代理客户端设备的设备秘密向主机设备的可信平台模块(tpm)的供应,所述设备秘密使得能够控制所述客户端设备的密码资产的使用;从客户端设备接收信任命令和设备秘密;将所述信任命令和所述设备秘密传送到所述主机设备的tpm,以使得由所述tpm使用所述设备秘密来对可信命令授权,从而所述信任命令由所述tpm使用所述密码资产执行;以及使得执行所述信任命令的结果被传送到所述客户端设备,以使得所述客户端设备基于执行所述信任命令的结果执行一个或多个动作。

2.根据示例系统1所述的系统,其中所述代理响应于来自客户端设备的通知而发起。

3.根据前述示例1或2中任一项所述的示例系统,其中所述代理通过主机设备和信任服务之间的交互来执行。

4.根据前述示例1-3中任一项所述的示例系统,其中所述设备秘密和所述密码资产经由所述主机设备的网络接口接收,并且其中所述代理包括使所述设备秘密和所述密码资产从网络接口路由到主机设备的tpm。

5.根据前述示例1-4中任一项所述的示例系统,其中所述代理通过与网络信任服务的交互来实现,并且其中所述操作还包括,在所述代理之前,使得与网络信任服务的验证规程被执行以使得能够验证tpm的信任状态。

6.根据前述示例1-5中任一项所述的示例系统,其中所述操作还包括从所述客户端设备接收设备标识符,并且其中所述代理包括将所述客户端设备的设备标识符传送到基于网络的信任服务,设备秘密从基于网络的信任服务接收到。

7.根据前述示例1-6中任一项所述的示例系统,其中,所述信任命令包括以下项中的至少一项:利用所述密码资产对数据加密的请求,利用所述密码资产对数据解密的请求或使用密码资产对安全证书签名的请求。

8.一种示例计算机实现的方法,包括:传送客户端设备的信任命令和设备秘密以由主机设备的可信平台模块(tpm)接收;接收执行信任命令的结果;以及利用执行所述信任命令的结果在所述客户端设备上执行动作。

9.根据示例8所述的示例方法,其中所述传送包括,传送授权证书和所述信任命令,并且其中所述信任命令包括利用所述主机设备为所述客户端设备维护的设备密钥对所述信任命令进行签名的命令。

10.根据前述示例8或9中任一项所述的示例方法,其中所述客户端设备包括没有本地安装的可信平台模块的计算设备。

11.根据前述示例8-10中任一项所述的示例方法,其中所述传送和所述接收通过所述客户端设备和所述主机设备之间的无线连接来执行。

12.根据前述示例8-11中任一项所述的示例方法,还包括,在所述传送之前:使代理器模块被安装在所述主机设备上,用于代理所述客户端设备与所述主机设备的tpm之间的通信。

13.根据前述示例8-12中任一项所述的示例方法,还包括:在所述传送之前:使代理器模块被安装在所述主机设备上,用于代理所述客户端设备与所述主机设备的tpm之间的通信;以及使代理器模块发起与基于网络的信任服务的验证规程,以验证主机设备的tpm的可信状态。

14.根据前述示例8-13中任一项所述的示例方法,其中,执行所述信任命令的结果包括以下项中的至少一项:经签名的授权证书、经解密的数据或经加密的数据。

15.根据前述示例8-14中任一项所述的示例方法,其中所述动作包括,基于执行所述信任命令的结果中包括的数据来改变所述客户端设备的配置设置。

16.一种示例计算机实现的方法,包括:接收客户端设备的设备标识符和主机设备的信任平台模块(tpm)的认可证书;基于认可证书验证tpm是可信的;利用设备标识符来检索客户端设备的设备秘密;以及使得所述客户端设备的密码资产和所述设备秘密被供应给所述主机设备,从而所述密码资产的使用授权值在所述主机设备的tpm中被设置到所述设备秘密,并且从而响应于向tpm提供设备秘密,可由tpm使用客户端设备的密码资产执行信任命令。

17.根据示例16所述的示例方法,其中所述利用包括使用所述设备标识符在设备标识符到设备秘密的映射的集合中查找设备秘密。

18.根据前述示例16或17中任一项所述的示例方法,其中所述使得包括生成密码资产并将密码资产和设备秘密传送到主机设备。

19.根据前述示例16-18中任一项所述的示例方法,其中所述使得包括向主机设备传送通知以便tpm生成密码资产。

20.根据前述示例16-19中任一项所述的示例方法,其中,所述密码资产包括密码密钥,并且其中所述使得包括将针对所述密码密钥的授权证书传送到所述主机设备以便在所述客户端设备上供应。

结论

描述了利用主机设备的可信平台模块的技术。尽管以结构特征和/或方法动作特有的语言描述了实施例,但是应当理解,所附权利要求中限定的实施例不一定限于所描述的特定特征或动作。相反,特定特征和动作被公开为实现所要求保护的实施例的示例形式。

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