安全bios的制作方法

文档序号:6413087阅读:208来源:国知局
专利名称:安全bios的制作方法
技术领域
本发明涉及本发明涉及计算机固件安全领域,尤其在普通计算系统,如个人计算机(“PCs”)的一般计算系统中的基本输入和输出系统(“BIOS”)领域。
2.相关技术说明计算机系统中最关键的元件之一是自举(boot-up)固件,如基本输入和输出系统(“BIOS”)。特别地存储于某种形式的非易失性存储器中的BIOS是机器代码,通常为一种操作系统(“OS”)的一部分,它允许中央处理单元(“CPU”)执行这些任务,如初始化,诊断,从海量存储器加载操作系统内核,及常规的输入/输出(“I/O”)功能。
一旦通电,CPU将通过获取驻存在BIOS中的指令代码而“自举”。由于其内部特性,BIOS有二个互相冲突的要求(1)它应被很好地保护,这是因为如果它被修改或被破坏,整个系统将无法工作,(2)它应很容易地修改,从而允许现场升级,以进行性能提高或清除软件故障。
一般来说,BIOS应用于可擦除可编程只读存储器(“EPROM”)。EPROM有一个优点不能在电路中进行修改。要修改EPROM的内容,该器件必须先从插座中拔出并暴露于紫外线中一个较长的时间进行擦除。在该方面,应用于EPROM的BIOS可以抵抗病毒侵扰和其他的电子破坏。然而,EPROM器件不支持“现场升级”,这是因为这些器件不能在电路中进行编程,在电路中编程是现场升级的必要的特性。现场升级允许用户对现场的BIOS升级,以避免价值昂贵的延时和部件更换。由于现场升级的重要性,现在实际上所有的BIOS固件是使用闪速存储器来完成的。然而,由于可进行现场修改,BIOS闪速存储器易受病毒侵扰,该侵扰可能在敏感的应用程序如财政事务处理中引起毁坏的结果。
在没有安全保护的情况下,应用于BIOS闪速存储器的传统的计算机结构容易受多种侵入的侵扰,如病毒侵扰。在一种典型的病毒侵扰中,该病毒代码执行一个代码序列来修改该BIOS闪速存储器。在BIOS闪速存储器中的代码,没有保护,当该系统下一次自举时,或当某种情况或事件发生时,就被毁坏,其破坏的结果可能立即变成有效。该被感染的代码可能还传播到该BIOS代码或该操作系统内核的其他区域。因为当计算机系统通电时,该BIOS是该第一程序代码,先于任何系统或网络病毒扫描软件执行,基于BIOS的病毒的检查和根除是非常困难的。该基于BIOS的病毒可以“隐藏在磁道中”而逃避扫描软件,从而有效地隐藏。
因此,本发明的主要目的,是防止计算机病毒。对BIOS的破坏,这是通过在该BIOS闪速存储器的内容被修改以前强加一个授权和确认过程来实现的。
应用在本发明中的方法是建立在BIOS授权这个概念之上,即利用授权特性如加密协处理器将BIOS闪速存储器结合到现存的硬件之中。由于加密协处理器既存储该BIOS又执行BIOS更新的授权,侵扰者就没有办法破坏该BIOS内容。
发明概述本发明描述了一种安全更新可执行代码的系统。该系统包含一种存储代码更新的第一存储器元件,一种存储需要更新的可执行代码的第二存储器元件,一种识别第一存储器元件和代码更新的识别代码,及一种安全处理器。该安全处理器耦合到第二存储器元件,利用器件识别来授权和确认第一存储器元件和代码更新。
附图的简要说明通过下面的详细描述,本发明的特点和优点将变得显而易见。


图1是本发明的一个图解。其中BIOS闪速存储器驻存在加密协处理器内部,加密协处理器可以与PCI总线连结。
图2是一个操作流程图,这些操作发生在本发明中通过主处理器对BIOS程序进行正常读访问期间。
图3是一个操作流程图,这些操作发生在本发明中BIOS程序的现场升级期间。
优选实施例的说明本发明提供了一种过程来授权和确认代码更新,如使用加密技术的BIOS升级。在下面的描述中,某些术语用于讨论某种加密特点。“密钥”是一种编码和/或译码参数,利用传统的加密算法如Rivest,Shamir和Adlem(“RSA”),Data Encryption Standard(“DES”)中说明的DataEncryption Algorithms(“DEA”)等等。“证明”定义为与某个实体相关的由其他的实体如一个制造商或一个广泛公开的可信的权威机构(例如,银行,政府实体,贸易协会等。)掌握的私人的密钥进行加密的任何数字信息(特别地是一个公共的密钥)。一个“数字签名”类似于一个证明,但一般只用于授权数据。这里,词“安全”表示对一个侵入者来说,不可能成功地穿过系统屏障。安全处理器是一种电子器件,它能执行安全功能,从而给该系统提供安全保护。
该授权和确认是由安全处理器来执行,安全处理器包含BIOS固件。这样一种安全处理器的实例是加密协处理器。该加密处理器使用秘密的信息如嵌于BIOS升级的数字签名来授权和确认BIOS固件。
参考图1,图示了一个应用于本发明的计算机系统的实施例。该计算机系统10包括芯片组31,它作为一个接口,以支持主处理器30之间的连接;系统存储器32,和耦合到系统总线33的器件。系统存储器32可以包括,但不局限于传统的存储器如不同类型的随机访问存储器(“RAM”),例如,DIAM,VRAM,SRAM,等。以及映射存储器I/O器件。系统总线33可以按照任何类型的总线结构包括外围部件互连(“PCI”),通用串行总线(“USB,”)等等进行应用。
可以耦合到系统总线33的一种器件包括加密协处理器34。加密协处理器34包含总线接口40,处理单元41和局部非易失性存储器42。总线接口40用于建立一种与系统总线33的电连接。处理单元41用作加密协处理器34的主控制器。处理单元41与它自己的局部非易失性存储器42连接。自举程序43储存于非易失性存储器42中。非主要的元件未示出,以避免使本发明发生混淆。可使用在该加密协处理器34中的非主要的元件实例包括RAM,一种随机数字发生器,和不同的加密算法加速器。而且,尽管在图1中显示主处理器30与加密协处理器34是分开的,但加密协处理器34可以是主处理器30的部件,在该情形下,主处理器30直接访问BIOS程序而不通过系统总线33。
图2中,图示了与系统的“自举”过程相关联的一些步骤。首先,在步骤50中,该主处理器发出一个关于BIOS程序的地址读请求。该加密协处理器响应对有关BIOS指令的请求(步骤60)。最后,该主处理器处理步骤70中的数据。为了继续处理BIOS指令,该顺序重复进行。
在典型的现场BIOS升级中,该软件制造商(BIOS销售商)会送给用户一张包含新的BIOS代码和执行升级操作代码的磁盘,对BI0S销售商来说,建立一个公报交换机系统,或一个数据高速公路接口如因特网,以允许用户通过电子远程卸载该BIOS升级是可能的。BIOS升级主要包括对BIOS闪速存储器的擦除和写入。
在图3中,图示了与修改BIOS程序相关的步骤。在步骤110中,主处理器发出一个“替换BIOS”命令给加密协处理器。该命令一般由某些类型的BIOS管理实用软件产生,这些BIOS管理实用软件在主处理器本身或者远程系统上运行。该命令的目的是为新的BIOS程序准备加密协处理器(步骤120)。在步骤130中,加密协处理器或者被动地从主处理器接收新的BIOS程序代码或主动地从特定的来源(例如。系统存储器)中恢复新的BIOS程序代码。步骤140中,新的BIOS程序在内部或以一种保护方式储存,以保证将来的授权操作在这特定的“新的BIOS程序”中执行。在步骤150中,加密协处理器按照内部储存的BIOS程序的版本执行适当的授权操作。有很多方法如授权可以执行,包括利用秘密信息,这些信息仅为BIOS提供者和配置的加密协处理器所知。这是考虑到公共的/私人的密钥加密术可能用作授权过程的一部分,特别地,使用该众所周知的数字签名和证明技术以使该新的BIOS程序的整体性和有效性生效。不管使用什么授权技术,其显著特点是它是在加密协处理器内按新的BIOS程序的局部版本执行。一旦执行了授权操作,在步骤160中,加密协处理器可以确定关于该新的BIOS程序的有效性。例如,该“新的BIOS程序”提供的数字签名可能是有效的,但是该修订数据可能是不适当的(例如。比当前安装的BIOS更早)。如果该新的BIOS已确定是无效的,它就被加密协处理器删除并且再也不能使用(步骤170)。如果该新的BIOS是有效的,该新的BIOS程序进行操作并删除先有的BIOS程序(步骤180)。注意在这一点上,重新自举(reboot)该计算机系统是正常的,以确保系统范围内的一致性。
为了支持基于数字签名的BIOS授权方法,嵌于销售BIOS软件升级中的数字签名应当由一个工业协会,或一个类似的组织或程序批准或同意。该工业协会的参加者是想能现场升级他们的BIOS代码的BIOS销售商。该工业协会的功能之一是发行数字证明给它的BIOS销售商成员,实际上是签发一个数字证明给每个使用BIOS升级软件的销售商。该协会在BIOS的授权过程中提供它的用于加密协处理器的公共密码。该加密协处理器应预装有BIOS销售商的工业协会的公共的密码,以便它能证明嵌于该BIOS升级代码的任何数字签名。另一方面,加密协处理器可以预装入其他的公共的密码,它可以用于授权一个证明链从而获取该工业协会公共的密码。必要时,BIOS升级代码可以是加密的(例如保护该代码不被颠倒管理)。由于该工业协会发表的数字签名或证明一般代表一个有信誉的或可靠的BIOS销售商权威性,一个侵犯者不能直接或间接地用病毒侵扰来破坏该BIOS代码(除非是他或她自己以某种方式取得秘密的私人的用于产生签名或证明的密码)。
在另一实施例中(未图示),加密协处理器是主处理器的一部分。主处理器包含加密协处理器和BIOS程序。当作它自己的安全处理器的主处理器执行与以上描述的BIOS升级中授权和有效,该主处理器预装入BIOS销售商工业协会的公共密码,以便能校验嵌于BIOS升级代码中的任何数字签名。
在另一实施例中(未图示),BIOS程序位于插入系统的扩展槽中的印刷电路板(“PCB”)或卡中。加密协处理器可以位于同一PCB或卡或另一个PCB或卡上,甚至在主处理器内。不管它位于系统的什么地方,只要加密协处理器能访问该BIOS程序,它可以完成以上描述的授权和有效操作。
尽管本发明参考图示的实施例进行了描述,但这种描述不是解释为一种限制。图示的实施例以及本发明的其他实施例的各种修改,对于本领域的人来说是显而易见的,则认为落入本发明的精神和范围之内。
权利要求
1.一种安全地更新可执行代码的系统,包括存储代码更新的第一存储器装置,存储所述的可执行代码的第二存储器装置,以及授权和确认所述的第一存储器装置和所述的基于器件识别的代码更新的第一处理装置,所述的第一处理装置耦合到所述的第二存储器装置。
2.权利要求1中所述的系统,其中的可执行代码是一种基本输入和输出系统。
3.权利要求1中所述的系统,其中的第一存储器装置是海量存储器器件和能在计算机网络中通过电子方法传送的文件之一。
4.权利要求1中所述的系统,其中的第二存储器装置是一种可修改的非易失性存储器器件。
5.权利要求1中所述的系统,其中的第一处理装置包括一种加密处理器。
6.权利要求1中所述的系统,其中的器件识别由包括一数字签名的第一处理装置接收。
7.权利要求1中所述的系统,其中所述的可执行代码被加密以生成加密的代码。
8.权利要求1中所述的系统,还包括为执行所述的可执行代码而与所述的第一处理装置通讯的第二处理装置。
9.权利要求7中所述的系统,其中所述的加密代码被解密以生成解密代码。
10.一种安全的更新可执行代码的系统,包括一种包含代码更新的第一存储器元件;一种包含所述的可执行代码的第二存储器元件;一种耦合到所述的第二存储器元件的安全处理器,所述的安全处理器授权和确认所述的第一存储器元件和所述的基于器件识别的代码更新。
11.权利要求10中所述的系统,其中的可执行代码是一个基本输入和输出系统。
12.权利要求10中所述的系统,其中的第一存储器元件是海量存储器器件和能在计算机网络中通过电子方法传送的文件之一。
13.权利要求10中所述的系统,其中的第二存储器元件是一种可修改非易失性存储器器件。
14.权利要求10中所述的系统,其中的安全处理器是一种加密处理器。
15.权利要求10中所述的系统,其中的所述的器件识别由所述的包括数字签名的所述安全处理器接收。
16.权利要求10中所述的系统,其中的所述的可执行代码被加密以生成一种加密的代码。
17.权利要求10中所述的系统。还包括一为执行所述的可执行代码而与所述的安全处理器通信的主处理器。
18.权利要求16中所述的系统,其中所述的加密的代码被解密以生成解密代码。
19.一种安全地更新可执行代码的方法,该方法包含以下步骤提供第一存储器元件以存储代码更新;提供第二存储器元件以存储所述的可执行代码;配置所述的第一存储器元件以使其包含一个器件识别;提供安全处理器以访问所述的第二存储器元件;通过所述的安全处理器授权所述的基于器件识别的第一存储器元件;以及如果所述的第一存储器元件已授权,则通过所述的代码更新来更新所述的可执行代码。
20.权利要求19中所述的方法,在所述的更新步骤前,该方法还包含一个步骤确认所述的在第一存储器元件中的代码更新。
21.权利要求19中所述的方法,其中的可执行代码是一种基本输入和输出系统。
22.权利要求19中所述的方法,其中的所述的第二存储器元件提供的可执行代码是一种加密格式。
23.权利要求19中所述的方法,还包括提供为执行所述的可执行代码而与所述的安全处理器通信的主处理器。
全文摘要
一种子系统,防止对嵌于可修改的非易失性存储器器件如闪速存储器中的BIOS程序代码进行非授权的修改。包含存储器装置(42)的加密协处理器(34)根据公共的/私人的密钥协议对BIOS升级执行授权和生效。通过验证嵌于BIOS升降中的数字签名来执行授权。
文档编号G06F21/00GK1231787SQ97198335
公开日1999年10月13日 申请日期1997年7月30日 优先权日1996年9月30日
发明者D·L·达维斯 申请人:英特尔公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1