APP下载

基于可信固件的软件分发系统研究与设计

2017-12-25武宗涛

网络安全技术与应用 2017年12期
关键词:固件客户端终端

◆赵 进 武宗涛

(海军计算技术研究所 北京 100841)

基于可信固件的软件分发系统研究与设计

◆赵 进 武宗涛

(海军计算技术研究所 北京 100841)

内网环境下计算机终端部署着大量工作软件,必须进行严格的管控保证软件安装和更新。传统机制是基于操作系统部署软件维护程序,实现对终端工作软件安装和更新等管理。这种方式下维护软件运行于操作系统之上,容易被卸载和中止。本文基于可信固件研究设计了在终端可信固件层部署软件分发系统,实现软件分发功能。该系统能够保证计算机在上电开机及操作系统启动后根据策略,对工作软件进行安装、完整性检测及更新。

可信固件;软件;分发系统;设计

0 引言

内网环境下,计算机终端运行着大量软件程序,创建和存放着重要数据,必须进行严格的管理,以保证终端软件及时安装和更新[1]。随着信息化进程的快速发展,内网信息安全防护已经逐步由核心与主干的防护,转向网络内部的每一个终端的防护[2]。因此,对内网环境下计算机终端进行统一的软件更新和维护成为亟待解决的问题。

传统的终端软件维护方法是在操作系统中安装和运行特定的软件维护程序,实现对终端软件安装和更新的管控[3]。但是,这种安全软件运行于操作系统之上,容易被用户卸载和中止。另一方面,当内网终端重装系统或更换硬盘后,需要重新安装大量软件,才能重建用户所需的计算环境[4][5]。

在国际上,可信计算是由可信计算组织(Trusted Computing Group,TCG)进行推动和开发,基本的思路是在计算机主板上配备“信任根”(可信密码芯片)。该信任根的可信性由物理安全和管理安全确保;通过该信任根构建信任链,能够建立从信任根到硬件平台,从硬件平台到操作系统,从操作系统到应用的认证,把信任扩展到整个可信计算领域。

固件是计算机中不可缺少的重要部件,是连接计算机基础硬件和系统软件的桥梁。在可信计算机系统中的固件,称之为可信固件[8]。计算机开机后,可信密码芯片首先会对可信固件进行主动的可信度量,保证固件的完整性。在此基础上,固件会对计算机的关键硬件和核心软件进行度量,保证硬件不被替换、系统软件不被篡改。同时,固件能够直接对操作系统中的特定路径和文件进行操作,包括查看、修改、删除。因此,如果在固件中部署可以在系统中自动运行的软件分发客户端,将能够保证用户计算机方便、快捷、可靠地进行软件更新[6]。

本文第一节研究设计了基于可信固件的软件分发系统总体架构;第二节研究设计了软件分发系统服务器功能;第三节研究设计了软件分发客户端功能;第四节介绍了软件分发系统工作流程;第五节对全文进行了总结。

1 基于可信固件的软件分发系统总体架构设计

基于可信固件的软件分发系统主要包括软件分发服务器和内网终端两个部分,如图1所示。

其中,软件分发服务器的主要作用是各种硬件平台、各种操作系统的内网终端进行统一软件分发管理。软件分发服务器与部署在可信固件中的软件分发客户端进行交互,实现对终端信息的自动收集、解析判断、选择和推送软件、软件自动或提示安装。

内网环境的计算机终端需要在可信固件中部署软件分发客户端。在计算机终端开机后,可信固件将验证计算机关键硬件和核心软件的完整性,特别是软件分发客户端是否已经部署。如果软件分发客户端未能部署或运行,可信固件将对其进行恢复。软件分发客户端将收集终端的软硬件信息,发送到软件分发服务器。软件分发服务器将会根据给定的安全软件安装策略,将适配的软件和安装脚本推送到终端。软件分发客户端将根据安装脚本对软件进行安装。

2 软件分发系统服务器功能和设计

图2展示了软件分发服务器的主要功能,包括终端身份认证服务、软件仓库服务、远程软件推送服务、终端分组管理服务、安全策略配置服务、日志记录服务,其具体功能包括。

2.1 终端身份认证服务

身份验证服务存储了客户端的终端标识,并将对客户端的身份进行验证。计算机终端接入网络后,能够自动向终端管理维护系统发送硬件平台信息,包括整机信息、CPU信息、主板序列号、BIOS信息、终端标识。这些信息一方面用于对终端进行身份认证,另一方面也会用于根据硬件平台和操作系统对终端自动选择合适版本。

2.2 软件仓库服务

软件仓库服务保存了所有终端需要安装的软件,每个软件在入库时都需要经过测试和验证,并配套了完整性度量值、安装和卸载脚本。

2.3 远程软件推送服务

远程软件推送管理服务针对每台终端或一组终端配置需要的安装的软件。如根据部门需求,配置相应的软件安装策略。

2.4 终端分组管理服务

终端分组管理服务能够将计算机终端与使用者信息进行绑定。使用者信息包括姓名、部门、编号等信息。管理员能够根据终端类型、操作系统类型、部门、对终端进行分类,实现分组管理。

2.5 安全策略配置服务

安全策略配置能够对每台终端或一组终端进行安全策略配置,如相应用户的密级、权限等。

2.6 日志记录服务

日志记录服务能够记录到每一台终端软件安装的状态。如果终端出现异常,会立即向管理员报警并采取相应的安全措施。

图2 软件分发服务器功能

3 软件分发客户端功能和设计

计算机终端的可信固件中除了可完成硬件初始化和操作系统引导等基本功能的固件核心镜像外,还包括了三个部分,一是度量检测固件模块,二是加载安装固件模块,三是软件分发客户端,如图3所示。

3.1 度量检测固件模块

度量检测固件模块将在开机过程中对操作系统中是否部署软件分发客户端进行检测。如果软件分发客户端被损坏,则进行自动恢复。

3.2 加载安装固件模块

加载安装固件模块的主要作用是在固件开机过程中对软件分发客户端的软件文件进行恢复。

3.3 软件分发客户端

软件分发客户端是运行在终端操作系统中的程序,能够实时获取终端软硬件信息,并根据预制的安全策略,安装软件和更新系统补丁。客户端由固件模块进行持久化守护,包括软件下载模块、软件安装模块、身份验证模块和策略执行模块。

(1)软件下载模块用于客户端从服务端下载软件文件和补丁。

(2)软件安装模块用于对下载的软件和补丁进行安装。

(3)身份验证模块使用终端的硬件信息,生成终端标识,用于进行身份验证。身份验证码模块还将对服务端的身份进行验证。

(4)策略执行模块用于执行服务端的安全策略,包括必须安装的程序、不能安装的程序、到期后必须卸载的软件。

图3 软件分发客户端功能

4 软件分发系统工作流程

本文研究设计提出的内网终端软件分发系统工作流程如图4所示。

(1)开始。用户启动计算机。

(2)开机上电。在开机过程中,将加载持久化守护平台的固件驱动模块。持久化守护驱动模块该模块首先识别硬盘和文件系统,并检测监控恢复子模块是否已写入文件系统。如果未写入,监控恢复子模块将被写入文件系统。

(3)加载可信固件驱动。在操作系统启动后,监控恢复子模块将检测终端管理系统客户端是否写入操作系统并已经启动。

(4)检测守护模块。持久化守护驱动模块该模块首先识别硬盘和文件系统,并检测监控恢复子模块是否已写入文件系统。如果未写入,监控恢复子模块将被写入文件系统。

(5)客户端执行指令。终端管理客户端对终端进行管理完成软件分发等功能。

(6)结束.终端安全管理系统工作流程结束。

图4 软件分发系统流程图

5 结束语

本文研究并设计提出了基于可信固件的软件系统分发系统,能够在开机过程和操作系统运行过程中,通过可信固件对操作系统中的软件分发客户端进行保护,即使更换硬盘、格式化分区,也能够在安全程序发生异常时进行自动恢复,实现终端中部署的软件分发代理的持久化存在,提升系统整体的运行效率和稳定性。

[1]赵雨水,左春,杨立,杨泳.软件发布机制体系结构研究[J].计算机工程与设计,2010.

[2]徐学洲,任声骏.软件更新安全解决方案研究[J].大连理工大学学报,2005.

[3]张艳.关于软件的安全更新研究[J].计算机安全,2010.

[4]邱志聪,王飞.基于CA的安全软件分发方案[J].计算机工程与应用,2005.

[5]蒋漪涟.应用软件分发安装系统的设计与实现[J].微型电脑应用,2009.

[6]杨培,吴灏,金然. BIOS安全防护技术研究[J].计算机工程与设计,2008.

[7]周振柳,李铭,翟伟斌,许榕生.基于UEFI的可信BIOS研究与实现[J].计算机工程,2008.

[8]冯登国,秦宇,汪丹,初晓博.可信计算技术研究[J].计算机研究与发展,2011.

猜你喜欢

固件客户端终端
X美术馆首届三年展:“终端〉_How Do We Begin?”
通信控制服务器(CCS)维护终端的设计与实现
如何看待传统媒体新闻客户端的“断舍离”?
县级台在突发事件报道中如何应用手机客户端
孵化垂直频道:新闻客户端新策略
GSM-R手持终端呼叫FAS失败案例分析
大枢纽 云平台 客户端——中央人民广播电台的探索之路
基于SHA1的SCADA系统PLC固件完整性验证方法
基于UEFI固件的攻击验证技术研究*
基于固件的远程身份认证