在一开盖窜改事件中使一安全启动失败的计算机系统
文献发布时间:2024-01-17 01:15:20
技术领域
本发明涉及一种计算机系统,尤其指一种在一开盖窜改事件(case tamperingevent)中使一安全启动(secure boot)失败的计算机系统。
背景技术
当包覆一计算机系统的外壳被侦测到窜改(tamper)时,计算机系统的开盖窜改的机制被应用,以保护计算机系统的数据不被窜改。然而,当开盖窜改事件发生时,计算机系统如何使一安全启动失败仍然未知。因此,在计算机系统的开盖窜改事件中使安全启动失败为亟待解决的问题。
发明内容
因此,本发明提供一种在计算机系统的开盖窜改事件中使安全启动失败的方法,以解决上述问题。
本发明公开一种用在一开盖窜改事件中使一安全启动失败的计算机系统,包含有一信赖平台模块(trusted platform module,TPM),用来产生用于所述计算机系统的一安全启动的复数个随机字节(random byte);一启动加载器(bootloader),用来在所述计算机系统的至少一硬件中,存储信息,以及执行所述安全启动,其中所述信息包含有所述复数个随机字节,以及所述信赖平台模块被包含在所述启动加载器中;一操作系统(operatingsystem,OS),用来执行所述安全启动;以及至少一侦测器(sensor),用来侦测所述计算机系统中的一开盖窜改事件,以及若在所述计算机系统中,所述开盖窜改事件发生,则传送用来触发所述复数个随机字节的一删除(deletion)的一信号;所述启动加载器或所述操作系统删除被存储在所述至少一硬件中的所述复数个随机字节,使所述安全启动失败,以响应所述信号。
本发明还公开一种在计算机系统的开盖窜改事件中使安全启动失败的方法,包含有执行所述计算机系统的一安全启动;产生用于所述安全启动的复数个随机字节;在所述计算机系统的至少一硬件中,存储信息,其中所述信息包含有所述复数个随机字节;在所述计算机系统中,侦测一开盖窜改事件;若所述开盖窜改事件发生,传送用来触发所述复数个随机字节的一删除的一信号;以及删除被存储在所述至少一硬件中的所述复数个随机字节,使所述安全启动失败,以响应所述信号。
附图说明
图1为本发明实施例一信赖平台模块的示意图。
图2为本发明实施例一计算机系统的示意图。
图3为本发明实施例一流程的流程图。
附图标记说明如下:
10,202:信赖平台模块
100:密码处理器
102:随机字节产生器
104:密钥产生器
106:哈希产生器
108:加密-解密-签章引擎
110:存储装置
112:平台配置缓存器
20:计算机系统
200:启动加载器
210:操作系统
220:至少一侦测器
30:流程
300,302,304,306,308,310,312,314:步骤
具体实施方式
图1为本发明实施例的一信赖平台模块(trusted platform module,TPM)10的示意图。信赖平台模块10为提升一计算机系统的安全(security)的一被动硬件元件(passivehardware element),以及被用来维持计算机系统顺利地运作。如图1所示,信赖平台模块10包含有一密码处理器(cryptographic processor)100及一存储装置110。密码处理器100包含有一随机字节产生器(random byte generator)102、一密钥产生器(key generator)104、一哈希产生器(hash generator)106及一加密-解密-签章引擎(encryption-decryption-signature engine)108。随机字节产生器102可产生用于一安全启动(secureboot)的随机字节(random byte)。随机字节可包含有数字、字母或标点符号。密钥产生器104可产生用于加密(encryption)的公开密钥(public key)及用于解密(decryption)的私有密钥(private key)。根据被随机字节产生器102产生的随机字节,哈希产生器106可产生哈希(hash)。加密-解密-签章引擎108可管理用于签署(signing)及验证(verification)的公开密钥及私有密钥。存储装置110可被用来存储一背书密钥(endorsement key,EK)、一存储根密钥(storage root key,SRK)、确认识别密钥(attestation identity keys,AIK)及存储密钥(storage keys)。此外,存储装置110包含有平台配置缓存器(platformconfiguration registers,PCR)112。平台配置缓存器112存储被随机字节产生器102产生的随机字节,以及根据一密码哈希函数(cryptographic hash function)及随机字节,产生哈希。即使随机字节(即平台配置缓存器112的输入)相似,根据密码哈希函数而产生的哈希截然不同。
根据不同的哈希,平台配置缓存器112可初始化信赖平台模块10的不同函数,以及可建立用于信赖平台模块10的一平台配置缓存器方针(PCR policy)。在一启动流程(bootprocess)中,信赖平台模块10可在平台配置缓存器112中存储信息(例如中央处理单元识别(central processing unit identity,CPU ID)、介质访问控制地址(media accesscontrol address,MAC address)、序列编号(serial number)、产品识别(product ID)、…等信息)。根据上述信息,平台配置缓存器112产生哈希。当哈希正确(即被平台配置缓存器112产生的哈希与哈希产生器106产生的哈希相同,以及根据哈希,信赖平台模块10可运作)时,被存储在平台配置缓存器112中的随机字节可被取得。
图2为本发明实施例一计算机系统20的示意图。计算机系统20包含有一启动加载器(bootloader)200、一操作系统(operating system,OS)210及至少一侦测器(sensor)220。启动加载器200也可被称为一基本输入/输出系统(basic input/output system,BIOS)。在计算机系统20的通电阶段(power-on stage)中,启动加载器200执行硬件初始化(hardware initialization)。启动加载器200包含有一信赖平台模块202。信赖平台模块202可为前述的信赖平台模块10,在此不赘述。操作系统210管理计算机系统20的硬件资源及软件资源,以及提供用于计算机系统20的服务。操作系统210可为一Windows操作系统(Windows OS)或一Linux操作系统(Linux OS),但不限于此。启动加载器200及操作系统210可应用非对称/对称密钥(asymmetric/symmetric keys)到计算机系统20。该非对称/对称密钥可用于加密(例如使用公开密钥)及解密(例如使用私有密钥)。至少一侦测器220可被设定用来侦测事件(例如开盖窜改事件(case tampering event)),以及通知计算机系统20的启动加载器200及/或操作系统210。
图3为本发明实施例一流程30的流程图,用于计算机系统20中,用来侦测一开盖窜改事件。流程30可被编译成程序代码,其包含以下步骤:
步骤300:开始。
步骤302:启动加载器200及操作系统210执行计算机系统20的一安全启动。
步骤304:信赖平台模块202产生用于该安全启动的复数个随机字节。
步骤306:在该计算机系统的至少一硬件中,启动加载器200存储信息,其中该信息包含有该复数个随机字节。
步骤308:在计算机系统20中,至少一侦测器220侦测一开盖窜改事件。
步骤310:若该开盖窜改事件发生,则至少一侦测器220传送用来触发该复数个随机字节的一删除(deletion)的一信号。
步骤312:启动加载器200或操作系统210删除被存储在该至少一硬件中的该复数个随机字节,使该安全启动失败,以响应该信号。
步骤314:结束。
根据流程30,当计算机系统20的安全启动被执行时,用于安全启动的复数个随机字节被产生,以及被包含在所述信息中。在计算机系统20的至少一硬件中,启动加载器200存储所述信息。在计算机系统20中,至少一侦测器220侦测开盖窜改事件。若在计算机系统20中,开盖窜改事件发生,至少一侦测器220传送信号,所述信号用来触发启动加载器200或操作系统210删除被存储在至少一硬件的复数个随机字节。当从至少一侦测器220接收所述信号时,启动加载器200或操作系统210删除被存储在至少一硬件中的复数个随机字节,以及对应地使安全启动失败(例如未完成)。换言之,当开盖窜改事件发生时,为了计算机系统20的安全,计算机系统20的安全启动被停止。
需注意的是,当安全启动当下是被启动加载器200执行时,则复数个随机字节被启动加载器200删除。另一方面,当安全启动当下是被操作系统210执行时,则复数个随机字节被操作系统210删除。
需注意的是,被信赖平台模块202产生的复数个随机字节不被计算机系统20的外部用户知道(例如获得)。除此之外,即使是计算机系统20的内部开发者也不会知道(例如获得)复数个随机字节。换言之,复数个随机字节不会被计算机系统20的外部用户获得,也不会被计算机系统20的内部开发者获得。此机制可防止计算机系统20被窜改。此外,当开盖窜改事件发生时,启动加载器200或操作系统210可仅删除被存储在至少一硬件中的复数个随机字节。复数个随机字节以外的信息未被涉及,以及可被保留。
在一实施例中,根据被存储在至少一硬件中的信息,启动加载器200及操作系统210执行安全启动。也就是说,若在执行安全启动期间,开盖窜改事件未发生,计算机系统20如一般安全启动完成该安全启动。
在一实施例中,若开盖窜改事件发生在操作系统210,操作系统210删除被存储在至少一硬件中的复数个随机字节。接着,操作系统210重新启动(reboot)计算机系统20,以及执行(例如强制进入)计算机系统20的安全启动。也就是说,当安全启动当下是被操作系统210执行时,若开盖窜改事件发生,则复数个随机字节被操作系统210删除。此外,即使安全启动已被完成,开盖窜改事件仍可能发生。在此情形下,当接收指示开盖窜改事件的信号时,操作系统210也可删除复数个随机字节。
在一实施例中,计算机系统20的至少一硬件包含有一平台配置缓存器。平台配置缓存器被包含在信赖平台模块202中。根据复数个随机字节,平台配置缓存器产生复数个哈希。在一实施例中,若复数个哈希正确,则计算机系统20的安全启动被完成。也就是说,若复数个随机字节未被删除(即开盖窜改事件未发生),则表示复数个哈希为正确的(即信赖平台模块202可根据复数个哈希来运作)。因此,信赖平台模块202可运作,使得安全启动可被完成。需注意的是,在安全启动被完成之后,操作系统210可提供服务给计算机系统20的一用户。在一实施例中,若所述复数个哈希不正确,则计算机系统20的安全启动失败。也就是说,若复数个随机字节被删除(例如已被窜改),表示复数个哈希为不正确的(即信赖平台模块202无法根据复数个哈希来运作)。因此,信赖平台模块202无法运作,以及计算机系统20无法运作到操作系统210,导致安全启动失败。
在一实施例中,在使安全启动失败后,根据计算机系统20的一密码(password)及复数个哈希,启动加载器200获得用于该安全启动的该复数个随机字节。在至少一硬件中,启动加载器200存储复数个随机字节,以及根据复数个随机字节,恢复安全启动。也就是说,为了恢复因开盖窜改事件而失败的安全启动,若被平台配置缓存器产生的复数个哈希正确,则从信赖平台模块202,复数个随机字节可被获得。计算机系统20辨识所述密码(例如一基本输入/输出系统密码(BIOS password))是从启动加载器200被传送到被包含在信赖平台模块202中的平台配置缓存器,以及允许启动加载器200从信赖平台模块202获得用于安全启动的复数个字节。若计算机系统20辨识所述密码不是从启动加载器200被传送(例如从操作系统210被传送),或者若所述密码对平台配置缓存器不正确,则计算机系统20不允许复数个随机字节被取得,以及安全启动不会被恢复。
在一实施例中,当开盖窜改事件被侦测时,启动加载器200记录所述开盖窜改事件。也就是说,开盖窜改事件可被记录,以告知计算机系统20的一用户。
本领域具通常知识者当可依本发明的精神加以结合、修饰或变化以上所述的实施例,而不限于此。前述的陈述、步骤及/或流程(包含建议步骤)可通过模块实现,模块可为硬件、软件、固件(为硬件装置与计算机指令与数据的结合,且计算机指令与数据属于硬件装置上的只读软件)、电子系统、或上述装置的组合。该装置的一实例可为计算机系统20。
硬件可为模拟电路、数字电路及/或混合式电路。例如,硬件可为特定应用集成电路、现场可程序逻辑门阵列(Field Programmable Gate Array,FPGA)、可编程逻辑器件(programmable logic device)、耦接的硬件元件,或上述硬件的组合。在其他实施例中,硬件可为通用处理器(general-purpose processor)、微处理器、控制器、数字信号处理器(digital signal processor,DSP),或上述硬件的组合。
软件可为程序代码的组合、指令的组合及/或函数(功能)的组合,其存储于一存储单元中,例如一计算机可读取介质(computer-readable medium)。举例来说,计算机可读取介质可为用户识别模块、只读式内存、闪存、随机存取内存、光盘只读存储器(CD-ROM/DVD-ROM/BD-ROM)、磁带、硬盘、光学数据存储装置、非易失性存储单元(non-volatile storageunit),或上述元件的组合。计算机可读取介质(如存储单元)可以以内建的方式耦接于至少一处理器(如与计算机可读取介质整合的处理器)或以外接的方式耦接于至少一处理器(如与计算机可读取介质独立的处理器)。上述至少一处理器可包含有一或多个模块,以执行计算机可读取介质所存储的软件。程序代码的组合、指令的组合及/或函数(功能)的组合可使至少一处理器、一或多个模块、硬件及/或电子系统执行相关的步骤。
电子系统可为系统单芯片(system on chip,SoC)、系统级封装(system inpackage,SiP)、嵌入式计算机(computer on module,CoM)、计算机可编程产品、装置、移动电话、笔记本电脑、平板计算机、电子书、便携计算机系统,以及计算机系统20。
综上所述,本发明提供用于一开盖窜改事件中使一安全启动失败的计算机系统。当开盖窜改事件被侦测时,计算机系统删除存储在硬件中的随机字节,使安全启动失败。因此,本领域的问题可被解决。
以上所述仅为本发明的较佳实施例,凡依本发明权利要求所做的均等变化与修饰,都应属本发明的涵盖范围。
- 在一开盖窜改事件中使一安全启动失败的计算机系统
- 事件驱动的计算机系统和用于事件驱动的解决方案的方法