可信安全体系
谈到信息系统安全,人们往往会想到防火墙、入侵检测和防病毒等传统安全手段。面对层出不穷的恶意攻击和病毒,人们只能把防火墙越砌越高、入侵检测越做越复杂、病毒库也越做越大,误报率也随之增多,维护与管理变得更加复杂和难以实施,信息系统的使用效率大大降低。面对这种形势,人们开始从另一个角度来思考信息系统的安全问题,并且提出了面向终端安全的“可信计算”的概念,提出从终端的体系结构上解决信息系统安全问题。
终端安全现状让人忧
从组成信息系统的服务器、网络、终端三个层面上来看,现有的保护手段是逐层递减的,这说明人们往往把过多的注意力放在对服务器和网络的保护上,而忽略了对终端的保护,这显然是不合理的:首先,终端往往是创建和存放重要数据的源头;其次,绝大多数的攻击事件都是从终端发起的。这恰恰是人们对待信息安全问题上的一个误区。究其根源,都是终端体系结构和操作系统的不安全所引起的。如果从终端操作平台实施高等级的安全防范,这些不安全因素将从终端源头被控制。
“可信计算”面向终端
如果信息系统中每一个使用者都是经过认证和授权的,其操作都是符合规定的,那么就不会产生攻击性的事故,就能保证整个信息系统的安全。这是不需要证明的公理。
终端安全思想
从以上公理出发就不难得出:从终端安全入手才能更好地解决整个信息系统的安全问题。
早在九十年代初,沈昌祥院士就认为应该从终端来解决信息系统的安全问题,后来提出了“三纵三横两个中心”的信息安全技术保障框架。而在工作流程相对固定的生产系统中,信息系统主要由应用操作、共享服务和网络通信三个环节组成,如果信息系统中每一个使用者都是经过认证和授权的,其操作都是符合规定的,网络也不会被窃听和插入,那么就不会产生攻击性的事故,就能保证整个信息系统的安全。只有立足于终端,从源头抓起,才能构筑起全面高效的安全防护系统。
可信计算平台
在1999年,由包括Intel、惠普、康柏、微软、IBM在内的业界大公司牵头,成立了可信计算平台联盟(TCPA)。并提出了“可信计算”(trusted computing)的概念,其主要思路是增强现有PC终端体系结构的安全性,并推广为工业规范,利用可信计算技术来构建通用的终端硬件平台。TCPA联盟在2003年改组为TCG组织,成员也扩大为200多个,遍布全球各大洲。可以说体现终端安全思想的“可信计算”已经成为当前信息安全发展的趋势。
“可信计算”的概念由TCG提出,但并没有一个明确的定义,而且联盟内部的各大厂商对“可信计算”的理解也不尽相同。其主要思路是在PC机硬件平台上引入安全芯片架构,通过提供的安全特性来提高终端系统的安全性。“可信计算”可以从几个方面来理解:用户的身份认证,这是对使用者的信任;平台软硬件配置的正确性,这体现了使用者对平台运行环境的信任;应用程序的完整性和合法性,体现了应用程序运行的可信;以及平台之间的可验证性,指网络环境下平台之间的相互信任。
“可信计算平台”是采用“可信计算”技术的终端平台架构。TCG认为如果从一个初始的“信任根”出发,在平台计算环境的每一次转换时,这种信任状态可以通过传递的方式保持下去不被破坏,那么平台上的计算环境始终是可信的,在可信环境下的各种操作也不会破坏平台的可信,平台本身的完整性得到保证,终端安全自然也得到了保证,这就是信任链的传递机制。
“可信计算”技术的核心是称为TPM(可信平台模块)的安全芯片。TPM实际上是一个含有密码运算部件和存储部件的小型片上系统,以TPM为基础,可信机制主要通过三个方面来体现:
可信的度量:任何将要获得控制权的实体,都需要先对该实体进行度量,主要是指完整性值的计算。从平台加电开始,直到运行环境的建立,这个过程就一直在进行;
度量的存储:所有度量值将形成一个序列,并保存在TPM中,同时还包括度量过程日志的存储;
度量的报告:对平台是否可信的询问正是通过“报告”机制来完成的,任何需要知道平台状态的实体需要让TPM报告它这些度量值和相关日志信息,这个过程需要询问实体和平台之间进行双向的认证。如果平台的可信环境被破坏了,询问者有权拒绝与该平台的交互或向该平台提供服务。
可信计算技术非一支独秀
早在1996年就有基于可信引导和可信恢复的研究,通过将终端结构层次化,而引入层次间的完整性验证机制,TCG中关于引导过程的可信可以说借鉴了其中的思想。另一种可信计算的硬件实现,主要是基于对终端CPU结构的改进,它引入安全上下文管理和内存的一致性校验机制来保护终端上的进程执行和进程间隔离。此外,还有许多纯软件的虚拟机方式实现可信计算以及纯硬件的安全协处理器的研究。可见,TCG在提出可信计算时也从中吸取了很多有用的技术和经验,并加以综合充实,从而形成一整套完整的技术框架。
LT技术:
LT技术是英特尔公司提出的新一代PC平台的安全解决方案。它和TCG推出的PC实施规范有所区别,它用到了TCG定义的TPM,基于此来构建自己的安全架构。区别在于LT技术扩展了TCG所定义的可信计算的功能和范围。
LT是多种硬件技术的结合,可以说:LT = CPU + TPM + Chipset + Protected I/O。英特尔认为当前个人计算机上主要存在的软件攻击隐患有:用户输入输出的脆弱性,很容易在I/O通路上对数据进行伪造或篡改,尤其是显示设备的缓存直接是可存取的,如果不控制,所见到的输出将不能确保是真实可信的;内存访问的脆弱性,获得特权级的恶意代码可以对内存的任意位置进行访问,而DMA控制器也可以不经过CPU直接对内存进行访问,如果仅从软件来控制,是远远不够的。因此,针对上述问题,英特尔提出基于硬件的安全解决方案,包括以下几个主要部分:
CPU:支持进程间隔离,对执行进行保护,包括扩充安全指令集,以及寻址结构;
TPM:支持密封存储,提供用于用户认证和平台验证的各种密码支持;
Chipset:支持内存隔离,域管理,解决DMA通道对内存访问的问题,也为建立有保护的输入输出环境提供硬件支持;
Protect I/O:涉及到各种外部设备及接口,建立有保护的输入输出还需要对外部设备及接口进行改造。
LT技术的安全特性总结为以下四点:
执行保护:从硬件上支持应用间的隔离,称为“域隔离”;
可验证性:能够向本地和远程实体提供平台身份或配置环境是否可信的验证;
安全存储:通过TPM进行重要信息的密封存储,其本身的硬件特性就保证比存放在其他设备上要安全得多,同时TPM又具有证实的能力,通过对存放的密封数据的检验和鉴别,更好地保护数据的完整性和秘密性;
输入输出的保护:芯片组和外部接口经过安全设计,可以建立基于硬件保护的可信通道。
在应用模式上,考虑到兼容性,LT技术引入了标准环境和保护环境,并且两种环境是并存的,如果一旦安全应用需要运行,系统将通过一系列步骤在标准环境下建立一个平行的保护环境,应用一旦处于保护环境下,将能够使用LT提供的各种安全功能,同时,该环境本身也是可信的,不会被不可信的应用破坏,因为保护环境和标准环境是互相隔离的。标准环境则仍然运行着现有的普通应用。
NGSCB计划
微软在2002年提出了“palladium”计划,随后改为NGSCB(下一代安全计算基础,Next Generation Secure Computing Base)。目的是为构建下一代安全计算平台环境提供基于硬软件的整套方案。微软计划在下一代代号为“longhorn”的操作系统中采用该技术。NGSCB技术框架的基本结构可以划分为三层:最底层为硬件支持层称为SSC(Secure Support Component);运行在其上的是与操作系统内核在同一个环上的核心模块,通过该模块来提供对SSC的访问,同时提供各种安全功能支持,称为nexus;上面是应用层,由称为NCA(Nexus Computing Agent)的代理来执行。
SSC:类似TCG的TPM模块(微软指明可以使用TPM1.2版作为SSC),作为安全功能的支持平台,该硬件模块能够提供密码支持和安全存储等;
Nexus:NGSCB的核心组件,也是操作系统的一部分,运行在核心态,但同时又和内核独立运行,它为应用层提供了一组API和服务,包括密封存储和验证,上层应用将通过该部件来获得安全支持;
NCA:由nexus为应用程序生成一个用户态下的代理进程,应用程序通过该进程和nexus交互,以获得所需要的安全服务。
从上面的结构中可以看出,为了与现有系统的兼容,微软同英特尔一样,通过在现有环境基础上兼容一个平行的保护环境来运行NGSCB,安全密切相关的应用将在右边运行,而传统的应用在左边,互不干扰。
NGSCB技术也提供四个新的安全特性,同LT技术非常类似:
进程隔离:确保应用之间不能访问对方空间,甚至连操作系统本身也无法做到,它是由nexus建立并维护的,由硬件提供支持;
密封存储:包含认证机制的加密保护,即只有可信的应用,或由可信应用委任的其他实体才可以访问该信息;
安全通路:在输入输出和nexus之间建立基于硬件的安全通道,恶意代码无法对输入输出数据进行刺探,或进行模拟及篡改;
可验证性:平台的相互认证机制,同时也可以鉴别远程或本地平台软硬件配置及应用的可信。
国内相关研究及实践
早在1999年,国内厂商就对终端安全做过相关研究和尝试,其中有代表性的是依托武汉大学技术力量的武汉瑞达科技有限公司,它们独立进行了“安全计算机”的体系机构和关键技术的研究和实践,同TCG的思路非常相似,瑞达提出的技术框架也是在主板上增加安全控制芯片以及从BIOS入手来增强平台的安全性,不同的是没有引入内涵更为丰富的可信机制。在硬件的设计和实践上瑞达先后推出了几个版本的原型样机,在这个领域积累了丰富的经验。
联想是率先加入TCG的国内厂家,在PC整机设计制造方面有着丰富的经验,同时它们还和英特尔公司合作成立了联合实验室研究可信计算技术,并且有望在未来的PC平台生产上采用LT技术。
同时,一些军事科研单位利用当前可信计算平台研究的大环境,根据军事信息系统的实际需求对可信计算平台体系结构和实现框架作了深入的研究。一些院校也成立了体系结构实验室,主要研究可信计算平台上的安全操作系统的实现等。
对于终端安全及可信计算技术的研究和实践,可以说我们并没有落后国外多少,我们应该利用这个大好时机,结合我们的国情和实际应用需求,充分借鉴TCG提出的各种先进技术和思想,构建我们自己的可信计算平台。
因此要构建可信计算平台,就必须引入独立的可信硬件,它是可信计算平台的基础。
可信硬件的实现方式一般采用独立CPU设计的片上系统,这样更能保证其独立性和安全性,同时辅以外部控制逻辑和安全通信协议。作为可信计算平台的基础部件,可信硬件自身的保护措施也是相当严格的,涉及到命令协议的设计,算法的实现,存储部件的保护等。除此之外,硬件的实现还要考虑各种固件的可信设计,这里面主要指对BIOS和各种ROM代码的改进。
任何安全系统都离不开密码技术,而基于硬件的密码技术更是可信硬件平台的基础。它包括身份认证中的签名,数据保护中的对称钥加密,以及密钥管理中的公钥加密等。在实现上,它将融入到可信硬件内部的设计中,比如公钥协处理器,随机数发生器等;上层操作系统的安全功能也将很大程度上依赖密码技术。
可信计算平台的核心
TCG规范是独立于操作系统的,这也是TCG提出的可信计算平台最大的不足,应该意识到,高安全等级的操作系统才是可信计算平台的核心,否则,再安全可靠的平台也发挥不了作用。TCG规范反而给我们留下了一个机会,由于Linux的快速发展给我国研发自主的操作系统带来了历史性机遇,我们应充分发挥现有的优势,借可信计算的东风,将可信计算技术和操作系统技术很好地融和起来,构造自主产权的高等级的安全操作系统。
构筑高安全等级的操作系统,首先要考虑应用环境,高安全等级的操作系统并不是一个单纯的操作系统,而是一个体系,应该包括各种应用工具,编译环境,开发环境等。还要认识到高安全等级的操作系统对应的是高安全等级的应用系统。此外,如何体现可信机制,如何充分利用可信硬件的功能,为上层应用提供可信服务和功能调用等,都是要在设计时需要考虑的问题。
主要思路及方法
可信计算平台的基础:
TCG中可信计算平台的核心是TPM,它是整个平台的信任基础,而无论从LT技术还是从微软的NGSCB计划来看都离不开安全硬件的支持。
信任链的传递是体现可信的重要手段,它是可信计算平台的核心机制。但应该看到TCG提出信任链传递是建立在国外社会信任体制及证书体系非常健全的前提下,而证书又是建立在公钥基础设施之上,目前而言并不符合国内实际情况,因此,需要新的实现方式来体现这种信任的传递。
信任链的传递可以分为两个主要阶段,首先是从平台的加电开始到操作系统装载完毕,接着是从操作系统开始运行以及应用系统的运行,第一阶段信任链是单向的,而进入多任务环境下,应用的运行是随机的,信任链也成为发散的树形,因此实现的难点就在于如何在多任务环境下,应用的运行能够始终保持平台的可信状态。
具体的实现中,在第一个阶段可以借助简单的完整性验证手段,在第二个阶段可以和具体的安全规则相结合,对不同的主客体定义具体的信任等级,在传递过程中按照定义的规则进行平台状态的转换。这里就涉及到应用的可信度问题,并且在应用程序的调度过程中也需要考虑进程间的切换给平台状态带来的影响,以及如何处理影响。
可信计算需要引导与支持:
可信引导是在可信计算平台上建立可信环境的必要条件,只有引导过程是可信的,才能保证后面建立起来的环境是可信的。可信环境的建立是一个连续的过程,任何一个环节的漏洞都会导致整个系统不安全。一般的可信引导过程的设计应该保证在操作系统装载之前的平台运行环境是可信的,包括对硬件配置信息的验证,每个环节运行的固件或程序的验证,以及MBR、操作系统装载程序和操作系统内核本身的一致性进行验证。
可信计算环境除了平台本身的可信不被破坏之外,对可信应用的支持也是必不可少的,它体现了“自身强壮,帮助别人”的思路。这其中主要包括如何在操作系统一层提供体现可信机制的功能调用和在应用层对可信应用提供的各种系统可信服务,在实现上可以从操作系统内核和应用两个层次来提供相应的软件支持。
应用还需因地制宜:
可信计算平台要解决应用系统的安全问题就必须面向具体的应用环境。可以先从工作流程相对固定的生产型系统开始,比如在电子政务的实施中分析具体政务部门的工作流程和安全需求,充分发挥可信计算平台的优势,取得一定经验后再推广到其他部门或机构。
高安全等级的操作系统要配合高安全等级的应用系统,开发出可信的应用系统正是为了迎合这种需求,同时也是为了最大限度地发挥可信计算平台的优势。开发可信应用面临两个主要问题: 一是如何结合具体的应用环境来利用可信计算平台的功能;二是如何定义可信应用,比如可以从应用的开发过程来衡量应用系统的可信度,或利用CC标准来对应用系统进行评估。
应该看到信息安全要立足于终端,从源头抓起,才能从根本上解决安全问题,同时信息安全也要和应用系统紧密结合,才能做到有的放矢,真正有效地满足我国各行业的迫切需求。目前我国的信息安全建设正处在一个关键时期,也面临一个大好的发展时期,我们必须把握住正确的研究方向,制定相应的发展战略,走符合我国国情的发展道路;要紧密关注国际趋势,充分利用国际先进技术,大力发展自主产权芯片技术和高安全等级操作系统,促进我国信息安全事业的发展。

| 

