保护基本输入输出系统的设备与方法

文档序号:6539909阅读:117来源:国知局
保护基本输入输出系统的设备与方法
【专利摘要】本发明披露了一种保护基本输入输出系统的设备与方法。一只读存储器包括储存为可读文本的基本输入输出系统内容与加密讯息文摘。加密讯息文摘包括对应于基本输入输出系统内容的第一讯息文摘的加密版本。一窜改计时器周期性地产生一中断。回应于该中断,一窜改检测器对基本输入输出系统内容与加密讯息文摘进行存取,并指示一微处理器使用用来产生第一讯息文摘与加密讯息文摘的相同演算法与密钥来产生对应于基本输入输出系统内容的第二讯息文摘与对应于加密讯息文摘的解密讯息文摘。窜改检测器比较第二讯息文摘与解密讯息文摘,以及当第二讯息文摘不相同于解密讯息文摘时,防止微处理器的操作。
【专利说明】保护基本输入输出系统的设备与方法
【技术领域】
[0001]本发明涉及一种微电子技术,特别是涉及能保护计算系统中基本输入/输出系统(basic input/output system, BIOS)的装置与方法。
【背景技术】
[0002]计算平台有各种形式和大小,例如:桌上型计算机、笔记型计算机、平板计算机、个人数字助理(PDA)和智能手机。在这些不同形式的计算平台中,只有少数会采用非常强大的工具。
[0003]当计算平台被拆开之后,几乎所有形式的计算平台是共享相同的基本结构或配置。在其核心是一个中央处理单元(通常是微处理器)、用于储存程序的存储器(以硬盘或固态硬盘的形式)、执行程序的更快的存储器(通常为随机存取存储器)以及储存基本输入/输出系统(basic input/output system, BIOS)的存储器。
[0004]对这些平台而言,BIOS是分层编程的最底层,其能启动标准的操作系统和应用程序,而使用特定计算平台所配置的硬件来执行操作。BIOS通常与硬件接口有大量的关联性,所以当平台配置有改变时,较高阶层的程序不需要修改就可容纳这些改变。当然,当有改变时,BIOS通常会被升级,这就是为什么BIOS的储存通常与操作系统和应用程序的储存是分离。
[0005]BIOS不仅包括了计算平台的基本操作,其亦包括配置数据和安全数据(例如计算系统是否被授权来执行特定的应用程序等)。因为BIOS包含了安全数据,所以其通常是黑客之类的目标。例如,藉由修改系统的B10S,未授权的使用者便能执行未经授权的程序。因此,对系统设计者极为重要的是,当系统不工作而BIOS正在操作时,BIOS的有效性和完整性能得到保护和保证。
[0006]因此,为了能支持升级和/或重新编程以支持系统配置的改变,一方面希望系统的BIOS能容易进行存取。而在另一方面,保护或限制对BIOS的内容进行存取是很重要的,以避免未经授权者的篡改。
[0007]实现一个或两个上述目标的一些尝试会导致架构被限制。例如,移动储存的BIOS到类似系统的微处理器的同一芯片上以防止BIOS被篡改,但却完全违背了容易升级的目的,因为BIOS不再是实体存取。其他技术强调BIOS内容的加密,从保护的观点来看这是有利的,但是这会削减系统的性能。因为每次需要使用到无法接受的数量的操作来对BIOS内容进行解密。
[0008]因此,需要一种能支持计算系统的BIOS内容的可存取性以及升级,也能保护BIOS内容免遭未经授权篡改的新颖技术。

【发明内容】

[0009]本发明提供较佳的技术,用以解决上述问题并满足其它问题及缺点以及现有的受限。[0010]本发明提供了一种优秀的技术,用于保护计算系统的BIOS免于攻击。在一实施例中,提供了一种设备,用以保护一计算系统内的一基本输入输出系统。上述设备包括:一基本输入输出系统只读存储器,包括:基本输入输出系统内容,其中上述基本输入输出系统内容是储存为可读文本;以及一加密讯息文摘,其中上述加密讯息文摘包括对应于上述基本输入输出系统内容的一第一讯息文摘的一加密版本;一窜改计时器,用以周期性地产生一基本输入输出系统检查中断,以便在一时间间隔中断上述计算系统的正常操作;以及一窜改检测器,耦接于上述基本输入输出系统只读存储器以及上述窜改计时器,用以回应于上述基本输入输出系统检查中断而对上述基本输入输出系统内容以及上述加密讯息文摘进行存取、指示一微处理器使用用来产生上述第一讯息文摘与上述加密讯息文摘的相同演算法与密钥来产生对应于上述基本输入输出系统内容的一第二讯息文摘以及对应于上述加密讯息文摘的一解密讯息文摘、比较上述第二讯息文摘与上述解密讯息文摘,以及当上述第二讯息文摘不相同于上述解密讯息文摘时,防止上述微处理器的操作。
[0011]再者,本发明提供另一种设备,用以保护一计算系统内的一基本输入输出系统。上述设备包括:一基本输入输出系统只读存储器,包括:基本输入输出系统内容,其中上述基本输入输出系统内容是储存为可读文本;以及一加密讯息文摘,其中上述加密讯息文摘包括对应于上述基本输入输出系统内容的一第一讯息文摘的一加密版本;以及一微处理器,耦接于上述基本输入输出系统只读存储器,包括:一窜改计时器,用以周期性地产生一基本输入输出系统检查中断,以便在一时间间隔中断上述计算系统的正常操作;以及一窜改检测器,耦接于上述基本输入输出系统只读存储器以及上述窜改计时器,用以回应于上述基本输入输出系统检查中断而对上述基本输入输出系统内容以及上述加密讯息文摘进行存取、指示上述微处理器使用用来产生上述第一讯息文摘与上述加密讯息文摘的相同演算法与密钥来产生对应于上述基本输入输出系统内容的一第二讯息文摘以及对应于上述加密讯息文摘的一解密讯息文摘、比较上述第二讯息文摘与上述解密讯息文摘,以及当上述第二讯息文摘不相同于上述解密讯息文摘时,防止上述微处理器的操作。
[0012]再者,本发明提供一种方法,用以保护一计算系统内的一基本输入输出系统。储存基本输入输出系统内容以及一加密讯息文摘至一基本输入输出系统只读存储器,其中上述基本输入输出系统内容是储存为可读文本,以及上述加密讯息文摘包括对应于上述基本输入输出系统内容的一第一讯息文摘的一加密版本。周期性地产生一基本输入输出系统检查中断,以便在一时间间隔中断上述计算系统的正常操作。回应于上述基本输入输出系统检查中断,存取上述基本输入输出系统内容以及上述加密讯息文摘,并使用用来产生上述第一讯息文摘与上述加密讯息文摘的相同演算法与密钥来产生对应于上述基本输入输出系统内容的一第二讯息文摘以及对应于上述加密讯息文摘的一解密讯息文摘。比较上述第二讯息文摘与上述解密讯息文摘。当上述第二讯息文摘不相同于上述解密讯息文摘时,防止一微处理器的操作。
[0013]再者,本发明提供另一种设备,用以保护一计算系统内的一基本输入输出系统。上述设备包括:一基本输入输出系统只读存储器,包括:基本输入输出系统内容,其中上述基本输入输出系统内容是储存为可读文本;以及一加密讯息文摘,其中上述加密讯息文摘包括对应于上述基本输入输出系统内容的一第一讯息文摘的一加密版本;以及一窜改检测器,耦接于上述基本输入输出系统只读存储器,用以根据一处理器的重置来存取上述基本输入输出系统内容以及上述加密讯息文摘、指不上述微处理器使用用来产生上述第一讯息文摘与上述加密讯息文摘的相同演算法与密钥来产生对应于上述基本输入输出系统内容的一第二讯息文摘以及对应于上述加密讯息文摘的一解密讯息文摘、比较上述第二讯息文摘与上述解密讯息文摘,以及当上述第二讯息文摘不相同于上述解密讯息文摘时,防止上述微处理器的操作。
[0014]再者,本发明提供另一种方法,用以保护一计算系统内的一基本输入输出系统。储存基本输入输出系统内容以及一加密讯息文摘至一基本输入输出系统只读存储器,其中上述基本输入输出系统内容是储存为可读文本,以及上述加密讯息文摘包括对应于上述基本输入输出系统内容的一第一讯息文摘的一加密版本。根据一处理器的重置,存取上述基本输入输出系统内容以及上述加密讯息文摘,并使用用来产生上述第一讯息文摘与上述加密讯息文摘的相同演算法与密钥来产生对应于上述基本输入输出系统内容的一第二讯息文摘以及对应于上述加密讯息文摘的一解密讯息文摘。比较上述第二讯息文摘与上述解密讯息文摘。当上述第二讯息文摘不相同于上述解密讯息文摘时,防止上述微处理器的操作。
[0015]再者,本发明提供另一种设备,用以保护一计算系统内的一基本输入输出系统。上述设备包括:一基本输入输出系统只读存储器,包括:基本输入输出系统内容,其中上述基本输入输出系统内容是储存为可读文本;以及一加密讯息文摘,其中上述加密讯息文摘包括对应于上述基本输入输出系统内容的一第一讯息文摘的一加密版本;一事件检测器,用以产生一基本输入输出系统检查中断,以便根据一事件的发生而来中断上述计算系统的正常操作;以及一窜改检测器,耦接于上述基本输入输出系统只读存储器以及上述事件检测器,用以回应于上述基本输入输出系统检查中断而对上述基本输入输出系统内容以及上述加密讯息文摘进行存取、指示一微处理器使用用来产生上述第一讯息文摘与上述加密讯息文摘的相同演算法与密钥来产生对应于上述基本输入输出系统内容的一第二讯息文摘以及对应于上述加密讯息文摘的一解密讯息文摘、比较上述第二讯息文摘与上述解密讯息文摘,以及当上述第二讯息文摘不相同于上述解密讯息文摘时,防止上述微处理器的操作。
[0016]再者,本发明提供另一种方法,用以保护一计算系统内的一基本输入输出系统。储存基本输入输出系统内容以及一加密讯息文摘至一基本输入输出系统只读存储器,其中上述基本输入输出系统内容是储存为可读文本,以及上述加密讯息文摘包括对应于上述基本输入输出系统内容的一第一讯息文摘的一加密版本。根据一事件的发生,产生一基本输入输出系统检查中断,以便在一时间间隔中断上述计算系统的正常操作。回应于上述基本输入输出系统检查中断,存取上述基本输入输出系统内容以及上述加密讯息文摘,并使用用来产生上述第一讯息文摘与上述加密讯息文摘的相同演算法与密钥来产生对应于上述基本输入输出系统内容的一第二讯息文摘以及对应于上述加密讯息文摘的一解密讯息文摘。比较上述第二讯息文摘与上述解密讯息文摘。当上述第二讯息文摘不相同于上述解密讯息文摘时,防止一微处理器的操作。
【专利附图】

【附图说明】
[0017]图1是显示设置在现今计算系统的主机板的实体元件的方框图;
[0018]图2是显示图1中各元件相互连接的方框图,用以说明计算系统如何配置基本输入/输出系统;[0019]图3是显示根据本发明一实施例所述的架构的方框图,用以保护计算系统的基本输入/输出系统;
[0020]图4是显示根据本发明一实施例所述的周期性架构的方框图,用以保护计算系统的基本输入/输出系统;
[0021]图5是显示根据本发明一实施例所述的基于事件架构的方框图,用以保护计算系统的基本输入/输出系统;
[0022]图6是显示根据本发明一实施例所述的基于驱动架构的方框图,用以保护计算系统的基本输入/输出系统;以及
[0023]图7是显示根据本发明一实施例所述的安全基本输入/输出系统窜改保护架构的方框图。
【具体实施方式】
[0024]为使本发明的上述和其他目的、特征、和优点能更明显易懂,下文特举出较佳实施例,并结合附图详细说明如下。
[0025]本发明的示范以及说明的实施例描述如下。为了清楚起见,并非实际实施的所有特征都描述于此。对于本领域技术人员将会理解,在任何这种实际实施例的开发,许多特定于实现的决策均达到特定目标,例如符合与系统相关以及商业相关的约束,可从一实施方式改变成另一实施方式。此外,将会理解,这种开发成果可能是复杂以及耗时,但是对于具有本发明的优势的本领域的技术人员仍然是例行任务。对本领域技术人员而言,较佳实施例的各种修改是显而易见的,且于此所定义的一般原理可以应用到其他的实施例。因此,本发明并不旨在局限于所示以及本文所描述的具体实施例,而是应被赋予最宽的范围相一致的原则以及所揭示的本发明的新颖特征。
[0026]本发明将根据下列附图来描述。描绘在附图中的不同结构、系统和装置仅作为说明,并不会使得本领域的技术人员对本发明难以理解。不过,下列附图是用来叙述与解释本发明的示范例。使用在此的字与词组应该被了解和理解成有与本领域的技术人员所了解的字与词组相一致的意义。用语或词组没有特别的定义,也就是,与平常的及本领域的技术人员所了解的惯例的意义不同的定义的意思是意味着在此使用一致的名称或词组。到了名称或词组意思是有特别意义的程度,也就是,意义与本领域的技术人员所了解的不同,这样的特别定义将明确地列举在直接地与明确地提供特别定义给该名称或词组的定义方式里的详细说明中。
[0027]集成电路(Integrated Circuit, IC)是制造在一小块半导体材料(通常是娃)内的一组电子电路。集成电路也被称为芯片、微芯片或晶粒(die)。
[0028]中央处理单元(Central Processing Unit,CPU)是执行计算机程序(又称为“计算机应用”或是“应用”)的指令的电子电路(例如“硬件”),其中电子电路是对数据执行包括算术运算、逻辑运算以及输入/输出操作等运算。
[0029]微处理器是作为在单一集成电路的中央处理单元的电子元件。微处理器会接收数字数据以作为输入、根据从一存储器(无论是在芯片内或芯片外)所读取的指令来处理该数据,以及产生由指令所规定的运算结果来当作输出。通用的微处理器可以使用在桌上型计算机、移动电话或是平板计算机,并进行如计算、文书编辑、多媒体显示和浏览因特网的使用。微处理器亦可设置在嵌入式系统,以控制各种各样的装置,包括设备、移动电话、智能型手机和工业控制装置。
[0030]多核心处理器又称为多核心微处理器,多核心处理器是具有制造在单一集成电路的多个中央处理单元的微处理器。
[0031]指令集架构(Instruction Set Architecture, ISA)或是指令集是关于编程的计算机架构的一部分,包括数据类型、指令、寄存器、定址模式、存储器架构、中断与异常管理以及输入/输出。指令集架构包括由特定中央处理单元所实施的一组运算码(opcode,即机器语言指令)以及本机命令的规格。
[0032]x86-相容微处理器是能执行计算机应用的微处理器,其中该计算机应用是根据x86指令集架构所编程。
[0033]微码(miCTocode)是多个微指令。微指令(又称为“本机指令”)是由微处理器的子单元所执行的一种指令。示范性的子单元包括整数单元、浮点(floating point)单元、MMX单元以及载入/储存单元。例如,微指令可直接由精简指令集计算机(reduced instructionset computer, RISC)微处理器所执行。对复杂指令集计算机(complex instruction setcomputer, CISC)微处理器而言,例如x86_相容微处理器,x86指令会被转译(translate)成相关的微指令,以及相关的微指令是直接由CISC微处理器内的一个子单元或多个子单元所执行。
[0034]熔丝是一种导电架构,通常安排成细丝。可藉由施加电压于细丝和/或流经细丝的电流而在选定的位置来烧断细丝。可使用现有制造技术来设置熔丝于晶粒上,以便在全部可编程的区域来配置细丝。在制造之后,将熔丝架构烧断(或未烧断),能提供设置在晶粒上的对应元件所需要的程序化。
[0035]有鉴于现有技术中关于在可信任的计算系统中保护关键程序以及数据,以及现今系统中的技术来检测和/或防止对这些程序与数据进行窜改,下面图1-图2将描述现今系统中的BIOS。随后,本发明将描述于图3-图7中。
[0036]参考图1,方框图100是显示设置在现今计算系统的主机板102 (又称为系统板)的实体元件。主机板102的元件包括微处理器104 (又称为中央处理单元、处理器、处理器芯片等)、易失性存储器106 (又称为随机存取存储器,RAM)、芯片组108 (又称为存储器控制器、存储器集线器、输入/输出集线器或桥芯片(例如北桥或是南侨))、通常被插入至插座112的基本输入输出系统(basic input/output system, BIOS)只读存储器(read onlymemory, ROM) 110以及硬盘接口 114。主机板102通常跟完成特定计算机配置所需的其他元件(例如电源供应器)被安装在计算机机壳内(例如桌上型计算机或笔记型计算机机壳、移动电话机壳、平板计算机机壳、机上盒机壳)。如本领域的技术人员所知,还有许多额外的元件和零件(例如时钟产生器、风扇、连接器、图形处理器等)被安装在主机板102上,而为了简化描述,这些额外的元件和零件将不显示。此外,图1所显示的元件104、106、114、108、110与112可以不同形式被设置在主机板102上,且值得注意的是,所显示的元件104、106、114,108,110与112是参照他们所公认的名称。在此实施例中,微处理器104是经由主机板102板上的实体接口(未显示)而耦接于元件106、114、108、110与112,通常为金属走线(trace)。值得注意的是,由于BIOS只读存储器110在工厂和/或领域中容易遭受到相当频繁的更换,因此将插座112设置在主机板102上。[0037]参考图2,方框图200是显示图1的元件104、106、114、108、110与112相互连接的示意图,用以说明计算系统如何配置基本输入/输出系统(Basic Input/Output System,BIOS)。方框图200是显示微处理器204,其中微处理器204包括芯片内(on-chip)高速快取存储器230。微处理器204是经由存储器总线216而耦接于低速随机存取存储器206。微处理器204亦经由系统总线218耦接于芯片组208,以及芯片组208分别经由硬盘接口总线224以及只读存储器总线220而耦接于硬盘接口 214以及BIOS只读存储器(ROM) 210。BIOS只读存储器210可经由BIOS编程总线222而耦接至可选的BIOS编程接口(未显示)。如本领域的技术人员所知,图2所显示的配置的变化可包括芯片组208,其亦提供了接口通过系统总线218而到随机存取存储器206,而不是直接存储器总线216,并可提供其他类型的总线(未显示),用于连接微处理器204到其他类型的周边接口(例如快速周边组件互连(PCI Express)、图形处理器)。
[0038]在操作上,如本领域的技术人员所知,应用程序234 (例如微软
(MICROSOFT?)、WORD? )是储存在硬盘(或是固态盘)上(未显示),其经由硬盘接口
214所存取。因为硬盘是一个比较缓慢的装置,应用程序234在被执行之前,通常会被传送到外部的随机存取存储器206。然后,部分的应用程序234会被快取以供微处理器204在其内部的快取存储器230内执行。当应用程序234的指令要求微处理器204来执行系统层级的操作(例如储存文件至硬盘)时,来自操作系统软件232的指令(例如储存要求)会被微处理器204所执行,其中来自操作系统软件232的指令亦被从硬盘载入至随机存取存储器206并快取存入内部的快取存储器230。操作系统软件232提供了一种更通用的接口,能致能应用程序234来执行系统层级的功能,而不需要特定已知的系统设定。操作系统软件232亦考虑到微处理器204会同时执行多个应用程序234,并且还执行背景操作以有效管理随机存取存储器206的使用。
[0039]然而,操作系统232事实上是在现今计算系统中软件的中间层级。为了实际连接至计算系统的硬件(例如硬盘),操作系统232必须执行储存在BIOS只读存储器210内的B10S236的指令。B10S236通常为许多的小程序,其是作为计算系统的最低层级的软件,并用以连接操作系统232至计算系统的硬件。相似于操作系统232,B10S236会提供通用接口给计算机硬件,以允许操作系统232能存取硬件而不需要特定的接口设计。B10S236可使系统设计者能改变计算系统的硬件(例如硬盘、芯片组208、随机存取存储器206),而不需要变更到操作系统232或是应用程序234。然而,当系统设定改变时,B10S236必须被更新,而这就是为什么插座112和/或BIOS编程总线222必须设置在主机板102,其将使得BIOS只读存储器210能容易被更换或是重新被编程。在一些系统设定中,可经由BIOS只读存储器总线220直接重新编程BIOS只读存储器210。因此,为了对B10S236进行变更,几乎全部现今的计算系统都有提供上面的架构。BIOS只读存储器210是一个独立的元件,以便容易进行重新编程或是更换。
[0040]在全部的计算系统设定中,B10S236是非常必要的特性,因为其指令可以致能应用程序234以及操作系统232来直接连接硬件。除了能提供连接至系统硬件之外,B10S236会执行其他一些系统上必要的正常功能。例如,当系统开机后,B10S236内的开机自我检测程序(power-on self test, POST)会被执行,以便进行硬件测试,并对系统的正确设定以及运行进行验证。B10S236亦包括程序能识别并指派系统资源给新安装的装置。B10S236还包括程序能从硬盘下载操作系统232至随机存取存储器206,并将系统控制传送给操作系统232。最后,BIOS236包括程序能检测以及防止计算系统的篡改(tampering)。
[0041]由于B10S236在计算系统的安全性以及操作上是重要的,因此常常成为被非法侵入(hack)以及以其他未经授权的形式进行篡改的一个主要目标。例如,许多众所皆知的操作系统具有由设备制造商根据计算系统内的B10S236所给定的规定,因此允许制造商能贩卖具有预先安装的操作系统的计算系统。通常,制造商会将标记(或“记号”)编程到B10S236的特定位置,以及当操作系统开机时,会从B10S236的特定位置读取出标记,以确认是在授权的系统上被开机。如果标记不存在或是不正确,则操作系统将无法开机。
[0042]上面的例子是编程现今B10S236的许多不同类型的安全特性之一,且提供了 BIOS安全功能的深入讨论。要注意的是,对系统设计者来说,系统上B10S236是篡改的主要目标,因此B10S236的保护是主要关心的事项。在上面的例子中,黑客编辑(或重新编程)B10S236的目的是为了将计算系统呈现为授权系统给受保护的操作系统,或是修改BIOS,使得操作系统认为其是在授权系统上运作,然而实际上并不是。
[0043]如先前所描述,大多数现今的BIOS只读存储器110为主机板102上的单独元件,且被安装在插座112,以便在当系统硬件改变而需要变更B10S236时能方便进行更换。因此,在缺少其他安全架构的情况下,像先前所描述的非法侵入是有可能。
[0044]因此,系统设计人员已经开发出许多不同的技术来对系统以及运作在系统上的应用程序234和/或操作系统232进行检测并防止窜改(tamper)。例如,在美国专利
【发明者】G.G.亨利 申请人:威盛电子股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1