注册 | 登录读书好,好读书,读好书!
读书网-DuShu.com
当前位置: 首页出版图书科学技术计算机/网络软件与程序设计JAVA及其相关深入Java 2平台安全:体系架构、API设计和实现

深入Java 2平台安全:体系架构、API设计和实现

深入Java 2平台安全:体系架构、API设计和实现

定 价:¥39.00

作 者: (美)Li Gong,(美)Gary Ellison,(美)Mary Dageforde著;朱岱译;朱岱译
出版社: 电子工业出版社
丛编项: 来自本源的Java系列
标 签: Java

ISBN: 9787121002076 出版时间: 2004-09-01 包装: 胶版纸
开本: 23cm 页数: 384 字数:  

内容简介

  本书是由Sum Microsystems的安全专家撰写的Java 2平台安全权威的最新版,对当前诸多科技企业所采用的Java安全技术进行了归纳和更新。本书深入解析了Java安全体系核心机制,描述了可增强安全性而不牺牲功能特性的方法和实践。全书深入讲述了安全体系的结构、部署、定制、最新进展等诸多方面。涵盖了:安全基础知识;类的安全加载;制定粒度适合的安全策略;使用AccessController、SecurityManager等来执行安全策略;数字证书、证书路径、代码签名、JAAS以及其它鉴别方法;基于Java的密码学机制,并提供了代码范例;用于网络安全的JSSE、Java GSS-API和RMI。还吸纳了其它平台的安全议题,包括Java Card、J2ME和Jini。本书提供了用Java 2平台构建和维护安全系统的关键知识,适合相关系统管理员和软件从业者阅读。《深入Java™ 2平台安全》是关于Java安全平台的权威且全面的指南。本书针对当前诸多领先科技企业所采用的Java安全技术进行了更新,以体现其关键的内容追加和版本修订。本书为第二版,由Sun Microsystems的Java安全专家撰写,提供对Java安全体系核心机制的深入解析,描述即使在最苛刻计算环境中仍然可以成功实现的工具和技术。Java总是提供比其它平台更强的安全模型,而本书则回顾了用来增强安全性而不会牺牲功能特性的方法和实践。通过采用一些定制、扩展和优化Java安全体系结构的技巧,用户将能够使用所需的一切方法来保护其信息资产免受内外攻击。本书深入讲述了安全体系结构、部署、定制、最新进展等诸多方面,包括:·安全基础知识 ·类的安全加载 ·制定粒度适合的安全策略 ·使用AccessController、SecurityManager等来执行安全策略 ·数字证书、证书路径、代码签名、JAAS,以及其它鉴别方法 ·基于Java的密码学机制,并提供了代码范例 ·用于网络安全的JSSE、Java GSS-API和RMI ·预览了其它平台的安全议题,包括Java Card、J2ME和Jini《深入Java™ 2平台安全》一书为系统管理员和软件从业者撰写,提供用Java™ 2平台构建和维护安全系统的关键知识。本书还提供了详细的代码和使用范例,为平台安全所需的各方面内容提供了不可缺少的资源。

作者简介

  GongLi(宫力)是位于北京的SunMicrosystems工程研究院院长。在此之前,他是Java安全和网络、Java嵌入式服务器和JXTA项目的负责人。他在清华大学获得了学士和硕士学位,在剑桥大学获得了博士学位。他还是IEEEInternetComputing的副总编。GaryEllison是SunMicrosystems的资深工程师,在那里他设计了安全网络计算平台。他主要负责信任、安全和隐私保护等方面的技术。从1999年到2002年,他领导架构、设计和实现了J2SE的安全和网络组件。他从俄亥俄州立大学获得了数理学学士学位。MaryDageforde是一名自由职业顾问,她为硅谷的许多计算机公司撰写软件文档。她从斯坦福大学获得了计算机科学的硕士学位,她拥有软件设计和开发的背景。从1990年开始,她就专门为各种API、语言、工具和系统撰写文档。

图书目录

译序  (iii)
第二版序言  (xv)
本书的组织结构  (xvi)
致谢  (xvii)
作者介绍  (xx)
第一版序言  (xxi)
第一版致谢  (xxii)
第1章  计算机和网络安全基础  (1)
1.1  密码学与计算机安全  (2)
1.2  威胁和防护  (3)
1.3  外围防护  (4)
1.3.1  防火墙  (6)
1.3.2  仅仅使用外围防护的不足之处  (7)
1.4  访问控制与安全模型  (8)
1.4.1  MAC 和DAC模型  (8)
1.4.2  对数据和信息的访问  (9)
1.4.3  静态和动态模型  (10)
1.4.4  关于使用安全模型的几点考虑  (11)
1.5  密码系统的使用  (12)
1.5.1  单向散列函数  (13)
1.5.2  对称密码  (14)
1.5.3  非对称密码  (15)
1.6  鉴别  (16)
1.7  移动代码  (19)
1.8  Java安全性的适用范围  (20)
第2章  Java语言的基本安全特点  (23)
2.1  Java语言和平台  (24)
2.2  早期的基本安全构架  (25)
2.3  字节码验证和类型安全  (27)
2.4  签名Applet  (29)
2.5  进一步增强  (30)
第3章  Java 2安全体系结构  (31)
3.1  Java 2平台安全体系结构的需求  (31)
3.1.1  灵活的访问控制  (32)
3.1.2  将策略表示和策略执行分离开来  (33)
3.1.3  执行灵活的可扩展的安全策略  (33)
3.1.4  灵活且可定制的安全策略  (33)
3.1.5  完善而简单的内部安全机制  (34)
3.2  Java 2安全体系结构综述  (34)
3.3  体系结构总结  (35)
3.4  经验教训  (38)
第4章  类的安全装载  (41)
4.1  类文件、类型以及类装载器的定义  (42)
4.2  常用的类装载器实例  (42)
4.3  类装载器的层级体系  (43)
4.3.1  类装载器继承层级体系  (43)
4.3.2  类装载器委托层级体系  (45)
4.4  类的加载  (47)
4.4.1  类的查找  (47)
4.4.2  类的定义  (50)
4.4.3  ClassLoader的其它方法  (51)
4.5  有关SecureClassLoader的细节  (52)
4.6  有关URLClassLoader的细节  (53)
4.7  类路径(Class Paths)  (55)
第5章  安全策略的元素  (57)
5.1  许可权限(Permissions)  (58)
5.1.1  许可权限类层级体系  (59)
5.1.2  常用的许可权限类  (60)
5.1.3  许可权限集合  (66)
5.1.4  许可权限中的隐含意义  (68)
5.1.5  正向与负向许可权限  (68)
5.2  描述代码  (69)
5.2.1  CodeSource  (69)
5.2.2  测试CodeSource的等同性以及隐含(Implication)的使用  (71)
5.2.3  身份(Principal)  (74)
5.3  保护域(ProtectionDomain)  (74)
5.3.1  ProtectionDomain构造函数  (75)
5.3.2  ProtectionDomain的implies方法  (77)
5.3.3  ProtectionDomain的优点  (78)
5.4  安全策略  (79)
5.5  分配许可权限  (83)
5.6  动态安全策略  (84)
第6章  执行安全策略  (87)
6.1  SecurityManager类  (87)
6.1.1  安全管理器使用范例  (88)
6.1.2  SecurityManager API  (88)
6.1.3  checkPermission方法  (89)
6.2  AccessControlContext  (90)
6.3  DomainCombiner  (91)
6.4  AccessController  (92)
6.4.1  AccessController的接口设计  (93)
6.4.2  基本访问控制算法  (94)
6.4.3  方法的继承  (97)
6.4.4  用特权操作扩展基本算法  (98)
6.4.5  特权行为编程习惯用语  (102)
6.4.6  继承访问控制上下文  (105)
6.4.7  特权访问控制上下文  (106)
6.4.8  完全访问控制算法  (107)
6.4.9  SecurityManager vs. AccessController  (109)
6.4.10  特权操作简史  (110)
 
第7章  定制安全架构  (113)
7.1  创建新的许可类型  (113)
7.2  定制安全策略  (118)
7.2.1  定制安全策略的执行  (118)
7.2.2  定制安全策略决定  (120)
7.3  定制访问控制上下文  (124)
第8章  建立信任  (127)
8.1  数字证书  (128)
8.1.1  X.500识别名(Distinguished Name)  (129)
8.1.2  X.509证书版本  (129)
8.1.3  X.509证书内容  (130)
8.1.4  获取证书  (131)
8.2  用认证路径建立信任  (132)
8.2.1  核心认证API  (133)
8.2.2  基本认证路径类  (135)
8.2.3  认证路径验证类  (135)
8.2.4  认证路径创建类  (136)
8.2.5  证书/CRL存储类  (137)
8.2.6  PKIX类  (137)
8.3  在签名代码中建立信任  (138)
8.3.1  用数字签名来保护消息  (138)
8.3.2  JAR文件格式概述  (139)
8.3.3  在运行时建立信任  (141)
8.4  使用JAAS进行以用户为中心的鉴别和授权  (141)
8.4.1  主题(Subjects)和身份(Principals)  (143)
8.4.2  凭证(Credentials)  (144)
8.4.3  可插拔和堆栈式鉴别  (145)
8.4.4  回调  (148)
8.4.5  授权(Authorization)  (149)
8.4.6  基于Principal的访问控制  (150)
8.4.7  访问控制的实现  (150)
8.5  分布式终端实体鉴别  (152)
8.5.1  java.net.Authenticator  (153)
8.5.2  Kerberized环境中的单点登录  (153)
8.5.3  JSSE鉴别机制  (155)
第9章  对象安全  (157)
9.1  安全异常  (158)
9.2  字段和方法  (158)
9.3  静态字段  (160)
9.4  私有对象状态和对象不变性  (161)
9.5  特权代码  (162)
9.6  串行化  (163)
9.7  内部类  (167)
9.8  本地方法  (167)
9.9  签名对象  (168)
9.10  对象密封  (171)
9.11  警觉对象(Guarding Objects)  (172)
第10章  密码学编程  (177)
10.1  密码学概念  (178)
10.2  设计原则  (179)
10.3  密码服务和服务提供者  (180)
10.4  核心密码类  (187)
10.4.1  Security类  (187)
10.4.2  Provider类  (188)
10.4.3  MessageDigest类  (188)
10.4.4  Signature类  (190)
10.4.5  算法参数  (192)
10.4.6  Key类和KeySpec类  (196)
10.4.7  KeyFactory类和CertificateFactory类  (200)
10.4.8  KeyPair类和KeyPairGenerator类  (202)
10.4.9  KeyStore类  (203)
10.4.10  随机性和种子生成器  (206)
10.5  其它密码学类  (208)
10.5.1  Cipher类  (208)
10.5.2  KeyGenerator类  (215)
10.5.3  SecretKeyFactory类  (216)
10.5.4  KeyAgreement类  (217)
10.5.5  Mac类  (219)
10.6  代码实例  (220)
10.6.1  计算消息摘要  (220)
10.6.2  生成公私钥对  (222)
10.6.3  生成并且验证签名  (222)
10.6.4  读取包含证书的文件  (225)
10.6.5  使用加密  (226)
10.6.6  使用基于密码的加密  (227)
10.6.7  其它样例程序  (230)
10.7  标准名  (230)
10.7.1  消息摘要算法  (230)
10.7.2  密钥和参数算法  (231)
10.7.3  数字签名算法  (231)
10.7.4  随机数生成算法  (232)
10.7.5  证书类型  (232)
10.7.6  密钥库类型  (233)
10.7.7  服务属性  (233)
10.7.8  加密算法、模式和填充方式  (233)
10.7.9  密钥生成算法  (236)
10.7.10  密钥算法  (236)
10.7.11  MAC算法  (236)
10.8  算法规范  (237)
10.8.1  SHA-1消息摘要算法  (238)
10.8.2  MD2消息摘要算法  (238)
10.8.3  MD5消息摘要算法  (238)
10.8.4  数字签名算法  (238)
10.8.5  基于RSA的签名算法  (238)
10.8.6  DSA密钥对生成算法  (239)
10.8.7  RSA密钥对生成算法  (240)
10.8.8  DSA参数生成算法  (240)
第11章  网络安全  (241)
11.1  Java GSS-API  (242)
11.1.1  Java GSS-API中使用Kerberos凭证  (242)
11.1.2  建立安全上下文  (247)
11.1.3  消息安全  (249)
11.2  JSSE  (249)
11.2.1  建立SSL上下文  (250)
11.2.2  SocketFactory和ServerSocketFactory类  (250)
11.2.3  SSLSocket和SSLServerSocket类  (251)
11.2.4  SSLSocketFactory和SSLServerSocketFactory类  (251)
11.2.5  SSLSession接口  (252)
11.2.6  HttpsURLConnection类  (253)
11.2.7  SunJSSE提供者  (254)
11.2.8  SSLContext类  (254)
11.2.9  生成SSLContext对象  (255)
11.2.10  TrustManager接口  (256)
11.2.11  TrustManagerFactory类  (256)
11.2.12  KeyManager接口  (258)
11.2.13  KeyManagerFactory类  (258)
11.3  远程方法调用(RMI)  (260)
11.3.1  RMI安全基础  (260)
11.3.2  RMI激活  (261)
11.3.3  安全RMI通讯  (261)
第12章  部署安全架构  (265)
12.1  安装最新的Java2平台软件  (266)
12.2  <java.home>的安装目录  (266)
12.3  设置系统和安全属性  (267)
12.3.1  设置系统属性  (267)
12.3.2  user.home系统属性的默认值  (268)
12.3.3  设置安全属性  (268)
12.4  为部署提供安全性  (269)
12.4.1  限制属性重写机制  (270)
12.4.2  配置应用相关的策略  (270)
12.5  安装提供者包  (271)
12.5.1  安装提供者类  (272)
12.5.2  配置提供者  (273)
12.6  策略配置  (274)
12.6.1  配置系统范围和用户指定的策略  (274)
12.6.2  默认策略文件格式  (276)
12.6.3  策略文件范例  (281)
12.6.4  策略文件中的属性扩展  (283)
12.6.5  配置可选的策略类实现  (285)
12.7  JAAS登录配置文件  (286)
12.7.1  登录配置文件结构和内容  (286)
12.7.2  登录配置文件位置  (288)
12.8  安全工具  (289)
12.8.1  Keystore数据库  (289)
12.8.2  keytool工具  (292)
12.8.3  jarsigner  (301)
12.9  X.500识别名(Distinguished Names)  (306)
12.10  为非专业用户管理安全策略  (307)
第13章  其它平台和未来发展方向  (309)
13.1  Java Card概述  (310)
13.1.1  虚拟机寿命  (311)
13.1.2  Java Card远程方法调用(JCRMI)  (312)
13.1.3  Java Card的Applet隔离和对象共享模型  (313)
13.1.4  Java Card安全API  (314)
13.2  Java 2 Micro Edition(J2ME)介绍  (314)
13.3  J2SE范围内的安全增强  (316)
13.3.1  虚拟机增强  (316)
13.3.2  语言增强  (316)
13.3.3  可信计算基础的增强  (317)
13.3.4  可插入式安全提供者的发展  (318)
13.3.5  安全表达式  (319)
13.3.6  安全管理  (319)
13.4  Jini网络技术简介  (320)
13.4.1  Jini技术安全体系架构简介  (320)
13.4.2  约束模型  (321)
13.4.3  建立策略信任  (322)
13.4.4  动态代理  (322)
13.5  J2EE简介  (323)
13.6  客户端容器  (324)
13.7  结论  (325)
参考书目  (327)
索引  (339)

本目录推荐