专利名称::基于移动tpm的引导文件可信校验的制作方法
技术领域:
:本发明涉及计算机
技术领域:
,特别是指基于移动TPM的引导文件可信校验。本发明根据可信计算思想,利用移动TPM(TrustedPlatformModule)的安全功能,在Windows系统启动前对关键的配置文件以及操作系统内核文件进行校验,确保启动的Windows操作系统是一个干净、可信的操作系统。
背景技术:
:可信是安全的基础。近年来被高度关注的可信计算平台技术从可信的角度来帮助提高系统的安全性。可信计算的核心思想是"可信传递"。TCG(TrustedComputingGroup)提出了两种实现可信传递的关键技术,一是在计算平台上引入"可信根",二是利用可信根来建立可信链。对于PC平台而言,TCG定义了从计算平台加电B工OS(Basic1叩ut&0utputSystem)执行开始,到引导代码的执行,再到操作系统启动和上层应用程序的执行的一系列过程,信任将通过这个过程一直传递下去,直到整个计算环境的建立。由此可见,操作系统引导阶段的可信验证是建立可信链的关键一环。根据TCG相关规范,建立平台信任链的关键硬件是TPM。根据TPM与计算机的连接方式可将TPM分为集成式TPM(IntegratedTPM)与便携式TPM(PortableTPM)。目前国内外对可信计算技术的研究基本上都是基于集成式的TPM。基于集成式TPM的可信计算平台要求整个计算机系统必须按照新的标准重新设计系统的硬件,势必对现有的通用平台带来冲击,无法保护用户已有的投资。集成式TPM在用户中的推广和应用很难得到认可。另一方面,NTFS(NewTechnologyFileSystem)是微软公司开发的具有较好容错性和安全性的文件系统,目前Windows系列操作系统,比如Winodws2K/XP都使用该文件系统。由于Windows操作系统引导程序NTLoader源代码不公开,微软也没有公开其NTFS的结构,因此,要想在Windows引导阶段不借助于Windows2K/XP,而直接操作NTFS文件系统,对关键的配置文件以及内核文件进行校验技术上实现往往难以进行。
发明内容本发明的目的在于避免上述现有技术中的不足之处而提供一种基于移动TPM的引导文件可信校验,针对使用集成式TPM存在的通用性问题,使用USB接口的具有TPM功能的移动式TPM作为系统的一个可信硬件;针对操作系统引导前文件的校验问题,根据目前大多数Windows系统—使用NTFS文件系统的情况,设计并实现了操作系统引导前读取NTFS文件的模块,实现对引导阶段文件的可信校验。本发明是对基于集成式TPM的可信计算技术的有益补充和扩展。由于USB接口是现有PC平台上的一个通用接口,因此,具有很好的通用性和实用性。本发明的目的可以通过以下措施来达到基于移动TPM的引导文件可信校验,包括以下步骤第一步,通过操作系统下的安装模块对移动式TPM进行初始化,设置相关的认证信息以及引导过程中需要验证模块的完整性校验信息;第二步,设计并实现引导阶段操作系统启动前对移动TPM的驱动模块,由于此时系统尚处于实模式的环境,类似于DOS的运行环境,因此,可以按照DOS操作系统的运行环境对该驱动模块进行测试;第三步,将Partl代码放在硬盘的0扇区位置,将系统原有的MBR移动到硬盘的第二扇区,将Part2代码放在硬盘的第3扇区及其后续位置,具体所占扇区个数由Part2大小决定;第四步,Part2代码中包含了移动TPM的驱动模块和调用接口,对NTFS文件系统读的功能,利用移动TPM的安全功能对所要读取的文件进行可信校验;第五步,文件的检验成功后,由Part2跳转到原来的MBR代码处执行,依据系统固有的启动流程启动操作系统运行。其引导阶段移动--TPM的驱动模块-实现的方袪,操作系统启动前系统没有相关的驱动接口可供使用,系统尚处于实模式阶段,采取通过USB主机控制器直接控制USB设备的方式对设备进行驱动。引导阶段对硬盘上NTFS文件的读取方法,操作系统启动前系统没有相关的文件系统访问接口可供使用,系统尚处于实模式阶段,采取直接通过BIOS提供的磁盘访问接口,通过获取硬盘相关参数读取NTFS文件系统的相关SMFT元文件的方式,从NTFS文件系统索引树中查找所要读取的文件索引信息,并根据文件相关的索引项读取文件内容的方法。引导阶段对文件的可信验证方法利用移动TPM提供的安全存储、密钥的生成及信息的安全加/解密和认证功能对启动阶段的用户进行双因子身份认证,文件进行检验。本发明相比现有技术具有如下优点1.保留目前计算机平台的投资,不需要更换系统主板,具有很好的通用性和实用性;2.通过移动式TPM提供的认证和安全功能,能增强对用户的认证强度,提高平台的安全性;3.在引导阶段对启动过程中的关键文件进行完整性校验,若通过则启动系统,否则终止系统的启动过程,增强了系统的可信性。图1.是本发明的移动TPM的硬件逻辑框图;图2.是本发明的对移动TPM的初始化框图;图3.是当前IA32系统上各引导代码之间的关系;图4.是本发明的Hook主引导记录实现的流程图;图5.是当前IA32系统引导代码的启动图6.是本发明的引导代码启动的工作示意图7.是本发明的弓1导阶段读取NTFS文件内容的工作流程图;图8.是本发明的基于移动TPM安全功能的可信链建立工作示意图9.是本发明的引导阶段对移动TPM的驱动控制。具体实施例方式本发明基于移动TPM的引导文件可信校验实施步骤通过以下部署可以达到第一步,通过操作系统下的安装模块对移动式TPM进行初始化,设置相关的认证信息以及引导过程中需要验证模块的完整性校验f曰息。第二步,设计并实现引导阶段操作系统启动前对移动式TPM的驱动模块。由于此时系统尚处于实模式的环境,类似于DOS的运行环境。因此,可以按照DOS操作系统的运行环境对该驱动模块进行测试。第三步,将Partl代码放在硬盘的0扇区位置,将系统原有的MBR(主引导记录MainBootRecord)移动到硬盘的第二扇区,将Part2代码放在硬盘的第3扇区及其后续位置,—具体所占扇—区个数由Part2大小决定。第四步,Part2代码中包含了移动式TPM的驱动模块和调用接口,首先实现主机与移动式TPM的双向认证,然后对用户进行双因子认证,在认证通过的基础上实现对NTFS文件系统读的功能,利用移动式TPM的安全功能对所要读取的文件进行完整性校验。第五步,文件的校验成功后,由Part2跳转到原来的MBR代码处执行,依据系统固有的启动流程启动操作系统运行。若文件校验不成功,则终止系统的启动过程。本发明将结合附图作进一步详述图1,图2,图3,图4,图5,图6,图7,图8,图9显示了本发明工作的原理。如图1所示,移动TPM硬件结构逻辑上主要由六部分构成USB连接器、USB收发器、串行接口引擎(SIE:SerialInterfaceEngineer)、微处理器、智能卡以及Flash存储器。其中,USB连接器负责与主机USB接口的连接;USB收发器负责与主机的USB数据传输;串行接口引擎是USB控制芯片的一部分,负责解释USB协议,并将解释过的数据往下传送给USB控制芯片中的微处理器;微处理器也是USB控制芯片中的一部分,在这里主要进行协议转换功能,负责将主机发送给智能卡的命令和数据转换成T=0通信协议的格式,并将智能卡返回给主机的数据和状态从T:O通信协议的格式转换成主机能识别的格式;智能卡负责用户的身份认证,密钥的生成及信息的安全存储,信息的安全加/解密以及数据摘要的运算;Flash存储器用于存放大容量的数据信息。移动TPM与主机间通过USB接口相连,因此称其为移动式的。如图2所示,移动TPM使用前需要进行初始化,使用操作系统层以上的初始化应用程序对其进行初始化,设置认证相关的密钥以及写入引导过程中需要验证模块的完整性校验信息。如图3所示,引导前各个代码以扇区的形式或文件的形式存放在硬盘上。BIOS启动完后,最先一个被调度运行的代码是存放在硬盘引导扇区的MBR代码。由MBR代码分析硬盘上各分区信息,找出激活分区的引导代码,即操作系统引导器,调度运行,并由操作系统引导器调度操作系统内核运行,从而进入Windows操作系统。如图4所示,由于启动的是Windows操作系统,操作系统引导器一般为NTLoader,NTLoader的源码不公开。而MBR代码的长度仅为512字节(446字节代码+16字节硬盘分区表),其中不可能再增加验证文件系统的代码。为此,为了验证引导阶段重要文件的完整性,本发明进行了HookMBR的操作,即BIOS运行完毕后,直接进入验证MBR的代码,并验证文件的完整性。如果验证通过,则启动原来的MBR,按照系统原有的启动流程启动Windows系统,否则,终止系统的启动过程。如图5所示,系统原有的启动流程中,BIOS最后执行的代码是Int19h中断代码,由Int19h中断代码调度MBR运行,并由M冊-根据硬盘分区信息,调度B-K)S磁盘相关代码,-将存放-在硬盘上的操作系统引导器以及操作系统调度运行。如图6所示,我们修改了系统引导流程,在MBR之前增加了两部分代码(Partl和Part2),其中,Partl代码是BIOS运行完毕后首先调度运行的代码,负责拷贝原来MBR的硬盘分区表以及将Part2代码调度运行的任务。它的功能有点类似原来MBR的功能,我们也可称之为伪^ffiR。Part2代码主要任务有两个,一是负责验证MBR的完整性,二是读取硬盘(NTFS格式的)上的文件,并计算文件的完整性值,我们也可称其为伪文件系统。BIOSInt19h中断首先调度Partl运行,Partl验证MBR的完整性,若验证通过,则将Part2调度运行,否则中止系统引导过程。Part2实现了硬盘上文件信息的读取,对存放在硬盘上的重要文件进行完整性校验,若通过,则将系统控制权转给原来的MBR,按照图3所示流程启动系统,否则终止系统启动过程。如图7所示,引导阶段读取NTFS文件的流程。为了读取某个文件,需要首先查找到这个文件。可以有两种查找方法,一种是遍历所有的MFT,根据文件名属性找到文件并读取其SData属性。但是,这种査找方法费时(基于线性表的查找),效率不高。另一种效率比较高的查找方法是根据索引树进行。基于索引树的方式进行文件读取流程如下(1)首先通过BIOS的磁盘调用接口读取MBR,得到硬盘分区表,并根据分区表得到NTFS分区的位置(所在的扇区)。(2)读取NTFS分区的息动扇JE,—得至U—BP—B(Bios—ParameterBlock),并根据BPB得到NTFS相关参数,比如NtfsClusterSize等。(3)通过(2),得到SMFT文件,即第0个MFTRecord。(4)分析SMFT元文件,得到系统相关的一些参数。(5)读取SDot元文件,即第5个MFTRecord。(6)在$Dot元文件中根据其$INDEX_R00T属性和$INDEX_ALL0CATI0N属性査找所要找的文件的文件引用号。(7)根据文件引用号,读取文件MFTRecord。(8)在该文件MFTRecord中读取SDATA属性,该属性值即为文件的内容。如图8所示,基于移动TPM的可信链传递过程。利用移动TPM提供的安全存储功能,分别对主引导记录、操作系统引导器、操作系统内核、操作系统应用进行完整性校验,将可信链传递给应用程序。如图9所示,在操作系统被加载运行前,只有BIOS在运行。因此,为了在引导阶段访问USB设备,必须直接使用BIOS提供的HCI接口(主机控制器接口HostControllerInterface)同USB设备通信。目前计算机系统中存在两种USB主机控制器接口,一个是Intel的UniversalHCI规范(UHCI),另一个是开放的HCI规范(0HC工)。由于大多数计算机主板使用Intel芯片,因此本发明依据UHCI1.1规范开发了实模式的移动TPM驱动。UHCi中USB数据韵传输调度通过帧列表(FrameLi-st)完成。帧列表由1024个项组成,共占用4K字节内存空间。在空间分配上,要求以4K字节边界对齐。每一项都指向该帧中第一个需要处理的传输调度TD(TransferDescriptor)。USB主机控制器使用帧列表基地址寄存器(FrameListBaseAddressRegister)禾口帧号寄存器(FrameNumberregister)对帧列表进行访问。帧列表基地址寄存器中存放帧列表在内存中的首地址。帧号寄存器提供访问帧列表各项的一个索引。主机控制器lms内只执行帧列表中的一项。实模式的移动TPM驱动相当于移动TPM主机端的主机控制器驱动。首先主机控制器驱动产生对USB设备请求特征描述的传输描述TDs。然后产生支持控制和中断传输要求的队列头QH(QueueHeader)。然后将TDs链接到队列头QH上,QH以移动TPM中断传输的间隔链接到帧列表中,构成传输调度序列。当所有这些准备好后,最后设置好帧列表基址寄存器和帧号寄存器,使之指向当前需要调度运行的帧项,并设置命令寄存器中的运行位,这样主机控制器就能以lms/帧的间隔调度数据进行传输。主机控制器从调度序列中取出传输描述TD,产生对移动TPM的适当传输。当传输完成后,传输的执行状态存放在TDs的相关字段中,返回给主机。主机控制器Is内完成整个帧列表的一次调度传输。如果帧列表中还有未调度的传输,则主机控制器会在下一个Is周期内,调度数据进行传输,直到所有的传输执行完毕。权利要求1.基于移动TPM的引导文件可信校验,其特征在于包括以下步骤第一步,通过操作系统下的安装模块对移动式TPM进行初始化,设置相关的认证信息以及引导过程中需要验证模块的完整性校验信息;第二步,设计并实现引导阶段操作系统启动前对移动TPM的驱动模块,由于此时系统尚处于实模式的环境,类似于DOS的运行环境,因此,可以按照DOS操作系统的运行环境对该驱动模块进行测试;第三步,将Part1代码放在硬盘的0扇区位置,将系统原有的MBR移动到硬盘的第二扇区,将Part2代码放在硬盘的第3~扇区及其后续位置,具体所占扇区个数由Part2大小决定;第四步,Part2代码中包含了移动TPM的驱动模块和调用接口,对NTFS文件系统读的功能,利用移动TPM的安全功能对所要读取的文件进行可信校验;第五步,文件的检验成功后,由Part2跳转到原来的MBR代码处执行,依据系统固有的启动流程启动操作系统运行。2.根据权利要求1所述的基于移动TPM的引导文件可信校验,其特征在于其引导阶段移动TPM的驱动模块实现的方法,操作系统启动前系统没有相关的驱动接口可供使用,系统尚处于实模式阶段,采取通过USB主机控制器直接控制USB设备的方式对设备进行驱动。3.根据权利要求2所述的基于移动TPM的引导文件可信校验,其特征在于引导阶段对硬盘上NTFS文件的读取方法,操作系统启动前系统没有相关的文件系统访问接口可供使用,系统尚处于实模式阶段,采取直接通过BIOS提供的磁盘访问接口,通过获取硬盘相关参数读取NTFS文件系统的相关SMFT元文件的方式,从NTFS文件系统索引树中査找所要读取的文件索引信息,并根据文件相关的索引项读取文件内容的方法。4.根据权利要求2或3所述的基于移动TPM的引导文件可信校验,其特征在于引导阶段对文件的可信验证方法利用移动TPM提供的安全存储、密钥的生成及信息的安全加/解密和认证功能对启动阶段的用户进行双因子身份认证,文件进行检验。全文摘要本发明涉及基于移动TPM的引导文件可信校验,其步骤是对移动式TPM进行初始化,设置相关的认证信息以及引导过程中的校验信息,设计并实现引导阶段操作系统启动前对移动TPM的驱动模块。按照DOS操作系统的运行环境对该驱动模块进行测试,将Part1代码放在硬盘的0扇区位置,将系统原有的MBR移动到硬盘的第二扇区,将Part2代码放在硬盘的第3~扇区及其后续位置,Part2代码中包含了移动TPM的驱动模块和调用接口,对NTFS文件系统读的功能,对所要读取的文件进行可信校验,文件的验证成功后,由Part2跳转到原来的MBR代码处执行,依系统固有的流程启动运行。确保Windows系统干净、可信。文档编号G06F21/00GK101419654SQ200810238938公开日2009年4月29日申请日期2008年12月5日优先权日2008年12月5日发明者刘吉强,彭双和,臻韩申请人:北京交通大学