基于JAVA的两个通用安全模块的设计与实现
摘 要
本文详细介绍了基于口令的身份认证与文件安全传输两个通用安全模块的设计原理和实现过程,分析了当前口令保存的安全性,提出了运用MD5算法等对口令进行处理,并将处理结果保存在数据库中的方法。同时为了进一步增强认证系统的灵活度,设计了用户注册时的口令模式选择、自主修改用户口令、自主选择口令字符串长度等策略。在本文设计的认证过程中,用户输入认证口令信息,作必要的处理之后,会与数据库里的用户真实信息进行对比来验证用户的合法性,合法用户登录成功后可以访问文件安全传输模块;而文件安全传输模块的设计,是应用SSL协议建立文件安全传输通道,可以保障机密文件内容不被窃听、篡改、伪造。整个系统采用JAVA语言对SSL协议、DES、MD5的支持设计实现的,具有设计简练、认证灵活、安全性能可靠、成本低廉等优点,能很好地解决各类企事业单位的用户身份鉴别和传输文件的机密性问题。
关键词: 身份认证;消息摘要;DES;SSL;加密;解密
目 录
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.1 课题背景
众所周知,随着计算机的发展与普及,计算机担负着存储、管理信息及资源的任务,集中存放着大量数据资源,而且又为众多用户直接共享,而有些资源涉及到机密性,因此这些资源被用户操作前一般需要用户验证用户名及其口令,获得合法用户的操作权限。如果这些口令被非法用户得到,将会造成企业瘫痪,给国家带来巨大的损失,甚至危及国家安全。因此,对访问系统的用户进行身份认证就显得至关重要,身份认证已经成为了计算机信息安全领域中非常重要的一个分支。身份认证作为安全应用系统的第一道防线,是最重要的安全服务,所有其它的安全服务都依赖于该服务,它的失败可能导致整个系统的失败而使身份认证得以有效执行的前提就是相应口令的妥善保管。目前普遍采用的口令保存技术就是将口令直接以明文方式保存。这种方法的特点是简单、易用并且也具备一定的安全性,但随着计算机应用的复杂化、攻击手段的多样化,这种技术的安全缺陷也越来越明显,已经不再适用于安全性要求较高的应用系统。
不但计算机给人们带来了很多便利,计算机网络技术也日益广泛地应用到各个领域。人们通过Internet 进行各种交流,在网上传输大量的信息,应用层次也在不断地深入,应用领域从传统的、小型业务系统逐渐向大型、关键业务系统扩展,典型的如党政部门信息系统、金融业务系统、企业商务系统等,都涉及到一些敏感数据文件的传输,如军事机密、信用卡号等。 这些被传输的数据往往涉及到企业的机密信息,在网络上传输容易面临着各种各样的安全威胁,如伪造、欺骗、窃听、篡改、抵赖等。如何在传输过程中保障这些敏感数据文件的安全将制约着网络技术在商业、金融、国防等领域的进一步发展,这一问题已成为当今计算机网络技术研究的一个热点。如何解决文件传输中的安全,必须有一整套的技术来保证信息的保密性、完整性,同时也应使信息的发送者能对信息的接收者进行确认,并且保证信息发送给可靠的接收者。
1.2 国内外研究现状
现在很多计算机应用程序使用的认证方法都是最简单的口令形式,类似于windows XP操作系统登录过程中输入用户名/口令的基本认证方式。就是系统事先保存每个用户的二元组信息(用户名,密码)。进入系统时用户先输入用户名和口令,系统根据保存的用户信息与用户输入的信息相比较,从而判断用户身份的合法性。很明显,这种身份认证方法操作十分简单,但同时又最不安全,因为其安全性仅仅基于用户口令的保密性,而用户口令一般较短且容易猜测,不能抵御字典攻击,又由于系统一般将正确的用户口令直接存放在程序、文件或数据库中,一方面需要系统管理员是可信赖的,另一方面,一旦攻击者能够访问口令表,或被黑客窃取到,整个系统的安全性就受到了威胁。而保护在网络中传输的数据采用传统的密码技术(对称密码技术),这在一定程度上解决了文件传输保密性问题,但在进行保密通信前,通信双方必须通过某种安全手段得到密钥,这在某些情况下是非常困难甚至是不可能的。安全套接层协议SSL (Secure Socket Layer) 是用来保障数据安全传输的协议,在Internet 上为通信双方提供可靠连接方式下的防窃听、防篡改、防信息伪造的秘密通信,保障数据的安全传输。目前SSL 已成为业界标准,得到了广泛应用,应用比较灵活。