安全接入数据传输系统及方法

文档序号:7932215阅读:150来源:国知局
专利名称:安全接入数据传输系统及方法
技术领域
本发明涉及网络安全领域,特别是关于一种安全接入(Secure SHell,SSH)数据传输系统及方法。
背景技术
传统的网络服务,如FTP、POP和Telnet在本质上都是不安全的,因为在网络上用明文传送口令和数据,别有用心的人非常容易就可以截获这些口令和数据。而且,这些网络服务的安全验证方式也是有其弱点的,就是很容易受到“中间人”(Man-in-the-Middle),冒充真正的服务器接收用户的传给服务器的数据,然后再冒充该用户把数据传给真正的服务器。服务器和用户之间的数据传送被“中间人”一转手做了手脚之后,就会出现很严重的问题,因此解决安全隐患迫在眉睫。
SSH的英文全称是Secure SHell。通过使用SSH,用户可以把所有传输的数据进行加密,这样“中间人”这种攻击方式就不可能实现,而且也能够防止DNS和IP欺骗。还有一个好处就是传输的数据是经过压缩的,所以可以加快传输的速度。SSH的提出弥补了Telnet的不足,使远程登录访问的应用中安全性得到了很大的提高。SSH协议支持PASSWORD、RSA验证方式,支持DES、3DES数据加密方式,从而使在不安全的网络上实现安全的远程访问成为可能。
SSH数据传输是一个关键部分,通过将SSH数据包加密并发送到Socket(套接口)上以及从Socket上接收加密数据包,实现SSH的客户端和服务器端数据交互,由于发送和接收的数据都可能来自不同的应用和用户,因此数据传输既要保证不同来源的加密数据传输的顺序关系、完整性,还要保证大流量下加密数据包的传输效率,从而使用户远程操作能够获得类似本地操作的效果。然而对于传统实现,数据的充分性和效率往往难以兼顾,在大流量远程网络环境中,数据信息丢弃、操作响应缓慢等现象时常可见。
关于SSH数据传输,目前实现主要有两种方式,一种是继承Telnet的数据传输方式,另一种是对传输数据进行保护的传输方式。
(1)类似Telnet的数据传输方式如图1所示,各个任务11、12…1n发送的数据经加密后送到数据传输缓冲区21、22…2n,控制模块3控制数据传输缓冲区21、22…2n的数据发送,且该控制模块3通过EV_SENDAGAIN和EV_VTYCLOSE消息控制数据向Socket4的发送过程。Socket 4通过ASYN_READ、ASYN_WRITE和ASYN_CLOSE等事件通知控制模块3关于Socket4的数据发送状态。各个任务11、12…1n接收数据的处理过程与发送过程类似。
在这种类似Telnet的数据传输方式中,不同任务11、12…1n使用不同的数据传输缓冲区21、22…2n,这些缓冲区21、22…2n仅是简单的字符串缓冲区,彼此间独立,从而做到对发送和接收数据的隔离。由于各任务11、12…1n都有自己对应独立的数据传输缓冲区21、22…2n,因此当Socket4以流方式传输数据产生任务切换时,不用对各任务11、12…1n的相应传输缓冲区21、22…2n进行临界保护。
(2)对数据进行保护的传输方式如图2所示,数据进行保护的传输是大多数SSH协议的实现方式,与类似Telnet的数据传输方式不同的是不同任务11、12…1n使用相同的数据传输缓冲区2,通过信号量或中断对各个任务进行数据保护5,因此当Socket4以流方式传输数据产生任务切换时,由于同一时刻只能有一个任务访问数据传输缓冲区2,从而做到对发送和接收数据的隔离保护。
上面两种技术方案存在一定问题(1)采用类似Telnet的数据传输方式虽然可以保证数据传输的效率,但无法保证发送数据的顺序性。在多任务大流量情况下,发送和接收的数据往往是交织的,造成此问题是因为Socket以流方式发送接收数据,当一次不能全部发送完数据时,会造成任务的不断切换,使不同任务顺序发送或接收的数据交织在一起。
(2)采用对数据进行保护的传输方式,通过对数据传输缓冲区进行保护,可以保证每一任务发送或接收数据的完整性,以及不同任务发送或接收数据的顺序性。但由于采用信号量或中断方式对数据传输缓冲区进行保护,会使数据发送和接收效率降低,当发送或接收数据流量较大时,用户操作的响应速度会变得很慢。

发明内容
本发明解决的问题是提供一种安全接入数据传输系统及方法,使得SSH数据在传输中兼顾效率、速度及完整性。
为解决上述问题,本发明安全接入数据传输系统包括若干任务;数据传输缓冲区,暂存各个任务发送的数据,且各个任务共用一个数据传输缓冲区;控制模块,控制数据传输缓冲区中数据的传输状态;套接口,接收数据传输缓冲区的数据并发送出去,且将数据传输状态通知控制模块;其中,数据传输缓冲区的数据依接收顺序进行放置和发送而套接口在发送数据时不区分数据边界。
相应地,本发明安全接入数据传输方法包括以下步骤各个任务向同一个数据传输缓冲区发送数据;数据传输缓冲区依接收顺序暂存数据;控制模块控制数据传输缓冲区中的数据向对应的套接口顺序发送;套接口接收数据传输缓冲区的数据并不区分数据边界将数据发送出去,且将数据的传输状态通知控制模块。
数据传输缓冲区设有以下指针开始指针,动态标识数据开始的位置;偏移指针,动态标识数据已发送的长度;结束指针,动态标识数据结束的位置,以实现数据传输缓冲区的数据依接收顺序进行放置和发送。
数据传输缓冲区接收和发送数据时还包括以下步骤1)数据传输缓冲区为空时,进行初始状态设置,开始指针、偏移指针以及结束指针指向数据传输缓冲区的开始位置;2)数据传输缓冲区接收数据时,结束指针移至所有数据长度尾部。
3)数据传输缓冲区发送数据时,偏移指针标识已发送数据的长度;4)每次数据发送成功后,开始指针移至偏移指针的位置。
5)根据任务的切换,重复步骤2)、3)、4),直至全部数据依次发送完成后,返回步骤1)。
另外,在所要发送数据超过数据传输缓冲区剩余空间时,将数据传输缓冲区空间扩充一倍;当全部数据发送完成时,数据传输缓冲区恢复到原来大小。开始指针超过数据传输缓冲区一半时,且要发送数据小于数据传输缓冲区的剩余空间时,暂存的数据移至数据传输缓冲区开始位置。
与现有技术相比,本发明具有以下优点本发明安全接入数据传输系统及方法通过共用数据传输缓冲区的多个指针标识不同任务的加密数据位置实现数据依接收顺序传输进行放置及发送,并且发送过程中不区分数据边界。这样,很好的解决了传输完整性和效率性问题,在不损失传输处理效率的情况下,保证了传输数据的顺序性。经测试,本发明在多任务大流量的远程网络环境中,用户的操作相应速度同Telnet相当,不同任务发送接收的数据处理完整、正确,而且SSH相对Telnet具有较好的安全性。


图1是现有技术中的第一个技术方案示意图。
图2是现有技术中的第二个技术方案示意图。
图3是本发明安全接入数据传输系统示意图。
图4a、4b是本发明安全接入数据传输系统及方法的原理示意图。
具体实施例方式
请参照图3、图4a、b所示,本发明安全接入数据传输系统,包括若干任务11、12…1n;数据传输缓冲区2,暂存各个任务11、12…1n发送的数据,且各个任务11、12…1n共用一个数据传输缓冲区2;
控制模块3,控制数据传输缓冲区2中数据的传输;套接口(Socket)4,接收数据传输缓冲区2的数据并发送数据,且将数据的传输状态通知控制模块3;其中,数据传输缓冲区的数据依接收顺序进行放置和发送,并通过数据传输缓冲区2设有如下指针实现的开始指针(start),动态标识数据开始的位置;偏移指针(offset),动态标识数据已发送的长度;以及,结束指针(end),动态标识数据结束的位置。
当数据传输缓冲区2在所要发送数据超过数据传输缓冲区剩余空间时,将其空间扩充一倍;当全部数据发送完成时,数据传输缓冲区2恢复到原来大小。当然数据传输缓冲区2的扩充不限于一倍,但是也不能无限扩充,当数据传输缓冲区2超过上限时的后续各任务发送数据将被丢弃。
在当开始指针超过数据传输缓冲区2一半时,且要发送数据小于数据传输缓冲区2的剩余空间时,暂存数据移至数据传输缓冲区2开始位置。
数据传输缓冲区2保证了各任务的发送数据完整性,SOCKET4在发送数据时不区分各任务的发送数据边界的而是按照数据传输缓冲区数据接收的顺序发送,相应的各任务数据报文边界由SSH协议完成。
数据传输缓冲区2保证了各任务的发送数据效率,当SOCKET4在一次发送数据未完而进行任务切换时,其他任务可以继续发送数据到数据传输缓冲区2,然后由SOCKET4依次发送。
安全接入数据传输系统包括如下事件标识EV_SENDAGAIN,标识控制模块3的数据继续发送状态;
EV_VTYCLOSE,标识控制模块3的数据发送结束状态;ASYN_READ,标识套接口4异步读状态;ASYN_WRITE,标识套接口4异步写状态;ASYN_CLOSE,标识套接口4异步关闭状态;其中,控制模块3通过EV_SENDAGAIN和EV_VTYCLOSE消息控制套接口4数据发送/接收过程,套接口4通过ASYN_READ、ASYN_WRITE和ASYN_CLOSE通知控制模块3关于套接口4的数据发送/接收状态。
以各个任务11、12…1n发送数据过程为例,该数据经加密后送到数据传输缓冲区2,控制模块3控制数据传输缓冲区2的数据发送;控制模块3通过EV_SENDAGAIN和EV_VTYCLOSE消息控制数据向套接口4的发送过程;套接口4通过ASYN_READ、ASYN_WRITE和ASYN_CLOSE等事件通知控制模块3关于套接口4的数据发送状态。
当控制模块3接收到ASYN_READ事件时,从套接口4读取报文数据到各个任务;当控制模块3接收到ASYN_WRITE事件时,通过EV_SENDAGAIN事件控制任务继续向套接口4发送报文数据;当控制模块3接收到ASYN_CLOSE事件时,通过EV_VTYCLOSE事件关闭套接口4。各个任务11、12…1n接收数据的处理过程与发送过程类似,不再赘述而本发明所解决的问题主要出现在任务向套接口发送的传输方向上。
相应地,本发明安全接入数据传输方法包括以下步骤1)各个任务向同一个数据传输缓冲区发送数据;2)数据传输缓冲区依接收顺序暂存数据;
3)控制模块控制数据传输缓冲区中的数据向对应的套接口顺序发送;4)套接口接收数据传输缓冲区的数据并发送出去,且将数据的传输状态通知控制模块。
数据传输缓冲区设有动态标识数据开始的位置的开始指针、动态标识数据已发送的长度的偏移指针动以及动态标识数据结束的位置的结束指针。
关于数据传输缓冲区顺序接收、放置及发送具体包括以下步骤a)数据传输缓冲区为空时,初始状态设置,开始指针、偏移指针以及结束指针指向数据传输缓冲区的开始位置;b)数据传输缓冲区接收数据时,结束指针移至所有数据长度尾部;c)数据传输缓冲区发送数据时,偏移指针标识已发送数据的长度;d)每次数据发送成功后,开始指针移至偏移指针的位置;e)根据任务的切换,重复步骤b)-d),直至全部数据依次发送完成后,返回步骤a)。
本发明安全接入数据传输方法,以多个任务11、12…1n数据发送过程为例进行说明工作原理。
数据传输缓冲区2保证了各任务的发送数据完整性,SOCKET4在发送数据时不区分各任务的数据边界而是按照数据传输缓冲区数据接收的顺序发送,相应的各任务数据报文边界由SSH协议完成。
数据传输缓冲区2保证了各任务的发送数据效率,当SOCKET4在一次发送数据未完而进行任务切换时,其他任务可以继续发送数据到数据传输缓冲区2,然后由SOCKET4依次发送。
图3中可见多个任务11、12…1n共用一个数据传输缓冲区2,向套接口4发送数据时并不区分数据是来自哪个任务,而是按照数据传输缓冲区数据接收的顺序,依次尽力发送数据传输缓冲区2的数据,直到所有数据全部发送完毕(见图4a、b)a、开始时开始指针、偏移指针及结束指针皆指向数据传输缓冲区2的开始位置,任务A发送的数据经加密放置到数据传输缓冲区2后,结束指针移至数据长度尾部;b、当数据通过套接口4发送时,使用偏移指针标识发送数据长度;c、当数据成功发送后,开始指针移至偏移指针位置,当套接口4一次不能发送全部数据时,系统发生任务切换,任务B发送的数据经加密顺序放置到数据传输缓冲区2,结束指针移至数据缓冲区2所有数据长度尾部;d、系统发生任务切换,套接口4继续发送缓冲区中任务A和任务B的数据,偏移指针标识已发送数据长度;e、当继续发送的数据成功发送后,开始指针移至偏移指针位置;f、当发送的数据过大超过数据传输缓冲区2剩余空间大小时,数据传输缓冲区2将大小扩充一倍,当开始指针超过数据传输缓冲区2大小一半,且发送数据大小小于数据传输缓冲区2剩余空间时,数据移置数据传输缓冲区2开始位置;g、继续重复缓冲区数据发送过程,全部数据发送完成后,开始指针、偏移指针及结束指针重新指向数据传输缓冲区2的开始位置,数据传输缓冲区2大小还原为初始大小。
综上所述,本发明安全接入数据传输系统及方法通过事件标识实现控制模块对多任务共用的数据传输缓冲区进行传输控制;通过共用数据传输缓冲区的多个指针标识不同任务的加密数据位置实现序列化数据而部分边界地传输。这样,很好的解决了传输完整性和效率性问题,在不损失传输处理效率的情况下,保证了传输数据的顺序性。经测试,本发明在多任务大流量的远程网络环境中,用户的操作相应速度同Telnet相当,不同任务发送接收的数据处理完整、正确,而且SSH相对Telnet具有较好的安全性。
权利要求
1.一种安全接入数据传输系统,包括若干任务;数据传输缓冲区,暂存各个任务发送的数据,且各个任务共用一个数据传输缓冲区;控制模块,控制数据传输缓冲区中数据的传输状态;套接口,接收数据传输缓冲区的数据并发送出去,且将数据的传输状态通知控制模块;其特征在于,数据传输缓冲区的数据依接收顺序进行放置和发送而套接口在发送数据时不区分数据边界。
2.如权利要求1安全接入数据传输系统,其特征在于,数据传输缓冲区设有以下指针开始指针,动态标识数据开始的位置;偏移指针,动态标识数据已发送的长度;结束指针,动态标识数据结束的位置,以实现数据传输缓冲区的数据依接收顺序进行放置和发送。
3.如权利要求2安全接入数据传输系统,其特征在于,数据传输缓冲区在所要发送数据超过数据传输缓冲区剩余空间时,将其空间扩充一倍;当全部数据发送完成时,数据传输缓冲区恢复到原来大小。
4.如权利要求3安全接入数据传输系统,其特征在于,开始指针超过数据传输缓冲区一半时,且要发送数据小于数据传输缓冲区的剩余空间时,暂存数据移至数据传输缓冲区开始位置。
5.如权利要求1安全接入数据传输系统,其特征在于,该安全接入数据传输系统包括如下事件标识EV_SENDAGAIN,标识控制模块的数据继续发送状态;EV_VTYCLOSE,标识控制模块的数据发送结束状态;ASYN_READ, 标识套接口异步读状态;ASYN_WRITE,标识套接口异步写状态;ASYN_CLOSE,标识套接口异步关闭状态;其中,控制模块通过EV_SENDAGAIN和EV_VTYCLOSE消息控制套接口数据发送/接收过程,套接口通过ASYN_READ、ASYN_WRITE和ASYN_CLOSE通知控制模块关于套接口的数据发送/接收状态。
6.一种安全接入数据传输方法,其特征在于,该传输方法包括以下步骤1)各个任务向同一个数据传输缓冲区发送数据;2)数据传输缓冲区依接收顺序暂存数据;3)控制模块控制数据传输缓冲区中的数据向对应的套接口顺序发送;4)套接口接收数据传输缓冲区的数据并不区分数据边界将数据发送出去,且将数据的传输状态通知控制模块。
7.如权利要求6所述的安全接入数据传输方法,其特征在于,数据传输缓冲区设有以下指针开始指针,动态标识数据开始的位置;偏移指针,动态标识数据已发送的长度;结束指针,动态标识数据结束的位置,以实现数据传输缓冲区的数据依接收顺序进行放置和发送。
8.如权利要求7所述的安全接入数据传输方法,其特征在于,步骤2)还包括以下步骤21)数据传输缓冲区为空时,进行初始状态设置,开始指针、偏移指针以及结束指针指向数据传输缓冲区的开始位置;22)数据传输缓冲区接收数据时,结束指针移至所有数据长度尾部。
9.如权利要求8所述的安全接入数据传输方法,其特征在于,步骤3)还包括以下步骤31)数据传输缓冲区发送数据时,偏移指针标识已发送数据的长度;32)每次数据发送成功后,开始指针移至偏移指针的位置。33)根据任务的切换,重复步骤22)、31)、32),直至全部数据依次发送完成后,返回步骤21)。
10.如权利要求6至9任意一项所述的安全接入数据传输方法,其特征在于,该方法还包括在所要发送数据超过数据传输缓冲区剩余空间时,将数据传输缓冲区空间扩充一倍;当全部数据发送完成时,数据传输缓冲区恢复到原来大小。
11.如权利要求9所述的安全接入数据传输方法,其特征在于,开始指针超过数据传输缓冲区一半时,且要发送数据小于数据传输缓冲区的剩余空间时,暂存的数据移至数据传输缓冲区开始位置。
全文摘要
一种安全接入数据传输系统及方法,其中传输系统包括若干任务;数据传输缓冲区,暂存各个任务发送的数据,且各个任务共用一个数据传输缓冲区;控制模块,控制数据传输缓冲区中数据的传输状态;套接口,接收数据传输缓冲区的数据并发送出去,且将数据传输状态通知控制模块;其中,数据传输缓冲区的数据依接收顺序进行放置和发送而套接口在发送数据时不区分数据边界。相应地,该传输方法包括以下步骤各个任务向同一个数据传输缓冲区发送数据;数据传输缓冲区依接收顺序暂存数据;控制模块控制数据传输缓冲区中的数据向对应的套接口顺序发送;套接口接收数据传输缓冲区的数据并不区分数据边界将数据发送出去,且将数据的传输状态通知控制模块。
文档编号H04L29/02GK1592186SQ0315615
公开日2005年3月9日 申请日期2003年8月29日 优先权日2003年8月29日
发明者金宏志, 杨银柱, 白涛, 韩崎 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1