CN118503975A - 计算装置及其安全引导方法 - Google Patents
计算装置及其安全引导方法 Download PDFInfo
- Publication number
- CN118503975A CN118503975A CN202311552396.6A CN202311552396A CN118503975A CN 118503975 A CN118503975 A CN 118503975A CN 202311552396 A CN202311552396 A CN 202311552396A CN 118503975 A CN118503975 A CN 118503975A
- Authority
- CN
- China
- Prior art keywords
- boot
- computing device
- rom
- stored
- log
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 43
- 238000012795 verification Methods 0.000 claims abstract description 54
- 230000004044 response Effects 0.000 claims description 11
- 230000002618 waking effect Effects 0.000 claims description 5
- 238000010586 diagram Methods 0.000 description 11
- ADTDNFFHPRZSOT-PVFUSPOPSA-N ram-330 Chemical compound C([C@H]1N(CC2)C)C3=CC=C(OC)C(OC)=C3[C@]32[C@@]1(O)CC[C@@H](OC(=O)OCC)C3 ADTDNFFHPRZSOT-PVFUSPOPSA-N 0.000 description 10
- 238000004891 communication Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 5
- 238000012545 processing Methods 0.000 description 3
- 230000000052 comparative effect Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 101100498818 Arabidopsis thaliana DDR4 gene Proteins 0.000 description 1
- 102100035964 Gastrokine-2 Human genes 0.000 description 1
- 101001075215 Homo sapiens Gastrokine-2 Proteins 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000002950 deficient Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/575—Secure boot
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Stored Programmes (AREA)
Abstract
提供了计算装置及其安全引导方法。在从计算装置接收到上电复位信号之后,引导控制器通过从计算装置的只读存储器(ROM)读取引导代码来验证存储在ROM中的引导代码的完整性,并且基于存储在ROM中的引导代码的完整性的验证结果来确定计算装置的引导模式。
Description
本申请基于并且要求于2023年2月14日在韩国知识产权局提交的第10-2023-0019535号韩国专利申请的优先权,所述韩国专利申请的公开通过引用全部包含于此。
技术领域
发明构思涉及引导控制器(boot controller)、包括引导控制器的计算装置、验证在计算装置上运行的引导程序的完整性的方法、以及由计算装置执行的安全引导方法。
背景技术
通常,在计算装置的操作期间,引导时间(boot time)在安全性方面可能是重要的。在引导期间验证执行代码的完整性可能是重要的。许多攻击者可试图在计算装置处于断电状态时修改软件。
安全引导表示用于确保软件(诸如,操作系统(OS)、固件和应用)的完整性的系统引导方法。例如,安全引导可用于通过仅引导未被污染的固件来保护安装在计算装置中的固件。
发明内容
如通过在此描述的实施例实现的发明构思提供用于通过验证计算装置中的引导程序的完整性来增加或确保引导程序的可靠性的安全引导技术。
根据发明构思的一个方面,提供一种引导控制器,所述引导控制器被配置为:从装置接收上电复位信号,通过从设置在装置中的只读存储器(ROM)读取引导代码来生成指示存储在ROM中的引导代码的完整性的验证结果,以及基于指示存储在ROM中的引导代码的完整性的验证结果来确定装置的引导模式。
根据发明构思的另一方面,提供一种计算装置。所述计算装置包括:处理器核,被配置为执行程序代码;ROM,存储被配置为由处理器核用于引导的引导代码;以及引导控制器,被配置为:接收上电复位信号,通过从ROM读取引导代码并验证存储在ROM中的引导代码的完整性来生成校验日志,输出被配置为唤醒处理器核的核复位信号,以及将基于校验日志确定的引导模式值输出到处理器核。
根据发明构思的另一方面,提供一种验证计算装置的引导程序的完整性的方法。所述方法包括:由引导控制器执行操作,所述操作包括:接收上电复位信号;通过基于先前存储在安全存储器中的期望值验证引导程序的完整性来生成校验日志;以及输出核复位信号和基于校验日志确定的引导模式值,核复位信号被配置为唤醒处理器核。
根据发明构思的另一方面,提供一种用于计算装置的安全引导方法。所述安全引导方法包括:在计算装置的引导控制器处接收上电复位信号;由引导控制器通过基于先前存储在安全存储器中的期望值验证引导程序的完整性来生成校验日志;从引导控制器输出核复位信号和基于校验日志确定的引导模式值,核复位信号被配置为唤醒计算装置的处理器核;响应于核复位信号唤醒处理器核;以及由处理器核基于引导模式值来引导计算装置。
附图说明
从以下结合附图的详细描述,将更加清楚地理解实施例,其中:
图1是示出计算装置的示例的框图;
图2是示出根据对照示例的计算装置的引导配置的框图;
图3A和图3B是示出根据实施例的计算装置的框图;
图4是示出根据实施例的引导控制器的框图;
图5是示出根据实施例的安全存储器的配置的框图;
图6是示出根据实施例的由计算装置执行的安全引导方法的流程图;以及
图7是示出根据实施例的通过验证引导程序的完整性来生成校验日志的方法的流程图。
具体实施方式
图1是示出计算装置100的示例的框图。
计算装置100可被实现为个人计算机(PC)、膝上型计算机、移动电话、智能电话、平板PC、个人数字助理(PDA)、企业数字助理(EDA)、数码相机、便携式多媒体播放器(PMP)、便携式导航装置(PND)、MP3播放器、电子书等。
计算装置100可包括处理器核110、只读存储器(ROM)120、随机存取存储器(RAM)130以及存储装置140。
处理器核110可执行存储或驻留在ROM 120或RAM 130中的操作系统(OS)。处理器核110可执行和控制存储在ROM 120或存储装置140中的程序。处理器核110可控制计算装置100的一些或全部操作。尽管图1示出处理器核110是单核类型,但是处理器核110可包括可以以任何方式配置的任何数量和/或任何类型的处理核中的一个(例如,异构多核应用处理器)。术语“和/或”包括相关联的所列条目中的一个或多个的任何组合和所有组合。在各种实施例中,处理器核110可被实现为微控制器的核、嵌入式控制器的核或数字信号处理器的核。当在此使用时,术语“包括”和/或“包含”说明存在陈述的元件,但不排除存在附加元件。
ROM 120可存储引导计算装置100所需的数据。ROM 120可存储将由处理器核110用于引导的引导代码。
RAM 130可被用作计算装置100的主存储器或高速缓存存储器,或者可暂时存储将被提供给存储装置140的数据。例如,RAM 130可包括动态随机存取存储器(DRAM)(诸如,同步DRAM(SDRAM)、双倍数据速率SDRAM(DDR SDRAM)、低功率双倍数据速率SDRAM(LPDDRSDRAM)、图形双倍数据速率SDRAM(GDDR SDRAM)、DDR2 SDRAM、DDR3 SDRAM和DDR4 SDRAM);静态随机存取存储器(SRAM);高速缓存存储器;和/或紧密耦合存储器(TCM)。
存储装置140可以是允许数据的电写入和擦除的非易失性数据存储介质。存储装置140可包括固态驱动器(SSD)、闪存卡、多媒体卡(MMC)、通用串行总线(USB)闪存驱动器、智能媒体卡、紧凑型闪存、记忆棒、安全数字(SD)卡、通用闪存存储装置(UFS)和/或计算快速链路(CXL)。
存储装置140可存储各种类型的数字数据。例如,存储装置140可存储用于计算装置100的基本操作的OS、将要在OS上运行并且与各种功能对应的应用、以及将由应用处理或执行的各种类型的内容(诸如,图像和音频文件)。当未向计算装置100施加电力时,这些类型的数据存储在存储装置140中。当计算装置100引导时,OS被加载到RAM 130中并且被操作,并且应用和内容被加载到RAM 130中并且根据各种事件来执行。
总线150可将处理器核110、ROM 120、RAM 130和存储装置140彼此连接。总线150可包括能够实现计算装置100的各种组件之间的交互的通信基础设施。例如,总线150可在计算装置100的组件之间(例如,在处理器核110和RAM 130之间)传送数据。总线150可包括在计算装置100的组件之间的无线通信介质和/或有线通信介质,并且可包括并行、串行或其他拓扑布置。
图2是示出根据对照示例的计算装置100的引导配置的框图。
计算装置100可引导。当电力被施加到计算装置100时,计算装置100可执行引导代码以配置计算装置100的资源。一旦资源和组件被配置,OS就可被引导代码加载和执行。此后,计算装置100的控制可被传送到OS,OS进行操作以实现计算装置100的功能或应用。
在本公开中,术语“引导(booting)”可表示在计算装置上电或复位时读取存储在计算机可读存储介质中的OS并且使得计算装置准备执行功能的操作。
引导可通过诸如向计算装置100供电或复位计算装置100的事件而被启动。当发生诸如上电或复位的事件时,计算装置100可生成复位信号(在下文中,称为上电复位(POR)信号)。
参照图1和图2,在引导过程期间,可在计算装置100的硬件(HW)和软件(SW)中执行引导代码。HW可包括ROM 120,并且二进制的引导代码可在ROM 120的制造期间被烧录到ROM120中或被永久地写入ROM 120。存储引导代码的ROM(在下文中,称为引导ROM 125)被执行以启动计算装置100的引导过程。通常,引导ROM 125被烧录到ROM 120中并且是不可修改的,并且引导ROM 125的执行可保证可靠的引导过程。这里,引导ROM 125可起到“信任根(root of trust)”的作用。
当电力被施加到计算装置100时,处理器核110可接收POR信号并且从引导ROM 125读取引导代码。例如,处理器核110可控制计算装置100通过总线150将引导ROM 125的引导代码加载到RAM 130中。当在引导序列期间执行引导ROM 125时,较高级别的引导加载程序被加载到SW中,并且SW还加载另外的较高级别的引导加载程序。以这种方式,引导序列继续直到OS240被加载。
当引导ROM 125被执行时,第一引导加载程序210从存储装置140被加载。一旦对资源的控制从引导ROM 125传递到第一引导加载程序210,就执行第一引导加载程序210以配置计算装置100的资源,并且第二引导加载程序220从存储装置140被加载。术语“第一”、“第二”等在此可仅用于将一个组件或元件与另一个组件或元件区分开。引导序列可通过一个或多个中间引导加载程序来执行。引导序列可继续,直到第N引导加载程序230被加载和执行。为了引导过程的可靠性,每一级引导代码的认证或每个引导加载程序的认证可由先前一级引导加载程序验证。
最后,当第N引导加载程序230被执行并且OS240从存储装置140被加载时,引导序列可结束。
以这种方式,计算装置100可根据功能和目的以多个步骤引导软件。
通常,在计算装置100的操作期间,引导时间在安全性方面可能是重要的。许多攻击者可试图在计算装置处于断电状态时修改软件。因此,可在引导期间验证引导执行代码的完整性。
可考虑以下项目(非穷举列表)来验证引导执行代码的完整性。例如,可能需要验证存储在ROM中的引导代码的完整性。因为存储引导代码的ROM是只读类型的,所以引导代码被篡改的风险可能相对低。然而,在一些情况下,引导代码可能包含错误,从而可对引导代码打补丁以纠正错误。因此,可验证存储在ROM中的引导代码的完整性,以检测引导代码中的错误或检测在引导代码打补丁过程期间插入到引导代码中的恶意代码。此外,因为操作处理器核110的固件处于由于攻击(诸如,非法侵入)而被篡改的风险中,所以处理器核110可不参与验证引导程序的完整性。
安全引导表示用于确保软件(诸如,OS、固件和应用)的完整性的系统引导方法。可通过经由安全引导仅引导未被污染的固件来保护安装在计算装置中的固件。安全引导可表示当固件以非预期形式被修改时拒绝引导的技术。
现在将描述根据一些实施例的计算装置300和安全引导方法。
图3A和图3B是示出根据实施例的计算装置300a、300b(统称为计算装置300)的框图。
根据实施例,计算装置300可包括处理器核310、ROM 320、TCM 325、RAM 330、存储装置340、引导控制器360和安全存储器370。
除TCM 325到处理器核310的连接以外,图3A和图3B中所示的计算装置300的配置是相同的。图3A示出TCM 325通过总线350连接到处理器核310,并且图3B示出TCM 325直接连接到处理器核310,而不涉及总线350。
处理器核310可控制计算装置300的一些或全部操作。处理器核310可执行存储或驻留在ROM 320、RAM 330或存储装置340中的操作程序。处理器核310可执行存储在存储器中的程序代码或者一个或多个指令。处理器核310可包括执行算术运算、逻辑运算、输入/输出操作以及信号处理的硬件组件。例如,处理器核310可包括中央处理器、微处理器、图形处理器、应用处理器、专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理装置(DSPD)、可编程逻辑器件(PLD)和/或现场可编程门阵列(FPGA)。然而,处理器核310不限于此。
用于引导计算装置300的数据可被存储在ROM 320中。也即,由处理器核310使用以用于引导的引导代码可被存储在ROM 320中。当存储在ROM 320中的引导代码通过处理器核310被执行时,引导加载程序可被执行,并且当引导加载程序被执行时,OS可被操作。以这种方式,可引导计算装置300。
TCM 325是存储用于高速数据操作的频繁使用的代码的存储器。存储在ROM 320中的引导代码可被复制和存储在TCM 325中。如图3A中所示,在一个实施例中,TCM 325可通过总线350连接到处理器核310。如图3B中所示,在另一实施例中,TCM 325可直接连接到处理器核310,而不涉及总线350。
RAM 330可用作计算装置300的主存储器或高速缓存存储器,或者可暂时存储将被提供给存储装置340的数据。
存储装置340可存储各种类型的数字数据。例如,存储装置340可存储用于计算装置300的基本操作的OS、要在OS上运行并且与各种功能对应的应用、以及将由应用处理或执行的各种类型的内容(诸如,图像和音频文件)。当计算装置300未被施加电力时这些类型的数据可存储在存储装置340中。当计算装置300引导时,OS可被加载到RAM 330中并且被操作,并且应用和内容可被加载到RAM 330中并且根据各种事件来执行。
引导控制器360可验证在计算装置300上执行的引导程序的完整性。引导程序也可被称为引导代码、引导加载程序等。引导控制器360可从安全存储器370读取完整性校验信息以验证引导程序的完整性。
当在计算装置300中生成POR信号时,引导控制器360通过或响应于接收到POR信号被唤醒。如在此使用的,术语“唤醒”可表示退出挂起或睡眠状态,或者以其他方式返回到活动计算状态。引导控制器360可通过验证引导程序的完整性来生成校验日志。引导控制器360可基于校验日志来确定计算装置300的引导模式。引导控制器360可向处理器核310输出引导模式值和用于唤醒处理器核310的核复位信号。当引导程序的完整性被确认时,校验日志可具有值1,并且当引导程序是错误的或被篡改时,校验日志可具有值0。当校验日志具有值1时,引导模式可被确定为通过(PASS)模式。当校验日志具有值0时,引导模式可被确定为失败(FAIL)模式。
处理器核310通过或响应于从引导控制器360接收到核复位信号而唤醒。操作处理器核310的固件处于由于攻击(诸如,非法侵入)而被篡改的风险中。因此,处理器核310可不参与验证引导程序的完整性。在一个实施例中,处理器核310通过接收从引导控制器360输出的核复位信号而唤醒,而不是当POR信号在计算装置300中生成时立即唤醒。因为引导控制器360在验证引导程序的完整性之后输出核复位信号,所以处理器核310不参与确定引导程序的完整性。当处理器核310接收到通过模式时,处理器核310可通过参照图2描述的引导过程来引导计算装置300。当处理器核310接收到失败模式时,处理器核310可不引导计算装置300。
安全存储器370可包括非易失性存储器(NVM)(诸如,闪存、ROM 320或一次性可编程(OTP)存储器)。安全存储器370可预先存储用于验证引导程序的完整性的完整性校验信息。用于验证引导程序的完整性的完整性校验信息可存储在安全存储器370的范围中。
总线350可将处理器核310、TCM 325、ROM 320、RAM 330、存储装置340和引导控制器360彼此连接。总线350可包括能够实现计算装置300的各种组件之间的交互的通信基础设施。例如,总线350可在计算装置300的组件之间传送数据。总线350可包括在计算装置300的组件之间的无线通信介质和/或有线通信介质,并且可包括并行、串行或其他拓扑布置。
图4是示出根据实施例的引导控制器460的框图。
引导控制器460包括完整性校验模块461、控制模块462和直接存储器访问(DMA)控制器463。
完整性校验模块461可从安全存储器470读取完整性校验信息。完整性校验模块461可基于完整性校验信息来验证引导程序的完整性。引导程序也可被称为引导代码、引导加载程序等。
完整性校验模块461可验证存储在ROM中的引导代码的完整性。因为存储引导代码的ROM是只读类型的,所以引导代码被篡改的风险相对低。然而,引导代码有时可能包含错误。在一些情况下,可对引导代码打补丁以纠正这样的错误。因此,可验证存储在ROM中的引导代码的完整性,以检测引导代码中的错误或检测在引导代码打补丁过程期间插入到引导代码中的恶意代码。
完整性校验模块461可通过使用哈希(hash)算法来生成引导代码的哈希值(或摘要,digest)。哈希值是根据原始数据(即,引导代码)以一对一匹配方式确定的唯一值。完整性校验模块461具有用于将原始引导代码转换成特定的唯一哈希值的算法。哈希算法被设计成使得第三方不可从哈希值恢复原始引导代码并且不可从相同的输出找到不同的数据。
完整性校验模块461可通过将存储在安全存储器470中的第一期望值与引导代码的哈希值进行比较来验证存储在ROM中的引导代码的完整性。当存储在安全存储器470中的第一期望值和引导代码的哈希值彼此匹配时,完整性校验模块461确定存储在ROM中的引导代码是完整的。当存储在安全存储器470中的第一期望值和引导代码的哈希值彼此不匹配时,完整性校验模块461确定存储在ROM中的引导代码是有缺陷的。第一期望值是针对存储在ROM中的引导代码预先计算的哈希值。
完整性校验模块461可验证存储在TCM中的引导代码的完整性。TCM是用于存储用于高速数据操作的频繁使用的代码的存储器,并且存储在ROM中的引导代码可被复制并存储在TCM中。在一个实施例中,可通过复制存储在ROM中的引导代码的一部分而不是复制存储在ROM中的全部引导代码来将数据存储在TCM中。在另一个实施例中,TCM可存储包括存储在ROM中的全部引导代码的数据。完整性校验模块461可通过将存储在安全存储器470中的第二期望值与存储在TCM中的代码的哈希值进行比较来验证存储在TCM中的代码的完整性。第二期望值是针对存储在ROM中的引导代码的被复制到TCM的范围预先计算的哈希值。
完整性校验模块461可验证暂时存储在RAM中的引导加载程序的完整性。完整性校验模块461可将存储在安全存储器470中的第三期望值与暂时存储在RAM中的引导加载程序的哈希值进行比较,来验证存储在RAM中的引导加载程序的完整性。第三期望值是针对存储在RAM中的引导加载程序预先存储的哈希值。
控制模块462可生成并存储针对从完整性校验模块461接收的完整性验证结果的校验日志。控制模块462可生成针对存储在ROM中的引导代码的完整性的验证结果的第一校验日志。控制模块462可生成针对存储在TCM中的代码的完整性的验证结果的第二校验日志。控制模块462可生成针对暂时存储在RAM中的引导加载程序的完整性的验证结果的第三校验日志。第一校验日志至第三校验日志中的每个可具有值0或1。例如,当完整性被确认时,第一校验日志至第三校验日志可具有值1,并且当完整性中的缺陷被确认时,第一校验日志至第三校验日志可具有值0。
控制模块462可基于第一校验日志至第三校验日志来确定计算装置300的引导模式。例如,当第一校验日志至第三校验日志中的任何一个具有值0时,控制模块462可将引导模式确定为失败模式。当第一校验日志至第三校验日志中的每个具有值1时,控制模块462可将引导模式确定为通过模式。然而,这仅是示例,并且用于确定计算装置300的引导模式的条件可被不同地改变。例如,仅当第一校验日志具有值0时,可将引导模式确定为失败模式,或者仅当第一校验日志至第三校验日志中的任何一个具有值0时,可将引导模式确定为失败模式。
当从引导控制器460的控制模块462接收到通过模式时,计算装置300的处理器核310可通过参照图2描述的引导过程来引导计算装置300。当接收或确定失败模式时,处理器核310可不引导计算装置300。
DMA控制器463可通过直接访问ROM 320、TCM 325、RAM 330和存储装置340来将引导程序发送到完整性校验模块461。DMA控制器463可在不涉及处理器核310的情况下将存储在ROM 320、TCM 325、RAM 330和存储装置340中的数据发送到完整性校验模块461。因此,引导控制器460可在不涉及处理器核310的情况下验证引导程序的完整性。
图5是示出根据实施例的安全存储器570的配置的框图。
安全存储器570可包括非易失性存储器(诸如,闪存、ROM或OTP存储器)。安全存储器570可预先存储用于验证引导程序的完整性的完整性校验信息。存储在安全存储器570中的完整性校验信息可被发送到引导控制器。用于验证引导程序的完整性的完整性校验信息可存储在安全存储器570的范围中。
关于第一期望值的信息可被存储在第一范围571中。例如,存储在ROM中的引导代码的地址和大小以及第一期望值可被存储在第一范围571中。第一期望值是先前针对存储在ROM中的引导代码计算的哈希值(或摘要)。
关于第二期望值的信息可被存储在第二范围572中。例如,第二范围572可存储从ROM复制到TCM的引导代码范围的地址、从ROM复制到TCM的引导代码范围的大小以及第二期望值。第二期望值是先前针对从ROM复制到TCM的引导代码范围计算的哈希值(或摘要)。
关于第三期望值的信息可被存储在第三范围573中。例如,存储在RAM中的引导加载程序的地址、引导加载程序的大小和第三期望值可被存储在第三范围573中。第三期望值是先前针对引导加载程序计算的哈希值(或摘要)。
图6是示出根据实施例的由计算装置执行的安全引导方法的流程图。图7是示出根据实施例的通过验证引导程序的完整性来生成校验日志的方法的流程图。
参照图3A和图3B以及图5至图7,根据实施例,由计算装置执行的安全引导方法可包括:接收POR信号(操作610);通过验证引导程序的完整性来生成校验日志(操作620);输出用于唤醒处理器核的核复位信号并且输出基于校验日志确定的引导模式值(操作630);允许处理器核响应于核复位信号(而不是响应于POR信号)而唤醒(操作640);以及由处理器核基于引导模式值来引导计算装置(操作650),即,依赖于引导模式值来选择性地引导计算装置。
POR信号可通过诸如计算装置300上电或复位的事件而被生成。当在计算装置300中生成POR信号时,引导控制器360可通过或响应于接收到POR信号而唤醒(操作610)。
引导控制器360可通过从安全存储器370读取完整性校验信息并验证在计算装置300上运行的引导程序的完整性来生成校验日志(操作620)。
生成校验日志的操作620可包括:通过验证存储在ROM 320中的引导代码的完整性(即,通过将先前存储在安全存储器370中的第一期望值与存储在ROM 320中的引导代码的哈希值进行比较)来生成第一校验日志(操作710);通过验证存储在TCM 325中的代码的完整性(即,通过将先前存储在安全存储器370中的第二期望值与存储在TCM 325中的代码的哈希值进行比较)来生成第二校验日志(操作720);通过验证存储在RAM 330中的引导加载程序的完整性(即,通过将先前存储在安全存储器370中的第三期望值与存储在RAM 330中的引导加载程序的哈希值进行比较)来生成第三校验日志(操作730)。
引导控制器360可基于校验日志来确定计算装置300的引导模式,并且可向处理器核310输出引导模式值和用于唤醒处理器核310的核复位信号(操作630)。
处理器核310可通过或响应于从引导控制器360接收到核复位信号来唤醒(操作640),而不是响应于接收到POR信号。
处理器核310可基于由引导控制器360输出的引导模式值来选择性地引导计算装置300(操作650)。当处理器核310接收到通过模式时,处理器核310可通过参照图2描述的引导过程来引导计算装置300。当处理器核310接收到失败模式时,处理器核310可不引导计算装置300。
如上所述,各种实施例提供用于通过验证计算装置中的引导程序的完整性来增加或保证引导程序的可靠性的安全引导技术。此外,可验证存储在ROM中的引导代码的完整性。另外,因为在不涉及处理器核的情况下(例如,在唤醒处理器核之前)确定引导程序的完整性,使得处理器核被屏蔽以不执行可能已经被攻击者修改的引导代码,所以通过校验引导程序的完整性而获得的结果可以是可靠的。
虽然已经参照发明构思的实施例具体示出和描述了发明构思,但是将理解,在不脱离所附权利要求的范围的情况下,可在其中进行形式和细节上的各种改变。
Claims (20)
1.一种计算装置,包括:
引导控制器,被配置为:接收上电复位信号,通过响应于上电复位信号从只读存储器ROM读取引导代码来生成指示存储在ROM中的引导代码的完整性的验证结果,以及基于指示存储在ROM中的引导代码的完整性的验证结果来确定引导模式。
2.根据权利要求1所述的计算装置,其中,引导控制器包括:完整性校验模块,被配置为:通过将先前存储在安全存储器中的引导代码的期望值与存储在ROM中的引导代码的哈希值进行比较来验证存储在ROM中的引导代码的完整性。
3.根据权利要求2所述的计算装置,其中,安全存储器包括非易失性存储器。
4.根据权利要求1所述的计算装置,其中,引导控制器包括:直接存储器访问DMA控制器,被配置为从ROM读取引导代码。
5.根据权利要求1至权利要求3中的任意一项所述的计算装置,还包括:
处理器核,被配置为执行程序代码;以及
ROM,存储引导代码;
其中,处理器核被配置为使用引导代码来引导所述计算装置;
其中,响应于接收到上电复位信号,引导控制器被配置为:通过从ROM读取引导代码并验证存储在ROM中的引导代码的完整性来生成校验日志,输出被配置为唤醒处理器核的核复位信号,以及将基于校验日志确定的引导模式值输出到处理器核。
6.根据权利要求5所述的计算装置,其中,校验日志包括第一校验日志,其中,引导控制器包括:完整性校验模块,被配置为通过将先前存储在安全存储器中的第一期望值与存储在ROM中的引导代码的哈希值进行比较来生成第一校验日志。
7.根据权利要求6所述的计算装置,其中,安全存储器被配置为:将引导代码的地址、大小和哈希值存储在安全存储器的第一范围中。
8.根据权利要求5所述的计算装置,其中,引导控制器包括:直接存储器访问DMA控制器,被配置为从ROM读取引导代码。
9.根据权利要求5所述的计算装置,其中,校验日志包括第二校验日志,并且所述计算装置还包括:
紧密耦合存储器TCM,被配置为存储在ROM中存储的引导代码的至少一部分;
其中,引导控制器包括:完整性校验模块,被配置为通过将先前存储在安全存储器中的第二期望值与存储在TCM中的代码的哈希值进行比较来生成第二校验日志。
10.根据权利要求9所述的计算装置,其中,安全存储器被配置为:在安全存储器的第二范围中存储从ROM复制到TCM的引导代码范围的地址、从ROM复制到TCM的引导代码范围的大小、以及从ROM复制到TCM的引导代码范围的哈希值。
11.根据权利要求5所述的计算装置,其中,校验日志包括第三校验日志,并且所述计算装置还包括:
随机存取存储器RAM,被配置为暂时存储引导加载程序,
其中,引导控制器包括:完整性校验模块,被配置为通过将先前存储在安全存储器中的第三期望值与暂时存储在RAM中的引导加载程序的哈希值进行比较来生成第三校验日志。
12.根据权利要求6所述的计算装置,其中,安全存储器包括非易失性存储器。
13.一种验证计算装置的引导程序的完整性的方法,所述方法包括:
由引导控制器执行操作,所述操作包括:
接收上电复位信号;
通过基于先前存储在安全存储器中的期望值验证引导程序的完整性来生成校验日志;以及
输出核复位信号和基于校验日志确定的引导模式值,核复位信号被配置为唤醒处理器核。
14.根据权利要求13所述的方法,其中,期望值包括第一期望值,校验日志包括第一校验日志,并且生成校验日志的操作包括:
通过将先前存储在安全存储器中的第一期望值与存储在只读存储器ROM中的引导程序的引导代码的哈希值进行比较来生成第一校验日志。
15.根据权利要求14所述的方法,其中,期望值包括第二期望值,校验日志包括第二校验日志,并且生成校验日志的操作包括:
通过将先前存储在安全存储器中的第二期望值与存储在紧密耦合存储器TCM中的代码的哈希值进行比较来生成第二校验日志,
其中,存储在TCM中的代码包括:存储在ROM中的引导代码的被复制到TCM的至少一部分。
16.根据权利要求13所述的方法,其中,期望值包括第三期望值,校验日志包括第三校验日志,并且生成校验日志的操作包括:
通过将先前存储在安全存储器中的第三期望值与暂时存储在随机存取存储器RAM中的引导程序的引导加载程序的哈希值进行比较来生成第三校验日志。
17.一种用于计算装置的安全引导方法,所述安全引导方法包括:
在计算装置的引导控制器处接收上电复位信号;
由引导控制器通过基于先前存储在安全存储器中的期望值验证引导程序的完整性来生成校验日志;
从引导控制器输出核复位信号和基于校验日志确定的引导模式值,核复位信号被配置为唤醒计算装置的处理器核;
响应于核复位信号而唤醒处理器核;以及
由处理器核基于引导模式值来引导计算装置。
18.根据权利要求17所述的安全引导方法,其中,期望值包括第一期望值,校验日志包括第一校验日志,并且生成校验日志的步骤包括:
通过将先前存储在安全存储器中的第一期望值与存储在只读存储器ROM中的引导程序的引导代码的哈希值进行比较来生成第一校验日志。
19.根据权利要求18所述的安全引导方法,其中,期望值包括第二期望值,校验日志包括第二校验日志,并且生成校验日志的步骤包括:
通过将先前存储在安全存储器中的第二期望值与存储在紧密耦合存储器TCM中的代码的哈希值进行比较来生成第二校验日志,以及
其中,存储在TCM中的代码包括:存储在ROM中的引导代码的被复制到TCM的至少一部分。
20.根据权利要求17所述的安全引导方法,其中,期望值包括第三期望值,校验日志包括第三校验日志,并且生成校验日志的步骤包括:
通过将先前存储在安全存储器中的第三期望值与暂时存储在随机存取存储器RAM中的引导程序的引导加载程序的哈希值进行比较来生成第三校验日志。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020230019535A KR20240126710A (ko) | 2023-02-14 | 2023-02-14 | 부팅 컨트롤러 및 이를 포함하는 컴퓨팅 디바이스 |
KR10-2023-0019535 | 2023-02-14 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN118503975A true CN118503975A (zh) | 2024-08-16 |
Family
ID=92215783
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311552396.6A Pending CN118503975A (zh) | 2023-02-14 | 2023-11-20 | 计算装置及其安全引导方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20240273210A1 (zh) |
KR (1) | KR20240126710A (zh) |
CN (1) | CN118503975A (zh) |
-
2023
- 2023-02-14 KR KR1020230019535A patent/KR20240126710A/ko unknown
- 2023-11-20 CN CN202311552396.6A patent/CN118503975A/zh active Pending
- 2023-11-21 US US18/515,824 patent/US20240273210A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
US20240273210A1 (en) | 2024-08-15 |
KR20240126710A (ko) | 2024-08-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103718165B (zh) | Bios闪存攻击保护和通知 | |
US7908466B2 (en) | Method and apparatus for booting a microprocessor system using boot code stored on a serial flash memory array having a random-access interface | |
US11755315B2 (en) | Boot ROM update method and boot-up method of embedded system | |
TWI514408B (zh) | 於裝置開機期間處置來自非揮發性記憶體之錯誤 | |
TWI768544B (zh) | 電腦系統及其安全管理方法以及電腦軟體產品 | |
CN104981778A (zh) | 修补只读存储器的引导代码 | |
US12001689B2 (en) | Transparently attached flash memory security | |
US8751817B2 (en) | Data processing apparatus and validity verification method | |
US20100131694A1 (en) | Secure Boot ROM Emulation | |
CN107015878B (zh) | 用于计算机的系统修复方法及系统 | |
US10698696B2 (en) | Chipset fuse programming system | |
CN113094107B (zh) | 数据保护方法、装置、设备及计算机存储介质 | |
CN111857882B (zh) | 可扩展的ssd开卡固件加载方法、装置、计算机设备及存储介质 | |
TWI743480B (zh) | 電腦系統與其開機方法 | |
CN118503975A (zh) | 计算装置及其安全引导方法 | |
US10210334B2 (en) | Systems and methods for software integrity assurance via validation using build-time integrity windows | |
KR20230082388A (ko) | 차량 제어기의 부트로더 검증 장치 및 그 방법 | |
CN111695164B (zh) | 电子设备及其控制方法 | |
US20230094673A1 (en) | Information handling systems and related methods to prevent tampering and verify the integrity of non-volatile data stored within non-volatile memory | |
US20240005004A1 (en) | Method and system for patching a boot process | |
US20240111543A1 (en) | Concurrent execution and copy of updated basic input/output system instructions | |
JP6204555B1 (ja) | 不揮発性メモリに格納した変数を保護する方法、システム・ファームウェアおよびコンピュータ | |
TW201430698A (zh) | 具高可靠性的博奕應用系統執行方法及其電子裝置 | |
CN112817619A (zh) | 电脑系统及其安全管理方法以及电脑软件产品 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |