CN108363918B - 处理器操作系统的引导启动方法、装置及处理器系统 - Google Patents

处理器操作系统的引导启动方法、装置及处理器系统 Download PDF

Info

Publication number
CN108363918B
CN108363918B CN201710292953.3A CN201710292953A CN108363918B CN 108363918 B CN108363918 B CN 108363918B CN 201710292953 A CN201710292953 A CN 201710292953A CN 108363918 B CN108363918 B CN 108363918B
Authority
CN
China
Prior art keywords
processor
firmware code
integrity
operating system
firmware
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201710292953.3A
Other languages
English (en)
Other versions
CN108363918A (zh
Inventor
刘雷波
王正鹏
魏少军
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tsinghua University
Original Assignee
Tsinghua University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tsinghua University filed Critical Tsinghua University
Priority to CN201710292953.3A priority Critical patent/CN108363918B/zh
Publication of CN108363918A publication Critical patent/CN108363918A/zh
Application granted granted Critical
Publication of CN108363918B publication Critical patent/CN108363918B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/51Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44568Immediately runnable code
    • G06F9/44578Preparing or optimising for loading

Abstract

本发明公开了一种处理器操作系统的引导启动方法、装置及处理器系统,该方法包括:执行第一处理器固件代码,在执行第一处理器固件代码的过程中,用第一处理器固件验证数据验证第一处理器固件代码的完整性;在第一处理器固件代码的完整性验证通过后,引导启动第一处理器;用第一处理器抓取第二处理器固件代码,验证第二处理器固件代码的完整性,在第二处理器固件代码的完整性验证通过后触发第二处理器的操作系统启动。本发明可以提高处理器操作系统引导启动的安全与可信度。

Description

处理器操作系统的引导启动方法、装置及处理器系统
技术领域
本发明实施例涉及计算机技术领域,尤其涉及处理器操作系统的引导启动方法、装置及处理器系统。
背景技术
本部分旨在为权利要求书中陈述的本发明实施例提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。
处理器在启动操作系统之前,通常会执行处理器固件代码,用于引导启动处理器的操作系统。在现有技术中,处理器自身会对处理器固件代码进行完整性验证,但这样仍然无法确保处理器的操作系统安全启动。尤其是在处理器对用户而言为非可信的处理器时,非常容易出现处理器操作系统启动漏洞,存在处理器操作系统在运行后遭遇攻击,相关数据被篡改、窃取等可能。
发明内容
为了提高处理器操作系统引导启动的安全与可信度,本发明的实施例提供如下解决方案:
在本发明的实施例中,提供了一种处理器操作系统的引导启动方法,包括:
执行第一处理器固件代码,在执行第一处理器固件代码的过程中,用第一处理器固件验证数据验证第一处理器固件代码的完整性;
在第一处理器固件代码的完整性验证通过后,引导启动第一处理器;
用第一处理器抓取第二处理器固件代码,验证第二处理器固件代码的完整性,在第二处理器固件代码的完整性验证通过后触发第二处理器的操作系统启动。
在本发明的实施例中,还提供了一种第一处理器,包括:
只读存储器,用于存储第一处理器固件代码;
一次性可编程区域,用于存储第一处理器固件验证数据;
微控制单元,用于从只读存储器读取第一处理器固件代码,执行第一处理器固件代码;从一次性可编程区域读取第一处理器固件验证数据;在执行第一处理器固件代码的过程中,用第一处理器固件验证数据验证第一处理器固件代码的完整性;在第一处理器固件代码的完整性验证通过后,引导启动第一处理器;抓取第二处理器固件代码,验证第二处理器固件代码的完整性,在第二处理器固件代码的完整性验证通过后触发第二处理器的操作系统启动。
在本发明的实施例中,还提供了一种处理器操作系统的引导启动装置,包括:
第一处理器固件执行模块,用于执行第一处理器固件代码;
第一处理器验证模块,用于在执行第一处理器固件代码的过程中,用第一处理器固件验证数据验证第一处理器固件代码的完整性;
第一处理器启动模块,用于在第一处理器固件代码的完整性验证通过后,引导启动第一处理器;
第二处理器验证触发模块,用于使用第一处理器抓取第二处理器固件代码,验证第二处理器固件代码的完整性,在第二处理器固件代码的完整性验证通过后触发第二处理器的操作系统启动。
在本发明的实施例中,还提供了一种处理器操作系统的引导启动方法,包括:
向第一处理器提供第二处理器固件代码;
接收第一处理器在对第二处理器固件代码的完整性验证通过后,发来的第二处理器启动指令;
启动第二处理器的基本输入输出系统;
运行第二处理器的处理器检测模块,并引导启动第二处理器的操作系统,所述处理器检测模块用于在第二处理器的操作系统运行过程中对第二处理器的操作系统进行安全性检测。
在本发明的实施例中,还提供了一种第二处理器,包括:
串行外围设备接口闪存,用于存储第二处理器固件代码;
处理器检测模块,用于在第二处理器的操作系统运行过程中对第二处理器的操作系统进行安全性检测;
中央处理器,用于从串行外围设备接口闪存读取第二处理器固件代码,向第一处理器提供第二处理器固件代码;接收第一处理器在对第二处理器固件代码的完整性验证通过后,发来的第二处理器启动指令;启动第二处理器的基本输入输出系统;运行第二处理器的处理器检测模块,并引导启动第二处理器的操作系统。
在本发明的实施例中,还提供了一种处理器操作系统的引导启动装置,包括:
第二处理器固件提供模块,用于向第一处理器提供第二处理器固件代码;
启动指令接收模块,用于接收第一处理器在对第二处理器固件代码的完整性验证通过后,发来的第二处理器启动指令;
基本输入输出系统启动模块,用于当所述启动指令接收模块接收到所述第二处理器启动指令后,启动第二处理器的基本输入输出系统;
第二处理器安全启动模块,用于运行第二处理器的处理器检测模块,并引导启动第二处理器的操作系统,所述处理器检测模块用于在第二处理器的操作系统运行过程中对第二处理器的操作系统进行安全性检测。
在本发明的实施例中,还提供了一种处理器系统,包括上述的第一处理器和上述的第二处理器。
在本发明的实施例中,还提供了一种计算机可读存储介质,其上存储有可执行上述两种处理器操作系统的引导启动方法的操作的指令。
在本发明的实施例中,先验证第一处理器固件代码的完整性,以确保第一处理器的安全启动,在第一处理器安全可控的前提下,再用第一处理器验证第二处理器固件代码的完整性,在第二处理器固件代码的完整性验证通过后才触发第二处理器的操作系统启动,可以确保第二处理器操作系统的安全启动,相对于现有技术中提升了处理器操作系统引导启动的安全与可信度。
在本发明的实施例中,向第一处理器提供第二处理器固件代码,在接收到第一处理器发来的第二处理器启动指令后才启动第二处理器的基本输入输出系统,引导启动第二处理器的操作系统,其中的第二处理器启动指令是第一处理器在对第二处理器固件代码的完整性验证通过后发来的,从而通过第一处理器来验证第二处理器固件代码的完整性,以提升第二处理器操作系统引导启动的安全可控性,并且为运行第二处理器的处理器检测模块提供了安全可靠的基础,运行第二处理器的处理器检测模块还在第二处理器的操作系统运行过程中对第二处理器的操作系统进行安全性检测,提升了处理器操作系统运行过程中的安全与可信度。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1为本发明实施例中处理器操作系统的引导启动方法的示意图;
图2为本发明实施例中第一处理器的示意图;
图3为本发明实施例中处理器操作系统的引导启动装置的示意图;
图4为本发明实施例中另一处理器操作系统的引导启动方法的示意图;
图5为本发明实施例中第二处理器的示意图;
图6为本发明实施例中另一处理器操作系统的引导启动装置的示意图;
图7为本发明实施例中处理器系统的示意图;
图8为本发明实施例中处理器操作系统的引导启动方案的一种应用场景示例图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚明白,下面结合附图对本发明实施例做进一步详细说明。在此,本发明的示意性实施例及其说明用于解释本发明,但并不作为对本发明的限定。
图1为本发明实施例中处理器操作系统的引导启动方法的示意图,如图1所示,该方法可以包括:
步骤101、执行第一处理器固件代码,在执行第一处理器固件代码的过程中,用第一处理器固件验证数据验证第一处理器固件代码的完整性;
步骤102、在第一处理器固件代码的完整性验证通过后,引导启动第一处理器;
步骤103、用第一处理器抓取第二处理器固件代码,验证第二处理器固件代码的完整性,在第二处理器固件代码的完整性验证通过后触发第二处理器的操作系统启动。
具体实施时,先执行第一处理器固件代码。第一处理器的固件代码例如可以固化于第一处理器的只读存储器(read-only memory,ROM)中,在执行第一处理固件代码时,执行固化于第一处理器的只读存储器中的第一处理器固件代码。当然实施时第一处理器的固件代码也可以根据实际需求存储于其它位置,在执行第一处理固件代码时,从该其它位置抓取到第一处理器的固件代码后执行第一处理器的固件代码。
在执行第一处理器固件代码的过程中,用第一处理器固件验证数据验证第一处理器固件代码的完整性。其中第一处理器固件验证数据例如可以存储于第一处理器的一次性可编程区域(One Time Programmable,OTP)。一次性可编程区域是一次性写入且有物理方法保护的区域。从一次性可编程区域读取到第一处理器固件验证数据后,在执行第一处理器固件代码的过程中,用读取的第一处理器固件验证数据验证第一处理器固件代码的完整性。当然实施时第一处理器固件验证数据也可以根据实际需求存储于其它位置,在执行第一处理器固件代码的过程中,从该其它位置读取到第一处理器固件验证数据来验证第一处理器固件代码的完整性。
第一处理器固件验证数据可以包括与验证第一处理器固件代码完整性相关的可信信息,例如可以包括第一公钥。利用第一公钥可以验证第一处理器固件代码的完整性。
在具体的实施例中,用第一处理器固件验证数据验证第一处理器固件代码的完整性,可以是:用第一处理器固件验证数据验证第一处理器全部固件代码的完整性;或者也可以是:用第一处理器固件验证数据验证用户在第一处理器全部固件代码中选定的固件代码的完整性,即可以由用户自定义需要验证完整性的第一处理器固件代码,而不一定要验证第一处理器全部固件代码的完整性。
在第一处理器固件代码的完整性验证通过后引导启动第一处理器,在第一处理器安全可控的前提下,用第一处理器抓取第二处理器固件代码,验证第二处理器固件代码的完整性。其中验证第二处理器固件代码的完整性可以有多种方法。例如,可以将第二处理器固件验证数据存储于第一处理器的一次性可编程区域,从第一处理器的一次性可编程区域读取第二处理器固件验证数据,用第二处理器固件验证数据验证第二处理器固件代码的完整性。当然实施时也可以根据实际需求将第二处理器固件验证数据存储于其它位置,从该其它位置读取到第二处理器固件验证数据来验证第二处理器固件代码的完整性。第二处理器固件验证数据可以包括与验证第二处理器固件代码完整性相关的可信信息,例如可以包括第二公钥。利用第二公钥可以验证第二处理器固件代码的完整性。
验证第二处理器固件代码的完整性,又如也可以用密码学算法验证第二处理器固件代码的完整性;或者可以用黄金镜像(golden image)验证第二处理器固件代码的完整性。
在具体的实施例中,验证第二处理器固件代码的完整性,例如可以是:验证第二处理器全部固件代码的完整性;或者也可以是:验证用户在第二处理器全部固件代码中选定的固件代码的完整性,即可以由用户自定义需要验证完整性的第二处理器固件代码,而不一定要验证第二处理器全部固件代码的完整性。例如用户可以根据安全性级别自定义所要验证的第二处理器固件代码,如至少包括CPU(Central Processing Unit,中央处理器)微码、BIOS(Basic Input Output System,基本输入输出系统)、ME(Management Engine,管理引擎)等部分。
在第二处理器固件代码的完整性验证通过后则可以触发第二处理器的操作系统(Operation System Software,OSS)启动。如果第二处理器固件代码的完整性验证失败,则第二处理器的操作系统将无法启动。如果第二处理器固件代码的完整性验证通过,则可以发送第二处理器启动指令,触发第二处理器的操作系统启动。第二处理器在接收到第二处理器启动指令后,将启动第二处理器的基本输入输出系统,引导启动第二处理器的操作系统。在第一处理器安全可控的前提下,用第一处理器抓取第二处理器固件代码,验证第二处理器固件代码的完整性,在第二处理器固件代码的完整性验证通过后才触发第二处理器的操作系统启动,这样可以确保第二处理器操作系统的安全启动,提升第二处理器操作系统引导启动的安全与可信度。
在具体的实施例中,在第二处理器固件代码的完整性验证通过后还可以触发第二处理器的处理器检测模块(Processor Checking Module,PCM)运行,处理器检测模块用于在第二处理器的操作系统运行过程中对第二处理器的操作系统进行安全性检测。
具体实施时,上述处理器操作系统的引导启动方法由第一处理器执行,例如可以是由第一处理器的微控制单元(Microcontroller Unit,MCU)来执行。在具体的实施例中,第一处理器的微控制单元从第一处理器的只读存储器读取第一处理器固件代码,执行第一处理器固件代码;从第一处理器的一次性可编程区域读取第一处理器固件验证数据;在执行第一处理器固件代码的过程中,用第一处理器固件验证数据验证第一处理器固件代码的完整性;在第一处理器固件代码的完整性验证通过后,引导启动第一处理器;抓取第二处理器固件代码,验证第二处理器固件代码的完整性,在第二处理器固件代码的完整性验证通过后,触发第二处理器的操作系统启动,进一步的还可以触发第二处理器的处理器检测模块运行。
具体实施时,第一处理器是独立于第二处理器的处理器,第一处理器逻辑上不受第二处理器控制,相对于第二处理器而言,可以是安全性信得过的处理器。第一处理器例如可以是可重构处理器(Reconfigurable processor,RCP),当然也可以根据实际需求采用其它处理器。当第一处理器为可重构处理器时,验证第二处理器固件代码的完整性可以采用可重构处理器的可重构性变换加密算法,提高第二处理器固件代码完整性验证过程的灵活性、安全性及可移植性。第二处理器例如可以是志强(Xeon)服务器,当然也可以根据实际需求采用其它处理器。志强服务器对用户而言为非可信的处理器,其安全与可信缺乏保障,采用第一处理器例如可重构处理器对志强服务器固件代码的完整性进行验证,可以提高志强服务器操作系统引导启动的安全与可信度。
本发明实施例中还提供了一种第一处理器,如下面的实施例所述。由于第一处理器解决问题的原理与上述处理器操作系统的引导启动方法相似,因此第一处理器的实施可以参见上述处理器操作系统的引导启动方法的实施,重复之处不再赘述。
图2为本发明实施例中第一处理器的示意图,如图2所示,第一处理器可以包括:
只读存储器201,用于存储第一处理器固件代码;
一次性可编程区域202,用于存储第一处理器固件验证数据;
微控制单元203,用于从只读存储器201读取第一处理器固件代码,执行第一处理器固件代码;从一次性可编程区域202读取第一处理器固件验证数据;在执行第一处理器固件代码的过程中,用第一处理器固件验证数据验证第一处理器固件代码的完整性;在第一处理器固件代码的完整性验证通过后,引导启动第一处理器;抓取第二处理器固件代码,验证第二处理器固件代码的完整性,在第二处理器固件代码的完整性验证通过后触发第二处理器的操作系统启动。
在具体的实施例中,一次性可编程区域202还可以用于存储第二处理器固件验证数据;微控制单元203具体可以用于从一次性可编程区域202读取第二处理器固件验证数据,用第二处理器固件验证数据验证第二处理器固件代码的完整性。
在具体的实施例中,微控制单元203还可以用于在第二处理器固件代码的完整性验证通过后触发第二处理器的处理器检测模块运行,处理器检测模块用于在第二处理器的操作系统运行过程中对第二处理器的操作系统进行安全性检测。
在具体的实施例中,第一处理器可以是可重构处理器。
本发明实施例中还提供了一种处理器操作系统的引导启动装置,如下面的实施例所述。由于处理器操作系统的引导启动装置解决问题的原理与上述处理器操作系统的引导启动方法相似,因此处理器操作系统的引导启动装置的实施可以参见上述处理器操作系统的引导启动方法的实施,重复之处不再赘述。
图3为本发明实施例中处理器操作系统的引导启动装置的示意图,如图3所示,该装置可以包括:
第一处理器固件执行模块301,用于执行第一处理器固件代码;
第一处理器验证模块302,用于在执行第一处理器固件代码的过程中,用第一处理器固件验证数据验证第一处理器固件代码的完整性;
第一处理器启动模块303,用于在第一处理器固件代码的完整性验证通过后,引导启动第一处理器;
第二处理器验证触发模块304,用于使用第一处理器抓取第二处理器固件代码,验证第二处理器固件代码的完整性,在第二处理器固件代码的完整性验证通过后触发第二处理器的操作系统启动。
在具体的实施例中,第二处理器验证触发模块304还可以用于在第二处理器固件代码的完整性验证通过后触发第二处理器的处理器检测模块运行,所述处理器检测模块用于在第二处理器的操作系统运行过程中对第二处理器的操作系统进行安全性检测。
本发明实施例中还提供了一种处理器操作系统的引导启动方法、第二处理器及处理器操作系统的引导启动装置,如下面的实施例所述。由于该方法、第二处理器及该装置解决问题的原理与前述图1所示处理器操作系统的引导启动方法、图2所示第一处理器及图3所示处理器操作系统的引导启动装置相似,则可以参见前述实施例,重复之处不再赘述。
图4为本发明实施例中另一处理器操作系统的引导启动方法的示意图,如图4所示,该方法可以包括:
步骤401、向第一处理器提供第二处理器固件代码;
步骤402、接收第一处理器在对第二处理器固件代码的完整性验证通过后,发来的第二处理器启动指令;
步骤403、启动第二处理器的基本输入输出系统;
步骤404、运行第二处理器的处理器检测模块,并引导启动第二处理器的操作系统,所述处理器检测模块用于在第二处理器的操作系统运行过程中对第二处理器的操作系统进行安全性检测。
具体实施时,在接收到第一处理器发来的第二处理器启动指令后,启动第二处理器的基本输入输出系统,运行第二处理器的处理器检测模块,并引导启动第二处理器的操作系统。具体的实施例中,在启动第二处理器的基本输入输出系统后,可以用第二处理器的基本输入输出系统验证第二处理器的处理器检测模块;在验证通过后,再运行第二处理器的处理器检测模块。实施时为了确保第二处理器的处理器检测模块正常启动运行,只需保证第二处理器固件代码的完整性,第二处理器固件代码中与第二处理器的处理器检测模块引导启动相关的代码没有被篡改即可,本例中先用第二处理器的基本输入输出系统验证第二处理器的处理器检测模块,在验证通过后再运行第二处理器的处理器检测模块,是为了进一步提高验证过程的安全性。
第二处理器的处理器检测模块可以在第二处理器的操作系统运行过程中对第二处理器的操作系统进行安全性检测。实施时第二处理器的处理器检测模块可以为第二处理器的操作系统提供相关功能的调用,同时也可以将第二处理器的操作系统的内容保存下来,用以检测第二处理器操作系统的安全性。
在具体的实施例中,第一处理器为可重构处理器。
图5为本发明实施例中第二处理器的示意图,如图5所示,第二处理器可以包括:
串行外围设备接口闪存501,用于存储第二处理器固件代码;
处理器检测模块502,用于在第二处理器的操作系统运行过程中对第二处理器的操作系统进行安全性检测;
中央处理器503,用于从串行外围设备接口闪存501读取第二处理器固件代码,向第一处理器提供第二处理器固件代码;接收第一处理器在对第二处理器固件代码的完整性验证通过后,发来的第二处理器启动指令;启动第二处理器的基本输入输出系统;运行第二处理器的处理器检测模块502,并引导启动第二处理器的操作系统。
在具体的实施例中,中央处理器503具体可以用于:在启动第二处理器的基本输入输出系统后,用第二处理器的基本输入输出系统验证第二处理器的处理器检测模块;在验证通过后,运行第二处理器的处理器检测模块502。
在具体的实施例中,第一处理器为可重构处理器。
图6为本发明实施例中另一处理器操作系统的引导启动装置的示意图,如图6所示,该装置可以包括:
第二处理器固件提供模块601,用于向第一处理器提供第二处理器固件代码;
启动指令接收模块602,用于接收第一处理器在对第二处理器固件代码的完整性验证通过后,发来的第二处理器启动指令;
基本输入输出系统启动模块603,用于当所述启动指令接收模块接收到所述第二处理器启动指令后,启动第二处理器的基本输入输出系统;
第二处理器安全启动模块604,用于运行第二处理器的处理器检测模块,并引导启动第二处理器的操作系统,所述处理器检测模块用于在第二处理器的操作系统运行过程中对第二处理器的操作系统进行安全性检测。
图7为本发明实施例中处理器系统的示意图,如图7所示,该处理器可以包括图2所示的第一处理器和图5所示的第二处理器。
图8为本发明实施例中处理器操作系统的引导启动方案的一种应用场景示例图。本例中的第一处理器为可重构处理器,第二处理器为志强服务器。可重构处理器的固件代码固化于可重构处理器的只读存储器中,可重构处理器的固件验证数据存储于可重构处理器的一次性可编程区域。志强服务器的固件代码存储于志强服务器的串行外围设备接口闪存(Serial Peripheral Interface Flash,SPI Flash)中。如图8所示,本例中志强服务器操作系统的引导启动过程可以包括:
步骤801、可重构处理器的微控制单元启动,执行固化在只读存储器中的可重构处理器固件代码,从一次性可编程区域读取可重构处理器固件验证数据;在以上执行固化在只读存储器中的可重构处理器固件代码的过程中,利用可重构处理器固件验证数据(例如,第一公钥)来验证可重构处理器固件代码的完整性。如果确认代码完整,执行可重构处理器的初始化与引导。这样,可重构处理器就安全地启动了。
步骤802、可重构处理器的微控制单元根据一次性可编程区域中的志强服务器固件验证数据(例如,第二公钥)验证存储于志强服务器的串行外围设备接口闪存中的志强服务器固件代码的完整性。
步骤803、如果志强服务器固件代码的完整性验证失败,则志强服务器无法启动。如果志强服务器固件代码的完整性验证通过,则志强服务器的中央处理器将启动志强服务器的基本输入输出系统。
步骤803、用志强服务器的基本输入输出系统验证志强服务器的处理器检测模块。
步骤804、志强服务器的处理器检测模块验证通过后,志强服务器的中央处理器运行第二处理器的处理器检测模块,并引导启动第二处理器的操作系统,处理器检测模块在志强服务器的操作系统运行过程中对第二处理器的操作系统进行安全性检测。
通过上述步骤801~804的过程可以实现链状信任的建立与传递,可简称为信任链。
本发明实施例中还提供了一种计算机可读存储介质,其上存储有可执行前述第一处理器及第二处理器的操作的指令,这些操作的指令如图1及图4的处理器操作系统的引导启动方法所示。当然,该计算机可读存储介质可以是一个或多个,本发明对此不作限定。例如可以由一计算机可读存储介质存储如图1的处理器操作系统的引导启动方法的操作的指令,由另一计算机可读存储介质存储如图4的处理器操作系统的引导启动方法的操作的指令,这些变化例都应落入本发明的保护范围。
综上所述,在本发明的实施例中,先验证第一处理器固件代码的完整性,以确保第一处理器的安全启动,在第一处理器安全可控的前提下,再用第一处理器验证第二处理器固件代码的完整性,在第二处理器固件代码的完整性验证通过后才触发第二处理器的操作系统启动,可以确保第二处理器操作系统的安全启动,相对于现有技术中提升了处理器操作系统引导启动的安全与可信度。
在本发明的实施例中,向第一处理器提供第二处理器固件代码,在接收到第一处理器发来的第二处理器启动指令后才启动第二处理器的基本输入输出系统,引导启动第二处理器的操作系统,其中的第二处理器启动指令是第一处理器在对第二处理器固件代码的完整性验证通过后发来的,从而通过第一处理器来验证第二处理器固件代码的完整性,以提升第二处理器操作系统引导启动的安全可控性,并且为运行第二处理器的处理器检测模块提供了安全可靠的基础,运行第二处理器的处理器检测模块还在第二处理器的操作系统运行过程中对第二处理器的操作系统进行安全性检测,提升了处理器操作系统运行过程中的安全与可信度。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (21)

1.一种处理器操作系统的引导启动方法,其特征在于,包括:
执行第一处理器固件代码,在执行第一处理器固件代码的过程中,用第一处理器固件验证数据验证第一处理器固件代码的完整性;
在第一处理器固件代码的完整性验证通过后,引导启动第一处理器;
用第一处理器抓取第二处理器固件代码,验证第二处理器固件代码的完整性,在第二处理器固件代码的完整性验证通过后触发第二处理器的操作系统启动;
在第二处理器固件代码的完整性验证通过后还触发第二处理器的处理器检测模块运行,所述处理器检测模块用于在第二处理器的操作系统运行过程中对第二处理器的操作系统进行安全性检测。
2.如权利要求1所述的方法,其特征在于,执行第一处理器固件代码,在执行第一处理器固件代码的过程中,用第一处理器固件验证数据验证第一处理器固件代码的完整性,包括:
执行固化于第一处理器的只读存储器中的第一处理器固件代码;从第一处理器的一次性可编程区域读取第一处理器固件验证数据;在执行第一处理器固件代码的过程中,用第一处理器固件验证数据验证第一处理器固件代码的完整性。
3.如权利要求1所述的方法,其特征在于,所述第一处理器固件验证数据包括第一公钥。
4.如权利要求1所述的方法,其特征在于,用第一处理器固件验证数据验证第一处理器固件代码的完整性,包括:
用第一处理器固件验证数据验证第一处理器全部固件代码的完整性;或,用第一处理器固件验证数据验证用户在第一处理器全部固件代码中选定的固件代码的完整性。
5.如权利要求1所述的方法,其特征在于,验证第二处理器固件代码的完整性,包括:
从第一处理器的一次性可编程区域读取第二处理器固件验证数据,用第二处理器固件验证数据验证第二处理器固件代码的完整性;
或,用密码学算法验证第二处理器固件代码的完整性;
或,用黄金镜像验证第二处理器固件代码的完整性。
6.如权利要求5所述的方法,其特征在于,所述第二处理器固件验证数据包括第二公钥。
7.如权利要求1所述的方法,其特征在于,验证第二处理器固件代码的完整性,包括:
验证第二处理器全部固件代码的完整性;或,验证用户在第二处理器全部固件代码中选定的固件代码的完整性。
8.如权利要求1至7任一项所述的方法,其特征在于,所述第一处理器为可重构处理器。
9.一种第一处理器,其特征在于,包括:
只读存储器,用于存储第一处理器固件代码;
一次性可编程区域,用于存储第一处理器固件验证数据;
微控制单元,用于从只读存储器读取第一处理器固件代码,执行第一处理器固件代码;从一次性可编程区域读取第一处理器固件验证数据;在执行第一处理器固件代码的过程中,用第一处理器固件验证数据验证第一处理器固件代码的完整性;在第一处理器固件代码的完整性验证通过后,引导启动第一处理器;抓取第二处理器固件代码,验证第二处理器固件代码的完整性,在第二处理器固件代码的完整性验证通过后触发第二处理器的操作系统启动;
所述微控制单元还用于在第二处理器固件代码的完整性验证通过后触发第二处理器的处理器检测模块运行,所述处理器检测模块用于在第二处理器的操作系统运行过程中对第二处理器的操作系统进行安全性检测。
10.如权利要求9所述的第一处理器,其特征在于,所述一次性可编程区域还用于存储第二处理器固件验证数据;所述微控制单元具体用于从一次性可编程区域读取第二处理器固件验证数据,用第二处理器固件验证数据验证第二处理器固件代码的完整性。
11.如权利要求9至10任一项所述的第一处理器,其特征在于,所述第一处理器为可重构处理器。
12.一种处理器操作系统的引导启动装置,其特征在于,包括:
第一处理器固件执行模块,用于执行第一处理器固件代码;
第一处理器验证模块,用于在执行第一处理器固件代码的过程中,用第一处理器固件验证数据验证第一处理器固件代码的完整性;
第一处理器启动模块,用于在第一处理器固件代码的完整性验证通过后,引导启动第一处理器;
第二处理器验证触发模块,用于使用第一处理器抓取第二处理器固件代码,验证第二处理器固件代码的完整性,在第二处理器固件代码的完整性验证通过后触发第二处理器的操作系统启动;
所述第二处理器验证触发模块还用于在第二处理器固件代码的完整性验证通过后触发第二处理器的处理器检测模块运行,所述处理器检测模块用于在第二处理器的操作系统运行过程中对第二处理器的操作系统进行安全性检测。
13.一种处理器操作系统的引导启动方法,其特征在于,包括:
向第一处理器提供第二处理器固件代码;
接收第一处理器在对第二处理器固件代码的完整性验证通过后,发来的第二处理器启动指令;
启动第二处理器的基本输入输出系统;
运行第二处理器的处理器检测模块,并引导启动第二处理器的操作系统,所述处理器检测模块用于在第二处理器的操作系统运行过程中对第二处理器的操作系统进行安全性检测;
其中,第一处理器是在第一处理器固件代码的完整性验证通过后启动的。
14.如权利要求13所述的方法,其特征在于,在启动第二处理器的基本输入输出系统后,用第二处理器的基本输入输出系统验证第二处理器的处理器检测模块;在验证通过后,运行第二处理器的处理器检测模块。
15.如权利要求13或14所述的方法,其特征在于,所述第一处理器为可重构处理器。
16.一种第二处理器,其特征在于,包括:
串行外围设备接口闪存,用于存储第二处理器固件代码;
处理器检测模块,用于在第二处理器的操作系统运行过程中对第二处理器的操作系统进行安全性检测;
中央处理器,用于从串行外围设备接口闪存读取第二处理器固件代码,向第一处理器提供第二处理器固件代码;接收第一处理器在对第二处理器固件代码的完整性验证通过后,发来的第二处理器启动指令;启动第二处理器的基本输入输出系统;运行第二处理器的处理器检测模块,并引导启动第二处理器的操作系统;
其中,第一处理器是在第一处理器固件代码的完整性验证通过后启动的。
17.如权利要求16所述的第二处理器,其特征在于,所述中央处理器具体用于:在启动第二处理器的基本输入输出系统后,用第二处理器的基本输入输出系统验证第二处理器的处理器检测模块;在验证通过后,运行第二处理器的处理器检测模块。
18.如权利要求16或17所述的第二处理器,其特征在于,所述第一处理器为可重构处理器。
19.一种处理器操作系统的引导启动装置,其特征在于,包括:
第二处理器固件提供模块,用于向第一处理器提供第二处理器固件代码;
启动指令接收模块,用于接收第一处理器在对第二处理器固件代码的完整性验证通过后,发来的第二处理器启动指令;
基本输入输出系统启动模块,用于当所述启动指令接收模块接收到所述第二处理器启动指令后,启动第二处理器的基本输入输出系统;
第二处理器安全启动模块,用于运行第二处理器的处理器检测模块,并引导启动第二处理器的操作系统,所述处理器检测模块用于在第二处理器的操作系统运行过程中对第二处理器的操作系统进行安全性检测;
其中,第一处理器是在第一处理器固件代码的完整性验证通过后启动的。
20.一种处理器系统,其特征在于,包括权利要求9至11任一项所述的第一处理器和权利要求16至18任一项所述的第二处理器。
21.一种计算机可读存储介质,其上存储有可执行如权利要求1-8及13-15中任一项所述的方法的指令。
CN201710292953.3A 2017-04-28 2017-04-28 处理器操作系统的引导启动方法、装置及处理器系统 Active CN108363918B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710292953.3A CN108363918B (zh) 2017-04-28 2017-04-28 处理器操作系统的引导启动方法、装置及处理器系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710292953.3A CN108363918B (zh) 2017-04-28 2017-04-28 处理器操作系统的引导启动方法、装置及处理器系统

Publications (2)

Publication Number Publication Date
CN108363918A CN108363918A (zh) 2018-08-03
CN108363918B true CN108363918B (zh) 2022-02-18

Family

ID=63009878

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710292953.3A Active CN108363918B (zh) 2017-04-28 2017-04-28 处理器操作系统的引导启动方法、装置及处理器系统

Country Status (1)

Country Link
CN (1) CN108363918B (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109446813A (zh) * 2018-08-20 2019-03-08 天津七所精密机电技术有限公司 一种主板bios防篡改及自动恢复方法
CN109542518B (zh) * 2018-10-09 2020-12-22 华为技术有限公司 芯片和启动芯片的方法
CN109460262B (zh) * 2018-11-15 2021-12-03 深圳市网心科技有限公司 验证主系统镜像合法性的方法、系统、安卓设备及介质
CN109508529B (zh) * 2018-11-20 2021-10-08 艾体威尔电子技术(北京)有限公司 一种支付终端安全启动校验的实现方法
CN109918139A (zh) * 2019-03-13 2019-06-21 北京经纬恒润科技有限公司 一种网络通信方法及装置
GB2595509A (en) * 2020-05-29 2021-12-01 Continental Automotive Gmbh Computer secure boot method and system
US11797679B2 (en) * 2021-07-28 2023-10-24 Dell Products, L.P. Trust verification system and method for a baseboard management controller (BMC)
CN114647453B (zh) * 2022-03-01 2023-06-09 芯原微电子(成都)有限公司 多处理器的可信动态启动方法、系统、存储介质及终端

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8271976B2 (en) * 2004-06-30 2012-09-18 Microsoft Corporation Systems and methods for initializing multiple virtual processors within a single virtual machine
CN102253844B (zh) * 2010-05-18 2014-05-07 大唐移动通信设备有限公司 一种启动处理器的方法和设备
CN103914658B (zh) * 2013-01-05 2017-02-22 展讯通信(上海)有限公司 终端设备的安全启动方法及终端设备
CN105208352B (zh) * 2015-10-16 2018-07-31 杭州中威电子股份有限公司 一种网络视频安全监控系统及物理隔离方法
CN105204583B (zh) * 2015-10-16 2018-11-02 杭州中威电子股份有限公司 一种基于嵌入式系统构建的物理隔离系统及隔离方法

Also Published As

Publication number Publication date
CN108363918A (zh) 2018-08-03

Similar Documents

Publication Publication Date Title
CN108363918B (zh) 处理器操作系统的引导启动方法、装置及处理器系统
US11194586B2 (en) Secure boot override in a computing device equipped with unified-extensible firmware interface (UEFI)-compliant firmware
CN109669734B (zh) 用于启动设备的方法和装置
US11687645B2 (en) Security control method and computer system
TWI607376B (zh) 用於處理改變依照統一可延伸韌體介面計算裝置中之系統安全資料庫及韌體儲存區請求的系統及方法
CN103329095B (zh) 用编码的信息验证管理程序
US20160142437A1 (en) Method and system for preventing injection-type attacks in a web based operating system
CN105488418B (zh) 一种虚拟化平台服务器的可信启动方法及系统
US20090094585A1 (en) Method and apparatus for analyzing exploit code in nonexecutable file using virtual environment
US10803176B2 (en) Bios security
CN104008342A (zh) 一种通过bios和内核实现安全可信认证的方法
US11379588B2 (en) System validation by hardware root of trust (HRoT) device and system management mode (SMM)
CN106909848A (zh) 一种基于bios扩展的计算机安全增强系统及其方法
CN112805703A (zh) 软件验证装置、软件验证方法以及软件验证程序
CN112181513A (zh) 一种基于硬件板卡的控制操作系统引导的可信度量方法及系统
US10686812B2 (en) Device and method for detecting manipulation of a program code
WO2018176707A1 (zh) 一种嵌入式系统启动方法及装置、计算机存储介质
JP5465738B2 (ja) システム・ファームウェアの更新方法およびコンピュータ
CN109753788B (zh) 内核运行时的完整性校验方法及计算机可读存储介质
CN112861137A (zh) 安全固件
CN112988262B (zh) 一种在目标平台上启动应用程序的方法及装置
CN114329490A (zh) Mcu中软件自启动方法、装置及终端
CN115629820A (zh) 系统安全启动方法、芯片系统、存储介质及电子设备
CN111125710B (zh) 一种信息处理方法、装置、电子设备和存储介质
CN113111343A (zh) 一种控制方法和控制装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant