【摘要】:J2EE(Java2 Platform Enerprise Edition,J2EE)是一种利用Java2平台来简化企业解决方案的开发、部署和管理等相关复杂问题的体系结构。J2EE规范的重要特点在于集成性和平台无关性。通过提供统一的开发平台,J2EE降低了开发多层应用的费用和复杂性,同时提供对现有应用程序集成强有力的支持。其最终的目的就是集成在服务器端开发中需要使用的所有成熟技术、产品和解决方案,提供标准的服务接口以及高的可扩展性,缩短开发周期,节约成本。 J2EE的优点使得其在企业级开发中获得了广泛的应用,同时也使得J2EE的安全问题变得重要起来,尤其在金融、电子政务等对安全要求较高的行业和部门更是如此。 本文从理论上系统和深入地研究了J2EE及其安全技术。以安全基础——密码学作为切入点,阐明了要解决数据及其传输的安全,所需要具备的要素:机密性、完整性、真实性和抗否认性,并清晰的阐明了密码学所能解决的问题。 J2EE的基础为Java2标准平台,J2EE的安全自然与Java密切相关。Java语言诞生之初就详细的考虑了安全方面的问题,因此本身对安全应用的支持程度非常高。作者详细的研究了Java2的安全体系结构,尤其是在数据加密、认证与授权等方面的安全应用。 J2EE安全是本文研究的重点和主题,所有的研究都是以此为中心来展开的。J2EE继承了Java2平台的安全机制,同时也有其自身的特点。文中对J2EE各组件的安全进行了详细的讨论,包括JSP、Servlet、EJB、JDBC、RMI等等;从组件本身到组件之间的安全通信进行了深入的研究。一个分布式系统自然要涉及到数据的传输和保存,作者研究了Java的分布式技术RMI,并对数据传输协议SSL进行了分析和探讨,并以SSL协议为基础,采用代理的思想,设计了一个安全的驱动程序以实现数据库的安全调用。此外数据库中的信息如何通过加密来实现安全保护在本文中也有具体的介绍和实现。 本文最后综合应用以上所介绍的解决方案,实现了一个安全的企业级应用软件——在线银行。该软件实现了数据的存储、传输以及完整性、认证和防否认等方面的安全功能需求。
【目录】:
第1章 引言9-13
1.1 课题的背景与意义9-11
1.2 本论文的主要研究工作11-13
第2章 密码学基础13-22
2.1 对称密钥密码学13-14
2.2 公钥密码学14-18
2.2.1 公开密钥密码的基本思想14-15
2.2.2 公开密钥密码的基本工作方式15-17
2.2.3 RSA公钥密码17-18
2.3 数字签名18-20
2.3.1 数字签名概述18-19
2.3.2 消息摘要19
2.3.3 数字签名的实现19-20
2.4 公钥证书20-21
2.5 小结21-22
第3章 Java2安全体系结构22-37
3.1 类装载器22-24
3.1.1 装载类文件22-23
3.1.2 自定义装载类23-24
3.2 字节码验证24
3.3 Java安全管理器24-26
3.4 Java安全策略模型26-28
3.5 安全策略文件28-29
3.5.1 工作机制和语法28-29
3.5.2 策略文件的应用29
3.6 Java密码架构与 Java密码扩展29-32
3.6.1 Java密码架构29-30
3.6.2 Java密码扩展30-32
3.7 JAAS32-34
3.8 Keystore34-35
3.9 keytool35-37
第4章 J2EE核心安全模块37-48
4.1 J2EE概述37-38
4.2 Servlet安全模块38-43
4.2.1 Servlet认证38-40
4.2.2 访问控制40-42
4.2.3 数据完整性42
4.2.4 保密性42-43
4.3 EJB安全模块43-47
4.3.1 定义角色43-44
4.3.2 方法的权限44-45
4.3.3 程序中实现安全性45-47
4.4 基于角色的安全策略优点与不足47-48
第5章 数据传输的安全48-67
5.1 SSL协议48-51
5.1.1 SSL握手协议分析48-51
5.2 JSSE51-52
5.3 SSL实现安全的 RMI52-58
5.3.1 RMI介绍52-53
5.3.2 RMI结构53-54
5.3.3 RMI应用部骤54-56
5.3.4 实施安全的RMI56-58
5.4 安全的JDBC驱动程序设计实现58-64
5.4.1 JDBC介绍58
5.4.2 JDBC体系结构58-59
5.4.3 JDBC构成59-60
5.4.4 安全的JDBC驱动程序设计60-64
5.5 ssl协议的弱点分析和解决方案探讨64-67
第6章 基于J2EE的安全应用软件—在线银行的设计与实现67-79
6.1 需求分析67-69
6.1.1 业务需求67
6.1.2 安全需求67-69
6.2 模块功能设计69-72
6.2.1 数据库69
6.2.2 中间件69-70
6.2.3 WEB服务器70-71
6.2.4 信用卡客户端71-72
6.3 安全实现72-76
6.3.1 组件间证书信任关系实现72-74
6.3.2 组件访问控制的实现74-75
6.3.3 组件间数据传输的安全实现75-76
6.4 系统工作流程76-78
6.5 小结78-79
第7章 总结79-81
7.1 总结79-80
7.2 需要改进与不足之处80-81
参考文献81-84
致谢84-85
攻读硕士学位期间发表的论文85