一种安全计算机及其实现方法技术

技术编号:2858330 阅读:117 留言:0更新日期:2012-04-11 18:40
本发明专利技术提供了一种安全计算机及其实现方法,其关键是在BIOS内设置一安全驱动模块(Rom  Driver),使其成为底层的安全芯片和BIOS之间的通讯桥梁,即将接收到的来自BIOS的控制安全芯片的命令和与控制安全芯片命令相关的数据发送给TPM芯片,驱动并监视TPM芯片执行命令的情况,当命令执行完毕后,将执行的结果保存在BIOS指定的位置,以供BIOS读取。也就是说,安全驱动模块负责和TPM芯片直接沟通,让TPM芯片处于要求的工作状态,并将TPM芯片的执行结果保存在BIOS指定的位置。这样,既保证了TPM芯片的安全功能,又使得BIOS不需要了解TPM芯片的细节技术。

【技术实现步骤摘要】

本专利技术涉及计算机安全
,特别是指。
技术介绍
当今已进入网络时代,计算机(PC)被广泛应用在人们的日常生活中,如何保证计算机中信息的安全已经成为人们十分关注的问题。一直以来,微软、英特尔以及其它许多公司一直在研究开发受保护的计算环境以应对各种各样的攻击,与此同时还为敏感数据处理和电子商务交易提供安全计算。TPM(Trusted Platform Module)技术就是一种最新的可以达到上述目的的应用于PC平台的计算机安全技术。TPM技术是由可信赖计算组织(TCG,Trusted Computing Group)推出的“可信赖平台模块”标准。本申请人依据该标准,已经在申请号为“03138380.7”,专利技术名称为“一种安全芯片及基于该芯片的信息安全处理设备和方法”的专利技术专利申请中,公开了一种安全芯片(TPM芯片)的内部结构及其功能,以及该安全芯片与基本输入输出系统(BIOS)和操作系统之间的交互内容。由于TPM芯片作为一个安全产品,不是软件可以随便访问的,因此,即使是和底层硬件直接打交道的BIOS也不能直接向TPM芯片发送或接收命令或数据,这样才能保证它的安全功能正常发挥。但申请号为“03138380.7”的专利技术专利申请中并没有具体给出安全芯片和BIOS之间是如何实现信息交互的,本申请则对此进行详细说明。
技术实现思路
有鉴于此,本专利技术的主要目的是提供,具体说明安全芯片和BIOS之间实现通信的过程。为达到上述目的,本专利技术的技术方案是这样实现的一种安全计算机,至少包括安全芯片、BIOS和用于传递参数的寄存器,该计算机还包括用于安全芯片和BIOS之间通信的安全驱动模块Rom Driver,该安全驱动模块从传递参数的寄存器中读取来自BIOS的调用代码,调用自身内与该代码相对应的模块,驱动并监视安全芯片运行,并将安全芯片的执行结果保存在BIOS指定的位置。较佳地,在BIOS的BOOT BLOCK阶段,所述安全驱动模块内包括控制模块、初始化模块、TPM芯片物理存在模块和执行HASH运算的模块,其中,所述控制模块,接收来自BIOS的调用,从传递参数寄存器内读取调用代码,调用与该代码对应的模块,并将该模块的执行结果保存在BIOS指定的位置;所述初始化模块,接收来自控制模块的调用,对安全芯片进行初始化,将初始化结果返回给控制模块;所述TPM芯片物理存在模块,接收来自控制模块的调用,向安全芯片发送指示安全芯片物理存在的命令TSC_PhysicalPresence,将安全芯片的执行结果返回给控制模块;所述执行HASH运算的模块,接收来自控制模块的调用,控制安全芯片进行HASH运算,将安全芯片的运算结果保存在安全芯片内的寄存器中,给控制模块返回执行结果。较佳地,所述安全驱动模块内进一步包括关闭安全芯片通信接口的模块,该模块接收来自控制模块的调用,关闭BIOS与安全芯片之间的通信接口,将执行结果返回给控制模块。较佳地,在BIOS的POST阶段,所述安全驱动模块内包括控制模块、初始化模块、向安全芯片传送命令的模块、获取安全芯片当前状态的模块和关闭安全芯片通信接口的模块,其中,所述控制模块,接收来自BIOS的调用,从传递参数寄存器内读取调用代码,调用与该代码对应的模块,并将该模块的执行结果保存在BIOS指定的位置;所述初始化模块,接收来自控制模块的调用,对安全芯片进行初始化,将初始化结果返回给控制模块;所述向安全芯片传送命令的模块,接收来自控制模块的调用,向安全芯片传送BIOS所发的命令,并将安全芯片的执行结果返回给控制模块;所述获取安全芯片当前状态的模块,接收来自控制模块的调用,检测安全芯片当前的状态,并将检测结果返回给控制模块;所述关闭安全芯片通信接口的模块,接收来自控制模块的调用,关闭BIOS与安全芯片之间的通信接口,将执行结果返回给控制模块。一种安全计算机的实现方法,在BIOS的POST阶段,该方法包括以下步骤a、BIOS在POST内将MP安全驱动模块加载到内存中;b、BIOS将调用代码写入用于传递参数的寄存器内;c、MP安全驱动模块接收到来自BIOS的调用后,读取寄存器内的代码,调用与之相对应的函数,驱动并监视安全芯片运行,将运行结果保存在BIOS指定的位置。较佳地,所述调用代码所对应的函数为初始化函数MP_InitTPM(),获取安全芯片状态的函数MP_GetTPMStatusInfo(),向安全芯片传送命令的函数MP_TPMTransmit(),或关闭安全芯片通信接口的函数MP_CloseTPM()。较佳地,该方法进一步包括当MP安全驱动模块判断出BIOS调用MP_TPMTransmit()时,将到内存中的指定位置读取具体待传送命令的代码以及与该命令相对应的参数。较佳地,所述与具体待传送命令相对应的参数是待进行加密运算数据块在内存中的起始地址X1和长度Y1,以及存放返回值的缓冲区在内存中的起始地址X2和长度Y2。较佳地,该方法进一步包括在BIOS的BOOT BLOCK阶段,BIOS将调用代码写入用于传递参数的寄存器内,MA安全驱动模块接收到来自BIOS的调用后,读取寄存器内的代码,调用与之相对应的函数,驱动安全芯片运行,并给BIOS返回运行结果。较佳地,所述待调用函数为初始化函数MP_InitTPM(),安全芯片物理存在函数MA_PhysicalPresenceTPM(),或驱动安全芯片执行HASH运算的函数MA_HashAllExtendTPM()。较佳地,该方法进一步包括当MA安全驱动模块判断出BIOS调用MA_HashAllExtendTPM()时,将继续从传递参数的寄存器中读取与所传送命令相对应的参数。较佳地,所述与所传送命令相对应的参数是待进行加密运算数据块的起始地址X1和长度Y1。较佳地,当MP安全驱动模块调用初始化函数MP_InitTPM()时,驱动安全芯片运行的操作包括以下步骤打开与安全芯片直接相连的LPC接口,判断该安全芯片的制造商ID和设备ID是否与自身数据库内保存的制造商ID和设备ID相同,如果是,则设置该安全芯片的输入输出I/O基地址以及待使用的中断号,检测该芯片的状态,设置与该芯片当前状态相对应的标志后,关闭与安全芯片直接相连的LPC接口,否则直接关闭与安全芯片直接相连的LPC接口。较佳地,当MP安全驱动模块调用获取安全芯片状态的函数MP_GetTPMStatusInfo()时,驱动安全芯片运行的操作包括以下步骤打开与安全芯片直接相连的LPC接口,分别检测该LPC接口和该安全芯片的状态,检测完毕后关闭与安全芯片直接相连的LPC接口并返回LPC接口和安全芯片的状态字。较佳地,当MP安全驱动模块调用安全芯片传送命令的函数MP_TPMTransmit()时,驱动安全芯片运行的操作包括以下步骤b1、判断安全芯片当前是否已准备好接收命令,如果是,执行步骤b2,否则执行步骤b5;b2、向安全芯片发送一个命令数据的所有字节后,执行步骤b3;b3、判断安全芯片是否正确接收到所有的数据,如果是,则执行步骤b4,否则判断重新传送的次数是否超出预先设定的次数阈值,如果是,则执行步骤b5,否则执行步骤b2;b4、判断安全芯片是否执行完毕该命令,如果是,则读取安全芯片的命令返回值后,执行步骤b5,否本文档来自技高网...

【技术保护点】
一种安全计算机,至少包括安全芯片、BIOS和用于传递参数的寄存器,其特征在于,该计算机还包括用于安全芯片和BIOS之间通信的安全驱动模块RomDriver,该安全驱动模块从传递参数的寄存器中读取来自BIOS的调用代码,调用自身内与该代码 相对应的模块,驱动并监视安全芯片运行,并将安全芯片的执行结果保存在BIOS指定的位置。

【技术特征摘要】
1.一种安全计算机,至少包括安全芯片、BIOS和用于传递参数的寄存器,其特征在于,该计算机还包括用于安全芯片和BIOS之间通信的安全驱动模块Rom Driver,该安全驱动模块从传递参数的寄存器中读取来自BIOS的调用代码,调用自身内与该代码相对应的模块,驱动并监视安全芯片运行,并将安全芯片的执行结果保存在BIOS指定的位置。2.根据权利要求1所述的计算机,其特征在于,在BIOS的BOOT BLOCK阶段,所述安全驱动模块内包括控制模块、初始化模块、TPM芯片物理存在模块和执行HASH运算的模块,其中,所述控制模块,接收来自BIOS的调用,从传递参数寄存器内读取调用代码,调用与该代码对应的模块,并将该模块的执行结果保存在BIOS指定的位置;所述初始化模块,接收来自控制模块的调用,对安全芯片进行初始化,将初始化结果返回给控制模块;所述TPM芯片物理存在模块,接收来自控制模块的调用,向安全芯片发送指示安全芯片物理存在的命令TSC_PhysicalPresence,将安全芯片的执行结果返回给控制模块;所述执行HASH运算的模块,接收来自控制模块的调用,控制安全芯片进行HASH运算,将安全芯片的运算结果保存在安全芯片内的寄存器中,给控制模块返回执行结果。3.根据权利要求2所述的计算机,其特征在于,所述安全驱动模块内进一步包括关闭安全芯片通信接口的模块,该模块接收来自控制模块的调用,关闭BIOS与安全芯片之间的通信接口,将执行结果返回给控制模块。4.根据权利要求1或2所述的计算机,其特征在于,在BIOS的POST阶段,所述安全驱动模块内包括控制模块、初始化模块、向安全芯片传送命令的模块、获取安全芯片当前状态的模块和关闭安全芯片通信接口的模块,其中,所述控制模块,接收来自BIOS的调用,从传递参数寄存器内读取调用代码,调用与该代码对应的模块,并将该模块的执行结果保存在BIOS指定的位置;所述初始化模块,接收来自控制模块的调用,对安全芯片进行初始化,将初始化结果返回给控制模块;所述向安全芯片传送命令的模块,接收来自控制模块的调用,向安全芯片传送BIOS所发的命令,并将安全芯片的执行结果返回给控制模块;所述获取安全芯片当前状态的模块,接收来自控制模块的调用,检测安全芯片当前的状态,并将检测结果返回给控制模块;所述关闭安全芯片通信接口的模块,接收来自控制模块的调用,关闭BIOS与安全芯片之间的通信接口,将执行结果返回给控制模块。5.一种安全计算机的实现方法,其特征在于,在BIOS的POST阶段,该方法包括以下步骤a、BIOS在POST内将MP安全驱动模块加载到内存中;b、BIOS将调用代码写入用于传递参数的寄存器内;c、MP安全驱动模块接收到来自BIOS的调用后,读取寄存器内的代码,调用与之相对应的函数,驱动并监视安全芯片运行,将运行结果保存在BIOS指定的位置。6.根据权利要求5所述的方法,其特征在于,所述调用代码所对应的函数为初始化函数MP_InitTPM(),获取安全芯片状态的函数MP_GetTPMStatusInfo(),向安全芯片传送命令的函数MP_TPMTransmit(),或关闭安全芯片通信接口的函数MP_CloseTPM()。7.根据权利要求6所述的方法,其特征在于,该方法进一步包括当MP安全驱动模块判断出BIOS调用MP_TPMTransmit()时,将到内存中的指定位置读取具体待传送命令的代码以及与该命令相对应的参数。8.根据权利要求7所述的方法,其特征在于,所述与具体待传送命令相对应的参数是待进行加密运算数据块在内存中的起始地址X1和长度Y1,以及存放返回值的缓冲区在内存中的起始地址X2和长度Y2。9.根据权利要求5所述的方法,其特征在于,该方法进一步包括在BIOS的BOOT BLOCK阶段,BIOS将调用代码写入用于传递参数的寄存器内,MA安全驱动模块接收到来自BIOS的调用后,读取寄存器内的代码,调用与之相对应的函数,驱动安全芯片运行,并给BIOS返回运行结果。10.根据权利要求9所述的方法,其特征在于,所述待调用函数为初始化函数MP_InitTPM(),安全芯片物理存在函数MA_PhysicalPresenceTPM(),或驱动安全芯片执行HASH运算的函数MA_HashAllExtendTPM()。11.根据权利要求10所述的方法,其特征在于,该方法进一步包括当MA安全驱动模块判断出BIOS调用MA_HashAllExtendTPM()时,将继续从传递参数的寄存器中读取与所传送命令相对应的参数。12.根据权利要求11所述的方法,其特征在于,所述与所传送命令相对应的参数是待进行加密运算数据块的起始地址X1和长度Y1。13.根据权利要求6或10所述的方法,其特征在于,当MP安全驱动模块调用初始化函数MP_InitTPM()时,驱动安全芯片运行的操作包括以下步骤打开与安全芯片直接相连的LPC接口,判断该安全芯片的制造商ID和设备ID是否与自身数据库内保存的制造商ID和设备ID相同,如果是,则设置该安全芯片的输入输出I/O基地址以及待使用的中断号,检测该芯片的状态,设置与该芯片当前状态相对应的标志后,关闭与安全芯片直接相连的LPC接口,否则直接...

【专利技术属性】
技术研发人员:刘云海王晓文
申请(专利权)人:联想北京有限公司
类型:发明
国别省市:11[中国|北京]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1