CN113064663A - 电脑装置及基于信任链的权限管理方法 - Google Patents

电脑装置及基于信任链的权限管理方法 Download PDF

Info

Publication number
CN113064663A
CN113064663A CN202011404409.1A CN202011404409A CN113064663A CN 113064663 A CN113064663 A CN 113064663A CN 202011404409 A CN202011404409 A CN 202011404409A CN 113064663 A CN113064663 A CN 113064663A
Authority
CN
China
Prior art keywords
boot
function
code
boot code
functions
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
CN202011404409.1A
Other languages
English (en)
Other versions
CN113064663B (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.)
Nuvoton Technology Corp
Original Assignee
Nuvoton Technology 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 Nuvoton Technology Corp filed Critical Nuvoton Technology Corp
Publication of CN113064663A publication Critical patent/CN113064663A/zh
Application granted granted Critical
Publication of CN113064663B publication Critical patent/CN113064663B/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/575Secure boot
    • 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/44589Program code verification, e.g. Java bytecode verification, proof-carrying code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/45Structures or tools for the administration of authentication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/033Test or assess software
    • 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/4401Bootstrapping

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Storage Device Security (AREA)
  • Lock And Its Accessories (AREA)

Abstract

本发明提供了一种电脑装置及基于信任链的权限管理方法,该电脑装置包括:多个周边装置、一存储器单元、一处理单元、及一权限控制电路。存储器单元用以储存多个启动码及相应于各启动码的周边装置的功能集合的设定值,其中启动码组成一信任链。处理单元执行信任链的一目前启动码。权限控制电路从存储器单元读取相应于各启动码的功能集合的设定值。当目前启动码执行完毕,权限控制电路设定下一启动码相应的第二功能集合的设定值,并依据第二功能集合中的设定值以发出权限控制信号以控制相应的周边装置,并设定下一启动码在权限控制电路中相应的启动旗标以执行下一启动码。

Description

电脑装置及基于信任链的权限管理方法
技术领域
本发明是有关于电脑系统,特别是有关于基于信任链(chain of trust)的一种电脑装置及其权限管理方法。
背景技术
在现行的电脑系统中,安全启动(secure boot)搭配信任链(chain of trust)以做为安全执行环境(secure execution environment)或是信任执行环境(trustedexecution environment)的基础已被广泛使用。举例来说,安全启动搭配信任链的启动程序(boot flow)可达到安全执行环境的功能,藉以防止未被授权软件在个人电脑上的开机启动程序期间被执行。它检查每个软件代码区段是否拥有一个有效的签章,包括作业系统被载入时也须被检查。此外,一个系统代码启动并执行的过程分为多个阶段的启动码(bootcode),且每个阶段的启动码的功能均不同,也可能是由不同的开发者所提供。
信任链的概念是基于可信赖代码的机制,意即欲执行的下阶段的代码会先进行认证,且当认证通过后才会执行。然而,信任链的机制并未加入权限管理。因此,在不同的启动码由不同的开发者进行开发的情况下,有可能产生安全问题的疑虑。
有鉴于此,需要一种电脑装置及基于信任链的权限管理方法以解决上述问题。
发明内容
本发明提供一种电脑装置,包括:多个周边装置、一存储器单元、一处理单元、及一权限控制电路。周边装置具有相应的多个功能。存储器单元用以储存多个启动码及相应于各启动码的所述多个周边装置的功能集合的设定值,其中所述多个启动码组成一信任链。处理单元用以执行该信任链中的其中一个启动码以做为一目前启动码,其中该目前启动码对应于所述多个周边装置的一第一功能集合。权限控制电路电连接至该处理单元及所述多个周边装置,用以从该存储器单元读取相应于各启动码的所述多个周边装置的功能集合的设定值。当处理单元执行目前启动码完毕,权限控制电路设定该目前启动码在该信任链中的下一启动码相应的第二功能集合中之所述多个功能的设定值,并依据该第二功能集合中的所述多个功能的设定值以发出一权限控制信号以控制相应于该第二功能集合的周边装置,并接着设定该目前启动码的该下一启动码在该权限控制电路中相应的一启动旗标以使该处理单元执行该下一启动码,其中第一功能集合与第二功能集合不同。
在一些实施例中,当该下一启动码相应的第二功能集合中的所述多个功能的设定值并锁定后,该下一启动码及后续的启动码无法修改该第二功能集合中的所述多个功能的设定值。若所述多个功能中的一第一功能不具有预设设定值,该处理单元先设定该第一功能的设定值后再锁定该第一功能的设定值。
在一些实施例中,该处理单元包括多个运算核心,且所述多个运算核心中的主控运算核心依据所执行的该目前启动码以设定相应的该启动旗标,且所述多个运算核心中的其他运算核心串联于该启动旗标。
在一些实施例中,当该处理单元由该目前启动码切换至执行下一启动码时,该权限控制电路隐藏该存储器单元所储存的该目前启动码的储存区域,并同时隐藏对应于该目前启动码的密钥。
在一些实施例中,当该权限控制电路接收到该电脑装置的一重置信号,该权限控制电路清除各启动码的启动旗标及各功能的设定值。
本发明还提供一种基于信任链的权限管理方法,用于一电脑装置。电脑装置包括多个周边装置及一权限控制电路。上述权限管理方法包括:执行一信任链中之多个启动码的其中一者以做为一目前启动码,其中该目前启动码对应于所述多个周边装置的一第一功能集合;利用该权限控制电路从该电脑装置的一非挥发性存储器读取相应于各启动码的所述多个周边装置的功能集合的设定值;以及当该目前启动码执行完毕,利用该权限控制电路设定该目前启动码在该信任链中的下一启动码相应的第二功能集合中的所述多个功能的设定值,并依据该第二功能集合中的所述多个功能的设定值以发出一权限控制信号以控制相应于该第二功能集合的周边装置,并接着设定该目前启动码的该下一启动码在该权限控制电路中相应的一启动旗标以执行该下一启动码,其中该第一功能集合与该第二功能集合不同。
附图说明
图1显示依据本发明一实施例中的电脑装置的方块图。
图2A及图2B为依据本发明不同实施例中的软件启动流程的示意图。
图3为依据本发明一实施例中的权限控制电路的示意图。
图4A为依据本发明一实施例中的权限控制电路的权限控制逻辑的示意图。
图4B为依据本发明另一实施例中的权限控制电路的权限控制逻辑的示意图。
图4C为依据本发明另一实施例中的权限控制电路的权限控制逻辑的示意图。
图5为依据本发明一实施例中的基于信任链的权限管理方法的流程图。
附图标记:
100~电脑装置;
110~处理单元;
111~系统汇流排;
120~存储器控制器;
130~存储器单元;
131~挥发性存储器;
132~非挥发性存储器;
140~权限控制电路;
141~权限控制逻辑;
142~暂存器组;
143~存取接口;
150~汇流排主控装置;
160~周边装置;
170~除错埠管理电路;
172~外部除错装置;
200、210~软件启动流程;
BL0-BLm、BL32-BL33、BLmm~启动码;
400、410、420~软件启动流程;
BF0-BFm~启动旗标;
FS1-FS3~功能集合;
S510-S560~步骤。
具体实施方式
以下说明是为完成发明的较佳实现方式,其目的在于描述本发明的基本精神,但并不用以限定本发明。实际的发明内容必须参考之后的权利要求范围。
必须了解的是,使用于本说明书中的"包含"、"包括"等词,用以表示存在特定的技术特征、数值、方法步骤、作业处理、元件以及/或组件,但并不排除可加上更多的技术特征、数值、方法步骤、作业处理、元件、组件,或以上的任意组合。
于权利要求中使用如"第一"、"第二"、"第三"等词用来修饰权利要求中的元件,并非用来表示之间具有优先权顺序,先行关系,或者是一个元件先于另一个元件,或者是执行方法步骤时的时间先后顺序,仅用来区别具有相同名字的元件。
图1显示依据本发明一实施例中的电脑装置的方块图。电脑装置100例如为一个人电脑或一服务器。在一实施例中,电脑装置100包括处理单元110、一存储器控制器120、一存储器单元130、一权限控制电路140、一或多个汇流排主控装置150、多个周边装置160及一除错埠管理电路170。处理单元110、存储器控制器120、存储器单元130、权限控制电路140、汇流排主控装置150、周边装置160及除错埠管理电路170通过系统汇流排111而互相电连接。在一些实施例中,系统汇流排111例如可为先进高效能汇流排(advanced high-performance bus,AHB)、先进系统汇流排(advanced system bus,ASB)、先进周边汇流排(advanced peripheral bus,APB)或先进可扩充接口(advance extensible interface,AXI),但本发明并不限于此。
处理单元110可使用多种方式实施,例如专用硬件电路或通用硬件实现(例如,单一处理器、具平行处理能力的多个处理器或多个处理核心、或其他具运算能力的处理器)、上述实现方式例如可为通用处理器(general-purpose processor)或中央处理器(centralprocessing unit,CPU),但本发明并不限于此。
存储器控制器120用以控制存储器单元130的数据存取。存储器单元130包括一挥发性存储器131及一非挥发性存储器132,其中挥发性存储器131例如是静态随机存取存储器(SRAM)或动态随机存取存储器(DRAM),但本发明并不限于此。非挥发性存储器132例如是一磁盘机(hard disk drive)、一固态磁盘(solid-state disk)、一快闪存储器(flashmemory)、一唯读存储器(read-only memory)、可擦除可代码化唯读存储器(erasableprogrammable read-only memory,EPROM)、电子可擦除可代码化唯读存储器(electrically erasable programmable read-only memory,EEPROM)或电子熔丝(e-fuse),但本发明并不限于此。非挥发性存储器132用以储存多个启动码及作业系统、以及权限控制逻辑141所管理的不同功能集合的设定值。在一些实施例中,电脑装置100可包括多个非挥发性存储器(可包含非挥发性存储器132),其均电连接至系统汇流排111,且启动码及不同功能集合的设定值可分开储存于不同的非挥发性存储器。本发明并不限定启动码及不同功能集合的设定值在一或多个非挥发性存储器中的储存方式。
在此实施例中,存储器控制器120包括一存储器分区功能,其可将所控制的非挥发存储器132(例如为一唯读存储器)划分为多个区块,且各区块可拥有各自的特定属性,其中上述各区块的分区方式例如可为:固定大小、起始位址与结束位址、起始位址与区块大小、或硬件预先定义分区。举例来说,若分区方式为固定大小,则每个区块皆为固定大小(例如为4KB),例如电脑装置100中的位址0x0~0x0FFF为一区块,位址0x1000~0x1FFF则为另一区块,依此类推,且每个区块均可单独设定属性。若分区方式为起始位址与结束位址,则每个区块均可指定其起始位址及结束位址、以及该区块的属性,例如可设定起始位址为0x1000,结束位址0x2000,则此区块占了0x1000~0x1FFF(即0x2000-1的数量)的位址范围的空间。
若分区方式为起始位址与区块大小,则每个区块均可指定其起始位址及区块大小、以及该区块的属性,例如可设定起始位址为0x1000,区块大小为0x2000,则此区块占了0x1000~0x1FFF(即0x2000-1的数量)的位址范围的空间。若分区方式为硬件预先定义分区,则硬件电路(例如权限控制电路140)则可直接定义非挥发性存储器132中的多个位址范围分别对应至不同的启动码,例如0x2_0000~0x2_FFFF的位址范围为启动码BL0专用的区块、0x3_0000~0x3_FFFF的位址范围为启动码BL1专用的区块,依此类推。
汇流排主控装置150例如具有控制存储器单元130存取的能力或是可控制其他周边装置160。周边装置160可包括:序列式的通信设备(例如支援UART、SPI、I2C、USB等协定)、监测电路(watchdog)、实时时钟(real-time clock,RTC)、时脉控制器(clockcontroller)、电源管理单元(power management unit)、通用输入/输出埠(general-purposed I/O)控制单元、密钥管理单元、内建自我测试(built-in self-test,BIST)逻辑等等,但本发明并不限于此。此外,除错埠管理单元170亦属于周边装置的其中一者。
详细而言,各个周边装置160均配置了一些需要受到权限管制功能。举例来说,实时时钟为提供可信任的时间,将可能实作单调(monotonic)的功能,意即仅可将时钟的值增加(上数),不能减少(下数)。通过权限控制电路140,可以限制代码在某启动阶段之后即无法下数实时时钟的值。时脉控制器则可提供系统中各装置的时脉,且通过设定启动旗标(booting flag)可限制时脉的开关,且时脉的调整仅在特定启动阶段才可被设定。电源管理单元控制系统中的电源开关、电压的调整。在多电压域(power domain)的系统中,电源管理单元可以单独控制部分区域的电压开关。结合启动阶段的权限管理,可以限制这些开关的调整权限。除错埠管理单元170包括一除错埠,用以连接至外部除错装置(Externaldebugger)172,其可存取系统资源、对系统进行除错的路径。除错埠管理单元170会通过控制除错埠来管制外部除错装置172存取系统的权限,而除错埠管理单元170通过设定启动旗标可以限制各启动阶段的除错埠权限。
密钥管理单元可将所储存的密钥区分为软件在启动流程中不同阶段所使用的密钥。密钥管理单元例如可包括下列设计:密钥仅有在软件于相对应的启动阶段才可被存取。例如:密钥被设定为启动码BL2,则仅当软件执行在启动码BL2阶段时,密钥管理单元才会开发对此密钥的存取。密钥在软件处于相对应的启动阶段之前(包含该阶段)才能被存取,例如:密钥对应启动码BL2,则当软件在执行启动码BL0、BL1及BL2时,密钥管理单元皆会允许此密钥的存取。此后,密钥管理单元会拒绝此密钥的存取。内建自我测试逻辑可提供电脑装置自动测试其电路是否正常的功能。通过设定启动旗标,可以限制内建自我测试的启动时机。
图2A及图2B为依据本发明不同实施例中的软件启动流程的示意图。如图2A所示,使用信任链的电脑装置100在重置(reset)或开机后,其软件启动流程200会基于硬件的设计以确保处理单元110必定先执行启动码BL0(例如称为初始启动码或第一启动码),其中启动码BL0例如为完全不可修改的代码(immutable non-volatile code),且储存于非挥发性存储器132的特定位址范围中。
当处理单元110开始执行代码BL0并且执行完代码BL0的任务(task)后,会判断代码BL1是否存在。若代码BL1存在,则处理单元110对代码BL1进行验证。当验证通过后,处理单元110才会切换至代码BL1并执行,并且执行完代码BL1的任务后判断代码BL2是否存在以及在代码BL2存在时对其进行验证,依此类推。因此,利用上述流程可得到一条信任链,如图2A所示。
举例来说,启动码BL0例如可执行下列操作:搜寻存储器空间中是否包含启动码BL1、验证启动码BL1的完整性、以及验证启动码BL1的真实性(确保BL1是由合法的特定开发者提供)。启动码BL0在执行完成后,在跳离启动码BL0之前会设定启动码BL1相应的功能集合的设定值及锁定值,并在功能集合的设定值锁定值设定完成后再设定启动旗标BF1以执行启动码BL1。当启动码BL1相应的启动旗标BF1被设定之后,处理单元110会认为此时软件正在执行启动码BL1,且电脑装置100上的所有周边装置160皆仅有相应于启动码BL1的权限。当电脑装置100重置之后,处理单元110(或权限控制电路140)会依据重置信号清除在权限控制电路140中的所有启动旗标,此即表示软件流程已重置,且处理单元110会从预先定义的启动码BL0开始执行,并确保软件流程会遵守信任链。其中,上述重置信号例如可为电脑装置100重新上电的重置信号(power on reset,POR)。
在另一实施例中,电脑装置100的软件启动流程210的信任链会产生分支,如图2B所示。举例来说,在执行完启动码BL2之后,处理单元110可能会执行启动码BL32或BL33,且启动码BL32及BL33的权限可能不同。权限控制电路140可通过不同的启动旗标控制各个启动码所相应的功能的开关。类似地,当电脑装置100重置之后,处理单元110会依据重置信号以清除在权限控制电路140中的所有启动旗标,此即表示软件流程已重置,且处理单元110会从预先定义的启动码BL0开始执行,并确保软件流程会遵守信任链。
图3为依据本发明一实施例中的权限控制电路的示意图。
如图3所示,权限控制电路140包括权限控制逻辑141、一暂存器组142、以及一存取接口143。权限控制电路140可包括一汇流排接口(未绘示),并可通过系统汇流排111以电连接至电脑装置100中的其他元件,且处理单元110所执行的软件可存取在暂存器组142中的各个启动旗标的数值。权限控制逻辑141例如可具有存取非挥发性存储器132的功能,其通过存取接口143(例如为一非挥发性存储器存取接口)读取储存于非挥发性存储器132的权限管理设定值,并且提供写入设定值的功能。
权限控制逻辑141电连接至各个周边装置160及除错埠管理电路170并且可发送权限控制信号(authority control signal)至各个周边装置160及除错埠管理电路170以控制其相应的功能的开启或关闭。暂存器组142可记录多个启动旗标(flag),例如为启动旗标BF0~启动旗标BF(N-1),其中各个启动旗标对应于一启动码(例如启动码BL0~BL(N-1))。处理单元110所执行的软件可以设定上述启动旗标藉以表示目前的软件流程的状态,且权限控制逻辑141可依据上述启动旗标以控制在电脑装置100中的各项功能及周边装置160的使用权限。
在此实施例中,权限控制电路140可接收电脑装置100中的重置信号,藉以清除储存于暂存器组142中的所有启动旗标,此即表示软件流程已重置,且所有启动旗标及权限控制逻辑141均会回到预设状态。接着,处理单元110会从预先定义的启动码BL0开始执行,并确保软件流程会遵守信任链。
请同时参考图3及图2B。在权限控制电路140的暂存器组142所储存的各个启动旗标由一或多个位所组成,且可表示“设置(configured)”及“未设置(not configured)”两种状态。处理单元110所执行的软件可将暂存器组142中的各个启动旗标设定为“设置”状态,但无法将各个启动旗标设定为“未设置”状态。此外,各个启动旗标仅可由电脑装置100中的重置信号所清除以回到“未设置”状态。
在此实施例中,各个启动旗标的写入权限亦会受权限控制逻辑141所管理。当启动旗标BF1等于1时,启动旗标BF2的写入权限才会由权限控制逻辑141开启。因此,启动旗标BF2所相应的开机流程状态会在启动旗标BF1所相应的开机流程状态之后。举例来说,若启动码BL1及BL2的开机流程状态分别由启动旗标BF1及BF2表示,则当开机流程状态为执行启动码BL2时,表示启动码BL2相应的权限已被启动码BL1正确地设定。
图4A为依据本发明一实施例中的权限控制电路的权限控制逻辑的示意图。请同时参考图2A及图4A。
图4A中的软件启动流程400类似于图2A的软件启动流程200,且软件启动流程400可包括m+1个启动码,例如为启动码BL0~BLm。各个启动码BL0~BLm均分别对应至一个启动旗标。此外,若电脑装置100的周边装置160具有n+1个功能,且各个启动码BL0~BLm均分别对应至功能集合FS0~FSm。例如权限控制逻辑141可将n+1个功能预先定义其设定值至m+1个集合中,且每个集合均对应至一个启动旗标。其中,各个集合中的功能的预设值可以是权限控制电路140预先定义的设定值、不可被修改的设定值、或是预先储存在非挥发性存储器132中的设定值。当电脑装置100重置后,权限控制电路140可通过存取接口143由非挥发性存储器132读取预先储存的各个集合的设定值,其中每个集合FS的作用如图4A所示。
在此实施例中,当处理单元110执行启动码BL0的工作完成后,在跳离启动码BL0之前,启动码BL0会先设定相应于启动码BL1的功能集合FS1的各个功能的设定值及锁定值,再接着设定相应于启动码BL1的启动旗标BF1。当启动旗标BF1设定完成后,处理单元110即执行启动码BL1,表示软件启动流程已处于启动码BL1的状态,依此类推。
详细而言,当处理单元110设定启动旗标BF1时,表示会设定功能集合FS1中的各个功能的设定值及锁定值(lock),其中设定值表示此功能是否可被使用,例如可用设定值1及0分别表示开启(enable)/关闭(disable)此功能。此外在图4A的各功能被标示为“NI”表示此功能未使用或未被锁定。
锁定值则表示此功能的设定值是否可再被修改,且设定值与锁定值可能是连动的。若一特定功能的设定值的预设值为0,当此特定功能的设定值被设定为1时,就不可再被设定为0。当锁定值被设定之后,只有在重置信号触发时,才能由处理单元110或权限控制电路140才能清除锁定值,且将设定值回复到预设值。上述重置信号例如为电脑装置100重新上电的重置信号(POR),可用以将软件流程重新执行,意即触发重置信号可将此硬件锁定值清除,且处理单元110所执行的软件也会先执行启动码BL0(即初始启动码)。
在图4A中,当启动码BL0执行结束时,处理单元110(或权限控制电路140)会先设定与功能集合FS1有关的各功能的设定值及/或锁定值,再接着设定相应于启动码BL1的启动旗标BF1。例如当设定启动旗标BF1之前,处理单元110(或权限控制电路140)将功能集合FS1中的功能1的设定值开启(enable)并将功能2的设定值关闭(disable),在功能集合FS1中的其他功能的设定值及锁定值则未被修改。
需注意的是,此时因为功能集合FS1中的功能1及功能2的设定值已被修改,故其相应的锁定值亦会被设定为1(表示已锁定),且在启动码BL0之后的各个启动码BL1~BLm均无权限可修改在相应的各个功能集合中的功能1及功能2的设定值。在功能集合FS1中未被修改设定值的功能3至功能m,其权限将开启给后续的代码进行管理。则当处理单元110执行完毕启动码BL1后并且要接着执行启动码BL2时,处理单元110(或权限控制电路140)则可视功能集合FS2的功能需求而设定相关功能的设定值,例如可将功能3的设定值设定为关闭。因为功能3的设定值已被启动旗标BF2锁定,所以在启动码BL2之后的启动码将无法再对功能4进行设定。
此外,在软件启动流程中的不同执行状态时,权限控制电路140所输出的权限控制信号也会随之改变,如图4A中的权限控制逻辑141中的各功能的设定值所示。详细而言,权限控制信号包括多个位,且各位可控制相应的周边装置的功能开启或关闭。当部分功能的设定值未被目前的启动码修改时,则此部分功能的设定值会延用预设设定值或是由先前的启动码所修改的设定值。
图4B为依据本发明另一实施例中的权限控制电路的权限控制逻辑的示意图。请同时参考图2B及图4B。
图4B中的软件启动流程410类似于图2B的软件启动流程210。在软件启动流程410中,当启动码BL2执行完毕后会视条件而设定启动旗标BF3或BF4,并选择执行对应的启动码BL32或BL33。若执行启动码BL32,则软件启动流程410会进入第一分支,例如从启动码BL32至BLm。若执行启动码BL33,则软件启动流程410会进入第二分支,例如从启动码BL32至BLmm。类似地,各个启动码亦对应于一个启动旗标,且各个启动码亦具有对应的功能集合FS。启动旗标BF1及BF2的设定方式与图4A的实施例类似,故其细节于此不再赘述。
当启动码BL2执行完毕后,处理单元110会视条件而设定启动旗标BF3或BF4。若执行启动码BL32使得软件启动流程410会进入第一分支,则启动旗标BF32中所设定的功能集合FS32中的部分功能(例如功能3)的设定值会被锁定,故在第一分支的后续启动码仅能针对启动旗标BF1~BF2尚未设定的设定值进行修改。若执行启动码BL33使得软件启动流程410会进入第二分支,则启动旗标BF33中所设定的功能集合FS33中的部分功能(例如功能n)的设定值会被锁定,故在第一分支之后续启动码仅能针对启动旗标BF1、BF2及BF3尚未设定的设定值进行修改。
在图4B的软件启动流程410中,启动码BL32及BL33的启动旗标BF32及BF33由启动码BL2所设置,且启动码BL32及BL33无权互相启动,故上述设计仍符合信任链的概念。
图4C为依据本发明另一实施例中的权限控制电路的权限控制逻辑的示意图。请同时参考图2A及图4C。
在图4C的实施例中,图4C中的软件启动流程420类似于图2A的软件启动流程200,且软件启动流程400可包括m+1个启动码,例如为启动码BL0~BLm。此外,功能1~9的预设设定值用粗体字表示,且功能5并没有预设设定值。
当处理单元110执行启动码BL0完毕并设定相应的启动旗标BF0时,权限控制电路140可依据启动旗标BF0对功能1及功能6进行设定及锁定,例如功能1的设定值由预设的关闭状态(例如设定值为0)设定为开启状态(例如设定值为1),且功能6的设定值由预设的开启状态(例如设定值为1)设定为关闭状态(例如设定值为0)。此外,权限控制电路140可依据启动旗标BF0对功能1及功能6的设定值进行锁定,表示功能1及功能6的管理权限属于启动码BL0。当软件启动流程执行到启动码BL1时,因为功能1已被锁定,所以启动码BL1试图修改功能1的设定值则会被拒绝。然而,启动码BL1仍有权限以设定功能2、3、7的设定值。在此实施例中,当启动码BL1设定功能7的设定时为开启状态后,并未锁定功能7的设定值。故表示启动码BL1开放管理功能7的权限给后续的启动码,例如启动码BL2。
接着,软件启动流程执行到启动码BL2时,启动码BL2设定了功能3、4的设定值,并锁定功能3、4、8的设定值,表示功能3、4、8的管理权限只到启动码BL2为止。因为启动码BL2并未设定功能8的设定值,表示功能8的设定值会维持在预设值且无法再被后续的启动码所修改。此外,功能4的预设设定值为开启状态,且启动码BL2将功能4设定为反向设定值(即关闭状态),其中反向设定值即与锁定值相同,故启动码BL2可以只设定功能4的设定值且不需再另外设定“锁定值”。
此外,因为启动码BL2至BLm均未设定功能5及功能9,表示启动码BLm具有功能5及功能9的管理权限。如图4C所示,启动码BLm设定了功能5及功能9的锁定值,但并未设定功能5及功能9的设定值。因为功能5并没有预设设定值,故在此状态下,启动码BLm设定功能5的锁定值的操作是无效的。意即,需要先设定功能5的设定值后才可以设定功能5的锁定值。
在前述实施例中,权限控制电路140可结合软件的信任链流程,并提供一个阶层式的硬件权限管理功能,并且可通过统一的权限控制电路140以达成多种优点。举例来说,权限控制电路140可提供硬件启动旗标以指示电脑装置100当前的启动阶段(bootingstate),使得电脑装置100可支援多个处理器或多个运算核心。当电脑装置100包括多个运算核心,则主控的运算核心可依据目前所执行的启动码以设定相应的启动旗标,且其他的运算核心可通过上述启动旗标以得知电脑装置100的启动状态并进行相应的操作,藉以降低在多个运算核心之间的同步延迟。此外,多个运算核心的启动阶段可串联于此硬件启动旗标。
当使用了前述实施例中的硬件启动旗标的设计,可以确保在软件启动流程的各阶段中所有周边装置的权限的一致性(atomicity),意即统一的设定方式可确保各种权限功能的一致性。举例来说,当软件启动流程从启动码BL0跳至启动码BL1时,权限控制电路140(或相应于启动码BL0的周边装置)可将启动码BL0的储存区域隐藏,同时也会隐藏供启动码BL0所使用的密钥,上述两个动作及其作用会一致发生,故更能确保电脑装置没有安全漏洞。
因为权限控制电路140可以提供各个周边装置及相关硬件电路的预先设置且不可被任何软件修改的权限管理功能,藉以确保所有预先设置的功能均能产生作用,且无法被任何软件修改。此外,各功能的预设设定值可在电脑装置启动时就读取完成,例如权限控制电路140可通过存取接口143以读取储存于非挥发性存储器132中的预设设定值,因此可确保软件启动流程的各阶段的权限状态不会受到软件执行状态的影响。其中,设定值的写入或修改可受到额外认证机制进行管理,例如需利用密码认证成功后才能修改设定值。
图5为依据本发明一实施例中的基于信任链的权限管理方法的流程图。
在步骤S510,开启电脑装置100的电源。
在步骤S520,利用权限控制电路140从电脑装置100的一非挥发性存储器读取各周边装置在预设启动码的功能集合的预设设定值(及/或预设锁定值),并依据所读取的预设设定值以发出权限控制信号以控制相应的周边装置。
在步骤S525,处理单元110执行信任链中的预设启动码(例如启动码BL0)。其中,信任链至少包含预设启动码(例如启动码BL0)及后续的一或多个启动码(例如启动码BL1~BLm)。此外,预设启动码为处理单元110在开机时必定执行的启动码,故可不包含相应的启动旗标。
在步骤S530,当执行完毕该信任链中的目前启动码,设定在该信任链中的下一启动码相应的功能集合的设定值及锁定值。举例来说,在信任链中的各启动码的执行流程可参考图2A~图2B或图4A~图4C的实施例。
在步骤S540,依据相应于下一启动码的设定值及锁定值以发出权限控制信号以控制相应于下一启动码的周边装置。举例来说,在软件启动流程中的不同执行状态时,权限控制电路140所输出的权限控制信号也会随之改变,如图4A中的权限控制逻辑141中的各功能的设定值所示。详细而言,权限控制信号包括多个位,且各位可控制相应的周边装置的功能开启或关闭。当部分功能的设定值未被目前的启动码修改时,则此部分功能的设定值会延用预设设定值或是由先前的启动码所修改的设定值。举例来说,若目前启动码有修改部分功能的设定值(例如与预设设定值不同),目前启动码可以一并将部分功能在修改后的设定值进行锁定。若有某些功能不具有预设设定值,则需在设定此些功能的设定值后,锁定值才能发挥功用。一旦有部分功能的设定值已被锁定,在目前启动码的后续启动码均无权限再修改这些功能的设定值。
在步骤S550,设定下一启动码在权限控制电路140中相应的启动旗标,并执行下一启动码。对于处理单元110而言,当下一启动码的启动旗标被设定后,即表示软件执行的信任链的状态已进入下一启动码的执行状态。因此,在处理单元110执行下一启动码之前,权限控制电路140需先设定相应于下一启动码的功能集合的设定值及锁定值,以避免下一启动码可控制在其权限之外的周边装置。
在步骤S560,判断是否为目前启动码是否为信任链中的最后一个启动码。若目前启动码为信任链中的最后一个启动码,则此流程结束。若目前启动码并非信任链中的最后一个启动码,则回到步骤S530,并执行信任链中的下一个启动码。举例来说,处理单元110可在执行目前启动码完毕后,再判断目前启动码是否为信任链中的最后一个启动码。
综上所述,本发明提供一种电脑装置及基于信任链的权限管理方法,其可利用统一的硬件权限控制电路以控制在信任链中的各启动码所相应的功能的权限,藉以提供阶层式的权限管理功能。此外,本发明的电脑装置及权限管理方法可确保在软件启动流程的各阶段的所有周边装置的权限以及权限管理作用时间的一致性,藉以增进电脑装置的安全性。
本发明虽以较佳实施例揭露如上,然其并非用以限定本发明的范围,任何本领域技术人员,在不脱离本发明的精神和范围内,当可做些许的更动与润饰,因此本发明的保护范围当视前附的权利要求书所界定者为准。

Claims (10)

1.一种电脑装置,其特征在于,包括:
多个周边装置,具有相应的多个功能;
一存储器单元,用以储存多个启动码及相应于各启动码的所述多个周边装置的功能集合的设定值,其中所述多个启动码组成一信任链;
一处理单元,用以执行该信任链中的其中一个启动码以做为一目前启动码,其中该目前启动码对应于所述多个周边装置的一第一功能集合;以及
一权限控制电路,电连接至该处理单元及所述多个周边装置,用以从该存储器单元读取相应于各启动码的所述多个周边装置的功能集合的设定值;
其中,当该处理单元执行该目前启动码完毕,该权限控制电路设定该目前启动码在该信任链中的下一启动码相应的第二功能集合中的所述多个功能的设定值,并依据该第二功能集合中的所述多个功能的设定值以发出一权限控制信号以控制相应于该第二功能集合的周边装置,并接着设定该目前启动码的该下一启动码在该权限控制电路中相应的一启动旗标以使该处理单元执行该下一启动码;
其中该第一功能集合与该第二功能集合不同。
2.如权利要求1所述的电脑装置,其特征在于,当该下一启动码相应的该第二功能集合中的所述多个功能的设定值被设定及锁定后,该下一启动码及后续的启动码无法修改该第二功能集合中的所述多个功能的设定值。
3.如权利要求1所述的电脑装置,其特征在于,若所述多个功能中的一第一功能不具有预设设定值,该处理单元先设定该第一功能的设定值后再锁定该第一功能的设定值。
4.如权利要求1所述的电脑装置,其特征在于,该处理单元包括多个运算核心,且所述多个运算核心中的主控运算核心是依据所执行的该目前启动码以设定相应的该启动旗标,且所述多个运算核心中的其他运算核心串联于该启动旗标。
5.如权利要求1所述的电脑装置,其特征在于,当该处理单元由该目前启动码切换至执行下一启动码时,该权限控制电路隐藏该存储器单元所储存的该目前启动码的储存区域,并同时隐藏对应于该目前启动码的密钥。
6.如权利要求1所述的电脑装置,其特征在于,当该权限控制电路接收到该电脑装置的一重置信号,该权限控制电路清除各启动码的启动旗标及各功能的设定值。
7.一种基于信任链的权限管理方法,其特征在于,用于一电脑装置,该电脑装置包括多个周边装置及一权限控制电路,该方法包括:
执行一信任链中的多个启动码的其中一者以做为一目前启动码,其中该目前启动码对应于所述多个周边装置的一第一功能集合;
利用该权限控制电路从该电脑装置的一非挥发性存储器读取相应于各启动码的所述多个周边装置的功能集合的设定值;以及
当该目前启动码执行完毕,利用该权限控制电路设定该目前启动码在该信任链中的下一启动码相应的第二功能集合中的所述多个功能的设定值,并依据该第二功能集合中的所述多个功能的设定值以发出一权限控制信号以控制相应于该第二功能集合的周边装置,并接着设定该目前启动码的该下一启动码在该权限控制电路中相应的一启动旗标以执行该下一启动码;
其中该第一功能集合与该第二功能集合不同。
8.如权利要求7所述的基于信任链的权限管理方法,其特征在于,当该下一启动码相应的该第二功能集合中的所述多个功能的设定值被设定及锁定后,该下一启动码及后续的所述多个启动码无法修改该第二功能集合中的所述多个功能的设定值。
9.如权利要求7所述的基于信任链的权限管理方法,其特征在于,还包括:
若所述多个功能中的一第一功能不具有预设设定值,先设定该第一功能的设定值后再锁定该第一功能的设定值。
10.如权利要求7所述的基于信任链的权限管理方法,其特征在于,该电脑装置的一处理单元包括多个运算核心,且所述多个运算核心中的主控运算核心依据所执行的该目前启动码以设定相应的该启动旗标,且所述多个运算核心中的其他运算核心串联于该启动旗标。
CN202011404409.1A 2019-12-31 2020-12-04 电脑装置及基于信任链的权限管理方法 Active CN113064663B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
TW108148545A TWI804703B (zh) 2019-12-31 2019-12-31 電腦裝置及基於信任鏈的權限管理方法
TW108148545 2019-12-31

Publications (2)

Publication Number Publication Date
CN113064663A true CN113064663A (zh) 2021-07-02
CN113064663B CN113064663B (zh) 2024-04-09

Family

ID=76545513

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011404409.1A Active CN113064663B (zh) 2019-12-31 2020-12-04 电脑装置及基于信任链的权限管理方法

Country Status (3)

Country Link
US (1) US11347863B2 (zh)
CN (1) CN113064663B (zh)
TW (1) TWI804703B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20230418946A1 (en) * 2022-06-27 2023-12-28 Nuvoton Technology Corporation Chip and method capable of authenticating off-chip debug firmware program and debug user

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20040005505A (ko) * 2002-07-10 2004-01-16 삼성전자주식회사 컴퓨터시스템 및 그 부팅제어방법
CN1567199A (zh) * 2003-06-16 2005-01-19 纬创资通股份有限公司 交叉式固件升级方法
CN101167108A (zh) * 2005-03-09 2008-04-23 Igt公司 作为关键事件存储器用于掉电游戏机的mram
US20150052610A1 (en) * 2013-08-15 2015-02-19 Microsoft Corporation Global platform health management
WO2015048922A1 (en) * 2013-10-02 2015-04-09 Intel Corporation Trusted boot and runtime operation
CN104794393A (zh) * 2015-04-24 2015-07-22 杭州字节信息技术有限公司 一种嵌入式分区映像安全认证及内核可信引导方法及其设备
TW201610682A (zh) * 2014-06-27 2016-03-16 英特爾股份有限公司 確認虛擬位址轉譯
CN110390214A (zh) * 2018-04-18 2019-10-29 新唐科技股份有限公司 通过汇流排安全存取周边装置的安全装置及方法

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060136705A1 (en) * 2004-12-21 2006-06-22 Motorola, Inc. Multiple stage software verification
US8145917B2 (en) * 2005-12-30 2012-03-27 Nokia Corporation Security bootstrapping for distributed architecture devices
US7987351B2 (en) * 2006-10-06 2011-07-26 Broadcom Corporation Method and system for enhanced boot protection
KR20090037712A (ko) * 2007-10-12 2009-04-16 삼성전자주식회사 보안 부트-업되는 전자 장치, 그것의 해쉬값 계산 방법 및부트-업 방법
US9830456B2 (en) * 2013-10-21 2017-11-28 Cisco Technology, Inc. Trust transference from a trusted processor to an untrusted processor
US9755831B2 (en) * 2014-01-22 2017-09-05 Qualcomm Incorporated Key extraction during secure boot
US10282549B2 (en) * 2017-03-07 2019-05-07 Hewlett Packard Enterprise Development Lp Modifying service operating system of baseboard management controller
GB201806465D0 (en) * 2018-04-20 2018-06-06 Nordic Semiconductor Asa Memory-access controll
US11475134B2 (en) * 2019-04-10 2022-10-18 Arm Limited Bootstrapping a device

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20040005505A (ko) * 2002-07-10 2004-01-16 삼성전자주식회사 컴퓨터시스템 및 그 부팅제어방법
CN1567199A (zh) * 2003-06-16 2005-01-19 纬创资通股份有限公司 交叉式固件升级方法
CN101167108A (zh) * 2005-03-09 2008-04-23 Igt公司 作为关键事件存储器用于掉电游戏机的mram
US20150052610A1 (en) * 2013-08-15 2015-02-19 Microsoft Corporation Global platform health management
WO2015048922A1 (en) * 2013-10-02 2015-04-09 Intel Corporation Trusted boot and runtime operation
TW201610682A (zh) * 2014-06-27 2016-03-16 英特爾股份有限公司 確認虛擬位址轉譯
CN104794393A (zh) * 2015-04-24 2015-07-22 杭州字节信息技术有限公司 一种嵌入式分区映像安全认证及内核可信引导方法及其设备
CN110390214A (zh) * 2018-04-18 2019-10-29 新唐科技股份有限公司 通过汇流排安全存取周边装置的安全装置及方法

Also Published As

Publication number Publication date
US20210200876A1 (en) 2021-07-01
TW202127435A (zh) 2021-07-16
CN113064663B (zh) 2024-04-09
TWI804703B (zh) 2023-06-11
US11347863B2 (en) 2022-05-31

Similar Documents

Publication Publication Date Title
US8161258B2 (en) Method to qualify access to a block storage device via augmentation of the device'S controller and firmware flow
US7149854B2 (en) External locking mechanism for personal computer memory locations
US6145085A (en) Method and apparatus for providing remote access to security features on a computer network
US7917716B2 (en) Memory protection for embedded controllers
US9158941B2 (en) Managing access to content in a data processing apparatus
KR101077673B1 (ko) 신속하고 안전한 메모리 컨텍스트 스위칭을 위한 장치 및방법
US8132254B2 (en) Protecting system control registers in a data processing apparatus
CN110998578B (zh) 用于在异构存储器环境内进行引导的系统和方法
JP5975629B2 (ja) メモリ保護ユニットおよび記憶素子へのアクセスコントロール方法
WO2004107176A1 (en) Method and apparatus for determining access permission
CN113254949B (zh) 控制设备、用于控制访问的系统及由控制器执行的方法
WO2006093618A2 (en) Integrated microcontroller and memory with secure interface between system program and user operating system and application
US10360370B2 (en) Authenticated access to manageability hardware components
WO2020063975A1 (zh) 一种非易失性存储器的分区保护方法及装置
CN110020561B (zh) 半导体装置和操作半导体装置的方法
CN114721493B (zh) 芯片启动方法、计算机设备及可读存储介质
CN112749397A (zh) 一种系统和方法
CN113064663B (zh) 电脑装置及基于信任链的权限管理方法
CN111026683A (zh) 访问存储器的方法
CN115083463B (zh) 用于控制存储器访问权限的方法、电子系统和存储介质
US20240004804A1 (en) Method for managing access rights of memory regions and corresponding system on chip
JP6204555B1 (ja) 不揮発性メモリに格納した変数を保護する方法、システム・ファームウェアおよびコンピュータ
TW202121218A (zh) 安全子系統的存取過濾器
WO2024027975A1 (en) Execution of instructions from trusted and untrusted memories
CN117349853A (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