一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

基于用户态协议栈实现数据安全可靠传输的方法及系统与流程

2022-03-04 22:57:49 来源:中国专利 TAG:


1.本发明属于网络安全技术领域,特别涉及一种基于用户态协议栈实现数据安全可靠传输的方法及系统。


背景技术:

2.自互联网诞生以来,网络协议栈和内核的关系向来紧密,内核作为操作系统的控制者,他会负责很多关键的操作,并且随着时间的发展,内核协议栈的功能、性能和稳定性都一直在提高。随着互联网技术的发展,人们利用集群、分布式等方式进行优化,将网络的业务能力不断提高,但是同样的,内核作为一个管理者,却不适宜对外提供业务服务,也不适合占用资源,不管怎么开发都存在面对单点性能瓶颈的问题。由此引发人们对于用户态协议栈的思考,让内核可以更好的专注于系统调用,而其他的复杂处理全部移到用户态进行处理,开发更加自由。
3.目前,大部分的用户态协议栈多关注于协议栈的高并发,高数据传输性能方面。例如:在申请公布号cn110278161,申请日期为2019.09.24,基于用户态协议栈对不同数据包进行相应的分流处理,从而提升对应用服务的性能;在申请公布号cn104951357a,申请日期为2015.09.30,多关注于数据转发过程中负载均衡和故障恢复;又如,刊登在电信科学期刊(2019年05期)的文章“高性能网络协议栈兼容性研究”,则关注于网络协议栈的兼容性问题,通过解决兼容性问题,提高网络转发性能。上述方案,均是在安全性方面多依靠于下层网络协议来提供,在用户态未进行安全性的考虑。


技术实现要素:

4.为此,本发明提供一种基于用户态协议栈实现数据安全可靠传输的方法及系统,通过在用户态协议栈中集成安全通信协议,在满足数据传输过程中可靠性、可用性需求的同时,为高性能数据转发过程提供安全性的保护。
5.按照本发明所提供的设计方案,一种基于用户态协议栈实现数据安全可靠传输的方法,包含:
6.在用户态协议栈中通过设置调用函数来封装用于对应用服务请求数据包进行加密认证及分片处理的安全通信协议;
7.针对应用服务请求,创建接口数据调用函数;利用该接口数据调用函数与对应用户态协议栈中调用函数进行关联,将应用服务数据包发送至用户态协议栈进行处理;
8.用户态协议栈依据关联的调用函数对接收到的应用服务报文进行入栈和出栈数据包处理,并将处理后的数据包转发至用户态协议栈对应的应用服务,其中,入栈和出栈数据包处理至少包含数据包认证、分片重组、加解密及封装和解封装处理。
9.作为本发明基于用户态协议栈实现数据安全可靠传输的方法,进一步地,安全通信协议至少包含:用于为通信实体双方提供协商共享密钥参数服务的认证与密钥交换协议,用于为通信实体双方提供数据包认证、加密封装和解除封装服务的传输安全协议,用于
为通信实体双方提供在密钥更新周期内更新密钥服务的密钥更新协议,用于为通信实体双方提供数据分片重组服务的数据传输协议,用于为通信实体双方提供数据分片重组及超时重传确认服务的可靠数据传输协议,用于为通信实体双方提供计算报文往返时间服务的rtt测量协议,及用于为通信实体双方提供通信链路连接异常检查服务的心跳协议,且安全通信协议中每个协议对应一个调用函数,其中,密钥更新协议和认证与密钥交换协议的调用函数均与传输安全协议、数据传输协议及可靠数据传输协议三者的调用函数中相关联,以提供数据传输过程中校验认证和加解密过程中的密钥和加解密参数,rtt测量协议通过调用函数为可靠数据传输协议提供超时重传确认服务延时参考,心跳协议通过调用函数为可靠数据传输协议提供通信链路状态。
10.作为本发明基于用户态协议栈实现数据安全可靠传输的方法,进一步地,传输安全协议包含:为通信实体双方提供源认证服务和抗重放攻击服务的包安全认证协议spa,及通过采用加密和验证机制为通信实体双方数据包提供数据机密性和完整性服务的封装安全载荷协议esp。
11.作为本发明基于用户态协议栈实现数据安全可靠传输的方法,进一步地,所述安全通信协议还包含:用于为通信实体双方提供传输异常报警服务的告警协议,及用于为通信实体双方提供数据传输流量控制服务的流量控制协议,在通信实体双方之间的信道两端通过告警协议和流量控制协议的调用函数来对数据传输异常和流量进行监控。
12.作为本发明基于用户态协议栈实现数据安全可靠传输的方法,进一步地,所述用户态协议栈依据iso 7498中osi模型对链路层、网络层、传输层、会话层、表示层及应用层中的协议进行封装。
13.作为本发明基于用户态协议栈实现数据安全可靠传输的方法,进一步地,在数据传输转发过程中,所述用户态协议栈位于上层负载协议和下层承载协议之间,同时用户态协议栈对上层负载协议屏蔽掉下层承载协议,其中,上层负载协议为封装应用数据和网络层且用于承担用户态协议栈载荷部分的协议,下层承载协议为处理用户态协议承载业务数据包的协议。
14.作为本发明基于用户态协议栈实现数据安全可靠传输的方法,进一步地,用户态协议栈对数据包进行出栈处理中,首先,根据通信实体双方之间出栈数据包中的安全关联标识查找通信连接中的安全关联,若查找到安全关联,则依据通信安全性要求通过调用函数提取用户态协议栈安全通信协议中的数据传输协议或可靠数据传输协议对出栈数据包进行分片,并利用用户态协议栈安全通信协议中传输安全协议对分片处理后的出栈数据包添加头部认证和密码封装处理;若未查找到安全关联,则丢弃数据包;其中,安全关联标识包含源标识和目的标识。
15.作为本发明基于用户态协议栈实现数据安全可靠传输的方法,进一步地,依据通信安全性要求通过调用函数提取用户态协议栈安全通信协议中的可靠数据传输协议对出栈数据包进行分片和超时重传确认处理,然后再对分片处理后的出栈数据包添加认证头部和密码封装处理,其中,超时重传确认处理包含:入栈接收到出栈发出的数据包时,向出栈端发送确认包,若出栈端在预设时间长度内未收到确认包,则重传出栈发出的数据包。
16.作为本发明基于用户态协议栈实现数据安全可靠传输的方法,进一步地,用户态协议栈进行入栈处理中,首先,根据通信实体双方之间入栈数据包中安全关联标识查找通
信连接中的安全关联,若查找到安全关联,则利用用户态协议栈安全通信协议中传输安全协议对出栈端发来的入栈数据包进行协议栈处理,提取出栈端添加的认证头部进行认证并解除密码封装,并依据入栈数据包数据传输类型,通过调用函数提取用户态协议栈安全通信协议中的数据传输协议对入栈数据包进行分片重组,并转交至相应的应用服务。
17.进一步地,本发明还提供一种基于用户态协议栈实现数据安全可靠传输的系统,包含:协议设置模块、数据处理模块和数据传输模块,其中,
18.协议设置模块,用于在用户态协议栈中通过设置调用函数来封装用于对应用服务请求数据包进行加密认证及分片处理的安全通信协议;
19.数据处理模块,用于针对应用服务请求,创建接口数据调用函数;利用该接口数据调用函数与对应用户态协议栈中调用函数进行关联,将应用服务数据包发送至用户态协议栈进行处理;
20.数据传输模块,用于用户态协议栈依据关联的调用函数对接收到的应用服务报文进行入栈和出栈数据包处理,并将处理后的数据包转发至用户态协议栈对应的应用服务,其中,入栈和出栈数据包处理至少包含数据包认证、分片重组、加解密及封装和解封装处理。
21.本发明的有益效果:
22.本发明在用户态协议栈通过集成多种安全通信协议,在满足数据传输过程中可靠性、可用性需求的同时,为高性能数据转发过程提供安全性保护;可通过数据安全传输协议、数据可靠传输协议等9种协议的组合方式,除了能形成和内核tcp/ip协议同态的用户态协议栈,还能分层提供数据转发过程中的安全性保护,能够支持虚拟局域网和虚拟广义网的构建,具有较好的应用前景。
附图说明:
23.图1为实施例中基于用户态协议栈实现数据安全可靠传输的方法流程示意;
24.图2为实施例中用户态协议栈示意;
25.图3为实施例中用户态协议栈工作模型示意;
26.图4为实施例中基于用户态协议栈进行数据转发的流程示意;
27.图5为实施例中超时重传时间计算公式示意。
具体实施方式:
28.为使本发明的目的、技术方案和优点更加清楚、明白,下面结合附图和技术方案对本发明作进一步详细的说明。
29.本发明实施例,提供一种基于用户态协议栈实现数据安全可靠传输的方法,包含:
30.s101、在用户态协议栈中通过设置调用函数来封装用于对应用服务请求数据包进行加密认证及分片处理的安全通信协议;
31.s102、针对应用服务请求,创建接口数据调用函数;利用该接口数据调用函数与对应用户态协议栈中调用函数进行关联,将应用服务数据包发送至用户态协议栈进行处理;
32.s103、用户态协议栈依据关联的调用函数对接收到的应用服务报文进行入栈和出栈数据包处理,并将处理后的数据包转发至用户态协议栈对应的应用服务,其中,入栈和出
栈数据包处理至少包含数据包认证、分片重组、加解密及封装和解封装处理。
33.该用户态协议栈在实际传输网络及其具体承载协议之上构建一个抽象的服务层,为数据传输提供安全传输机制和安全服务。本案方案中,通过用户态协议栈集成安全通信协议,实现通过使用认证加密机制来提供网络安全性,其中,认证加密机制可包括通信机密性和完整性保护、访问控制机制、流量填充机制和源认证,以及抗重放攻击和抗拒绝服务攻击。同时考虑到网络边界访问的安全性,提供了端口隐藏、基于认证的防火墙功能和nat(网络地址转换)机制。在满足数据传输过程中可靠性、可用性需求的同时,为高性能数据转发过程提供安全性的保护。
34.作为本发明基于用户态协议栈实现数据安全可靠传输的方法,进一步地,安全通信协议至少包含:用于为通信实体双方提供协商共享密钥参数服务的认证与密钥交换协议,用于为通信实体双方提供数据包认证、加密封装和解除封装服务的传输安全协议,用于为通信实体双方提供在密钥更新周期内更新密钥服务的密钥更新协议,用于为通信实体双方提供数据分片重组服务的数据传输协议,用于为通信实体双方提供数据分片重组及超时重传确认服务的可靠数据传输协议,用于为通信实体双方提供计算报文往返时间服务的rtt测量协议,及用于为通信实体双方提供通信链路连接异常检查服务的心跳协议,且安全通信协议中每个协议对应一个调用函数,其中,密钥更新协议和认证与密钥交换协议的调用函数均与传输安全协议、数据传输协议及可靠数据传输协议三者的调用函数中相关联,以提供数据传输过程中校验认证和加解密过程中的密钥和加解密参数,rtt测量协议通过调用函数为可靠数据传输协议提供超时重传确认服务延时参考,心跳协议通过调用函数为可靠数据传输协议提供通信链路状态。进一步地,传输安全协议包含:为通信实体双方提供源认证服务和抗重放攻击服务的包安全认证协议spa,及通过采用加密和验证机制为通信实体双方数据包提供数据机密性和完整性服务的封装安全载荷协议esp。进一步地,所述安全通信协议还包含:用于为通信实体双方提供传输异常报警服务的告警协议,及用于为通信实体双方提供数据传输流量控制服务的流量控制协议,在通信实体双方之间的信道两端通过告警协议和流量控制协议的调用函数来对数据传输异常和流量进行监控。
35.用户态协议栈可依据7498-2进行网络通信安全性架构,能够实现其中的认证、访问控制、保密性、完整性四大安全服务,及其中的数据加密、数字签名、访问控制、数据完整性、认证交换、业务流填充六大安全机制。本案实施例中,用户态安全协议栈还可通过集成告警协议和流量控制协议来实现安全管理功能,可以对该安全协议栈协议执行过程中出现的异常问题进行反馈,并执行一些相应处理。
36.参见图2所示,认证与密钥更新协议用于协商产生通信两端设备之间安全关联的部分安全参数。该协议基于rfc8446,除了rfc8446规定的密码套件外,增加国密算法的密码套件;数字证书还可增加含有国密算法的数字证书。传输安全协议包含两个协议:包安全认证协议(spa)和包安全封装协议(esp)。spa协议为通信双方提供源认证服务和抗重放攻击服务。esp协议为通信双方提供信息的机密性和完整性。密钥更新协议即安全关联的工作密钥达到密钥更新周期时,用新密钥代替旧密钥,为网络数据安全传输协议提供密钥更新的能力。协议实现可以维护密钥生存期度量的一个副本,它们的值比实际生存期小一些。当工作密钥达到由这个副本规定的值时,启动密钥更新。数据传输协议为数据传输提供软件可定义的传输机制,主要功能由分片重组和重排序。其中数据分片重组主要为了防止数据经
过spa、esp等协议后,增加了数据的长度,避免数据在转发的过程中经过网卡分片后,接收端不能认证或解密数据,导致数据的丢失。可靠数据传输协议为数据传输信道提供可定义的安全可靠性,主要功能有分片重组、重排序、超时重传和确认机制。其中的分片重组、重排序功能与数据传输协议一致。超时重传和确认机制是接收端对发送端的每个数据包都使用确认机制,每收到一个数据包都返回一个确认数据包。但若接收端在规定的时间内没有收到数据报文,发送端便启动超时重传。rtt测量协议用于计算报文从发启端到接收端往返的时间,为其它协议提供rtt服务。心跳协议用来检查连接是否正常,判断通信双方是否正常连接,保证数据发送端和接收端可达。警告协议向对等端报告在安全传输过程中出现的一些报警信息。流量控制协议为数据传输过程提供软件可定义的流量控制,检测数据传输过程中的拥塞情况,根据拥塞情况发送端执行相应的流量控制。
37.作为本发明实施例中基于用户态协议栈实现数据安全可靠传输的方法,进一步地,所述用户态协议栈依据iso 7498中osi模型对链路层、网络层、传输层、会话层、表示层及应用层中的协议进行封装。进一步地,在数据传输转发过程中,所述用户态协议栈位于上层负载协议和下层承载协议之间,同时用户态协议栈对上层负载协议屏蔽掉下层承载协议,其中,上层负载协议为封装应用数据和网络层且用于承担用户态协议栈载荷部分的协议,下层承载协议为处理用户态协议承载业务数据包的协议。
38.参见图3所示的用户态协议栈工作模型,用户态协议栈位于上层负载协议和下层承载协议之间。承载协议是指承载用户态协议数据的下层协议,负载协议是用户态协议的载荷部分。用户态协议栈对其负载协议进行基于密码的封装,同时对其上层的负载协议能够屏蔽承载层的承载协议。用户态协议栈的上层称为负载层,对于用户态协议栈来说,负载协议就是上层的应用数据加上需要封装的网络层协议部分,该网络层协议部分可以从osi网络模型的2-7层任意一层开始,来实现用户态协议栈可以依据iso 7498中的osi模型对第二层到第七层的协议实现封装。当使用该用户态协议栈的二层封装与数据转发时,可以作为二层交换协议,支持企业级虚拟局域网。当使用该用户态协议栈的三层封装与数据转发时,可以作为三层交换协议,支持企业级虚拟局域网。当使用该协议栈的三层或更高层封装与数据转发时,可以作为vpn网关协议,支持企业级虚拟广域网。比如,从网络层(第三层)开始封装,负载协议为:应用层数据 传输层头部 网络层头部。用户态协议栈使用过程中,用户态协议栈可由专门的应用程序调用,该应用程序把需要处理的负载层数据交由用户态协议栈处理,用户态协议栈处理完成后,交由应用程序调用其它功能模块进行后续的承载层协议封装。例如:负载层协议是用户的应用层http请求数据,经过用户态协议栈处理后,这块数据仍然可以看作是一个应用层http请求数据,只不过经过了加密,认证,分片等一系列用户态协议栈处理,之后交由其它功能模块添加承载层协议部分,比如交换机模块添加四层到二层的协议封装,然后交由网卡进行数据转发,依次完成用户态协议栈的高性能数据转发及可靠安全性传输。
39.用户态协议栈处理数据包的过程包括入栈处理和出栈处理。入栈协议数据包,或称为入栈数据包,是该协议栈接收到的来自下层的的载荷;出栈协议数据包,或称为出栈数据包,是该协议栈需要交给下层承载协议进一步转发的数据包。高性能数据转发的用户态协议栈工作流程主要分为入栈和出栈两个工作流程。入栈是协议栈接收到的来自下层承载协议的数据包进行处理的过程,出栈是协议栈交给下层承载协议进一步转发的数据包之前
的处理流程。首先通信的双方需要进行安全关联(sa)的过程,该过程主要用于建立并维持安全的通信连接。sa主要包含源标识和目的标识。
40.参见图4所示,从特定网卡接收到的数据,经过系统提供的接口抓取到用户态协议栈,经过用户态协议栈出栈处理后通过发送端网口进行转发,从接收端网口接收到的数据通过入栈的方式接受用户态协议栈的处理。
41.数据包出栈流程:用户态协议栈首先对出栈数据包查找sa,如果没有关联sa,则丢弃这个包;如果有,则继续进行后续的包处理过程。依据通信的安全性要求,选择使用数据传输协议还是可靠数据传输协议,这两个协议的区别在于一个是可靠的数据传输,一个不可靠,不可靠指不能保证数据包一定到达接收端,可靠的数据传输协议提供了数据包的确认和重传机制。在数据传输协议里主要对数据包进行分片和重组,该过程主要依据数据包的大小是否超过最大传输单元,如果超过,则进行相应分片并添加分片标识。还添加了发送流量填充报文功能,实现了7498-2的流量填充机制。进行安全传输协议的处理,先通过安全认证协议(spa)进行认证处理,添加认证头;之后通过封装协议(esp)进行密码处理与封装。
42.数据包的入栈流程:同样需要先找到sa,如果没有,拒绝该包入栈,如果有,则为数据包选择合适的入栈路径,之后接着进行后续包处理过程。进行安全传输协议的处理,先通过安全认证协议(spa)进行认证处理,之后通过封装协议(esp)继续进行密码处理并解除封装。依据数据包的数据传输类型,选择使用数据传输协议或者可靠数据传输协议进行处理。首先是判断是否是分片包,如果是则需要进行后续的数据包分片重组。如果是可靠的数据传输协议,则还需要发送数据包确认报文;如果发送端长时间未收到确认报文,还会进行报文重传。数据完成封包处理后转交由网卡进行数据转发,传输。
43.对于出栈的数据包,根据通信的可靠性要求,选择性的使用可靠数据传输协议或者数据传输协议。这两个协议的共同点是都会对数据包进行分包处理,主要依据数据包的大小是否超过最大传输单元,超过则进行分片操作。可靠传输协议的可靠性主要体现在数据重传和确认。分片之后数据包就要进行加密和认证处理了,这个过程中用到了安全传输协议,主要通过安全认证协议(spa)添加认证头,封装协议(esp)进行密码处理与封装。
44.对于入栈的数据包,首先需要通过安全认证协议(spa)进行认证处理,之后通过封装协议(esp)进行密码处理解除封装。然后就是数据包的分片和重组过程,主要是使用可靠数据传输协议和数据传输协议,可靠数据传输协议在这里还会对每个收到的数据包发送确认报文,如果对端长时间未收到确认报文,会重之前发送的数据包。
45.用户态协议栈安全性:进行数据包认证,出栈过程中会通过安全认证(spa)协议添加认证部分功能,用于在入栈过程中对数据包进行认证处理,通过认证的数据包,才会进行后续处理。数据传输过程中通过安全传输协议中的包安全封装协议esp,进行加密处理和包完整性校验。加密、完整性校验和认证过程中用到的密钥和加密参数,均通过密钥更新协议进行更新。
46.用户态协议栈数据传输过程可靠性保护:可靠数据传输协议,除了能对数据包进行分片重组外,还提供了超时重传和确认机制,解决传输过程中的丢包问题。rtt测量协议为可靠数据传输协议服务,为数据包重传提供往返延时时间的参考。具体公式如图5所示,其中,rto为超时重传时间,rtt为测量协议测出的给定信道的往返时间。心跳协议为可靠数据传输协议服务,保证信道提供的通信链路可达。流量控制协议用于保证信道两端的收发
数据的速度匹配,避免因为收发数据速度不匹配造成的丢包问题产生。报警协议向对等端报告在安全传输过程中出现的一些报警信息。
47.进一步地,本发明实施例还提供一种基于用户态协议栈实现数据安全可靠传输的系统,包含:协议设置模块、数据处理模块和数据传输模块,其中,
48.协议设置模块,用于在用户态协议栈中通过设置调用函数来封装用于对应用服务请求数据包进行加密认证及分片处理的安全通信协议;
49.数据处理模块,用于针对应用服务请求,创建接口数据调用函数;利用该接口数据调用函数与对应用户态协议栈中调用函数进行关联,将应用服务数据包发送至用户态协议栈进行处理;
50.数据传输模块,用于用户态协议栈依据关联的调用函数对接收到的应用服务报文进行入栈和出栈数据包处理,并将处理后的数据包转发至用户态协议栈对应的应用服务,其中,入栈和出栈数据包处理至少包含数据包认证、分片重组、加解密及封装和解封装处理
51.除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对步骤、数字表达式和数值并不限制本发明的范围。
52.基于上述的方法和/或系统,本发明实施例还提供一种服务器,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现上述的方法。
53.基于上述的方法和/或系统,本发明实施例还提供一种计算机可读介质,其上存储有计算机程序,其中,该程序被处理器执行时实现上述的方法。
54.在这里示出和描述的所有示例中,任何具体值应被解释为仅仅是示例性的,而不是作为限制,因此,示例性实施例的其他示例可以具有不同的值。
55.应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
56.最后应说明的是:以上所述实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献