好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

全虚拟化环境下启动加载器的可信验证方法和系统的制作方法.docx

9页
  • 卖家[上传人]:ting****789
  • 文档编号:309501446
  • 上传时间:2022-06-13
  • 文档格式:DOCX
  • 文档大小:22.35KB
  • / 9 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 全虚拟化环境下启动加载器的可信验证方法和系统的制作方法专利名称:全虚拟化环境下启动加载器的可信验证方法和系统的制作方法技术领域:本发明涉及可信验证,具体涉及一种在全虚拟化环境下基于BIOS中断调用实现可信验证的方法,属于可信计算领域背景技术:全虚拟化(Full Virtualization),也称为原始虚拟化技术,该技术使用虚拟机协调客户操作系统和原始硬件,一些受保护的指令由虚拟机管理程序(Hypervisor)来捕获和处理全虚拟化的运行速度优于硬件模拟,最大特点是客户操作系统无需经过任何修改,所以原来基于客户操作系统的所有软件都能不加修改在全虚拟化环境下运行基于这种优点,把可信验证技术融入到全虚拟化环境下,是解决全虚拟化环境下软件运行安全性、完整性、可信性的关键手段使用“全虚拟化环境and可信验证”、“BIOS中断调用and可信验证”、“启动加载器验证方法”作为关键词进行专利检索,没有找到使用BIOS中断的方式进 行可信验证方面的专利,更没有找到在全虚拟化环境下使用BIOS中断方式进行启动加载器可信验证的专利在全虚拟化环境下,首先,虚拟机的启动也要通过启动加载器加载客户操作系统,然而启动加载器本身的完整性如何验证亟待解决;其次,启动加载器本身代码非常精巧,例如,一种称为GRUB的启动加载器其Stagel和Start功能代码编译后只有512字节,在这样精巧设计的代码中进行完整性验证更加困难。

      虚拟化技术作为云计算的技术支撑基石,解决好全虚拟化环境下虚拟机启动加载器的可信验证问题,对于当前的可信云安全技术也具有非常重要的意义发明内容本发明公开一种全虚拟化环境下启动加载器的可信验证方法,包括步骤I,部署生成可信基准值链表Encrypted_Link_Trusted ;步骤2,启动非特权域虚拟机时把链表Encrypted_Link_Trusted拷贝到非特权域虚拟机内存的指定位置;步骤3,非特权域虚拟机的Rombios中验证非特权域虚拟机的GRUB的Stagel,其中Stagel为GRUB启动的阶段;步骤4,非特权域虚拟机的GRUB的Stagel验证非特权域虚拟机的GRUB的Start ;步骤5,非特权域虚拟机的GRUB的Start验证非特权域虚拟机的GRUB的Stage 1_5 ;其中Start为GRUB启动的阶段;步骤6,非特权域虚拟机的GRUB的Stage 1_5验证非特权域虚拟机的GRUB的Stage2,其中 Stagel_5、Stage2 为 GRUB 启动的阶段所述的全虚拟化环境下启动加载器的可信验证方法,所述步骤I还包括步骤21,修改Xen的Rombios的功能代码,增加GRUB的Stagel、GRUB的Start、GRUB的Stage 1_5对BIOS的请求验证的中断响应函数;步骤22,修改GRUB的Stagel功能代码,加入用BIOS中断的方式请求验证GRUB的Start的功能代码,并检查修改后的GRUB的Stagel代码是否满足编译后正好是512字节且安装在主引导扇区之后没有破环磁盘分区表的大小和结构,检查的方法是与没有修改过的GRUB的Stagel生成的二进制代码进行比较;步骤23,修改GRUB的Start功能代码,加入用BIOS中断的方式请求验证GRUB的Stage 1_5的功能代码,并检查修改后的Start代码是否满足编译后正好是512字节且安装后位于0面0道的第2扇区,检查的方法是与没有修改过GRUB的Start生成的二进制代码进行比较;步骤24,修改GRUB的Stagel_5功能代码,加入用BIOS中断的方式请求验证GRUB的Stage2的功能代码,由于Stagel_5已经准备好C语言的运行环境,并且开始支持文件系统,所以修改后的GRUB的Stagel_5生成的二进制代码不需要与没有修改过的GRUB的Stage 1_5生成的二进制代码相比较;步骤25,计算出修改后的GRUB的Stage I、Start、Stage 1_5的可信验证基准值,计算出没有修改的GRUB的Stage2的可信验证基准值,并把这四个基准值组成一个链表Link_Trusted,同时,将 Link_Trusted 用 RSA 算法加密生成 Encrypted_Link_Trusted。

      所述的全虚拟化环境下启动加载器的可信验证方法,所述步骤2还包括步骤31,特权域解析hvmloader并将可加载的段拷贝到非特权域虚拟机内存中;步骤32,使用扫描虚拟机内存的方式找到预设空间标识的内存地址Mem_Address,然后将 Encrypted_Link_Trusted 拷贝到 Mem_Address所述的全虚拟化环境下启动加载器的可信验证方法,所述步骤3还包括 步骤41,在非特权域的Rombios跳转到GRUB的Stagel之前,计算GRUB的Stagel 的二进制度量值,同时,解密 Encrypted_Link_Trusted 得到链表 Decrypted_Link_Trusted,然后,查找Decrypted_Link_Trusted第一个链表元素可获得GRUB的Stagel的可信验证基准值;步骤42,验证步骤41得到的可信验证基准值和二进制度量值是否一致,如果一致,把这个二进制度量值扩展(TPM_eXtend)到相应的平台配置寄存器PCR中,并继续正常的非特权Domain启动的下一阶段,否则,阻止继续启动所述的全虚拟化环境下启动加载器的可信验证方法,所述步骤4还包括步骤51,GRUB的Stagel运行到把内存0x7000开始的512字节转移到内存0x8000之后,使用BIOS中断请求的方式验证GRUB的Start,这个Start是从0面0道第2扇区的内容读到内存的0x7000处的。

      然后,在非特权域虚拟机的Rombios中找到这512字节的Start功能代码,计算出其二进制度量值步骤52,查找链表Decrypted_Link_Trusted第二个链表元素即可获得GRUB的Start的可信验证基准值,验证这个基准值和步骤51得到的GRUB的Start的二进制度量值是否一致,如果一致,把这个二进制度量值扩展到相应的PCR中,并继续正常的非特权域虚拟机启动的下一阶段,否则,阻止继续启动所述的全虚拟化环境下启动加载器的可信验证方法,所述步骤5还包括步骤61,GRUB的Start运行到装载Stagel_5去内存0x2200之前,使用BIOS中断请求的方式验证GRUB的Stagel_5,非特权域虚拟机的Rombios中接收到这个验证请求后,结合0x2200的起始地址和从GRUB的Start传递过来的参数stagel5_sectors,计算出GRUB的Stagel_5的功能代码的二进制度量值;步骤62,查找链表Decrypted_Link_Trusted第三个链表元素即可获得GRUB的Stage 1_5的可信验证基准值,验证这个基准值和步骤61得到的GRUB的Stagel_5的二进制度量值是否一致,如果一致,把这个二进制度量值扩展到相应的PCR中,并继续正常的的非特权域虚拟机启动的下一阶段,否则,阻止继续启动。

      所述的全虚拟化环境下启动加载器的可信验证方法,所述步骤6还包括步骤71,GRUB的Stagel_5运行到装载GRUB的Stage2去内存0x8200之前,使用BIOS中断的方式请求获得GRUB的Stage2的可信验证基准值,非特权域虚拟机的Rombios接收到这个请求后,查找链表Decrypted_Link_Trusted第四个链表元素得到GRUB的Stage2的可信验证基准值; 步骤72,GRUB的Stage 1_5根据内存地址0x8200和Stage2实际占用的扇区个数计算出GRUB的Stage2功能代码的二进制度量值,然后,验证这个二进制度量值和步骤71得到的GRUB的Stage2的可信验证基准值是否一致,如果一致,把这个二进制度量值扩展到相应的PCR中,并继续正常的的非特权域虚拟机启动的下一阶段,否则,阻止继续启动本发明公开一种全虚拟化环境下启动加载器的可信验证系统,包括生成可信基准值链表模块,用于部署生成可信基准值链表EnCrypted_Link_Trusted ;启动非特权域虚拟机模块,用于启动非特权域虚拟机时把链表Encrypted_Link_Trusted拷贝到非特权域虚拟机内存的指定位置;Rombios验证非特权虚拟机模块,用于非特权域虚拟机的Rombios中验证非特权域虚拟机的GRUB的Stagel ;Stagel验证非特权域虚拟机模块,用于非特权域虚拟机的GRUB的Stagel验证非特权域虚拟机的GRUB的Start ;Start验证非特权域虚拟机模块,用于非特权域虚拟机的GRUB的Start验证非特权域虚拟机的GRUB的Stage 1_5 ;Stage 1_5验证非特权域虚拟机模块,用于非特权域虚拟机的GRUB的Stagel_5验证非特权域虚拟机的GRUB的Stage2。

      所述的全虚拟化环境下启动加载器的可信验证系统,所述生成可信基准值链表模块还包括增加函数模块,用于修改Xen的Rombios的功能代码,增加GRUB的Stagel、GRUB的Start、GRUB的Stagel_5对BIOS的请求验证的中断响应函数;检查Stagel模块,用于修改GRUB的Stagel功能代码,加入用BIOS中断的方式请求验证GRUB的Start的功能代码,并检查修改后的GRUB的Stagel代码是否满足编译后正好是512字节且安装在主引导扇区之后没有破环磁盘分区表的大小和结构,检查的方法是与没有修改过的GRUB的Stagel生成的二进制代码进行比较;检查Start模块,用于修改GRUB的Start功能代码,加入用BIOS中断的方式请求验证GRUB的Stagel_5的功能代码,并检查修改后的Start代码是否满足编译后正好是512字节且安装后位于0面0道的第2扇区,检查的方法是与没有修改过GRUB的Start生成的二进制代码进行比较;验证Stage2模块,用于修改GRUB的Stagel_5功能代码,加入用BIOS中断的方式请求验证GRUB的Stage2的功能代码,由于Stagel_5已经准备好C语言的运行环境,并且开始支持文件系统,所以修改后的GRUB的Stagel_5生成的二进制代码不需要与没有修改过的GRUB的Stagel_5生成的二进制代码相比较;计算模块,用于计算出修改后的GRUB的Stage I、Start、Stage 1_5的可信验证基准值,计算出没有修改的GRUB的Stage2的可信验证基准值,并把这四个基准值组成一个链表Link_Trusted,同时,将 Link_Trusted 用 RSA 算法加密生成 Encrypted_Link_Trusted。

      所述的全虚拟化环境下启动加载器的可信验证系统,所述启动非特权虚拟机模块还包括特权域解析模块,用于特权域解析hvmloader并将可加载的段拷贝到非特权域虚拟机内存中;找寻内存地址模块,用于使用扫描虚拟机内存的方式找到预设空间标识的内存地址 Mem_Address,然后将 Encrypted_Link_Trusted 拷贝到 Mem_Address所述的全虚拟化环境下启动加载器的可信验证系统,所述Rombios验证非特权虚拟机模块还包括计算Stage模块,用于在非特权域的Rombios跳转到GRUB的Stagel之前,计算GRUB的Stagel的二进制度量值,同时,解密Encrypted_Link_Trusted得到链表Decrypted_Link_Trusted,然后,查找 Decrypted_Link_Trusted 第一个链表兀素可获得GRUB的Stagel的可信验证基准值;扩展模块,用于验证计算Stage模块得到的可信验证基准值和二进制度量值是否一致,如果一致,把这个二进制度量值扩展(TPM_eXtend)到相应的平台配置寄存器PCR中,并继续正常的非特权Domain启动的下一阶段,否则,阻止继续启动。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.