应用协议数据安全交换的方法

文档序号:7589368阅读:265来源:国知局
专利名称:应用协议数据安全交换的方法
技术领域
本发明涉及一种数据安全交换方法,尤其涉及一种对网络中的高级应用协议特别是使用TCP/IP协议族中TCP/UDP协议上的高级应用协议所传输的数据进行安全数据交换的方法。
背景技术
随着电子计算机的普及和互联网络的急速发展,互联网中的各种安全问题日趋严重,特别是目前攻击程序、蠕虫等病毒大规模传播危害计算机系统及网络安全;更有各种垃圾邮件及非法信息利用互联网络中HTTP、SMTP等高级应用协议设计上的不足在网络中四处流窜。据统计,目前在国内网络上传输的邮件中有55%以上的邮件属于垃圾邮件;而现在全球有95%以上的病毒通过网络服务器或安全漏洞传播,这不但严重影响网络性能,浪费大量计算机网络资源,还给计算机用户带来极大的不便和安全性问题。
目前,在网络中处理这些常见的非法或有害网络内容传输问题的公知方法是1、在使用计算机网络的内外网间建立安全网关,对经过网关的数据流进行过滤处理。
2、在网关中运行应用协议的代理软件,进行软件代理或透明代理,对经过代理协议中的数据进行反病毒或反垃圾邮件的扫描,清除或删除网络中传输的垃圾邮件、病毒、恶意程序。
3、部分网络服务提供商针对自己的网络服务系统定制开发安全系统,提供自身网络环境的安全过滤服务。
如图1所示,用户通过网关和公网连接,公网再通过网关与网络服务器连接,如果对传输数据进行安全处理,在网关处设置相关处理即可,在数据传输时,首先会对数据进行检测,然后再通过公网与对端进行数据交换。
上述网络数据处理方式均为代理安全过滤及处理方法,在TCP/IP网络上可以归结为的代理安全模型,其能够在一定程度上解决所遇到的网络内容处理问题,但其在处理网络中四处传输的病毒、非法信息和垃圾邮件,存在着以下不足如图2所示,在发起端和目的端之间为代理服务装置,代理服务装置包括直接与发起端157连接的代理服务端224、直接与目的端168连接的代理客户端225和安全检查模块212,发起端157与目的端224通信时,数据首先送入安全检查模块212,经过安全检查后,丢弃数据或将数据发送到对端。图中的虚线和实线分别为发起端到目的端的数据流向和目的端到发起端的数据流向,代理机制需要在其代理服务端完全解析由部件157发起端的通讯请求,以过滤处理其中的数据、文件、邮件等,但网络协议一般具备很大程度的自由性,如邮件用户通讯中用户认证方式的样式就非常多。而代理方式一般仅局限于常见的协议子集的实现,如SMTP协议子集实现,无法提供一种可以完全适应协议及其扩展变化的代理机制。
代理机制由于无法对最终访问服务即部件168提供透明特性,因此一般无法前置服务于常用的网络服务器(组),这是因为常见网络服务器如邮件服务器一般需要反向解析访问者的域名,以检查安全性及阻止邮件,而代理客户端225只能提供单一的访问地址给最终访问服务。在TCP/IP协议族中体现为代理服务使用其自身运行的网络地址,图2中给出的为159.226.5.10,访问最终服务提供者168。这样网络服务器就无法反向解析访问者的域名,而相应的安全设置也将受到限制。
代理安全机制的实现方式是通过建立两条不相关联的数据链路,图2中所示,通信时,首先建立发起端157到代理服务端224、代理客户端到目的地端168两条链路,两条链路完全隔离,这种代理安全机制在很大程度上带来了网络应用协议交互性能上的损失。

发明内容
针对上述现有完全代理数据处理所存在的问题和不足,本发明的目的是提供一种在应用协议中仅对涉及网络安全的数据进行过滤处理的应用协议数据安全交换的方法。
本发明是这样实现的一种应用协议数据安全交换的方法,包括以下步骤在源端和目的端建立基本的通信链路,并为该链路生成应用交换会话,并开始两端的数据通信;安全交换网关判断数据的安全性,对于不涉及破坏网络安全的数据直接发送到对端;对于可能涉及破坏网络安全的数据,输入到安全处理模块进行检测,经检测若为合法数据,则发送到对端;若不合法,则经过修改再发送到对端,或直接将数据丢弃。
进一步地,在对所述可能涉及破坏网络安全的数据进行处理过程中,定时检查链路接口,若超时未收到数据包,则发送空数据包。
进一步地,所述安全交换网关包括服务端,判断数据的安全性,并与源端和目的端进行数据通信;应用交换会话模块,生成用于数据交换的会话状态,该会话状态包括基本的连接等待、请求等待、数据接收、数据发送、数据交换和连接关闭;安全处理模块,用于所述服务端认为不安全数据的检测,经处理后发送。
进一步地,所述不涉及破坏网络安全的数据具体为协议本身传输的数据,在应用协议中传输的图片、视频文件或数据流等。
进一步地,所述可能涉及破坏网络安全的数据具体为含有宏的文档,程序,邮件,压缩文档等。
进一步地,所述应用协议是指数据网络中的各种应用的通讯协议,尤其是TCP/IP协议族中TCP/UDP上的高级应用协议。
进一步地,所述高级应用协议具体为POP3、SMTP、HTTP协议。
本发明克服了代理安全处理机制的局限性,对于应用协议,创建一种数据安全交换方法,对网络中通讯协议族特别是对使用TCP/UDP通讯协议的高级应用协议所传输的数据、文件、邮件等进行安全监管、安全处理及内容过滤,以解决数据交换网络中的应用协议数据传输内容安全问题。本发明对不涉及网络安全的数据直接传输到对端,即对于设在发起端与目的端的代理服务装置来说,如果是不会涉及网络安全的数据仅提供通道,不对数据做任何处理,仅对那些会涉及网络安全的数据进行检测并进行相应处理,这加速了网络数据的传输,减少通讯链路或服务连接的响应时间,大大提高了带宽。
本发明可以应用于数据网络中有计算能力的各种通信设备中,包括网络接入服务器、网关、透明网桥、交换机等设备。通过本发明建立起的通用网络隔离网关(防毒、防黑)、服务器及群组的前置安全隔离处理等应用,适用于有较高安全需求的内外网全隔离网络,数据交换网段间的隔离、安全处理,可广泛适用于中小型公司、政府、银行、公安、军队、电信机构,以及各种政府及地方信息港网络的内容安全建设方面。


下面结合附图,对本发明作出详细描述。
图1为常用的数据交换示意图;图2为现有的安全检测数据传输结构示意图;图3为本发明的安全检测数据传输结构示意图;图4为本发明的HTTP应用协议安全交换会话安全处理流程示意图;图5为本发明的POP3应用协议安全交换会话安全处理流程示意图。
具体实施例方式如图3所示,本发明通过在用户157和服务器端168之间设置相应的安全交换网关,该安全交换网关包括有与用户157进行数据交换的交换服务端324、安全处理模块312、与服务器端168进行数据交换的交换客户端325和应用交换会话模块301,其中应用交换会话模块301生成各种数据交换会话以进行通信。本发明的安全交换网关首先判断数据是否会可能危及网络安全,如果是对网络安全无影响的数据,将直接通过链路进行传输,若可能危及网络安全,则首先发往安全处理模块312,进行处理后再通过链路传输。图中的虚线和实线分别为发起端到目的端的数据流向和目的端到发起端的数据流向示意。
本发明的应用交换会话模块301包括与发起端进行通信的交换服务端链路相关状态集、与目的端进行通信的交换客户链路相关状态集和其他数据交换状态;其中交换服务端链路相关状态集包括服务连接等待状态用于等待交换会话服务链路建立,当链路可用或会话出错时转出此状态;
服务请求等待状态用于等待发起端部件157发送数据,一般指应用协议的服务请求,当数据可用或会话出错时转出此状态;服务数据接收状态用于接收发起端部件157发送到的数据,并缓冲到内存或文件中,以进行安全处理,当数据完全接收完成或会话出错时转出此状态;服务本地发送状态用于发送缓冲的内存或文件中的数据到发起端部件157,一般指发送已经完成安全处理并符合安全要求的数据或文件,当数据完全发送完成或会话出错时转出此状态;服务数据交换状态用于把从交换服务链路中接收到的数据直接交换至交换客户链路,当完成直接交换后或会话出错时转出此状态;服务连接关闭状态当交换服务链路中还存有未发送完数据时,等待数据发送,完成后关闭交换服务链路,并释放安全交换会话的交换服务端资源,此状态一般为应用协议安全交换会话生存周期的最后状态。
交换客户链路相关状态集包括客户连接等待状态用于等待交换会话客户链路建立,当链路创建成功并可用或会话出错时转出此状态;客户反馈等待状态用于等待目的地端部件168发送数据,一般指应用协议的服务反馈数据,当数据可用或会话出错时转出此状态;客户数据接收状态用于接收目的地端部件168发送到的数据,并缓冲到内存或文件中,以供安全处理,当数据完全接收完成或会话出错时转出此状态;客户本地发送状态用于发送缓冲的内存或文件中的数据到目的地端部件168,一般指发送已经完成安全处理并符合安全要求的数据或文件,当数据完全发送完成或会话出错时转出此状态;客户数据交换状态用于把从交换客户链路中接收到的数据直接交换至交换服务链路,当完成直接交换后或会话出错时转出此状态;客户连接关闭状态当交换客户链路中还存有未发送完数据时,等待数据完全发送完,完成后关闭交换客户链路,并释放安全交换会话的交换客户端资源。
其他数据交换状态包括完全数据交换状态当交换服务链路中有数据可接收时,把从交换服务链路中接收到的数据直接交换至交换客户链路以发送给目的地端部件,当交换客户链路中有数据可接收时,把从交换客户链路中接收到的数据直接交换至交换服务链路以发送给发起端部件;扫描连接等待状态用于到安全处理模块312的连接建立,当服务连接可用或出错时转出此状态;扫描反馈等待状态用于等待安全处理模块312返回安全处理反馈数据,一般指对数据交换处理请求的回复,当回复数据可用或会话出错时转出此状态;扫描数据接收状态用于接收安全处理模块312发送回的处理完成后的数据或文件,并缓冲到内存或文件中,当数据完全接收完成或会话出错时转出此状态;扫描本地发送状态用于发送需要经过安全处理模块312处理的数据或文件到安全处理服务连接,供其进行安全处理,当数据完全发送完成或会话出错时转出此状态;扫描连接关闭状态等待安全处理服务请求结束后,关闭安全处理服务连接,并释放安全处理链路使用资源。
本发明在交换网络中通过建立基于应用协议的数据交换安全系统,为数据交换网络中产生的每个高级通讯链路或连接生成一个协议安全交换会话,通过会话负责处理此链路或连接中所传输的数据、文件和邮件等,完成数据的传输。下面将以在Linux系统上实现的HTTP协议、POP3协议两个高级应用协议安全交换会话处理为例,以详细说明本发明。其中为简化HTTP协议的步骤描述,仅说明HTTP协议的GET方法实现。此实施方式可广泛适用于各种高级应用协议的应用协议安全交换,如SMTP、IMAP、FTP等通用协议、网络上私用的高级应用协议等。
本发明以在安全交换网关上实现HTTP协议、POP3协议两个高级应用协议的安全交换会话处理为例,说明本发明具体实现步骤。
如图3、4所示,根据HTTP协议规范,HTTP协议请求可分为GET、PUT、POST等请求类型,下面详细描述HTTP协议GET方法时的安全交换会话实现步骤。
本发明的步骤603首先完成HTTP应用交换会话(以下简称会话)的初始化,包括以下步骤1、接收链路发起端157的HTTP连接请求,初始化会话的交换服务端324;
2、获取发起端157的IP地址、TCP请求端口号;3、调用安全交换网关的控管接口,获取发起端157希望连接的目的地端168的IP地址及HTTP服务的端口号;4、初始化会话的交换客户端325,并绑定本地可用IP地址及系统可用TCP端口号;5、调用安全交换网关的控管接口,提供步骤4交换客户端所绑定的IP地址、TCP端口号,步骤2获取的发起端IP地址、TCP端口号,步骤3获取的目的地端IP地址、HTTP服务的端口号,建立交换客户链路伪装。
会话建立并初始化成功后,进入服务请求等待状态412,等待发起端157发送HTTP服务请求数据,当有数据可用时进入步骤606进行对HTTP请求的解析及预处理,其具体步骤为1、获取当前HTTP请求头内容,分配内存,暂存于会话结构中;2、从HTTP请求头中获取HTTP请求方法,请求的HTTP服务URL路径;3、启动交换客户端325开始连接目的地端,由于上述601中的步骤5已经建立了通信通道,交换客户端324以发起端157的IP地址、TCP请求端口号与对端进行通信。
在启动交换客房端的连接后,会话转换至客户连接等待状态421,等待与目的地端168即HTTP服务提供者连接建立,当此连接成功建立后,把会话中暂存的HTTP请求转发至目的地端HTTP服务,会话转换至客户反馈等待状态422,等待目的地端HTTP服务的数据反馈,当HTTP服务反馈数据到达后,进入步骤610,处理目的地端的HTTP请求反馈,其具体步骤为1、如果请求返回失败,进入客户数据交换状态425;2、如果请求成功,并且不含更新的HTTP文件数据,则进入客户数据交换状态425;3、如果请求成功,HTTP文件数据符合安全处理策略的安全要求,可以直接传递至发起端157,则转入客户数据交换状态425;4、如果请求成功,并有可用的HTTP文件数据需要进行安全处理,则在会话结构中缓存HTTP请求反馈头,并打开或创建HTTP缓冲文件,会话进入客户数据接收状态423。
客户数据交换状态425用于把HTTP服务所返回的HTTP反馈头及HTTP文件数据经交换服务端324直接交换发送到HTTP请求发起端部件157,完成后进入客户连接关闭状态426。
客户数据接收状态423用于等待接收由目的地端HTTP发送的HTTP文件数据,有数据时进入步骤618,完成HTTP文件数据的本地缓冲,其具体实现步骤如下1、根据会话状态,确定当前缓冲存储文件的当前数据保存位置;2、保存当前接收到的数据到缓冲文件,增加已缓冲存储的数据大小的计数。
在接收的HTTP文件数据存储到缓冲文件后,判断步骤620确定数据是否已经完成缓冲,如果已经完成,则会话进入步骤620,进行HTTP数据文件的安全处理。
步骤628处理经步骤624调用扫描服务处理后的HTTP数据文件,包括对扫描时的错误进行记录,对扫描的结果进行记录。当HTTP数据文件不符合安全处理要求时,会话经过如下处理后进入客户连接关闭状态4261、根据不符合系统安全处理要求的处理结果或扫描处理出错的结果生成HTTP请求反馈头,在反馈头中一般返回禁止访问或授权失败等类型的HTTP错误信息,对前述处理也可填充反馈头为重定位到系统提供的安全警告Web页面;2、把生成的HTTP请求反馈头经过交换服务端324发送给HTTP请求发起端部件157。
当HTTP数据文件成功经过步骤624的扫描处理后,如果数据在安全处理过程中已经修改,如被步骤624清除病毒等,则按照修改结果对HTTP服务反馈头进行修改,更改其中的域以适合修改后的数据文件。安全交换会话把HTTP服务反馈头经交换服务链路发给HTTP请求发起端后,并进入服务本地发送状态414,发送安全处理后的HTTP数据文件。
步骤632判断当前是否已经完成数据文件发送,如果已经完成则进入客户连接关闭状态426,开始会话的关闭及删除,如果未完成,则进入服务本地发送状态414,继续发送HTTP数据文件。
客户连接关闭状态426用于关闭交换客户链路,并释放交换客户端325占用资源;服务连接关闭状态416等待交换服务链路上的数据完整发送完成后,关闭交换服务链路,并释放交换服务端324占用资源。
下面将描述本发明POP3协议处理过程。
根据POP3协议规范,POP3会话由请求端和服务端经过问答式会话完成邮件的接收。如图3、5所示,步骤703完成POP3安全交换会话(以下简称会话)的初始化,包括以下步骤1、接收链路发起端157的POP3连接请求,初始化会话的交换服务端324;2、获取发起端157的IP地址、TCP请求端口号;3、调用安全交换网关的控管接口,获取发起端157希望连接的目的地端168的IP地址及POP3服务的端口号;4、初始化会话的交换客户端325,并绑定本地可用IP地址及系统可用TCP端口号;5、调用安全交换网关的控管接口,提供步骤4交换客户端所绑定的IP地址、TCP端口号,步骤2获取的发起端IP地址、TCP端口号,步骤3获取的目的地端IP地址、HTTP服务的端口号,建立交换客户伪装链路。
会话建立并初始化成功后,进入步骤705,其具体步骤为1、启动交换客户端325连接目的地端,根据上述步骤701中的步骤5的交换客房端325以发起端157的IP地址、TCP请求端口号与POP3服务进行通讯;2、转入客户连接等待状态421。
当交换客户链路连接成功后,会话进入客户数据交换状态425,等待目的地端168即POP3服务提供者发送POP3问候数据,数据到达后进入客户数据交换状态425,把POP3服务问候数据直接交换到发起端部件157即POP3服务请求者。此时,会话已经建立完成的交换链路,进入服务请求等待状态412,等待POP3服务请求者发送POP3命令,接收到POP3命令后,如果其命令格式合法,则会话转入服务数据交换状态415,把POP3命令数据直接交换到目的地端部件168即服务提供者。
当POP3请求命令直接交换完成后,判断步骤712确定当前命令是否属于RETR/HEAD等邮件数据查询命令,是则开始邮件缓冲以供安全处理模块312进行处理;判断步骤714确定当前命令是否属于QUIT等POP3服务结束命令,是则经过步骤715进入客户反馈等待状态422,开始准备结束安全交换会话。
当前命令不属于结束服务时,经过步骤716进入客户反馈等待状态422,此时客户反馈等待状态422等待POP3服务提供者反馈POP3命令处理结果,当结果数据到达时转入客户数据交换状态425,形成会话基本处理循环。
客户数据接收状态423等待POP3服务发送邮件数据,邮件数据可用时进入步骤718,其具体步骤是1、当前未打开缓冲文件时,创建邮件缓冲数据文件;2、在从客户交换链路接收到的邮件数据中查找邮件结束标记,以确定是否可结束当前缓冲接收;3、保存当前接收到的有效邮件数据到缓冲文件。
判断步骤720确定当前邮件是否接收完成,是则会话进入步骤724,进行POP3邮件数据的安全扫描;步骤728处理经步骤724调用邮件扫描服务处理后的POP3邮件数据,其包括对扫描时的错误进行记录,对扫描的结果进行记录。当数据出现严重错误时,进入客户连接关闭状态426,以结束安全交换会话;如果数据没有错误或者经处理后没有错误,进入服务本地发送状态414,开始发送安全处理后的邮件,判断步骤732用于确定邮件数据是否已经完全发送完成,否则继续进入服务本地发送状态414;是则会话转入客户连接关闭状态426,等待POP3服务请求者发送下一个POP3请求命令。客户连接关闭状态426用于等特交换客户链路数据传送,传送完成后关闭POP3安全交换会话的交换客户链路,并释放交换客户端325占用资源。并进入服务连接关闭状态416等待交换服务链路上的数据完整发送完成后,关闭交换服务链路,并释放交换服务端324占用资源。
至此,一次POP3安全交换会话处理基本完成,会话进入步骤738,完成交换会话释放处理,如释放会话用的缓冲区空间等内存资源。
权利要求
1.一种应用协议数据安全交换的方法,其特征在于,该方法包括以下步骤在源端和目的端建立基本的通信链路,并为该链路生成应用交换会话,并开始两端的数据通信;安全交换网关判断数据的安全性,对于不涉及破坏网络安全的数据直接发送到对端;对于可能涉及破坏网络安全的数据,输入到安全处理模块进行检测,经检测若为合法数据,则发送到对端;若不合法,则经过修改再发送到对端,或直接将数据丢弃。
2.如权利要求1所述的应用协议数据安全交换的方法,其特征在于,在对所述可能涉及破坏网络安全的数据进行处理过程中,定时检查链路接口,若超时未收到数据包,则发送空数据包。
3.如权利要求1所述的应用协议数据安全交换的方法,其特征在于,所述安全交换网关包括服务端,判断数据的安全性,并与源端和目的端进行数据通信;应用交换会话模块,生成用于数据交换的会话状态,该会话状态包括基本的连接等待、请求等待、数据接收、数据发送、数据交换和连接关闭;安全处理模块,用于所述服务端认为不安全数据的检测,经处理后发送。
4.如权利要求1所述的应用协议数据安全交换的方法,其特征在于,所述不涉及破坏网络安全的数据具体为协议本身传输的数据,在应用协议中传输的图片、视频文件或数据流。
5.如权利要求1所述的应用协议数据安全交换的方法,其特征在于,所述可能涉及破坏网络安全的数据具体为含有宏的文档,程序,邮件,压缩文档。
6.如权利要求1至5中任一权利要求所述的应用协议数据安全交换的方法,其特征在于,所述应用协议是指数据网络中的各种应用的通讯协议,尤其是TCP/IP协议族中TCP/UDP上的高级应用协议。
7.如权利要求6所述的应用协议数据安全交换的方法,其特征在于,所述高级应用协议具体为POP3、SMTP、HTTP协议。
全文摘要
本发明公开了一种应用协议数据安全交换的方法,包括以下步骤在源端和目的端建立基本的通信链路,并为该链路生成应用交换会话,并开始两端的数据通信;安全交换网关判断数据的安全性,对于不涉及破坏网络安全的数据直接发送到对端;对于可能涉及破坏网络安全的数据,输入到安全处理模块进行检测,经检测若为合法数据,则发送到对端;若不合法,则经过修改再发送到对端,或直接将数据丢弃。本发明克服了代理安全处理机制的局限性,对于应用协议,创建一种数据安全交换方法,对使用TCP/UDP通讯协议的高级应用协议所传输的数据、文件、邮件等进行安全监管、安全处理及内容过滤,以解决数据交换网络中的应用协议数据传输内容安全问题。
文档编号H04L9/00GK1571330SQ20041000906
公开日2005年1月26日 申请日期2004年4月30日 优先权日2004年4月30日
发明者林溯奕 申请人:中国科学院软件研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1