中央处理器和计算机开机自检的方法
【技术领域】
[0001]本发明涉及计算机系统,更具体地,涉及具有开机自检功能的中央处理器和计算机开机自检的方法。
【背景技术】
[0002]近来,计算机系统在各领域得到广泛的应用。由于信息网络的普及,计算机系统的安全问题日益受到关注。通过网络传播的恶意应用程序可能通过窃取、篡改、删除计算机系统中存储的数据给用户造成损失。
[0003]为了应对上述安全问题,有必要在计算机系统的各个层面防范恶意应用程序的攻击。不难理解,上级层面的安全性依赖于下级层面的安全性,派生程序的安全性依赖于父程序的安全性。例如,如果操作系统的代码段被恶意篡改,则应用程序层面的安全措施对此无能为力。因此,系统最底层代码和最初执行的代码的完整性是保障整个计算机系统安全性的基础。
[0004]计算机系统在开机时,是依据储存在主机板上的只读存储器(ROM)中的系统初始化指令,例如基本输入输出系统(Basic Input Output System, B1S)或者扩展固件接口(Extensible Firmware Interface, EFI),来完成最初的启动和初始化过程。系统初始化指令也有可能被恶意篡改,因此,有必要在开机自检时检查系统初始化指令的完整性,以防止因系统初始化指令被篡改而危及计算机系统的安全。
【发明内容】
[0005]因此,为了解决上述问题,本发明提供具有开机自检功能的中央处理器和计算机开机自检的方法。
[0006]根据本发明实施例的一个方面,提供一种中央处理器,包括:片内只读存储器,用于存储预设摘要信息,其中该预设摘要信息不允许修改;以及核心,用于在开机时使用摘要算法计算存储在主机板中的验证指令的摘要信息,并将该摘要信息与该预设摘要信息进行比较以验证该验证指令的完整性,如果该摘要信息与该预设摘要信息不一致,则执行关机指令,其中该验证指令用于验证该主机板的系统初始化指令的完整性。
[0007]根据本发明实施例,如果该摘要信息与该预设摘要信息一致,则该核心可以执行该验证指令以验证该系统初始化指令的完整性,如果该系统初始化指令未能通过完整性验证,则执行关机指令。
[0008]根据本发明实施例,该片内只读存储器可以进一步用于存储签名验证数据,其中该验证指令可以用于执行签名验证算法以利用该签名验证数据验证该系统初始化指令的完整性。
[0009]根据本发明实施例,该签名验证算法可以是级联签名验证算法,用于利用该签名验证数据验证该系统初始化指令的第一部分的完整性,并利用包括在已验证的该系统初始化指令的该第一部分中的附加签名验证数据验证该系统初始化指令的第二部分的完整性。
[0010]根据本发明实施例,该签名验证算法可以是基于非对称加解密算法,该系统初始化指令可以被基于该非对称加解密算法使用私有密钥加密,该签名验证数据可以包括与该私有密钥对应的公共密钥。
[0011]根据本发明实施例,其中该验证指令与该系统初始化指令存储于该主机板的同一存储器中。
[0012]根据本发明实施例,该核心可以包括用于执行该摘要算法的硬件电路。
[0013]根据本发明实施例,该片内只读存储器可以进一步用于存储摘要指令,其中该核心通过执行该摘要指令来执行该摘要算法。
[0014]根据本发明实施例的另一方面,提供一种计算机开机自检的方法,包括:在开机时从主机板中读取验证指令;使用摘要算法计算该验证指令的摘要信息;将该摘要信息与存储在中央处理器的片内只读存储器中的预设摘要信息进行比较以验证该验证指令的完整性;以及如果该摘要信息与该预设摘要信息不一致,则执行关机指令,其中该预设摘要信息不允许修改,且其中该验证指令用于验证该主机板的系统初始化指令的完整性。
[0015]根据本发明实施例,如果该摘要信息与该预设摘要信息一致,则该方法可以进一步包括:从主机板中读取该系统初始化指令;执行该验证指令以验证该系统初始化指令的完整性;以及如果该系统初始化指令未能通过完整性验证,则执行关机指令。
[0016]根据本发明实施例,该验证指令可以用于执行签名验证算法以利用存储在该片内只读存储器中的签名验证数据验证该系统初始化指令的完整性。
[0017]根据本发明实施例,该签名验证算法可以是级联签名验证算法,用于利用该签名验证数据验证该系统初始化指令的第一部分的完整性,并利用包括在已验证的该系统初始化指令的该第一部分中的附加签名验证数据验证该系统初始化指令的第二部分的完整性。
[0018]根据本发明实施例,该签名验证算法可以是基于非对称加解密算法,该系统初始化指令被基于该非对称加解密算法使用私有密钥加密,该签名验证数据包括与该私有密钥对应的公共密钥。
[0019]根据本发明实施例,其中该验证指令与该系统初始化指令存储于该主机板的同一存储器中。
[0020]根据本发明实施例,可以通过该中央处理器的核心中的硬件电路来执行该摘要算法。
[0021 ] 根据本发明实施例,可以通过执行存储在该片内只读存储器中的摘要指令来执行该摘要算法。
[0022]通过使用根据本发明的中央处理器和计算机开机自检的方法,一方面以中央处理器内部的片内只读存储器作为系统信任根,大大提高了系统的安全性;另一方面,由于在片内只读存储器中仅存储具有较短尺寸的验证指令的预设摘要信息而不是完整的验证指令,可以节省有限的存储空间。。
【附图说明】
[0023]图1示出包括根据本发明的实施例的中央处理器102的计算机系统100 ;
[0024]图2示出根据本发明另一实施例的中央处理器102 ;
[0025]图3示出根据本发明另一实施例的图1的主机板101中的B1S ROM 111 ;
[0026]图4是根据本发明的实施例的计算机开机自检的方法的流程图;以及
[0027]图5是级联签名验证情况下图4中的步骤S406的详细过程的流程图。
【具体实施方式】
[0028]下面参照附图详细描述根据本发明的示范性实施例。附图中,将相同或类似的附图标记赋予结构以及功能基本相同的组成部分,并且为了使说明书更加简明,省略了关于基本上相同的组成部分的冗余描述。
[0029]图1示出包括根据本发明一实施例的中央处理器102的计算机系统100。
[0030]参照图1,计算机系统100包括主机板101、中央处理器102、输入/输出(I/O)设备103、以及存储设备104。主机板101包括B1S ROM 111和随机存取存储器(RAM) 112。值得注意的是,这里是以B1S作为系统初始化指令来举例,采用其它系统初始化指令(例如EFI)技术的计算机系统100也落入本发明要保护的范围。
[0031]图2示出根据本发明另一实施例的中央处理器102。
[0032]参照图2,中央处理器102包括片内只读存储器(on-die ROM) 201和核心202。其中片内只读存储器201用于存储预设摘要信息,该预设摘要信息不允许修改。核心202用于在计算机系统100开机时使用一摘要算法计算存储在主机板101中的一验证指令的一摘要信息,其中该验证指令用于验证主机板101的系统初始化指令(例如,B1S指令)的完整性;核心202将计算出的摘要信息与片内只读存储器201内的预设摘要信息进行比较以验证该验证指令的完整性,如果该摘要信息与该预设摘要信息不一致,则执行关机指令,以保证计算机系统100的安全性。在一实施例中,片内只读存储器201可以是中央处理器102中的片内(On-die)R0M,其内容在中央处理器102的芯片制造过程中预先设定而且无法被更改,从而保证其存储的预设摘要信息不会被篡改,因此可作为整个计算机系统100的信任根。本发明一方面以中央处理器102内部的片内只读存储器201作为系统信任根,大大提高了系统的安全性;另一方面,由于在片内只读存储器201中仅存储具有较短尺寸的验证指令的预设摘要信息而不是完整的验证指令,可以节省有限的存储空间。根据本发明的实施例,在片内只读存储器201中仅需预先存储预设摘要信息、根公钥和摘要指令,而摘要指令所占用的存储空间也远小于完整的验证指令,但本发明不限于此,在另一实施例中,摘要算法可以用包括在核心202中的硬件电路实现,该情况下,可以不在片内只读存储器201中存储摘要指令,从而进一步节省存储空间,由于中央处理器102的制造成本随着片内只读存储器201容量增大而显著提高,本发明可由此大大降低中央处理器102的制造成本。
[0033]图3示出根据本发明另一实施例的图1的主机板101中的B1S ROM 111。
[0034]参照图3,在B1S ROM 111中存储验证指令和系统初始化指令。在本实施例中,验证指令与系统初始化指令存储于同一存储器中,而在其它实施例中,验证指令也可存储在主机板上B1S ROM 111以外的其它存储空间。在图3中,系统初始化指令以级联的方式包括系统初始化指令1、系统初始化指令2、和系统初始化指令3,但本发明不限于此。根据本发明的实施例,系统初始化指令可以包括任意多个部分或者仅包括一个部分。这里,系统初始化指令的各个部分可以分别对应于从高到低的各级厂商、发行商在主机板中存储的程序数据。
[0035]在计算机系统100开机时,核心202执行存储在片内只读存储器201中的摘要指令以摘要算法(例如,安全散列算法)计算存储在B1S ROM 111中或其它存储器中的验证指令的摘要信息。以摘要算法采用安全散列算法SHA-1为例,核心202读取存储在B1S ROM111中或其它存储器中的验证指令的代码,并对其进行散列(hash)运算以产生20个字节(byte)的摘要信息,具体过程在此不再赘述。采用不同的散列算法(例如SHA-2,SHA-128或SHA-256等)产生的摘要信息的数据量会有所不同。当然,采用其它摘要算法也落入本发明要保护的范围。
[0036]核心202再将计算得到的摘要信息与存储在片内只读存储器201中的预设摘要信息进行比较。因为摘要算法是将任意长度的验证指令代码作为原文(originator),输出固定长度的摘要信息,作为原文的验证指令代码不同,摘要信
息就不会相同,因此如果该摘要信息与该预设摘要信息不一致,则意味着B1S ROM 111中的验证指令已经被篡改,因而执行关机指令;如果该摘要信息与该预设摘要信息一致,则意味着验证指令未被篡改,于是核心202进一步执行该验证指令以验证系统初始化指令的完整性,如果该系统初始化指令未能通过完整性验证,则执行关机指令,即,进一步判断系统初始化指令是否被篡改。
[0037]根据本发明的实施例,核心202通过执行该验证指令来执行基于非对称加解密算法的签名验证算法,以利用该非对称加解密算法的公钥来验证使用相应的私钥签名的系统初始化指令的完整性。
[0038]作为示例,当系统初始化指令以级联的方式包括系统初始化指令1、系统初始化指令2、和系统初始化指令3时,利用存储在片内只读存储器201中的根公钥验证使用根私钥签名的系统初始化指令I的完整性,利用包括在已验证的系统初始化指令I中的公钥I验证使用私钥I签名的系统初始化指令2的完整性,然后利用包括在已验证的系统初始化指令2中的公钥2验证使用私钥2签名的系统初始化指令3的完整性,从而完成所有系统初始化指令的完整性验证。其中根公钥、公钥I和公钥2分别与根私钥、私钥I和私钥2 —一对应。B1S代码不同,其根公钥、公钥I和公钥2及其对应的根私钥、私钥I和私钥2也不相同,保证了 B1S代码的安全性。
[0039]以上实施例中,使用非对称加解密算法的私钥对系统初始化指令进行签名,并利用相应的公钥验证其完整性,但本发明不限于此。根据本发明的实施例,可以使用其他类型的签名验证算法验证系统初始化指令的完整性。例如,也可以使用对称加解密算法,如散列消息鉴别码(HMAC),或简单的异或(XOR)运算等。该情况下,作为公钥的替代,在片内只读存储器201中存储相应的签名验证数据(例如HMAC码、XOR掩码等)用于验证完整性。
[0040]图4是根据本发明的实施例的计算机开机自检的方法的流程图。
[0041]参照图4,在步骤S401,当计算机开机时,从主机板中读取验证指令。该验证指令可以存储在主机板的B1S ROM中,其用于验证该主机板之系统初始化指令(例如B1S)的完整性。
[0042]在步骤S402,使用摘要算法计算该验证指令的摘要信息。根据本发明的实施例,该摘要算法可以包括安全散列算法SHA-1或SHA-2。如之前所述,可以通过存储在中央处理器的片内只读存储器中的摘要指令来执行该摘要算法,也可以通过包括在中央处理器的核心中的硬件电路来执行该摘要算法。
[0043]在步骤S403,将计算得到的该摘要信息与存储在中央处理器的片内只读存储器中的预设摘要信息进行比较以验证该验证指令的完整性。其中该预设摘要信息不允许修改。
[0044]如果该摘要信息与该预设摘要信息不一致(S404的“否”),则执行关机指令。如果该摘要信息与该预设摘要信息一致(S404的“是”),则在步骤S405,从主机板中读取系统初始化指令。该系统初始化指令可以存储在B1S ROM中。
[0045]在步骤S406,执行该验证指令以验证系统初始化指令的完整性。如果该系统初始化指令未能通过完整性验证(S407的“否”),则执行关机指令。如果该系统初始化指令通过了完整性验证(S407的“是”),则以该验证通过的系统初始化指令进行正常的开机自检过程。
[0046]图5是级联签名验证情况下图4中的步骤S406的详细过程的流程图。图5的方法以级联签名验证算法验证包括多个部分的系统初始化指令,例如,图3所示的情况。图5中,系统初始化指令包括系统初始化指令1、系统初始化指令2、和系统初始化指令3,但本发明不限于此。如之前所述,根据本发明的实施例,系统初始化指令可以包括任意多个部分。
[0047]参照图5,在步骤S501,该验证指令利用签名验证数据验证系统初始化指令I的完整性。根据本发明的实施例,该签名验证数据可以是非对称加解密算法的公钥(例如,图3的根公钥)、或对称加解密算法的密钥(例如HMAC码、XOR掩码)等。
[0048]如果系统初始化指令I未能通过完整性验证(S502的“否”),则完整性验证过程失败。
[0049]如果系统初始化指令I通过了完整性验证(S502的“是”),则在步骤S503,该验证指令利用包括在已经验证的系统初始化指令I中的附加签名验证数据I (例如,图3的公钥I等)来验证系统初始化指令2的完整性。
[0050]如果系统初始化指令2未能通过完整性验证(S504的“否”),则完整性验证过程失败。
[0051]如果系统初始化指令2通过了完整性验证(S504的“是”),则在步骤S505,该验证指令利用包括在已经验证的系统初始化指令2中的附加签名验证数据2 (例如,图3的公钥2等)来验证系统初始化指令3的完整性。
[0052]如果系统初始化指令3未能通过完整性验证(S506的“否”),则完整性验证过程失败。如果系统初始化指令3通过了完整性验证(S506的“是”),则整个级联签名验证过程结束。
[0053]本发明所提供的中央处理器和计算机开机自检的方法,一方面以中央处理器102内部的片内只读存储器201作为系统信任根,确保系统初始化指令的安全性,相较于额外添加安全模块(例如可信任平台模块Trusted Platform Module,TPM)来保证系统初始化指令的安全性的技术而言,安全性大大提升;另一方面,本发明利用摘要信息来确保存储在主机板中的用于验证系统初始化指令的完整性的验证指令自身的完整性,从而无需使用中央处理器的片内只读存储器的有限空间来存储验证指令。另外,通过利用处理器核心中的专用硬件电路执行摘要算法,还可以进一步减少对片内只读存储器空间的占用。
[0054]如上所述,已经在上面具体地描述了本发明的各个实施例,但是本发明不限于此。本领域的技术人员应该理解,可以根据设计要求或其它因素进行各种修改、组合、子组合或者替换,而它们在所附权利要求书及其等效物的范围内。
【主权项】
1.一种中央处理器,包括: 片内只读存储器,用于存储预设摘要信息,其中该预设摘要信息不允许修改;以及核心,用于在开机时使用摘要算法计算存储在主机板中的验证指令的摘要信息,并将该摘要信息与该预设摘要信息进行比较以验证该验证指令的完整性,如果该摘要信息与该预设摘要信息不一致,则执行关机指令, 其中该验证指令用于验证该主机板的系统初始化指令的完整性。2.如权利要求1所述的中央处理器,其中如果该摘要信息与该预设摘要信息一致,则该核心执行该验证指令以验证该系统初始化指令的完整性,如果该系统初始化指令未能通过完整性验证,则执行关机指令。3.如权利要求1所述的中央处理器,其中该片内只读存储器进一步用于存储签名验证数据, 其中该验证指令用于执行签名验证算法以利用该签名验证数据验证该系统初始化指令的完整性。4.如权利要求3所述的中央处理器,其中该签名验证算法是级联签名验证算法,用于利用该签名验证数据验证该系统初始化指令的第一部分的完整性,并利用包括在已验证的该系统初始化指令的该第一部分中的附加签名验证数据验证该系统初始化指令的第二部分的完整性。5.如权利要求3所述的中央处理器,其中该签名验证算法是基于非对称加解密算法,该系统初始化指令被基于该非对称加解密算法使用私有密钥加密,该签名验证数据包括与该私有密钥对应的公共密钥。6.如权利要求1所述的中央处理器,其中该验证指令与该系统初始化指令存储于该主机板的同一存储器中。7.如权利要求1所述的中央处理器,其中该核心包括用于执行该摘要算法的硬件电路。8.如权利要求1所述的中央处理器,其中该片内只读存储器进一步用于存储摘要指令, 其中该核心通过执行该摘要指令来执行该摘要算法。9.一种计算机开机自检的方法,包括: 在开机时从主机板中读取验证指令; 使用摘要算法计算该验证指令的摘要信息; 将该摘要信息与存储在中央处理器的片内只读存储器中的预设摘要信息进行比较以验证该验证指令的完整性;以及 如果该摘要信息与该预设摘要信息不一致,则执行关机指令, 其中该预设摘要信息不允许修改,且 其中该验证指令用于验证该主机板的系统初始化指令的完整性。10.如权利要求9所述的方法,其中如果该摘要信息与该预设摘要信息一致,则该方法进一步包括: 从主机板中读取该系统初始化指令; 执行该验证指令以验证该系统初始化指令的完整性;以及 如果该系统初始化指令未能通过完整性验证,则执行关机指令。11.如权利要求9所述的方法,其中该验证指令用于执行签名验证算法以利用存储在该片内只读存储器中的签名验证数据验证该系统初始化指令的完整性。12.如权利要求11所述的方法,其中该签名验证算法是级联签名验证算法,用于利用该签名验证数据验证该系统初始化指令的第一部分的完整性,并利用包括在已验证的该系统初始化指令的该第一部分中的附加签名验证数据验证该系统初始化指令的第二部分的完整性。13.如权利要求11所述的方法,其中该签名验证算法是基于非对称加解密算法,该系统初始化指令被基于该非对称加解密算法使用私有密钥加密,该签名验证数据包括与该私有密钥对应的公共密钥。14.如权利要求8所述的方法,其中该验证指令与该系统初始化指令存储于该主机板的同一存储器中。15.如权利要求8所述的方法,其中通过该中央处理器的核心中的硬件电路来执行该摘要算法。16.如权利要求8所述的方法,其中通过执行存储在该片内只读存储器中的摘要指令来执行该摘要算法。
【专利摘要】提供一种中央处理器和计算机开机自检的方法。该中央处理器包括:片内只读存储器,用于存储预设摘要信息,其中该预设摘要信息不允许修改;以及核心,用于在开机时使用摘要算法计算存储在主机板中的验证指令的摘要信息,并将该摘要信息与该预设摘要信息进行比较以验证该验证指令的完整性,如果该摘要信息与该预设摘要信息不一致,则执行关机指令,其中该验证指令用于验证该主机板的系统初始化指令的完整性。
【IPC分类】G06F11/28, G06F9/445
【公开号】CN104881345
【申请号】CN201510271135
【发明人】李勇
【申请人】上海兆芯集成电路有限公司
【公开日】2015年9月2日
【申请日】2015年5月25日
转载请注明原文地址:https://www.famiwei.com/read-8138730.html