《深入Java 2平台安全 体系架构、API设计和实现 第2版》PDF下载

  • 购买积分:13 如何计算积分?
  • 作  者:(美)Li Gong等著;朱岱译
  • 出 版 社:北京:电子工业出版社
  • 出版年份:2004
  • ISBN:7121002078
  • 页数:356 页
图书介绍:本书是由Sun MicrosysTems的安全专家撰写的Java 2平台安全权威的最新版,对当前诸多科技企业所采用的Java安全技术进行了归纳和更新。本书深入解析了Java安全体系核心机制,描述了可增强安全性而不牺牲功能特性的方法和实践。全书深入讲述了安全体系的结构、部署、定制、最新进展等诸多方面。涵盖了:安全基础知识;类的安全加载;制定粒度适合的安全策略;使用AccessController、SecurityManager等来执行安全策略;数字证书、证书路径、代码签名、JAAS以及其它鉴别方法;基于Java的密码学机制,并提供了代码范例;用于网络安全的JSSE、Java GSS-API和RMI。还吸纳了其它平台的安全议题,包括Java Card、J2ME和Jini。本书提供了用Java 2平台构建和维护安全系统的关键知识,适合相关系统管理员和软件从业者阅读。

第1章计算机和网络安全基础 1

10.7.2密钥和参数算法 (23 1

12.6.3策略文件范例 (28 1

1.1 密码学与计算机安全 2

译序 3

目录 3

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

第二版序言 15

1.5.3非对称密码 15

1.6鉴别 16

本书的组织结构 16

致谢 18

1.7 移动代码 19

13.3.6安全管理 (3 19

1.8 Java安全性的适用范围 20

作者介绍 20

第一版序言 21

第一版致谢 22

第2章Java语言的基本安全特点 23

2.1Java语言和平台 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.2 Java 2安全体系结构综述 34

3.1.5完善而简单的内部安全机制 34

3.3体系结构总结 35

3.4经验教训 38

第4章类的安全装载 41

4.2常用的类装载器实例 42

4.1类文件、类型以及类装载器的定义 42

4.3.1类装载器继承层级体系 43

4.3类装载器的层级体系 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.3保护域(ProtectionDomain) 74

5.2.3身份(Principal) 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.1创建新的许可类型 113

第7章定制安全架构 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.8本地方法 167

9.7 内部类 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.8KeyPair类和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.4KeyAgreement类 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.7标准名 230

10.7.1消息摘要算法 230

10.6.7其它样例程序 230

10.7.3数字签名算法 231

10.7.4随机数生成算法 232

10.7.5证书类型 232

10.7.8加密算法、模式和填充方式 233

10.7.6密钥库类型 233

10.7.7服务属性 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.8 DSA参数生成算法 240

10.8.7 RSA密钥对生成算法 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.11TrustManagerFactory类 256

11.2.10TrustManager接口 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.1设置系统属性 267

12.3设置系统和安全属性 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.4策略文件中的属性扩展 283

12.6.5配置可选的策略类实现 285

12.7.1登录配置文件结构和内容 286

12.7 JAAS登录配置文件 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.2语言增强 316

13.3.1虚拟机增强 316

13.3 J2SE范围内的安全增强 316

13.3.3可信计算基础的增强 317

13.3.4可插入式安全提供者的发展 318

13.3.5安全表达式 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