首页>参考读物>工商管理>运营管理

设计安全的体系结构
作者 : (美)Jay Ramachandran
译者 : 胡骏 詹文军
出版日期 : 2003-10-01
ISBN : 7-111-12407-3
定价 : 48.00元
扩展资源下载
扩展信息
语种 : 简体中文
页数 : 319
开本 : 16开
原书名 : Designing Security Architecture Solutions
原出版社:
属性分类: 店面
包含CD :
绝版 : 已绝版
图书简介

本书是从软件工程的角度探讨系统安全性体系结构的开山之作。书中描述了如何在计算机系统体系结构中实现安全性,并介绍了大多数安全性产品所使用的常用安全性模式。同时深入讨论了安全性原则、软件过程,以及加密、应用、数据库、操作系统相关的安全性技术。本书的读者对象是负责在应用中集成安全性产品来满足企业安全性需求的软件架构师和工程师。对于其他对安全性和软件工程感兴趣的读者,本书也可作为基本的参考书。
  随着因特网的发展,计算机安全已经迅速成为一个关键的问题。而随着安全性成为所有IT专业人员的责任,公司也必须重新考虑软件的构建方式,以保证它们的关键应用能够得到保护,同时能够维持数据的完整性和私密性。在这本开拓性的著作里,作者从软件工程的角度探讨系统安全性体系结构。书中强调,应把强大的安全性作为开发过程的指导原则,描述如何在系统的体系结构中融入安全性,并展示了大多数安全性产品中的常用实现模式。对于必须考虑安全性需求的软件架构师和工程师而言,本书是一本必备的参考书。全书深入讨论安全性原则、软件过程,以及有关加密、应用、数据库,操作系统的安全性技术。

  本书的内容
  将体系结构评估和安全性评估集成到软件开发过程,解释应用体系结构是一组在安全的通道上通信、在一定的约束条件下运行的受保护组件。
  安全性原则和体系结构基础,包括安全性产品和安全性基础架构组件对应用的影响。
  中间件、应用、数据库和操作系统安全性。
  体系结构张力,描述如何平衡安全性及其他体系结构目标,例如高可用性和可靠性。
  企业安全性管理,内容包括一个案例研究,论述如何建立金融商业案例对安全性费用估价。

图书特色

Jay Ramachandran是AT&T公司的认证架构师和安全性专家,其工作领域涉及企业安全性体系结构和开发。在过去8年中,他为许多关键的网络系统开发用于安全性保证、审核和管理的软件和工具,组织协调对AT&T核心网络运营支持系统的体系结构评估工作。他目前的工作是向工作组教授有关系统体系结构和网络安全性方面的知识。Jay具有俄亥俄州立大学的博士学位。

图书前言

本书并不直接讨论应用程序,但它却是本书每章中各个话题的中心。本书专门面向希望在应用中构建安全性的系统架构师。本书希望从三个方面为架构师提供帮助:作为安全性体系结构的介绍,进行体系结构评估的安全性问题手册,安全性产品设计方法手册。
读者
本书旨在作为一本设计安全性体系结构的实用手册。目的在于为软件系统架构师提供一个用于考虑安全性的前后相关的框架体系。本书并不直接面向代码编写人员。尽管本书中某些部分的确涉及到代码。本书面向的对象是那些称为系统架构师的技术人员群体。系统架构师是大型项目的技术领导者,总体负责系统的体系结构、设计、接口定义和实现。架构师同时也扮演非技术性角色。他们通常参与项目的规划和可行性阶段的设计,帮助项目所有者建立针对系统的商业案例。他们必须确保项目小组遵循企业安全性指导原则以及软件开发过程,直至项目交付。架构师对于应用及其功能与变革具有深厚的相关知识,但通常在安全性体系结构方面缺乏经验。
本书的主要读者应当是那些希望保护其应用的项目经理、系统架构师和软件工程师。本书提供一个概念性的体系结构框架来回答这些问题:“什么是系统安全性体系结构?如何在令人眼花缭乱的安全性产品中进行选择?如何将安全性选择集成到软件中?在这一过程中通常会发生什么问题?安全性如何影响系统体系结构的其他目标?如何评估在应用中构建安全性的费用?”
如果你当前正在进行一个大型项目,或者可以使用你所熟悉的软件系统的体系结构文档,则可以将它的体系结构作为讨论的参考框架。一个良好的应用可以有助于深入了解某个特定的建议,或者为任何有关安全性或软件设计的体系结构问题提供上下文相关环境。
我们假定读者具有实现安全性解决方案的一些经验,并且遇到一些麻烦。尽管我们在本书中介绍并讨论了许多安全性概念,但我们并不建议读者通过本书学习计算机安全性,因为本书为了尽可能多地介绍体系结构和安全性,我们通常对它们进行了简化描述。在进行简化的同时,我们将会加入一些有关详细内容的参考资料,并且希望这种情况不会使初学者感到混乱。我们希望通过本书的学习之后,作为架构师的读者能够从中获得对安全性的一些领悟(尽管安全性专家可能会认为本书的内容对于他们可能不过是些显而易见的知识)。如果能达到这个目的,我们将感到欣慰。
软件体系结构
软件体系结构在过去10年中日益受到人们的推崇。随着企业系统变得越来越复杂、昂贵且分布化,负责这些系统项目的软件专业人员也越来越多地被称为软件架构师。应用开始产生诸如可用性、可伸缩性、健壮性和互操作性之类的性能需求。同时,作为业务驱动器,企业安全性在许多管理人员脑海中占据了优先位置。许多安全性专业人员为这些企业系统架构师提供了有价值但复杂的安全性服务。架构师被明确要求实现企业安全性策略,许多人觉得需要一个指导原则来了解如何工作。因此我们编写本书给架构师提供对安全性更好的了解。软件开发将需求转变为系统、产品和服务。软件体系结构作为一种重要的组织原则,它提供一个用于支持应用的框架体系。许多公司已经认识到企业体系结构原则以及支持过程定义、架构师认证和培训的价值。软件体系结构可以通过改善版本发布周期、减少软件缺陷、支持体系结构和设计理念的重用以及改善技术交流来节省费用。
关于安全性以及软件体系结构等方面有许多优秀的书籍。此外,在这些领域也有大量且成熟的学术文献集,其中大多数都在本书的参考书目中列出。本书面向的是位于这两个领域交叉点的读者。
在本书中当使用系统或应用这些名词时,我们指的是位于某个平台上的一组硬件和软件组件,它们支持某个业务功能,具有可以区分系统内外的边界以及到其他系统的接口定义。系统在公司中扮演了业务角色。它们属于业务过程并具有标记:客户Web应用、利益目录、雇员薪水数据库、客户订货供应、记账、网络管理、履行、库文档服务器,等等。
安全性可以从保护某个系统这一观点之外的角度来实现。某个项目可能开发一个被包装的产品,例如一个计算机游戏或应用程序;或者提供一个分布式服务,例如电子邮件或命名服务器;或者致力于某个基础架构组件,例如某个企业目录;安全性目标随着各种观点的变化而变化。我们在本书中描述的安全性原则具有足够的一般性来适用于这些观点,这些观点也可以从安全的设计中受益。
项目目标与安全性经验
公司希望把安全性策略纳入到体系结构指导原则中,但是在试图绘制一条有关实现决策的路径时遇到了困难。除非我们认识到问题不在于我们极有天分并足以胜任的开发小组,而在于他们缺乏有关安全性的背景信息,否则我们将在一个接一个的项目中遇到很大的阻力—在体系结构评估时重复检查相同的安全性问题。因此我们应能在体系结构相关环境中提出安全性问题以指导项目的进行。
作为系统架构师,我们相信我们所做出的所有决策都是由技术考虑和业务目标驱动的。我们相信项目小组每次开会做出决策时都是一致的—我们总能达成相同的决策。不过,人性因素和个人经验也会影响我们的决策。对于一个具有预算和时间限制并且正在构建的系统,架构师和开发人员的力量能够改变功能性目标和非功能性目标的方向及优先级。
一个面向对象的方法学权威可能会花费相当的资源去开发数据模型和类图。而一个具有编写并发代码经验的程序员可能会到处引入多线程,在设计中使用互斥、锁以及条件变量。一个对某个产品具有经验的数据库设计人员可能会在使用另外一种数据库的项目中引入原先预想的一些概念。而一个CORBA专家可能会使用各种细节来设计接口定义和服务以期待变革,仅仅因为他知道如何做。一个位于前端的Web设计人员可能会疯狂地在用户界面上使用最时髦的各种外观元素。以上人员的所有这些行为本质上并不坏,而且大多数都具有价值而且有用。不过,如果项目最后没有交付给客户其希望的东西,同时具有足够的性能和可靠性,那么项目将宣告失败。
如果小组中没有拥有很多安全性经验的成员会怎样?在一个我们有点不知所措的领域与另一个我们可以做出富有成效的工作的领域之间的冲突中,我们会选择完成那些我们可以取得最大进展的任务。系统体系结构的其他方面也会出现问题,这些问题可能会因为缺乏经验或优先级不够高而被中途放弃。项目小组宣称由于没有时间或费用,系统不能做到高可用性、不能进行完整的测试,或者不能进行性能建模。这种情况可能经常会出现,但是如果小组中没有人具有有关构建可靠系统、回归测试集或服务的排队理论模型的专业知识,无法完成则这些任务。
安全性体系结构经常受到这种综合症的伤害,幸运的是,有一个填补知识缺陷的解决方案:购买安全性产品或雇佣安全性专家来保护我们的系统。供应商正是抓住这一机会来帮助我们将其解决方案集成于应用中。
供应商安全性产品
因特网的蓬勃发展同时也推动了安全性标准和技术的发展。软件供应商提供了功能丰富的安全性解决方案和组件,它们具有不同的复杂程度和成熟度,可以面向几乎所有的项目。自己创建组件是一种很少见的选择,而且安全性体系结构工作主要是集成工作。在目前的环境中,我们不能忽视供应商产品在辅助针对企业安全性的软件开发方面所日益显现的优势。
我们对供应商产品的了解依赖于供应商市场人员、销售人员、客户服务支持、架构师,以及其他使用这些产品的用户。选用供应商产品时必须谨慎。供应商产品中具有以下三种体系结构缺陷:
喜欢在系统的体系结构中占据中心位置  供应商产品喜欢将自己居于系统的中心位置,而这可能并不是系统架构师希望放置它们的位置。
隐含了假设  供应商产品隐含了那些对于成功部署非常关键的假设,或者是没有明确的体系结构先决条件和对项目的需求未清楚地描述这些假设。
相关环境不明确  相关环境描述了与产品功用以及目标市场定位相关的设计哲学。生产这种特定安全性产品的公司有什么发展历史?他们可能是该项技术的原创者,具有多种产品,拥有安全性领域专家的公司;或者在特定的竞争设计哲学中背景很强。
供应商在以下方面具有架构师所不及的强势:
他们具有相当广泛的安全性专业知识。
他们对产品的性能相当了解,但他们通常不会主动将其产品的设计缺陷告诉给架构师,架构师必须询问有关产品性能的具体问题。他们也很少将他们的产品和其竞争对手的产品做明确的比较。项目小组需要花费精力去充分了解产品的功能,并对不同的供应商产品做比较。此外,他们不经常将人们对其产品设计漏洞的合理批评进行目标转移,将问题的解决责任推卸给用户、管理员、应用过程或接口的另一方,还很少在两年或三年之后仍支持应用的升级,等等。
本书将以上倾斜的天平扶正,挽回架构师的强势地位。我们将介绍如何评价供应商产品;如何发现解决方案中的局限性和界限,同时克服它们。供应商的产品与项目的目标并不对立,但若与供应商缺乏足够清晰的交流,随着应用发生变化,可能会在我们与供应商之间导致很大的冲突摩擦。在应用架构师与供应商产品工程师之间创建良好的关系十分关键,而且有助于维持项目与供应商之间的长远利益。我们希望获得更好的信息来使我们做出更好的有关安全性体系结构的决策。
本书的目标
作为第一级目标,我们在本书中介绍了系统体系结构背后的软件过程。我们集中介绍了体系结构评估。这是软件开发周期中的一个检查点,这个检查点,可以使项目有机会去验证解决方案体系结构并核实它是否符合需求。我们还将描述如何评定系统的安全性问题,如何对体系结构进行组织从而作为一项系统功能加入安全性,以及如何提供体系结构的相关环境信息来减少实现某个安全性选择而对其他选择所产生的影响。我们强调了在设计周期的早期就应纳入安全性,而不是等应用已经投入生产使用后再添加安全性。
作为第二级目标,本书将帮助读者了解许多安全性产品中经常使用的设计模式。本书将围绕安全性产品在系统体系结构中的使用,介绍其中用到的词汇表。我们从对象模式设计领域借用了“模式”这一名词,但是并不打算使用该名词的通常含义。一般来说,如果我们能给某个事物取个名称,同时观察到它的设计重复地在许多安全性产品中出现,并且发现定义并描述该事物能够带来一些好处,则我们将该事物称为一种安全性模式。
作为第三级目标,本书中描述了常见的安全性体系结构问题,并针对特定的技术而讨论了其相关的安全性问题。我们使用了三种应用粒度来审视安全性。
低级问题考虑的是代码检查、加密原语以及可信代码等。
中级问题考虑的是中间件或Web服务、操作系统、主机和数据库。
高级问题考虑的是安全性组件、安全性与其他系统目标之间的冲突以及企业安全性。
作为第四级也是最后一级目标,我们从金融角度讨论安全性,即如何评估保护应用的费用?
阅读本书
我们将本书分为五个部分,除了第一部分的章节之外,其他部分都独立成章,我们根据读者的特定兴趣和技能,给出以下阅读提示:
项目和软件过程经理  可以阅读第1、2、3、4章,然后阅读第15章,这些章节介绍了有关安全性体系结构的一些名词和基本问题。
安全性审核员  可以阅读第1、2、3、4、13和14章。在这些章节中介绍了评估和审核所需的大部分信息。
开发人员  可以按顺序阅读第1章至第4章,然后按任意次序阅读第5章到第12章,可以从中寻找你使用的特定平台或负责开发的软件组件。
系统架构师  从头到尾阅读本书,每次阅读本书的某一部分。本书的描述顺序是从软件过程到安全性技术,再到企业安全性考虑,这一顺序对应于大型应用系统体系结构的需求。所有这些主题现在都被认为是软件架构师所需掌握的知识领域的一部分。
企业家  阅读第1、2、16和17章,然后根据你的兴趣继续阅读。
本书的纲要
本书的每章都混合了抽象的和具体的内容。有关各章中提到的任何技术问题的更多细节,可以参见本书结尾的参考书目。此外,每章还包含在进行体系结构评估时针对某个特定主题所询问的问题。
第一部分“体系结构和安全性”,介绍了体系结构评估和安全性评估的业务过程。该部分描述了安全性体系结构的基础以及安全性模式的类目。
第1章“体系结构评估”,描述了软件开发周期中的一个关键检查点,架构师可以在进行体系结构评估时,询问并回答“解决方案适用于要解决的问题吗?”这一问题。本章介绍了评估过程及其好处。
第2章“安全性评估”,定义了通过使用联邦信息技术安全性评估框架,以及其他业界标准进行的安全性评估过程。该章介绍了安全性评估过程在一个特定的安全性相关环境中实现体系结构评估所具有的许多好处。
第3章“安全性体系结构基础”,定义了“确信”的概念。我们从体系结构角度描述了认证、授权、访问控制、审核、机密性、完整性和不可否认性等概念。该章还讨论了其他的安全性属性以及访问控制模式。
第4章“安全性体系结构模式”,定义了体系结构模式名词,并且描述了以前章节中所介绍的各种基本安全性体系结构需求如何引导出常见的实现模式。此外该章还给出了一个安全性模式类目。
第二部分“低级体系结构”,描述了在代码级别有关开发安全软件的常见问题。这一部分介绍了加密技术的基础知识,并讨论了它在可信代码及安全性通信协议中的应用。
第5章“代码检查”,从安全性观点讨论了进行代码检查的重要性。描述了缓冲区溢出攻击,一种最常见的安全性弱点来源。本章讨论了基于这种攻击的防御策略,以及在Perl和Java字节码检查器中的安全性。
第6章“加密”,介绍了加密原语和协议,以及架构师在构建并验证加密原语和协议时所面对的困难。本章给出了使用加密技术的指导原则。
第7章“可信的代码”,讨论了由于Web的发展所带来的一个结果:数字交付软件的出现。我们在本章描述了在因特网上下载活动内容的风险、一些降低这种风险的办法以及代码难以做到可信的原因。
第8章“安全通信”,介绍了两种保护会话的方法(SSL协议和IPSec),同时还讨论了实现这些协议所需的基础架构支持。我们讨论了安全性层次,并描述了为什么在应用层需要完成诸多的安全性工作。
第三部分“中级体系结构”,从组件和连接器角度介绍了应用架构师在系统中建立安全性时所面临的问题。
第9章“中间件安全性”,讨论了中间件产品的中心目标(即平台无关性)对安全性的影响。我们在本章描述了CORBA安全性规范及其服务模块,以及各种级别的CORBA兼容安全性和管理支持。此外本章还在一个较高层次上讨论了其他的中间件安全性产品。
第10章“Web安全性”,本章从体系结构观点对Web安全性进行了简要介绍,其中包括安全性标准(例如J2EE)的相关信息。
第11章“应用和操作系统安全性”,回顾了参与应用设计的组件,包括操作系统安全性、网络服务、过程描述、接口定义、过程流图表、工作流图和管理工具。我们在本章中讨论了操作系统加固以及其他的部署和开发问题,此外还讨论了UNIX ACL。
第12章“数据库安全性”,介绍了数据库安全性体系结构领域的当前技术水平。本章从安全性观点讨论了数据库的发展,而且描述了一些保护永久性数据的模型,本章还讨论了在Oracle数据库产品中的安全性特性。
第四部分“高级体系结构”,介绍了负责跨多个单独应用(这些应用都具有“企业”特征,例如作为某个高级业务过程或领域的组件)指导软件体系结构的企业架构师所面临的常见的问题。
第13章“安全性组件”,讨论了对于系统架构师可用的构建块及其使用指导。这些构建块包括单一的签署服务器、PKI、防火墙、网络入侵检测、目录以及审核和安全性管理产品。本章讨论了架构师应考虑的问题及不应考虑的问题,应使用的组件及不应使用的组件。此外,还讨论了新技术(例如移动设备)对安全性的影响,它们导致架构师面临独特的安全性集成问题。
第14章“安全性和其他体系结构目标”,讨论了关于安全性和其他体系结构目标之间的冲突。本章讨论了安全性对其他目标(例如性能、高可用性、健壮性、可伸缩性、互操作性、可维护性、可移植性、易用性、适应性以及变革)的影响,在结论中给出了认识体系结构冲突、设置优先级、确定赢得哪个目标的指导原则。
第15章“企业安全性体系结构”,讨论了“我们如何跨应用来架构安全性以及进行安全性管理”这一问题。本章讨论了企业中所保存的资产以及记录数据库状态的概念。同时还讨论了企业基础架构安全性需求的基本问题,例如用户管理、企业目录和老式系统。本章中提出并论证“企业安全性体系结构首先是一个数据管理问题”这一论题,并给出了一种基于XML标准的解决方案。
第五部分“安全性商业案例”,介绍了架构师为其应用创建安全性商业案例时面对的常见问题。
第16章“建立安全性商业案例”,回答了“为什么建立安全性商业案例很困难”这一问题。本章建立了节省损失模型来评价安全性商业案例。我们在本章中为停机时间、投资损失以及声誉损失指定价值,并对避免损失所采取的防御措施费用进行估算。同时还讨论了有关架构师在事故预防、有关费用方面的业界信息,以及以一种在法庭上具有足够说服力的方式来对跨复杂、分布式环境进行事件重建。本章中还讨论了是否可以像买人寿险和火灾险那样购买黑客险以保证安全性,并讨论了某种事物能够被保险所必须具备的属性。
第17章“结论”,回顾了已学习的安全性体系结构课程。本章中为架构师给出了一些建议并提供更多的资源。
本书最后部分为架构师提供了缩略语词汇表和参考书目。
联机信息
尽管我们已经仔细检查了全书,并试图消除任何技术错误,但错误肯定是不可避免的。希望对本书给予评论、抱有疑问或者希望修复错误的读者可以给我们发邮件,邮箱为book@jay-ramachandran.com,或者访问我的网站www.jay-ramachandran.com来了解本书相关内容、更新的供应商产品信息或其他信息。
结论
首先要声明一点:本书的意图并不在于介绍供应商及其产品和应用同其目标和需求之间存在着恒定的冲突,尽管有时候看起来似乎是这样。安全性供应商提供基本的服务,如果不承认它们的价值,以及供应商的产品所扮演的角色,则任何针对安全性的讨论都是不完整的。
安全性通常被表述为是位于“好”与“坏”之间的一个冲突,我们的应用位于“好”的一边,邪恶的黑客则位于“坏”的一边。这种二分法类似于将应用描述为一个中世纪的城堡,同时将其城防描述为:“在此挖个城壕,”“将它挖得深一些,”“使用多个铁闸门,”“在此将油煮沸,”“这里是如何识别一个靠在墙上的梯子的方法”,等等。这种观点将安全性表述为一种主动的冲突,而且经常使用战争名词来描述细节。在这种情况下,我们将自己看作是战争中的将军,而对手则是野蛮的敌人。
我们基本的目的是通过一个不同的二分法来框定有关系统安全性的争论,沿用前面的比喻,这种二分法认识到城堡在和平时期也具有相应角色,它可以作为周边村落的交易市场,可以作为统治机构所在地、部队的宿营地或者居民的住所。在这种二分法中,可以将系统架构师看作城堡的市长,他雇佣一个骑士来组织常备军用于防御城堡。这个骑士知道如何打仗,但是市长拥有资金。注意在这种说法中架构师是市长,而不是国王—国王是客户。

作者简介

(美)Jay Ramachandran:暂无简介

译者简介

胡骏 詹文军:暂无简介

译者序

译完本书之后,我们感觉如释重负,本书是一本首次将安全性以及软件体系结构这两个领域结合起来的奠基性图书,面向的读者群在于这两个领域的交叉点。基于本书的这些特点(涉及领域广、专业性强,面向中高级读者),我们在翻译本书确有如履薄冰的感觉。不仅参考了许多相关资料,并且对难译晦涩之处进行了斟酌推敲,深思熟虑。尽管如此,由于本书涉及属于哲学思想范畴的软件工程领域,译者作为技术人员,虽尽全力,终有力不从心之感。因此,书虽译完,但是读者究竟是否认同,实在是诚惶诚恐。
参与本书翻译的有胡骏、詹文军、李平、王强等人,卢陈思参与了本书的录排工作,全书由詹文军负责统稿。读者若有任何意见和批评,请致信 zhanwenjun@263.net。
关于本书的内容、读者对象和结构,在原书作者洋洋尽万言的前言中已有详细介绍,本序不再赘述。


译  者
2003年2月

图书目录

译者序
前言
第一部分  体系结构和安全性
第1章  体系结构评估 2
1.1  软件过程 2
1.2  评估和软件开发周期 3
1.3  软件过程和体系结构模型 3
1.3.1  Kruchten的 4+1 视图模型 4
1.3.2  开放分布式处理参考模型 5
1.3.3  Rational的统一过程 6
1.4  软件过程和安全性 7
1.5  系统体系结构评估 8
1.5.1  体系结构文档 9
1.5.2  介绍部分 9
1.5.3  体系结构文档的部分 11
1.5.4  体系结构评估报告 13
1.6  结论 13
第2章  安全性评估 15
2.1  什么是安全性评估 15
2.2  组织机构观点 15
2.3  五级一致性模型 16
2.4  系统观点 17
2.5  评估前的准备 18
2.5.1  安全性评估会议 18
2.5.2  安全性评估资产负债表模型 19
2.5.3  描述应用安全性过程 20
2.5.4  确定资产 21
2.5.5  确定安全性弱点和威胁 21
2.5.6  确定潜在的风险 21
2.5.7  威胁和对策举例 22
2.6  评估前的工作 23
2.7  为什么评估如此困难 24
2.7.1  根据价值确定费用 24
2.7.2  为什么安全性评估类似背包问题 25
2.7.3  为什么安全性评估和背包问题不同 27
2.7.4  企业安全性和低分摊费用的
安全性控制 28
2.8  结论 28
第3章  安全性体系结构基础 30
3.1  安全性作为一个体系结构目标 30
3.1.1  企业安全性策略和体系结构 32
3.1.2  供应商 32
3.2  安全性和软件体系结构 34
3.2.1  系统安全性体系结构定义 34
3.2.2  安全性和软件过程 35
3.2.3  针对其他目标的安全性设计力量 36
3.3  安全性原则 37
3.4  其他的安全性相关属性 37
3.5  其他抽象或难以提供的属性 38
3.5.1  推断 38
3.5.2  聚合 39
3.5.3  最小权限 39
3.5.4  自提升 39
3.5.5  优美的失效 40
3.5.6  安全 41
3.6  认证 41
3.6.1  用户ID和密码 41
3.6.2  令牌 42
3.6.3  生物特征认证方案 42
3.6.4  认证架构 43
3.7  授权 43
3.8  访问控制模型 43
3.8.1  强制访问控制模型 43
3.8.2  自由访问控制模型 44
3.8.3  基于角色的访问控制 45
3.8.4  访问控制规则 48
3.8.5  了解应用的访问需求 50
3.9  其他核心的安全性属性 51
3.10  分析一般性系统 51
3.11  结论 53
第4章  安全性体系结构模式 54
4.1  模式目标 54
4.2  常用术语 55
4.3  体系结构原则和模式 55
4.4  安全性模式类别 56
4.5  实体 57
4.6  相关环境持有者 58
4.6.1  会话对象和cookie 58
4.6.2  票证/令牌 59
4.6.3  警戒标记 59
4.6.4  角色 60
4.7  服务提供者 60
4.7.1  目录 61
4.7.2  可信第三方 62
4.7.3  验证者 63
4.8  通道要素 64
4.8.1  包容器 64
4.8.2  过滤器 65
4.8.3  拦截器 67
4.8.4  代理 68
4.9  平台 69
4.9.1  传输隧道 70
4.9.2  分配器 70
4.9.3  集中器 71
4.9.4  层次 71
4.9.5  升降器 73
4.9.6  沙盒 73
4.9.7  magic模式组件 75
4.10  结论 76
第二部分  低级体系结构
第5章  代码检查 78
5.1  代码检查的重要性 78
5.2  缓冲溢出攻击 79
5.2.1  切换UNIX中的执行环境 81
5.2.2  构造缓冲区溢出攻击 81
5.2.3  栈帧的组成部分 82
5.2.4  为什么缓冲区溢出攻击如此普遍 83
5.3  针对缓冲区溢出攻击的对策 83
5.3.1  避免 83
5.3.2  通过验证程序来避免 84
5.3.3  警戒标记 84
5.3.4  层次 84
5.3.5  沙盒 85
5.3.6  包容器 86
5.3.7  拦截器 86
5.4  为什么可以采用的模式如此之多 87
5.4.1  栈扩展重定向 88
5.4.2  硬件支持 88
5.5  安全性和Perl 88
5.5.1  语法检查 89
5.5.2  警戒标记 90
5.5.3  沙盒 90
5.6  Java中的字节码检查 91
5.7  良好的编码实践才能得到安全的代码 92
5.8  结论 93
第6章  加密技术 95
6.1  加密技术的历史 95
6.2  加密工具箱 97
6.3  单向函数 98
6.4  加密 98
6.5  对称加密 98
6.6  非对称加密 100
6.7  数字生成 101
6.8  加密散列函数 101
6.9  认证和数字证书 102
6.10  数字签名 103
6.10.1  经过签署的消息 103
6.10.2  数字信封 103
6.11  密钥管理 104
6.12  密码分析 105
6.12.1  差异密码分析 105
6.12.2  线性密码分析 105
6.13  加密技术和系统体系结构 105
6.14  创新和接受 106
6.15  加密解决方案中的缺陷 107
6.15.1  算法缺陷 107
6.15.2  协议曲解 107
6.15.3  实现错误 108
6.15.4  WEP算法 108
6.16  性能 109
6.17  加密协议比较 110
6.18  结论 111
第7章  可信的代码 112
7.1  在系统中加入信任基础设施 112
7.2  Java沙盒 113
7.2.1  在浏览器中运行小应用程序 114
7.2.2  本地基础设施 115
7.2.3  本地安全性策略定义 115
7.2.4  本地和全局基础设施 115
7.2.5  Java中的安全性扩展 116
7.2.6  系统体系结构 116
7.3  微软认证码 116
7.3.1  全局基础设施 117
7.3.2  本地基础设施 117
7.3.3  本地计算机中的结构 117
7.3.4  认证码和安全性 118
7.4  Internet Explorer区域 118
7.4.1  自定义区域中的安全性 118
7.4.2  基于角色的访问控制 118
7.4.3  接受来自下载内容的指令 120
7.5  Netscape对象签名 120
7.6  在企业中实施信任 121
7.7  保护数字知识产权 122
7.8  Ken Thompson的特洛伊木马编译器 126
7.8.1  一些用于编译器和程序的符号标记 127
7.8.2  自我再生的程序 127
7.8.3  查找签名 129
7.8.4  进一步的思考 130
7.9  留给读者的习题 131
7.10  结论 131
第8章  安全通信 133
8.1  OSI和TCP/IP协议栈 133
8.2  安全通信的结构 135
8.3  SSL协议 135
8.3.1  SSL属性 135
8.3.2  SSL记录协议 136
8.3.3  SSL握手协议 137
8.3.4  SSL问题 138
8.4  IPSec标准 139
8.4.1  IPSec体系结构层次 140
8.4.2  IPSec概述 140
8.4.3  策略管理 141
8.4.4  IPSec传输模式和隧道模式 142
8.4.5  IPSec实现 142
8.4.6  AH协议 143
8.4.7  ESP协议 143
8.4.8  IKE协议 143
8.4.9  安全IPSec数据报的一些例子 144
8.5  IPSec主机体系结构 145
8.6  结论 147
第三部分 中级体系结构
第9章  中间件安全性 150
9.1  中间件和安全性 150
9.1.1  服务访问 150
9.1.2  服务配置 151
9.1.3  事件管理 151
9.1.4  分布式数据管理 152
9.1.5  并发和同步 152
9.1.6  安全性问题 152
9.1.7  可重用服务 152
9.2  绝对可靠性假设 153
9.3  CORBA 154
9.4  OMG CORBA安全标准 155
9.4.1  CORBA安全性服务规范 155
9.4.2  规范中的软件包和模块 155
9.5  CORBA安全性的供应商实现 157
9.6  CORBA安全性级别 157
9.7  保护互操作性 158
9.7.1  安全ORB协议 158
9.7.2  通过SSL的安全通信 159
9.7.3  SSL为什么受欢迎 160
9.8  应用程序无意识的安全性 161
9.9  应用程序有意识的安全性 162
9.10  应用蕴涵 163
9.11  结论 164
第10章  Web安全性 166
10.1  Web安全性问题 167
10.2  Web应用程序体系结构 168
10.3  Web应用程序安全性选项 169
10.4  保护Web客户端 171
10.4.1  活动内容 171
10.4.2  脚本语言 171
10.4.3  浏览器插件和辅助应用程序 172
10.4.4  浏览器配置 172
10.5  连接安全性 172
10.6  保护Web服务器主机 173
10.7  保护Web服务器 175
10.7.1  认证选项 175
10.7.2  Web应用程序配置 176
10.7.3  文档访问控制 176
10.7.4  CGI脚本 176
10.7.5  JavaScript 177
10.7.6  Web服务器体系结构扩展 177
10.8  企业级Web服务器体系结构 178
10.9  Java 2企业版标准 178
10.9.1  服务器端Java 179
10.9.2  Java servlet 179
10.9.3  servlet和声明性访问控制 180
10.9.4  EJB 181
10.10  结论 181
第11章  应用和操作系统安全性 182
11.1  操作系统结构 183
11.2  应用的结构 185
11.3  应用和操作系统的安全性问题 186
11.3.1  硬件安全性问题 187
11.3.2  进程安全性问题 187
11.3.3  软件总线安全性问题 188
11.3.4  数据安全性问题 188
11.3.5  网络安全性问题 188
11.3.6  配置安全性问题 189
11.3.7  操作、管理和维护的安全性问题 189
11.4  保护网络服务的安全 190
11.5  UNIX可插拔认证模块 191
11.6  UNIX访问控制列表 192
11.6.1  Solaris访问控制列表 194
11.6.2  HP-UX访问控制列表 197
11.7  结论 197
第12章  数据库安全性 198
12.1  数据库安全性的变革 198
12.2  体系结构组件及安全性 200
12.3  数据库安全连接 202
12.4  基于角色的访问控制 203
12.4.1  数据字典 204
12.4.2  数据库对象权限 204
12.4.3  有关基于角色访问控制的问题 204
12.5  数据库视图 205
12.6  基于面向对象封装的安全性 206
12.7  SQL过程扩展 207
12.7.1  包容器 207
12.7.2  警戒标记 208
12.8  通过限制性子句实现的安全性 209
12.9  Oracle标签安全性 210
12.10  结论 214
第四部分  高级体系结构
第13章  安全性组件 216
13.1  安全的单点登录 217
13.1.1  脚本解决方案 218
13.1.2  强安全性、共享的认证 218
13.1.3  网络认证 219
13.1.4  SSSO问题 219
13.2  公钥基础设施 221
13.2.1  证书授权机构 222
13.2.2  注册授权机构 222
13.2.3  仓库 222
13.2.4  证书持有者 223
13.2.5  证书验证者 223
13.2.6  PKI使用和管理 223
13.2.7  PKI的运行问题 223
13.3  防火墙 224
13.3.1  防火墙配置 225
13.3.2  防火墙的局限性 225
13.4  入侵检测系统 226
13.5  LDAP和X.500目录 228
13.5.1  轻量级目录访问协议 229
13.5.2  体系结构问题 229
13.5.3  Kerberos 230
13.5.4  Windows 2000中的Kerberos组件 231
13.6  分布式计算环境 232
13.7  SSH 234
13.8  分布式沙盒 234
13.9  结论 236
第14章  安全性和其他体系结构目标 237
14.1  非功能性目标的指标 237
14.2  围绕安全性的力量图 237
14.2.1  通常的体系结构设计 238
14.2.2  良好的体系结构设计 240
14.3  高可用性 241
14.4  健壮性 243
14.4.1  二进制补丁 244
14.4.2  安全性问题 245
14.5  事件重建 245
14.6  易用性 246
14.7  可维护性、适应性和变革 248
14.8  可扩展性 249
14.9  互操作性 250
14.10  性能 250
14.11  可移植性 253
14.12  结论 254
第15章  企业安全性体系结构 256
15.1  把安全性作为一个过程 257
15.1.1  应用安全性策略 257
15.1.2  安全性数据 257
15.1.3  记录数据库 258
15.2  作为数据管理问题的企业安全性 258
15.2.1  安全性策略仓库 259
15.2.2  用户仓库 259
15.2.3  安全性配置仓库 260
15.2.4  应用资产仓库 260
15.2.5  威胁仓库 261
15.2.6  安全性弱点仓库 261
15.3  数据管理工具 262
15.3.1  安全性专业技术的自动化 262
15.3.2  安全性数据管理的方向 263
15.4  David Isenberg和“愚蠢的网络” 264
15.5  可扩展标记语言 265
15.6  XML安全性服务的信令层 266
15.7  XML和安全性标准 266
15.7.1  J2EE Servlet安全性规范 267
15.7.2  XML签名 267
15.7.3  XML加密 268
15.7.4  S2ML 268
15.7.5  SAML 269
15.7.6  XML密钥管理服务 269
15.7.7  XML和其他加密原语 270
15.8  安全性模式类目回顾 270
15.9  支持XML的安全性数据 271
15.10  HGP:一个数据管理的案例研究 272
15.11  结论 274
第五部分  安全性商业案例
第16章  建立安全性商业案例 276
16.1  概述 276
16.2  计算机窃取及欺骗所引起的财务损失 277
16.3  Invita结构案例研究 279
16.4  Invita Security公司中的安全性 281
16.5  商业案例的有关情况 282
16.5.1  开发费用 282
16.5.2  运行费用 283
16.6  暂停1:金融公式 284
16.6.1  利率函数 284
16.6.2  净现值 285
16.6.3  内部利润率 285
16.6.4  偿还周期 285
16.6.5  统一支付 285
16.7  收支-平衡分析 285
16.8  暂停2:节约费用模型的假设 286
16.8.1  节省费用模型中的假设 286
16.8.2  稳态损失 287
16.8.3  网络中断引起的灾难性损失 287
16.9  封闭会议议程 288
16.9.1  稳态损失 289
16.9.2  灾难性损失 290
16.9.3  演示 291
16.9.4  给攻击上保险 292
16.9.5  商业案例的结论 292
16.10  对商业案例的评论 293
16.11  保险与计算机安全 294
16.11.1  黑客险 295
16.11.2  保险定价方法 296
16.12  结论 297
第17章  结论 298
缩略语词汇表 302
参考书目 308

教学资源推荐
作者: 理查德 B. 蔡斯(Richard B. Chase);F.罗伯特·雅各布斯(F. Robert Jacobs);尼古拉斯 J. 阿奎拉诺(Nicholas J. Aquilano)
作者: (美) 威廉·史蒂文森(William J. Stevenson);张群;张杰
作者: 孙延明 宋丹霞 张延平 编著
作者: (美)马克 M.戴维斯(Mark M.Davis) 贾内尔·海尼克(Janelle Heineke) 著
参考读物推荐
作者: (美)伊夫.多兹(Yves L. Doz);加里.哈默尔(Gary Hamel)
作者: 陈维贤 著
作者: (法)迈克·伯乐(Michael Ballé),(法)弗雷迪·伯乐(Freddy Ballé)
视频课程推荐