书籍详情

Java安全性编程实例

Java安全性编程实例

作者:徐迎晓编著

出版社:清华大学出版社

出版时间:2003-04-01

ISBN:9787302064206

定价:¥42.00

购买这本书可以去
内容简介
  内容简介本书以大量的实例介绍了Java安全性编程方面的概念和技术,全书共计9章。经过精心设计,每个小节的实例着重说明一个问题,又相互贯穿和联系。内容涉及Java加密和解密,反编译和反反编译,对类、成员变量、方法的攻击和保护,消息摘要,消息验证码,数字签名,口令保护,数字证书和证书链的生成、签发、检验和维护,SSL和HTTPS客户及服务器程序、基于代码位置和签发者的授权,签名Java Applet以及基于身份的验证和授权(JAAS)等。全书的实例极为精简,只保留了能够说明问题的代码,而又可真正运行,便于Java入门者轻松掌握安全性方面繁荣的概念。适合于初步了解Java语法的学习者,也适合于作安全技术的入门学习及高校Java教学的参考书。
作者简介
暂缺《Java安全性编程实例》作者简介
目录
第1章 准备上手
1.1 J2SE的安装和设置
1.1.1 下载J2SE
1.1.2 安装J2SE
1.1.3 设置J2SE
1.1.4 J2SE的主要工具
1.2 反编译器的安装
1.2.1 JAD反编译工具
1.2.2 CAVAJ反编译工具
1.2.3 小颖Java源代码反编译工具
1.3 混淆器的安装
1.3.1 Marvin Obfuscator混淆器
1.3.2 JADE混淆器
第2章 数据内容的保护——加密和解密
2.1 一个简单的加密和解密程序——凯撒密码
2.2 对称密钥的生成和保存
2.2.1 对称密钥的生成及以对象序列化方式保存
2.2.2 以字节保存对称密钥
2.3 使用对称密钥进行加密和解密
2.3.1 使用对称密钥进行加密
2.3.2 使用对称密钥进行解密
2.4 基于口令的加密和解密
2.4.1 基于口令的加密
2.4.2 基于口令的解密
2.5 针对流的加密和解密
2.5.1 针对输入流的加密和解密
2.5.2 针对输出流的加密和解密
2.6 加密方式的设定
2.6.1 使用CBC方式的加密
2.6.2 使用CBC方式的解密
2.7 生成非对称加密的公钥和私钥
2.8 使用RSA算法进行加密和解密
2.8.1 使用RSA公钥进行加密
2.8.2 使用RSA私钥进行解密
2.9 使用密钥协定创建共享密钥
2.9.1 创建DH公钥和私钥
2.9.2 创建共享密钥
2.10 小结
第3章 Java源代码和类、变量及方法的保护
3.1 Java反编译及混淆器的使用
3.2 从网络资源加载节码文件
3.3 以任意方式加载字节码文件
3.4 加载加密的字节码文件
3.5 加载当前目录下的加密字节码文件
3.6 Java类、成员变量和方法的保护
3.6.1 类的保护
3.6.2 成员变量和方法的保护
3.6.3 使用校验器
3.6.4 Reference类型私有成员变量的保护
3.6.5 保护常量
3.7 小结
第4章 数据完整性和所有者的确认——消息摘要和签名
4.1 使用消息摘要验证数据未被篡改
4.1.1 计算消息摘要
4.1.2 基于输入流的消息摘要
4.1.3 输入流中指定内容的消息摘要
4.1.4 基于输入流的消息摘要
4.2 使用消息验证码
4.3 使用数字签名确定数据的来源
4.3.1 使用私钥进行数字签名
4.3.2 使用公钥验证数字签名
4.4 使用消息摘要保存口令
4.4.1 使用消息摘要保存口令
4.4.2 使用消息摘要验证口令
4.4.3 攻击消息摘要保存的口令
4.4.4 使用加盐技术防范字典式攻击
4.4.5 验证加盐的口令
4.5 小结
第5章 数字化身份的确定——数字证书
5.1 数字证书的创建
5.1.1 使用默认的密钥库和算法创建数字证书
5.1.2 使用别名
5.1.3 使用指定的算法和密钥库和有效期
5.1.4 使用非交互模式
5.2 数字证书的显示
5.2.1 使用Keytool直接从密钥库显示条目信息
5.2.2 使用Keytool直接从密钥库显示证书详细信息
5.2.3 使用Keytool将数字证书导出到文件
5.2.4 使用Keytool从文件中显示证书
5.2.5 在Windows中从文件显示证书
5.2.6 Java程序从证书文件读取证书
5.2.7 Java程序从密钥库直接读取证书
5.2.8 Java程序显示证书指定信息(全名/公钥/签名等)
5.3 密钥库的维护
5.3.1 使用Keytool删除指定条目
5.3.2 使用Keytool修改指定条目的口令
5.3.3 Java程序列出密钥库所有条目
5.3.4 Java程序修改密钥库口令
5.3.5 Java程序修改密钥库条目的口令及添加条目
5.3.6 Java程序检验别名及删除条目
5.4 数字证书的签发
5.4.1 确定CA的权威性——安装CA的证书
5.4.2 验证CA的权威性——显示CA的证书
5.4.3 Java程序签发数字证书
5.4.4 数字证书签名后的发布
5.5 数字证书的检验
5.5.1 Java程序验证数字证书的有效期
5.5.2 使用Windows查看证书路径验证证书的签名
5.5.3 从Windows中卸载证书
5.5.4 Java程序使用CA公钥验证已签名的证书
5.6 小结
第6章 数字化身份——CertPath证书链
6.1 密钥库中创建并保存证书链的几种方法
6.1.1 使用Keytool将已签名的数字证书导入密钥库
6.1.2 使用Java程序将已签名的数字证书导入密钥库
6.2 几种获取CertPath证书链的方法
6.2.1 根据证书文件生成CertPath类型的对象
6.2.2 从密钥库读取证书链生成CertPath类型的对象
6.2.3 从HTTPS服务器获取证书链
6.3 CertPath对象的证书显示和保存
6.3.1 显示CertPath中的证书
6.3.2 保存CertPath中的证书
6.4 验证CertPath证书链
6.4.1 验证主体和签发者
6.4.2 验证签名
6.4.3 CertPathValidator类基于TrustAnchor验证证书链
6.4.4 CertPathValidator类基于密钥库验证证书链
6.5 使用CertStore对象保存和提取证书
6.5.1 创建CertStore对象
6.5.2 定义证书的选择标准
6.5.3 从CertStore中提取证书
6.6 证书的吊销
6.6.1 查看证书吊销清单常规信息
6.6.2 查看清单中被吊销的证书
6.6.3 从CertStore对象中提取已吊销的证书
6.7 小结
第7章 数据的安全传输和身份验证——SSL和HTTPS编程
7.1 最简单的SSL通信
7.1.1 最简单的SSL服务器
7.1.2 最简单的SSL客户程序
7.1.3 进一步设置信任关系
7.1.4 设置默认信任密钥库
7.1.5 通过KeyStore对象选择密钥库
7.2 扩展的SSL客户和服务器程序的例子
7.2.1 设计通信规则
7.2.2 查看对方的证书等连接信息
7.3 HTTPS客户及服务器程序
7.3.1 最简单的HTTPS服务器程序
7.3.2 最简单的HTTPS客户程序
7.3.3 基于Socket的HTTPS客户程序
7.3.4 传输实际文件
7.4 基于证书的客户身份验证
7.4.1 最简单的验证客户身份的HTTPS服务器程序
7.4.2 编写客户程序连结需客户验证的HTTPS服务器
7.5 小结
第8章 程序运行的安全性——基于代码来源的授权
8.1 安全管理器的使用
8.1.1 使用默认的安全管理器限制应用程序
8.1.2 编写自己的安全管理器
8.1.3 在程序中设置安全管理器
8.2 使用策略文件基于代码位置进行授权
8.2.1 允许所有代码具有所有权限
8.2.2 允许所有代码具有特定的权限
8.2.3 允许所有代码具有多种不同权限
8.2.4 针对指定目录中的代码的授权
8.2.5 针对从网络下载的代码的授权
8.3 使用策略文件基于代码的所有者进行授权
8.3.1 编程者对代码进行签名
8.3.2 用户检验已签名的代码
8.3.3 针对签名者进行授权
8.4 定义特权代码
8.4.1 不同代码之间的调用和授权
8.4.2 使用doPrivileged()方法定义特权代码
8.4.3 使用匿名类定义特权代码
8.5 权限的操作及定义自己的权限
8.5.1 策略文件权限的检测
8.5.2 最简单的权限定义
8.5.3 使用签名的权限
8.6 Applet的安全运行
8.6.1 使用AppletViewer运行的Java Applet
8.6.2 浏览器中使用Java Plug-in运行Java Applet
8.6.3 浏览器基于策略文件运行Java Applet
8.6.4 浏览器运行RSA签名的Java Applet
8.6.5 Java Plug-in的证书管理
8.6.6 使用usePolicy权限加强RSA签名Applet的安全控制
8.7 小结
第9章 程序运行的安全性——基于用户身份的验证和授仅(JAAS)
9.1 最简单的身份验证
9.1.1 最简单的登录
9.1.2 更换登录模块修改验证方式
9.1.3 更换回调处理器修改登录界面
9.1.4 使用非交互式验证
9.2 编写自己的登录模块
9.2.1 简单的登录模块
9.2.2 完整的登录模块模板
9.2.3 使用模板编写自己的密钥库登录模块
9.3 使用堆叠式登录
9.3.1 堆叠式登录及各个登录模块的相互关系
9.3.2 堆叠登录模块之间的信息共享
9.4 编写自己的回调处理器
9.4.1 最简单的回调处理器
9.4.2 图形界面口令输入的安全性
9.4.3 文本界面口令输入的安全性
9.4.4 更加安全的文本界面口令输入方式
9.5 基于身份的授权
9.5.1 使用策略文件的基于身份授权
9.5.2 使用编程方式的基于身份授权
9.5.3 比较doAsPrivileged()和doAs()
9.6 小结
附录A 申请数字标识(数字证书)
附录B 向CA申请证书签名
猜您喜欢

读书导航