CN113282930A - 具有固件验证机制的电脑系统及其固件验证方法 - Google Patents

具有固件验证机制的电脑系统及其固件验证方法 Download PDF

Info

Publication number
CN113282930A
CN113282930A CN202010101144.1A CN202010101144A CN113282930A CN 113282930 A CN113282930 A CN 113282930A CN 202010101144 A CN202010101144 A CN 202010101144A CN 113282930 A CN113282930 A CN 113282930A
Authority
CN
China
Prior art keywords
public key
strings
firmware
verified
block
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.)
Granted
Application number
CN202010101144.1A
Other languages
English (en)
Other versions
CN113282930B (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.)
Realtek Semiconductor Corp
Original Assignee
Realtek Semiconductor Corp
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 Realtek Semiconductor Corp filed Critical Realtek Semiconductor Corp
Priority to CN202010101144.1A priority Critical patent/CN113282930B/zh
Publication of CN113282930A publication Critical patent/CN113282930A/zh
Application granted granted Critical
Publication of CN113282930B publication Critical patent/CN113282930B/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/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/572Secure firmware programming, e.g. of basic input output system [BIOS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Storage Device Security (AREA)

Abstract

一种具有固件验证机制的电脑系统及其固件验证方法,电脑系统包含:多个非暂态存储电路以及处理电路。非暂态存储电路分别配置以存储并非随机数产生的多个字串的至少其中之一。处理电路配置以对应装置固件执行固件验证方法,固件验证方法包含:载入装置固件中的待验证区块;自非暂态存储电路获取字串中的多个公钥组成字串,以将公钥组成字串组合为公钥;将待验证区块与公钥进行比对,以判断待验证区块是否根据公钥运算而得的私钥所产生;以及当待验证区块为私钥所产生时,继续进行信任链验证。

Description

具有固件验证机制的电脑系统及其固件验证方法
技术领域
本发明涉及一种固件验证技术,且特别涉及一种具有固件验证机制的电脑系统及其固件验证方法。
背景技术
安全开机(secure boot)是对即将执行的装置固件进行验证的开机程序,以避免电脑系统执行未授权或是被变动过的固件。
现行的安全开机机制必须以随机数产生私钥后运算产生公钥,并将公钥存储于电脑系统中的一次性烧录的存储电路。接着,公钥将用以在安全开机的验证程序中,对以私钥进行加密的固件验证。然而,这样的方式不仅需要较大的存储容量,也难以对于公钥进行更新。对于存储空间的成本以及安全性的提升,均非有利。
因此,如何设计一个新的具有固件验证机制的电脑系统及其固件验证方法,以解决上述的缺失,乃为此一业界亟待解决的问题。
发明内容
发明内容旨在提供本公开内容的简化摘要,以使阅读者对本公开内容具备基本的理解。此发明内容并非本公开内容的完整概述,且其用意并非在于指出本发明实施例的重要/关键元件或界定本发明的范围。
本发明内容的一目的在于提供一种具有固件验证机制的电脑系统及其固件验证方法,借此改善现有技术的问题。
为达上述目的,本发明内容的一技术实施方式涉及一种具有固件验证机制的电脑系统,包含:多个非暂态存储电路以及处理电路。非暂态存储电路分别配置以存储并非随机数产生的多个字串的至少其中之一。处理电路配置以对应装置固件执行固件验证方法,固件验证方法包含:载入装置固件中的待验证区块;自非暂态存储电路获取字串中的多个公钥(public key)组成字串,以将公钥组成字串组合为公钥;将待验证区块与公钥进行比对,以判断待验证区块是否根据公钥运算而得的私钥(private key)所产生;以及当待验证区块为私钥所产生时,继续进行信任链(chain of trust)验证。
本发明内容的另一技术实施方式涉及一种固件验证方法,应用于具有固件验证机制的电脑系统,包含:使处理电路载入装置固件中的待验证区块;使处理电路自多个非暂态存储电路获取多个字串中的多个公钥组成字串,以将公钥组成字串组合为公钥,其中非暂态存储电路配置以存储并非随机数产生的字串的至少其中之一;使处理电路将待验证区块与公钥进行比对,以判断待验证区块是否根据公钥运算而得的私钥所产生;以及使处理电路当待验证区块为私钥所产生时,继续进行信任链验证。
本发明具有固件验证机制的电脑系统及其固件验证方法,可使存储电路存储金钥所需的成本下降,并在金钥的更新方面增加弹性,提升电脑系统的安全性。
附图说明
为让本发明的上述和其他目的、特征、优点与实施例能更明显易懂,附图的说明如下:
图1为本发明一实施例中,一种具有固件验证机制的电脑系统的方框图;以及
图2为本发明一实施例中,一种固件验证方法的流程图。
符号说明
100:电脑系统 110:处理电路
120:装置固件 130:待验证区块
135A:验证信息 135:签章
140:其他待验证区块 150:实际固件内容
200:固件验证方法 201-206:步骤
NVM1-NVMN-1:非暂态存储电路 ST1-STN:字串
具体实施方式
请参照图1。图1为本发明一实施例中,一种具有固件验证机制的电脑系统100的方框图。电脑系统100包含非暂态存储电路NVM1-NVMN-1以及处理电路110。
非暂态存储电路NVM1-NVMN-1分别为非暂态存储装置。更详细地说,非暂态存储电路NVM1-NVMN-1是其内部数据的存储不会随着供电停止而消失的存储装置。举例而言,非暂态存储电路NVM1-NVMN-1可包含例如,但不限于只读存储器(read-only memory;ROM)、一次性烧录存储(one-time programmable;OTP)装置、快闪存储器或其组合的存储装置。
于一实施例中,非暂态存储电路NVM1-NVMN-1包含至少一个一次性烧录存储装置,以避免内存的数据被修改。
非暂态存储电路NVM1-NVMN-1分别配置以存储并非随机数产生的多个字串的至少其中之一。在图1中,非暂态存储电路NVM1-NVMN-1分别配置以存储字串ST1-STN-1。需注意的是,在本实施例中非暂态存储电路NVM1-NVMN-1分别仅存储单一字串,但是在其他实施例中各个非暂态存储电路NVM1-NVMN-1可存储多于一个字串。
于一实施例中,非暂态存储电路NVM1-NVMN-1所存储的字串ST1-STN-1,并非随机数产生,而具有特定的意义。举例而言,字串ST1-STN-1可包含装置码、实体地址、电子邮件地址、网址、公司名称、人物名称或其组合。
于一实施例中,非暂态存储电路NVM1-NVMN-1所存储的字串ST1-STN-1是经由保护函式或保护编码存储的保护下存储,以保护其完整性。
处理电路110配置以对应装置固件120执行固件验证。在图1中,装置固件120是以一个区块示出。然而实际上,装置固件120并非硬件元件,而是对应与电脑系统100电性耦接的装置(未示出)的固件。
于一实施例中,装置固件120包含字串STN、待验证区块130、其他待验证区块140以及实际固件内容150。
字串STN类似于非暂态存储电路NVM1-NVMN-1所存储的字串ST1-STN-1,并非随机数产生,而具有特定的意义。并且,字串STN亦可经由保护函式或保护编码存储的保护下存储,以保护其完整性。
待验证区块130为经由私钥(private key)所产生,并包含例如,但不限于验证信息135A以及签章135B。于一实施例中,私钥是根据公钥(public key)运算而得。
更详细地说,于一实施例中,非暂态存储电路NVM1-NVMN-1所存储的字串ST1-STN-1以及装置固件120的字串STN中,包含多个公钥组成字串,例如但不限于字串ST1-STN-1以及STN。这些公钥组成字串间可排序组合为公钥,并经由运算产生私钥。进一步地,私钥用以对待验证区块130的内容进行签章。
因此,当例如,但不限于电脑系统100开机或是装置固件120对应的装置开机时,处理电路110将载入装置固件120中的待验证区块130,以进行验证。
于一实施例中,处理电路110自非暂态存储电路NVM1-NVMN-1以及装置固件120中,获取字串ST1-STN中的公钥组成字串,以将公钥组成字串组合为公钥。
于一实施例中,处理电路110是自例如,但不限于电脑系统100中的只读存储器中,获取并执行只读存储器开机载入程序(bootloader)来获取公钥组成字串并进行组合。
接着,处理电路110将待验证区块130与公钥进行比对,以判断待验证区块130是否根据公钥运算而得的私钥所产生。
当待验证区块130并非根据私钥所产生时,表示对应此装置固件120的装置可能被黑客入侵。处理电路110将判断验证并未通过,而不继续使此装置运行。
而当待验证区块130为私钥所产生时,处理电路110将判断验证通过,并可继续对其他待验证区块140进行验证。
于一实施例中,其他待验证区块140彼此的验证信息是环环相扣的,可经由信任链(chain of trust)验证的程序进行验证。当所有的验证都通过时,处理电路110即可根据实际固件内容150对此装置进行操作。
于一实施例中,当私钥被窃取或黑入或是待验证区块130需要更新时,可经由在字串ST1-STN中另外挑选一组可与先前的公钥组成字串不完全相同或完全不相同的字串作为新的公钥组成字串,例如但不限于字串ST1-STN-1以及STN,以组合为新的公钥。其中,字串STN由于存储于装置固件120中,因此较为容易修改,可进一步改变公钥组成字串的组成。
接着,根据新的公钥进行运算,新的私钥将可产生,以在装置固件120产生新的待验证区块130。当装置固件120对应的装置欲进行验证时,即可由新的公钥进行验证。
通过上述的方式,本发明具有固件验证机制的电脑系统100可根据具有意义且可识别(identity-based)的多个字串产生公钥进而计算私钥,来对装置固件120的待验证区块130进行签章。进一步地,电脑系统100可通过公钥来对装置固件120的待验证区块130进行验证。
这样的方式,不仅可通过分散式的字串存储,使各个存储电路存储字串所需的成本下降,也使黑客不易存取字串而获得公钥或私钥。并且,由于公钥是由有意义的字串组成,较容易识别其为正确的金钥而非遭窜改的金钥。再者,公钥、私钥的更新,将由于部分字串可存储于固件或是非一次性烧录的存储电路,而较为容易,可提升安全性维护的弹性。
图2为本发明一实施例中,一种固件验证方法200的流程图。
固件验证方法200可应用于如图1所示的电脑系统100中。固件验证方法200包含下列步骤(应了解到,在本实施方式中所提及的步骤,除特别叙明其顺序者外,均可依实际需要调整其前后顺序,甚至可同时或部分同时执行)。
于步骤201,使处理电路110载入装置固件120中的待验证区块130。
于步骤202,使处理电路110自多个非暂态存储电路获取多个字串中的多个公钥组成字串,以将公钥组成字串组合为公钥,其中非暂态存储电路配置以存储并非随机数产生的字串的至少其中之一。
于步骤203,使处理电路110将待验证区块130与公钥进行比对。
于步骤204,判断待验证区块130是否根据公钥运算而得的私钥所产生。
于步骤205,当待验证区块130为私钥所产生时,使处理电路110判断待验证区块130通过验证。
于步骤206,当待验证区块130不为私钥所产生时,使处理电路110判断待验证区块130并未通过验证。
于一实施例中,在待验证区块130通过验证后,处理电路110可继续对装置固件120中的其他待验证区块继续进行信任链验证。
虽然上文实施方式中公开了本发明的具体实施例,然其并非用以限定本发明,本发明所属技术领域中技术人员,在不悖离本发明的原理与构思的情形下,当可对其进行各种变动与修饰,因此本发明的保护范围当以附随权利要求所界定者为准。

Claims (10)

1.一种具有固件验证机制的电脑系统,包含:
多个非暂态存储电路,分别配置以存储并非随机数产生的多个字串的至少其中之一;以及
一处理电路,配置以对应一装置固件进行一固件验证方法,该固件验证方法包含:
载入该装置固件中的一待验证区块;
自所述多个非暂态存储电路获取所述多个字串中的多个公钥组成字串,以将所述多个公钥组成字串组合为一公钥;
将该待验证区块与该公钥进行比对,以判断该待验证区块是否根据该公钥运算而得的一私钥所产生;以及
当该待验证区块为该私钥所产生时,判断该待验证区块通过验证。
2.如权利要求1所述的电脑系统,其中所述多个非暂态存储电路包含至少一个一次性烧录存储装置。
3.如权利要求1所述的电脑系统,其中该装置固件包含所述多个字串的至少其中之一,该固件验证方法还包含:
自该装置固件以及所述多个非暂态存储电路获取所述多个公钥组成字串,以将所述多个公钥组成字串组合为该公钥。
4.如权利要求3所述的电脑系统,其中所述多个字串在该装置固件以及所述多个非暂态存储电路中经由一保护函式或一保护编码存储。
5.如权利要求1所述的电脑系统,其中该待验证区块包含一验证信息以及一签章。
6.如权利要求1所述的电脑系统,其中所述多个公钥组成字串是由一只读存储器开机载入程序所获取并组合。
7.如权利要求1所述的电脑系统,其中该固件验证方法还包含:
自所述多个字串中挑选不完全相同或完全不相同于所述多个公钥组成字串的多个新公钥组成字串,以将所述多个新公钥组成字串组合为一新公钥;
通过该新公钥运算得到一新私钥;以及
根据该新私钥更新该装置固件中的该待验证区块。
8.一种固件验证方法,应用于具有固件验证机制的一电脑系统,包含:
使一处理电路载入一装置固件中的一待验证区块;
使该处理电路自多个非暂态存储电路获取多个字串中的多个公钥组成字串,以将所述多个公钥组成字串组合为一公钥,其中所述多个非暂态存储电路配置以存储并非随机数产生的所述多个字串的至少其中之一;
使该处理电路将该待验证区块与该公钥进行比对,以判断该待验证区块是否根据该公钥运算而得的一私钥所产生;以及
使该处理电路当该待验证区块为该私钥所产生时,判断该待验证区块通过验证。
9.如权利要求8所述的固件验证方法,其中该装置固件包含所述多个字串的至少其中之一,该固件验证方法还包含:
自该装置固件以及所述多个非暂态存储电路获取所述多个公钥组成字串,以将所述多个公钥组成字串组合为该公钥。
10.如权利要求8所述的固件验证方法,其中该固件验证方法还包含:
自所述多个字串中挑选不完全相同于所述多个公钥组成字串的多个新公钥组成字串,以将所述多个新公钥组成字串组合为一新公钥;
通过该新公钥运算得到一新私钥;以及
根据该新私钥更新该装置固件中的该待验证区块。
CN202010101144.1A 2020-02-19 2020-02-19 具有固件验证机制的电脑系统及其固件验证方法 Active CN113282930B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010101144.1A CN113282930B (zh) 2020-02-19 2020-02-19 具有固件验证机制的电脑系统及其固件验证方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010101144.1A CN113282930B (zh) 2020-02-19 2020-02-19 具有固件验证机制的电脑系统及其固件验证方法

Publications (2)

Publication Number Publication Date
CN113282930A true CN113282930A (zh) 2021-08-20
CN113282930B CN113282930B (zh) 2024-03-01

Family

ID=77274866

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010101144.1A Active CN113282930B (zh) 2020-02-19 2020-02-19 具有固件验证机制的电脑系统及其固件验证方法

Country Status (1)

Country Link
CN (1) CN113282930B (zh)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090222653A1 (en) * 2008-02-29 2009-09-03 Ralf Findeisen Computer system comprising a secure boot mechanism
US20140033305A1 (en) * 2012-07-30 2014-01-30 Marvin D. Nelson Code validation
CN103560882A (zh) * 2013-10-29 2014-02-05 武汉理工大学 一种基于标识的椭圆曲线密码系统
CN106685661A (zh) * 2015-11-07 2017-05-17 上海复旦微电子集团股份有限公司 公钥验证的方法及装置
WO2018090823A1 (zh) * 2016-11-21 2018-05-24 惠州Tcl移动通信有限公司 一种系统分区关键数据的保护方法及系统、终端
CN110545173A (zh) * 2019-07-29 2019-12-06 大众问问(北京)信息科技有限公司 一种安全验证及发送请求的方法及装置
CN110795126A (zh) * 2019-10-25 2020-02-14 苏州浪潮智能科技有限公司 一种固件安全升级系统

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090222653A1 (en) * 2008-02-29 2009-09-03 Ralf Findeisen Computer system comprising a secure boot mechanism
US20140033305A1 (en) * 2012-07-30 2014-01-30 Marvin D. Nelson Code validation
CN103560882A (zh) * 2013-10-29 2014-02-05 武汉理工大学 一种基于标识的椭圆曲线密码系统
CN106685661A (zh) * 2015-11-07 2017-05-17 上海复旦微电子集团股份有限公司 公钥验证的方法及装置
WO2018090823A1 (zh) * 2016-11-21 2018-05-24 惠州Tcl移动通信有限公司 一种系统分区关键数据的保护方法及系统、终端
CN110545173A (zh) * 2019-07-29 2019-12-06 大众问问(北京)信息科技有限公司 一种安全验证及发送请求的方法及装置
CN110795126A (zh) * 2019-10-25 2020-02-14 苏州浪潮智能科技有限公司 一种固件安全升级系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
胡逸飞;熊焰;黄文超;: "基于区块链审计的公钥分发方案", 计算机工程, no. 05 *

Also Published As

Publication number Publication date
CN113282930B (zh) 2024-03-01

Similar Documents

Publication Publication Date Title
EP2854066B1 (en) System and method for firmware integrity verification using multiple keys and OTP memory
CN103914658B (zh) 终端设备的安全启动方法及终端设备
CN102279760B (zh) 利用初始保护组件来进行设备引导
US8296579B2 (en) System and method for updating a basic input/output system (BIOS)
KR101904303B1 (ko) 보안 소프트웨어 인증 및 검증
KR20090005390A (ko) 소프트웨어 버전 설치의 권한
CN110795126A (zh) 一种固件安全升级系统
JP7113115B2 (ja) シリコンデバイスファームウェア上のロールバック攻撃を防止するセキュリティシステム、および、方法
CN109814934B (zh) 数据处理方法、装置、可读介质和系统
CN113486360B (zh) 基于risc-v的安全启动方法及系统
CN115934194A (zh) 一种控制器启动方法、装置、电子设备及储存介质
CN104899524B (zh) 中央处理器和验证主机板数据的方法
CN111291381A (zh) 一种基于tcm构建信任链的方法、设备及介质
CN112613011B (zh) U盘系统认证方法、装置、电子设备及存储介质
CN107092832A (zh) 一种及时弥补Secure‑Boot安全漏洞的方法
US10621355B2 (en) Method for initializing a computerized system and computerized system
CN117009976A (zh) 固件加载的控制方法、装置及芯片
CN113282930B (zh) 具有固件验证机制的电脑系统及其固件验证方法
CN115878199A (zh) 芯片的操作系统启动方法、装置、设备及存储介质
TWI756631B (zh) 具有韌體驗證機制的電腦系統及其韌體驗證方法
JP2024507531A (ja) デジタルデバイスのためのトラステッドコンピューティング
TWI748419B (zh) 用於記憶體錯誤修正之系統及方法
US20230106491A1 (en) Security dominion of computing device
CN117827229A (zh) 一种防止设备固件版本回滚的方法
US20170177373A1 (en) Platform key hierarchy

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