用于共享可信平台模块的系统和方法

文档序号:6456373阅读:360来源:国知局
专利名称:用于共享可信平台模块的系统和方法
用于共享可信平台模块的系统和方法
背景技术
可信计算组织(TCG)开发并促进用于硬件使能的可信计算和安全 技术例如可信平台模块(TPM)的工业标准规范。TPM被用来存储并报告 计算平台上的各种设备和/或硬件的完整性,并被用来安全地隐藏和存 储平台信息及秘密,例如密码、密钥和证书。TPM本质上是一个单命令 处理设备,从而当TPM对用于由计算机系统产生的一个进程的数据进行 操作时,TPM不能对其它进程操作,直到TPM完成对第一个进程的处理。 此外,除了开始当前在TPM上执行的进程的实体,没有其它实体可以在 该进程执行期间建立与TPM的连接。而且,单个实体通常作为所有在操 作系统(0S)级产生的要与TPM通信的进程/实体的调度器。该调度器 实体典型地拒绝在其操作期间放弃对TPM的控制。
排他地使用TPM的两个实体是TCG软件栈(TSS )和TPM基本服务 (TBS) 。 TSS提供符合TCG规范和原则的安全服务,并在计算机OS的 控制下执行;TBS为Windows操作系统的最新的TPM感知的(TPM-aware ) 版本虚拟化(virtualize) TPM。但是,在一些情况下,优选地要在OS 的控制之外执行安全操作,例如加密或解密,因为OS之外的计算机系 统固件可以更能够抵抗用户操作带来的干扰,无论是无意的还是恶意 的,并且更少可能被改变。不幸的是,可用于存储密钥和软件的存储器 典型地限于固件和可以在固件中的基本输入/输出系统(B10 S)。但是, 如果另一个实体,例如BI0S、固件、外部设备或计算机主板上的另一电 路,试图为了安全操作利用TPM的功能性,TPM的单进程操作限制引入 了与TSS/TBS沖突的风险。冲突可能的形式是延迟和状态损坏。当 TSS/TBS正在使用TPM而不会放弃控制时发生延迟。如果在由TSS/TBS 使用的周期之间另一实体使用了 TPM并且改变了 TSS/TBS曾经依赖的要 保持不变的寄存器的状态,状态损坏就会出现。


图1是示出用于共享可信平台模块(TPM)的系统的实施例的框图;图2是进一步示出图1中用于共享TPM的系统的实施例的框图; 图3是示出用于共享TPM的方法的实施例的流程图。
具体实施例方式
本发明的优选实施例及其优势将通过参考附图中的图1-3而被最好 地理解,相同的附图标记被用于不同图中类似和相应的部分。
图1是示出用于共享可信平台模块(TPM)的系统1的实施例的框 图。在图1示出的实施例中,系统1包括具有主板100的计算机系统10, 该主板装有中央处理器(CPU) 110、存储器120、 TPM130、固件MO和 电路150。在图1示出的实施例中,固件140包括基本输入/输出系统
(BIOS) 140。电路150可以是主板100上的任何电路或设备,包括但 不限于,另一安全设备、嵌入设备、平台扩展、接口或总线控制器。BIOS 140是在操作系统(OS) 121-故载入和执行之前在计算机系统10上运行 的固件。但是,应该理解,可以使用计算机系统10的其它方法和/或实 施例,其不包含传统的BIOS而使用其它固件系统。计算机系统10可以 包括任意类型的计算机系统,例如但不限于,个人电脑、个人数字助理
(PDA)、微控制器、嵌入式系统、通信设备和娱乐设备。如这里所使 用,术语"TPM"包括提供硬件使能的可信计算的基础的任何设备,并 且不限于满足由可信计算组织(TCG)产生的规范的设备。
在图1中,TPM 130包括TPM忙标志131 (指示TPM 130正被使用 或正在执行从系统局部实体(SLE)发出的进程和/或请求),以及请求 标志132 (指示使用TPM130来执行从SLE发出的系统局部进程和/或请 求的请求)。SLE是被允许访问受限的TPM内部加密功能性的实体,并 且遵守不向用户或用于一般用途的应用程序暴露TPM内部加密能力的 TPM限制。SLE可以是遵守这些限制的任何组件,并可以包括平台固件
(例如固件140) 、 BIOS (例如BIOS 141)、主板100上的其它芯片、 外围设备例如键盘、指紋读取器等。从而SLE将TPM的内部加密功能扩 展到不包括一般目的应用程序和用户的逻辑边界。SLE或者使用不能被 流氓(rogue) OS欺骗的硬件信号,或者通过在为该局部指定的存储器 映射输入/输出(MMIO)范围中与TPM通信,证明其"局部性"。此外, 应该理解,SLE可以是物理的或虚拟的,例如超控制器(Hypervisor ) / 虛拟机监控器。在图l示出的实施例中,计算机系统IO还包括加入设备IOI,其可
以是插入卡、媒体读取器、安全设备或可以与计算机系统10 —起使用 的任何其它类型的设备。在图1中,智能卡11、通用串行总线(USB) 设备12及安全设备13被示出为通信地耦接到计算机系统10。安全设备 13可以包括任意类型或与安全相关的设备,例如但不限于,生物测量设 备例如指紋读取器或视网膜扫描器。在图1示出的系统l中, 一个或更 多个SLE实体(例如一个或更多个智能卡U、 USB设备12、安全设备 13、加入设备101、固件140、 BIOS 141、电路150等)可以使用和/或 以其他方式向TPM 130请求服务。在操作中,为了使用和/或以其他方 式请求TPM 130的服务,请求标志132被置位,或者通知通过0S 121 发送,该通知被CPU 110处理并至少临时存储在存储器120中。
在一些实施例中,通过经系统总线向TPM 130发送一般目的输入/ 输出(GPIO)消息和使用MMIO,请求标志132可以被置位或清零。MMIO 使用相同的总线来访问存储器及输入/输出(1/0)设备,从而一些存储器 地址被保留用于I/O而不是访问存储器空间。TCG规范定义了用于不同 的局部的存储器范围。基于该实体用来与TPM 130通信的存储器范围, TPM 130确保与它通信的实体位于给定的局部。
图2是进一步示出图1的系统1的框图。在图2示出的实施例中, 计算机系统10包括用户进程层21、系统进程层22、内核模式层23及 固件/硬件层24。 OS 121从用户进程层21延伸,经系统进程层22进入 内核模式层23。用户进程层21包括要使用TPM 130的安全功能的两个 应用程序211和212。例如,应用程序211和212可能需要加密或解密 以便处理数据,例如可能播放音频文件或数字视频光盘(DVD)所需要 的。应该理解,想要使用TPM 130的资源的应用程序或其它实体的类型 和数量可以变化。
在OS层次上(例如由层21、 22、 23中的OS 121控制所控制和/或 以其他方式在层21、 22、 23中的0S 121控制下执行),为了得到和/ 或以其他方式访问所需的TPM 130的安全功能,应用程序211和212中 的一个开始在TPM 130上的进程的纟丸行。应用程序211和212通过TCG 软件栈(TSS )221与TPM 130交互。TSS 211访问TPM设备驱动库(TDDL ) 或TPM基本服务(TBS ) 222。 TSS 211和TDDL/TBS 222位于用户进程层 23之下的系统进程层22中。TDDL/TBS 222选择特定的TPM设备驱动器231来使用输入/输出(I/O)系统232驱动TPM 130。 1/0系统232可以 包括但不限于GPIO或MMIO。
用户进程层21、系统进程层22、内核模式层23和固件/硬件层24 表示对资源的不同访问度,较高层具有较大的访问度。例如,计算机系 统10的用户可以在计算机系统10的寿命期间在用户进程层21中安装、 打补丁和删除许多应用程序,例如应用程序211和212。 <旦是,在一些 实施例中,TPM 130是防篡改的并且不能被用户修改。通常,在OS in 的控制下运行的任何应用程序,例如应用程序211和212,会遭到可能 是用户、黑客或病毒发起的攻击。例如,攻击可以包括试图获取对数据 的非法访问以拷贝或破坏它。于是,通过将安全服务移到OS 121外部, 在那里访问更为受限,多种形式的计算机攻击可以被排除。
SLE 234包括在固件/硬件层24上部署的任意类型的设备,并由此 可以潜在地提供比在用户应用层21中部署的应用程序211和212提供 的安全级别更高的安全级别。在一些实施例中,SLE 234可以包括一个 或更多个智能卡11、 USB设备12、安全设备13、加入设备101、固件 140、 BIOS 141或电路150 (图1 )。但是,应该理解,其它类型的应用 程序和/或实体可以在固件/硬件24中存在并包含SLE 234。
SLE 234被配置为通过将请求标志132置位或通过发送另一类型的 通知来中断在TPM 130上为使用的应用程序211或212执行的0S 121 层次进程。例如,通知可以被发送到TPM 130、 TSS 221、 TBS 222、应 用程序211或212、或OS 121中的任何其它实体。请求标志132可以通 过使用I/O系统232或通过经OS 121来置位。通知还可以经I/O系统 232被传递到TPM 130,或被传递到0S 121以路由到合适的接收者,可 能使用簡I。于是,OS 121层次进程被中断和/或暂停以使能TPM 130 对非OS 121层次进程(例如与SLE 234关联且/或由0S 121的层21、 22和23外部和/或外侧的实体发起的进程)的执行。
当TPM 130在为OS 121层次应用程序执行OS 121层次进程和/或 请求时(例如为在OS 121控制下的应用程序211和/或212 ),指示TPM 130正在一皮使用的TPM忙标志131没有^皮置位。由于TCG TPM规范规定 了单进程、单用户设备,如果TPM 130满足TCG规范,则当前的进程具 有对TPM 130的排他使用。系统1的实施例使用请求标志132来提供至 少一种机制,用于通过由SLE 234 (例如智能卡11、 USB设备12/安全
6设备13、加入设备101、固件140或电路150)发出请求信号以中断或 暂停OS 121层次进程的执行并执行SLE 234进程,来使能对TPM 130 的共享。
图3是示出TPM共享方法的实施例的流程图。该方法在块301开始, 其中TSS 221在TPM 130上执行0S 121层次进程(例如,代表应用程 序211或212 )。尽管图3使用TSS 221来描述,其它实体也可以使用 TPM 130,例如TDDL/TBS 222或可以访问TPM 130资源的另一 0S 121 层次应用程序。在块302中,有指示SLE 234要使用TPM 130(例如固 件140、 BIOS 141、电路150、主板100上的另一电路,主板100外的 设备,以及/或被授权使用TPM 130的任何其它SLE)。如上所述,该请 求可以是用于要在OS 121以外执行的加密或解密过程。
在块303中,SLE 234向TPM 130认证自己,以得到使用TPM130 的授权。例如,认证可能需要使用预定的局部存储器范围经MMIO发送 消息。在块304中,通过,例如,置位请求标志132和/或使用WMI、 GPIO、 MMIO或使SLE 234能发信号通知TPM 130或在0S 121中执行的进程的 任何其它方法来发送通知,SLE 140请求使用TPM 130。还应该理解, 其它方法也可以被使用(例如,使用中断请求(IRQ))。
在块305中,通过监控请求标志132状态或通过以其他方式接收SLE 234请求的通知,TSS 221得知SLE 234请求。对TPM 1 30的控制从TSS 221到SLE 234的移交,可以被协同地或占先地执行。在判定块306中, SLE 234或者进行协同方案或者进行占先方案。如果选择了占先方案, 该方法进入块307a,其中SLE 234暂停执行TSS 221进程并保存TPM 130 的状态,且该方法进入块310。如果在判定块306中选择了协同方案, 该方法进入块307b,其中TSS 221在SLE 234等待的同时开始清理进程。 例如,在一些实施例中,使用协同方案,TSS 221暂停它自己的进程, 保存TPM 130状态,然后清零请求标志132。在判定块308,通过监控 请求标志132的状态,做出决定TSS 221是否已完成清理进程。如果TSS 221还没有完成,则该方法进入块309,其中SLE 234继续监控TSS 221 的状态以通过监控请求标志132来确定TSS 221是否已经完成。应该理 解在一些实施例中,系统1可以被实现为对所有设备使用占先、对所有 设备使用协同、或对某些设备使用协同并对其它设备使用占先(例如, 由系统设计者、用户、管理员等设置)。在其它实施例中,决定是行协同或占先的进程是基于任务的优先权的(例如,较高优先权的任务 使用占先进程,而较低优先权的任务使用协同进程)。当根据TCG规范
实施时,TPM 130能够响应于SaveState()和RestoreState()命令,以 分别保存和恢复其寄存器的值。TSS 221或SLE 234,无论那个具有对 TPM 130的控制,能够发出这样的命令。
当TSS 221已经释放对TPM 130的控制,TSS 221在块310中用信 号通知该释放(例如,通过清零请求标志132和/或向OS 121中曾经正 使用TSS 221来访问TPM 130的功能的应用程序报告状态)。在一些实 施例中,TSS 221报告它已被抢先或提供完成进程的时间估计,时间估 计包括SLE 234将使用TPM 130的时间。在块311中,SLE 234访问和/ 或以其他方式取得TPM 130的控制,并置位忙标志131。在块312中, SLE 234执行它自己的进程,并且在其结束或完成时,在块313中释放 TPM 130。在一些实施例中,释放TPM 130包括清理固件140进程、清 零忙标志131、恢复来自TSS 221进程的状态、并通知TSS 221。
在块314中,TSS 221重连到TPM 130。在一些实施例中,重连到 TPM 130是在响应于TSS 211接收到与SLE 234关联的进程完成的通知、 或作为TSS 221监控忙标志131的结果而发生的。在一些实施例中,TPM 130及/或OS 121中曾正在使用TSS 221来访问TPM 130的应用程序以 其他方式^皮通知用于SLE 234的进程结束,以确保TPM 130使用返回到 TSS 221,以便于用于TSS 221的进程的完成。如果被保存的TPM 130 状态没有被SLE 234恢复,TSS 221恢复TPM 130状态。TSS 221进程 的执行在块315中恢复。
于是,系统1的实施例使能了对TPM 130资源的共享使用,从而对 TPM 130的控制可以在TPM 130完成OS层次进程之前被放弃。在一些实 施例中,系统1使能占先和/或协同方案来共享TPM 130资源。
8
权利要求
1. 一种用于共享可信平台模块(TPM)的方法,包括暂停在TPM(130)中执行的操作系统(OS)(121)层次进程的执行;以及由TPM(130)执行非操作系统(121)层次进程。
2. 如权利要求1所述的方法,还包括恢复由TPM ( 130)对操作系 统(121 )层次进程的执行。
3. 如权利要求1所述的方法,还包括保存TPM (130)的状态。
4. 如权利要求l所述的方法,其中,执行非操作系统(121 )层次 进程包括执行与系统局部实体(SLE) ( 234 )关联的非操作系统(121) 层次进程。
5. 如权利要求l所述的方法,还包括监控一标志(132),该标志 (132)的置位指示对将TPM ( 130)用于非操作系统(121 )层次进程的请求。
6. —种用于共享可信平台模块(TPM)的系统(1 ),包括 TMP(130),可操作来执行操作系统(0S) (121)层次进程,该TPM(130)可操作来暂停操作系统(121 )层次进程的执行并执行非搡作系 统(121 )层次进程。
7. 如权利要求6所述的系统(1),其中,所述非操作系统(121) 层次进程与系统局部实体(SLE) ( 234 )关联。
8. 如权利要求6所述的系统(1),其中,TPM (130)包括请求标 志(132),用于指示执行非操作系统(121)层次进程的请求。
9. 如权利要求6所述的系统(1),还包括操作系统(121),其 可操作来接收请求将TPM (130)用于执行非操作系统(121 )层次进程 的通^口 。
10. 如权利要求6所述的系统(1 ),还包括系统局部实体(234 ), 其可操作来置位请求标志(132 )以指示执行非操作系统(121 )层次进 程的请求。
全文摘要
用于共享可信平台模块(TPM)的系统(1)包括可操作来执行操作系统(OS)(121)层次进程的TPM(130),该TPM可操作来暂停OS(121)层次进程的执行并执行非OS层次进程。
文档编号G06F9/48GK101535957SQ200780040609
公开日2009年9月16日 申请日期2007年10月11日 优先权日2006年10月30日
发明者M·諾沃亚, V·Y·阿利, W·M·易卜拉欣 申请人:惠普开发有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1