首页>参考读物>计算机科学与技术>安全

安全模式:J2EE、Web服务和身份管理最佳实践与策略
作者 : Christopher Steel, Ramesh Nagappan, Ray Lai
译者 : 陈秋萍 罗邓 袁国忠
出版日期 : 2006-09-20
ISBN : 7-111-19503-5
定价 : 75.00元
扩展资源下载
扩展信息
语种 : 简体中文
页数 : 571
开本 : 16开
原书名 : Core Security Patterns: Best Practices and Strategies for J2EE?, Web Services, and Identity Management
原出版社: Prentice Hall
属性分类: 店面
包含CD :
绝版 : 未绝版
图书简介

和《J2EE核心模式》一样,本书提供一种在应用中设计端到端安全的模式驱动的主动方法。本书汇集了作者在安全领域丰富的经验,是需要创建安全应用的设计和开发人员必读的图书。
  ——John Crupi
  Sun Microsystems杰出工程师,《J2EE核心模式》的作者

本书涵盖的一些主题:
  ●J2EE应用安全最佳实践和需要避开的常见陷阱。
  ●在实际应用中实现关键的Java平台安全特性。
  ●使用XML签名、XML加密、WS-Security、XKMS和WS-I基本安全概要建立Web服务的安全性。
  ●使用SAML、Liberty Alliance、XACML和SPML设计身份管理和服务供应。
  ●使用智能卡和生物特征技术设计安全的身份识别解决方案。
  ●安全设计方法、模式、最佳实践、可行性检查、防范策略和评估核对表。
  ●端到端安全架构案例研究:为大型应用设计端到端安全解决方案架构并完成设计和实现工作。

  本书是一本安全从业者实用指南,介绍在J2EE企业应用、Web服务、身份管理、服务供应和身份识别解决方案中,如何建立健壮的端到端安全性。本书由三位杰出的Java安全架构师编写,其中的模式驱动方法全面反映了确保大型应用安全的最佳实践。
  本书全面阐述Java应用安全的基本知识并介绍一种强大的结构化安全设计方法;介绍独立于厂商的安全架构;列出详细的评估核对表以及23种经过实践检验的安全架构模式。书中介绍多种实际场景,阐述架构和实现,并提供详细的示例代码。本书还讨论如何使用加密技术、混淆代码、建立安全通信、确保J2ME应用的安全、对用户进行认证和授权以及保护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章的严格审阅和建议。

图书序言

Judy Lin序

1869年5月10日, 太平洋联合铁路和太平洋中央铁路接轨, 形成一条横跨美国大陆的铁路系统。这离第一条公用铁路(连接利物浦和曼彻斯特的35英里铁轨)通车不到40年。此时, 从纽约到旧金山只需几天就可以到达, 而不像从前需要几个月。
  当时的铁路就像现在的Internet。快捷、 价廉、 可靠的运输让所有人受益, 但跨越高山、 穿越河流建造数千英里的铁路面临重大挑战。横贯美国的铁路必将出现, 对此几乎无人持怀疑态度, 但尝试去实现这种目标需要脚踏实地和奋斗勇气。人们常将Internet同铁路相比, 因为它们都在相应的时代给经济和社会带来了重大转变。可能正是由于这种原因, 它们都经历了怀疑、 狂热、 投机热潮和失望的过程。倘若1845年铁路建设的狂潮成为铁路建设的终点, 那么1869年横贯美国的铁路将不会出现。
  在Internet时代, 业务应用的Internet基础设施相当于横贯美国的铁路。每天都有数百万工作人员坐在电脑前生成订单和发票, 这些订单和发票被发送给更多的工作人员, 而后者的大部分工作时间都用在将这些信息输入到更多的计算机中。
  10年前, 几乎所有业务都以这种方式开展。而现在, 很大一部分业务都是通过Web完成的, 消费者已习惯在网上订购图书、 服装和旅行服务, 并期望客户服务能够得到改善。
  在.com时代, 电子商务是一个时髦的话题, 似乎Internet将带来一种全新的商务形式, 并将迅速取代传统形式。虽然很多基于这种错误假设而组建的公司纷纷破产, 但电子商务却空前繁荣。在.com繁荣顶峰的2000年, VeriSign签发了27.5万份SSL证书, 处理了3500万项交易支付, 总价值13亿美元; 而在2003年, VeriSign签发了39万份证书, 处理了3.45亿项交易支付, 总价值为250亿美元。
  现在人们知道, 将企业归类到“电子商务”就像将其归类到“电话商务”或“传真商务”一样毫无意义。在每个经济部门, 企业无论规模大小都在使用Internet和Web, 水管工人和木匠通过网站做广告已司空见惯。
  显然, 新出现的Internet业务基础设施将连接起来, 自动化电子流程将取代当前的传真方式; 当这种连接最终完成时, 它将像铁路一样给商务带来根本性转变。然而, 要使这些成为现实, 必须解决两个重要问题。
  第一个问题是复杂性。虽然要成功进行网上零售需要克服很多实际困难, 但传统的邮购业务流程已经有100多年的历史。要通过网站而不是信件或电话下订单, 必须修改人们已经非常熟悉的业务流程。与开发支持网上零售的系统相比, 编写支持B2B交易的系统要复杂得多; B2B交易千变万化, 企业为支持它们而制定的内部流程也是如此。
  铁路工程师通过标准化解决了类似的问题。按专用设计建造的火车头必须由专家来维修, 如果零件坏了, 为制造替换零件, 需要使用几千英里外的原厂设备。理论上来说, 可互换零件意味着火车头出现故障时, 可以使用库存标准零件来修理。
  软件重用策略适用于构建任何应用系统, 编写B2B应用系统时它也不可或缺。如果使用专用技术来构建系统, 除需要的时间更长、 成本更高外, 将更难以管理、 维护和扩展。
  软件模式提供了构建系统的现成模板; 而行业标准确保软件能够跨实现平台进行交互。对于需要同合作伙伴通信的业务系统来说, 互操作性是不可或缺的。
  需要解决的第二个问题是安全。除非对风险有全面的认识, 否则企业绝不会为进行网上交易而拿声誉和财产去冒险。
  对于电子系统而言, 安全性仅仅局限于现有水平是不够的。与被取代的纸质流程相比, 电子系统对安全的要求无疑要高得多。
  今天, 铁路是最安全的旅行方式之一, 但并非一开始就如此。与当今的Internet安全一样, 铁路安全也曾被人视为难以解决的问题。在维多利亚时代, 火车出轨的频率令人恐怖,铁路桥可能坍塌、 货物可能着火, 几乎任何方面都可能出问题。最终, 工程师认识到,导致这些事故的罪魁祸首是设计缺陷, 而并非运气不好。安全成为铁路工程考虑的核心因素, 而不是事故后的亡羊补牢。
  通过采用标准化, 可替换零件在提高铁路安全方面发挥了重要作用。无论是设计桥梁的支撑架还是机车的刹车, 使用标准工程设计模式手册都可以提高速度并降低出错概率。
  在安全领域, 一种被人们长期接受的观点是: 与几乎未经外部人员审核的规范相比, 经广泛审核的公开规范出现问题的概率更低。在现代软件工程中, SSL和SAML等标准安全协议相当于以前的标准工程零件手册。
  本书应运而生, 它解决了部署Internet业务基础设施面临的挑战。安全模式描述了一种在应用中提供安全的方式, 它是可重用和可靠的模式。通过采用标准化软件模式原则, 可以构建有助于驱动Internet业务的引擎。
  具体地说, 本书证明了一个重要的事实: 应采用主动的安全方法, 而不能像软件业通常的那样依赖于被动安全方法。大多数安全问题方法都属于“后发制人”的方法, 即受到攻击后才做出反应。采用被动安全方法失去了主动权, 将优势拱手让给了攻击者。要将问题消灭在萌芽状态, 必须采用主动的安全方法。
  当前, 垃圾邮件以及与垃圾邮件相关的欺骗(垃圾邮件诈骗)泛滥成灾, 这折射出了被动安全方法的后果。当系统规模增大, 攻击者有利可图时, 任何系统都必须在部署基础设施时就采取应对攻击的措施。
  虽然电子邮件和Web应用非常多, 但电子邮件只不过是一种消息收发协议, 而Web只不过是一种发布协议。创建Internet业务基础设施面临的挑战要复杂和困难得多。显然, 任何软件开发人员都必须获得最佳的安全专业知识, 但在这些知识为稀缺资源的情况下, 如何获取这些知识呢?
  通过在应用中重用熟悉的安全组件, 应用设计人员可以利用重要的行业专家拥有的经验和知识, 从而控制风险。另外, 还可以使用系统性框架, 以提高可预测性并降低开发成本。
  计算机网络架构已跨越周边安全模型的边界, 这并不意味着防火墙将消失以及周边安全无关紧要。从安全的角度看, 这意味着跨越防火墙在企业之间开展的工作与在安全周边内开展的工作同样重要, 因此必须理解端到端安全模型及其用途。
  在铁路时代, 企业已意识到有些安全任务(如押运钞票)最好交给专家去做。这也适用于计算机安全领域, 下面的做法既没有必要也不会收到令人满意的效果:每家公司都连接到支付基础设施、 运行PKI或其他身份基础设施、 管理自己的安全基础设施以及执行与安全相关的任务。通过使用标准Web服务基础设施, 可以将这些安全任务交给专家去完成。
  采用业务应用基础设施的优点已得到广泛认可。本书将为读者提供构建安全基础设施所需的工具, 我对此深信不疑!
  Judy Lin
  VeriSign执行副总裁




Joe Uniejewski序


  在过去的20年中, 无论是在网络级还是应用级, 计算架构和技术都发生了巨大变化。很多工作都是在网络基础设施层完成的: 入侵检测、 反病毒、 防火墙、 VPN、 服务质量、 策略管理和实施、 拒绝访问攻击的检测和防范以及端点安全。这些是必不可少的但还不够, 必须在设计应用安全和部署应用安全基础设施方面做更大的努力。网络安全侧重于检测、 防范和保护, 而应用安全侧重于支持(enablement)以及遵守法规(如SarbanesOxley、 HIPPA、 GLB等法案)。
  无论是对于技术还是对于业务, 都必须确保应用安全。安全程度高的公司将拥有竞争优势, 能够降低成本并打入新市场, 以及改善用户体验; 无论是B2B应用(如供应链应用)还是B2C应用(如金融服务、 电子零售)皆如此。随着网络连接到全球的各个角落以及带宽不断增加, 开展业务的方式发生了重大转变, 访问信息和资源的方式前所未有, 安全已成为用户、 企业、 政府以及应用提供者和开发人员面临的重要问题。
  基于J2EE和Web服务的松散耦合分布式应用已成为开发基于标准的多厂商应用的首选模型, 而主要的应用开发和部署平台提供的安全水平越来越高。安全不再是出现问题或攻击后添加的一层或多层, 而必须纳入设计的考虑之中, 它是应用开发过程中不可分割的一部分。安全是事先需要考虑的因素, 而不是事后的亡羊补牢。
  本书全面介绍了开发应用安全策略和实现时需要考虑的各种要素和因素。作为网络计算、 分布式应用和Java系统的先锋和领先者, Sun Microsystems在这个领域处于独一无二的地位。作为已有应用的开发者或推动下一代分布式应用的革新者, 本书介绍的信息和最佳实践将是你完成开发工作的重要资产。确保企业和最终用户自信、 安全地体验Internet的重任将由你们承担。
  Joe Uniejewski
  RSA Security公司CTO兼负责企业开发的高级副总裁

作者简介

Christopher Steel, Ramesh Nagappan, Ray Lai:Christopher Steel: Christopher Steel(CISSP、 ISSAP)现任FortMoon咨询公司的总裁兼CEO, 目前是美国财政部Pay.gov项目的首席架构师。他拥有15年的分布式企业计算经验, 主要研究应用安全、 模式和方法。他的客户包括美国海军、Raytheon、 Fleet、 CVS Pharmacy、 Nextel、 Verizon、 AOL、 KPMG、 MCI和GTE。他经常在本地和行业会议上发表有关安全的演讲。
Ramesh Nagappan: Ramesh Nagappan是Sun Microsystems的一名Java技术架构师。他拥有丰富的行业经验, 擅长Java分布式计算和关键任务应用安全架构。编写本书之前, 他参与合著了三本有关J2EE、 EAI和Web服务的畅销书。他是开放源代码应用和行业标准动议的积极撰稿人, 经常在有关Java、 XML和安全的行业会议上发表演讲。目前, 他研究的重点是Web服务安全、 身份管理以及使用智能卡和生物特征的安全身份识别技术。
Ray Lai: Ray Lai是Sun Microsystems的一名高级工程师, 目前在Sun的重点技术办公室(Chief Technology Office)工作。他在很多跨国公司的企业应用项目中担任过架构师和开发人员, 包括汇丰银行、 Visa、 美国运通、 UBS、 大和证券、 DHL和国泰航空公司。他还编写了《J2EE Platform Web Services》, 并经常在国际会议上发表演讲。他目前重点研究的技术包括应用安全、 策略和服务供应。

译者简介

陈秋萍 罗邓 袁国忠:暂无简介

译者序

在信息行业, 安全从来没有像今天这样重要。为确保组织的信息安全, 组织必须深刻理解与安全相关的业务挑战、 潜在威胁以及能够降低风险的最佳实践; 更重要的是, 组织必须采取可靠的主动安全方法, 并在信息处理、 传输和存储各个层面实施它们。安全不再是出现问题或遭受攻击后的亡羊补牢, 而必须未雨绸缪。安全已日渐成为应用开发过程中不可分割的一部分。
  本书旨在为安全从业者提供实用指南。它包含大量使用模式驱动和最佳实践构建可靠的IT应用和服务的经验之谈。本书介绍一种安全设计方法, 该方法使用一组经过实践检验的可重用模式、 最佳实践、 可行性检查、 防范策略和评估核对表, 以确保J2EE应用、 Web服务、 身份管理、 服务供应和身份识别的安全。本书首先讨论用于J2EE应用、 Web服务、 身份管理、 服务供应和身份识别的安全架构、 机制、 标准、 技术和实现原则; 然后介绍23种全新的安全模式和101项最佳实践。
  本书第1~7章由罗邓组织翻译, 参加翻译的人员包括乔红宇、 由宗铭、 付静波、 王晖、郭亮、 林爱生等; 第8~15章由陈秋萍组织翻译, 参加翻译的人员包括黄挺、 王进征、邓郑祥、 李佩乾、 宫晋博、 刘丽风、 侯学民、 蒋蓉芳等; 最后, 由袁国忠、 张海燕负责全书的统稿和译审工作。
  衷心感谢机械工业出版社华章分社编辑所做的大量工作。没有他们的辛勤劳动, 本书不可能如此顺利、 快捷地出版。
  由于翻译量大、 译者水平有限, 译文中欠妥和纰漏之处在所难免, 恳请读者不吝赐教和指正。
  译 者
  2006年6月

图书目录

第一部分 引  言
第1章 默认安全
 1.1 围绕安全的业务挑战
 1.2 哪些环节是最薄弱的
  1.2.1 网络服务
  1.2.2 主机操作系统
  1.2.3 应用或服务
 1.3 应用安全的影响
 1.4 安全四问
  1.4.1 要保护哪些应用
  1.4.2 保护应用时应防范哪些人
  1.4.3 应该在哪里保护这些应用
  1.4.4 为什么要保护它们
 1.5 构建健壮安全的策略
  1.5.1 安全设计统一过程
  1.5.2 设计模式
  1.5.3 最佳实践
  1.5.4 可行性检查
  1.5.5 主动评估
  1.5.6 剖析
  1.5.7 防御性策略
  1.5.8 恢复和持续性策略
 1.6 主动安全措施和被动安全措施
 1.7 遵守安全法规的重要性
  1.7.1 萨班斯-奥克斯莱法案
  1.7.2 格雷姆-里奇-比利雷法
  1.7.3 HIPPA
  1.7.4 儿童在线隐私保护法案
  1.7.5 欧盟资料数据保护指引
  1.7.6 加利福尼亚州安全攻击通知
  1.7.7 其他国家的安全法规
 1.8 身份管理的重要性
  1.8.1 身份供应服务
  1.8.2 身份数据同步服务
  1.8.3 访问管理服务
  1.8.4 联合服务
  1.8.5 目录服务
  1.8.6 审计和报告服务
 1.9 安全的身份识别
  1.9.1 身份识别和认证
  1.9.2 智能卡识别
  1.9.3 生物特征识别
  1.9.4 基于RFID的识别
 1.10 Java技术的重要性
 1.11 让安全成为“业务助推器”
  1.11.1 案例1: 说明身份和访问管理的必要性
  1.11.2 案例2: 说明主动安全措施的必要性
  1.11.3 案例3: 说明遵守安全法规的必要性
 1.12 小结
 参考文献
第2章 安全基本知识
 2.1 安全需求和目标
  2.1.1 机密性
  2.1.2 完整性
  2.1.3 认证
  2.1.4 授权
  2.1.5 不可抵赖性
 2.2 加密技术在安全中的作用
 2.3 安全套接字层的作用
 2.4 LDAP在安全中的重要性和作用
 2.5 加密算法的常见挑战
  2.5.1 随机数的生成
  2.5.2 密钥管理
  2.5.3 证书撤销问题
  2.5.4 信任模型
 2.6 威胁建模
 2.7 身份管理
  2.7.1 单点登录
  2.7.2 联合单点登录
 2.8 小结
 参考文献
第二部分 Java安全架构与技术
第3章 Java 2平台安全
 3.1 Java安全架构
  3.1.1 Java虚拟机
  3.1.2 Java语言
  3.1.3 Java内置的安全模型
 3.2 Java Applet安全
 3.3 Java Web Start安全
 3.4 Java安全管理工具
  3.4.1 Java密钥库
  3.4.2 Keytool
  3.4.3 Policytool
  3.4.4 Jarsigner
 3.5 J2ME安全架构
  3.5.1 J2ME配置
  3.5.2 J2ME概要
  3.5.3 MIDlet安全
 3.6 Java Card安全架构
  3.6.1 了解智能卡
  3.6.2 智能卡中的Java Card技术
  3.6.3 Java Card平台的安全模型
  3.6.4 Java Card Applet
 3.7 保护Java代码的安全
  3.7.1 逆向工程: 反汇编和反编译
  3.7.2 代码混淆
 3.8 小结
 参考文献
第4章 Java可扩展安全架构与API
 4.1 Java可扩展安全架构
 4.2 Java加密架构
  4.2.1 JCA加密服务
  4.2.2 理解JCP API编程模型
 4.3 Java加密扩展
  4.3.1 JCE加密服务提供者
  4.3.2 理解JCE API编程模型
  4.3.3 JCE对硬件加速和智能卡的支持
  4.3.4 将智能卡用作Java密钥库
 4.4 Java证书路径API
  4.4.1 Java CertPath类和接口
  4.4.2 Java CertPath API编程模型
 4.5 Java安全套接字扩展
  4.5.1 JSSE提供者
  4.5.2 JSSE类和接口
  4.5.3 理解JSSE API编程模型
 4.6 Java认证和授权服务
  4.6.1 JAAS类和接口
  4.6.2 理解JAAS API编程模型
 4.7 Java通用安全服务
 4.8 简单认证和安全层
 4.9 小结
 参考文献
第5章 J2EE安全架构
 5.1 J2EE架构及其逻辑层
 5.2 J2EE安全定义
 5.3 J2EE安全基础设施
 5.4 基于容器的J2EE安全
  5.4.1 声明型安全
  5.4.2 编程型安全
  5.4.3 J2EE认证
  5.4.4 保护域
  5.4.5 J2EE授权
  5.4.6 Java客户端容器授权合同
  5.4.7 传输层安全
 5.5 J2EE组件级/层级安全
  5.5.1 用户、 组、 角色和域
  5.5.2 Web层或表示层安全
 5.6 J2EE客户端安全
  5.6.1 HTTPS连接
  5.6.2 保护J2ME客户端的安全
 5.7 EJB层或业务组件安全
  5.7.1 EJB声明型授权
  5.7.2 EJB编程型授权
  5.7.3 匿名或未保护的EJB资源
  5.7.4 EJB中的主体角色委派
 5.8 EIS集成层概述
  5.8.1 保护J2EE连接器和EIS的安全
  5.8.2 保护JMS的安全
  5.8.3 保护JDBC的安全
 5.9 J2EE架构——网络拓扑
  5.9.1 具备水平可扩展性的安全设计
  5.9.2 具备垂直可扩展性的安全设计
 5.10 J2EE Web服务安全概述
 5.11 小结
 参考文献
第三部分 Web服务安全与身份管理
第6章 Web服务安全标准与技术
 6.1 Web服务架构及其构件
  6.1.1 Web服务的操作模型
  6.1.2 核心Web服务标准
  6.1.3 Web服务的通信方式
 6.2 Web服务安全的核心问题
 6.3 Web服务安全的需求
  6.3.1 认证
  6.3.2 授权与权限
  6.3.3 审计和跟踪
  6.3.4 数据完整性
  6.3.5 数据机密性
  6.3.6 不可抵赖性
  6.3.7 可用性和服务持续性
  6.3.8 单点登录和委派
  6.3.9 身份和策略管理
  6.3.10 安全互操作性
 6.4 Web服务安全标准
 6.5 XML签名
  6.5.1 XML签名的动机
  6.5.2 剖析XML签名
  6.5.3 算法
  6.5.4 XML签名示例
  6.5.5 创建XML签名
  6.5.6 核实和验证XML签名
 6.6 XML加密
  6.6.1 XML加密的动机
  6.6.2 剖析XML加密
  6.6.3 XML加密算法
  6.6.4 XML加密应用示例
 6.7 XML密钥管理系统
  6.7.1 XKMS的动机
  6.7.2 XKMS规范概述
  6.7.3 XML密钥信息服务
  6.7.4 XML密钥注册服务
  6.7.5 XBULK
 6.8 OASIS Web服务安全
  6.8.1 WSSecurity的动机
  6.8.2 WSSecurity的定义
  6.8.3 在WSSecurity中使用数字签名
  6.8.4 在WSSecurity中使用加密
  6.8.5 在WSSecurity中使用安全令牌
  6.8.6 WSSecurity: 剖析SOAP消息安全
 6.9 WSI基本安全概要
 6.10 基于Java的Web服务安全提供者
  6.10.1 Sun公司的JWSDP
  6.10.2 Sun Java系统访问管理器
  6.10.3 VeriSign TSIK和XKMS服务
  6.10.4 RSA BSAFE SecureWS
 6.11 支持XML的安全设备
 6.12 小结
 参考文献
第7章 身份管理标准与技术
 7.1 身份管理核心问题
 7.2 理解网络身份和联合身份
 7.3 SAML简介
  7.3.1 SAML的动机
  7.3.2 SAML在单点登录中的作用
  7.3.3 SAML 1.0
  7.3.4 SAML 1.1
  7.3.5 SAML 2.0
  7.3.6 SAML概要
 7.4 SAML架构
  7.4.1 SAML断言
  7.4.2 SAML域模型
  7.4.3 SAML架构
  7.4.4 策略实施点
  7.4.5 策略管理点
  7.4.6 SAML请求应答模型
  7.4.7 SAML认证断言
  7.4.8 SAML属性断言
  7.4.9 SAML授权决策断言
  7.4.10 SAML中的XML签名
 7.5 SAML应用场景
 7.6 SAML在基于J2EE的应用和Web服务中的作用
 7.7 Liberty Alliance简介及其目标
  7.7.1 Liberty Phase 1
  7.7.2 Liberty Phase 2
 7.8 Liberty Alliance架构
  7.8.1 关系
  7.8.2 Web重定向
  7.8.3 Web服务
  7.8.4 元数据和模式
  7.8.5 安全机制
 7.9 Liberty应用场景
  7.9.1 联合管理
  7.9.2 Liberty单点登录
  7.9.3 联合单点登录
  7.9.4 全局注销
  7.9.5 使用Sun Java系统访问管理器的SAML和Liberty的示例
 7.10 访问控制和策略管理规范简介
  7.10.1 IETF策略管理工作组
  7.10.2 分布式管理任务组
  7.10.3 Parlay Group
  7.10.4 企业隐私授权语言
  7.10.5 Web服务策略: WSPolicy和WSPL
 7.11 XACML简介
 7.12 XACML流程与架构
 7.13 XACML应用场景
  7.13.1 策略存储
  7.13.2 集中管理Web服务安全策略
  7.13.3 与SAML协作
  7.13.4 ebXML注册器
  7.13.5 使用Sun公司的XACML工具包的XACML的示例
  7.13.6 应用场景示例
  7.13.7 请求示例
  7.13.8 策略示例
  7.13.9 结合使用SAML 2.0和XACML 2.0
 7.14 小结
 参考文献
第四部分 安全设计方法、模式和可行性检查
第8章 安全设计点金术: 方法、 模式和可行性检查
 8.1 基本原理
 8.2 安全统一过程
  8.2.1 安全统一过程工件
  8.2.2 风险分析
  8.2.3 权衡分析
 8.3 安全模式
 8.4 用于J2EE、 Web服务、 身份管理和服务供应的安全模式
  8.4.1 安全模式模板
  8.4.2 安全模式目录
  8.4.3 安全模式及其关系
  8.4.4 模式驱动的安全设计
  8.4.5 安全设计过程
  8.4.6 策略设计
  8.4.7 分类
  8.4.8 应用安全评估模型
 8.5 可行性检查
 8.6 安全测试
  8.6.1 黑盒测试
  8.6.2 白盒测试
 8.7 采用安全框架
 8.8 重构安全设计
 8.9 服务的持续性和恢复
 8.10 小结
 参考文献
第五部分 设计策略与最佳实践
第9章 确保Web层安全: 设计策略与最佳实践
 9.1 Web层安全模式
  9.1.1 认证实施器
  9.1.2 授权实施器
  9.1.3 拦截验证器
  9.1.4 SecureBaseAction
  9.1.5 安全日志器
  9.1.6 安全管道
  9.1.7 安全服务代理
  9.1.8 拦截Web代理
 9.2 最佳实践与陷阱
  9.2.1 基础设施
  9.2.2 通信
  9.2.3 应用
 参考文献
第10章 确保业务层安全: 设计策略与最佳实践
 10.1 业务层的安全考虑因素
 10.2 业务层安全模式
  10.2.1 审计拦截器
  10.2.2 容器管理的安全
  10.2.3 动态服务管理
  10.2.4 混淆传输对象
  10.2.5 策略代理
  10.2.6 安全服务门面
  10.2.7 安全会话对象
 10.3 最佳实践与陷阱
  10.3.1 基础设施
  10.3.2 架构
  10.3.3 策略
  10.3.4 陷阱
 参考文献
第11章 确保Web服务安全: 设计策略与最佳实践
 11.1 Web服务安全协议栈
  11.1.1 网络层安全
  11.1.2 传输层安全
  11.1.3 消息层安全
 11.2 Web服务安全基础设施
  11.2.1 网络外围安全
  11.2.2 XML防火墙
  11.2.3 Web服务基础设施
  11.2.4 身份提供者
  11.2.5 目录服务
 11.3 Web服务安全模式
  11.3.1 消息拦截器网关
  11.3.2 消息检查器
  11.3.3 安全消息路由器
 11.4 最佳实践与陷阱
  11.4.1 最佳实践
  11.4.2 陷阱
 参考文献
第12章 确保身份安全: 设计策略与最佳实践
 12.1 身份管理安全模式
  12.1.1 断言构造器模式
  12.1.2 单点登录代理
  12.1.3 凭证令牌化器模式
 12.2 最佳实践与陷阱
  12.2.1 最佳实践
  12.2.2 陷阱
 参考文献
第13章 安全服务供应: 设计策略与最佳实践
 13.1 业务挑战
  13.1.1 服务供应的范围
  13.1.2 服务供应与身份管理的关系
  13.1.3 典型的用户账号供应场景
  13.1.4 当前用户账号供应方法
 13.2 用户账号供应架构
  13.2.1 集中模型和分散模型
  13.2.2 逻辑架构
  13.2.3 门户集成
  13.2.4 与身份提供者基础设施集成
  13.2.5 其他集成能力
  13.2.6 服务供应产品的评价标准
 13.3 SPML简介
  13.3.1 服务供应操作
  13.3.2 SPML的特点
  13.3.3 采用SAML实现
 13.4 服务供应安全模式
 13.5 最佳实践与陷阱
  13.5.1 应用设计
  13.5.2 服务质量
  13.5.3 服务器规模
  13.5.4 降低安全风险
 13.6 小结
 参考文献
第六部分 综 合 应 用
第14章 构建端到端安全架构: 案例研究
 14.1 概述
  14.1.1 理解安全挑战
  14.1.2 假设
 14.2 用例场景
  14.2.1 选择正确的方法
  14.2.2 确定需求
  14.2.3 确定安全需求
  14.2.4 系统约束
  14.2.5 安全用例
  14.2.6 用例图
 14.3 应用架构
 14.4 安全架构
  14.4.1 风险分析与降低
  14.4.2 权衡分析
  14.4.3 使用安全模式
  14.4.4 安全架构: 详细组件
 14.5 设计
  14.5.1 策略设计
  14.5.2 要素分析
  14.5.3 安全基础设施
  14.5.4 层分析
  14.5.5 信任模型
  14.5.6 威胁剖析
  14.5.7 安全设计
 14.6 开发
 14.7 测试
  14.7.1 白盒测试
  14.7.2 黑盒测试
 14.8 部署
  14.8.1 配置
  14.8.2 监控
  14.8.3 审计
 14.9 小结
 14.10 经验教训
 14.11 陷阱
 14.12 结论
 参考文献
第七部分 使用智能卡和生物特征的身份识别
第15章 使用智能卡和生物特征的安全身份识别策略
 15.1 物理和逻辑访问控制
  15.1.1 智能卡在访问控制中的作用
  15.1.2 生物特征技术在访问控制中的作用
 15.2 支持技术
  15.2.1 Java Card API
  15.2.2 Global Platform
  15.2.3 PC/SC框架
  15.2.4 OpenCard框架
  15.2.5 OpenSC
  15.2.6 BioAPI
  15.2.7 可插入的认证模块
  15.2.8 图形识别和认证
  15.2.9 Java认证和授权服务
 15.3 基于智能卡的身份识别和认证
  15.3.1 架构和实现模型
  15.3.2 操作模型
  15.3.3 将智能卡用于物理访问控制
 15.4 生物特征身份识别和认证
  15.4.1 理解生物特征验证过程
  15.4.2 生物特征验证的准确性
  15.4.3 架构和实现
  15.4.4 操作模型
  15.4.5 生物特征SSO策略
 15.5 使用智能卡和生物特征的多重认证
  15.5.1 生物特征卡内匹配策略
  15.5.2 生物特征离卡匹配策略
 15.6 最佳实践与陷阱
  15.6.1 使用智能卡
  15.6.2 使用生物特征技术
  15.6.3 陷阱
 参考文献

教学资源推荐
作者: [美]威廉·斯托林斯(William Stallings) [澳]劳里·布朗(Lawrie Brown) 著
作者: [美] 威廉·斯托林斯(William Stallings)[澳] 劳里·布朗(Lawrie Brown) 著
作者: 徐鹏 林璟锵 金海 王蔚 王琼霄 著
作者: 周学广 刘艺
参考读物推荐
作者: 诸葛建伟 陈力波 田繁 等著
作者: 吴世忠 江常青 孙成昊 李华 李静 编著
作者: (加)Budi Kurniawan 著
作者: Michael Howard, David LeBlanc