一、引言
具有安全存储和加密功能的TPM(可信平台模块)概念提出至今已近八年。可信计算渐渐成为全球计算机安全技术发展的主要趋势。TPM的核心思想是在个人计算机系统中嵌入一个可以抵抗篡改的,即非法用户无法对其内部数据进行更改的独立计算引擎,从而提高个人计算机中身份认证和数据加密应用服务的安全性。
按照TPM所处的操作系统环境,当前的TPM应用服务大致可以被分为两种:第一种是计算机主板提供了TPM芯片,但操作系统没有提供对TPM芯片的支持,因此TPM应用服务提供商需要为TPM芯片开发相应的驱动程序,并在此基础上为用户提供各种应用服务。 第二种是操作系统提供了对TPM芯片的支持,支持TPM的驱动程序成为操作系统的组件之一。
在第一种情况下,由于操作系统本身不支持TPM,无法建立操作系统度量机制,所以操作系统无法保障自身的完整性,从而也无法保障TPM支撑软件(TCG Software Stack,简称TSS,如TPM驱动程序)的完整性。因此,建立在这种环境中的TPM应用程序在访问TPM时存在着不安全因素。
第二种情况下,TSS被集成到操作系统中,成为操作系统的一部分。在操作系统的支持下,TMP可在计算机加电与启动系统之间对计算机的硬件系统和操作系统的重要组成部分进行静态度量。微软最新发布的操作系统Vista就属于第二种情况,由于操作系统被加载之前,要接受完整性度量,因此很大程度上保障了TSS的完整性。但是,由于Vista操作系统启动后,并没有继续为其他应用服务提供度量机制,因此,建立在这种操作系统中的TPM应用程序访问TPM时仍然存在不安全因素。
二、TPM访问机制的安全性分析
1. TPM访问协议
目前,TPM访问机制大多简单地建立在TPM访问协议的基础之上。TCG在“可信平台模块规范”中定义了两种用于访问TPM的基本协议,即独立对象授权协议(Object-Independent Authorization Protocol,简称OIAP)和特定对象授权协议(Object-Specific Authorization Protocol,简称OSAP)。OIAP是访问受TPM保护的密钥、数据或执行TPM授权命令时经常使用的访问协议之一。按照“可信平台模块规范”的定义,只有在基于TPM的应用程序(简称A)与TPM(简称T)之间共享指定的秘密授权信息(记作SharedAuthData)时,A才能访问受T保护的资源。OIAP协议的具体过程如图1所示。
其中关键步骤包括第3步,即A使用自己的SharedAuthData计算用于访问TPM的输入认证信息inAuth。
inAuth =HMAC(SharedAuthData ||SHA(inputParam)||inAuthSetupParam) inputParam代表请求T执行的命令TPM_COMMAND及其相关输入参数。而inAuthSetupParam=(rand1||rand2||SessionHandle)。
(责任编辑:adminadmin2008)