一种基于OpenSSL的Linux安全文件传输系统及方法

文档序号:8003089阅读:225来源:国知局
一种基于OpenSSL的Linux安全文件传输系统及方法
【专利摘要】本发明公开了一种基于OpenSSL的Linux安全文件传输系统及方法,包括:客户端、服务器端、文件传输模块、文件管理模块、用户管理模块、系统管理模块。本发明提供的基于OpenSSL的Linux安全文件传输系统,在Linux基础之上,利用OpenSSL实现文件的安全传输。整个系统包含客户端和服务器端,客户端由文件输模块和文件管理模块组成,服务器端由用户管理和系统管理组成。系统采用多线程技术并结合身份验证进行连接管理,实现文件传输、文件管理、用户管理、系统管理等功能。特别是采用了客户端和服务器端的连接认证,以及调用OpenSSL进行加密传送确保了文件传输的秘密性。
【专利说明】—种基于OpenSSL的Linux安全文件传输系统及方法
【技术领域】
[0001]本发明属于网络安全【技术领域】,尤其涉及一种基于OpenSSL的Linux安全文件传输系统及方法。
【背景技术】
[0002]随着Internet的蓬勃发展,计算机网络技术正在日益广泛的应用到商业,金融,国防等各个领域;万维网系统已经从最初的提供信息浏览一类的静态服务发展成可提供动态交互的综合系统,Internet提供的互利性和开放性使信息的交换与共享成为现实,为社会带来巨大的利益。然而,Internet是一个基于TCP/IP协议的开发系统,几乎所有的数据在都是以明文的形式在网络上进行传输的,互联网建立的初衷是为了使用者提供一种快捷的通信和资源共享方式,并没有考虑数据传输的安全性,机密性和通信实体的身份鉴别等安全因素,因此在Internet的应用日益广泛的同时,安全问题也日益突出。尤其是近年来随着电子商务,在线交易的广泛开展,人们需要通过Internet传达一些诸如信用卡号等敏感数据,如何保证敏感数据的安全传输已经成为一个重要问题,这一问题也是当今网络通信技术研究的一个热点。
[0003]国际标准化组织已于1989年对OSI互联网络环境的安全性进行了深入了的研究,在此基础上提出了 OSI安全体系,定义了安全服务,安全机制,安全管理以及安全方面的其它问题。此外,通过对现实中网络方面所面临的各种安全问题的分析总结,还定义了 11种安全威胁,为了避免网络受这些威胁,在该标准中明确规定了五大安全服务的功能:身份认证服务,访问控制服务,数据保密服务,数据完整性服务和不可否认服务。概括地讲,这五大服务的主要功能如下:
[0004](I)保密性。为了防止被动攻击而对所传输的数据进行加密,一般是指采用密码学技术,将需要保密的信息转化为另一种隐藏的形式,使未授权者无法提取有用的信息。
[0005](2)完整性。数据完整性用于确认数据在存储和传输的过程中未被修改。
[0006](3)身份认证。认证就是确认实体的身份或数据的来源,即实体与它自己声明的身份是否一致,包括实体身份认证和数据来源认证。
[0007](4)访问控制。访问控制是指控制或限制通信链路对某些网络资源的访问,防止非法用户侵入或合法用户不慎操作所造成的破坏。
[0008](5)不可否认性。可用来防止两个对话实体对曾经执行过的操作提出异议,从而确认某个实体确实发送或接收过消息。
[0009]在实际的应用中,只有具备这五大安全服务才能构成一个完整的安全系统,它们互相依托,缺一不可,其中,身份认证服务,数据保密服务,数据完整性服务是保证数据安全传输和对通信实体进行认证的基础。就目前的网路应用情况看,如何保证网络上敏感数据的安全传输,防止数据在传输的过程中被窃取,篡改,伪造,以及对通信双方实体进行认证是迫切需要解决的问题。
[0010]随着Linux操作系统不断完善和发展,Linux技术正日益广泛地应用到商业、教育、金融、国防等各个领域。Linux平台的网络通信功能在数据传输、信息获取方面发挥着越来越重要的作用。另一方面,在Linux广泛应用的同时,在该平台上进行数据传输的安全问题也日益突出。目前Linux的网络传输是基于TCP/IP协议框架上进行的,而TCP/IP协议的网络是一种开放性网络,本身并不提供安全措施。在网络中文件传输的安全是确保信息安全的基本要求,在Linux系统上建立安全的文件传输机制,确保数据准确性、有效性、完整性是推动Linux系统广泛应用的重要方式。
[0011]当前大多数基于Linux文件传输系统关注文件传输的效率,而对文件传输的安全性设计考虑较少,虽然部分系统在传输前进行身份验证,但对整个传输过程并没启用安全传输通道来确保数据的传输的安全。
[0012]SSL是Secure Socket Layer (安全套接层协议)的缩写,由Netscape公司在推出第一个Web浏览器时提出,该协议提供了在Internet上进行安全传输的机制。SSL采用公开密钥技术。其目标是保证两个应用程序间通信的保密性和可靠性,可在服务器端和用户端同时实现支持。SSL协议的优势在于它是与应用层协议独立无关的,高层的应用层协议能透明地建立于SSL协议之上。SSL协议在应用层协议通信之前就已经完成加密算法、通信密钥的协商及服务器认证工作。在此之后应用层协议所传送的数据都会被加密,从而保证通信的私密性,因此SSL协议提供数据的保密性、数据的一致性以及安全验证功能。由于SSL协议体制包含了众多的密码算法、公钥基设施和相关协议,个人要想实现满足SSL的安全机制是比较困难的事情。Eric A.Young和Tim J.Hudson率先构建了 OpenSSL软件包,其包含三个主要的功能部分:密码算法库、SSL协议库以及应用程序。这使得建立符合SSL要求的通信机制变得简单,通过对OpenSSL软件包提供的接口调用,就能实现复杂的私密通信要求。同时OpenSSL采用C语言作为开发语言,这使得OpenSSL具有优秀的跨平台性能,能有效支持Linux系统的通信需求。

【发明内容】

[0013]针对上述问题,本发明实施例的目的在于提供一种基于OpenSSL的Linux安全文件传输系统。
[0014]本发明实施例是这样实现的,一种基于OpenSSL的Linux安全文件传输系统,所述基于OpenSSL的Linux安全文件传输系统包括:
[0015]客户端,用于进行文件传输和文件管理;
[0016]服务器端,用于进行用户管理和系统管理;
[0017]文件传输模块,用于对文件进行上传和下载;
[0018]文件管理模块,在登陆服务器后可以对文件进行管理,包括浏览目录、查看文件、查找文件、删除文件功能;
[0019]用户管理模块,能够对用户进行管理包括登陆验证、用户注册管理、查看和删除用户、用户权限修改;
[0020]系统管理模块,在服务器端为了更好对系统进行全局管理还加入了系统日志记录、系统设置、远程管理。
[0021]进一步,该基于OpenSSL的Linux安全文件传输系统内核结构为:
[0022]安全文件传输和管理模块,用于实现对整个文件传送过程统一调度和系统资源分配,对身份验证和密钥分批的过程进行管理和调度;
[0023]OpenSSL安全通信模块,利用OpenSSL包含的一套SSL协议的完整接口,在文件传送时建立安全套接层,进而能够通过网络进行安全的数据传输;
[0024]线程池模块,用于实现多文件并行传输的能力;每个客户端处于平等地位,为了响应并发性的要求同时又可以限制客户端的最大连接;
[0025]安全性控制模块,引入SSL协议,用于将所有的命令信息和控制信息经过加密处理后进行安全传输,实现信息安全的三个目标:信息安全性,信息完整性和身份认证。
[0026]本发明实施例的另一目的在于提供的一种基于OpenSSL的Linux安全文件传输方法,所述基于OpenSSL的Linux安全文件传输方法为:
[0027]客户端进程向服务器端进程发起连接请求,服务器端要求进行身份验证,下发一个随机产生的HASH值和验证请求报文,客户端收到验证请求后,提交自己用户名和密码作为身份信息到服务器端;
[0028]当客户端通过文件传输模块执行上传或下载指令时,调用OpenSSL控件,建立安全的传输通道,OpenSSL的安全传输主要通过加密套件建立客户端和服务器端的安全传输通道,加密套件包含了 SSL握手阶段和通信阶段所应该采用的各种算法。
[0029]进一步,为了确保验证信息的安全,采用MD5算法对用户名和密码进行加密,密钥是服务器端下发的HASH值,服务器收到客户端的验证信息,解密验证成功后,为本次连接预留资源,并回应客户端验证成功;
[0030]进一步,加密套件包含了 SSL握手阶段和通信阶段所应该采用的各种算法,这些算法包括:认证算法、密钥交换算法、对称算法和摘要算法。
[0031]进一步,为了确保传输的正确性,在验证通过后,需要进行传送初始化,这时双方都会导入各自所认可的多种加密套件,在握手阶段,由服务器端选择其中的一种加密套件,并告知客户端选择同样的加密套件,服务器端和客户端则通过双方协商好的加密套件进行传输。
[0032]进一步,为了提高数据传输的效率,系统采用了断点续传的技术,实时记录文件写入状态即每一次接收后成功写入文件的数据长度,对接受方而言传输开始时先进行本地断点记录文件检测,如果存在则读取记录数据根据记录设置文件读写指针偏移指定字节数,对发送方而言提取文件名字段,偏移字段,从指定位置处读取待发文件内容到缓存中然后发送给接收方。
[0033]本发明提供的基于OpenSSL的Linux安全文件传输系统,本系统在Linux基础之上,利用OpenSSL实现文件的安全传输。整个系统包含客户端和服务器端,客户端由文件传输模块和文件管理模块组成,服务器端由用户管理和系统管理组成。系统采用多线程技术并结合身份验证进行连接管理,实现文件传输、文件管理、用户管理、系统管理等功能。特别是采用了客户端和服务器端的连接认证,以及调用OpenSSL进行加密传送确保了文件传输的秘密性。
【专利附图】

【附图说明】
[0034]图1是现有技术提供的基于OpenSSL的Linux安全文件传输系统内核结构图
[0035]图2是本发明实施例提供的基于OpenSSL的Linux安全文件传输系统功能模块图[0036]图中:1、安全文件传输和管理模块;2、OpenSSL安全通信模块;3、线程池(多线程管理)模块;4、安全性控制模块;5、客户端;6、服务器端;7、文件传输模块;8、文件管理模块;9、用户管理模块;10、系统管理模块。
【具体实施方式】
[0037]为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0038]图1不出了本发明实施案例提供的基于OpenSSL的Linux安全文件传输系统内核结构,该结构包括:
[0039]安全文件传输和管理模块1,用于实现对整个文件传送过程统一调度和系统资源分配,对身份验证和密钥分批的过程进行管理和调度。;
[0040]OpenSSL安全通信模块2,利用OpenSSL包含的一套SSL协议的完整接口,在文件传送时建立安全套接层,进而能够通过网络进行安全的数据传输;
[0041]OpenSSL是一个支持SSL协议的,开放源代码的,免费的软件包,采用C语言作为开发语言,支持多种操作系统,包括Linux, Windows, Unix等,具有广泛的适用性。
[0042]线程池(多线程管理)模块3,考虑到多个客户端同时连接到服务器的情况以及过多客户端连接可能造成的对服务器性能的影响,用于实现多文件并行传输的能力。每个客户端处于平等地位,为了响应并发性的要求同时又可以限制客户端的最大连接;
[0043]安全性控制模块4,引入了 SSL协议,所有的命令信息和控制信息经过加密处理后进行安全传输,可以有效地实现信息安全的三个目标:信息安全性,信息完整性和身份认证;
[0044]服务器和客户端之间可以利用socket通信,客户端向服务器发送请求信息,服务器响应请求,因此,它们之间需要传输一些命令信息,如果这些信息是通过internet直接在TCP协议上进行传输的,没有经过任何的加密处理,很容易被非法的黑客窃取。从信息安全的角度考虑,直接通过TCP协议传输命令信息是很不安全的。
[0045]图2示出了本发明实施案例提供的基于OpenSSL的Linux安全文件传输系统的功能模块,该结构包括:
[0046]客户端5,用于进行文件传输和文件管理;
[0047]服务器端6,用于进行用户管理和系统管理;
[0048]文件传输模块7,用于对文件进行上传和下载;
[0049]文件管理模块8,在登陆服务器后可以对文件进行管理,包括浏览目录、查看文件、查找文件、删除文件功能。
[0050]用户管理模块9,能够对用户进行管理包括登陆验证、用户注册管理、查看和删除用户、用户权限修改。
[0051]系统管理模块10,在服务器端为了更好对系统进行全局管理还加入了系统日志记录、系统设置、远程管理等功能。
[0052]客户端5进程向服务器端6进程发起连接请求,服务器端6要求进行身份验证,下发一个随机产生的HASH值和验证请求报文,客户端5收到验证请求后,提交自己用户名和密码作为身份信息到服务器端6 ;为了确保验证信息的安全,采用MD5算法对用户名和密码进行加密,密钥是服务器端6下发的HASH值,服务器6收到客户端5的验证信息,解密验证成功后,为本次连接预留资源,并回应客户端5验证成功;当客户端通过文件传输模块7执行上传或下载指令时,调用OpenSSL控件,建立安全的传输通道,OpenSSL的安全传输主要通过加密套件建立客户端5和服务器端6的安全传输通道,加密套件包含了 SSL握手阶段和通信阶段所应该采用的各种算法,这些算法包括:认证算法、密钥交换算法、对称算法和摘要算法等,为了确保传输的正确性,在验证通过后,需要进行传送初始化,这时双方都会导入各自所认可的多种加密套件,在握手阶段,由服务器端6选择其中的一种加密套件,并告知客户端选择同样的加密套件,服务器端6和客户端5则通过双方协商好的加密套件进行传输;为了提高数据传输的效率,系统采用了断点续传的技术,实时记录文件写入状态即每一次接收后成功写入文件的数据长度,对接受方而言传输开始时先进行本地断点记录文件检测,如果存在则读取记录数据根据记录设置文件读写指针偏移指定字节数,对发送方而言提取文件名字段,偏移字段,从指定位置处读取待发文件内容到缓存中然后发送给接收方。
[0053]本方案发明的基于OpenSSL的Linux安全文件传输系统,客户端5进程向服务器端6进程发起连接请求,服务器端6要求进行身份验证,下发一个随机产生的HASH值和验证请求报文,客户端5收到验证请求后,提交自己用户名和密码作为身份信息到服务器端
6。为了确保验证信息的安全,采用MD5算法对用户名和密码进行加密,密钥是服务器端6下发的HASH值,服务器6收到客户端5的验证信息,解密验证成功后,为本次连接预留资源,并回应客户端5验证成功。当客户端通过文件传输模块7执行上传或下载指令时,调用OpenSSL控件,建立安全的传输通道,OpenSSL的安全传输主要通过加密套件建立客户端5和服务器端6的安全传输通道。加密套件包含了 SSL握手阶段和通信阶段所应该采用的各种算法,这些算法包括:认证算法、密钥交换算法、对称算法和摘要算法等。为了确保传输的正确性,在验证通过后,需要进行传送初始化,这时双方都会导入各自所认可的多种加密套件,在握手阶段,由服务器端6选择其中的一种加密套件,并告知客户端选择同样的加密套件,服务器端6和客户端5则通过双方协商好的加密套件进行传输。为了提高数据传输的效率,系统采用了断点续传的技术,实时记录文件写入状态即每一次接收后成功写入文件的数据长度。对接受方而言传输开始时先进行本地断点记录文件检测,如果存在则读取记录数据根据记录设置文件读写指针偏移指定字节数,对发送方而言提取文件名字段,偏移字段,从指定位置处读取待发文件内容到缓存中然后发送给接收方。
[0054]本系统在Linux基础之上,利用OpenSSL实现文件的安全传输。系统采用多线程技术并结合身份验证进行连接管理。实现文件传输、文件管理、用户管理、系统管理等功能。特别是采用了客户端和服务器端的连接认证,以及调用OpenSSL进行加密传送确保了文件传输的秘密性。
[0055]以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
【权利要求】
1.一种基于OpenSSL的Linux安全文件传输系统,其特征在于,所述基于OpenSSL的Linux安全文件传输系统包括: 客户端,用于进行文件传输和文件管理; 服务器端,用于进行用户管理和系统管理; 文件传输模块,用于对文件进行上传和下载; 文件管理模块,在登陆服务器后可以对文件进行管理,包括浏览目录、查看文件、查找文件、删除文件功能; 用户管理模块,能够对用户进行管理包括登陆验证、用户注册管理、查看和删除用户、用户权限修改; 系统管理模块,在服务器端为了更好对系统进行全局管理还加入了系统日志记录、系统设置、远程管理。
2.如权利要求1所述的基于OpenSSL的Linux安全文件传输系统,其特征在于,该基于OpenSSL的Linux安全文件传输系统内核结构为: 安全文件传输和管理模块,用于实现对整个文件传送过程统一调度和系统资源分配,对身份验证和密钥分批的过程进行管理和调度; OpenSSL安全通信模块,利用Op enSSL包含的一套SSL协议的完整接口,在文件传送时建立安全套接层,进而能够通过网络进行安全的数据传输; 线程池模块,用于实现多文件并行传输的能力;每个客户端处于平等地位,为了响应并发性的要求同时又可以限制客户端的最大连接; 安全性控制模块,引入SSL协议,用于将所有的命令信息和控制信息经过加密处理后进行安全传输,实现信息安全的三个目标:信息安全性,信息完整性和身份认证。
3.一种基于OpenSSL的Linux安全文件传输方法,其特征在于,所述基于OpenSSL的Linux安全文件传输方法的步骤为: 客户端进程向服务器端进程发起连接请求,服务器端要求进行身份验证,下发一个随机产生的HASH值和验证请求报文,客户端收到验证请求后,提交自己用户名和密码作为身份信息到服务器端; 当客户端通过文件传输模块执行上传或下载指令时,调用OpenSSL控件,建立安全的传输通道,OpenSSL的安全传输主要通过加密套件建立客户端和服务器端的安全传输通道,加密套件包含了 SSL握手阶段和通信阶段所应该采用的各种算法。
4.如权利要求3所述的基于OpenSSL的Linux安全文件传输方法,其特征在于,为了确保验证信息的安全,采用MD5算法对用户名和密码进行加密,密钥是服务器端下发的HASH值,服务器收到客户端的验证信息,解密验证成功后,为本次连接预留资源,并回应客户端验证成功。
5.如权利要求3所述的基于OpenSSL的Linux安全文件传输方法,其特征在于,加密套件包含了 SSL握手阶段和通信阶段所应该采用的各种算法,这些算法包括:认证算法、密钥交换算法、对称算法和摘要算法。
6.如权利要求3所述的基于OpenSSL的Linux安全文件传输方法,其特征在于,为了确保传输的正确性,在验证通过后,需要进行传送初始化,这时双方都会导入各自所认可的多种加密套件,在握手阶段,由服务器端选择其中的一种加密套件,并告知客户端选择同样的加密套件,服务器端和客户端则通过双方协商好的加密套件进行传输。
7.如权利要求3所述的基于OpenSSL的Linux安全文件传输方法,其特征在于,为了提高数据传输的效率,系统采用了断点续传的技术,实时记录文件写入状态即每一次接收后成功写入文件的数据长度,对接受方而言传输开始时先进行本地断点记录文件检测,如果存在则读取记录数据根据记录设置文件读写指针偏移指定字节数,对发送方而言提取文件名字段,偏移字段,从指定位·置处读取待发文件内容到缓存中然后发送给接收方。
【文档编号】H04L29/06GK103595703SQ201310325468
【公开日】2014年2月19日 申请日期:2013年7月31日 优先权日:2013年3月8日
【发明者】彭茂玲, 张光春, 蒋丽华, 陈善雄 申请人:重庆城市管理职业学院
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1