防止计算机的动作不良的方法、计算机程序以及计算机技术

技术编号:11907676 阅读:79 留言:0更新日期:2015-08-19 22:38
本发明专利技术涉及防止计算机的动作不良的方法、计算机程序以及计算机,用于防止因系统固件所管理的数据引起的系统的动作不良。在固件ROM(100)中设置有代码区域(101)、默认区域(103)、和变量区域(105)、(107)。对变量区域(105)写入UEFI创建的预引导所不可缺少的数据(CV)。对变量区域(105)写入UEFI定义的全局变量(GV)、和OS创建的数据(UV)。变量区域(105)是固件ROM中可写锁的记录区域。UEFI在结束预引导后对变量区域(105)进行写锁。因此,能够防止OS对CV的改写。

【技术实现步骤摘要】

本专利技术涉及防止计算机的动作不良的技术,还涉及对适合于UEFI(UnifiedExtensible Firmware Interface:统一的可扩展固件接口)标准的计算机的引导(boot)的可靠性加以提高的技术。
技术介绍
计算机的固件是提供硬件与操作系统(OS)、设备驱动程序或者应用程序等上位程序之间的接口的代码。固件能够分为专用控制外围设备的设备固件和系统整体的动作所涉及的系统固件(也称为平台固件。)。系统固件通常被储存在安装于主板的非易失性存储器(NVRAM)中。B1S是以往被安装到大多计算机系统的系统固件,在从计算机的电源起动开始至OS开始装载为止的期间进行POST (Power On Self Test:加电自检)以及密码处理,或提供用于访问硬件的服务。然而,由于B1S难以应对近年来发展的硬件,所以如非专利文献I所示,UEFI论坛制定了 UEFI标准,作为代替以往的B1S即遗留B1S (Legacy B1S)的新的系统固件。UEFI固件采用了模拟遗留B1S来确保兼容性的结构,硬件和软件过去花费数年逐步发展起来,以便能够从遗留B1S应对UEFI固件。2011年4月制定了非专利文献I所示的最新版本的UEFI标准,硬件也大致能够应对,当前的系统进入到完全移至UEFI固件的阶段。在安装UEFI固件的系统中,以UEFI本机模式进行动作的UEFI应对的OS、和以遗留B1S兼容模式进行动作的UEFI非应对的OS均能够进行动作。Windows (注册商标)7与UEFI本机模式对应,但无法利用UEFI固件的高速引导、安全引导等功能。在Windows (注册商标)8中,完全移至UEFI固件而能够完全利用其功能。在非专利文献I的UEFI机制中,7.2规定了变量服务(Variable Services)。在变量服务中,在非易失性的存储器中储存以UEFI机制定义的变量即全局变量(GV:GlobalVariables)。在当前绝大多数的个人计算机(PC)中,储存UEFI的非易失性存储器中记录有GV。在UEFI机制下,厂商(vendor)可以使用由UEFI机制定义的GV用的唯一识别符(VendorGuid以及VariableName),对该非易失性存储器写入独自的GV。另外,OS允许改写由UEFI机制定义的GV。专利文献I记载了一种保护UEFI固件使用的变量而存储于非易失性存储器的专利技术。专利文献1:日本特开2010 - 73193号公报非专利文献 I:Unified Extensible Firmware Interface Specificat1nVers1n 2.3.1April 6,2011遗留B1S、UEFI固件等系统固件为了在引导时进行设备的识别、初始化等处理,需要在电源刚刚起动之后参照已写入到可访问的非易失性存储器中的数据。以后在本说明书中将这样的引导所不可缺少的数据(变量)称为配置变量(CV !Configurat1nVariables)。CV在预引导阶段调出UEFI对设备设定的设备的属性信息以及对设备设定的参数、设置画面,包括用户设定的设备的种类、设备的动作模式、以及设备的有效/无效等设定信息、储存有引导图像的分区的路径、所装载的OS的种类等信息。CV大多以往被记录在利用纽扣电池支持电源的CMOS中,但近年来也会写入到储存UEFI的安全的非易失性存储器。另外,OS、UEFI应用程序、以及OS应用程序在其执行时,能够不受UEFI固件的机制上的制约而自由地将用于自定义自身的环境变量、调试日志或者出错日志那样的转储文件写入至非易失性存储器。在本说明书中,将这样的OS、UEFI应用程序、以及OS应用程序创建的数据称为用户变量(UV..User Variables)。图9是说明系统固件管理的数据的记录方法的变迀的图。图9(A)示出了在系统固件为遗留B1S时,将B1S代码储存于固件R0M501,将CV、GV记录于有通过纽扣电池实现的电力支持的CM0S503,或者安全的非易失性存储器的情况。由于遗留B1S中没有与UEFI的变量服务对应的服务,所以UV记录于HDD或者SSD那样的外部存储装置505。图9 (B)示出了在系统固件为UEFI固件时,以遗留B1S兼容模式动作的UEFI非应对的遗留OS进行动作时的情况。固件R0M501包括储存UEFI代码的代码区域501a和记录变量的变量区域501b,在代码区域501a中储存UEFI代码。由于以遗留B1S兼容模式动作的UEFI非应对的遗留OS不能够利用UEFI标准提供的变量服务,所以在变量区域501b中利用UEFI固件只记录CV、GV,将写入了遗留OS或者OS应用程序的UV记录于HDD或者SSD等外部存储装置505。另外,在以遗留B1S兼容模式进行动作时,由于CPU的动作模式切换而UEFI应用程序无法进行动作,所以UEFI应用程序也不会对变量区域501b写入UV0图9(C)示出了在系统固件为UEFI固件时,以UEFI本机模式动作的UEFI应对的OS进行动作时的情况。由于以UEFI本机模式动作的OS能够利用UEFI标准提供的变量服务,所以在变量区域501c中记录有CV、GV、UEFI应用程序、写入了 OS、OS应用程序的大量UV0不管是哪个程序,为了利用变量服务对变量区域501c写入数据,都需要调出作为UEFI的函数的SetVariable O来设定参数。以遗留B1S兼容模式动作的遗留OS不能够利用变量服务,但由于在UEFI标准中对于变量区域501c的利用没有设置限制,所以以UEFI本机模式动作的OS以及OS应用程序能够利用变量服务来对变量区域501c自由地写入大量的UV。伴随着系统固件的动作环境从遗留B1S完全移至UEFI而变量区域501c被释放给OS以及OS应用程序,最近与引导相关的几个问题变得清楚。首先,若写入UV的OS、OS应用程序搞错为SetVariableO而设定了 CV、GV的变量的名称(VariableName)、识别符(VendorGuid),则有时CV、GV被改写。另外,存在被恶意软件有意改写或删除CV、GV的危险性。CV是预引导中为了构成硬件而不可缺少的数据,并且由于GV也包括与预引导相关的数据,所以若被误改写则无法引导系统,用户的恢复作业变得困难。这里,预引导是指系统为ACPI规定的断电状态(S5状态)或者休眠状态(S4)时,在从电源起动开始到OS开始装载为止的期间,处理器执行系统固件的动作环境下的系统固件的处理。另外,在本说明书中,引导是指从电源起动开始到经过预引导而变为OS以及OS应用程序的装载完成的状态为止的处理。在UEFI标准中,提供将对SetVariable O设定的参数散列来进行写入保护的认证服务(Variable Authenticat1n) ο如果利用认证服务,则能够防止OS或者OS应用程序对CV的重写。然而,若在OS或者UEFI应用程序访问代码区域501c时因电源的瞬间切断等而产生电噪声,则CV、GV有可能毁损。另外,在UEFI标准中,由于允许OS、OS应用程序改写GV,所以在认证服务中不能够保护 GV。GV 包括与 Boot####、BootOrder、Drive####、DriveOrder、Key#### 本文档来自技高网...

【技术保护点】
一种系统固件,其特征在于,包括:对在非易失性存储器中设定的第1变量区域和第2变量区域进行识别的模块;对所述第1变量区域写入预引导所不可缺少的结构数据的模块;对所述第2变量区域写入系统固件定义且操作系统能够改写的公开数据的模块;根据来自所述操作系统的请求来对所述第2变量区域写入用户数据的模块;以及限制结束了所述预引导之后的针对所述第1变量区域的写入的模块。

【技术特征摘要】
...

【专利技术属性】
技术研发人员:森重勇作佐佐木健安藤教博
申请(专利权)人:联想新加坡私人有限公司
类型:发明
国别省市:新加坡;SG

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

1