书籍详情
Java安全解决方案
作者:Rich Helton,Johennie Helton著;袁泉,吴静等译;袁泉译
出版社:清华大学出版社
出版时间:2003-04-01
ISBN:9787302064374
定价:¥69.00
购买这本书可以去
内容简介
通过阅读本书,用户能够:●有效地应用Java安全特性●应用JDK1.4的加密组件●使用安全算法和密码●维护企业中的安全通信●为企业应用添加安全特性●确保消息验证和数据完整性●理解网络安全体系结构●处理身份验证、授权、机密性、不可否认和完整性本书全面介绍了Java安全及相关技术,展示了充分利用Java的安全解决方案(如加密、算法和体系结构等)的方法。本书首先介绍了有关安全的基础知识,然后解释了当前的Java安全工具、与安全有关的概念、协议及各种规范等,并通过实际的安全示例,深入阐述了用户使用各种技术的原因和时机,及其具体实现方法。本书源代码示例丰富,并提供了许多实际的安全解决方案,非常适合于Java开发人员、Java体系结构师和系统体系结构师阅读。在本书中,两位Java安全专家向用户展示了怎样充分利用Java的安全技术——加密、算法及其体系结构。本书解释了当前的Java安全工具、概念、协议以及规范,包括ECC、RSA、MAC、密码、Kerberos、JAAS、JSSE、IPSec、X.509证书、PKI以及RMI。本书不仅描述了各种技术,而且还解释了各种技术的存在原因、用户使用它们的时机以及实现的方法。本书还附带了许多实际的安全解决方案,以及大量的源代码示例,它会为用户提供在实际应用中使用Java安全组件,并对其进行扩展所需的全部知识。
作者简介
暂缺《Java安全解决方案》作者简介
目录
第I部分 安全介绍
第1章 安全基础
1.1 简介
1.2 保护信息
1.2.1 保护资源不受黑容侵犯
1.2.2 黑客的攻击方式
1.2.3 防御攻击的武器
1.3 保证安全的四个支柱
1.3.1 验证:用证书证明身份
1.3.2 授权:提供对系统资源的访问权限
1.3.3 机密性:使信息免遭未授权者访问
1.3.4 完整性:确认数据
1.4 把安全特征映射到数字世界
1.5 小结
第2章 黑客和他们的工具
2.1 简介
2.2 寻找黑客
2.2.1 截取和传输按键
2.2.2 键盘嗅探器
2.3 各种攻击类型及作用方式
2.3.1 社交工程
2.3.2 入侵系统
2.3.3 消极黑客攻击
2.3.4 积极攻击
2.4 了解网络攻击
2.4.1 网络监视术语
2.4.2 嗅探网络查找主机
2.4.3 黑客的实用程序库
2.4.4 嗅探系统计算机
2.4.5 模拟主机
2.4.6 IP欺骗攻击
2.4.7 操作系统主动攻击
2.4.8 病毒攻击
2.5 防御黑客
2.6 小结
第3章 Java安全组件
3.1 简介
3.2 安全元素分类
3.2.1 用主体和证书元素定义验证
3.2.2 用主体和权限元素定义授权
3.2.3 用密钥元素定义机密性
3.2.4 用安全散列元素定义完整性
3.3 Java安全组件分类
3.3.1 提供验证的组件
3.3.2 提供授权的组件
3.3.3 提供机密性的组件
3.3.4 提供完整性的组件
3.4 组合各种组件
3.5 小结
第II部分 身份和验证
第4章 密钥管理算法
4.1 简介
4.2 了解密钥的用途
4.3 了解数学
4.3.1 对数
4.3.2 素数和随机数
4.4 对称和非对称密钥的比较
4.5 Diffie-Hellman密钥交换
4.5.1 Diffie-Hellman密钥交换
4.5.2 实现Diffie-Hellman密钥交换
4.5.3 了解中间人的攻击
4.6 Rivest、Shamir和Adleman密钥交换
4.6.1 了解RSA密钥交换
4.6.2 实现RSA密钥交换
4.6.3 使用对称密钥
4.6.4 了解数据加密标准(DES)密钥
4.6.5 了解Triple-DES密钥
4.7 密钥交换的前景
4.8 小结
第5章 椭圆曲线加密技术
5.1 简介
5.2 了解ECC的数学原理
5.3 ECCDH密钥交换
5.3.1 了解ECC密钥交换
5.3.2 了解服务提供者接口(SPI)
5.3.3 实现ECC密钥交换为一个SPI
5.4 小结
第6章 通过Internet协议的密钥管理
6.1 简介
6.2 Internet协议中的安全协议
6.2.1 传输和隧道模式
6.2.2 安全联系
6.2.3 确定安全级别
6.2.4 密钥交换的两个阶段
6.3 简单验证和安全层
6.3.1 定义SASL
6.3.2 服务器询问和响应
6.4 小结
第7章 用Java实现密钥
7.1 简介
7.2 了解DSA:数字签名算法
7.3 用Java生成密钥对
7.3.1 实现
7.3.2 查找服务提供者
7.3.3 用密钥资料初始化密钥
7.4 用Java生成保密密钥
7.5 小结
第8章 密钥管理的Java实现
8.1 简介
8.2 KeyStore
8.3 PKCS#12 KeyStore
8.4 Truststore
8.5 TrustManager
8.5.1 Keytool
8.5.2 Jarsinger
8.6 策略文件
8.7 Policytool
8.8 小结
第III部分 数据完整性
第9章 保证数据完整性
9.1 简介
9.2 了解散列函数
9.3 了解消息摘要
9.3.1 加密和摘要
9.3.2 区分MD
9.3.3 划分算法
9.4 了解不同的消息摘要算法
9.4.1 MD算法
9.4.2 SHA-1算法
9.3 RIPEMD-160
9.5 在Java中实现不同的消息摘要算法
9.6 小结
第10章 保证消息验证
10.1 简介
10.2 了解MAC
10.3 实现MAC
10.4 小结
第11章 签名完整性
11.1 简介
11.2 了解数字签名算法(DSA)
11.3 了解RSA数字签名算法
11.4 了解椭圆曲线数字签名算法
11.5 实现数字签名算法(DSA)
11.6 小结
第IV部分 数据隐藏
第12章 了解密码
12.1 简介
12.2 了解对称密码
12.3 实现RSA公钥加密
12.4 一些安全建议
12.5 小结
第13章 用JDK扩充新密码
13.1 简介
13.2 实现CipherSpi
13.3 实现RC4流密码
13.4 小结
第14章 应用密码
14.1 简介
14.2 了解PBE
14.3 了解Blowfish
14.3.1 块密码
14.3.2 生成子密钥和置换盒
14.3.3 读取明文文件
14.4 密码的一些实现
14.4.1 专利信息和安全
14.4.2 X.509的思想
14.5 Java智能卡基础
14.5.1 钱包里的计算机
14.5.2 卡外检验器
14.6 小结
第V部分 使用Java的资源访问
第15章 保护企业资源
15.1 安全系统的通用标准
15.1.1 通用标准的由来
15.1.2 通用标准构建块
15.2 了解安全需要
15.2.1 表明安全风险
15.2.2 声明安全目标
15.3 采取措施满足安全需要
15.3.1 考虑通信和可信路径或信道
15.3.2 考虑组件访问
15.3.3 考虑加密支持
15.3.4 考虑身份识别和验证
15.3.5 考虑安全审核
15.3.6 考虑用户隐私和用户数据保护
15.4 小结
第16章 通过Kerberos的Java验证和授权
16.1 Kerberos简介
16.2 主名和密钥分配中心
16.2.1 Kerberos v4和v5之间的区别
16.2.2 加密支持中的修改
16.2.3 对TGS的修改
16.2.4 对主名表示的修改
16.2.5 对TGS票据请求处理的修改
16.2.6 在v4中请求TGS票据
16.2.7 对服务票据请求处理的修改
16.2.8 对客户/服务器验证处理的修改
16.2.9 对票据的修改
16.3 Kerberos验证器
16.4 Kerberos主体数据库
16.4.1 命令
16.4.2 配置文件
16.5 Java Kerberos
16.6 小结
第17章 用Java GSS-API保护消息安全
17.1 简介
17.1.1 GSS-API概述
17.1.2 GSS API组件模型
17.2 用起始器和接受器实现GSS
17.3 用JAAS验证
17.4 小结
第18章 Java访问:安全管理器
18.1 简介
18.2 类加载器
18.3 安全管理器
18.4 访问控制器
18.4.1 警戒对象
18.4.2 签署对象
18.5 策略
18.6 权限集
18.6.1 设置权限
18.6.2 执行权限
18.7 小结
第19章 Java验证和授权服务
19.1 JAAS的定义
19.2 使用验证
19.2.1 了解基于主体的访问控制
19.2.2 了解可插入的验证模块标准
19.3 了解JAAS授权
19.3.1 了解主题
19.3.2 了解ACL
19.4 小结
第VI部分 企业数据安全
第20章 处理数据库安全
20.1 简介
20.2 通过JDBC连接数据库
20.3 通过连接器体系结构连接数据库
20.4 保护数据库中的企业数据
20.5 小结
第VII部分 网络访问
第21章 网络安全体系结构
21.1 了解网络安全
21.2 网络概念简介
21.2.1 IP地址
21.2.2 TCP和UDP
21.2.3 路由基础
21.3 防火墙
21.3.1 电路级网关
21.3.2 应用程序级的网关
21.3.3 包过滤
21.4 非军事区(DMZ)
21.5 了解代理防火墙
21.6 HTTP隧道
21.7 Java套接字
21.8 Java SOCKS
21.9 小结
第22章 SSL和TLS
22.1 安全套接字层(SSL)
22.1.1 历史
22.1.2 数字签名
22.1.3 消息摘要
22.2 SSL层
22.2.1 握手协议
22.2.2 SSL记录
22.3 SSL会话和连接
22.3.1 SSL/TLS模式
22.3.2 SSL和验证
22.4 安全性和攻击
22.5 HTTPS:SSL之上的HTTP
22.6 WLS
22.6.1 WAP
22.6.2 改变物理介质
22.6.3 WSP
22.6.4 WTLS
22.7 小结
第23章 Java安全套接字扩展
23.1 JSSE体系结构
23.1.1 JSSE提供者
23.1.2 SSLContext
23.1.3 SSLSession
23.1.4 JSSE SSLServerSockets
23.1.5 JSSE SSL客户机套接字
23.1.6 客户机和服务器
23.1.7 HTTPSURLConnection
23.2 小结
第VIII部分 公钥管理
第24章 Java数字证书
24.1 数字证书简介
24.2 X.500概述
24.3 X.509规范
24.3.1 LDAP服务
24.3.2 自签发证书
24.3.3 版本2惟一标识符字段
24.3.4 版本3公钥扩展
24.4 证书撤销
24.4.1 CRL扩展
24.4.2 CRL项
24.5 小结
第25章 PKI管理
25.1 简介
25.2 证书链
25.3 X.500
25.3.1 识别名
25.3.2 目录信息基础
25.4 LDAP
25.5 证书组件
25.6 证书路径验证
25.7 不可否认
25.8 小结
第IX部分 企业访问
第26章 Java企业安全和Web服务安全
26.1 简介
26.2 Java安全模型
26.2.1 沙箱模型
26.2.2 J2SDK v 1.4中的安全
26.2.3 J2EE安全
26.2.4 策略文件
26.3 Java权限
26.4 企业组件模型
26.5 理解Web服务
26.5.1 处理Web服务安全
26.5.2 利用XML数字签名
26.5.3 理解XML加密
26.5.4 使用UDDI注册Web服务
26.5.5 使用WSDL定义Web服务接口
26.5.6 使用SOAP编码Web服务
26.6 小结
第27章 保护客户端组件
27.1 简介
27.2 分析Java目录服务
27.2.1 JNDI体系结构概述
27.2.2 理解使用JNDI的安全
27.3 使用验证
27.3.1 配置进行验证的Web层
27.3.2 分析Web层的验证问题
27.4 使用访问控制
27.5 处理客户端安全
27.5.1 应用程序安全
27.5.2 Applet安全
27.5.3 理解web.xml文件
27.6 使用Servlet
27.7 使用Java服务器页面
27.8 客户端代码示例
27.8.1 理解设计
27.8.2 处理用户验证
27.8.3 处理web.xml文件
27.9 小结
第28章 保护服务器端组件
28.1 简介
28.2 用CORBA保证企业安全
28.2.1 回顾CORBA
28.2.2 CORBA安全概述
28.2.3 CORBA主体
28.3 RMI
28.3.1 RMI安全概述
28.3.2 IIOP上的RMI
28.4 利用EJB的企业安全
28.4.1 理解EJB组件
28.4.2 在J2EE组件中使用验证
28.4.3 在J2EE组件中使用授权
28.4.4 配置EJB组件安全
28.5 服务器端代码示例
28.5.1 Project EJB
28.5.2 使用RMI访问Project EJB
28.5.3 使用CORBA访问Project EJB
28.6 小结
第29章 Java应用程序安全
29.1 BEA的WebLogic基础
29.1.1 WLS概述
29.1.2 理解WLS安全基础
29.2 IBM的WebSphere基础
29.2.1 WAS概述
29.2.2 理解WAS安全基础
29.3 Borland企业服务器基础
29.3.1 Borland企业服务器概述
29.3.2 理解Borland企业服务器安全基础
29.4 小结
第1章 安全基础
1.1 简介
1.2 保护信息
1.2.1 保护资源不受黑容侵犯
1.2.2 黑客的攻击方式
1.2.3 防御攻击的武器
1.3 保证安全的四个支柱
1.3.1 验证:用证书证明身份
1.3.2 授权:提供对系统资源的访问权限
1.3.3 机密性:使信息免遭未授权者访问
1.3.4 完整性:确认数据
1.4 把安全特征映射到数字世界
1.5 小结
第2章 黑客和他们的工具
2.1 简介
2.2 寻找黑客
2.2.1 截取和传输按键
2.2.2 键盘嗅探器
2.3 各种攻击类型及作用方式
2.3.1 社交工程
2.3.2 入侵系统
2.3.3 消极黑客攻击
2.3.4 积极攻击
2.4 了解网络攻击
2.4.1 网络监视术语
2.4.2 嗅探网络查找主机
2.4.3 黑客的实用程序库
2.4.4 嗅探系统计算机
2.4.5 模拟主机
2.4.6 IP欺骗攻击
2.4.7 操作系统主动攻击
2.4.8 病毒攻击
2.5 防御黑客
2.6 小结
第3章 Java安全组件
3.1 简介
3.2 安全元素分类
3.2.1 用主体和证书元素定义验证
3.2.2 用主体和权限元素定义授权
3.2.3 用密钥元素定义机密性
3.2.4 用安全散列元素定义完整性
3.3 Java安全组件分类
3.3.1 提供验证的组件
3.3.2 提供授权的组件
3.3.3 提供机密性的组件
3.3.4 提供完整性的组件
3.4 组合各种组件
3.5 小结
第II部分 身份和验证
第4章 密钥管理算法
4.1 简介
4.2 了解密钥的用途
4.3 了解数学
4.3.1 对数
4.3.2 素数和随机数
4.4 对称和非对称密钥的比较
4.5 Diffie-Hellman密钥交换
4.5.1 Diffie-Hellman密钥交换
4.5.2 实现Diffie-Hellman密钥交换
4.5.3 了解中间人的攻击
4.6 Rivest、Shamir和Adleman密钥交换
4.6.1 了解RSA密钥交换
4.6.2 实现RSA密钥交换
4.6.3 使用对称密钥
4.6.4 了解数据加密标准(DES)密钥
4.6.5 了解Triple-DES密钥
4.7 密钥交换的前景
4.8 小结
第5章 椭圆曲线加密技术
5.1 简介
5.2 了解ECC的数学原理
5.3 ECCDH密钥交换
5.3.1 了解ECC密钥交换
5.3.2 了解服务提供者接口(SPI)
5.3.3 实现ECC密钥交换为一个SPI
5.4 小结
第6章 通过Internet协议的密钥管理
6.1 简介
6.2 Internet协议中的安全协议
6.2.1 传输和隧道模式
6.2.2 安全联系
6.2.3 确定安全级别
6.2.4 密钥交换的两个阶段
6.3 简单验证和安全层
6.3.1 定义SASL
6.3.2 服务器询问和响应
6.4 小结
第7章 用Java实现密钥
7.1 简介
7.2 了解DSA:数字签名算法
7.3 用Java生成密钥对
7.3.1 实现
7.3.2 查找服务提供者
7.3.3 用密钥资料初始化密钥
7.4 用Java生成保密密钥
7.5 小结
第8章 密钥管理的Java实现
8.1 简介
8.2 KeyStore
8.3 PKCS#12 KeyStore
8.4 Truststore
8.5 TrustManager
8.5.1 Keytool
8.5.2 Jarsinger
8.6 策略文件
8.7 Policytool
8.8 小结
第III部分 数据完整性
第9章 保证数据完整性
9.1 简介
9.2 了解散列函数
9.3 了解消息摘要
9.3.1 加密和摘要
9.3.2 区分MD
9.3.3 划分算法
9.4 了解不同的消息摘要算法
9.4.1 MD算法
9.4.2 SHA-1算法
9.3 RIPEMD-160
9.5 在Java中实现不同的消息摘要算法
9.6 小结
第10章 保证消息验证
10.1 简介
10.2 了解MAC
10.3 实现MAC
10.4 小结
第11章 签名完整性
11.1 简介
11.2 了解数字签名算法(DSA)
11.3 了解RSA数字签名算法
11.4 了解椭圆曲线数字签名算法
11.5 实现数字签名算法(DSA)
11.6 小结
第IV部分 数据隐藏
第12章 了解密码
12.1 简介
12.2 了解对称密码
12.3 实现RSA公钥加密
12.4 一些安全建议
12.5 小结
第13章 用JDK扩充新密码
13.1 简介
13.2 实现CipherSpi
13.3 实现RC4流密码
13.4 小结
第14章 应用密码
14.1 简介
14.2 了解PBE
14.3 了解Blowfish
14.3.1 块密码
14.3.2 生成子密钥和置换盒
14.3.3 读取明文文件
14.4 密码的一些实现
14.4.1 专利信息和安全
14.4.2 X.509的思想
14.5 Java智能卡基础
14.5.1 钱包里的计算机
14.5.2 卡外检验器
14.6 小结
第V部分 使用Java的资源访问
第15章 保护企业资源
15.1 安全系统的通用标准
15.1.1 通用标准的由来
15.1.2 通用标准构建块
15.2 了解安全需要
15.2.1 表明安全风险
15.2.2 声明安全目标
15.3 采取措施满足安全需要
15.3.1 考虑通信和可信路径或信道
15.3.2 考虑组件访问
15.3.3 考虑加密支持
15.3.4 考虑身份识别和验证
15.3.5 考虑安全审核
15.3.6 考虑用户隐私和用户数据保护
15.4 小结
第16章 通过Kerberos的Java验证和授权
16.1 Kerberos简介
16.2 主名和密钥分配中心
16.2.1 Kerberos v4和v5之间的区别
16.2.2 加密支持中的修改
16.2.3 对TGS的修改
16.2.4 对主名表示的修改
16.2.5 对TGS票据请求处理的修改
16.2.6 在v4中请求TGS票据
16.2.7 对服务票据请求处理的修改
16.2.8 对客户/服务器验证处理的修改
16.2.9 对票据的修改
16.3 Kerberos验证器
16.4 Kerberos主体数据库
16.4.1 命令
16.4.2 配置文件
16.5 Java Kerberos
16.6 小结
第17章 用Java GSS-API保护消息安全
17.1 简介
17.1.1 GSS-API概述
17.1.2 GSS API组件模型
17.2 用起始器和接受器实现GSS
17.3 用JAAS验证
17.4 小结
第18章 Java访问:安全管理器
18.1 简介
18.2 类加载器
18.3 安全管理器
18.4 访问控制器
18.4.1 警戒对象
18.4.2 签署对象
18.5 策略
18.6 权限集
18.6.1 设置权限
18.6.2 执行权限
18.7 小结
第19章 Java验证和授权服务
19.1 JAAS的定义
19.2 使用验证
19.2.1 了解基于主体的访问控制
19.2.2 了解可插入的验证模块标准
19.3 了解JAAS授权
19.3.1 了解主题
19.3.2 了解ACL
19.4 小结
第VI部分 企业数据安全
第20章 处理数据库安全
20.1 简介
20.2 通过JDBC连接数据库
20.3 通过连接器体系结构连接数据库
20.4 保护数据库中的企业数据
20.5 小结
第VII部分 网络访问
第21章 网络安全体系结构
21.1 了解网络安全
21.2 网络概念简介
21.2.1 IP地址
21.2.2 TCP和UDP
21.2.3 路由基础
21.3 防火墙
21.3.1 电路级网关
21.3.2 应用程序级的网关
21.3.3 包过滤
21.4 非军事区(DMZ)
21.5 了解代理防火墙
21.6 HTTP隧道
21.7 Java套接字
21.8 Java SOCKS
21.9 小结
第22章 SSL和TLS
22.1 安全套接字层(SSL)
22.1.1 历史
22.1.2 数字签名
22.1.3 消息摘要
22.2 SSL层
22.2.1 握手协议
22.2.2 SSL记录
22.3 SSL会话和连接
22.3.1 SSL/TLS模式
22.3.2 SSL和验证
22.4 安全性和攻击
22.5 HTTPS:SSL之上的HTTP
22.6 WLS
22.6.1 WAP
22.6.2 改变物理介质
22.6.3 WSP
22.6.4 WTLS
22.7 小结
第23章 Java安全套接字扩展
23.1 JSSE体系结构
23.1.1 JSSE提供者
23.1.2 SSLContext
23.1.3 SSLSession
23.1.4 JSSE SSLServerSockets
23.1.5 JSSE SSL客户机套接字
23.1.6 客户机和服务器
23.1.7 HTTPSURLConnection
23.2 小结
第VIII部分 公钥管理
第24章 Java数字证书
24.1 数字证书简介
24.2 X.500概述
24.3 X.509规范
24.3.1 LDAP服务
24.3.2 自签发证书
24.3.3 版本2惟一标识符字段
24.3.4 版本3公钥扩展
24.4 证书撤销
24.4.1 CRL扩展
24.4.2 CRL项
24.5 小结
第25章 PKI管理
25.1 简介
25.2 证书链
25.3 X.500
25.3.1 识别名
25.3.2 目录信息基础
25.4 LDAP
25.5 证书组件
25.6 证书路径验证
25.7 不可否认
25.8 小结
第IX部分 企业访问
第26章 Java企业安全和Web服务安全
26.1 简介
26.2 Java安全模型
26.2.1 沙箱模型
26.2.2 J2SDK v 1.4中的安全
26.2.3 J2EE安全
26.2.4 策略文件
26.3 Java权限
26.4 企业组件模型
26.5 理解Web服务
26.5.1 处理Web服务安全
26.5.2 利用XML数字签名
26.5.3 理解XML加密
26.5.4 使用UDDI注册Web服务
26.5.5 使用WSDL定义Web服务接口
26.5.6 使用SOAP编码Web服务
26.6 小结
第27章 保护客户端组件
27.1 简介
27.2 分析Java目录服务
27.2.1 JNDI体系结构概述
27.2.2 理解使用JNDI的安全
27.3 使用验证
27.3.1 配置进行验证的Web层
27.3.2 分析Web层的验证问题
27.4 使用访问控制
27.5 处理客户端安全
27.5.1 应用程序安全
27.5.2 Applet安全
27.5.3 理解web.xml文件
27.6 使用Servlet
27.7 使用Java服务器页面
27.8 客户端代码示例
27.8.1 理解设计
27.8.2 处理用户验证
27.8.3 处理web.xml文件
27.9 小结
第28章 保护服务器端组件
28.1 简介
28.2 用CORBA保证企业安全
28.2.1 回顾CORBA
28.2.2 CORBA安全概述
28.2.3 CORBA主体
28.3 RMI
28.3.1 RMI安全概述
28.3.2 IIOP上的RMI
28.4 利用EJB的企业安全
28.4.1 理解EJB组件
28.4.2 在J2EE组件中使用验证
28.4.3 在J2EE组件中使用授权
28.4.4 配置EJB组件安全
28.5 服务器端代码示例
28.5.1 Project EJB
28.5.2 使用RMI访问Project EJB
28.5.3 使用CORBA访问Project EJB
28.6 小结
第29章 Java应用程序安全
29.1 BEA的WebLogic基础
29.1.1 WLS概述
29.1.2 理解WLS安全基础
29.2 IBM的WebSphere基础
29.2.1 WAS概述
29.2.2 理解WAS安全基础
29.3 Borland企业服务器基础
29.3.1 Borland企业服务器概述
29.3.2 理解Borland企业服务器安全基础
29.4 小结
猜您喜欢