项目说明报告
基于 JAVA 的两个通用安全模块的设计与实现
本文详细介绍了基于口令的身份认证与文件安全传输两个通用安全模块的
设计原理和实现过程,分析了当前口令保存的安全性,提出了运用 MD5 算法等对
口令进行处理,并将处理结果保存在数据库中的方法。同时为了进一步增强认证
系统的灵活度,设计了用户注册时的口令模式选择、自主修改用户口令、自主选
择口令字符串长度等策略。在本文设计的认证过程中,用户输入认证口令信息,
作必要的处理之后,会与数据库里的用户真实信息进行对比来验证用户的合法性,
合法用户登录成功后可以访问文件安全传输模块;而文件安全传输模块的设计,
是应用 SSL 协议建立文件安全传输通道,可以保障机密文件内容不被窃听、篡改、
伪造。整个系统采用 JAVA 语言对 SSL 协议、DES、MD5 的支持设计实现的,具有
设计简练、认证灵活、安全性能可靠、成本低廉等优点,能很好地解决各类企事
业单位的用户身份鉴别和传输文件的机密性问题。
身份认证;消息摘要;DES;SSL;加密;解密
The Design and implementation of Two General Security
Models Based on Java
Abstract
The paper initiates the principle and implementation of two general security
modules of password-based authentication and secure file transfer. It analyses the
security of the current password, then proposes an approach that utilizes MD5
algorithm to encrypt password, finally stores the results in databases. To make the
authentication system more flexibility, we introduce some policies: when users
register, they can choose password model, they can modify password freely, they can
choose the length of password independently etc. In the authentication process
designed in this paper, the user inputs password which is processed to compare with
the information stored in DB to authenticate user. If logon successful they will be able
to access the secure file transfer module. And the design of secure file transfer module
is the use of the SSL Protocol to establish security file transfer channels which can
protect the confidential contents of the files against eavesdrop, alter and forge. The
system is implemented in Java that supports SSL protocol, DES, MD5, which has the
following virtues: briefness in design, authentication agility, secure and cheap in cost,
and can help all kinds of companies to solve the problems of identity authentication
and confidentiality of file transfer.
Key words: authentication; Message-digest; DES; SSL; Encryption;
Decryption
目 录
论文总页数:27 页
1 引言............................................................................................................................................1
1.1 课题背景........................................................................................................................1
1.2 国内外研究现状............................................................................................................1
1.3 本课题研究的意义........................................................................................................2
1.4 本课题的研究方法........................................................................................................2
2 需求分析....................................................................................................................................3
2.1 口令安全模块部分功能需求........................................................................................3
2.2 文件安全传输部分功能需求........................................................................................3
2.3 系统实现的环境和开发工具........................................................................................4
3 系统方案设计............................................................................................................................4
3.1 功能模块流程图............................................................................................................4
3.2 口令安全模块部分方案设计........................................................................................8
3.3 文件安全传输部分方案设计........................................................................................9
3.3.1 DES 加密算法.....................................................................................................9
3.3.2 SSL 协议...........................................................................................................10
3.4 数据库的设计..............................................................................................................11
4 系统设计与实现......................................................................................................................12
4.1 总体结构图..................................................................................................................12
4.2 与数据库建立连接......................................................................................................12
4.3 口令认证及存储方式设计..........................................................................................13
4.4 数字证书创建..............................................................................................................13
4.5 关键代码说明..............................................................................................................13
5 测试..........................................................................................................................................20
结 论..........................................................................................................................................24
参考文献..........................................................................................................................................25
致 谢..........................................................................................................................................26
声 明..........................................................................................................................................27
第 1 页 共 27 页
1 引言
1.1 课题背景
众所周知,随着计算机的发展与普及,计算机担负着存储、管理信息及资源
的任务,集中存放着大量数据资源,而且又为众多用户直接共享,而有些资源涉
及到机密性,因此这些资源被用户操作前一般需要用户验证用户名及其口令,获
得合法用户的操作权限。如果这些口令被非法用户得到,将会造成企业瘫痪,给
国家带来巨大的损失,甚至危及国家安全。因此,对访问系统的用户进行身份认
证就显得至关重要,身份认证已经成为了计算机信息安全领域中非常重要的一个
分支。身份认证作为安全应用系统的第一道防线,是最重要的安全服务,所有其
它的安全服务都依赖于该服务,它的失败可能导致整个系统的失败而使身份认证
得以有效执行的前提就是相应口令的妥善保管。目前普遍采用的口令保存技术就
是将口令直接以明文方式保存。这种方法的特点是简单、易用并且也具备一定的
安全性,但随着计算机应用的复杂化、攻击手段的多样化,这种技术的安全缺陷
也越来越明显,已经不再适用于安全性要求较高的应用系统。
不但计算机给人们带来了很多便利,计算机网络技术也日益广泛地应用到各
个领域。人们通过 Internet 进行各种交流,在网上传输大量的信息,应用层次
也在不断地深入,应用领域从传统的、小型业务系统逐渐向大型、关键业务系统
扩展,典型的如党政部门信息系统、金融业务系统、企业商务系统等,都涉及到
一些敏感数据文件的传输,如军事机密、信用卡号等。 这些被传输的数据往往
涉及到企业的机密信息,在网络上传输容易面临着各种各样的安全威胁,如伪造、
欺骗、窃听、篡改、抵赖等。如何在传输过程中保障这些敏感数据文件的安全将
制约着网络技术在商业、金融、国防等领域的进一步发展,这一问题已成为当今
计算机网络技术研究的一个热点。如何解决文件传输中的安全,必须有一整套的
技术来保证信息的保密性、完整性,同时也应使信息的发送者能对信息的接收者
进行确认,并且保证信息发送给可靠的接收者。
1.2 国内外研究现状
现在很多计算机应用程序使用的认证方法都是最简单的口令形式,类似于
windows XP 操作系统登录过程中输入用户名/口令的基本认证方式。就是系统事
先保存每个用户的二元组信息(用户名,密码)。进入系统时用户先输入用户名和
口令,系统根据保存的用户信息与用户输入的信息相比较,从而判断用户身份的
合法性。很明显,这种身份认证方法操作十分简单,但同时又最不安全,因为其
安全性仅仅基于用户口令的保密性,而用户口令一般较短且容易猜测,不能抵御
字典攻击,又由于系统一般将正确的用户口令直接存放在程序、文件或数据库中,
第 2 页 共 27 页
一方面需要系统管理员是可信赖的,另一方面,一旦攻击者能够访问口令表,或
被黑客窃取到,整个系统的安全性就受到了威胁。而保护在网络中传输的数据采
用传统的密码技术(对称密码技术),这在一定程度上解决了文件传输保密性问题,
但在进行保密通信前,通信双方必须通过某种安全手段得到密钥,这在某些情况
下是非常困难甚至是不可能的。安全套接层协议 SSL (Secure Socket Layer) 是
用来保障数据安全传输的协议,在 Internet 上为通信双方提供可靠连接方式下
的防窃听、防篡改、防信息伪造的秘密通信,保障数据的安全传输。目前 SSL 已
成为业界标准,得到了广泛应用,应用比较灵活。
1.3 本课题研究的意义
目前,计算机在金融、商业、政治等部门的应用越来越广,防止非法用户通
过身份欺诈访问系统资源,变得日益重视。还有各部门在网络上传输文件时,这
些被传输的文件如果涉及到机密信息,很容易遭受各种各样的攻击,保护这些机
密信息的安全也成为信息化健康发展所要考虑的重要事情之一。本毕业设计选择
两个安全模块的设计与实现主要设计口令部分安全模块实现合法用户验证和口
令的安全保存和文件安全传输模块实现文件的安全、秘密、可靠传输到接收端。
口令部分安全模块具有合法用户验证模块可以进行用户身份注册,安全生成口令,
口令更改,口令长度选择,口令生成个数身选择,身份验证等功能。文件安全传
输模块具有基于口令的文件加密解密和文件安全传输等功能。设计中除了综合运
用以前所学知识(包括以前所学的一些关于网络、编程、信息安全等知识)的能
力,同时也了解当今安全技术及编程的一些新技术;既锻炼了实际动手能力,又
引导我进行了一次模拟实际产品的开发,对于以后工作能力的培养具有重要的意
义。
1.4 本课题的研究方法
本系统的设计重点是实现口令部分安全模块与文件安全传输模块。具体实现
口令的生成、口令的保存及文件的安全传输等主要功能,并将口令生成和文件加
密的实现方法封装,方便程序调用。本毕业设计首先结合本次毕业设计的相关要
求写出需求分析;其次,综合运用以前所学的相关知识(包括 JAVA 开发语言、
计算机网络技术、相关协议、信息安全相关的知识等)以及借鉴现有的口令身份
认证和基于 SSL 协议数据安全传输的技术原理,选择所熟悉的开发工具进行本毕
业设计的开发;在设计过程中以需求分析为基础,写出系统开发计划、实现流程
及相关问题的实现方法,并将两个安全模块实现的关键技术进行封装,提供接口,
方便他人调用;同时,在开发设计与实现中,要保存好相关的设计文挡,为后面
毕业论文的写作准备材料;最后,系统开发完毕后,进行调试和测试运行,做好
调试和测试运行的相关记录,也为后面的毕业论文的写作准备材料。