CN113867805B - 一种兼容基于固件的可信根的度量链构建方法、系统 - Google Patents
一种兼容基于固件的可信根的度量链构建方法、系统 Download PDFInfo
- Publication number
- CN113867805B CN113867805B CN202110962007.1A CN202110962007A CN113867805B CN 113867805 B CN113867805 B CN 113867805B CN 202110962007 A CN202110962007 A CN 202110962007A CN 113867805 B CN113867805 B CN 113867805B
- Authority
- CN
- China
- Prior art keywords
- trusted root
- interface
- firmware
- service interface
- integrity information
- 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
Links
- 238000005259 measurement Methods 0.000 title claims abstract description 108
- 238000000034 method Methods 0.000 title claims abstract description 25
- 238000010276 construction Methods 0.000 claims abstract description 29
- 238000004891 communication Methods 0.000 claims description 44
- 238000001514 detection method Methods 0.000 claims description 6
- 230000002159 abnormal effect Effects 0.000 claims description 5
- 230000010354 integration Effects 0.000 claims description 3
- 238000005516 engineering process Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 238000002955 isolation Methods 0.000 description 2
- 230000009191 jumping Effects 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4411—Configuring for operating with peripheral devices; Loading of device drivers
-
- 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/38—Information transfer, e.g. on bus
- G06F13/382—Information transfer, e.g. on bus using universal interface adapter
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
-
- 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
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y04—INFORMATION OR COMMUNICATION TECHNOLOGIES HAVING AN IMPACT ON OTHER TECHNOLOGY AREAS
- Y04S—SYSTEMS INTEGRATING TECHNOLOGIES RELATED TO POWER NETWORK OPERATION, COMMUNICATION OR INFORMATION TECHNOLOGIES FOR IMPROVING THE ELECTRICAL POWER GENERATION, TRANSMISSION, DISTRIBUTION, MANAGEMENT OR USAGE, i.e. SMART GRIDS
- Y04S40/00—Systems for electrical power generation, transmission, distribution or end-user application management characterised by the use of communication or information technologies, or communication or information technology specific aspects supporting them
- Y04S40/20—Information technology specific aspects, e.g. CAD, simulation, modelling, system security
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Bioethics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明提供一种兼容基于固件的可信根的度量链构建方法、系统,所述方法包括如下步骤:在系统固件中集成可信根管理接口,初始化可信根管理接口提供统一的度量链构建接口;将度量链构建接口注册成系统运行时服务接口;通过运行时服务接口将度量对象添加至度量链;度量对象包括度量对象信息和完整性信息;各个组件通过运行时服务接口获取当前度量链的信息。无需考虑可信根的具体实例,也无需考虑如何在安全世界和普通世界之间的切换。同时,系统固件提供的运行时服务接口,计算机各个组件可以通过统一的运行时服务接口构建度量链,无需区分系统启动前和系统启动后的情况。
Description
技术领域
本发明涉及计算机安全技术领域,具体涉及一种兼容基于固件的可信根的度量链构建方法、系统。
背景技术
通常可信根以硬件芯片的形态存在,其内部有独立的计算单元和存储单元,可以确保其内部数据的安全性。但可信根并不是计算机必备的组件,很多计算机出于各种原因并没有搭载可信根,因此无法利用可信根来构建安全的计算环境。
随着应用场景的开拓,ARM处理器加入了很多安全特性,TrustZone技术就是ARM处理器中一种内存安全隔离技术。在ARM体系中,TrustZone对应安全世界,其他内存空间称之为普通世界,根据TrustZone规定,安全世界中的程序可以正常访问普通世界中的内容,但普通世界中的程序不能访问安全世界中的内容,只能通过特定接口使用安全世界中程序提供的功能。目前已有利用TrustZone技术实现模拟可信根,即将可信根模拟器运行在TrustZone的安全世界,运行在普通世界的程序通过特定接口使用基于固件的可信根功能。
在使用硬件可信根的情况下,硬件可信根完成初始化后,计算机的各个组件(系统固件、引导程序、操作系统内核等)就可以通过读写可信根寄存器的内存地址来操作硬件可信根,但在TrustZone技术中,普通世界的程序无法直接读写安全世界中的模拟可信根内存,因此现有的利用硬件可信根功能的组件无法兼容基于固件的可信根。同时,由于度量链技术涵盖了计算系统固件、引导程序、操作系统等多个阶段,如要利用基于固件的可信根构建度量链,需要对计算机已有的各个组件进行修改,即每一组件都需要兼容基于固件的可信根。可信计算中规定,在计算机启动时,每一个组件需要计算下一个将执行的组件的完整性信息,将组件完整性信息记录到指定内存空间,同时将完整性信息扩展至可信根中记录,目前度量链的实现是基于硬件可信根实现的,硬件可信根完成内存地址映射后,所有组件都可通过读写相应寄存器内存地址来操作硬件可信根。但在TrustZone中,固件可信根运行在安全世界,普通世界中的程序无法直接操作可信根的内存地址,需要通过在安全世界和普通世界之间切换才能使用固件可信根,且在切换时还需保存普通世界的状态。如要实现兼容基于固件的可信根的度量链方案,需要对现有计算机组件做出较大改动。
发明内容
针对在TrustZone中,固件可信根运行在安全世界,普通世界中的程序无法直接操作可信根的内存地址,需要通过在安全世界和普通世界之间切换才能使用固件可信根,且在切换时还需保存普通世界的状态。如要实现兼容基于固件的可信根的度量链方案,需要对现有计算机组件做出较大改动的问题,本发明提供一种兼容基于固件的可信根的度量链构建方法、系统。
本发明的技术方案是:
一方面,本发明技术方案提供一种兼容基于固件的可信根的度量链构建方法,包括如下步骤:
在系统固件中集成可信根管理接口,初始化可信根管理接口提供统一的度量链构建接口;可信根管理接口负责系统安全世界与普通世界之间切换、保存切换状态以及与可信根的通信;
将度量链构建接口注册成系统运行时服务接口;
通过运行时服务接口将度量对象添加至度量链;度量对象包括度量对象信息和完整性信息;
各个组件通过运行时服务接口获取当前度量链的信息。
计算机组件包括系统固件、引导程序、操作系统内核,由于固件可信根运行在安全世界,普通世界中的程序无法直接操作可信根的内存地址,需要通过在安全世界和普通世界之间切换才能使用固件可信根,且在切换时还需保存普通世界的状态,在系统固件中加入基于固件的可信根管理接口,负责安全世界与普通世界之间切换、保存切换状态以及与可信根的通信。可信根管理接口抽象出与已有操作硬件可信根相同的固件可信根通信接口供固件使用。同时,为支持对硬件可信根的支持,保留已有的硬件可信根通信接口,在固件运行时判断使用何种接口。同时,为方便后续计算机组件与可信根通信构建度量链,系统固件提供运行时服务接口,后续组件直接调用该接口与可信根通信,而无需考虑系统使用的是硬件可信根还是基于固件的可信根。最后,计算机各个组件通过系统固件注册的运行时服务接口构建度量链,无需考虑与可信根的通信方式及度量信息存储方式。
进一步的,所述的初始化可信根管理接口的步骤包括:
检测硬件可信根是否存在;
若是,初始化硬件可信根;
注册硬件可信根通信接口与可信根管理接口通信;
若否,检测固件可信根是否存在,若存在,初始化固件可信根,注册固件可信根通信接口与可信根管理接口通信;若不存在,初始化失败。
可信根管理接口初始化,是判断可信根管理接口接收到的信息的信息源,判断信息是来源于硬件可信根通信接口还是固件可信根通信接口,判断当前计算机是否搭载硬件可信根,如搭载硬件可信根,则整个系统使用硬件可信根构建度量链,即,通过硬件可信根通信接口与可信根管理接口通信,不再使用固件可信根。
进一步的,提供统一的度量链构建接口的步骤包括:
将可信根管理接口与度量对象管理接口整合成统一的度量链构建接口。可信根管理接口初始化完成后,可通过可信根管理接口与可信根(硬件可信根或固件可信根)通信,无需关注可信根的具体实现方式。度量对象信息存储由度量信息管理接口负责。
进一步的,所述的通过运行时服务接口将度量对象添加至度量链的步骤包括:
通过运行时服务接口将度量对象信息存入存储区域,将完整性信息存入可信根。运行时服务接口在计算机运行的整个生命周期中一直存在,后续其他组件可直接调用该接口记录度量对象,而无需关注具体的可信根通信方式,且有统一的存储区域存放度量对象。
进一步的,所述的通过运行时服务接口将度量对象信息存入存储区域,将完整性信息存入可信根的步骤包括:
检测可信根管理接口状态;
判断可信根管理接口初始化是否成功;
若否,无法构建度量链;
若是,发送度量对象信息到运行时服务接口,运行时服务接口将度量对象信息存入存储区域;
计算引导程序的完整性信息并将完整性信息发送到运行时服务接口,运行时服务接口将完整性信息存入可信根;
计算内核的完整性信息,并将完整性信息发送到运行时服务接口,运行时服务接口将完整性信息存入可信根;
计算驱动程序的完整性信息,并将完整性信息发送到运行时服务接口,运行时服务接口将完整性信息存入可信根;
计算程序或动态库文件的完整性信息,并将完整性信息发送到运行时服务接口,运行时服务接口将完整性信息存入可信根。
进一步的,各个组件通过运行时服务接口获取当前度量链的信息的步骤包括:
检测可信根管理接口状态;
若状态异常,无可信根供查询;
若状态正常,通过运行时服务接口查询可信根中已有的完整性信息;
通过运行时服务接口查询存储区域已度量的度量对象信息;
返回查询到的度量对象信息和完整性信息。
构建度量链是为了使用度量对象,通过运行时服务接口各个组件可以通过该接口获取已度量的度量对象。
第二方面,本发明技术方案还提供一种兼容基于固件的可信根的度量链构建系统,包括集成在系统固件的可信根管理接口、硬件可信根通信接口、固件可信根通信接口;还包括初始化模块、注册模块;
可信根管理接口分别与硬件可信根通信接口和固件可信根通信接口连接;
初始化模块,用于初始化可信根管理接口提供统一的度量链构建接口;
注册模块,用于将度量链构建接口注册成系统运行时服务接口;
运行时服务接口,用于将接收到的度量对象添加至度量链;各个组件通过运行时服务接口获取当前度量链的信息;度量对象包括度量对象信息和完整性信息。
进一步的,初始化模块包括检测单元、初始化单元、注册单元;
检测单元,用于检测硬件可信根是否存在、检测固件可信根是否存在;
初始化单元,用于初始化硬件可信根、固件可信根;
注册单元,用于注册硬件可信根通信接口与可信根管理接口通信或注册固件可信根通信接口与可信根管理接口通信。
进一步的,初始化模块还包括整合单元,用于将可信根管理接口与度量对象管理接口整合成统一的度量链构建接口。
进一步的,运行时服务接口,用于将接收到的度量对象信息存入存储区域,接收到的完整性信息存入可信根。
进一步的,该系统还包括引导加载程序和操作系统内核;
系统固件、引导加载程序、操作系统内核均包括度量链模块;
度量链模块,用于系统固件加载前发送度量对象信息到运行时服务接口,运行时服务接口将度量对象信息存入存储区域;还用于将计算的引导程序的完整性信息发送到运行时服务接口;还用于将计算的内核的完整性信息发送到运行时服务接口;还用于将计算的驱动程序的完整性信息发送到运行时服务接口;还用于将计算的程序或动态库文件的完整性信息发送到运行时服务接口;
系统固件,用于将控制权交给引导程序前,计算引导程序的完整性信息并将完整性信息;
引导程序,用于计算内核的完整性信息,并将完整性信息发送到运行时服务接口,运行时服务接口将完整性信息存入可信根;
操作系统内核,用于加载各个驱动程序前,计算驱动程序的完整性信息,并将完整性信息发送到运行时服务接口,运行时服务接口将完整性信息存入可信根;还用于操作系统加载程序前,计算程序或动态库文件的完整性信息;
运行时服务接口,用于将接收到的度量对象信息存入存储区域,将接收到的完整性信息存入可信根。
从以上技术方案可以看出,本发明具有以下优点:使得度量链构建流程可以兼容基于固件的可信根,同时,使得已有基于硬件可信根的组件可以通过系统固件提供的运行时服务接口创建度量链,而无需考虑可信根的具体实例,也无需考虑如何在安全世界和普通世界之间的切换。同时,系统固件提供的运行时服务接口,计算机各个组件可以通过统一的运行时服务接口构建度量链,无需区分系统启动前和系统启动后的情况。
此外,本发明设计原理可靠,结构简单,具有非常广泛的应用前景。
由此可见,本发明与现有技术相比,具有突出的实质性特点和显著地进步,其实施的有益效果也是显而易见的。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一个实施例的方法的示意性流程图。
图2是本发明一个实施例的初始化示意性流程图。
图3是本发明一个实施例的度量链构建示意性流程图。
图4是本发明一个实施例的度量对象查询示意性流程图。
图5是本发明一个实施例的系统的示意性框图。
图中,10-系统固件,11-可信根管理接口,12-硬件可信根通信接口,13-固件可信根通信接口,14-度量链构建接口,15-运行时服务接口,16-度量对象信息管理模块,17-度量对象管理接口,18-固件可信根实例,19-度量链模块,20-引导加载程序,30-操作系统内核。
具体实施方式
为了使本技术领域的人员更好地理解本发明中的技术方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
基于固件的可信根:Firmware-Based Root of Trust,一种运行在内存安全域的可信根模拟程序,目前已有的实现有fTPM(Firmware-Based Trusted Platform Module,基于固件的可信平台模块)。为行文方便,文中固件可信根与基于固件的可信根指同一对象;
度量链技术:可信计算体系中一种构建计算机组件完整性链表的技术,在计算机启动过程中计算各个组件(如系统固件、引导程序、操作系统内核)等的完整性信息;
TrustZone技术:ARM处理器体系中的一种内存隔离技术,一般而言,TrustZone内存空间称为安全世界或安全域,与之相对的是普通世界或普通域;
系统固件:System Firmware,固化在存储芯片中的程序,一般用于完成计算机硬件初始化、为操作系统提供硬件管理接口等功能。
引导程序:BootLoader,运行在系统固件与操作系统内核之间的一个程序,一般用于建立内存映射空间、加载操作系统内核等。
如图1所示,本发明实施例提供一种兼容基于固件的可信根的度量链构建方法,包括如下步骤:
步骤1:在系统固件中集成可信根管理接口,初始化可信根管理接口提供统一的度量链构建接口;
步骤2:将度量链构建接口注册成系统运行时服务接口;
步骤3:通过运行时服务接口将度量对象添加至度量链;度量对象包括度量对象信息和完整性信息;
步骤4:各个组件通过运行时服务接口获取当前度量链的信息。
需要说明的是,计算机组件包括系统固件、引导程序、操作系统内核,由于固件可信根运行在安全世界,普通世界中的程序无法直接操作可信根的内存地址,需要通过在安全世界和普通世界之间切换才能使用固件可信根,且在切换时还需保存普通世界的状态,在系统固件中加入可信根管理接口,负责安全世界与普通世界之间切换、保存切换状态以及与可信根的通信。可信根管理接口抽象出与已有操作硬件可信根相同的固件可信根通信接口供固件使用。同时,为支持对硬件可信根的支持,保留已有的硬件可信根通信接口,在固件运行时判断使用何种接口。同时,为方便后续计算机组件与可信根通信构建度量链,系统固件提供运行时服务接口,后续组件直接调用该接口与可信根通信,而无需考虑系统使用的是硬件可信根还是基于固件的可信根。最后,计算机各个组件通过系统固件注册的运行时服务接口构建度量链,无需考虑与可信根的通信方式及度量信息存储方式。
如图2所示,在有些实施例中,步骤1中,所述的初始化可信根管理接口的步骤包括:
步骤11:检测硬件可信根是否存在;若是,执行步骤12,否则执行步骤14;
步骤12:初始化硬件可信根;
步骤13:注册硬件可信根通信接口与可信根管理接口通信;
步骤14:检测固件可信根是否存在,若是,执行步骤15,否则,跳转步骤17;
步骤15:初始化固件可信根;
步骤16:注册固件可信根通信接口与可信根管理接口通信;
步骤17:结束,初始化失败。
步骤1中,提供统一的度量链构建接口的步骤包括:将可信根管理接口与度量对象管理接口整合成统一的度量链构建接口。
需要说明的是,可信根管理接口初始化,是判断可信根管理接口接收到的信息的信息源,判断信息是来源于硬件可信根通信接口还是固件可信根通信接口,判断当前计算机是否搭载硬件可信根,如搭载硬件可信根,则整个系统使用硬件可信根构建度量链,即,通过硬件可信根通信接口与可信根管理接口通信,不再使用固件可信根。
提供统一的运行时服务接口供调用者使用,因此在初始化阶段,需要根据计算机具体配置注册通信接口供调用者使用。
首先,检测并初始化硬件可信根:硬件可信根一般是一种可插拔的计算机板卡,需要接入固定的主板插槽中,可以通过检测固定接口来判断当前计算机是否搭载硬件可信根,如搭载硬件可信根,则整个系统使用硬件可信根构建度量链,不再使用固件可信根。检测通过后,完成硬件可信根内存映射,可直接通过访问固定内存与硬件可信根通信;
其次,检测固件可信根:在使用固件可信根前,固件可信根必须在TrustZone的安全世界中实例化,实例化完成以后,TrustZone固定一个唯一识别码来标识该实例,通过该索引标识信息可以判断该机器是否配备了固件可信根;
第三,初始化固件可信根:TrustZone的安全世界中的每一个实例都有一块共享存储用于安全世界和普通世界之间交换信息,通过索引固件可信根的唯一识别码来获取并记录该共享存储位置信息,同时开辟一块存储区域用于暂存交换信息。
在有些实施例中,步骤3中,所述的通过运行时服务接口将度量对象添加至度量链的步骤包括:
通过运行时服务接口将度量对象信息存入存储区域,将完整性信息存入可信根。运行时服务接口在计算机运行的整个生命周期中一直存在,后续其他组件可直接调用该接口记录度量对象,而无需关注具体的可信根通信方式,且有统一的存储区域存放度量对象。如图3所示,具体步骤包括:
步骤31:检测可信根管理接口状态;
步骤32:判断可信根管理接口初始化是否成功;若是,执行步骤33,否则跳转步骤38;
步骤33:发送度量对象信息到运行时服务接口,运行时服务接口将度量对象信息存入存储区域;
步骤34:计算引导程序的完整性信息并将完整性信息发送到运行时服务接口,运行时服务接口将完整性信息存入可信根;
步骤35:计算内核的完整性信息,并将完整性信息发送到运行时服务接口,运行时服务接口将完整性信息存入可信根;
步骤36:计算驱动程序的完整性信息,并将完整性信息发送到运行时服务接口,运行时服务接口将完整性信息存入可信根;
步骤37:计算程序或动态库文件的完整性信息,并将完整性信息发送到运行时服务接口,运行时服务接口将完整性信息存入可信根;
步骤38:结束,无法构建度量链。
度量链分为两部分内容,一部分是记录在可信根中完整性信息,另一部分是记录在存储区域中的度量对象信息。可信根管理模块初始化完成后,可通过可信根管理模块与可信根通信,无需关注可信根的具体实现方式。度量对象信息存储由度量信息管理模块负责。
需要说明的是,步骤3中检测可信根管理接口的状态,即,可信根管理接口的初始化状态,若不正常,则意味着计算机没有搭载硬件可信根或固件可信根,无法构建度量链;
度量系统固件:系统固件一般由多个固件卷组成,各个固件卷独立加载,每次加载固件卷前,通过运行时服务接口将度量对象存入存储区域;
度量引导程序:系统固件将控制权交给引导程序前,计算引导程序的完整性信息,通过运行时服务记录该完整性信息;
度量操作系统内核:引导程序计算内核的完整性信息,通过运行时服务记录该完整性信息;
度量操作系统驱动:操作系统内核加载各个驱动程序前,计算驱动程序的完整性信息,通过运行时服务记录该完整性信息;
度量系统程序:操作系统加载程序前,操作系统内核计算程序或动态库文件的完整性信息,通过运行时服务记录该完整性信息。
如图4所示,在有些实施例中,步骤4中,各个组件通过运行时服务接口获取当前度量链的信息的步骤包括:
步骤41:检测可信根管理接口状态;
步骤42:判断是否异常,若是,跳转步骤46;否则,执行步骤43;
步骤43:通过运行时服务接口查询可信根中已有的完整性信息;
步骤44:通过运行时服务接口查询存储区域已度量的度量对象信息;
步骤45:返回查询到的度量对象信息和完整性信息;
步骤46:结束,无可信根供查询。
构建度量链是为了使用度量对象,通过运行时服务接口提供的度量对象查询接口,各个组件可以通过该接口获取已度量的度量对象。
首先,检测可信根管理接口状态:如果可信根管理接口状态不正常,则意味着计算机没有搭载硬件可信根或固件可信根,也无度量信息;
其次,获取完整性信息:通过可信根管理接口查询可信根中已有的完整性信息;
第三,获取度量对象信息:通过度量对象信息管理模块查询已度量的度量对象信息;
第四,返回度量对象:完整性信息和度量对象信息共同构成度量对象,供调用者使用。
需要说明的是,通过上述实施例,本申请系统固件集成固件可信根通信功能,在初始化阶段确定是否使用固件可信根;系统固件将度量链构建接口注册为运行时服务接口;计算机组件通过运行时服务接口记录度量对象,而不是直接与可信根通信;各个组件可以通过运行时服务获取当前已构建的度量链的信息。
如图5所示,本发明技术方案还提供一种兼容基于固件的可信根的度量链构建系统,包括集成在系统固件10的可信根管理接口11、硬件可信根通信接口12、固件可信根通信接口13;还包括初始化模块、注册模块;
可信根管理接口11分别与硬件可信根通信接口12和固件可信根通信接口13连接;可信根管理接口11用于负责安全世界与普通世界之间切换、保存切换状态以及与可信根的通信;
初始化模块,用于初始化可信根管理接口11提供统一的度量链构建接口14;
注册模块,用于将度量链构建接口14注册成系统运行时服务接口15;
运行时服务接口15,用于将接收到的度量对象添加至度量链;各个组件通过运行时服务接口15获取当前度量链的信息;度量对象包括度量对象信息和完整性信息。
在有些实施例中,初始化模块包括检测单元、初始化单元、注册单元;
检测单元,用于检测硬件可信根是否存在、检测固件可信根是否存在;
初始化单元,用于初始化硬件可信根、固件可信根;
注册单元,用于注册硬件可信根通信接口12与可信根管理接口11通信,注册固件可信根通信接口13与可信根管理接口11通信。
在有些实施例中,该系统还包括度量对象信息管理模块16,度量对象信息管理模块16集成有度量对象管理接口17;初始化模块还包括整合单元,用于将可信根管理接口11与度量对象管理接口17整合成统一的度量链构建接口14。运行时服务接口15,用于将接收到的度量对象信息存入存储区域,接收到的完整性信息存入可信根。
在使用固件可信根前,固件可信根必须在TrustZone的安全世界中实例化,实例化完成以后,TrustZone固定一个唯一识别码来标识该固件可信根实例18,通过该索引标识信息可以判断该机器是否配备了固件可信根。
需要说明的是,该系统还包括引导加载程序20和操作系统内核30;
系统固件10、引导加载程序20、操作系统内核30均包括度量链模块19;;
度量链模块19,用于系统固件加载前发送度量对象信息到运行时服务接口15,还用于将计算的引导程序的完整性信息发送到运行时服务接口15;还用于将计算的内核的完整性信息发送到运行时服务接口15;还用于将计算的驱动程序的完整性信息发送到运行时服务接口15;还用于将计算的程序或动态库文件的完整性信息发送到运行时服务接口15;
系统固件10,用于将控制权交给引导程序前,计算引导程序的完整性信息并将完整性信息;
引导加载程序20,用于计算内核的完整性信息,并将完整性信息发送到运行时服务接口,运行时服务接口将完整性信息存入可信根;
操作系统内核30,用于加载各个驱动程序前,计算驱动程序的完整性信息,并将完整性信息发送到运行时服务接口,运行时服务接口将完整性信息存入可信根;还用于操作系统加载程序前,计算程序或动态库文件的完整性信息;
运行时服务接口15,用于将接收到的度量对象信息存入存储区域,将接收到的完整性信息存入可信根。
尽管通过参考附图并结合优选实施例的方式对本发明进行了详细描述,但本发明并不限于此。在不脱离本发明的精神和实质的前提下,本领域普通技术人员可以对本发明的实施例进行各种等效的修改或替换,而这些修改或替换都应在本发明的涵盖范围内/任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
Claims (5)
1.一种兼容基于固件的可信根的度量链构建方法,其特征在于,包括如下步骤:
在系统固件中集成可信根管理接口,初始化可信根管理接口提供统一的度量链构建接口;其中,可信根管理接口负责系统安全世界与普通世界之间切换、保存切换状态以及与可信根的通信;
将度量链构建接口注册成系统运行时服务接口;
通过运行时服务接口将度量对象添加至度量链;度量对象包括度量对象信息和完整性信息;
各个组件通过运行时服务接口获取当前度量链的信息;
所述的初始化可信根管理接口的步骤包括:
检测硬件可信根是否存在;
若是,初始化硬件可信根;
注册硬件可信根通信接口与可信根管理接口通信;
若否,检测固件可信根是否存在,若存在,初始化固件可信根,注册固件可信根通信接口与可信根管理接口通信;若不存在,初始化失败;
通过运行时服务接口将度量对象添加至度量链的步骤包括:
通过运行时服务接口将度量对象信息存入存储区域,将完整性信息存入可信根;
通过运行时服务接口将度量对象信息存入存储区域,将完整性信息存入可信根的步骤包括:
检测可信根管理接口状态;
判断可信根管理接口初始化是否成功;
若否,无法构建度量链;
若是,发送度量对象信息到运行时服务接口,运行时服务接口将度量对象信息存入存储区域;
计算引导加载程序的完整性信息并将完整性信息发送到运行时服务接口,运行时服务接口将完整性信息存入可信根;
计算内核的完整性信息,并将完整性信息发送到运行时服务接口,运行时服务接口将完整性信息存入可信根;
计算驱动程序的完整性信息,并将完整性信息发送到运行时服务接口,运行时服务接口将完整性信息存入可信根;
计算程序或动态库文件的完整性信息,并将完整性信息发送到运行时服务接口,运行时服务接口将完整性信息存入可信根。
2.根据权利要求1所述的兼容基于固件的可信根的度量链构建方法,其特征在于,提供统一的度量链构建接口的步骤包括:
将可信根管理接口与度量对象管理接口整合成统一的度量链构建接口。
3.根据权利要求2所述的兼容基于固件的可信根的度量链构建方法,其特征在于,各个组件通过运行时服务接口获取当前度量链的信息的步骤包括:
检测可信根管理接口状态;
若状态异常,无可信根供查询;
若状态正常,通过运行时服务接口查询可信根中已有的完整性信息;
通过运行时服务接口查询存储区域已度量的度量对象信息;
返回查询到的度量对象信息和完整性信息。
4.一种兼容基于固件的可信根的度量链构建系统,其特征在于,包括集成在系统固件的可信根管理接口、硬件可信根通信接口、固件可信根通信接口;还包括初始化模块、注册模块;
可信根管理接口分别与硬件可信根通信接口和固件可信根通信接口连接;可信根管理接口,用于负责系统安全世界与普通世界之间切换、保存切换状态以及与可信根的通信;
初始化模块,用于初始化可信根管理接口提供统一的度量链构建接口;
注册模块,用于将度量链构建接口注册成系统运行时服务接口;
运行时服务接口,用于将接收到的度量对象添加至度量链;各个组件通过运行时服务接口获取当前度量链的信息;度量对象包括度量对象信息和完整性信息; 具体用于将接收到的度量对象信息存入存储区域,接收到的完整性信息存入可信根; 初始化模块包括检测单元、初始化单元、注册单元;
检测单元,用于检测硬件可信根是否存在、检测固件可信根是否存在;
初始化单元,用于初始化硬件可信根、固件可信根;
注册单元,用于注册硬件可信根通信接口与可信根管理接口通信,注册固件可信根通信接口与可信根管理接口通信;
该系统还包括引导加载程序和操作系统内核;
系统固件、引导加载程序、操作系统内核均包括度量链模块;
度量链模块,用于系统固件加载前发送度量对象信息到运行时服务接口,还用于将计算的引导加载程序的完整性信息发送到运行时服务接口;还用于将计算的内核的完整性信息发送到运行时服务接口;还用于将计算的驱动程序的完整性信息发送到运行时服务接口;还用于将计算的程序或动态库文件的完整性信息发送到运行时服务接口;
系统固件,用于将控制权交给引导加载程序前,计算引导加载程序的完整性信息并将完整性信息发送到运行时服务接口;
引导加载程序,用于计算内核的完整性信息,并将完整性信息发送到运行时服务接口;
操作系统内核,用于加载各个驱动程序前,计算驱动程序的完整性信息,并将完整性信息发送到运行时服务接口,还用于操作系统加载程序前,计算程序或动态库文件的完整性信息。
5.根据权利要求4所述的兼容基于固件的可信根的度量链构建系统,其特征在于,初始化模块还包括整合单元,用于将可信根管理接口与度量对象管理接口整合成统一的度量链构建接口。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110962007.1A CN113867805B (zh) | 2021-08-20 | 2021-08-20 | 一种兼容基于固件的可信根的度量链构建方法、系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110962007.1A CN113867805B (zh) | 2021-08-20 | 2021-08-20 | 一种兼容基于固件的可信根的度量链构建方法、系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113867805A CN113867805A (zh) | 2021-12-31 |
CN113867805B true CN113867805B (zh) | 2023-08-15 |
Family
ID=78988064
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110962007.1A Active CN113867805B (zh) | 2021-08-20 | 2021-08-20 | 一种兼容基于固件的可信根的度量链构建方法、系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113867805B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102136043A (zh) * | 2010-01-22 | 2011-07-27 | 中国长城计算机深圳股份有限公司 | 一种计算机系统及其度量方法 |
CN106909835A (zh) * | 2016-12-28 | 2017-06-30 | 中软信息系统工程有限公司 | 一种基于cpu时空隔离机制实现内核完整性度量的方法 |
CN111382445A (zh) * | 2020-03-03 | 2020-07-07 | 首都师范大学 | 利用可信执行环境系统提供可信服务的方法 |
-
2021
- 2021-08-20 CN CN202110962007.1A patent/CN113867805B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102136043A (zh) * | 2010-01-22 | 2011-07-27 | 中国长城计算机深圳股份有限公司 | 一种计算机系统及其度量方法 |
CN106909835A (zh) * | 2016-12-28 | 2017-06-30 | 中软信息系统工程有限公司 | 一种基于cpu时空隔离机制实现内核完整性度量的方法 |
CN111382445A (zh) * | 2020-03-03 | 2020-07-07 | 首都师范大学 | 利用可信执行环境系统提供可信服务的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN113867805A (zh) | 2021-12-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7747848B1 (en) | Updating the system management information of a computer system | |
US5854905A (en) | Extensible bios for boot support of devices on multiple hierarchical buses | |
US5634137A (en) | Method and apparatus for updating system configuration based on open/closed state of computer housing cover | |
CN101369246B (zh) | 使用存储器映射函数来映射存储器缺陷的系统和方法 | |
JP4913302B2 (ja) | 言語サブセットの妥当性検査 | |
US7587612B2 (en) | Generating and communicating information on locations of program sections in memory | |
US9395968B1 (en) | Uniquely identifying and validating computer system firmware | |
US7395420B2 (en) | Using protected/hidden region of a magnetic media under firmware control | |
US20070061818A1 (en) | Detection of devices during operating system setup | |
US20080005728A1 (en) | Methods, systems, and computer program products for enabling cross language access to an addressable entity in an execution environment | |
US20060064576A1 (en) | Boot systems and methods | |
US7454547B1 (en) | Data exchange between a runtime environment and a computer firmware in a multi-processor computing system | |
US20080005727A1 (en) | Methods, systems, and computer program products for enabling cross language access to an addressable entity | |
BRPI0618027A2 (pt) | configuração de extensões isoladas e acionadores de dispositivo | |
US20040267708A1 (en) | Device information collection and error detection in a pre-boot environment of a computer system | |
US20190065300A1 (en) | Method of retrieving debugging data in uefi and computer system thereof | |
EP2339499A1 (en) | Storage device, information processing device, and program | |
CN114830085A (zh) | 用于文件系统虚拟化环境中的操作系统引导的分层复合引导设备和文件系统 | |
US7484083B1 (en) | Method, apparatus, and computer-readable medium for utilizing BIOS boot specification compliant devices within an extensible firmware interface environment | |
CN113867805B (zh) | 一种兼容基于固件的可信根的度量链构建方法、系统 | |
US7246038B2 (en) | Method, system, and article of manufacture for running diagnostics related to a device | |
US5940587A (en) | System and method for trap address mapping for fault isolation | |
CN113900729B (zh) | 一种SteamVR系统的追踪设备参数配置方法及装置 | |
CN109426546A (zh) | 应用启动方法及装置、计算机存储介质及设备 | |
CN113792299A (zh) | 一种基于ftrace技术的Linux系统保护方法 |
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 |