用TCB的概念确保系统的安全

ZDNet软件频道 时间:2003-01-10 作者:BUILDER.COM |  我要评论()
本文关键词:
随着要求开发者对计算机攻击造成的危害负责的立法已经摆上了日程,对系统工程师、体系设计师和分析员来说,理解如何建立安全系统变得越来越重要。

随着要求开发者对计算机攻击造成的危害负责的立法已经摆上了日程,对系统工程师、体系设计师和分析员来说,理解如何建立安全系统变得越来越重要。尽管已经关于系统安全方面已经有了许多优秀可靠的建议,但是我发现它们大多都仅仅涉及特定环境、语言或工具,而没有综合考虑。

美国国家标准技术研究院(NIST)为此提供了通用意义上的指导标准。NIST把安全作为一个工程在整个系统的流程中加以通盘考虑而不是仅仅作为一个事后附加的开发过程。首要的一点就是安全工程必须建立在可靠计算基础(the trusted computing base 即TCB)上,TCB是所有安全机制的总和,即包括硬件也包括软件,这两者提供对系统数据安全的合理程度上的保证。

要求

NIST在考虑系统安全性之前,必须要求该系统符合六个基本要求。这些基本要求如下:

  1. 系统强制执行安全策略——系统必须强制执行一套清晰、明确的安全策略。
  2. 标示(labeling)——系统必须对对象提供一种与之相关的访问控制标示。
  3. 身份与身份确认——对系统信息的访问必须基于用户身份。
  4. 责任可追溯性——对任何影响到系统安全的行为都必须审核以便追溯该用户为此所应付的责任。
  5. 保证——必须有硬件或者软件机制确保上述要求得到执行。
  6. 连续的保护——有硬件或者软件机制可以连续实施基本安全要求来防止破坏。

TCB是由符合NIST要求的元素组成。它包括了四个主要的安全机制:安全策略、身份和身份验证、标示(如,Oracle的细粒度访问控制,即基于用户的访问控制)、以及审核。

一个真实生活中的例子

为了帮助你理解TCB是如何工作的,我们可以找到真实生活中的对应物——银行,银行是当今社会中信赖与安全的标识。尽管仍有一些人会把钱藏在床垫下或者咖啡罐中然后埋到院子里,我们中的大多数人还是会毫不犹豫的把他们的薪水存入银行。我们信任银行,认为我们存入的钱的数目可以被准确的记录下来、钱是安全的,当我们需要时,可以随时支取。

虽然我无法对银行的所有安全机制全面考虑(因为我很信任我们的银行系统中的安全机制),所有的可靠计算基础机制都应用上了。例如,在从帐户支取资金之前,我必须递交附有我的帐号和签名的取款单,以便出纳员识别并确认我的身份——在这个过程中,我需要用到我的某种东西如银行水单,我知道的某样东西如帐号,以及某种我独有的东西如签名。这个过程也包含了为了防止对帐户非授权的任意访问控制,即在我的帐户下的标示说明了有哪些人经过授权从我的帐户下支取资金。我还相当确信记录极少会出错。由于所有的交易都会被审计,即使发生了错误,它也会被识别并在合理的时间内纠正过来。

作为一套清晰定义的系统,确保银行安全性的还有多种安全机制的交织。一个设计合理的系统应该包括身份识别、身份验证、任意访问控制和审核。银行安全性模型确保了上述机制得以实现,并提供了连续保护。在银行模型中,所有的安全机制同时作用,并且我们相信它们工作的正确性。一个按NIST标准建立的安全系统也是也是按银行的模式建立的。


百度大联盟认证黄金会员Copyright© 1997- CNET Networks 版权所有。 ZDNet 是CNET Networks公司注册服务商标。
中华人民共和国电信与信息服务业务经营许可证编号:京ICP证010391号 京ICP备09041801号-159
京公网安备:1101082134