您所在的位置: 首页>>读书频道>>安全>>综合>>

安全模式 前言

http://book.51cto.com  2007-04-20 14:24  Christopher Steel, Ramesh Nagappan, Ray Lai  机械工业出版社  我要评论(0)
  • 摘要:本书全面阐述Java应用安全的基本知识并介绍一种强大的结构化安全设计方法;介绍独立于厂商的安全架构;列出详细的评估核对表以及23种经过实践检验的安全架构模式。书中介绍多种实际场景,阐述架构和实现,并提供详细的示例代码。本书还讨论如何使用加密技术、混淆代码、建立安全通信、确保J2ME应用的安全、对用户进行认证和授权以及保护Web服务——实现单点登录、有效的身份管理和使用智能卡和生物特征的身份识别。
  • 标签:J2EE  Web服务  身份管理  J2EE、Web服务和身份管理最佳实践与策略

前言:
现有的思考水平无法解决它所提出的问题。
——阿尔伯特·爱因斯坦

在信息行业, 安全从未像今天这样重要。这促使所有企业和组织都采取主动或被动的措施, 在整个信息生命周期内保护数据、 流程、 通信和资源。在不断发展的信息行业, 每天都有新的业务系统面世, 对现有系统进行修改随处可见。这些修改旨在提高组织效率和成本效率, 以及消费者的满意度。这些改进常常带来新的安全风险, 企业必须采取合适的安全策略和规程来应对安全风险。为确保组织的信息安全, 必须深入了解与安全相关的业务挑战和潜在威胁, 广泛认识为采取保护和应对措施降低风险的最佳实践。更重要的是, 组织必须采取可靠的主动安全方法, 并在各个层面(信息处理、 信息传输和信息存储)实施它们。
本书内容
本书旨在为安全从业者提供实用指南, 提供大量使用模式驱动和基于最佳实践的方法来构建可靠的IT应用和服务的经验之谈。本书重点介绍一种安全设计方法, 它使用一组经过实践检验的可重用模式、 最佳实践、 可行性检查、 防范策略和评估核对表, 确保J2EE应用、 Web服务、 身份管理、 服务供应和身份识别的安全。本书介绍了23种全新的安全模式和101项最佳实践, 讨论了用例场景、 架构模型、 设计策略、 实用技术和验证过程。最佳实践和可行性检查从实际部署和最终用户体验的角度出发, 阐述了哪些方法奏效和哪些方法不可取。本书还讨论了为J2EE应用、 Web服务、 身份管理、 服务供应和身份识别提供安全的架构、机制、 标准、 技术和实现原则, 并全面阐述了所需的基本知识。
本书首先概述当今的业务挑战(包括安全威胁和攻击), 分析信息安全和遵守安全法规的重要性, 讨论基本安全的概念和技术。本书深入探讨下述主题:
*J2SE、 J2EE、 J2ME和Java Card平台中的安全机制
*Web服务安全标准和技术
*身份管理标准和技术
*安全设计方法、 模式、 最佳实践和可行性检查
*用于J2EE应用的安全模式和设计策略
*用于Web服务的安全模式和设计策略
*用于身份管理的安全模式和设计策略
*用于服务供应的安全模式和设计策略
*用实例介绍构建端到端安全架构
*使用智能卡和生物特征技术的安全身份识别策略
本书针对的是Java平台, 并突出Java平台在开发和部署安全的应用和服务中的重要性。
本书不介绍的内容
虽然本书依赖于大量的Java技术, 但并没有介绍用于开发J2EE应用(如JSP、 Servlet和EJB)的Java API。如果读者要学习各种API技术, 强烈推荐参考Java官方网站中的J2EE计划、 教程及推荐的图书, 其网址http://java.sun.com
本书使用UML图描述模式和实现策略。如果读者要学习UML基本知识, 请参阅Grady Booch、 James Rumbaugh和Ivar Jacobson编写的《UML用户手册》。
本书面向的读者
本书可供负责确保信息系统和业务应用安全的架构师、 Java开发人员和技术项目经理使用。对于想了解与Java应用、 Web服务、 身份管理、 服务供应和使用智能卡和生物特征进行身份识别相关的安全概念和技术的读者, 本书也很有参考价值。
本书假设读者具备使用Java开发和部署业务应用的基本知识。本书旨在介绍使用Java平台设计、 构建和开发应用时用到的所有安全机制, 阐述如何使用设计方法、 模式和最佳实践以及需要注意的陷阱, 为软件架构师和开发人员提供宝贵的参考资料, 以解决每天面临的实际IT安全问题。
大多数人都没有时间完整地阅读软件开发书籍, 因此本书分为几个不同的技术部分, 让读者能够根据兴趣以任意顺序阅读。
本书的组织结构
本书分为七部分。
第一部分: 引言
介绍当前行业状况、 业务挑战以及各种应用安全问题和应对策略, 阐述有关安全的基本知识。
第1章: 默认安全
描述当前业务挑战、 最薄弱的安全环节和严重的应用缺陷及漏洞。本章简要介绍了安全设计策略、 模式驱动的安全开发概念、 最佳实践和可行性检查; 阐述了遵守安全法规的重要性以及身份管理、 Java平台和身份识别技术(如智能卡和生物特征); 从业务的角度讨论了安全, 并展示安全技术可以推进业务, 并能够带来收益。
第2章: 安全基本知识
本章介绍有关安全的基本知识, 其中包括各种安全技术的背景知识和指导原则; 概述使用流行的加密技术确保应用的安全, 还讨论目录服务和身份管理在安全中的作用。
第二部分: Java安全架构与技术
这部分深入介绍和演示了使用J2SE、 J2EE、 J2ME和Java Card技术的安全实践; 深入研究Java平台安全架构中复杂的技术细节, 及其在为基于Java的应用提供端到端安全解决方案中的作用。
第3章: Java 2平台安全
本章讨论了各种Java平台固有的安全特性, 以及如何在独立的Java应用、applet、 Java Web start(JNLP)应用、 J2ME MIDlet和Java Card applet中实现Java安全; 阐述如何使用Java安全管理工具来管理密钥和证书; 还讨论使用Java代码混淆技术的重要性。
第4章: Java可扩展安全与API
本章深入讨论Java可扩展安全架构及其API框架, 以及如何使用这些API实现在基于Java的应用解决方案中构建端到端安全。具体地说, 本章演示如何使用Java安全API来应用加密机制和公钥基础设施, 如何确保应用通信的安全。
第5章: J2EE安全架构
本章解释J2EE安全架构和机制以及如何将其应用于各种应用层和组件中; 深入讨论应用于Web组件(JSP、 Servlet和JSF)、 业务组件(EJB)和集成组件(JMS、 JDBC和J2EE连接器)的J2EE安全机制; 阐述基
 
该书已由机械工业出版社引进出版, ISBN: 711107564。

于J2EE的Web服务安全及相关技术; 还阐述各种用于设计DMZ网络拓扑的架构方案, 以便在产品环境中确保J2EE应用的安全。
第三部分: Web服务安全和身份管理
这部分重点介绍支持Web服务安全和身份管理的行业标准计划和技术。
第6章: Web服务安全标准与技术
本章解释Web服务架构及其核心构件、 常见的Web服务安全威胁和攻击、 Web服务安全需求以及Web服务安全标准和技术; 深入介绍如何使用诸如XML签名、 XML加密、 XKMS、 WS Security、 SAML概要、 REL概要和WSI基本安全概要等行业标准计划来表示基于XML的安全; 还介绍基于Java的Web服务基础设施提供者, 以及有助于确保Web服务安全的支持XML的安全设备。
第7章: 身份管理标准与技术
本章深入讨论对管理身份信息来说不可或缺的标准和技术; 介绍身份管理面临的挑战, 以及实现基于标准的身份管理的架构模型; 还演示如何使用SAML、 XACML和Liberty Alliance规范等XML标准来实现联合身份管理和支持身份的服务。
第四部分: 安全设计方法、 模式和可行性检查
这部分描述一种安全设计方法并介绍一种模式驱动的安全设计方法, 在软件设计和开发过程中可以使用它们。
第8章: 安全设计点金术: 方法、 模式和可行性检查
本章首先简要地讨论使用安全设计方法的重要性, 然后详细地讨论安全设计过程:在整个软件生命周期内确定并应用安全模式, 包括架构、 设计、 开发、 部署、 生产和废弃。该章描述安全设计中的各种角色及其职责, 解释风险分析、 权衡分析、 效果分析、 因素分析、 层分析、 威胁剖析和信任建模等核心安全分析过程。还介绍安全设计模式目录和安全评估核对表; 在应用开发过程中, 可以使用它们来解决安全需求或提供解决方案。
第五部分: 设计策略和最佳实践
这部分介绍安全模式、 策略和最佳实践, 并按J2EE应用层、 Web服务、 身份管理和服务供应将它们进行分类。
第9章: 确保Web层安全: 设计策略与最佳实践
本章介绍7种安全模式, 它们与设计和部署J2EE Web层和表示层组件相关, 如JSP、 Servlet以及其他相关组件。每种模式都针对一种与Web层或表示层逻辑相关的常见问题, 描述演示各种实现策略的设计解决方案; 阐述使用模式的效果, 强调使用模式时的安全因素和相关风险, 并使用可行性检查验证模式的适用性。该章还列出了用于确保J2EE Web组件和基于Web的应用的最佳实践。
第10章: 确保业务层安全: 设计策略与最佳实践
本章介绍7种安全模式, 它们与设计和部署J2EE业务层组件相关, 如EJB、 JMS以及其他相关组件。每种模式都针对一组与业务层相关的安全问题, 描述演示各种实现策略的设计解决方案以及使用模式的效果; 强调使用业务层安全模式的安全因素和相关风险, 并使用可行性检查验证模式的适用性。该章还列出用于确保J2EE业务组件安全的最佳实践和陷阱。
第11章: 确保Web服务的安全: 设计策略与最佳实践本章介绍3种安全模式, 它们与设计和部署Web服务相关。首先讨论Web服务安全基础设施和有助于确保安全的重要组件。然后描述各种安全模式, 每种模式都针对与业务层相关的安全问题, 描述演示各种实现策略的设计解决方案以及使用Web服务模式的效果; 强调使用安全模式的安全因素和相关风险, 并使用可行性检查验证模式的适用性。最后, 本章列出了用于确保Web服务安全的最佳实践和陷阱。
第12章: 确保身份安全: 设计策略与最佳实践
本章介绍3种与身份管理相关的安全模式。每种模式都针对一个身份管理问题, 描述演示各种实现策略的设计解决方案以及使用模式的效果; 强调使用业务层模式的安全因素和相关风险, 并使用可行性检查验证模式的适用性。最后, 列出用于身份管理的最佳实践。
第13章: 安全服务供应: 设计策略与最佳实践
本章首先简要地讨论业务挑战、 服务供应的范围以及服务供应与身份管理的关系, 然后详细介绍用户账户供应过程并讨论各种架构和应用场景。该章介绍一种用户账户供应的安全模式, 并阐述实现策略和使用该模式的效果; 然后指出使用该模式的安全因素和相关风险, 并使用可行性检查验证该模式的适用性。还介绍SPML及其同服务供应的关系。最后, 本章列出服务供应最佳实践。
第六部分: 综合应用
这部分通过案例研究说明实际的安全实现情形, 描述如何使用模式和最佳实践完成安全设计过程。
第14章: 构建端到端安全架构: 案例研究本章通过一个实际的Web门户, 说明如何使用本书介绍的安全设计方法、 设计模式和最佳实践来定义和实现端到端安全解决方案。本章通过完成整个安全设计过程, 演示如何分析和识别风险, 如何进行权衡, 如何选择并应用安全模式, 以及如何执行因素分析、 层分析、 威胁剖析和可行性检查。还详细介绍如何采用模式驱动的设计过程和注意事项, 并描述如何协调不同逻辑层的安全以提供端到端安全。
第七部分: 使用智能卡和生物特征的身份识别
这部分深入讨论使用智能卡和生物特征的身份识别, 深入研究使用智能卡、 生物特征和结合使用它们时的支持技术、 架构和实现策略。
第15章: 使用智能卡和生物特征的身份识别
本章探讨使用智能卡和生物特征实现身份识别和认证的概念、 技术、 架构策略和最佳实践。首先讨论融合物理和逻辑访问控制的重要性, 以及智能卡和生物特征在身份识别中的作用; 然后阐述在基于J2EE的企业应用、 UNIX和Windows环境中支持基于智能卡和生物特征认证的架构和实现策略; 最后, 列出将智能卡和生物特征用于安全身份识别的最佳实践。
配套网站
本书的官方配套网站为www.coresecuritypatterns.com, 书中所有的示例都可从这里下载。该网站还包含勘误、 修改、 修订以及推荐读物和参考资源。
在Prentice Hall出版社的网站中, 本书英文版的网址http://www.phptr.com/title/0131463071
反馈
我们非常欢迎读者的反馈, 读者可以在配套网站链接的讨论论坛上发布问题。读者也可以通过电子邮件与作者联系, 作者的电子邮件地址可在配套网站上找到。该网站还包括一个可随便订阅和参与的读者论坛, 读者可在这里发布问题, 分享观点, 讨论相关主题。
欢迎阅读本书, 希望读者阅读时能像我们编写时一样充满乐趣。我们坚信, 读者在设计、部署和升级IT系统的安全时, 将会采用本书讨论的理论、 概念、 技巧和方法, 让这些系统以后免受所有安全风险和攻击的困扰。

Chris、 Ramesh和Ray
www.coresecuritypatterns.com

致谢

相比于我们的无知, 我们的知识和学问简直不值一提。
柏拉图(公元前427—347年)

我们要感谢Prentice Hall出版社在本书出版过程中持之以恒的帮助和支持, 其成员包括Greg Doench、 Ralph Moore、 Bonnie Granat和Lara Wysong。
我们还要感谢Judy Lin、 Joe Uniejewski、 Whitfield Diffie、 Li Gong、 John Crupi、 Danny Malks、 Deepak Alur、 Radia Perlman、 Glenn Brunette、 Bill Hamilton和ShaheenNasirudheen提供的反馈以及宝贵的意见和建议。
很多人对本书进行了详细审阅, 并从专家的角度提出宝贵的意见; 如果没有他们的帮助, 本书将难以付梓。衷心感谢Seth Proctor、 Anne Anderson、 Tommy Szeto、 Dwight Hare、 Eve Maler、 Sang Shin、 Sameer Tyagi、 Rafat Alvi、 Tejash Shah、 Robert Skoczylas、 Matthew MacLeod、 Bruce Chapman、 Tom Duell、 Annie Kuo、 Reid Willia
ms、 Frank Hurley、 Jason Miller、 Aprameya Puduthonse、 Michael Howard、 Tao Huang和Sen Zhang。
我们要感谢Sun Microsystems、 RSA Security、 VeriSign、 Microsoft、 Oracle、 Agilent Technologies、 JPMorganChase、 FortMoon Consulting、 AC Technology、 Advanced Biometric Controls和美国财政部Pay.Gov项目的朋友, 感谢他们直接或间接的支持和
鼓励。
Chris Steel
这里要感谢众多给我的工作提供帮助的人员。首先, 要感谢参与本书编写的人员:
*Frank Hurley独自撰写了第2章, 并撰写了大量有关安全基础知识的材料和参考资料。如果没有他, 我将遗漏很多有关安全的基础知识。
*Aprameya Paduthonse撰写了多种用于Web层和业务层的模式, 还审阅了几章的内容, 让我得以快速添加内容和填补空白。如果没有他, 编写进度将更慢。
*Jason Miller撰写了大量有关Web层的内容并负责有关如何结合使用Web层模式的技术细节, 他对Struts和Web层框架的认识无人能出其右。
我还要对众多审阅者致以最诚挚的谢意。正是由于他们抽出宝贵的时间审阅本书, 才使我们没有偏离航向。
这里尤其要感谢Robert Skoczylas, 他详细审阅了有关Web层和业务层模式的章节, 并提出了大量的建议。正是由于他的工作才使这些内容更为连贯易懂。Robert是我遇到的最好的审阅人员。
Ramesh Nagappan
从进入Sun Microsystems起, 安全就是我喜爱的主题之一。虽然我从事的主要工作是Java分布式计算, 但有大量的机会尝试安全技术。鉴于对著述的热情, 编写有关安全的图书一直是我的夙愿, 随着这部巨著的完成, 这个夙愿终于得以实现。
回想本书的起源很有趣。那是Suns JavaSmart Day——2002年9月16日在波士顿召开的开发人员会议, 向众多听众发表有关Web服务安全的演讲后, Chris和我疲惫不堪而又饥肠辘辘地离开。我们在The Cheesecake Factory落座, 在休息期间冒出了这样一个念头: 为Java开发人员编写一本有关实用安全的书, 将我们珍藏已久的密诀、 技巧和方法拿出来让大家分享。在接下来的几天中, 我们向Prentice Hall出版社的Greg Doench提供了建议, 他欣然接受, 但Chris和我由于时间安排紧迫而无法跟上进度。Greg有一次问我: “在Red Sox再次赢得世界职业棒球大赛前能够把手稿准备好吗?”由于Chris和我想在书中讨论更
多相关主题, 因此需要完成的工作范围比原计划大得多。经过几个月不断扩大范围后, Chris和我决定邀请Ray Lai加入。我们的著述之旅就是这样开始的。在编写期间, 我们召开了一次午夜电话会议, 讨论并分享我们的想法以及解决问题, 这很有趣。经过两年多的努力, 工作竟然完成了, 我对此确实有些吃惊。看着它远远超出了当初我们在The Cheesecake Factory的设想, 那感觉真是棒极了。
首先, 要感谢直接或间接影响我, 让我有机会学习和获得安全技术使用经验的人。如果没有这些机会, 我将无法获得编写本书所需的专业知识。感谢:

*Gary Lippert、 Dave DiMillo、 Li Gong和Chris Steel给我提供使用Java安全技术和参与J2EE应用安全项目的经验;
*Sunil Mathew和William Olsen推荐我参与实际的Web服务项目, 并向我提供测试Web服务安全原型的机会。
*Doug Bunting推荐我参与Web服务标准的制定, 尤其是OASIS WSCAF和WSSecurity工作小组。
*Wayne Ashworth和Dan Fisher向我提供进入Smart Card领域和开发Smart Cards应用原型的机会。
*Art Sands、 Chris Sands、 Tuomo Lampinen、 Jeff Groves和Travis Hatmaker向我提供熟悉生物特征技术和将其集成到Sun身份管理产品中的机会。
*Luc Wijns、 Charles Andres、 Sujeet Vasudevan相信我的专业知识, 给我提供为国内著名的ID项目建立基于Java Card的身份管理解决方案原型。
我幸运地拥有一个优秀的审阅小组, 他们的意见和建议深刻独到, 极大地提高了本书的质量。
衷心感谢Glenn Brunette、 Shaheen Nasirudeen、 Tommy Szeto、 Sang Shin、 Robert Skoczylas、 Tejash Shah、 Eve Maler、 Rafat Alvi、 Sameer Tyagi、 Bruce Chapman、Tom Duell、 Annie Kuo和Reid Williams卓越的审阅意见, 我已经将这些意见融合到各章节中。
这里要特别感谢Patric Chang和Matthew MacLeod在编写本书期间对我的鼓励和赏识。
最后, 尤其需要感谢我亲爱的妻子Joyce、 儿子Roger、 小女儿Kaitlyn和父母, 感谢他们给我的爱、 灵感和持之以恒的支持。倘若没有他们的爱与支持, 我将无法完成本书。
Ray Lai
感谢我的家人, 他们在我编写本书的每个夜晚和周末耐心地等待我。
另外, 还要感谢以下人员的支持:
*Glen Reece博士、 Kumar Swaminathan和Samir Patel在管理和精神方面的支持。
*Rafat Alvi、 Glenn Brunette、 Dwight Hare、 Eve Maler和Seth Procter严格和坦率的审阅, 确保手稿在技术方面的正确性。
*Anne Anderson对第7章的严格审阅和建议。

【责任编辑:雪花 TEL:(010)68476606-8008】

回书目      下一节
J2EE实用技巧大全
J2EE应用开发专栏
深入Vista应用程序开发
Ruby on Rails 社区网站开发
ASP.NET从入门到精通
 
 验证码: (点击刷新验证码)   匿名发表
  • Visual C++ 完全自学宝典

  • 作者:强锋科技,朱洪波
  • Visual C++ 6.0是微软公司为程序人员提供的Visual Studio 6.0工具套件中的重要组成部分。本书由浅入深地介绍使用Visual C++ 6.0..
Copyright©2005-2008 51CTO.COM 版权所有