《电子技术应用》
您所在的位置:首页 > 通信与网络 > 业界动态 > 基于TPM芯片的计算机安全启动系统设计

基于TPM芯片的计算机安全启动系统设计

2008-04-10
作者:王新成,孙 宏,蔡吉人,杨义先

  摘 要: 提出了一种安全芯片" title="安全芯片">安全芯片的设计及其保护BIOS、底层固件" title="固件">固件、操作系统以及应用模块的方法。通过密码学原理和集成电路技术设计实现的一款安全芯片,能够有效地防止对计算机系统中操作系统、应用模块以及BIOS的攻击。
  关键词: BIOS TPM安全芯片 安全启动系统


1 技术背景
  当前,计算机系统已被广泛应用在人们的日常生活中。计算机的启动过程是首先运行BIOS(Basic Input Output System)[1],对计算机系统进行检测和配置,然后装载操作系统并运行部分底层固件[2]。计算机中的BIOS通常存储在闪存(Flash)这种非易失性存储器中[3],而BIOS常常是被病毒、黑客攻击的对象。其攻击方式是通过执行代码修改BIOS,从而造成BIOS或操作系统被破坏。由于BIOS是先于操作系统和病毒检测软件运行的,因此通过软件方式清除、检查BIOS中的病毒十分困难。所以本文通过使用TPM(Trusted Platform Module)安全芯片,对计算机主板进行改进,设计实现计算机安全" title="计算机安全">计算机安全启动系统。
1.1 TPM芯片的设计
  安全芯片是安全PC的基础。由Compaq、HP、IBM、Intel、Microsoft五家公司成立的TCPA(Trusted Computing Platform Alliance)联盟(于2003年4月改名为TCG,Trusted Computing Group)注重PC的安全特性,提出了以硬件安全作为保证计算机安全的思想,TPM芯片就是基于此种想法设计的安全芯片。
  为了有效地保护计算机系统的BIOS、操作系统以及其他底层固件的安全,有必要在系统启动BIOS之前,对BIOS进行验证。只有确认BIOS没有被修改的情况下,系统才启动BIOS。启动BIOS之后,可以进一步验证操作系统和其他底层固件。当所有的验证都通过时,计算机系统才可以正常运行。由于BIOS先于操作系统和其他软件运行[2],因此,通过软件验证BIOS是非常困难的。为了解决这一难题,本文设计一款TPM安全芯片,用于保护计算机系统的BIOS。
  图1为安全芯片的结构图。图中,主处理器模块完成对整个安全芯片的控制;加密模块完成对称密码算法、杂凑算法等密码算法;接口模块用于与计算机系统主板上的桥系统进行连接;RAM用于存储中间结果;Flash用于存储芯片中的芯片操作系统COS。


1.2 TPM安全芯片工作原理
  TPM安全芯片在计算机主板上的应用如图2所示。


  通过TPM安全芯片对计算机系统提供保护的方法为:(1)在主板上设置TPM安全芯片;(2)启动信息处理设备时,由TPM芯片验证当前底层固件的完整性,如正确则完成正常的系统初始化后执行步骤(3),否则停止启动该信息处理设备;(3)由底层固件验证当前操作系统的完整性,如正确则正常运行操作系统,否则停止装入操作系统。总之,此方法是通过在信息处理设备的启动过程中对BIOS、底层固件、操作系统依次进行完整性验证,从而保证信息处理设备的安全启动之后,再利用TPM芯片内置的加密模块生成并管理系统中各种密钥,对应用模块进行加解密,以保证计算机等信息设备中应用模块的安全。
  图2中,信息处理设备的CPU 与主板上的北桥相连,北桥与南桥和静态存储器(SRAM)分别直接相连[2],南桥分别与超级输入输出接口(SuperIO)、BIOS 模块和安全芯片通过LPC(Low Pin Count Bus)总线直接相连,同时,计算机主板上的CPU 通过读写控制" title="读写控制">读写控制线与安全芯片中的BIOS模块直接相连。安全芯片通过完整性校验检验主板上的BIOS模块是否被非法修改。
  上述方法能够对BIOS的完整性进行验证,但它仅仅避免了BIOS中的病毒对操作系统的破坏,安全芯片并不能防止BIOS本身被修改,只能在发现BIOS被修改后,停止启动计算机,因而该方法只是被动应对可能的攻击。
2 改进的安全措施
2.1 改进的TPM芯片设计

  如图3所示,改进后的TPM芯片在原安全芯片的基础上集成了BIOS。改进后的TPM芯片中的主处理器模块在初始化后启动芯片中的BIOS程序,并判断对BIOS的操作是读操作还是写操作。在读BIOS代码之前,首先对其进行完整性验证,验证通过后,可以进一步验证操作系统和其他底层固件的完整性,并且允许通过身份认证" title="身份认证">身份认证的用户修改BIOS代码,从而使得计算机系统在启动时。这样,不但可以对BIOS、底层固件、操作系统以及应用模块依次进行完整性验证,避免了对操作系统和应用模块的攻击,而且使得没有通过身份验证的攻击者无法修改BIOS代码,从而避免了对BIOS的攻击。


2.2 应用结构
  如图4所示,装有TPM安全芯片(此处以及下文中的“TPM安全芯片”或“安全芯片”都是指改进后的集成BIOS的TPM安全芯片)的计算机上电时,TPM安全芯片中的主处理器模块运行存储模块中的芯片操作系统COS,完成芯片内部的初始化;之后对BIOS模块的读写操作过程进行验证。BIOS模块中的读写控制接口与该TPM安全芯片所在设备的CPU相连,接收其发出的读写信号,BIOS模块中的内部总线接口与TPM安全芯片内部的主处理器模块相连,由主处理器模块对读写BIOS模块的操作进行验证。芯片的外部设备接口模块与TPM安全芯片所在设备相连,在主处理器模块的控制下,使TPM安全芯片与外部设备进行信息交互。

 


2.3 工作过程
  图5为TPM安全芯片应用于计算机系统的工作流程。
  具体步骤如下:
  (1)在确保计算机终端安全的环境下(如生产线上,或用户第一次使用时),生成BIOS和底层固件的完整性验证码,将其分别存储在TPM安全芯片中;将操作系统的完整性验证码存储在底层固件或TPM安全芯片中;将待保护应用模块的完整性检验码存储在操作系统或TPM安全芯片中。
  (2)在计算机终端加电时,计算机终端内的TPM安全芯片进行基本初始化。
  (3)主板系统运行TPM安全芯片中的BIOS,TPM安全芯片根据信息处理设备的CPU发出的物理驱动信号,即相应的读写请求,判断对BIOS进行读操作还是写操作,如果是读操作,则执行步骤(4),如果是写操作则执行步骤(8)。
  (4)TPM安全芯片读出其内部的BIOS代码,并验证该BIOS代码的完整性,然后执行步骤(5)。
  (5)TPM安全芯片验证底层固件的完整性,然后执行步骤(6)。
  (6)TPM安全芯片验证待加载操作系统的完整性,然后执行步骤(7)。
  (7)正常运行系统的操作系统,然后将TPM安全芯片定义为系统中的一个设备,并启动安全服务。
  (8)允许通过身份认证的用户对TPM安全芯片内部的BIOS代码进行更新。


  图6为读BIOS代码并验证其完整性的流程图。
  具体步骤如下:
  (1)系统加电启动,计算机终端内的TPM安全芯片进行基本初始化。
  (2)计算机终端的CPU发出读BIOS代码的物理驱动信号。
  (3)TPM芯片读取其内部的BIOS代码。
  (4)对读取出来的BIOS代码进行完整性计算。
  (5)从存储部件中读取预先保存的BIOS的完整性校验码,判断计算出的完整性校验码与预先保存的完整性校验码是否一致,如果一致,则执行步骤(6),否则执行步骤(7)。
  (6)计算机终端的CPU运行所读取的BIOS代码,读BIOS代码的流程结束。
  (7)禁用该读出的BIOS代码,并发出该读BIOS代码已被非法修改的提示后,读BIOS代码的流程结束。
  图7为更新BIOS代码流程图。


  具体步骤如下:
  (1)系统加电启动,计算机终端内的TPM安全芯片进行基本初始化。
  (2)计算机终端的CPU发出更新BIOS代码的物理驱动信号。
  (3)TPM安全芯片要求用户提供身份认证密码,该身份验证密码可采用数字签名或对称密码等多种形式。
  (4)从存储部件中读取预先保存的身份认证密码,并判断该身份认证密码与用户提供的身份认证密码是否一致,如果一致,则执行步骤(5),否则执行步骤(9)。
  (5)更新BIOS代码,并将更新的代码保存于存储部件中。
  (6)对新的BIOS代码进行完整性计算,得到新BIOS的完整性验证码。
  (7)用新BIOS的完整性验证码替换原有BIOS的完整性验证码。
  (8)用新的BIOS代码替换原有的BIOS代码后,更新BIOS代码的流程结束。
  (9)禁止对BIOS代码进行更新,并提示该修改BIOS的操作为非法操作,结束更新BIOS代码的流程。
3 结果对比
  为了证实安全芯片能对安全启动计算机系统带来效果,作者所在的研究小组建立了三个演示环境:第一个演示环境是一台普通的PC机;第二个演示环境按照图2对普通的PC机主板进行改动,采用了TPM安全芯片;第三个演示环境按照图4对普通的PC机主板进行改动,采用了改进的TPM安全芯片。
  在三台计算机中都插入带有CIH病毒的软盘,分别启动三台计算机,然后对三台计算机进行检测。结果如下:第一个环境中的PC机非正常启动,BIOS文件被改写,无法找到外设,并且PC机的硬盘受到损坏;第二个环境中的PC机不能启动,BIOS文件被改写,PC机的硬盘没有受损,在重新写入正确的BIOS文件后,去除带CIH病毒的软盘,系统能够重新启动并正常工作;第三个环境中的PC机不能启动,去除带CIH病毒的软盘后,系统重新正常启动,BIOS文件没有被修改,PC机的硬盘没有受损。
  以上的试验结果标明,TPM安全芯片和改进的TPM安全芯片能够改善计算机启动系统的安全性能。在计算机系统启动过程中,TPM安全芯片能够检测出是否有病毒攻击BIOS系统和操作系统等系统固件,受到攻击时会使系统退出启动过程,从而减小计算机系统的损失,但是不能保证BIOS免受攻击和不被窜改。采用改进的TPM安全芯片的计算机系统能够在启动时检测出BIOS系统和操作系统等受保护的系统固件是否受到攻击,在受到攻击的情况下使系统退出启动过程,并且能够保证BIOS系统和其他受保护的系统固件的安全,能够最大程度地保护计算机系统的安全。
  通过采用TPM芯片,能够在启动BIOS之前对BIOS进行完整性验证,进一步能够实现对BIOS的读写管理,同理可以实现对操作系统以及其他底层固件的验证以及读写控制,从而实现了计算机系统的安全启动。除了计算机系统外,这项技术能够推广应用于其他带BIOS的信息处理设备中,如笔记本电脑、掌上电脑、手机等设备。
参考文献
1 郑纬民,汤志忠.计算机系统结构(第二版).北京:清华大学出版社,1998
2 John D.Carpinell.Computer systems Organization & architecture.Pearson Education,Inc
3 Barry B.Brey.The Intel microprocessors 8086/8088,80186/80188,80286,80386,80486,Pentium,Pentium Pro Processor,PentiumⅡ,PentiumⅢ,Pentium4,Architecture,Programming,and Interfacing.Pearson Education,Inc

本站内容除特别声明的原创文章之外,转载内容只为传递更多信息,并不代表本网站赞同其观点。转载的所有的文章、图片、音/视频文件等资料的版权归版权所有权人所有。本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如涉及作品内容、版权和其它问题,请及时通过电子邮件或电话通知我们,以便迅速采取适当措施,避免给双方造成不必要的经济损失。联系电话:010-82306118;邮箱:aet@chinaaet.com。