安全模块(口令安全模块与文件传输安全模块)的设计
摘 要
本文详细介绍了基于口令的身份认证与文件安全传输两个通用安全模块的设计原理和实现过程,分析了当前口令保存的安全性,提出了运用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
本论文主要描述了基于JAVA的两个通用安全模块的设计与实现,这两个通用安全模块是指口令部分安全模块的设计与文件安全传输部分安全模块的设计。详细的给出了口令保管及认证过程的设计与文件安全传输模块的设计。
口令保存及认证这部分主要是防止非法用户通过身份欺诈访问系统资源,保证合法用户的利益。本文对口令保管及认证的设计是基于文献[2]提出的理论。在该模块中主要设计并实现了两种口令模式,即默认口令模式和一次性口令模式。默认口令模式是基于单向函数。一次性口令模式是基于SKEY原理。文件安全传输模块的设计主要是防止文件在网络上传输时被窃取、篡改等。对这部分的设计主要实现了两个方面的工作,一个是在文件传输前利用登录用户的口令对文件进行加密,然后与接收端建立SSL协议的安全传输通道,由安全通道将文件传输给服务器,这样文件在网络上传输是经过二次加密的。增加了文件传输的安全性。当文件传输成功后,在接收端可以进行相应的解密。
通过努力实现了基于JAVA的两个通用安全模块的设计并通过调试测试成功。
口令安全模块部分功能需求
[资料来源:https://www.doc163.com]
1. 用户登录模块
用户安全登录模块为用户提供身份验证的入口。用户可以根据自己使用口令的类型选择相应的登录模式登录,用户的登录类型根据口令的处理方法不同分为默认类型和一次性类型。
2. 口令处理模块
为了使口令保存的安全性更高,要求用户口令在数据库中不能以明文的方式保存在口令表中。对口令的保存及处理有两种方法,一种是默认处理方法,即口令经处理后以另外一种方式存在口令表中,另一种是一次性口令的处理方法,使口令表中的口每进行一次成功的登录,口令表中的口令信息都进行相应的变化,根据口令的类型调用相应的处理方法来处理口令的。
3. 口令注册模块
口令注册模块为用户提供口令注册信息。为了增强口令注册的灵活度,方便用户使用自己的口令,用户可以根据自己的喜好选择注册口令的模式,其中口令注册有两种类型,一种为默认型,一种为一次性口令。用户在一次性口令中可以选择口令的长度、个数等,在一次性口令注册成功后,生成的一系列口令可以生成一个口令文件,为用户查看口令提供了便利。
4. 口令更改模块
口令更改模块可以为用户提供口令的更改,尤其是对使用一次性口令的用户,如果他用完了限定的口令,可以不用重新注册,而再次获得有效的一次性口令。用户可以根据口令的类型按要求输入相关的信息更改自己的口令。
文件安全传输部分功能需求
1. 客户端文件安全传输模块
客户端文件安全传输模块可以进行文件的选择及上传。用户身份验证成功后可以选择要上传的文件,经相应用户的口令加密后再经SSL协议的安全通信密道传递给服务器使文件在传输过程中进行双重保护。
2. 服务器端文件接收模块
服务器端文件接收模块可以接收客户端发过来的秘密文件。服务器与客户端建立SSL连接成功后接收客户端发送过来的秘密文件,并将之保存在服务器端选定的目录里。
3. 服务器秘密文件解密模块
服务器秘密文件解密模块可以打开秘密文件读取密文中的解密参数并生成相应的解密密钥将密文解密,解密后的明文显示在文本框里,同时将明文保存在系统自定义的目录里,方便接收端对明文进行处理。
系统实现的环境和开发工具
本系统是在Windows XP环境下,采用J2SDK1.4开发工具,使用Java语言开发的,并采用SQL Server 2000作为数据提供者。
Java语言是一种很优秀的语言,是目前软件设计中极为壮健的编程语言,只要提供了Java解释器,Java编写的软件在执行码上兼容。Java作为一种程序设计语言,它简单、面向对象、不依赖于机器的结构、具有可移植性、安全性、并且提供了并发的机制,具有很高的性能。其次, Java还提供了丰富的类库涉及加解密、消息摘要等,使程序设计者可以很方便地调用这些方法进行二次开发。另外,在JDBC诞生之后,Java在数据库应用领域获得了成功的应用,大大降低了Java语言操作数据库的复杂程度,可以将重心放在功能实现上。 [资料来源:Doc163.com]
[资料来源:https://www.doc163.com]
[资料来源:http://www.doc163.com]
目 录 15000字
1 引言 1
1.1 课题背景 1
1.2 国内外研究现状 1
1.3 本课题研究的意义 2
1.4 本课题的研究方法 2 [版权所有:http://DOC163.com]
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
[来源:http://www.doc163.com]
4.5 关键代码说明 13
5 测试 20
结 论 24
参考文献 25
致 谢 26
声 明 27
参考文献
[1] 徐迎晓.JAVA安全性编程实例[M].北京:清华大学出版社,2003。
[2] 曹天杰,张永平,苏成.计算机系统安全[M].北京:高等教育出版社,2003。
[3] 陆正武,蒋武,刘军,石正贵.JAVA项目开发实践[M].北京:中国铁道出版社,2004。
[4] 张曜,张青,郭立山.JAVA程序设计教程[M].北京:冶金工业出版社,2002。
[5] 赖溪松,韩亮,张真诚.计算机密码学及其应用[M].北京:国防工业出版社,2001。
[6] 汪晓平,俞俊,李功.精通Java网络编程[M].北京:清华大学出版社,2005。
[7] 张晓东.Java数据库高级教程[M].北京:清华大学出版社,2004。