APP下载

基于国产处理器的可信计算平台构建方法*

2019-09-03冰,庞

通信技术 2019年8期
关键词:监视器固件部件

冷 冰,庞 飞

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

0 引 言

计算平台(台式机、服务器、移动设备和嵌入式设备等)作为构建信息基础设施的基本组成单元,其面临的网络安全风险不断攀升[1]。可信计算是国际可信计算组织(Trusted Computing Group,TCG)提出的,解决计算平台安全问题的一种技术。我们国家在沈昌祥院士的带领下,从1992年开始,经过长期攻关,形成了我国自主创新的可信体系[2-3]。

中国自2001年开始启动处理器设计项目以来,产生了以龙芯、飞腾等为代表的国产CPU,产品性能逐年提高[4]。近期中美贸易摩擦加剧,中兴、华为事件[5-6]的出现再次为我们敲响了警钟。利用国产处理器构建自主可控计算平台才是我国关键信息基础设施长治久安之路。

目前我国的可信计算平台按照构建方法的不同,主要分为两大类。一类是可信增强型,即不改动现有计算平台主板,插入一块PCI/PCI-E/USB/mini PCI-E/TF等标准接口的可信密码模块(Trusted Cryptography Module,TCM),再在操作系统中安装一套安全软件,软硬配合,在计算平台上构建一个相对可信的运行环境。另一种是高安全型,即定制计算平台主板,将可信平台控制模块(Trusted Platform Control Module,TPCM)贴在主板上,依靠特殊设计的硬件电路使TPCM先于CPU启动,对CPU度量通过后,才开始后续启动过程,以确保TPCM是真正的信任原点,实现高安全。

主板贴TPCM模块的方法是在上世纪九十年代我国没有掌握CPU、操作系统等核心部件的严酷背景下提出的。该方法的出发点是不信任CPU和操作系统,整个计算平台可以信任的只有TPCM,它作为唯一的可信根去度量、监控计算平台其它部件。

随着国产处理器的快速发展和走向实用,我国可信计算平台的设计限制条件越来越少,设计环境逐渐改善。本文从核心元器件、基础软件自主可控之后可信边界的变化出发,提出了一种新的可信计算平台构建方法,该方法优化了国产计算平台整机设计,降低了成本,提升了效率。

1 可信边界

基于非国产处理器和操作系统构建的可信计算平台,由于不能自主可控,我们无法确保其没有被恶意预留后门,植入木马。事实上,Intel等主流处理器就曾被爆出多个高危漏洞威胁系统安全[7]。如果该植入过程在处理器生产之后由第三方植入,那么根据可信计算机制,还可以发现处理器已经被篡改。如果该后门是处理器生产厂家在处理器生产交付之前预置的,那么按照当前可信计算的静态度量机制,是无法检测出来的。对计算平台外设和操作系统而言,同样如此。

因此,利用非国产软硬件构建的可信计算平台,其可信边界只有一个完全自主可控的TPCM模块。任何其他软硬件部件在没有通过TPCM模块的度量验证之前都是不可信的。

由于这种不信任关系,安装于非国产操作系统内的可信软件基(Trusted Software Base,TSB)必须使用传统主机安全防护软件的一些技术实时监视操作系统及其它软件,以便发现计算平台的异常行为。因此,其软硬件结构不可避免地复杂,成本高、效率低。

在基于国产处理器和操作系统构建可信计算平台时,情况有了变化。首先,供应链安全和信息安全是研发自主可控处理器的一个主要动因,国内厂家不会恶意在处理器中预置后门和木马。其次,国内处理器厂家与国内安全厂家一直保持着紧密合作,是相互信任的,处理器一旦被发现bug,存在安全风险,就会很快得到修复。

因此,采用国产软硬件构建的可信计算平台,其可信边界不仅包括TPCM硬件模块,还应该包括处理器和操作系统的核心部分。不可信的部分是非自主可控的外设、主板上容易被篡改的部件、操作系统中第三方开发的驱动程序和软件等。例如:用户在可信计算平台上安装的国外或互联网下载的软件。这些软件可能恶意的提升权限,窃取用户信息,或者非恶意地破坏可信计算平台的完整性,影响其它软件的执行。另外,黑客也可能通过物理攻击方式篡改可信计算平台关键核心硬件、外设和基础软件。

以国产处理器和国产操作系统非恶意本质为前提,我们可以设计出一种新的,运算和防护并存的,简洁、高效,不增加额外硬件成本的可信计算平台。

2 国产可信计算平台体系结构

基于国产处理器的可信计算平台设计思路一是利用国产处理器内嵌的安全功能实现一个较小的、具备物理安全属性并可验证的逻辑单元作为可信根,利用信任链的传递机制保证整个计算平台启动时的可信。二是利用国产处理器和基础软件提供的隔离机制确保计算平台上各应用软件间以及应用软件和计算平台系统软件之间的互不干扰。

按照我国自主创新的可信双体系结构[8]要求,提出一种基于国产处理器的可信计算平台体系结构如图1所示。

该计算平台体系结构最显著的特点是利用国产处理器内嵌的安全部件实现TCM功能,与内存管理单元、系统总线安全扩展等部件一起形成完整的TPCM功能。不再需要在主板上额外贴一个TPCM硬件模块,从而消除定制,降低成本,提升效率。

虽然不再有独立的硬件形态,但TPCM作为可信计算体系中的可信根,其逻辑上还是完全独立的。即安全防护域和通用计算域是各自独立运行的。运行于通用计算域中的软件是无法访问安全防护域的内存、安全外设,窃取敏感数据的。确保通用计算域和安全防护域间的隔离是本体系结构设计和实现的关键。

图1 基于国产处理器的可信计算平台体系结构

3 硬件设计

不同国产处理器内嵌的安全功能实现略有不同。最新的龙芯3A4000SE处理器采用的是集成TPCM硬核的方式。它不仅集成了32位TPCM处理器内核、算法引擎、ROM、专用SRAM,甚至连主动度量所需的处理器控制接口和专用IO接口都一应俱全。因此它等价于将原来贴在主板上的TPCM硬件模块全部封装进了CPU内部。其硬件参考设计如图2所示。

图2 龙芯平台硬件参考设计框图

由于TPCM硬核具有完全独立的ROM和SRAM,独立的IO,不需要主板额外处理它与通用计算域的隔离关系,因此该硬件设计与传统采用独立式TPCM硬件模块的可信计算平台设计几乎一样。对固件、外设的度量和控制也由TPCM的专用IO接口直接连接。

飞腾2000/4处理器采用的是TrustZone技术路线。其硬件参考设计如图3所示。

图3 飞腾平台硬件参考设计框图

在TrustZone架构下,通用计算域和安全防护域是分时共享CPU的,通过虚拟化CPU核、扩展系统总线安全机制、增加相应功能部件实现了通用计算域和安全防护域的隔离。这是与龙芯处理器最大的区别。

每个飞腾的物理处理器核被虚拟为一个安全核和一个非安全核,安全核运行安全防护域的代码,非安全核运行其它代码。

带NS控制位的系统总线是最重要的安全机制扩展之一。通过为系统总线中的每一个读写通道添加额外的控制信号位,来判断当前传输的数据属于何种环境中。如果该位为低,表示数据属于安全环境,否则就属于普通环境。运行在非安全核中的软件是无法拉低NS控制位,非法访问安全内存和安全设备数据的。

可信域地址空间控制器(TrustZone Address Space Controller,TZASC)用于把外部DDR4内存分成多个区域,每个区域可以单独配置为安全或非安全区域,通用计算域的代码只能访问非安全区域的内存。

可信域保护控制器(TrustZone Protection Controller,TZPC)用于配置外设的安全属性,实现IO设备层面的数据保护。它可以在运行时动态设置,例如键盘平时作为非安全的输入设备,在输入密码时可以配置为安全设备,只允许安全防护域软件访问。

可信域内存适配(Trust Zone Memory Adapter,TZMA)用于把片内ROM和RAM隔离出安全和非安全区域。TZMA最大可以将片内存储的低2MB配置为安全区域,其余部分配置为非安全区域。

因此,采用飞腾处理器的可信计算平台中,可信根是由虚拟安全核、系统总线安全扩展、TZASC、TZPC和TZMA共同组成的。

4 软件设计

4.1 可信固件设计

自主可信固件的基本功能包括:硬件平台上电后,获得系统控制权,初始化处理器、内存、芯片组等关键部件,枚举外设并为其分配资源,初始化显卡、硬盘、网卡等必要的外设,度量操作系统或可信虚拟机监视器核心代码,如果通过防篡改验证,则为其建立运行环境,然后移交控制权,如果没有通过验证,则执行可信恢复,重新启动。其框图如图4所示。

图4 自主可信固件框图

(1)硬件抽象层,将处理器、芯片组、TPCM等硬件进行包装和抽象,初始化处理器和硬件,为上层模块提供访问处理器、硬件设备的标准接口。

(2)固件核心层,建立统一可扩展固件接口(Unified Extensible Firmware Interface,UEFI)的系统服务表,包括启动服务和运行时服务,进行固件中所有模块的统一管理。

(3)固件应用层,实现固件的各项具体功能,如可信度量、配置管理、内核加载、可信恢复等。

4.2 可信虚拟机监视器设计

当可信计算平台应用在云计算环境时,在可信固件和可信操作系统之间有个虚拟化层,运行可信虚拟机监视器。

可信虚拟机监视器除具备普通虚拟机监视器的虚拟化资源调度、管理等功能外,与可信相关的安全功能主要是虚拟TPCM功能和安全监控与恢复功能。

虚拟TPCM功能主要是将TPCM硬件按需虚拟成多个TPCM供多个虚拟机客户操作系统同时使用。其主要功能包括:数字签名与验证、数据加解密、真随机数生成、数字证书管理等。

安全监控与恢复功能主要是安全隔离各虚拟机,监控其资源访问,发现恶意攻击行为,执行可信恢复等操作。

4.3 可信操作系统设计

鉴于当前国产操作系统大多是基于Linux内核开发的,因此可信操作系统基于Linux安全模块(Linux Security Module,LSM)框架实现可信软件基功能,以便可信功能更好地融入操作系统之中。

可信操作系统的运行控制原理如图5所示。其中,可信运行控制的主体是进程,客体可以是文件、目录、设备、IPC 和Socket等对象。通过操作系统的可信运行控制机制,结合强制访问控制策略,对通用计算域中的进程实施细粒度的运行控制和访问控制,阻止非法程序的运行,防止非授权用户和进程对资源的访问,保证计算平台运行环境的安全可信。

图5 可信运行控制原理框图

其访问控制流程如下:

(1)主体通过系统调用发起对客体的访问请求;

(2)策略实施部件通过嵌入到系统调用的钩子收到访问请求后,向策略判定部件获取访问策略;

(3)策略判断部件收到请求后,从策略库中查询安全策略,并向TPCM获取策略的完整性报告;

(4)TPCM对策略及权限进行完整性验证后,将完整性状态报告及安全策略返回给策略判断部件,策略判断部件再返回给策略实施部件;

(5)策略实施部件收到安全策略后,调用可信服务接口请求TPCM验证被访问客体的可信状态;

(6)TPCM收到验证请求后,首先对主体的身份进行认证,并对被访问的客体进行完整性度量,将认证结果和度量结果报告给策略实施部件;

(7)策略实施部件根据验证结果决定是否允许主体访问客体;

(8)策略实施部件记录访问操作审计日志;(9)策略实施部件向主体返回访问结果。

4.4 处理器特权级别分配

现代处理器都支持多个特权运行级别,不同处理器有不同的命名方法,支持的数量也有差异。为表述方便,本文用“EL+数字”方式表示处理器的特权级别,数字越大代表权限越大。

对支持四个及以上特权级别(EL0~EL3)的处理器,应将最高特权级别EL3分配给安全防护域的安全功能实现,例如TPCM功能,安全监视与恢复功能等。将次高特权级别EL2分配给虚拟机监视器功能,将EL1分配给虚拟机客户操作系统,将最低权限级别EL0分配给用户应用软件。

对只支持三个特权级别(EL0~EL2)的处理器,可将虚拟机监视器和虚拟机客户操作系统分配在同一特权级别EL1中,仍然将最高特权级别EL2分配给可信相关安全功能,确保整个计算平台安全防护域的独立和安全。

5 信任链建立

信任链是可信计算中的重要概念。利用它可以将信任域从信任根扩展到整个计算平台。

基于龙芯3A4000SE等集成TPCM硬核方式处理器构建的可信计算平台,由于其TPCM完全独立,其信任链建立过程与传统可信计算平台没有区别。都是系统上电后,TPCM作为可信根率先运行,对Boot loader固件进行可信度量,通过度量后,才控制通用计算域的处理器核加载固件代码,执行Boot loader引导过程,随后是虚拟机监视器、客户操作系统、应用程序。

基于飞腾2000/4等采用TrustZone技术路线处理器构建的可信计算平台的信任链建立过程稍有不同。系统上电后,处理器会首先进入安全模式,虚拟安全核读取片内ROM核心代码完成自检和TPCM核心功能构建,然后在TZASC、TZPC和TZMA的配合下,对存放在主板上的后续固件代码进行可信度量,通过验证后,引导安全防护域OS,等安全防护域构建完成后,再对通用计算域的Boot loader进行可信度量,然后切换CPU工作模式,执行通用计算域引导,随后才是虚拟机监视器、客户操作系统和应用程序。

为了支持虚拟化应用,可信计算平台的信任链需要从传统的线性拓扑结构扩展为菊花链拓扑结构。即信任链从可信根传递到虚拟机监视器后开始分叉,每一个虚拟机客户机都用一个独占的虚拟TPCM作为自己的可信根,继续在客户操作系统中进行信任链的传递。

6 结 语

在中美贸易摩擦愈演愈烈的大背景下,自主可控计算平台的选用将会越来越多。本文介绍了一种利用最新的国产处理器构建自主可信计算平台的方法。相比于传统方法,本方法可以降低整机硬件成本,提升运行效率,达到安全防护与计算并存的自免疫效果。

猜你喜欢

监视器固件部件
汉字部件的避让变形
加工中心若干典型失效部件缺陷的改进
奥迪e-tron纯电动汽车的高电压部件(下)
基于固件的远程身份认证
深耕广电,时代奥视监视器“花香遍墙内外”
谷歌公司推出计算机固件分析工具帮助用户阻止恶意软件入侵
英特尔发布免费固件引擎
提取ROM固件中的APP
基于FPGA 的空间电子部件在轨可修改技术