最新消息: USBMI致力于为网友们分享Windows、安卓、IOS等主流手机系统相关的资讯以及评测、同时提供相关教程、应用、软件下载等服务。

微码补丁验证

IT圈 admin 28浏览 0评论

2024年9月24日发(作者:良恺歌)

(19)中华人民共和国国家知识产权局

(12)发明专利说明书

(21)申请号 CN03813396.2

(22)申请日 2003.03.28

(71)申请人 英特尔公司

地址 美国加利福尼亚州

(72)发明人 J·萨顿二世

(74)专利代理机构 上海专利商标事务所有限公司

代理人 钱慰民

(51)

G06F1/00

权利要求说明书 说明书 幅图

(10)申请公布号 CN 1659494 A

(43)申请公布日 2005.08.24

(54)发明名称

微码补丁验证

(57)摘要

在将微码补丁传送到安装微码补丁

的目标处理器之前对其进行编码。目标处

理器在安装之前确认微码补丁。通过以下

措施的一个或多个使处理的安全性得到增

强:1)在安全存储器中进行确认、2)使用

公开/秘密密钥对对微码补丁进行加密和解

密、3)使用至少一个嵌入在目标处理器内

并且不能由非安全软件读取的密钥以及4)

使用嵌入在目标处理器内的散列值确认至

少一个非嵌入的密钥。

法律状态

法律状态公告日

法律状态信息

法律状态

权 利 要 求 说 明 书

1.一种提供指令的机器可读取介质,当该指令由一组一个或多个处理器执行时使该

组处理器进行操作,该操作包括:

为微码补丁产生散列文摘;

对散列文摘进行加密以产生数字签名;以及

组合数字签名和微码补丁以传送到目标处理器来对目标处理器中的微码打补丁。

2.如权利要求1所述的介质,其特征在于所述组合包括将密钥与数字签名及微码补

丁进行组合以传送到目标处理器。

3.如权利要求1所述的介质,其特征在于所述组合包括将密钥的散列值与数字签名

及微码补丁进行组合以传送到目标处理器。

4.一种方法,包括:

为微码补丁产生散列文摘;

用不对称密码算法的秘密密钥对散列文摘进行加密以产生数字签名;以及

组合数字签名和微码补丁以传送到目标处理器来对目标处理器中的微码打补丁。

5.如权利要求4所述的方法,其特征在于还包括:

对微码补丁进行加密;

其中所述产生散列文摘包括在所述对微码补丁进行加密之前产生散列文摘;以及

其中所述组合包括将数字签名与加密的微码补丁进行组合。

6.如权利要求4所述的方法,其特征在于还包括:

对微码补丁进行加密;

其中所述产生散列文摘包括在所述对微码补丁进行加密之后产生散列文摘;以及

其中所述组合包括将数字签名与加密的微码补丁进行组合。

7.一种包含数据的机器可读取介质,该数据包括:

对目标系统中的微码打补丁的微码补丁;以及

通过将对微码补丁施加散列运算所创建的文摘进行加密所产生的数字签名。

8.如权利要求7所述的介质,其特征在于所述数据还包括:

对数字签名进行解密以产生文摘的密钥。

9.如权利要求7所述的介质,其特征在于所述数据还包括:

确认微码补丁的密钥的散列值。

10.如权利要求7所述的介质,其特征在于微码补丁是加密的。

11.一种设备,包括:

具有微码的处理器;

耦合到处理器的安全存储器,用于对编码的微码补丁进行解码;以及

耦合到微码的微码补丁存储器,用于保存经解码的微码补丁。

12.如权利要求11所述的设备,其特征在于:

微码包括对编码的微码补丁进行解码的微指令;以及

安全存储器包含编码的微码补丁、解码的微码补丁以及微码补丁解码期间的中间产

物中的至少一个。

13.如权利要求11所述的设备,其特征在于:

微码包括对编码的微码补丁进行解码的微指令;以及

安全存储器用于同时包含编码的微码补丁、解码的微码补丁以及微码补丁解码期间

的中间产物中的至少一个的仅仅一部分。

14.如权利要求11所述的设备,其特征在于:

处理器包括嵌入式密钥,用于对编码的微码补丁进行解码。

15.如权利要求14所述的设备,其特征在于:

嵌入式密钥是不对称密码算法中的公开密钥。

16.一种方法,包括:

获取微码补丁和相关的数字签名;

在安全存储器中对数字签名进行解密以获取第一散列文摘;

用微码补丁计算第二散列文摘;

将第一散列文摘与第二散列文摘进行比较;以及

响应于第一和第二散列文摘之间的匹配,在微码补丁存储器中安装微码补丁。

17.如权利要求16所述的方法,其特征在于进一步包括:

对微码补丁进行解密;

其中所述计算第二散列文摘包括用微码补丁的加密版本计算第二散列文摘。

18.如权利要求16所述的方法,其特征在于进一步包括:

对微码补丁进行解密;

其中所述计算第二散列文摘包括用微码补丁的解密版本计算第二散列文摘。

19.如权利要求16所述的方法,其特征在于:

所述对数字签名进行解密包括使用公开密钥进行不对称解密。

20.如权利要求16所述的方法,其特征在于:

所述对数字签名进行解密包括使用嵌入的密钥。

21.如权利要求16所述的方法,其特征在于:

所述对数字签名进行解密包括使用随微码补丁提供的密钥进行不对称解密。

22.一种提供指令的机器可读取介质,当该指令由一组具有一个或多个处理器执行

时使该组处理器进行操作,该操作包括:

获取微码补丁和相关的数字签名;

在安全存储器中对数字签名进行解密以获取第一散列文摘;

用微码补丁计算第二散列文摘;

将第一散列文摘与第二散列文摘进行比较;以及

响应于第一和第二散列文摘之间的匹配,在微码补丁存储器中安装微码补丁。

23.如权利要求22所述的介质,其特征在于进一步包括:

对微码补丁进行解密;

其中所述计算第二散列文摘包括用微码补丁的加密版本计算第二散列文摘。

24.如权利要求22所述的介质,其特征在于进一步包括:

对微码补丁进行解密;

其中所述计算第二散列文摘包括用微码补丁的解密版本计算第二散列文摘。

25.如权利要求22所述的介质,其特征在于:

所述对数字签名进行解密包括使用公开密钥进行不对称解密。

26.如权利要求22所述的介质,其特征在于:

所述对数字签名进行解密包括使用嵌入的密钥。

27.如权利要求22所述的介质,其特征在于:

所述对数字签名进行解密包括使用随微码补丁以及相关联的数字签名提供的密钥进

行不对称解密。

28.一种系统,包括:

具有微码和嵌入的密钥的处理器;以及

驻留在与处理器耦合的存储设备和基本输入输出系统的至少一个中的微码补丁包,

微码补丁包包括对微码打补丁的微码补丁以及数字签名以使用嵌入的密钥对微码补

丁进行确认。

29.如权利要求28所述的系统,其特征在于:

在微码补丁包中微码补丁是以加密形式的。

30.如权利要求28所述的系统,其特征在于:

安全存储器在确认期间包含微码补丁。

说 明 书

背景

计算机处理器中的一条典型指令用微指令实现一系列的操作,而微指令以微码的形

式在非易失性存储区域中定义了被编码的每一操作。微码定义了处理器的所有或一

部分可执行指令集,并且还可定义不是以软件可访问代码实现的内部操作。微码通

常在制造处理器时置于处理器内的只读存储器(ROM)中。然而,在处理器制造后,

甚至在处理器已处于操作中时,有时需要修改微码。微码补丁通过插入新的微指令

取代原来的微指令而允许这样的修改。可将微码补丁以不同方式(如通过通信信道

下载、由服务技术人员安装或随操作系统提供)传送到处理器,随后存储于处理器

用于操作。由于不能简单地改变微码ROM,微码补丁通常置于处理器内的补丁存

储器,如随机存取存储器(RAM),并且对于修改的微指令的引用则被重新定向到补

丁RAM而不是ROM。因为补丁RAM可以是易失性的,所以通常微码补丁存储于

磁盘上或存储于基本输入输出系统(BIOS)中,并在引导系统时将微码补丁加载到补

丁RAM中。

如果处理器用于安全环境,则在软件和/或硬件设计中应采取各种安全措施,以提

供对安全特征操作篡改的保护。将非授权的微码补丁插入处理器中的能力代表了不

怀好意的攻击者妨碍传统安全措施的一个方式。

附图简述

通过参考用于示出本发明实施例的以下描述以及附图可理解本发明。

图1根据本发明的一个实施例示出了确认和安装微码补丁的系统框图。

图2根据本发明的一个实施例示出了将微码补丁转换为安全传送形式的系统框图。

图3根据本发明的一个实施例示出了从图2系统传送到图1系统的包含各单元的补

丁包。

图4根据本发明的一个实施例示出了用于制备、传送和确认补丁包的整个过程的流

程图。

图5根据本发明的一个实施例示出了用于制备补丁包的过程的流程图。

图6根据本发明的一个实施例示出了用于确认补丁包的过程的流程图。

详细描述

在以下描述中,提出了许多特定细节。然而,可以理解,没有这些特定细节也可实

现本发明的实施例。在其他实例中,为了便于该描述的理解,没有详细示出熟知的

电路、结构和技术。提到的“一个实施例”、“实施例”、“示例实施例”、“各实施例”

等表示所描述的实施例可包括特定特点、结构或特征,但不是每个实施例都必须包

括这些特定的特点、结构和特征。并且,可将对于不同实施例描述的特点、结构或

特征结合到单个实施例中。还有,重复使用短语“在一个实施例中”并不一定指同一

实施例,虽然也可以指同一实施例。

这里提到的加密法可包括加密、解密或两者兼而有之。这里提到的“对称”密码、密

钥、加密或解密指的是同一密钥被用于加密和相关解密的密码技术。1993年作为

联邦信息出版标准FIPS PUB 46-2出版的熟知的数据加密标准(DES)以及2001年作

为FIPS PUB 197出版的高级加密标准都是对称密码的例子。这里提到的“不对称”

密码、密钥、加密或解密指的是加密和相关解密使用不同但相关的密钥的密码技术。

所谓的“公开密钥”密码技术, 包括熟知的Rivest-Shamir-Adleman(RSA)技术,就

是不对称密码的例子。不对称密码过程两个相关密钥之一被称作为秘密密钥(因为

它通常保持私密的),而另一个则被称作为公开密钥(因为它通常可自由地使用)。在

一些实施例中,秘密或公开密钥可用于加密,而其中另一个密钥则用于相关的解密。

可以硬件、固件和软件的其中一个或组合来实现本发明的实施例。本发明的实施例

还可实现为存储在机器可读取介质上的指令,它可由至少一个处理器读取并执行以

实现这里所描述的操作。机器(如计算机)可读取介质包括任何用于以机器可读取形

式存储或发送信息的机制。例如,机器可读取介质包括只读存储器(ROM)、随机存

取存储器(RAM)、磁盘存储介质、光存储介质、快闪存储器设备、电、光、声或其

他形式的传播信号(例如载波、红外信号、数字信号等),等等。

本发明的各个实施例涉及微码补丁(这里还简称为“补丁”)的编码和/或解码,使得在

将补丁安装于目标处理器(希望使用补丁的处理器)中之前将其验证为有效。编码/解

码可包括以下的一种或多种:1)加密/解密、2)使用密码散列函数、3)使用数字签名、

4)等等。目标系统是将要安装补丁的系统,而始发系统是制备安全传送到目标系统

的补丁的系统。在一个实施例中,为特定类型的计算机系统产生补丁的公用集,其

中“类型”可以指特定的代、特定型号、型号内的一些类别等。一旦产生了补丁,就

在传送到想要该补丁的每个目标系统之前,以这里所述的方式对其进行编码。在每

个目标系统中,可如这里所述对一个或多个补丁进行解码和安装,使得补丁成为目

标系统的操作部分。

可使用任何传统的传送方法,包括但不限于,通过通信链路传送、由技术人员安装、

由操作系统的制造商包含在操作系统中、包含在基本输入输出系统(BIOS)中。一旦

经过传送,补丁可以其编码形式存储直到其被操作安装。操作安装包括对编码的补

丁进行解码、确认补丁是授权的以及将补丁置于补丁存储器。确认包括以下任一项

或两者:1)确定自补丁在始发系统中制备用于传送以来没有被修改过;以及2)确定

该补丁在已授权系统中被制备。在一个实施例中,编码的补丁被存储在目标系统的

盘上或BIOS中,每一次引导系统时,被操作地安装在易失性RAM中。在一个实

施例中,将编码的补丁操作地安装在非易失性存储器中,并且在后续重引导期间不

再安装。

图1根据本发明的一个实施例示出了确认和安装微码补丁的系统框图。在图1示出

的实施例中,系统100包括处理器110、芯片组130、盘140、主存储器150以及

通信接口(Comm I/F)160。处理器110可包括微码ROM112、补丁存储器114、安

全存储器118以及一个或多个密钥116。芯片组130可包括BIOS132。可将以后所

描述的补丁包存储于盘140、BIOS132或包括非易失性存储的系统100的另一部分

的至少一个中。

在一些实施例中,可由包含在微码ROM112中的微指令序列实现对补丁进行解码、

确认和安装的操作。在特定实施例中,通过执行将执行传输到序列入口点的特别指

令启动该序列。在另一特定实施例中,响应于将预定值写到机器专用寄存器(MSR)

的预定部分启动该序列。还可使用其它方法启动该序列。

可将对补丁进行解码、确认和安装操作期间要运行的数据置于安全存储器118中,

可将其设置为用非安全代码无法进行访问。在一些实施例中,安全存储器118在不

同时间包含编码的补丁、解码的补丁以及在对编码补丁进行解码期间所产生的中间

产物。在一个实施例中,安全存储器118没有足够容量来保存以上提到的补丁和/

或中间产物,并且它也可同时包含编码补丁、解码补丁和中间产物中一个或多个的

仅仅一部分。

在一个实施例中,安全存储器118是专用RAM存储器,它可置于处理器110的内

部或外部,仅仅用于安全操作。在另一实施例中,安全存储器118是处理器110的

专用高速缓存,并且在补丁的解码、确认和安装期间,对于所有其它操作,对该专

用高速缓存的访问是阻塞的。其他实施例可使用在所述操作期间提供安全存储器

118的其他方法。

虽然系统100示出了特定实施例,但还可使用其它实施例。例如,在一个实施例中,

BIOS132可包括在处理器110中,而另一实施例没有芯片组130。

在一个实施例中,密钥116是嵌入处理器110中的一个或多个安全密钥(在编码和/

或解码中使用的一些值)。可以以下方式将“嵌入式”密钥制造入处理器110中,即

阻止系统100的软件对密钥进行改变并阻止非安全软件对密钥进行读取。在特定实

施例中,嵌入式密钥无法由任何软件进行直接读取,但是一个或多个特定指令可使

特定的嵌入式密钥传输到其他硬件中以用于解码序列中。

在一个实施例中,特定的嵌入式密钥是不对称密码算法的两个密钥的其中一个,而

其中另一个在安全控制下保存在补丁始发系统中。在另一实施例中,特定的嵌入式

密钥包括不对称密码算法的公开密钥的散列值、与相关补丁一起传送的公开密钥。

其他实施例可包括其他类型的密钥作为嵌入式密钥。

在一些实施例中,微码112置于非易失性存储器(如只读存储器(ROM))中,并且在

制造之后无法直接改变。补丁可置于补丁存储器114中用于系统操作,使得响应于

对修改的微码部分的引用,将该访问重新定向到补丁存储器114以对修改的微码进

行存取。在一个实施例中,补丁存储器114包括RAM,并且每当系统100重启和/

或重新引导时,将补丁安装于补丁存储器114的RAM中。在另一实施例,补丁存

储器114包括非易失形式的存储器,如快闪存储器,并且一旦安装了,每一补丁在

补丁存储器114中保持完整直到该补丁由后续补丁替代。

安装之前,可将编码的补丁存储于非易失性存储器(如BIOS132)中或盘140上,以

在每次将补丁安装于补丁存储器114中时对补丁进行解码和确认。在一个实施例中,

来自BIOS厂商的补丁可存储于BIOS132中并由驻留于BIOS的代码在初始引导过

程期间进行安装。在另一实施例中,来自操作系统(0S)厂商的补丁可存储于盘上并

以后在引导过程中由OS引导加载程序安装。两个实施例可组合在同一系统中。

在一个实施例中,通过通信连接(如因特网)传送补丁、通过Comm I/F160接收并存

储该补丁用于使用。在其他实施例中,可通过其它方式传送补丁。

图2根据本发明的一个实施例示出了将微码补丁转换为安全传送形式的系统框图。

在图2所示的实施例中,系统200包括处理器210、芯片组230、盘240、主存储

器250和通信接口260。这些设备中每一个的基本功能类似于图1中的相应部分。

然而,在一个实施例中,作为补丁的始发方,系统200是处于可保护的集中式安装,

其中为整个系统200提供防止攻击者的保护。在示例实施例中,可由安全范围270

提供该保护。如这里所使用的,术语“范围”是概念上的而不是物理上的,并且安全

范围270可包括多种保护性措施,包括但不限于系统200的物理保护、个人对系统

200的有限访问、防火墙或其他保护软件设备等以阻止通过通信接口260对系统的

未授权入侵。系统200还可类似于图1所示的使用内部安全特性。在一个实施例中,

使用系统200为单个类型的目标系统产生补丁包。在另一实施例中,使用系统200

为多个类型的目标系统产生不同补丁包。补丁的代码可在系统200中产生,也可在

其他地方产生,并将其传送到系统200以用于制备相关补丁包。待使用并存储于

200中的信息可包括但不限于以下的一种或多种:非加密补丁244、加密补丁242

以及相关联的密钥246,以上所有都示出存储在盘240上。由于不同目标系统需要

不同补丁并涉及不同密钥,盘240可分为不同存储区域。每个存储区域针对单独的

补丁集及相关密钥。

图3根据本发明的一个实施例示出了可从图2系统传送到图1系统的包含各单元的

补丁包。在一个实施例中,补丁包300包括补丁标头310、补丁320以及数字签名

330。另一实施理还包括一个或多个可传送密钥340。补丁标头3 10包含可标识以

下(但不限于)的一种或多种的标识信息:想要补丁的目标系统类型、补丁类型、在

哪里使用补丁、如何使用补丁以及目标系统100需要的任何其他相关信息。在一个

实施例中,没有对补丁标头310进行加密,以在补丁的验证和/或解密之前便于目

标系统100对补丁包300的识别和处理。补丁320包含用于在补丁存储器114中进

行替换的微码,虽然补丁320可以处于加密形式并同时在补丁包300中。可使用补

丁320的加密以保护可从补丁本身得到的商业秘密或其他机密信息。数字签名330

包括用于确认待安装补丁的真实性,使得可检测到补丁包制备之后对补丁的改变。

在一个实施例中,仅为补丁320产生数字签名330。在另一实施例中,为补丁320

和补丁标头310产生数字签名330,使得可由目标系统100监测对任何一个的未授

权的改变。在另一实施例中,还可为补丁包300的其他部分产生数字签名330。

在一个实施例中,在制造时将目标系统100所需的所有密钥嵌入处理器110中。对

于特定实施例,补丁包300不包括用于对补丁进行解码的任何密钥。在另一特定实

施例中,将由系统100使用的一个或多个密钥传送到系统100作为补丁包300的一

部分,并且在这里将这些密钥指定为可传送密钥340(复数术语“密钥”涵盖了只有单

个可传送密钥的实施例)。可传送密钥340可与用于目标系统100或始发系统200

的其他密钥相关联。例如,在特定实施例中,可传送密钥包括不对称密码算法中公

开/秘密密钥对的公开密钥,而秘密密钥保留在始发系统200中,并且从公开密钥

获得的散列值嵌入处理器100中并用于确认所传送公开密钥的真实性。还可使用所

嵌入的散列值确认通过其它方式提供的一个或多个密钥,例如置于盘上用于操作系

统升级的密钥或置于BIOS中用于BIOS升级的密钥。其他实施例可使用其它密钥

组合和加密方案。在以后描述中更详细地描述补丁包300的各单元。

在另一实施例中,嵌入式密钥或散列值可与一密钥证书链一起使用。在一个这样的

实施例中,使用嵌入式密钥或散列值确认第二密钥,该第二密钥用于确认第三密钥,

以此类推,这样就用与特定层相关联的每一密钥提供多个安全层。可将这些密钥通

过一个或多个先前提到的传送方法和/或通过没有描述过的其他方法进行传送。

图4根据本发明的一个实施例示出了用于制备、传送和确认补丁包的整个过程的流

程图。在图4示出的实施例中,流程图400由两个部分。框410-430示出了补丁始

发过程,其中补丁始发系统制备现有的补丁以进行安全传送。框440-495示出了在

目标系统中进行的补丁确认/安装过程。

在一个实施例中,补丁始发过程以框410对补丁进行加密开始。如前所述,一些实

施例可不对补丁进行加密,因为考虑补丁的内容不是秘密的而不需要保护。不管是

否对补丁进行加密,都可使用框420和430的操作,从而能够在补丁安装到目标系

统之前监测对补丁的窜改。在框420,为补丁产生一数字签名。在一个实施例中,

为补丁标头和补丁两者产生数字签名,从而没有一个会被窜改而被检测到。在另一

实施例中,为补丁而不是为补丁标头产生数字签名。在另一实施例中,还为可传送

密钥产生数字签名。在框430,数字签名和补丁以及任何其他包括的单元组合在一

起形成补丁包。如果在框410对补丁进行了加密,则在框430包括了加密的补丁。

在创建补丁包之后,可将补丁包通过任何可行的方式传送到目标系统。在框440以

接收和存储补丁包的方式开始在目标系统中进行的补丁确认/安装过程。补丁包可

存储在盘140上、存储在BIOS132中或存储在系统100中任何可行的存储位置。

在一个实施例中,直到引导系统时才在操作条件下安装补丁,引导过程开始于框

450。在框460,对补丁包的数字签名进行解密并在框470用于对补丁的确认。如

之后所述,解密和确认可采用若干形式中的任何一种。如果在框410对补丁进行了

加密,则在框480对其进行解密以揭示实际的补丁。在框490,以可操作的方式将

所揭示的补丁安装在处理器110中。在框495,处理器110使用修补的微码进行操

作。

图5根据本发明的一个实施例示出了用于制备补丁包的过程的流程图。流程图500

示出了图4补丁始发过程更详细的描述。图5中示出的实施例包括补丁的加密以及

文摘的创建以用于确认所接收的补丁是否正确。在一个实施例中,用对称加密算法

(如AES、DES等)对补丁进行加密。如这里所使用的,文摘是通过对数据块进行操

作而获得的参数,其中相同的数据块产生相同的文摘,但是数据块中的任何改变可

能会产生不同的文摘。在一个实施例中,该文摘是散列文摘,即通过将散列算法应

用于补丁而产生的文摘。在一个实施例中,首先创建文摘并随后对补丁进行加密,

而在另一实施例中,首先对补丁进行加密随后为加密的补丁创建文摘。图5示出了

两个实施例。在第一实施例中,在框510对未加密的补丁和补丁标头施加散列过程

以创建文摘。在特定实施例中,散列过程使用安全散例算法(SHA-1),它是1994年

根据联邦信息出版标准FIPS PUB 180-1出版的。随后在框520,对补丁进行加密。

如果没有对补丁进行加密,就可省略框520。在第二实施例中,在框530首先对补

丁进行加密,并在框540对加密的补丁和补丁标头施加散列过程以创建文摘。在任

一实施例中,如果后续操作需要文摘由一定数量的比特组成,则在框550可对文摘

进行填充(即将数据添加到其中),从而如所需增加比特数。填充可包括预定数据或

随机数据。在框560,对填充的文摘进行加密以创建数字签名。在一个例子中,使

用不对称加密过程中公开/秘密密钥对的秘密密钥对填充的文摘进行加密。在特定

实施例中,加密遵循使用2048个比特的秘密密钥的RSA加密过程。如所熟知的,

在RSA加密过程中,密钥和所加密的消息都具有相同的比特数,这样如果文摘少

于密钥则在框550就必须对文摘进行填充。在另一实施例中,文摘和密钥已经是相

同尺寸了,这样就可以免除在框550的填充。在另一实施例中,使用密钥和消息无

需相同尺寸的加密方法,在这样的情况下也可免除框550的填充。在框570,将数

字签名、补丁(加密的或未加密地)和补丁标头组合到补丁包中以传送到目标系统。

在一个实施例中,补丁包还包括其他信息,这取决于系统的需要。

图6根据本发明的一个实施例示出了用于确认补丁包的过程的流程图。流程图600

示出了图4补丁确认和安装过程更详细的描述。在框610,从目标系统内获取补丁

包。在一个实施例中,先前由目标系统接收补丁包并置于存储器中,随后从该存储

器中获取该补丁包。在另一实施例中,在框610目标系统一接收到补丁包就获取补

丁包,而无需中间存储。而在一个实施例中,获取由始发系统传送的整个补丁包,

在另一实施例中,在获取补丁包之前去掉补丁的任何非必要单元。

在补丁包中传送密钥的一个实施例中,在框612为密钥计算散列值。如果所计算的

散列值与处理器110中嵌入的相关联的散列值相匹配,则确认该密钥并可将其用于

后续确认操作。如果所计算的散列值与嵌入的散列值不匹配,那么确认就失败并将

控制移到框690,这在之后进行描述。在不涉及传送密钥的实施例中,可省略框

612和614的操作。

在框620,对数字签名进行解密以获取在始发系统中创建的文摘。在一个实施例中,

借助使用公开/秘密密钥对的秘密密钥的不对称加密算法产生数字签名,这样就使

用相关联的公开密钥进行框620的解密。如果在创建期间对文摘进行了填充,那么

框620的操作就获取该填充的文摘,并在框630,去除填充以揭示先前在框510或

540产生的文摘。如果文摘在创建期间没有进行填充,那么框620的操作产生非填

充的文摘,框630就可省略。

在该点,之后的过程取决于流程图500中文摘是在对补丁进行加密之前还是之后创

建的。在如框510和520所示的加密之前创建文摘的实施例中,就在框640对补丁

进行解密,并且在框650对解密的补丁和补丁标头施加散列函数以获得所计算的文

摘。在框660将所计算的文摘与在框620-630获取的实际文摘进行比较以知道两个

文摘是否匹配。如果两个文摘是等同的,则确认该补丁并在框680安装补丁。在一

个实施例中,安装补丁包括将补丁以以下方式置于处理器110的补丁存储器114中,

即任何对所修补微码的所尝试的访问都将定向到补丁存储器114而不是初始微码

112。

回到框630,在如框530和540创建文摘之前对补丁进行加密的实施例中,在框

645,对加密的补丁以及标头施加散列运算以获得所计算的文摘。在框665,将所

计算的文摘与在框630所揭示的实际文摘进行比较以了解它们是否匹配。如果发现

它们是等同的,则确认该补丁并在框670对补丁进行解密。随后在框680安装确认

和解密的补丁。在两个实施例中,框645、650所有的散列运算与框510、540所使

用的是相同的。

如果在框660或665所计算的文摘与实际文摘是不匹配的,这就表示自从补丁包产

生以来它已经改变了或者它不适合安装。这样的改变/不适合性可能由几个原因,

包括但不限于:未授权的人故意试图改变补丁、在传送期间未监测到的/未纠正的

传输错误、将补丁包传送到不正确的目标系统、软件或硬件失效或人为错误。不管

是什么原因,如果实际文摘与所计算的文摘不匹配,就在框690终止补丁安装过程,

不安装没有确认的补丁。终止补丁安装可采取若干形式,包括但不限于:1)试图重

新安装补丁、2)跳过有故障的补丁而安装其他补丁、3)回复到先前版本的补丁、4)

关闭系统、5)重新引导系统,等等。

在一个实施例中,对安全存储器118中的整个补丁进行框610-670的确认过程,并

在确认之后,在框680在补丁存储器114安装整个补丁。在另一实施例中,其中安

全存储器118没有足够容量进行整个确认过程,递增地对补丁的各个部分进行框

610-670的确认过程。如果在这个方式中有任何一部分没有经过确认,就如先前所

述在框690终止该过程。如果在该方式下确认了所有部分,就可以第二次递增地对

补丁进行确认,而每各部分经过确认后就安装在补丁存储器114中。如果在第二轮

确认中补丁有任何一部分没有通过确认(这表示在第一次确认之后补丁受到窜改),

就在框690终止该过程。如果在框690终止之前已部分安装了补丁,那么框690的

终止过程除了一个或多个先前所述过程之外还包括将新安装的补丁从补丁存储器

114中去除。

以上描述旨在都是示例性的而非限制性的。对于本领域的技术人员可对这些描述进

行改变。希望这些改变包括在本发明的各个实施例中,这仅仅由所附权利要求书的

主旨和范围所限制。

2024年9月24日发(作者:良恺歌)

(19)中华人民共和国国家知识产权局

(12)发明专利说明书

(21)申请号 CN03813396.2

(22)申请日 2003.03.28

(71)申请人 英特尔公司

地址 美国加利福尼亚州

(72)发明人 J·萨顿二世

(74)专利代理机构 上海专利商标事务所有限公司

代理人 钱慰民

(51)

G06F1/00

权利要求说明书 说明书 幅图

(10)申请公布号 CN 1659494 A

(43)申请公布日 2005.08.24

(54)发明名称

微码补丁验证

(57)摘要

在将微码补丁传送到安装微码补丁

的目标处理器之前对其进行编码。目标处

理器在安装之前确认微码补丁。通过以下

措施的一个或多个使处理的安全性得到增

强:1)在安全存储器中进行确认、2)使用

公开/秘密密钥对对微码补丁进行加密和解

密、3)使用至少一个嵌入在目标处理器内

并且不能由非安全软件读取的密钥以及4)

使用嵌入在目标处理器内的散列值确认至

少一个非嵌入的密钥。

法律状态

法律状态公告日

法律状态信息

法律状态

权 利 要 求 说 明 书

1.一种提供指令的机器可读取介质,当该指令由一组一个或多个处理器执行时使该

组处理器进行操作,该操作包括:

为微码补丁产生散列文摘;

对散列文摘进行加密以产生数字签名;以及

组合数字签名和微码补丁以传送到目标处理器来对目标处理器中的微码打补丁。

2.如权利要求1所述的介质,其特征在于所述组合包括将密钥与数字签名及微码补

丁进行组合以传送到目标处理器。

3.如权利要求1所述的介质,其特征在于所述组合包括将密钥的散列值与数字签名

及微码补丁进行组合以传送到目标处理器。

4.一种方法,包括:

为微码补丁产生散列文摘;

用不对称密码算法的秘密密钥对散列文摘进行加密以产生数字签名;以及

组合数字签名和微码补丁以传送到目标处理器来对目标处理器中的微码打补丁。

5.如权利要求4所述的方法,其特征在于还包括:

对微码补丁进行加密;

其中所述产生散列文摘包括在所述对微码补丁进行加密之前产生散列文摘;以及

其中所述组合包括将数字签名与加密的微码补丁进行组合。

6.如权利要求4所述的方法,其特征在于还包括:

对微码补丁进行加密;

其中所述产生散列文摘包括在所述对微码补丁进行加密之后产生散列文摘;以及

其中所述组合包括将数字签名与加密的微码补丁进行组合。

7.一种包含数据的机器可读取介质,该数据包括:

对目标系统中的微码打补丁的微码补丁;以及

通过将对微码补丁施加散列运算所创建的文摘进行加密所产生的数字签名。

8.如权利要求7所述的介质,其特征在于所述数据还包括:

对数字签名进行解密以产生文摘的密钥。

9.如权利要求7所述的介质,其特征在于所述数据还包括:

确认微码补丁的密钥的散列值。

10.如权利要求7所述的介质,其特征在于微码补丁是加密的。

11.一种设备,包括:

具有微码的处理器;

耦合到处理器的安全存储器,用于对编码的微码补丁进行解码;以及

耦合到微码的微码补丁存储器,用于保存经解码的微码补丁。

12.如权利要求11所述的设备,其特征在于:

微码包括对编码的微码补丁进行解码的微指令;以及

安全存储器包含编码的微码补丁、解码的微码补丁以及微码补丁解码期间的中间产

物中的至少一个。

13.如权利要求11所述的设备,其特征在于:

微码包括对编码的微码补丁进行解码的微指令;以及

安全存储器用于同时包含编码的微码补丁、解码的微码补丁以及微码补丁解码期间

的中间产物中的至少一个的仅仅一部分。

14.如权利要求11所述的设备,其特征在于:

处理器包括嵌入式密钥,用于对编码的微码补丁进行解码。

15.如权利要求14所述的设备,其特征在于:

嵌入式密钥是不对称密码算法中的公开密钥。

16.一种方法,包括:

获取微码补丁和相关的数字签名;

在安全存储器中对数字签名进行解密以获取第一散列文摘;

用微码补丁计算第二散列文摘;

将第一散列文摘与第二散列文摘进行比较;以及

响应于第一和第二散列文摘之间的匹配,在微码补丁存储器中安装微码补丁。

17.如权利要求16所述的方法,其特征在于进一步包括:

对微码补丁进行解密;

其中所述计算第二散列文摘包括用微码补丁的加密版本计算第二散列文摘。

18.如权利要求16所述的方法,其特征在于进一步包括:

对微码补丁进行解密;

其中所述计算第二散列文摘包括用微码补丁的解密版本计算第二散列文摘。

19.如权利要求16所述的方法,其特征在于:

所述对数字签名进行解密包括使用公开密钥进行不对称解密。

20.如权利要求16所述的方法,其特征在于:

所述对数字签名进行解密包括使用嵌入的密钥。

21.如权利要求16所述的方法,其特征在于:

所述对数字签名进行解密包括使用随微码补丁提供的密钥进行不对称解密。

22.一种提供指令的机器可读取介质,当该指令由一组具有一个或多个处理器执行

时使该组处理器进行操作,该操作包括:

获取微码补丁和相关的数字签名;

在安全存储器中对数字签名进行解密以获取第一散列文摘;

用微码补丁计算第二散列文摘;

将第一散列文摘与第二散列文摘进行比较;以及

响应于第一和第二散列文摘之间的匹配,在微码补丁存储器中安装微码补丁。

23.如权利要求22所述的介质,其特征在于进一步包括:

对微码补丁进行解密;

其中所述计算第二散列文摘包括用微码补丁的加密版本计算第二散列文摘。

24.如权利要求22所述的介质,其特征在于进一步包括:

对微码补丁进行解密;

其中所述计算第二散列文摘包括用微码补丁的解密版本计算第二散列文摘。

25.如权利要求22所述的介质,其特征在于:

所述对数字签名进行解密包括使用公开密钥进行不对称解密。

26.如权利要求22所述的介质,其特征在于:

所述对数字签名进行解密包括使用嵌入的密钥。

27.如权利要求22所述的介质,其特征在于:

所述对数字签名进行解密包括使用随微码补丁以及相关联的数字签名提供的密钥进

行不对称解密。

28.一种系统,包括:

具有微码和嵌入的密钥的处理器;以及

驻留在与处理器耦合的存储设备和基本输入输出系统的至少一个中的微码补丁包,

微码补丁包包括对微码打补丁的微码补丁以及数字签名以使用嵌入的密钥对微码补

丁进行确认。

29.如权利要求28所述的系统,其特征在于:

在微码补丁包中微码补丁是以加密形式的。

30.如权利要求28所述的系统,其特征在于:

安全存储器在确认期间包含微码补丁。

说 明 书

背景

计算机处理器中的一条典型指令用微指令实现一系列的操作,而微指令以微码的形

式在非易失性存储区域中定义了被编码的每一操作。微码定义了处理器的所有或一

部分可执行指令集,并且还可定义不是以软件可访问代码实现的内部操作。微码通

常在制造处理器时置于处理器内的只读存储器(ROM)中。然而,在处理器制造后,

甚至在处理器已处于操作中时,有时需要修改微码。微码补丁通过插入新的微指令

取代原来的微指令而允许这样的修改。可将微码补丁以不同方式(如通过通信信道

下载、由服务技术人员安装或随操作系统提供)传送到处理器,随后存储于处理器

用于操作。由于不能简单地改变微码ROM,微码补丁通常置于处理器内的补丁存

储器,如随机存取存储器(RAM),并且对于修改的微指令的引用则被重新定向到补

丁RAM而不是ROM。因为补丁RAM可以是易失性的,所以通常微码补丁存储于

磁盘上或存储于基本输入输出系统(BIOS)中,并在引导系统时将微码补丁加载到补

丁RAM中。

如果处理器用于安全环境,则在软件和/或硬件设计中应采取各种安全措施,以提

供对安全特征操作篡改的保护。将非授权的微码补丁插入处理器中的能力代表了不

怀好意的攻击者妨碍传统安全措施的一个方式。

附图简述

通过参考用于示出本发明实施例的以下描述以及附图可理解本发明。

图1根据本发明的一个实施例示出了确认和安装微码补丁的系统框图。

图2根据本发明的一个实施例示出了将微码补丁转换为安全传送形式的系统框图。

图3根据本发明的一个实施例示出了从图2系统传送到图1系统的包含各单元的补

丁包。

图4根据本发明的一个实施例示出了用于制备、传送和确认补丁包的整个过程的流

程图。

图5根据本发明的一个实施例示出了用于制备补丁包的过程的流程图。

图6根据本发明的一个实施例示出了用于确认补丁包的过程的流程图。

详细描述

在以下描述中,提出了许多特定细节。然而,可以理解,没有这些特定细节也可实

现本发明的实施例。在其他实例中,为了便于该描述的理解,没有详细示出熟知的

电路、结构和技术。提到的“一个实施例”、“实施例”、“示例实施例”、“各实施例”

等表示所描述的实施例可包括特定特点、结构或特征,但不是每个实施例都必须包

括这些特定的特点、结构和特征。并且,可将对于不同实施例描述的特点、结构或

特征结合到单个实施例中。还有,重复使用短语“在一个实施例中”并不一定指同一

实施例,虽然也可以指同一实施例。

这里提到的加密法可包括加密、解密或两者兼而有之。这里提到的“对称”密码、密

钥、加密或解密指的是同一密钥被用于加密和相关解密的密码技术。1993年作为

联邦信息出版标准FIPS PUB 46-2出版的熟知的数据加密标准(DES)以及2001年作

为FIPS PUB 197出版的高级加密标准都是对称密码的例子。这里提到的“不对称”

密码、密钥、加密或解密指的是加密和相关解密使用不同但相关的密钥的密码技术。

所谓的“公开密钥”密码技术, 包括熟知的Rivest-Shamir-Adleman(RSA)技术,就

是不对称密码的例子。不对称密码过程两个相关密钥之一被称作为秘密密钥(因为

它通常保持私密的),而另一个则被称作为公开密钥(因为它通常可自由地使用)。在

一些实施例中,秘密或公开密钥可用于加密,而其中另一个密钥则用于相关的解密。

可以硬件、固件和软件的其中一个或组合来实现本发明的实施例。本发明的实施例

还可实现为存储在机器可读取介质上的指令,它可由至少一个处理器读取并执行以

实现这里所描述的操作。机器(如计算机)可读取介质包括任何用于以机器可读取形

式存储或发送信息的机制。例如,机器可读取介质包括只读存储器(ROM)、随机存

取存储器(RAM)、磁盘存储介质、光存储介质、快闪存储器设备、电、光、声或其

他形式的传播信号(例如载波、红外信号、数字信号等),等等。

本发明的各个实施例涉及微码补丁(这里还简称为“补丁”)的编码和/或解码,使得在

将补丁安装于目标处理器(希望使用补丁的处理器)中之前将其验证为有效。编码/解

码可包括以下的一种或多种:1)加密/解密、2)使用密码散列函数、3)使用数字签名、

4)等等。目标系统是将要安装补丁的系统,而始发系统是制备安全传送到目标系统

的补丁的系统。在一个实施例中,为特定类型的计算机系统产生补丁的公用集,其

中“类型”可以指特定的代、特定型号、型号内的一些类别等。一旦产生了补丁,就

在传送到想要该补丁的每个目标系统之前,以这里所述的方式对其进行编码。在每

个目标系统中,可如这里所述对一个或多个补丁进行解码和安装,使得补丁成为目

标系统的操作部分。

可使用任何传统的传送方法,包括但不限于,通过通信链路传送、由技术人员安装、

由操作系统的制造商包含在操作系统中、包含在基本输入输出系统(BIOS)中。一旦

经过传送,补丁可以其编码形式存储直到其被操作安装。操作安装包括对编码的补

丁进行解码、确认补丁是授权的以及将补丁置于补丁存储器。确认包括以下任一项

或两者:1)确定自补丁在始发系统中制备用于传送以来没有被修改过;以及2)确定

该补丁在已授权系统中被制备。在一个实施例中,编码的补丁被存储在目标系统的

盘上或BIOS中,每一次引导系统时,被操作地安装在易失性RAM中。在一个实

施例中,将编码的补丁操作地安装在非易失性存储器中,并且在后续重引导期间不

再安装。

图1根据本发明的一个实施例示出了确认和安装微码补丁的系统框图。在图1示出

的实施例中,系统100包括处理器110、芯片组130、盘140、主存储器150以及

通信接口(Comm I/F)160。处理器110可包括微码ROM112、补丁存储器114、安

全存储器118以及一个或多个密钥116。芯片组130可包括BIOS132。可将以后所

描述的补丁包存储于盘140、BIOS132或包括非易失性存储的系统100的另一部分

的至少一个中。

在一些实施例中,可由包含在微码ROM112中的微指令序列实现对补丁进行解码、

确认和安装的操作。在特定实施例中,通过执行将执行传输到序列入口点的特别指

令启动该序列。在另一特定实施例中,响应于将预定值写到机器专用寄存器(MSR)

的预定部分启动该序列。还可使用其它方法启动该序列。

可将对补丁进行解码、确认和安装操作期间要运行的数据置于安全存储器118中,

可将其设置为用非安全代码无法进行访问。在一些实施例中,安全存储器118在不

同时间包含编码的补丁、解码的补丁以及在对编码补丁进行解码期间所产生的中间

产物。在一个实施例中,安全存储器118没有足够容量来保存以上提到的补丁和/

或中间产物,并且它也可同时包含编码补丁、解码补丁和中间产物中一个或多个的

仅仅一部分。

在一个实施例中,安全存储器118是专用RAM存储器,它可置于处理器110的内

部或外部,仅仅用于安全操作。在另一实施例中,安全存储器118是处理器110的

专用高速缓存,并且在补丁的解码、确认和安装期间,对于所有其它操作,对该专

用高速缓存的访问是阻塞的。其他实施例可使用在所述操作期间提供安全存储器

118的其他方法。

虽然系统100示出了特定实施例,但还可使用其它实施例。例如,在一个实施例中,

BIOS132可包括在处理器110中,而另一实施例没有芯片组130。

在一个实施例中,密钥116是嵌入处理器110中的一个或多个安全密钥(在编码和/

或解码中使用的一些值)。可以以下方式将“嵌入式”密钥制造入处理器110中,即

阻止系统100的软件对密钥进行改变并阻止非安全软件对密钥进行读取。在特定实

施例中,嵌入式密钥无法由任何软件进行直接读取,但是一个或多个特定指令可使

特定的嵌入式密钥传输到其他硬件中以用于解码序列中。

在一个实施例中,特定的嵌入式密钥是不对称密码算法的两个密钥的其中一个,而

其中另一个在安全控制下保存在补丁始发系统中。在另一实施例中,特定的嵌入式

密钥包括不对称密码算法的公开密钥的散列值、与相关补丁一起传送的公开密钥。

其他实施例可包括其他类型的密钥作为嵌入式密钥。

在一些实施例中,微码112置于非易失性存储器(如只读存储器(ROM))中,并且在

制造之后无法直接改变。补丁可置于补丁存储器114中用于系统操作,使得响应于

对修改的微码部分的引用,将该访问重新定向到补丁存储器114以对修改的微码进

行存取。在一个实施例中,补丁存储器114包括RAM,并且每当系统100重启和/

或重新引导时,将补丁安装于补丁存储器114的RAM中。在另一实施例,补丁存

储器114包括非易失形式的存储器,如快闪存储器,并且一旦安装了,每一补丁在

补丁存储器114中保持完整直到该补丁由后续补丁替代。

安装之前,可将编码的补丁存储于非易失性存储器(如BIOS132)中或盘140上,以

在每次将补丁安装于补丁存储器114中时对补丁进行解码和确认。在一个实施例中,

来自BIOS厂商的补丁可存储于BIOS132中并由驻留于BIOS的代码在初始引导过

程期间进行安装。在另一实施例中,来自操作系统(0S)厂商的补丁可存储于盘上并

以后在引导过程中由OS引导加载程序安装。两个实施例可组合在同一系统中。

在一个实施例中,通过通信连接(如因特网)传送补丁、通过Comm I/F160接收并存

储该补丁用于使用。在其他实施例中,可通过其它方式传送补丁。

图2根据本发明的一个实施例示出了将微码补丁转换为安全传送形式的系统框图。

在图2所示的实施例中,系统200包括处理器210、芯片组230、盘240、主存储

器250和通信接口260。这些设备中每一个的基本功能类似于图1中的相应部分。

然而,在一个实施例中,作为补丁的始发方,系统200是处于可保护的集中式安装,

其中为整个系统200提供防止攻击者的保护。在示例实施例中,可由安全范围270

提供该保护。如这里所使用的,术语“范围”是概念上的而不是物理上的,并且安全

范围270可包括多种保护性措施,包括但不限于系统200的物理保护、个人对系统

200的有限访问、防火墙或其他保护软件设备等以阻止通过通信接口260对系统的

未授权入侵。系统200还可类似于图1所示的使用内部安全特性。在一个实施例中,

使用系统200为单个类型的目标系统产生补丁包。在另一实施例中,使用系统200

为多个类型的目标系统产生不同补丁包。补丁的代码可在系统200中产生,也可在

其他地方产生,并将其传送到系统200以用于制备相关补丁包。待使用并存储于

200中的信息可包括但不限于以下的一种或多种:非加密补丁244、加密补丁242

以及相关联的密钥246,以上所有都示出存储在盘240上。由于不同目标系统需要

不同补丁并涉及不同密钥,盘240可分为不同存储区域。每个存储区域针对单独的

补丁集及相关密钥。

图3根据本发明的一个实施例示出了可从图2系统传送到图1系统的包含各单元的

补丁包。在一个实施例中,补丁包300包括补丁标头310、补丁320以及数字签名

330。另一实施理还包括一个或多个可传送密钥340。补丁标头3 10包含可标识以

下(但不限于)的一种或多种的标识信息:想要补丁的目标系统类型、补丁类型、在

哪里使用补丁、如何使用补丁以及目标系统100需要的任何其他相关信息。在一个

实施例中,没有对补丁标头310进行加密,以在补丁的验证和/或解密之前便于目

标系统100对补丁包300的识别和处理。补丁320包含用于在补丁存储器114中进

行替换的微码,虽然补丁320可以处于加密形式并同时在补丁包300中。可使用补

丁320的加密以保护可从补丁本身得到的商业秘密或其他机密信息。数字签名330

包括用于确认待安装补丁的真实性,使得可检测到补丁包制备之后对补丁的改变。

在一个实施例中,仅为补丁320产生数字签名330。在另一实施例中,为补丁320

和补丁标头310产生数字签名330,使得可由目标系统100监测对任何一个的未授

权的改变。在另一实施例中,还可为补丁包300的其他部分产生数字签名330。

在一个实施例中,在制造时将目标系统100所需的所有密钥嵌入处理器110中。对

于特定实施例,补丁包300不包括用于对补丁进行解码的任何密钥。在另一特定实

施例中,将由系统100使用的一个或多个密钥传送到系统100作为补丁包300的一

部分,并且在这里将这些密钥指定为可传送密钥340(复数术语“密钥”涵盖了只有单

个可传送密钥的实施例)。可传送密钥340可与用于目标系统100或始发系统200

的其他密钥相关联。例如,在特定实施例中,可传送密钥包括不对称密码算法中公

开/秘密密钥对的公开密钥,而秘密密钥保留在始发系统200中,并且从公开密钥

获得的散列值嵌入处理器100中并用于确认所传送公开密钥的真实性。还可使用所

嵌入的散列值确认通过其它方式提供的一个或多个密钥,例如置于盘上用于操作系

统升级的密钥或置于BIOS中用于BIOS升级的密钥。其他实施例可使用其它密钥

组合和加密方案。在以后描述中更详细地描述补丁包300的各单元。

在另一实施例中,嵌入式密钥或散列值可与一密钥证书链一起使用。在一个这样的

实施例中,使用嵌入式密钥或散列值确认第二密钥,该第二密钥用于确认第三密钥,

以此类推,这样就用与特定层相关联的每一密钥提供多个安全层。可将这些密钥通

过一个或多个先前提到的传送方法和/或通过没有描述过的其他方法进行传送。

图4根据本发明的一个实施例示出了用于制备、传送和确认补丁包的整个过程的流

程图。在图4示出的实施例中,流程图400由两个部分。框410-430示出了补丁始

发过程,其中补丁始发系统制备现有的补丁以进行安全传送。框440-495示出了在

目标系统中进行的补丁确认/安装过程。

在一个实施例中,补丁始发过程以框410对补丁进行加密开始。如前所述,一些实

施例可不对补丁进行加密,因为考虑补丁的内容不是秘密的而不需要保护。不管是

否对补丁进行加密,都可使用框420和430的操作,从而能够在补丁安装到目标系

统之前监测对补丁的窜改。在框420,为补丁产生一数字签名。在一个实施例中,

为补丁标头和补丁两者产生数字签名,从而没有一个会被窜改而被检测到。在另一

实施例中,为补丁而不是为补丁标头产生数字签名。在另一实施例中,还为可传送

密钥产生数字签名。在框430,数字签名和补丁以及任何其他包括的单元组合在一

起形成补丁包。如果在框410对补丁进行了加密,则在框430包括了加密的补丁。

在创建补丁包之后,可将补丁包通过任何可行的方式传送到目标系统。在框440以

接收和存储补丁包的方式开始在目标系统中进行的补丁确认/安装过程。补丁包可

存储在盘140上、存储在BIOS132中或存储在系统100中任何可行的存储位置。

在一个实施例中,直到引导系统时才在操作条件下安装补丁,引导过程开始于框

450。在框460,对补丁包的数字签名进行解密并在框470用于对补丁的确认。如

之后所述,解密和确认可采用若干形式中的任何一种。如果在框410对补丁进行了

加密,则在框480对其进行解密以揭示实际的补丁。在框490,以可操作的方式将

所揭示的补丁安装在处理器110中。在框495,处理器110使用修补的微码进行操

作。

图5根据本发明的一个实施例示出了用于制备补丁包的过程的流程图。流程图500

示出了图4补丁始发过程更详细的描述。图5中示出的实施例包括补丁的加密以及

文摘的创建以用于确认所接收的补丁是否正确。在一个实施例中,用对称加密算法

(如AES、DES等)对补丁进行加密。如这里所使用的,文摘是通过对数据块进行操

作而获得的参数,其中相同的数据块产生相同的文摘,但是数据块中的任何改变可

能会产生不同的文摘。在一个实施例中,该文摘是散列文摘,即通过将散列算法应

用于补丁而产生的文摘。在一个实施例中,首先创建文摘并随后对补丁进行加密,

而在另一实施例中,首先对补丁进行加密随后为加密的补丁创建文摘。图5示出了

两个实施例。在第一实施例中,在框510对未加密的补丁和补丁标头施加散列过程

以创建文摘。在特定实施例中,散列过程使用安全散例算法(SHA-1),它是1994年

根据联邦信息出版标准FIPS PUB 180-1出版的。随后在框520,对补丁进行加密。

如果没有对补丁进行加密,就可省略框520。在第二实施例中,在框530首先对补

丁进行加密,并在框540对加密的补丁和补丁标头施加散列过程以创建文摘。在任

一实施例中,如果后续操作需要文摘由一定数量的比特组成,则在框550可对文摘

进行填充(即将数据添加到其中),从而如所需增加比特数。填充可包括预定数据或

随机数据。在框560,对填充的文摘进行加密以创建数字签名。在一个例子中,使

用不对称加密过程中公开/秘密密钥对的秘密密钥对填充的文摘进行加密。在特定

实施例中,加密遵循使用2048个比特的秘密密钥的RSA加密过程。如所熟知的,

在RSA加密过程中,密钥和所加密的消息都具有相同的比特数,这样如果文摘少

于密钥则在框550就必须对文摘进行填充。在另一实施例中,文摘和密钥已经是相

同尺寸了,这样就可以免除在框550的填充。在另一实施例中,使用密钥和消息无

需相同尺寸的加密方法,在这样的情况下也可免除框550的填充。在框570,将数

字签名、补丁(加密的或未加密地)和补丁标头组合到补丁包中以传送到目标系统。

在一个实施例中,补丁包还包括其他信息,这取决于系统的需要。

图6根据本发明的一个实施例示出了用于确认补丁包的过程的流程图。流程图600

示出了图4补丁确认和安装过程更详细的描述。在框610,从目标系统内获取补丁

包。在一个实施例中,先前由目标系统接收补丁包并置于存储器中,随后从该存储

器中获取该补丁包。在另一实施例中,在框610目标系统一接收到补丁包就获取补

丁包,而无需中间存储。而在一个实施例中,获取由始发系统传送的整个补丁包,

在另一实施例中,在获取补丁包之前去掉补丁的任何非必要单元。

在补丁包中传送密钥的一个实施例中,在框612为密钥计算散列值。如果所计算的

散列值与处理器110中嵌入的相关联的散列值相匹配,则确认该密钥并可将其用于

后续确认操作。如果所计算的散列值与嵌入的散列值不匹配,那么确认就失败并将

控制移到框690,这在之后进行描述。在不涉及传送密钥的实施例中,可省略框

612和614的操作。

在框620,对数字签名进行解密以获取在始发系统中创建的文摘。在一个实施例中,

借助使用公开/秘密密钥对的秘密密钥的不对称加密算法产生数字签名,这样就使

用相关联的公开密钥进行框620的解密。如果在创建期间对文摘进行了填充,那么

框620的操作就获取该填充的文摘,并在框630,去除填充以揭示先前在框510或

540产生的文摘。如果文摘在创建期间没有进行填充,那么框620的操作产生非填

充的文摘,框630就可省略。

在该点,之后的过程取决于流程图500中文摘是在对补丁进行加密之前还是之后创

建的。在如框510和520所示的加密之前创建文摘的实施例中,就在框640对补丁

进行解密,并且在框650对解密的补丁和补丁标头施加散列函数以获得所计算的文

摘。在框660将所计算的文摘与在框620-630获取的实际文摘进行比较以知道两个

文摘是否匹配。如果两个文摘是等同的,则确认该补丁并在框680安装补丁。在一

个实施例中,安装补丁包括将补丁以以下方式置于处理器110的补丁存储器114中,

即任何对所修补微码的所尝试的访问都将定向到补丁存储器114而不是初始微码

112。

回到框630,在如框530和540创建文摘之前对补丁进行加密的实施例中,在框

645,对加密的补丁以及标头施加散列运算以获得所计算的文摘。在框665,将所

计算的文摘与在框630所揭示的实际文摘进行比较以了解它们是否匹配。如果发现

它们是等同的,则确认该补丁并在框670对补丁进行解密。随后在框680安装确认

和解密的补丁。在两个实施例中,框645、650所有的散列运算与框510、540所使

用的是相同的。

如果在框660或665所计算的文摘与实际文摘是不匹配的,这就表示自从补丁包产

生以来它已经改变了或者它不适合安装。这样的改变/不适合性可能由几个原因,

包括但不限于:未授权的人故意试图改变补丁、在传送期间未监测到的/未纠正的

传输错误、将补丁包传送到不正确的目标系统、软件或硬件失效或人为错误。不管

是什么原因,如果实际文摘与所计算的文摘不匹配,就在框690终止补丁安装过程,

不安装没有确认的补丁。终止补丁安装可采取若干形式,包括但不限于:1)试图重

新安装补丁、2)跳过有故障的补丁而安装其他补丁、3)回复到先前版本的补丁、4)

关闭系统、5)重新引导系统,等等。

在一个实施例中,对安全存储器118中的整个补丁进行框610-670的确认过程,并

在确认之后,在框680在补丁存储器114安装整个补丁。在另一实施例中,其中安

全存储器118没有足够容量进行整个确认过程,递增地对补丁的各个部分进行框

610-670的确认过程。如果在这个方式中有任何一部分没有经过确认,就如先前所

述在框690终止该过程。如果在该方式下确认了所有部分,就可以第二次递增地对

补丁进行确认,而每各部分经过确认后就安装在补丁存储器114中。如果在第二轮

确认中补丁有任何一部分没有通过确认(这表示在第一次确认之后补丁受到窜改),

就在框690终止该过程。如果在框690终止之前已部分安装了补丁,那么框690的

终止过程除了一个或多个先前所述过程之外还包括将新安装的补丁从补丁存储器

114中去除。

以上描述旨在都是示例性的而非限制性的。对于本领域的技术人员可对这些描述进

行改变。希望这些改变包括在本发明的各个实施例中,这仅仅由所附权利要求书的

主旨和范围所限制。

发布评论

评论列表 (0)

  1. 暂无评论