CN101419654B - 基于移动tpm的引导文件可信校验 - Google Patents
基于移动tpm的引导文件可信校验 Download PDFInfo
- Publication number
- CN101419654B CN101419654B CN2008102389381A CN200810238938A CN101419654B CN 101419654 B CN101419654 B CN 101419654B CN 2008102389381 A CN2008102389381 A CN 2008102389381A CN 200810238938 A CN200810238938 A CN 200810238938A CN 101419654 B CN101419654 B CN 101419654B
- Authority
- CN
- China
- Prior art keywords
- file
- tpm
- code
- credible
- hard disk
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Stored Programmes (AREA)
Abstract
本发明涉及基于移动TPM的引导文件可信校验,其步骤是对移动式TPM进行初始化,设置相关的认证信息以及引导过程中的校验信息,设计并实现引导阶段操作系统启动前对移动TPM的驱动模块。按照DOS操作系统的运行环境对该驱动模块进行测试,将Part1代码放在硬盘的0扇区位置,将系统原有的MBR移动到硬盘的第二扇区,将Part2代码放在硬盘的第3~扇区及其后续位置,Part2代码中包含了移动TPM的驱动模块和调用接口,对NTFS文件系统读的功能,对所要读取的文件进行可信校验,文件的验证成功后,由Part2跳转到原来的MBR代码处执行,依系统固有的流程启动运行。确保Windows系统干净、可信。
Description
技术领域
本发明涉及计算机技术领域,特别是指基于移动TPM的引导文件可信校验。本发明根据可信计算思想,利用移动TPM(TrustedPlatform Module)的安全功能,在Windows系统启动前对关键的配置文件以及操作系统内核文件进行校验,确保启动的Windows操作系统是一个干净、可信的操作系统。
背景技术
可信是安全的基础。近年来被高度关注的可信计算平台技术从可信的角度来帮助提高系统的安全性。可信计算的核心思想是“可信传递”。TCG(Trusted Computing Group)提出了两种实现可信传递的关键技术,一是在计算平台上引入“可信根”,二是利用可信根来建立可信链。对于PC平台而言,TCG定义了从计算平台加电BIOS(Basic Input&Output System)执行开始,到引导代码的执行,再到操作系统启动和上层应用程序的执行的一系列过程,信任将通过这个过程一直传递下去,直到整个计算环境的建立。由此可见,操作系统引导阶段的可信验证是建立可信链的关键一环。
根据TCG相关规范,建立平台信任链的关键硬件是TPM。根据TPM与计算机的连接方式可将TPM分为集成式TPM(IntegratedTPM)与便携式TPM(Portable TPM)。目前国内外对可信计算技术的研究基本上都是基于集成式的TPM。基于集成式TPM的可信计算平台要求整个计算机系统必须按照新的标准重新设计系统的硬件,势必对现有的通用平台带来冲击,无法保护用户已有的投资。集成式TPM在用户中的推广和应用很难得到认可。
另一方面,NTFS(New Technology File System)是微软公司开发的具有较好容错性和安全性的文件系统,目前Windows系列操作系统,比如Winodws 2K/XP都使用该文件系统。由于Windows操作系统引导程序NTLoader源代码不公开,微软也没有公开其NTFS的结构,因此,要想在Windows引导阶段不借助于Windows 2K/XP,而直接操作NTFS文件系统,对关键的配置文件以及内核文件进行校验技术上实现往往难以进行。
发明内容
本发明的目的在于避免上述现有技术中的不足之处而提供一种基于移动TPM的引导文件可信校验,针对使用集成式TPM存在的通用性问题,使用USB接口的具有TPM功能的移动式TPM作为系统的一个可信硬件;针对操作系统引导前文件的校验问题,根据目前大多数Windows系统使用NTFS文件系统的情况,设计并实现了操作系统引导前读取NTFS文件的模块,实现对引导阶段文件的可信校验。本发明是对基于集成式TPM的可信计算技术的有益补充和扩展。由于USB接口是现有PC平台上的一个通用接口,因此,具有很好的通用性和实用性。
本发明的目的可以通过以下措施来达到:
基于移动TPM的引导文件可信校验,包括以下步骤:
第一步,通过操作系统下的安装模块对移动式TPM进行初始化,设置相关的认证信息以及引导过程中需要验证模块的完整性校验信息;
第二步,设计并实现引导阶段操作系统启动前对移动TPM的驱动模块,由于此时系统尚处于实模式的环境,类似于DOS的运行环境,因此,可以按照DOS操作系统的运行环境对该驱动模块进行测试;
第三步,将Part1代码放在硬盘的0扇区位置,将系统原有的MBR移动到硬盘的第二扇区,将Part2代码放在硬盘的第3~扇区及其后续位置,具体所占扇区个数由Part2大小决定;
第四步,Part2代码中包含了移动TPM的驱动模块和调用接口,对NTFS文件系统读的功能,利用移动TPM的安全功能对所要读取的文件进行可信校验;
第五步,文件的检验成功后,由Part2跳转到原来的MBR代码处执行,依据系统固有的启动流程启动操作系统运行。
其引导阶段移动TPM的驱动模块实现的方法,操作系统启动前系统没有相关的驱动接口可供使用,系统尚处于实模式阶段,采取通过USB主机控制器直接控制USB设备的方式对设备进行驱动。
引导阶段对硬盘上NTFS文件的读取方法,操作系统启动前系统没有相关的文件系统访问接口可供使用,系统尚处于实模式阶段,采取直接通过BIOS提供的磁盘访问接口,通过获取硬盘相关参数读取NTFS文件系统的相关$MFT元文件的方式,从NTFS文件系统索引树中查找所要读取的文件索引信息,并根据文件相关的索引项读取文件内容的方法。
引导阶段对文件的可信验证方法利用移动TPM提供的安全存储、密钥的生成及信息的安全加/解密和认证功能对启动阶段的用户进行双因子身份认证,文件进行检验。
本发明相比现有技术具有如下优点:
1.保留目前计算机平台的投资,不需要更换系统主板,具有很好的通用性和实用性;
2.通过移动式TPM提供的认证和安全功能,能增强对用户的认证强度,提高平台的安全性;
3.在引导阶段对启动过程中的关键文件进行完整性校验,若通过则启动系统,否则终止系统的启动过程,增强了系统的可信性。
附图说明
图1.是本发明的移动TPM的硬件逻辑框图;
图2.是本发明的对移动TPM的初始化框图;
图3.是当前IA32系统上各引导代码之间的关系;
图4.是本发明的Hook主引导记录实现的流程图;
图5.是当前IA32系统引导代码的启动图;
图6.是本发明的引导代码启动的工作示意图;
图7.是本发明的引导阶段读取NTFS文件内容的工作流程图;
图8.是本发明的基于移动TPM安全功能的可信链建立工作示意图;
图9.是本发明的引导阶段对移动TPM的驱动控制。
具体实施方式
本发明基于移动TPM的引导文件可信校验实施步骤通过以下部署可以达到:
第一步,通过操作系统下的安装模块对移动式TPM进行初始化,设置相关的认证信息以及引导过程中需要验证模块的完整性校验信息。
第二步,设计并实现引导阶段操作系统启动前对移动式TPM的驱动模块。由于此时系统尚处于实模式的环境,类似于DOS的运行环境。因此,可以按照DOS操作系统的运行环境对该驱动模块进行测试。
第三步,将Part1代码放在硬盘的0扇区位置,将系统原有的MBR(主引导记录:Main Boot Record)移动到硬盘的第二扇区,将Part2代码放在硬盘的第3~扇区及其后续位置,具体所占扇区个数由Part2大小决定。
第四步,Part2代码中包含了移动式TPM的驱动模块和调用接口,首先实现主机与移动式TPM的双向认证,然后对用户进行双因子认证,在认证通过的基础上实现对NTFS文件系统读的功能,利用移动式TPM的安全功能对所要读取的文件进行完整性校验。
第五步,文件的校验成功后,由Part2跳转到原来的MBR代码处执行,依据系统固有的启动流程启动操作系统运行。若文件校验不成功,则终止系统的启动过程。
本发明将结合附图作进一步详述:
图1,图2,图3,图4,图5,图6,图7,图8,图9显示了本发明工作的原理。
如图1所示,移动TPM硬件结构逻辑上主要由六部分构成:USB连接器、USB收发器、串行接口引擎(SIE:Serial InterfaceEngineer)、微处理器、智能卡以及Flash存储器。其中,USB连接器负责与主机USB接口的连接;USB收发器负责与主机的USB数据传输;串行接口引擎是USB控制芯片的一部分,负责解释USB协议,并将解释过的数据往下传送给USB控制芯片中的微处理器;微处理器也是USB控制芯片中的一部分,在这里主要进行协议转换功能,负责将主机发送给智能卡的命令和数据转换成T=0通信协议的格式,并将智能卡返回给主机的数据和状态从T=0通信协议的格式转换成主机能识别的格式;智能卡负责用户的身份认证,密钥的生成及信息的安全存储,信息的安全加/解密以及数据摘要的运算;Flash存储器用于存放大容量的数据信息。移动TPM与主机间通过USB接口相连,因此称其为移动式的。
如图2所示,移动TPM使用前需要进行初始化,使用操作系统层以上的初始化应用程序对其进行初始化,设置认证相关的密钥以及写入引导过程中需要验证模块的完整性校验信息。
如图3所示,引导前各个代码以扇区的形式或文件的形式存放在硬盘上。BIOS启动完后,最先一个被调度运行的代码是存放在硬盘引导扇区的MBR代码。由MBR代码分析硬盘上各分区信息,找出激活分区的引导代码,即操作系统引导器,调度运行,并由操作系统引导器调度操作系统内核运行,从而进入Windows操作系统。
如图4所示,由于启动的是Windows操作系统,操作系统引导器一般为NTLoader,NTLoader的源码不公开。而MBR代码的长度仅为512字节(446字节代码+16字节硬盘分区表),其中不可能再增加验证文件系统的代码。为此,为了验证引导阶段重要文件的完整性,本发明进行了Hook MBR的操作,即BIOS运行完毕后,直接进入验证MBR的代码,并验证文件的完整性。如果验证通过,则启动原来的MBR,按照系统原有的启动流程启动Windows系统,否则,终止系统的启动过程。
如图5所示,系统原有的启动流程中,BIOS最后执行的代码是Int 19h中断代码,由Int 19h中断代码调度MBR运行,并由MBR根据硬盘分区信息,调度BIOS磁盘相关代码,将存放在硬盘上的操作系统引导器以及操作系统调度运行。
如图6所示,我们修改了系统引导流程,在MBR之前增加了两部分代码(Part1和Part2),其中,Part1代码是BIOS运行完毕后首先调度运行的代码,负责拷贝原来MBR的硬盘分区表以及将Part2代码调度运行的任务。它的功能有点类似原来MBR的功能,我们也可称之为伪MBR。Part2代码主要任务有两个,一是负责验证MBR的完整性,二是读取硬盘(NTFS格式的)上的文件,并计算文件的完整性值,我们也可称其为伪文件系统。BIOSInt19h中断首先调度Part1运行,Part1验证MBR的完整性,若验证通过,则将Part2调度运行,否则中止系统引导过程。Part2实现了硬盘上文件信息的读取,对存放在硬盘上的重要文件进行完整性校验,若通过,则将系统控制权转给原来的MBR,按照图3所示流程启动系统,否则终止系统启动过程。
如图7所示,引导阶段读取NTFS文件的流程。为了读取某个文件,需要首先查找到这个文件。可以有两种查找方法,一种是遍历所有的MFT,根据文件名属性找到文件并读取其$Data属性。但是,这种查找方法费时(基于线性表的查找),效率不高。另一种效率比较高的查找方法是根据索引树进行。基于索引树的方式进行文件读取流程如下:
(1)首先通过BIOS的磁盘调用接口读取MBR,得到硬盘分区表,并根据分区表得到NTFS分区的位置(所在的扇区)。
(2)读取NTFS分区的启动扇区,得到BPB(Bios ParameterBlock),并根据BPB得到NTFS相关参数,比如NtfsClusterSize等。
(3)通过(2),得到$MFT文件,即第0个MFT Record。
(4)分析$MFT元文件,得到系统相关的一些参数。
(5)读取$Dot元文件,即第5个MFT Record。
(6)在$Dot元文件中根据其$INDEX_ROOT属性和$INDEX_ALLOCATION属性查找所要找的文件的文件引用号。
(7)根据文件引用号,读取文件MFTRecord。
(8)在该文件MFTRecord中读取$DATA属性,该属性值即为文件的内容。
如图8所示,基于移动TPM的可信链传递过程。利用移动TPM提供的安全存储功能,分别对主引导记录、操作系统引导器、操作系统内核、操作系统应用进行完整性校验,将可信链传递给应用程序。
如图9所示,在操作系统被加载运行前,只有BIOS在运行。因此,为了在引导阶段访问USB设备,必须直接使用BIOS提供的HCI接口(主机控制器接口:Host Controller Interface)同USB设备通信。目前计算机系统中存在两种USB主机控制器接口,一个是Intel的Universal HCI规范(UHCI),另一个是开放的HCI规范(OHCI)。由于大多数计算机主板使用Intel芯片,因此本发明依据UHCI1.1规范开发了实模式的移动TPM驱动。
UHCI中USB数据的传输调度通过帧列表(FrameList)完成。帧列表由1024个项组成,共占用4K字节内存空间。在空间分配上,要求以4K字节边界对齐。每一项都指向该帧中第一个需要处理的传输调度TD(Transfer Descriptor)。USB主机控制器使用帧列表基地址寄存器(FrameList Base Address Register)和帧号寄存器(Frame Number register)对帧列表进行访问。帧列表基地址寄存器中存放帧列表在内存中的首地址。帧号寄存器提供访问帧列表各项的一个索引。主机控制器1ms内只执行帧列表中的一项。
实模式的移动TPM驱动相当于移动TPM主机端的主机控制器驱动。首先主机控制器驱动产生对USB设备请求特征描述的传输描述TDs。然后产生支持控制和中断传输要求的队列头QH(QueueHeader)。然后将TDs链接到队列头QH上,QH以移动TPM中断传输的间隔链接到帧列表中,构成传输调度序列。当所有这些准备好后,最后设置好帧列表基址寄存器和帧号寄存器,使之指向当前需要调度运行的帧项,并设置命令寄存器中的运行位,这样主机控制器就能以1ms/帧的间隔调度数据进行传输。主机控制器从调度序列中取出传输描述TD,产生对移动TPM的适当传输。当传输完成后,传输的执行状态存放在TDs的相关字段中,返回给主机。主机控制器1s内完成整个帧列表的一次调度传输。如果帧列表中还有未调度的传输,则主机控制器会在下一个1s周期内,调度数据进行传输,直到所有的传输执行完毕。
Claims (4)
1.基于移动TPM实现对引导文件可信校验的方法,其特征在于:包括以下步骤:
第一步,通过操作系统下的安装模块对移动式可信平台模块TPM进行初始化,设置相关的认证信息以及引导过程中需要验证模块的完整性校验信息;
第二步,设计并实现引导阶段操作系统启动前对移动TPM的驱动模块,由于此时系统尚处于实模式的环境,因此,在实模式DOS环境下对该驱动模块进行测试;
第三步,将验证系统原有主引导记录MBR可信性的Part1代码放在硬盘的0扇区位置,将系统原有的主引导记录MBR移动到硬盘的第二扇区,将读取并验证主引导记录、操作系统装载器以及操作系统关键文件可信性的Part2代码放在硬盘的第3扇区及其后续位置,具体所占扇区个数由Part2代码大小决定;
第四步,Part2代码中包含了移动TPM的驱动模块和调用接口,调用接口实现了对NTFS文件系统读的功能,并利用移动TPM的可信度量和可信报告功能对所要读取的文件进行可信校验;
第五步,文件的检验成功后,由Part2跳转到原来的MBR代码处执行,依据系统固有的启动流程启动操作系统运行。
2.根据权利要求1所述的基于移动TPM实现对引导文件可信校验的方法,其特征在于:引导阶段系统对移动TPM模块的驱动方法,由于操作系统启动前系统没有相关的驱动接口可供使用,系统尚处于实模式阶段,因此采取通过USB主机控制器直接控制USB设备的方式对设备进行驱动。
3.根据权利要求2所述的基于移动TPM实现对引导文件可信校验的方法,其特征在于:引导阶段系统对硬盘上NTFS文件的读取方法,由于操作系统启动前系统没有相关的文件系统访问接口可供使用,系统尚处于实模式阶段,因此采取直接通过BIOS提供的磁盘访问接口,通过获取硬盘相关参数读取NTFS文件系统的相关主文件表$MFT元文件的方式,从NTFS文件系统索引树中查找所要读取的文件索引信息,并根据文件相关的索引项读取文件内容的方法。
4.根据权利要求2或3所述的基于移动TPM实现对引导文件可信校验的方法,其特征在于:引导阶段对文件的可信验证方法利用移动TPM提供的安全存储、密钥的生成及信息的安全加/解密和认证功能对启动阶段的用户进行双因子身份认证,文件进行检验。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008102389381A CN101419654B (zh) | 2008-12-05 | 2008-12-05 | 基于移动tpm的引导文件可信校验 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008102389381A CN101419654B (zh) | 2008-12-05 | 2008-12-05 | 基于移动tpm的引导文件可信校验 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101419654A CN101419654A (zh) | 2009-04-29 |
CN101419654B true CN101419654B (zh) | 2010-10-27 |
Family
ID=40630444
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2008102389381A Expired - Fee Related CN101419654B (zh) | 2008-12-05 | 2008-12-05 | 基于移动tpm的引导文件可信校验 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101419654B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102456111B (zh) * | 2011-07-12 | 2014-04-09 | 中标软件有限公司 | 一种Linux操作系统许可控制的方法及系统 |
CN102722669B (zh) * | 2012-05-28 | 2015-05-20 | 清华大学 | 操作系统的完整性验证方法 |
CN104572093A (zh) * | 2014-12-30 | 2015-04-29 | 北京工业大学 | 使用usb控制器实现终端设备双操作系统启动的方法 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101299189A (zh) * | 2007-04-30 | 2008-11-05 | 旭达电脑(昆山)有限公司 | 自启动多操作系统之一的dos的方法 |
-
2008
- 2008-12-05 CN CN2008102389381A patent/CN101419654B/zh not_active Expired - Fee Related
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101299189A (zh) * | 2007-04-30 | 2008-11-05 | 旭达电脑(昆山)有限公司 | 自启动多操作系统之一的dos的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN101419654A (zh) | 2009-04-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8918579B2 (en) | Storage device and method for selective data compression | |
CN102609040B (zh) | 一种面向加固的国产计算机及其安全bios工作方法 | |
US20240121097A1 (en) | Integrity protected command buffer execution | |
US20130205067A1 (en) | Storage Device Aware of I/O Transactions and Stored Data | |
US11568044B2 (en) | Method and apparatus for vetting universal serial bus device firmware | |
KR20140054003A (ko) | Arm? trustzone™ 구현을 위한 펌웨어 기반 신뢰 플랫폼 모듈 | |
CN104615938A (zh) | 一种基于固态硬盘的开机认证方法 | |
CN102368224A (zh) | 一种硬件检测的处理方法及装置 | |
US9047176B2 (en) | Storage device and method for utilizing unused storage space | |
CN101645127A (zh) | 一种建立基于efi的可信引导系统的方法 | |
CN101419654B (zh) | 基于移动tpm的引导文件可信校验 | |
CN102289513A (zh) | 获取虚拟机内部文件的方法及系统 | |
US20140089551A1 (en) | Communication of device presence between boot routine and operating system | |
EP2339499A1 (en) | Storage device, information processing device, and program | |
US8527781B2 (en) | Secure and scalable solid state disk system | |
CN106778249B (zh) | 一种Java程序可信执行环境的构建方法及构建系统 | |
CN100595739C (zh) | 财务数据访问方法及系统 | |
CN103353929A (zh) | 一种在bios启动过程中添加检验id卡信息的方法 | |
CN201402464Y (zh) | 基于变频技术的指纹UKey | |
CN102148054A (zh) | 闪存储存系统及其控制器与防数据篡改方法 | |
Shaunghe et al. | Enhancing PC security with a U-key | |
CN102591669A (zh) | 模块化计算机固件及其实现方法 | |
CN109902456A (zh) | 一种财务数据访问方法及系统 | |
CN102298544A (zh) | 计算机系统的除错方法 | |
US20170185537A1 (en) | Data storage device and control method thereof |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20101027 Termination date: 20131205 |