TPCM主动防御可信服务器平台设计
2019-09-23黄坚会沈昌祥
黄坚会, 沈昌祥
(1. 北京工业大学 信息学部 北京 100124; 2. 华大半导体有限公司 上海 201203)
0 引言
随着网络互连、大数据、资源共享、智慧城市、智能工厂的发展,数据中心的规模和数量都在迅速增长,同时,数据中心处理和存储的数据的私密性和安全性越来越受到人们的重视.数据中心主要由大量服务器构成,面对层出不穷的网络和软硬件漏洞攻击,如何保证服务器基础平台及数据访问安全显得尤其重要.
为了解决服务器基础平台的安全防护问题,本文基于三阶三路安全可信平台防护架构,设计了服务器从待机、启动、运行直到关机移除电源的工作全过程可信计算环境保护机制.防护系统以TPCM芯片为信任根源,从服务器CPU指令执行及其执行环境开始建立可信系统,在计算机初始化过程中防止病毒入侵及使用经篡改的设备来构建可信运行环境,并且在系统运行全程进行动态实时防御,确保服务器基础平台在“计算+防护”的双体系结构中,受到可信防护系统时间和空间上的全方位保护.
本文方案有以下功能特点:
1) 使用完全中国自主主动防御TPCM模块作为信任根.
2) 利用服务器电源系统给TPCM模块供电,无须增加额外电源模块.
3) 只需要一片TPCM模块即可对底板管理控制器(baseboard management controller, BMC)及BIOS代码进行分级度量控制.
4) 物理信号接口完全兼容国际可信平台模块(trusted platform module, TPM),既满足了安全高等级TPCM使用要求,又可替换使用TPM,满足国际通用市场需求.
5) 基于服务器的原有架构,通过少许逻辑控制增强即可完成TPCM对服务器电源时序的控制.
6) 可以对服务器系统平台从上电到电源移除整个生命周期进行主动、动态的安全防护.
1 TPCM服务器基础平台防护架构
1.1 三阶三路服务器防护思路介绍
本设计采用三阶三路[1]架构方案,使得服务器系统平台整个启动运行过程中具备防御免疫能力.整个设计过程既充分考虑了安全防护的严密性,又照顾到了工程实现的成本和安装的简易性.基于该方案设计的服务器从市电接入到应用的3个阶段都得到了相应防护及信任承接和扩展[2].
1.2 可信服务器架构设计
1.2.1防护框架方案 TPCM是整个服务器唯一的信任源点,同时也是服务器平台的安全防护管理控制中心.TPCM的防护策略由用户管理人员通过专属管理软件和安全通道进行下发,一旦TPCM接收到策略及防护激活指令,则TPCM将自主地对服务器进行可信环境度量监控,不受控于服务器计算单元.实现计算和防护系统分离的双体系结构.系统连接如图1所示.
图1 TPCM可信服务器系统连接图Fig.1 Trusted server system connection diagram of TPCM
1.2.2电源域及时序控制设计 服务器平台电源域划分为3部分:1) TPCM+复杂可编程逻辑器件(complex programmable logic device,CPLD)+flash供电域,简称A域. 2) BMC及周边电路域,简称B域. 3)主计算系统工作域,简称C域.
A域:通过TPCM对BIOS及BMC代码进行度量检查,确定有无异常和入侵攻击.如果发现BMC代码或BIOS启动代码底层固件被篡改替换,则启动安全防范策略,阻止后续系统上电,或在宽松安全策略下进入非可信运行环境,同时发出非安全环境警告.当代码环境正常,则TPCM控制系统打开B域电源.
B域:BMC开始工作,通过与TPCM的认证交互,BMC系统环境处于可信状态,包括管理控制器BMC本身.当确认BMC系统执行环境安全可信时,开启C域电源.否则同理进入非可信环境或阻止C域电源上电服务器开机.
C域:服务器计算CPU正式开始执行指令,同理TPCM将对服务器主系统的执行环境进行识别确认,包括CPU本身.同样,当确认主计算系统环境安全可信后,允许服务器自检并向后启动.否则同理进入非可信环境或直接关闭服务器电源,阻止计算机上电开机.
服务器首先A域供电,CPLD通过TPCM的在位信号探测TPCM是否存在或关闭.如果TPCM存在且有效,CPLD切断服务器主控系统的总线,允许TPCM主控总线与BMC Flash和BIOS Flash连通,关闭B域和C域电源,等待TPCM指令.TPCM上电后自检,确定自身完整安全后,根据用户预设策略通过主控总线对BMC代码和BIOS代码进行分段及按安全等级要求进行逐一检查确认.任何病毒代码入侵或非授权数据(如平台参数设置或系统配置值)发生变化将会立刻引起TPCM告警,甚至阻断服务器主电源供电、关闭通讯端口等.当TPCM确认BMC代码和BIOS 代码可信的情况下,通知CPLD依次打开B域和C域电源,通过总线进行后续可信执行环境检查.
2 系统实现
本文的TPCM三阶三路防护方案并不局限于特定的服务器平台及领域.下文以Intel至强服务器Xeon Scalable处理器族Skylake-SP基础平台为例进行实现及测试说明.
防御系统及模块组成如图2所示. 防御系统主要由主动度量模块、平台度量模块、动态度量模块和控制部分组成.TPCM首先对启动代码进行度量确认,然后通过可信启动代码逐步扩展可信链到达可信软件基(trusted software base, TSB)操作系统.最后通过动态度量模块支撑,保持宿主系统的安全可信运行状态.可见,TPCM模块组完全是独立的度量控制系统,并行于服务器计算系统.
图2 防御系统对服务器平台的保护Fig.2 Defense system for server platform
图3 TPCM接口设计Fig.3 Interface design for TPCM
2.1 服务器主板物理接口实现
根据服务器主板及TPCM功能特点,本设计采用PCIE+TPCM connector 的设计方案实现物理通路连接(图3).该方案的优点有:
1) 设计方面.增加低速接口,高速通路采用原有通用PCIE插槽,实现高速与低速通道分离,互不干扰,兼容性好.
2) 使用方面.两通道可根据设计要求,既可以单独使用,又可以合并形成高低速配合使用.
3) 结构方面.完全不改变原有主板PCIE物理结构、接口信号定义、物理通道用途,使得服务器组件及结构没有发生任何变化.
4) 成本方面.高速通道利用原有服务器主板总线接口,低速通道则采用简单的连接件实现,实现成本非常低廉.
5) 该物理接口设计能兼容TPM模块[3-4]信号要求,使得该设计服务器既可以接插TPCM主动防御模块,又可以替换成TPM模块.
2.2 待机阶段度量保护实现
当计算机接通市电时,CPLD控制逻辑阻止待机电源为TPCM、闪存及高速开关以外的设备提供电能.通过可信根TPCM确认启动代码可信性,然后宿主系统在TPCM的控制下上电开机[5].
无须独立电源供电,服务器待机电源为TPCM提供电能上电,通过控制模块主导计算机电源控制系统,度量确认启动代码及关键数据的可信性和完整性[6].串行外设接口(serial peripheral interface, SPI)控制器配置成为主控设备,同时通过CPLD关断闪存与计算CPU单元间的通路,TPCM作为唯一的主控设备对闪存中BIOS、BMC代码数据进行读取.通过SM3、SHA256[7-8]硬件逻辑处理单元完成特征及代码数据摘要提取.将特征及摘要与基准值相比对,若安全可信,则向控制单元发送上电信号.这里代码数据可根据用户防护策略选择为存储在闪存中的关键代码(如用于控制各硬件上电的代码,涉及系统安全性的代码或名单数据等).特征则包含闪存特征及服务配置信息、管理引擎(management engine, ME)代码特征、网络控制器代码特征等.
2.3 启动过程BIOS可信功能实现
当启动代码特征及代码数据确认可信安全后,TPCM通过CPLD允许服务器计算单元上电,并同时打开启动代码闪存通路,服务器CPU作为主控设备获取启动代码,进行系统的初始化启动过程.此时,TPCM SPI控制器保持总线的主动监控能力.通过统一可扩展固件接口(unified extensible firmware interface, UEFI) 架构BIOS中植入的驱动及保护策略,在受控BIOS代码的协同下对启动环境进行检查确认[9],TPCM将整个服务器硬件系统及组件进行扫描,确认其计算主系统部件及执行环境的可靠可信安全.
2.4 运行阶段操作系统可信环境保护实现
可信操作加载后,在内核中嵌入的可信安全防护内核程序将会被激活运行.该内核管理程序进程将在防御系统TSB的策略要求下,通过TPCM的度量单元提供实时宿主系统计算执行环境的相关信息. 防御系统将动态对相关信息进行安全评估后,自主进行系统控制.有任何超出预期的异常行为,TPCM将根据保护策略进行上报,甚至切断其物理接口或电源,实时保护系统的可信执行环境.
3 测试
测试设备包括: Intel至强服务器、M2服务器硬盘、CentOS-7操作系统、TPCM主动防御可信模块、鼠标、键盘、显示器等电脑外设.
从服务器连接电源开始记录整个防御过程.
第一次服务器启动,管理者进入管理软件人机界面,获取Admin权限,进行防护范围及防御策略配置并下发到TPCM,要求重新启动服务器.
第二次服务器启动,TPCM根据配置策略要求录入可信服务器特征信息.在待机电源支持下,可信平台控制模块自检通过后,主动读取BIOS、BMC代码及载体闪存的物理特征,进行识别和可信认证.检验通过后,控制计算机主板上电.服务器启动过程中,TPCM录入可信平台的设备及操作系统加载代码检测信息,并保存于可信平台控制模块中.
第三次服务器启动时,服务器已处在受TPCM保护状态.此后执行的重复开机,服务器都在整机启动环境、核心芯片、外围设备、加载代码及操作系统代码受监控的前提下工作.
接下来尝试进行模拟恶意替换设备或篡改设备固件测试.在服务器上电工作前,人为地替换相同型号的不同设备,如内存、硬盘、外设组件高速互连标准(peripheral component interconnect express, PCIE)设备.另外,对操作系统加载代码进行植入木马病毒.可信平台控制模块在计算机启动过程中立刻捕捉到周边设备及加载代码的变化,阻止服务器启动并及时关闭电源.服务器运行时,通过外接USB设备进行实时恶意病毒攻击实验.步骤如下:利用配置管理软件设定防护策略并向TPCM下发平台动态防护指令.TPCM验证指令的合法性后,激活动态防护模块,使之处于监控状态.此时,使用未经授权USB设备入侵该服务器系统,企图注入木马病毒,获取服务器数据.动态防护模块迅速发现异常,根据防护策略报告TSB和后台系统,并及时断开USB物理通道,完全物理隔离入侵设备与服务器的连接.
实验还进行了用户识别和权限管理测试. 当Admin为用户建立账户并绑定可信环境时,用户现场环境必须符合可信环境要求,否则系统将拒绝用户的登录或根据策略进入非可信执行环境并提示远程管理系统.当用户信息确认,TPCM将根据预设权限进行配置管理,比如某用户只能使用计算机系统,不能进行对外端口操作,甚至通过TSB配合限定网络访问范围等.
以上测试防护效果明显并且不影响服务器原有功能执行.需要说明的是,此类防护管控完全由TPCM芯片自主独立的物理单元完成,与服务器计算单元没有直接关系.TPCM防御系统独立于计算单元,根据测试预设的防护强度所要求执行的防御对计算单元性能的影响非常小,基本上可以忽略.
4 结果分析
基于主动防御TPCM设计的可信服务器模型测出的结果与TPM可信模块进行功能和防御效果分析见表1和表2.TPM是现今使用最为广泛的可信模块,由国际可信计算组织 (trusted computing group, TCG)制定标准[3-4],在可信计算领域具有代表性.
表1 TPCM与TPM功能比较Tab.1 Functional comparison between TPCM and TPM
表2 TPCM与TPM防御效果比较Tab.2 Comparison of defense effectiveness between TPCM and TPM
通过以上测试实验,不难得出以下结论:
1) TPCM不是计算系统的附属部件,它对平台的防护建立在双体系架构之上,与计算部件并行的可信安全模块具有完整的软硬件组成,包括软件系统、处理器和总线接口.TPCM有完全独立自主的防控能力,对平台系统能实现主动度量、主动控制及可信管理,是计算机运行全过程中的系统信任基础.
2) TPCM在计算机的待机阶段,主动对启动代码及环境进行度量确认;在计算机的启动过程中,主动对计算机计算单元、所有外设设备及操作系统内核代码发起验证;在软件运行阶段,TPCM在已有可信执行环境基础上,动态对其可信环境进行维护,直至系统关闭电源.以上度量检测如果不通过,则TPCM自主实时地干预计算机启动流程,甚至剥夺计算机控制权.
5 结语
计算机在设计初期没有考虑到当今计算机网络及计算机智能化发展,也没有考虑到安全防护问题.后来虽然出现了一些修补增强措施,比如TrustZone、TPM等技术,但始终无法摆脱早期计算机架构的束缚.中国专家提出的双体系架构[10],即防御+计算并行体系,是从架构上改变现有计算机模型,使得计算机具有自主免疫能力.通过主动防御技术保护计算机自身基础平台,进而为架构安全可靠的网络空间提供可信任、可依赖的平台节点.TPCM可信根芯片是双系统中防御系统的基础支撑芯片,是计算机平台的信任根源,是网络交互的身份识别依据,必须保证其安全性及节点系统唯一性,而且其技术及标准必须自主掌握.
最后需要指出的是,可信平台控制模块主动防御可信技术是完全自主创新、安全可信的底层基础防护技术.设计和实现需要不断地在实践中优化改进,最终形成稳定完善的安全可信解决方案.