|1.2 可信计算简史|
歌德曾言:一门学科的历史就是这门学科本身。本节简要回顾可信计算的发展过程。通过可信计算的发展过程,可以较全面地了解可信计算的缘起、目标和面临的问题,从而更全面地了解可信计算的背景知识。
1.2.1 可信1.0时代:容错计算
可信计算最早是针对大型机时代主机可靠性的需求提出的,那时的可信计算主要是容错专家提出的Dependable Computing,从软件客体角度出发,强调软件应提供可靠的服务,避免出现严重服务故障。
在可信1.0时代的定义中,可信是系统的一种基本属性,用于确定系统为用户提供服务的持续能力,这种能力也被称为容错能力。1971年,国际容错计算会议的首次举行被认为是可信计算发展过程的重要里程碑。
随着系统硬件软件的进步,故障也在不断地变化。在20世纪70年代,故障主要来自大型机的硬件设备。在20世纪80年代,由于工作站(Work Station)的引入,工作站间的网络也成为一个重要的故障来源。在20世纪90年代,个人计算机广泛使用,软件成为故障的主要来源。如今,新一代移动设备频繁使用,故障特征主要来自设备经常在高度变化且苛刻环境下进行操作。
针对这些故障变化,可信系统使用各种技术提升可信性。针对故障来源变化,系统使用注入故障工具,模拟各种故障源的产生,同时对系统进行监视评估。针对系统复杂度不断提升问题,使用形式化证明的方法进行故障检测。
可信1.0主要解决大型机时代主机可靠性的问题,它针对计算机部件不稳定的问题,采取冗余备份、故障诊断、容错算法等技术,确保信息系统在局部故障的情况下仍能保持运行符合预期,但它并没有对恶意代码、黑客攻击等威胁提出针对性的解决方案。
1.2.2 可信2.0时代:被动可信体系
随着信息技术的发展,各种信息安全技术层出不穷,人们对信息安全中可信的需求也愈加急迫。在这一背景下,从1997年开始,IT产业界联合起来,意图从工程上为信息系统的可信找到一个解决方案,为电子商务、信息服务等应用提供可信支持。这一努力的成果集中体现在 TCG 组织(2003年成立,前身为1997年成立的 TCPA组织)的可信计算标准体系以及 Microsoft、Intel 等公司遵循这一体系所设计的可信硬软件系统架构上。这一标准体系和架构是一个被动的可信体系。
可信2.0的理念是:从物理安全的可信根出发,在计算环境中构筑从可信根到应用的完整可信链条,以为系统提供可信度量、可信存储、可信报告等可信支撑功能,支持系统应用的可信运行。可信2.0明确了信息系统的可信应从一个物理保护的、具备可信密码服务的可信根出发,通过一环套一环的可信扩展过程,将可信从可信根扩展到整个系统。可信2.0同时明确了可信存储、可信报告和可信度量等机制的实施方式,提出了比较完整的被动可信体系实施的工程方法。与可信1.0相比,可信2.0在可信计算落地上有很大的进步。
可信2.0在 PC 层面解决可信问题,它主要针对计算节点的安全性,通过可信根、可信软件栈等可信功能模块,向系统提供被动的可信度量机制。但可信2.0没有明确的可信计算理论模型,没有从计算机体系结构上入手来解决可信问题,因此,基于可信2.0的可信解决方案是不彻底的方案,所提供的可信支撑是有限、固化的,在实际应用中,面临难以克服的障碍,主要体现在以下3个方面。
首先是应用兼容问题,被动可信机制需要在应用中嵌入可信计算调用函数才能执行可信计算功能,这需要对现有应用做大量更改,实现起来很困难。
其次是可信管理问题,TCG的可信计算定义采取“保证可信”的思路,由大厂商或其组成的联盟审批何为可信,再通过证书机制给定义为可信的应用发放许可,一般开发者无法定义可信,这种可信理念限制了开发者的开发空间。
最后是可信开发问题,TCG组织所提供的可信计算开发接口(如TSPI接口),其内容过于繁琐,开发门槛很高,需要大量专业知识,会让一般开发者望而却步。
由于这些障碍,在可信2.0理念下,虽然可信计算的推广工作声势浩大,但可信计算的成果并不显著,从TCPA组织成立到现在近20年时间,只有bitlocker等比较简单的可信计算产品得到了较普遍的应用。实践说明,不从体系架构入手,仅在现有系统基础上进行修补,是不能真正解决信息系统可信问题的。
1.2.3 可信3.0时代:主动免疫体系
我国的可信计算工作起步不晚,主要围绕我国重要信息系统的安全需求展开。1992年,我国军方即立项研究主动免疫的综合防护系统,创造性地提出了基于双系统体系结构实施主动可信监控的思想。经过长期攻关,军民融合,形成了较完整的主动免疫的可信网络防护体系,这一可信技术体系在可信2.0基础上,解决了可信体系与现有体系的融合问题、可信管理问题以及可信开发的简化问题,是可信计算的革命性发展,因此,我国可信计算研究者将基于主动免疫体系的可信计算技术命名为可信3.0。
可信3.0提出了全新的可信计算体系框架,在网络层面解决可信问题。它在计算节点构建一个“宿主—可信双节点”的可信免疫架构,在传统系统之外构建一个逻辑上独立的可信计算子系统作为可信节点,并通过可信连接将可信节点连接起来,通过可信节点间的可信协作形成完整的可信体系,且通过可信节点对系统实施主动监控,为应用提供可信支撑。这一可信架构简化了宿主系统层面的可信开发,同时可信节点为可信开发提供了高度的灵活性,使其可以适应不同领域的复杂安全可信需求。图1-2为可信3.0下的可信体系框架。
可信节点的构建及与系统的互动是可信3.0的关键。可信节点以自主密码技术为基础,以可信控制芯片为支柱,以双融主板为平台,以可信软件为核心,以可信连接为纽带,建立一个完整的可信链条。可信节点通过底层的监控点,以主动监控的方式监视系统的行为,并通过信息系统整体的策略管控,构建可信计算体系,为应用创建一个安全保障环境,确保应用按照预期执行,免于黑客、病毒等威胁。
图1-2 可信3.0下的可信体系框架
针对可信2.0应用中的障碍,可信3.0依托从体系架构到实现技术上的全面创新,给出了解决方案。
可信3.0的主动监控机制一般通过系统调用钩子、虚拟机监视器、底层库函数等位置实施监控,这些监控机制对上层透明,因此不需要修改现有应用即可为应用运行环境提供可信支撑,解决了可信计算兼容问题。
可信3.0在可信定义方面采取一种“保障可信”的思路,由信息和信息系统的属主定义何为可信,并通过可信计算技术保障所定义的可信在信息系统中如实执行。这种可信理念为可信的定义提供了足够的自由度,同时也可让各国政府能自行管理各自国家电子空间的可信,解决了可信管理问题。
另外,主动可信机制可以将复杂的可信计算过程封装在可信计算子系统中,并在可信子系统中设计构件化的可信计算环境,简化和规范化可信计算开发工作,解决了可信开发问题。
可信3.0在我国正处于迅速发展中,围绕可信3.0进行产业合作的中关村可信计算产业联盟于2014年成立,目前已有近200个成员。基于可信3.0的可信计算标准体系正在建设中,已有3项国家标准正式发布,两项国家标准正式立项。基于可信3.0的可信计算安全解决方案已应用于国家电网、中央电视台等国家重要信息系统,并取得了显著效果。