首页> 中国专利> 自我验证选择只读存储器的基本输出入系统及其验证方法

自我验证选择只读存储器的基本输出入系统及其验证方法

摘要

本发明公开了一种自我验证选择只读存储器的基本输出入系统及其验证方法。该基本输出入系统加载到一主存储器以执行开机,其包括一装置固件区块记录一应用装置固件、一验证码区块记录一验证码,及一开机管理区块执行验证的作业。其方法包括:基本输出入系统开始执行开机程序;读取记录在基本输出入系统的验证码;根据一算法,计算映像到主存储器的选择只读存储区块中的应用装置固件,产生一校验值;判断所读取的验证码与计算出的校验值是否相同,若相同则继续执行开机程序。本发明可简易有效地管理基本输出入系统中所整合的各种装置固件版本,避免固件中的参数遭篡改后造成硬件设备损坏的风险,有利于维护整合性基本输出入系统的稳定性。

著录项

  • 公开/公告号CN101807152A

    专利类型发明专利

  • 公开/公告日2010-08-18

    原文格式PDF

  • 申请/专利权人 环旭电子股份有限公司;

    申请/专利号CN200910046163.2

  • 发明设计人 纪文伟;

    申请日2009-02-13

  • 分类号G06F9/445(20060101);G06F11/14(20060101);

  • 代理机构31219 上海光华专利事务所;

  • 代理人余明伟

  • 地址 201203 上海市张江高科技园区集成电路产业区张东路1558号

  • 入库时间 2023-12-18 00:39:50

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2014-09-10

    专利权的转移 IPC(主分类):G06F9/445 变更前: 变更后: 登记生效日:20140821 申请日:20090213

    专利申请权、专利权的转移

  • 2013-10-23

    授权

    授权

  • 2010-10-06

    实质审查的生效 IPC(主分类):G06F9/445 申请日:20090213

    实质审查的生效

  • 2010-08-18

    公开

    公开

说明书

技术领域

本发明涉及一种自我验证选择只读存储器的基本输出入系统及其验证方法,特别是涉及一种检查选择只读存储器的数据完整性的基本输出入系统及其验证方法。

背景技术

一直以来,基本输出入系统负责在计算机系统开机过程中,进行开机自我测试(POST)、初始化基本硬件设备及加载操作系统等准备工作,然而随着基本输出入系统制造商与各项硬件设备芯片制造商的分工越来越精细,主机板上的基本输出入系统制造商经常接收由不同的硬件设备制造商所提供的特定硬件设备的固件,也就是开机时映射(Mapping)在主存储器中的选择只读存储器(Option ROM,OPROM)的数据,一并嵌入在基本输出入系统内,使得基本输出入系统在计算机系统进入操作系统之前,能进行更多的前置侦测、设定工作,对于整个计算机系统的研发提供了实质的帮助。

但由于各制造商的开发进程快慢不一,基本输出入系统制造商经常会接收到太多不同设备、不同版本的硬件设备固件数据,版本管理不易,可能发生记录上为第一版本固件与基本输出入系统整合,但实际上却是第二版本固件与基本输出入系统整合,产生不一致,造成开机时无法顺利加载或读取正确的固件对硬件设备进行设置。

此外,由于制造商经常将所开发的固件更新档案放置在公开的网页上供使用者下载,也经常发生有使用者下载并修改档案内容后,再度放置在公开网页上,让其它使用者下载被篡改过后的错误档案,将错误档案安装到计算机系统后,不但不能提升硬件设备的运作性能,反而造成无法开机、甚至硬件损毁的情形。

为了避免产生上述版本不一致或固件档案被更改,而造成的无法顺利开机、降低系统稳定性的问题,需要设计一种可认证选择只读存储器正确性的手段,确保计算机系统开机时能够与正确的硬件设备固件运作。

发明内容

本发明要解决的技术问题是为了克服现有技术会因版本不一致或固件

档案被更改而造成无法顺利开机、降低系统稳定性的缺陷,提供一种自我验

证选择只读存储器的基本输出入系统及其验证方法,解决选择只读存储器的

数据与基本输出入系统整合时管理不易的问题,使选择只读存储器的数据在

开机时即可经过验证,以确认其完整性。

本发明是通过下述技术方案来解决上述技术问题的:一种自我验证选择只读存储器的基本输出入系统,该基本输出入系统加载到一主存储器以执行开机,其特点在于,该基本输出入系统包括:一装置固件区块,记录一应用装置固件,该应用装置固件于开机时加载到该主存储器中的一选择只读存储区块;一验证码区块,记录一验证码;及一开机管理区块,利用一开机程序以一算法对映射到该选择只读存储区块的该应用装置固件进行计算,以产生一校验值,并读取该验证码与该校验值进行对比,于该校验值与该验证码相同时,继续执行开机程序。

其中,该验证码为以该算法计算一初始装置固件而产生。

其中,该开机管理区块于该校验值与该验证码不相同时,发出一警示通知,用以提示该应用装置固件异于该初始装置固件。

其中,该开机管理区块于该校验值与该验证码不相同时,停止执行开机。

其中,该验证码区块为只读区块。

其中,该算法为计算校验和的算法。

其中,该应用装置固件及该初始装置固件均为影像控制装置固件、网络装置固件或外围控制接口装置固件。

本发明的另一技术方案为:一种基本输出入系统自我验证选择只读存储器的方法,该基本输出入系统加载到一主存储器以执行开机,其特点在于,该方法包括:该基本输出入系统开始执行开机程序;读取记录在该基本输出入系统的一验证码;根据一算法,计算映射到该主存储器中的一选择只读存储区块的一应用装置固件,产生一校验值;及判断该验证码与该校验值是否相同,若相同则继续执行开机程序。

其中,该验证码为以该算法计算一初始装置固件而产生。

其中,该算法为计算校验和算法。

其中,根据该算法计算映射到该主存储器的该应用装置固件的步骤中,包括下列步骤:根据该应用装置固件的数据长度,自该应用装置固件在该选择只读存储区块中的起始地址读取该应用装置固件;及计算所读取的该应用装置固件的校验和,以产生该校验值。

其中,该基本输出入系统开始执行开机程序的步骤中,包括下述步骤:该基本输出入系统开始执行开机自我检测程序。

其中,判断该验证码与该校验值是否相同的步骤中,包括下述步骤:若该验证码与该校验值不相同,则发出一警示通知,用以提示该应用装置固件异于该初始装置固件。

其中,判断该验证码与该校验值不相同的步骤后,还包括下述步骤:停止执行开机程序。

其中,该应用装置固件及该初始装置固件均为影像控制装置固件、网络装置固件或外围控制接口装置固件。

本发明的积极进步效果在于:本发明可提供一种简易而有效的方式,管理基本输出入系统中所整合的各种装置固件版本,并且避免固件中的参数遭篡改后造成硬件设备损坏的风险,有利于维护整合性基本输出入系统的稳定性。

附图说明

图1为本发明的自我验证选择只读存储器的基本输出入系统的实施例的存储结构示意图。

图2为本发明的基本输出入系统自我验证选择只读存储器方法的实施例的简要流程图。

图3为本发明的基本输出入系统自我验证选择只读存储器方法的实施例的详细流程图。

附图标记说明:

10基本输出入系统

102开机管理区块

104验证码区块

106装置固件区块

20主存储器

202选择只读存储区块

S301~S307流程步骤

S401~S415流程步骤

具体实施方式

本发明提供了一种自我验证选择只读存储器的基本输出入系统及其验证方法,在基本输出入系统执行开机作业时验证选择只读存储器的数据完整性,以达到管理固件数据,防止系统无法开机或硬件损毁的效果。为了提供更详尽的说明与解释,以下将配合示意图及流程图进行解说,以便更为明确而清楚地说明本发明所使用的技术及手段。

图1为本发明所提供的一种自我验证选择只读存储器的基本输出入系统的实施例的存储结构示意图,本实施例以计算机系统启动时的验证为例,其中,基本输出入系统10中包括一开机管理区块102、一验证码区块104及一装置固件区块106;主存储器20中包括一选择只读存储区块202。

开机管理区块102用于执行从开机到加载操作系统之间的各项前置作业;验证码区块104中记录一验证码;装置固件区块106中记录一应用装置固件。当计算机系统电源启动后,基本输出入系统10会解压缩到主存储器20上执行开机作业,而其中的应用装置固件则映射到主存储器20中专用于存放各种装置的固件的选择只读存储区块202当中。

为了在应用装置固件开始执行与对应装置的沟通作业之前,先行验证应用装置固件数据的正确性和完整性,以避免在基本输出入系统10的制造商的研发、整合过程中,嵌入错误的应用装置固件版本,或使用者下载被修改后的应用装置固件档案进行更新,而使计算机系统无法顺利运作或使硬件损坏,因此,开机管理区块102会在开机自我测试程序完成前,执行对映射到选择只读存储区块202中的应用装置固件的验证。

开机管理区块102中的开机程序会读取验证码区块104中所记录的一验证码,此验证码可由制造商在制作基本输出入系统10时,即一并嵌入在一个属于只读区块的验证码区块104中,用来验证应用装置固件数据的正确性和完整性。

开机管理区块102的开机程序前往主存储器20的选择只读存储区块202,根据应用装置固件的数据长度,从应用装置固件在选择只读存储区块202中的起始地址开始读取该应用装置固件的数据,并且以一校验和算法(Checksum Algorithm)计算应用装置固件数据,产生一校验值。以影像控制装置的固件(Video BIOS)数据,例如显示卡的固件(VGA Option ROM)为例,由于其发展时间较早,各制造商开发的标准较为统一,因此大部分显示卡固件在选择只读存储区块202的位置都从存储区段C000:0000开始(同时也是主存储器20保留给选择只读存储区块202的起始位置),固件数据长度为65536字节(bytes)。开机管理区块102的开机程序即从C000:0000处开始读取65536字节长度的显示卡固件数据,根据一种校验和演算方法,计算出此固件数据的校验值。

验证码区块104所记录的验证码,为以同一种校验和算法,对制造商想要整合在基本输出入系统10中的初始装置固件进行计算所得,可由初始装置固件的制造商提供给基本输出入系统10的制造商,或由基本输出入系统10的制造商在整合初始装置固件之前运用校验软件进行计算,并且将所得到的验证码,例如:5F64,记录到一个只读的验证码区块104当中,作为对比的基准,并且避免被修改。

将计算所产生的校验值与读取的验证码互相对比,判断校验值是否与验证码相同,若两者相同,即代表加载到选择只读存储区块202的应用装置固件,与原本应与基本输出入系统102整合的初始装置固件版本相同、内容也相同。开机程序确认之后,即可继续进行开机的程序,例如继续完成其它的开机自我测试,而不需再担心接下来的程序中,交由应用装置固件对该装置进行初始化时,会产生版本或内容不符而无法开机的问题。

但若校验值与验证码对比之后,判断两者并不相同,就基本输出入系统10的制造商的在测试线的角度而言,意味着其想要整合的初始装置固件版本与实际上嵌入基本输出入系统10的应用装置固件版本不一致;就使用者的角度而言,意味着其下载安装的更新档案内容可能是经过黑客篡改的版本,造成无法通过验证。此时若继续允许计算机系统开机,极有可能产生错误,例如应用装置固件无法正常与装置联机运作,甚至造成硬件装置的损坏,因此开机管理区块102的开机程序即发出一警示通知,通知制造商或使用者处理装置固件不一致的问题,或是发出警示通知后直接停止开机,将产生错误和损坏的风险降到最低。

上述的初始装置固件,以及映射到选择只读存储区块202中的应用装置固件,除了影像控制装置的固件以外,也可以为网络装置固件(LAN OptionROM)、外围控制接口装置固件(PCI Option ROM)等。想要整合于基本输出入系统10中的装置固件也可以同时包括两种以上,此时,则在验证码区块104中分别记录不同初始装置固件的验证码,装置固件区块106中分别记录不同的应用装置固件,待加载选择只读存储区块202后,开机管理区块102的开机程序再分别根据计算出验证码的相同算法计算出校验值,分别进行对比和判断,以确保各种整合在基本输出入系统10的应用装置固件数据均可正常提供服务。

图2为本发明所提供一种基本输出入系统自我验证选择只读存储器方法的实施例的简要流程图,本实施例的基本输出入系统10会在计算机系统开机时解压缩加载到主存储器20执行开机程序。首先,当计算机系统开启电源后,基本输出入系统10开始执行开机程序(S301),而基本输出入系统10中的开机管理区块102的开机程序会读取验证码区块104中的验证码(S303);接着前往主存储器20中的选择只读存储区块202读取应用装置固件的数据,并以一算法计算该应用装置固件数据,产生一校验值(S305);最后,当对比出该校验值与该验证码相同时,开机管理区块102的程序即判定应用装置固件的版本及内容无误,而继续执行开机程序(S307)。本实施例中所述的验证码,为采用与计算校验值相同的算法,对想要整合在基本输出入系统10中的初始装置固件计算而得,并在基本输出入系统10整合各项装置固件时,一并记录在一只读的验证码区块104中,以避免该验证码被修改。

虽然图2仅以对一种应用装置固件的验证为例,但如同图1所示实施例的说明中所述,初始装置固件和可映射到选择只读存储区块202的应用装置固件不只一种,更可包括网络装置或外围控制接口装置等固件,若有两种以上的装置固件需经过验证,则可重复执行步骤S303到S305,依序将整合在基本输出入系统10中的应用装置固件一一验证对比,直到从装置固件区块106加载到选择只读存储区块202中的所有应用装置固件都经过验证无误后,再继续执行开机程序(S307)。

为了更具体地说明上述的验证流程,接下来参考图3所示的实施例加以说明,图3为本发明所提供一种基本输出入系统自我验证选择只读存储器方法的实施例的详细流程图,本实施例以基本输出入系统10中整合的影像控制装置固件为例进行说明:首先,启动电源以驱动基本输出入系统10(S401),基本输出入系统10自行解压缩并加载主存储器20以便执行开机程序(S403);接着,基本输出入系统10开始执行开机自我测试(S405),并在自我测试程序中,先读取验证码区块104所记录的影像控制装置固件的验证码(S407);再前往主存储器20中的选择只读存储区块202,开始从影像控制装置固件的起始位置读取固件内容,并以一校验和算法计算全部共65536字节的固件数据,产生一校验值(S409)。

开机程序接着即以计算出来的校验值与验证码进行对比,判断两者是否相同(S411):若两者相异,表示整合在基本输出入系统10中的影像控制装置固件数据与预设应整合的固件数据版本不符,或固件内的参数已被修改,此时即发出一警示通知给制造商或使用者,提示实际使用的装置固件与应使用的装置固件不同,或立即停止接下来的开机程序,以保护影像控制装置及计算机系统(S413);反之,若两者经比较后相同,代表影像控制装置固件的正确性和完整性得到验证,开机程序即可继续执行后续的开机程序(S415),例如将主控权转移到选择只读存储区块202中的影像控制装置固件,让使用者可以开始在显示屏幕上看到基本输出入系统10进行硬件测试的影像画面。

经由上述实施例的说明,本发明已提供一种简单而有效地控制被加载选择只读存储区块的应用装置固件版本及数据的手段,可帮助基本输出入系统与装置固件的制造商减少整合版本不一致的错误,同时也可避免黑客下载初始装置固件、篡改初始装置固件的参数内容后,让使用者不慎采用被修改过的固件档案而破坏基本输出入系统的运作,或产生硬件损坏的风险。

虽然以上描述了本发明的具体实施方式,但是本领域的技术人员应当理解,这些仅是举例说明,在不背离本发明的原理和实质的前提下,可以对这些实施方式做出多种变更或修改。因此,本发明的保护范围由所附权利要求书限定。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号