APP下载

一种软件源的可信管控模型设计*

2020-04-25王效武

通信技术 2020年4期
关键词:基准值度量进程

王效武,刘 英,闫 石

(中国电子科技集团公司第三十研究所,四川 成都 610041)

0 引 言

随着互联网的快速普及和发展,网络安全的形势与挑战也日益严峻。安全隐私认知调查统计,有92.5%的用户会把隐私放在手机或个人电脑中,因此手机或电脑成为泄漏人们隐私的手雷。

如何主动防御,保护个人隐私、知识产权、商业机密乃至国家安全,阻挡泄密之矛,需要主动防御的可信计算之盾。在完善网络安全法的同时,需积极加快安全可信关键技术的攻关与应用推广[1]。

2005 年12 月,在沈昌祥院士倡导下,我国可信芯片、可信计算产品的相关厂商和科研机构成立了“可信计算密码支撑平台联合工作组”。近年来,国家973 计划、国家自然科学基金、相关部委科研基金等国家有关基金大力支持,可信计算技术在信息系统安全保护建设中得到了应用与实践。例如,在我国信息系统等级保护建设、重要信息系统安全改造中,可信计算技术和产品对构建高安全等级信息系统发挥了重要的可信保障作用[2]。

目前,可信技术已应用于个人计算机、手机、门禁监控、智能电网[3]、信息系统等多个领域,在人们的生活、工作中得到了广泛应用。可信计算信任体系随着技术的发展在不断完善,尤其是关于软件全生命周期的可信证明需要进一步的思考。

1 对目前可信计算信任链的分析

可信计算的目标是证明一个实体是否可信。关于什么是“可信”,可信计算组织(Trusted Computing Group,TCG)将其定义为如果一个实体的行为是以预期的方式完成预期的目标,那么该实体是可信的。从该定义可以看出,如果一个实体想要被确认为可信的,那么它的行为需要有可控性,同时结果是可以预测的。可信计算的基本思想是先在系统中建立一个信任根,以这个信任根为起点再建立一条信任链,从硬件平台、操作系统到应用,通过一条信任链一级测量一级,一级验证一级,把信任关系延伸至整个系统,从而确保信息系统总是以预期的方式在运行,确保整个计算机系统的可信。信任链传递机制如图1 所示。

图1 信任链传递机制

可信度量根的核心(Core Root of Trust for Measurement,CRTM)内置于可信平台模块(Trusted Platform Module,TPM)[4]芯片内部,完整性度量值也存储于TPM 中,由TPM 为其提供物理保护。TPM 可以完成可信度量及存储、密钥生成、加密、签名等功能。TPM 作为可信根是最先启动的部件,是信任状态传递的发起者,因此被系统默认为可信。TPM 启动并完成自检,而后由CRTM 对BIOS、操作系统加载器进行完整性度量,并提取平台配置寄存器(Platform Configuration Register,PCR)中的基准值进行验证,验证无误则启动操作系统,并对其进行完整性验证,然后对各应用软件进行动态度量,完成信任链的传递。

计算系统中,应用软件一般较多且为最常变化的部分。应用软件的数量较大时,会增加TPM的负担,对系统的启动时间影响较大,从而影响用户的使用体验。业务软件常常需要更新换代或新增、删除等,处于时时变化的状态,会对信任链的稳定带来风险,因此需要改善对业务软件的度量方式。

2 对目前可信度量值采集流程的分析

可信度量值采集主要有两个阶段,分别为开通阶段和使用阶段。

在开通阶段,设备的硬件平台、操作系统已安装完成,部分应用软件也已安装完成,可信状态还未启用。采用完整性度量值采集工具,采集硬件、BIOS、系统、应用程序的可信度量初始值,并写入TPM的PCR 基准库中。图2 为开通阶段应用程序的度量值采集流程[5]。

图2 应用软件的度量值采集流程

在使用阶段,软件因使用需求进行删除、更新升级、新增等变化。软件删除的同时,需删除对应的PCR 基准库中的基准值。软件更新升级需重新采集PCR 基准值,并更新基准库,流程同图2。新增软件采用同样的流程采集度量基准值,并在基准库中增加相应的基准值。

从采集流程分析,存在两方面的问题。

(1)相同的软件在不同的设备上都进行度量值采集,软件量较多或较复杂时,采集时间较长,可能长达几个小时。它的工作如果由用户来进行,对于成千上万的用户而言是巨大的重复工作,且用户体验会很差。

(2)采集时,系统默认这些应用程序是可信的,并未对这些程序进行安全性检测。如果携带病毒、木马、安全漏洞、非法后门等,将会对系统安全产生致命的威胁。

3 软件源的可信管控模型

按照可信证明的定义:计算实体向对等实体报告自身状态的可信信息,以使对方验证其状态是否符合预期的过程。软件全生命周期可信证明包括3个阶段:(1)来源可信,即软件的来源是可预期的;(2)加载可信,即软件加载过程中,进程轨迹是可预期的;(3)运行可信,软件运行过程中,运行行为是可预期的。

软件来源可信是目前最欠缺的。软件加载可信已有较为成熟的研究,运行可信的证明最复杂。武汉大学提出了一种基于行为监控的可信证明模型,通过引入行为监控代理,对程序行为进行度量和证明,使远程证明具备动态性。通过对系统进程信息的获取和监视,监控系统中的进程,使行为可预见。该方法不仅监控特定的程序,而且对所有正在运行的程序实施监控。远程证明不只是在平台接入时实施,在全部通信过程中也进行动态的远程证明。然而,要验证证明程序的行为可信性,需要在质询方事先存储大量的程序行为预期信息,且不同的环境、不同的输入程序运行的行为也可能不同,可见这是一项异常复杂且不易实施的工作。

如果在软件创建期间就规范和评测软件的行为,并使软件的行为不可随意改变,那么软件的行为就是可预期的。因此,软件来源的可信证明是最重要的阶段,也是目前急需完善的阶段。

软件源的管理需要规范化,通过对软件测评中心、软件认证中心、软件可信管维中心的建立,实现对软件“创建-采集-认证-使用”全过程的可信管控。它的可信管控模型如图3 所示。

模型的主要内容如下。

①软件厂家完成软件的制作后,将程序、源代码及使用需求、规范性文件一起提交给软件测评中心,申请软件测评。

②软件测评中心首先对使用需求、规范性文件进行合理性审查,形成软件测试大纲,并依据测试大纲对软件进行行为正确性和安全性测试,包括对源代码的白盒测试,避免非法后门、安全漏洞、违规行为等。软件测评中心对软件的安全负重要责任,因此这个环节需要进行非常专业的全面测试。

图3 软件源的可信管控模型

③软件完成测评和回归后,由软件测评中心将程序文件、版本号及安装使用说明提交到软件认证中心,申请可信认证。

④在软件认证中心部署可信采集设备,对程序进行模拟安装和测试运行。在此过程中进行软件运行轨迹提取和度量特征值采集,并完成程序文件的签名,生成新的文件即软件可信表征文件。

⑤软件认证中心将新生成的可信表征文件发送给软件厂家,并同时将可信证明信息同步给可信软件管维中心。可信证明信息主要包括可信签名证书、软件版本号等信息。

⑥可信认证后的软件发送给软件厂家后,用户可以按需采购。如果为非赢利性软件,软件厂家可将软件可信表征文件同步给可信软件管维中心,写入可信软件池中。

⑦可信软件管维中心将可信软件及可信证明信息写入可信软件池中,并对外发布,提供给合法的可信计算平台用户下载使用。

⑧用户获得软件可信表征文件后,首先到可信软件管维中心下载可信证明信息,对软件进行验签,并提取文件中的度量基准值写入PCR 基准库,依据PCR 基准值对软件进行度量,通过度量后软件可正常运行和使用。

从流程中可以看出:(1)软件的度量特征值采集是由软件认证中心统一完成的,用户不需要重复繁琐的采集工作;(2)先由测评中心进行安全认定和行为认定,通过测评后由测评中心直接提交到软件认证中心进行统一签名,一个版本一个签名,确定软件版本,认可安全性和软件行为,并保证软件行为不可更改,为运行可信奠定基础;(3)可信证明信息及可信软件是由可信软件管维中心公开发布的,由可信第三方进行管理和维护,较大程度提高了软件源的可信度。

4 软件可信表征格式设计

软件可信封装是在软件认证中心完成的。软件认证中心通过可信采集设备对程序文件进行可信认证。可信认证包括软件可信度量基准值的采集和软件的认证签名两方面内容。将采集到的进程轨迹、度量基准值及签名数据添加到程序文件最后形成新的文件,即软件可信表征文件,格式设计如图4所示。

图4 软件可信表征格式设计

软件可信表征由程序实体、版本号、进程轨迹、度量基准值和可信签名5 个数据项组成。程序实体为软件测评中心测评认定后的程序文件;版本号为软件版本编号,具有唯一性,与程序实体相对应,能体现创建时间、生产厂家、测评单位以及认证单位等信息,便于用户对照使用和历史追溯;进程轨迹,软件运行中有若干个进程,一个进程嵌入一个进程,在采集阶段捕捉每一个进程及进程逻辑关系,形成进程轨迹;度量基准值,是对程序实体及进程的完整性度量,形成一系列基准值,度量基准值与进程轨迹相对应;可信签名,采用可信公钥算法对程序实体、版本号、进程轨迹、度量基准值等数据项的签名。格式说明详见表1。

5 基于可信表征的可信度量流程

表1 软件可信表征格式说明

基于可信表征的软件可信度量流程,如图5所示。

图5 基于可信表征的软件度量流程

①提取软件可信表征文件和可信证明信息中的版本号进行一致性比对,不一致则结束流程;

②提取可信证明信息中的可信签名证书,对软件可信表征文件进行签名验签,未通过验签则结束流程;

③提取软件可信表征文件中的进程轨迹和基准值写入PCR 基准库;

④提取软件可信表征文件中的程序实体,安装程序并执行,通过进程监控工具对其进行全程监控,捕捉每一个释放的进程;

⑤通过动态度量模块对每一个捕捉到的进程进行动态度量,结合PCR 基准库中的度量值和进程轨迹进行正确性鉴别,如果不正确终止程序的运行;

⑥所有可信鉴别情况写入安全审计。

6 结 语

基于目前可信计算信任链和度量基准值采集流程存在的问题,提出了软件源的可信管控模型,实现了软件的安全认定、度量基准值的统一采集、可信第三方的集中管控,为软件运行可信奠定了基础,降低了可信度量值采集工作的复杂度,对软件源的可信管控实施具有一定的指导意义。此外,进行了软件可信表征格式和基于可信表征的可信度量流程设计,将软件源的可信延伸至软件加载的可信和软件运行的可信,较大程度提升了软件全生命周期的可信证明强度。

猜你喜欢

基准值度量进程
轮胎实车磨耗试验数据分析方法的研究
鲍文慧《度量空间之一》
基于5G用户体验的业务质量优化模型研究及其应用
债券市场对外开放的进程与展望
代数群上由模糊(拟)伪度量诱导的拓扑
改革开放进程中的国际收支统计
突出知识本质 关注知识结构提升思维能力
基于加权模糊C-均值聚类的锅炉运行参数基准值建模
度 量
一种基于改进差分的测井数据可逆变长码压缩方法