可信计算VIII计算安全性

来源:百度文库 编辑:神马文学网 时间:2024/06/03 08:34:31
可信计算VIII计算安全性 2006年06月21日  

前进中的可信计算(Ⅷ):安全的计算

闵应骅

安全是一个非常广泛的概念,譬如国家安全、社会安全、人身安全、财产安全等等。本文要谈的是计算安全,它跟以上这些安全问题都有关系,但不能视为等同。这里所说的计算是指信息传递、描述和变换的过程。只有保证计算的安全性,计算过程才是放心的,计算结果才能是可信的。

计算安全的概念

从计算的角度讲,安全计算的目的主要是为了计算过程不受安全威胁、计算结果安全可信。其实,“可信”总是相对于某一个主体或系统来说的。一般来说,可信任关系,涉及到如下几个方面:

1.主体身份的可信

系统通过身份认证来确定一个主体及其所声明的身份是否一致。只有在主体及其所声明的身份一致时才能确认主体的身份,满足他的要求。

2.主体间行为的可信

主体A对另一个主体B的行为是否符合主体A按照某种原则所赋与的期望。从安全的角度就是考虑主体B的行为是否对主体所要保护的计算资源有威胁,以及威胁的程度,而这个威胁以及威胁的程度是由主体A来判断的。

3.信息内容的可信

主体需要对其所关注的事件或信息内容的“真”、“假”程度进行判断,以确定这些信息是否可信,而做出这个判断的就是关注该信息内容的主体。

严格来说,信任关系并不是形式逻辑意义上的“关系”,而是一个社会科学概念,主要是指主体之间、主体与客体(信息载体及信息内容)之间的信任关系。而这种信任关系的判断是由关注者(主体)根据某种原则,来对其关注的主体行为、客体内容是否满足其对他们的期望所做出的信任度判断,并以此建立相应的“信任关系”。显然,这种“信任关系”是因时、因地而变的。主体A在某一个关注问题上对主体B信任,而在另一件事情、另一个时间、地点就可能对主体B的行为不信任。所以,“可信性”是资源所有者对使用者的可信性判断,这种可信性是相对于资源所有者而言的,可信性判断的信息来源于资源所有者自己的信息采集渠道、对信息源的历史记录和内容的分析,而不是依据资源使用者自己声称的“可信”信息。例如,一家银行的信息的所有者是这家银行,它要确认访问者是否可信。而对用户,对他在该银行的财产信息,它是信息的所有者,他要确认该银行信息是否可信。所以,从社会科学的角度来说,一个主体对另一个主体或某一个信息是否可信是一个很复杂的问题,不可能完全用形式推理的办法得出来,因而也就不可能完全靠计算机算出来。可信计算技术能做的是从技术上尽可能的保证,方便主体作出这种选择,在一些比较简单的情况下,甚至不用用户费心就可以做出抉择。

计算安全是针对计算者或一个系统来说的,不存在对所有人、对全世界都安全的计算。计算是否安全并不是一个可以回答“是”或者“不是”的问题,而是要求系统安全到一定程度的问题。没有绝对安全,只有这样比那样更安全的可能。事实上,我们也回答不了什么样的计算就绝对安全了。所以,安全需要定量的评估。不要去企求理想的绝对安全的境界,而要去追求越来越安全的过程。

可以把计算安全分为三个层次,即信息安全、系统安全和网络安全。本文简要概述这三个概念,以下各篇再介绍某些具体内容。

信息安全

信息安全是要使信息免受未授权的泄露、篡改和毁坏。由于计算系统中的信息都是数字化的,所以,信息安全也可以称为数据安全。使信息免受未授权的泄露,就是信息的机密性。使信息免受未授权的篡改就是信息的完整性。为使信息免受未授权的毁坏,就要保证信息的可用性。有人把机密性、完整性和可用性称为信息安全的金三角。意义很清楚,信息安全就是要让该知道此信息的人能够完全正确的理解它、使用它,而不该知道此信息的人无法理解它、使用它。这个要求不算过分,在战争中有军事机密,市场上有商业机密,这些都早已有之。第二次世界大战中由于盟军破译了希特勒的密码而打了胜仗。这说明信息安全多么重要。计算过程的安全性首先包括信息安全,即指信息或数据,特别是文本文档,本身对主体是否是安全的。

密码学早在上世纪四十年代就已经形成为一个学科。一个密码系统将发送者的信息进行伪装,也就是加密,发送出去。合法的接收者可以解密获取该信息,而非法的接收者无法理解该密文,以达到信息安全的目的。这个过程可以用图1表示。

 

   

早在上世纪六十年代,研发多终端计算机系统时,人们就认识到,为了保证终端用户的数据安全,需要各用户有自己的读写控制,或者叫访问控制。发展到网络时代,系统安全就更显得重要了。例如,空军基地的电子作战系统,其目的是堵塞敌人的雷达,防止敌人堵塞自己的雷达;病人的病历系统必须防止所有职员看到每一个病历,以保障病人的隐私。病历在医学科研中要大量使用,但是匿名的。系统必须从硬件或软件的角度提供一种机制,使用户能够保证他们的计算安全。一般地说,系统安全要完成以下功能:

1.   识别想访问本安全系统的用户,使每一个可能的用户都有进入系统唯一的识别号。在多终端系统中,一般是采用用户口令(password),只有输入正确的用户口令,你才能进入系统。这个用户口令可以由用户自由修改。在网络环境下,由于需要远程登陆,别人非法进入你的账号的可能性加大。因此,一种带附加硬件的动态用户口令分配方案被许多公司采用。

2.   验证声称自己是合法用户的合法性,以进一步提高确认程度。譬如给一个口令或入场券,去验证用户是否有现在访问系统的权利。

3.   只允许授权的用户去访问已经保护的资源,给用户合适的权限方便地访问各个已经保护的资源。资源的保护级别可以是不同的。对某些用户开放的资源对另一些用户可能是封闭的。

4.   根据自己的设备情况,方便地选择安全结构和管理。例如对于操作系统,应用系统可以根据其实际情况进行修剪和选择,以适应自己的需要。

5.   记录被保护资源的被读写的情况,以便了解谁读写了什么资源,及该资源的使用情况。这是系统一个重要的管理功能。

6.   即刻或在用户要求的时间内记录违规行为,让你按你选择的格式看到违规行为。这是管理者追究法律责任所必须的证据。但是,目前对电子犯罪的法律尚不完善,这种证据是否能做数,还需法律界定。

    IBM的OS/390 安全服务器上配备了资源访问控制工具(RACF)就是为了完成上述功能。但是,由于攻击的不断进步,实现这些功能的硬件或软件设备仍然可能有空子可钻。所以,技术也必须不断进步,才能保证系统安全。但是不能企求一个一劳永逸的解决。同时,在系统设计时,可信性和安全性都需要系统规范来加以确认。系统规范里说明了该系统要达到何种程度的可信性和安全性。

有关系统安全的术语和概念由来已久。计算机安全性、通信安全性、信息安全性和信息保险已经在安全性研究和实践人员中使用和发展了很多年,但没有很明确的定义。因为它基本上是一个社会科学的概念,似乎不可能给出一个形式的定义。一般认为,安全性包括:

u       机密性:防止信息的非授权揭露;

u       完整性:防止未授权的信息修改和删除;和

u       可用性:防止信息未被授权的撤消等。

我们把安全性定义为一种系统状态,不允许未被授权的信息访问和处理。其他一些附加的特性与不同的信息类型有关。例如,用户的合法性:即对执行操作的人确认其可用性和合理性;权威性:即信息内容的完整性和信息源,以及某些其他信息,如发出时间等;抗否认性:即消息发送者不能否认他是消息的源头,接受者不能否认他是消息的接受者。安全策略是由安全驱动的,由组织者或计算机系统给定并坚持的一组约束。这些约束的执行可以通过技术的、管理的和/或运行控制来实现,而安全策略也规定了如何强制执行这些控制。因而,安全策略是系统规范的一部份。违反它就是安全失效。实际上,在系统的各层次上,可以有不同层次的安全策略。例如,对一个公司来说,可以有整个公司的安全策略、信息系统部的安全策略,直到部内单个计算机系统的安全策略。虽然各级、各部门的安全策略有重叠、也有区别,但公司可以制订一个总的策略文件,约束公司计算机实际的和网络的访问,以控制公司信息的公开泄露。有些计算机安全策略还包括信息如何在系统中流动和系统状态方面的约束。

    国际性的非盈利机构可信计算工作组(Trusted Computing Group,TCG)把可信定义为:可信是一种期望,在这种期望下设备按照特定的目的以特定的方式运转。这个定义是非形式的,因为“期望”很难说确切,可以想象得很高,但实际达不到。TCG针对不同的终端类型和平台制订了一系列完整的规范,例如个人电脑、服务器、移动电话、通信网络、软件等等,这些规范所定义的可信平台模块(Trusted Platform Module,TPM)通常以硬件的形式被嵌入到各种计算终端,以提供可信的基础设施。但事实上,TPM也许不过是一种基于软件的安全代理,或者是以硬件的方式集成在计算设备之中。可信计算平台将加密、解密、认证等基本的安全功能写入硬件芯片,以确保芯片中的信息不能在外部通过软件随意获取。除非将硬件芯片从系统中移除,否则就无法突破这层防护。这一想法看来很好,但是否能真正保证这一点,还需要理论上加以论证。实际上,让一个系统不做某些事并不难,让它什么都不做就更容易。该做的事还必须高效率地做,而且要自动地区别什么事该做、什么事不该做,这就难了。现在产业界都在努力做各种各样的可信产品,学术界的问题是:你怎么论证有了这些产品,计算就可信了?这个问题当然很难回答,也许公司可以阐明某一种产品可以保证那一方面的安全,而不要说我这是一个全局的解。

网络安全

     计算安全是要保证信息传递、描述和变换过程安全。光是用密码使别人看不懂未授权的信息是不够的。譬如敌方发现我方某一条重要的链路流量近期反常的猛增,可能猜想出某些事情可能发生,这就可能泄露了某些信息。所以,信息传递、描述和变换过程本身也是信息。由于网络面向全世界,又始终处于动态变化状态中,极易受到攻击,也极易泄露信息,网络安全就显得极其重要。目前,网络所面临的安全风险已经成为现实社会的焦点话题。据调查,目前美国每年因网络安全问题而蒙受的经济损失超过170亿美元,德国、英国也均在数十亿美元以上,虽然我们并不知道这些数据是怎么统计出来的,是否有水分。在国际刑法界列举的现代社会新型犯罪排行榜上,计算机犯罪已名列榜首。在中国,国家计算机病毒应急处理中心的监测结果显示,目前我国95%与互联网相连的网络管理中心都遭受过境内外黑客的攻击或侵入,其中银行、金融和证券机构是黑客攻击的重点。国内基础电信运营商和电信增值业务提供商提出了“同步规划、同步建设、同步发展”的原则,加强对下一代网络安全问题的研究,以实现未来网络发展与安全的协调统一。这是很好的愿望。但是,订一个解决因特网安全问题的目标就显得过于远大。安全问题要根据某一个系统或者某一个网络提出的规范来解决,而不是对整个因特网的安全问题做一个统一的解决。事实上,这样一揽子的解决方案是否存在也是值得怀疑的。

    谈到网络安全,当然首先是杀毒防毒。病毒入侵已经成为大家熟知的一个头痛的问题。黑客们并不一定有明确的攻击目的,但后果可以非常严重。入侵检测和警报系统已经有许多商用产品。其次就是防火墙。防火墙是一个安插在被保护的计算机和它所连接的网络之间的软件或硬件设备。譬如,防火墙可以置于一个单独的路由器中,用来过滤可疑的信息包;也可以安装在路由器和主机之间。防火墙可以让用户在一个安全屏障后接入互联网;或者把一家企业的公共网络服务器和企业内部网络隔开。有时,防火墙也用来保护企业内部网络某一个部分的安全。例如,一个会计子网也许需要特别的保护,甚至是来自企业内部网络里面的窥探。现在普遍采用的防火墙,一种是在公用网和内部网之间设置网关;一种是用防火墙软件,按照一定的规则限制一些非法用户访问内部网或主机,而且这些规则可以动态地在线修改和补充。好几家公司都可以提供所谓网络安全的整体解决方案和系列产品。当然,在信息传输的线路上插入一个设备,无论是软的还是硬的,也不论其性能有多高,总会增加网络延迟,影响网络性能,但这是为了保证安全而不得不付出的代价。同时,过滤规则的不断完善和补充,也给人一种“头痛医头,脚痛医脚”的感觉。但这是不得已而为之,因为我们无法预料攻击者会有什么新招。我们既然不能给出“安全”的一个形式定义,我们也就无法给出保证安全问题的一般的彻底的解。

    很多人讲网络安全是三分技术,七分管理,以便对涉及公司业务运作的所有信息资产,诸如通信网和业务系统、各支撑系统,涉及网络、市场、财务、研发、人力的各类重要信息,进行保护。实际上,网络世界是当今这个开放的现实世界的虚拟,现实世界中的一切正反面现象都反映在网络世界中。网络安全的问题决不单是一个技术问题,更主要的它是一个社会问题,甚至是一个世界性的大问题。例如,谁应该控制因特网?在英特网广泛应用十多年以后,仍然是个迫切需要解决的问题。在2005年9月联合国关于信息安全首脑会议的预备会议上,一些国家联合批评美国独家控制因特网域名服务器(DNS),并建议建立一个多国理事会来监管DNS。一个由大学组成的关于因特网管理策略分析的专题研究得出结论说,美国应该让因特网管理国际化,要避免侵略性的中央控制方式。此外,因特网的全球连接使各组织可以在全世界范围内连接它的雇员、股东和顾客,以进行通信和交换信息。与这种空前的能力随之而来的是在每一个连接点上分享信息资源的安全问题。现在,各组织把安全措施扩展到实际上远远超过他们那个大楼之外的许多地方,以保护他们的数字资源。他们也必须把安全措施伸向他们内部的每一台PC机或笔记本电脑。当人、应用和网络相互连接时,就需要安全的计算。在国内,信息安全一方面需要政府制订一系列的策略、法规、标准进行规范和引导,需要整个行业都承担起相应的义务;同时,也需要进一步提高用户的安全意识和安全管理。事情常常要从两方面去看。为了网络安全,需要加强管理,但是,也不能管得太死。不能说因为怕不安全,干脆闭门锁国,不用网络算了。我们需要保护隐私,建造民主自由、生动活泼的网络世界。

    技术方面保证网络安全的努力当然也是重要的。微软于2002年提出高可信计算(Trustworthy Computing)的概念,并开始高度关注信息安全问题。在微软,所有软件开发人员开发出的新产品,全都要经过严格的安全检验。微软制定了包括要求、设计、实施、检验、发行、响应以及审计等在内的完整的软件安全过程。比尔.盖茨一直强调:“安全已经成为微软的首要任务,也是微软研发的重头戏。”,微软将其60多亿美元研发资金中的1/3用于安全软件技术开发。此外,WindowsXP SP2和WindowsServer2003 SP1都已通过共同标准证书(Common Criteria Certification),它也是许多政府、金融机构所要求的一个基本测试标准。

网络世界以及信息化领域中的可信性研究,内容很多。应该和产业界一起,寻找形式化的途径来描述可信性的各个方面。不要空谈可信性、安全性,而要研究包括如何构建在某一点上保证可信的计算机系统或系统部件;如何利用信任度较低的系统构建可信的网络计算环境;以及如何在不可信的计算环境中,保证业务应用系统的可信运行和维护。总之,应该在可信计算基础研究的基础上,研究可信计算平台、可信接入、和可信应用。为此,企业界与学术界的结合极其重要,可信计算问题需要这种合作,社会呼唤这种合作。