更全的杂志信息网

可信计算在服务器基板管理控制器中的应用*

更新时间:2016-07-05

0 引言

基板管理控制器(Baseboard Management Controller,BMC)是服务器的重要单元,其利用虚拟的键盘、界面、鼠标、电源等为服务器提供远程管理功能[1],用户登录BMC的Web管理界面监视服务器的物理特征,如主板各部件的温度、电压、电源供应以及机箱入侵等。BMC本质上是一个嵌入式系统,在使用过程中会面临程序完整性被破坏、操作系统被攻击、Web应用被植入恶意代码等安全风险。此外,目前国内的服务器普遍采用国外的BMC芯片,如ASPEED系列的AST2400、AST2500型号,安全性未知,核心技术受制于人。因此,本文基于自主研发的BMC模块,研究了BMC的可信启动技术并且成功地进行了应用。

1 信任链构建

自主研发的BMC板卡以现场可编程门阵列(Field Programmable Gate Array,FPGA)为控制核心,以国产的可信密码模块(Trusted Cryptography Module,TCM)作为信任根,实现了BMC的可信引导,对服务器平台的模块逐级进行度量,最终构建起完整的信任链[2]

信任链模型如图1所示,信任的建立过程如下:

(1)BootROM:系统上电后执行的第一段代码,用于初始化相应的硬件模块。由于BootROM位于FPGA的片内ROM中,外界无法更改,因此默认BootROM是可信的[3]。BootROM运行之后把位于片外SD卡的Preloader镜像加载到FPGA片内RAM执行,控制权交给Preloader[4]

(2)Preloader:基于SPL架构的引导程序,初始化SDRAM、PLL、IO接口等硬件,属于 U-Boot的一部分,与U-Boot共享大部分的驱动代码,设计的TCM驱动可被Preloader与U-Boot共同使用。Preloader把U-Boot镜像由SD卡加载到SDRAM并对镜像进行度量,之后控制权交给 U-Boot。

图1 BMC信任链模型

(3)U-Boot:初始化操作系统环境,在U-Boot中设计了TCM驱动与度量程序,对设备树镜像(Flattened Device Tree,FDT)、文件系统 Ramdisk镜像以及 Linux内核 zImage镜像进行度量,之后把Linux内核镜像由SD卡加载到SDRAM,控制权交给 Linux。

(4)Linux Kernel:在嵌入式Linux中实现了内核层的TCM驱动以及度量程序,度量系统BIOS的启动代码Boot Block后,控制权交给 BIOS。

(5)BIOS:对服务器主板的模块(如 Option ROMs、MBR等)进行逐级度量,直到服务器操作系统启动,从而构建了完整的信任链。

在信任链建立过程中,度量值采用扩展操作的方式记录到TCM的平台配置寄存器(Platform Configuration Register,PCR)[5],具体是:PCR[ni+1]=SM3(PCR[ni]||被度量模块)(i=0,1,2,…)[6]。即调用 TCM 的 SM3算法对某一模块进行杂凑运算,生成32 B的数据作为摘要值,存储于PCR;之后调用SM3算法对PCR与被度量模块拼接后的数据进行杂凑运算,生成新的32 B摘要值更新到PCR。若某一模块确认不可信,即不满足完整性要求,信任链中断,服务器不会启动。

2 系统架构设计

服务器主板的硬件架构如图2所示,虚线框内为BMC板卡,BMC通过LPC(Low Pin Count)总线挂接到南桥上,作为从设备接受南桥的调度;通过SPI总线与BIOS连接,读取BIOS的资产信息;通过IIC总线与复杂可编程逻辑器件(Complex Programmable Logic Device,CPLD)连接,向CPLD发送命令对主板的上电时序进行控制。BMC板卡以FPGA为控制核心,采用的是Cyclone V系列带有ARM Cortex-A9处理器的5CSXFC6D6F31芯片。Cyclone V系列的FPGA设计过程结合了ARM嵌入式开发与电子设计自动化EDA的开发方式,十分灵活。

(1)接通服务器电源,BMC与TCM先上电启动。

图2 服务器主板硬件架构

该TCM控制器包括3个寄存器和1个RAM区,具体功能如下:

采用国产TCM作为服务器的物理信任根,TCM包括对称算法、非对称算法、杂凑算法等密码功能单元,存储度量值的PCR寄存器,非易失性存储空间NVRAM等。为便于进行设计,采用了SPI总线接口的TCM模块与FPGA进行通信,在FPGA中设计了状态机对TCM进行控制,BMC通过调用TCM的API接口实现对服务器启动过程中模块的度量。

3 关键模块设计

3.1 TCM控制器

夏日里,蒋海峰回老家,带水仙芝一起游双峰山,放飞心情,向山谷大声呼唤,向蓝天白云倾吐了爱意。他俩手牵着手,穿过茂密的竹林,并肩躺在青山之上。

图3 SPI接口的TCM控制器与TCM的硬件接口

在实际工作过程中,ARM通过发送命令字和数据包操作TCM,例如初始化操作、加解密操作等[7],TCM根据命令进行操作,运算完成后的数据再由ARM读取。

FPGA的外设包括SDRAM、QSPI Flash、SD 卡 、RTC等。其中SD卡用于存储U-Boot、Linux、文件系统的镜像,SDRAM作为BMC的内存,ARM将镜像搬移到执行速度快的SDRAM中执行。QSPI Flash是非易失性存储器,在开发阶段为了调试的方便,将镜像文件暂时存储在SD卡中,便于利用读卡器对编译出的不同镜像反复写入SD卡,在产品化阶段出于安全性考虑,将最终的镜像文件固化于QSPI Flash,使镜像不易被恶意篡改。实时时钟RTC用于记录度量时间。

比如,我们在北京市石景山区做田野时,就经常听到当地居民说石景山地区是“京门脸子”,这就牵涉到他们在交流过程中形成的共有的身份感、地方感和地域等级感。意思是,他们虽然不是住在北京城市的中心,但是住在永定河的东岸,也是没出北京的好地方,是“京门脸子”,吐露出地方的优越感。石景山区居民会把永定河西边的门头沟区称为“京西”,门头沟区内住在平原的居民又会把住在山里的居民称坐“山背子”,山里居民又会把西边张家口地区称为“口外”。所有这些互相对比的地方感,都来源于居民们对内对外互相走动交流的经验。

(1)命令寄存器:存放操作TCM的不同命令字,例如TCM初始化、自检、读写PCR寄存器、加解密等命令字。

(2)长度寄存器:存放参与运算的数据长度,单位为字节。

(3)控制寄存器:包括START位和 FINISH_FLAG位,START位置1表示启动TCM控制器开始工作,清0表示停止TCM控制器工作;FINISH_FLAG置1表示下达的命令操作完成,清0表示操作未完成。

(4) 开挖掌子面在各种荷载的作用下,认为土体受到扰动后的剪切模量和体积模量皆有所下降,所以选取掌子面方向一定长度的土体作为卸荷单元,认为卸荷单元在刀盘的扰动下弹性模量有所降低,变为原来的1/2[6]。

(4)RAM区:长度为1 KB,作为数据的缓存。

图4是TCM控制器工作的状态机转移图,包括空闲状态IDLE、开始状态BEGIN、写命令字状态WR_CMD、写长度状态WR_LEN、写数据状态WR_DATA、等待状态WAIT、读数据状态RD_DATA和完成状态FINISH。状态机的具体工作过程如下:

亚洲开发银行的一份最新报告 《加强风险管理 应对持续干旱》也在会上发布。该报告的撰写人之一,亚行首席水资源专家张庆丰在介绍报告主要内容时说:“问题无法仅仅依靠修建基础设施来解决,要加强需求管理,建立一套流量和水量分配的监测系统,提升中国应对灾害的能力,同时大幅度缩小水资源供需矛盾。”该报告以贵州省贵阳市为例,阐明了更严格的需求管理可以带来更好的经济和生态效益。

(1)系统上电复位后TCM控制器进入IDLE状态,等待ARM处理器下达指令。当ARM设置控制寄存器的START位为1后,启动状态机,进入BEGIN状态;

(2)在 BEGIN状态,TCM控制器使 SCLK、SDO与 SDI信号同步,之后进入WR_CMD状态;

(3)在WR_CMD状态,TCM控制器向命令寄存器写入操作TCM的命令字,之后进入WR_LEN状态;

(4)在WR_LEN状态,TCM控制器向长度寄存器写入参与命令运算的数据长度,单位为字节,之后进入WR_DATA状态;

(5)在WR_DATA状态,TCM控制器根据数据长度把参与运算的具体数据依次写入RAM区,之后进入WAIT状态;

(6)在WAIT状态,TCM控制器根据设置的延时参数,等待TCM运算完成,之后进入RD_DATA状态;

(7)在RD_DATA状态,TCM控制器读取TCM运算完成的数据,把数据写回RAM区,之后进入FINISH状态;

(8)在FINISH状态,TCM控制器清除控制寄存器的START位为0,并设置完成标志位 FINISH_FLAG为 1,之后由ARM处理器接管控制权,ARM处理器可以再次启动状态机,向TCM发送其他的命令字及数据,过程同步骤(3)~(8)。

图4 TCM控制器状态机模型

3.2 U-Boot度量模块

(1)BMC板卡上电,U-Boot进行初始化后开始引导过程,把位于SD卡中的zImage镜像加载到U-Boot指定的内存地址。

图5 SD卡镜像结构

在BMC引导加载Linux过程中需要对内核zImage镜像、文件系统Ramdisk镜像和设备树FDT镜像进行度量,以此作为BMC固件完整性判断的依据,SD卡存储的镜像文件结构如图5所示,设计的U-Boot可信启动控制过程具体如下:

(2)设置标志位first_boot_flag作为BMC第一次启动的标识,当BMC第一次启动,即 first_boot_flag为1时需要进行基准值的收集,调用TCM的SM3算法对zImage镜像的内核头信息和镜像长度进行杂凑运算,把生成的摘要值写入TCM的PCR寄存器。

预应力钢筋混凝土管桩外径0.5m、内径0.25 m,设计桩长15 m。对于钢筋混凝土构件重度取25 KN/m3,则桩体自重G为55 kN。

(5)当BMC不是第一次启动,即first_boot_flag标识为0时,在 U-Boot启动时需要对 zImage、Ramdisk和 FDT镜像进行度量,以此判断镜像的完整性。具体获取度量值的过程与步骤(2)~(4)获取基准值的过程一致。

(4)对设备树FDT镜像进行度量,把镜像从SD卡搬移到内存,调用SM3算法对FDT镜像的头信息和镜像大小进行杂凑运算,把生成的摘要值扩展存储到PCR,此时PCR存储的就是基准值,之后U-Boot读取RTC时钟并记录日志。

(3)对 Ramdisk镜像进行度量,把镜像从 SD卡搬移到内存,调用SM3算法对Ramdisk镜像的头信息和镜像长度进行杂凑运算,把生成的摘要值扩展存储到PCR。

位于BMC的TCM控制器采用状态机模型,通过SPI接口与TCM进行交互,实现BMC对TCM的读写操作。图3是TCM控制器与TCM模块的接口图,TCM控制器采用了Verilog语言设计,通过AMBA总线连接到ARM处理器。

本文选取我国A股上市公司2012~2017年数据,通过融资约束综合指标和SA指数来衡量企业的融资约束程度,深入探究了融资约束、对外直接投资、企业绩效三者之间的关系。实证结果显示:(1)融资约束会对企业对外直接投资决策产生抑制作用,即企业融资约束程度越严重,对外直接投资倾向越小;(2)对外直接投资对企业绩效具有显著的促进作用,而且企业绩效水平的提升存在滞后效应;(3)融资约束在对外直接投资影响企业绩效的过程中起到扩大振幅的作用,即企业的融资约束程度越高,对外直接投资对企业绩效的促进作用越明显。

(6)U-Boot将度量值与PCR存储的基准值进行比对,当比对一致时,说明BMC固件是完整和可信的,设置可信标志位trust_flag为1,读取RTC时间并记录日志,之后进行内核的解压和系统的加载。当度量值与基准值比对不一致时,说明镜像的完整性受到了破坏,此时设置标志位trust_flag为0,提示不可信的信息并记录日志,信任链构建过程被终止,需要由BMC管理员进行操作。

(7)当需要更新基准值时,重新对 zImage、Ramdisk与FDT镜像进行度量,度量摘要更新至PCR,覆盖之前的基准值。

表1 测试数据

测量项BMC基准值BMC度量值BMC异常值BIOS基准值BIOS度量值BIOS异常值测量数据(十六进制)B945,ED52,BCB8,6469,3D5F,D652,BD3F,86E2,4906,1A16,65DD,F0A1,0552,EE7F,344E,56A8 B945,ED52,BCB8,6469,3D5F,D652,BD3F,86E2,4906,1A16,65DD,F0A1,0552,EE7F,344E,56A8 879E,8707,EB2F,72C8,FAE1,88F0,2648,6B3F,0864,B5EC,43B7,968F,C516,D3DB,91AD,72E5 35E4,8B54,A898,7B2E,35C8,72AF,0FBA,C4AE,E41B,4DAD,0D40,CB7F,A7EB,A5DB,F5A1,2700 35E4,8B54,A898,7B2E,35C8,72AF,0FBA,C4AE,E41B,4DAD,0D40,CB7F,A7EB,A5DB,F5A1,2700 1D35,E48B,54A8,987B,2E35,C872,AF0F,BAC4,AEE4,1B4D,AD0D,40CB,7FA7,EBA5,DBF5,A127

4 安全性分析

在安全性方面,通过自主研发的BMC板卡代替了国外的BMC产品,杜绝了使用国外芯片存在的安全隐患。基于BMC板卡,开发了FPGA控制TCM的逻辑、U-Boot与Linux的可信功能软件,实现了对BMC的可信引导和BIOS Boot Block的主动度量,同时通过TCM的密码服务为上层应用及访问者提供了验证平台可信的方法[8]。另外基于BMC Web管理界面实现了可信功能的呈现,通过BMC控制CPLD的方式实现了对主板上电时序的控制。利用以上安全措施,为系统平台构建了安全可信的操作环境。

服务器的可信启动过程为:

提升农业经济管理水准是提高农民收入和发展农业经济水平的重要保障。以充分适应市场经济发展,推动我省农业稳健发展为目的,必须实现农村经济管理的现代化。此外,目前的市场竞争不断升级,为保证农业经济的切实发展,要深入发展农产品加工,尤其是深加工,应加入科技要素,做强做深,在确保农产品品质安全的基础上注重农产品的可持续发展。

《从百草园到三味书屋》一文中写到,“我”被送进了当地最严厉的书塾——三味书屋去了,在那里,只是读书,背书,“有念‘仁远乎哉我欲仁斯仁至矣’的,有念‘笑人齿缺曰狗窦大开’的,有念‘上九潜龙勿用’的,有念‘厥土下上上错厥贡苞茅橘柚’的……”这些全然不懂的东西,不能再去百草园,偶尔去后园玩耍也冒着风险,“我”被投入了一座高墙四筑的“监狱”。读《五猖会》一文,会看到“我”迫切想看五猖会,一切准备妥当,笑着跳着要去的时候,父亲非要“我”背诵《鉴略》。“粤自盘古,生于太荒,首出御世,肇开混茫。”那些都是“我”丝毫不能理解的内容,在痛苦里挣扎着背完,获准去看五猖会时,“我”却并不高兴。

(2)BMC向CPLD发送命令,由CPLD控制主板电源电压,不给CPU上电。

(3)进行BMC固件的可信引导,当判定BMC可信后进行BIOS的主动度量;否则,进入BMC Web管理界面进行异常处理,此时CPU不会上电。

(4)进行BIOS的主动度量,当判定 BIOS Boot Block可信后,BMC通过CPLD控制CPU上电,之后由BIOS接管控制权,进行主板模块的度量;否则,进入BMC Web进行异常处理,此时CPU不会上电。

采用Fox 4000对柠檬果醋的整体气味进行区分,该电子鼻系统包括18根传感器[13],包括A组:T30/1,P10/1,P10/2,P40/1,T70/2,PA/2;B组:P30/1,P40/2,P30/2,T40/2,T40/1,TA/2;C组:LY2/LG,LY2/G,LY2/AA,LY2/GH,LY2/gCTL,LY2/gCT。

提供对供应商监督评价信息的录入、查询功能;实现供应商评价功能,可对供应商从技术指标或参数、供货质量、完成进度(按期到货率)、供应商性质等方面进行综合评价,系统可提供量化的统计数据以供参考;实现供应商货源清单、供应商按期到货率、供应商供货质量分析、供应商供货进度跟踪。

表1是测试数据,测试了BMC与BIOS的基准值、度量值以及固件经篡改后的异常值。当度量值与基准值一致时,BMC Web管理界面中的可信状态灯显示绿色,否则可信状态灯显示红色。在Web界面可以进行可信功能开启、基准值更新、特权启动、查看日志等操作。

5 结论

本文研究了可信计算技术在BMC中的应用,基于国产BMC板卡和TCM设计实现了BMC固件的可信引导和BIOS的主动度量,实现了服务器的可信启动控制。研究成果已应用于北京科委项目,有广阔的应用前景。

而李瑞东除了南北太极融于一身这个颇具争议的说法之外,在别的事情上,他倒没有太大的污点。尤其是在武功修为上,他最出名的一件事情,就是曾经打赢过霍元甲。

参考文献

[1]Intel Inc.Intelligent platform management interface specification V2.0[Z].2013-10-01.

[2]周骅,刘桥.动态可信度量分析的硬件安全机制研究[J].电子技术应用,2015,41(1):115-121.

[3]赵波,费永康,向騻,等.嵌入式系统的安全启动机制研究与实现[J].计算机工程与应用,2014,50(10):72-77.

[4]Foswiki.Booting from FPGA[EB/OL].[2017-10-18].https://rocketboards.org/foswiki/Documentation/BootFromFPGA140.

[5]Trusted Computing Group.Trusted platform module library part1:architecture[EB/OL].(2014-3-13)[2017-10-18].http://www.trustedcomputinggroup.org/tpm-main-specification/.

[6]冯登国.可信计算—理论与实践[M].北京:清华大学出版社,2013.

[7]国民技术有限公司.Z32H320TC trusted cryptography module datasheet[Z].2014.

[8]张伶俐,张功萱,王天舒,等.嵌入式系统可信虚拟化技术的研究与应用[J].计算机工程与科学,2016,38(8):1654-1660.

苏振宇
《电子技术应用》 2018年第05期
《电子技术应用》2018年第05期文献

服务严谨可靠 7×14小时在线支持 支持宝特邀商家 不满意退款

本站非杂志社官网,上千家国家级期刊、省级期刊、北大核心、南大核心、专业的职称论文发表网站。
职称论文发表、杂志论文发表、期刊征稿、期刊投稿,论文发表指导正规机构。是您首选最可靠,最快速的期刊论文发表网站。
免责声明:本网站部分资源、信息来源于网络,完全免费共享,仅供学习和研究使用,版权和著作权归原作者所有
如有不愿意被转载的情况,请通知我们删除已转载的信息 粤ICP备2023046998号