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

一种基于国产操作系统的网络安全终端装置及工作方法与流程

2022-02-20 23:40:15 来源:中国专利 TAG:


1.本发明公开一种基于国产操作系统的网络安全终端装置及工作方法,属于网络安全终端的技术领域。


背景技术:

2.随着internet技术的飞速发展,人们已逐渐把技术的焦点从网络的可用性、信息的获取性转移到网络的安全性与应用的简易性上来。对于工业安全升级改造控制终端数据的安全传输尤为重要,终端设备能融合现有比较成熟的vpn接入技术,当前建立在ip技术基础上的虚拟专用网vpn正快速成为新一代网络服务的基础,vpn是一项非常实用的技术在公网上提供安全数据传输隧道,即方便部署又保障了数据传输的安全性。特别是对于在轻量级的rtos下实现vpn终端接入vpn服务器的功能是亟待解决的问题。
3.rtos下没有实现vpn功能主要原因是需要对轻量级网络协议栈的改造,主要突破的技术点是构造虚拟网络tap\tun设备,使得数据在网络协议栈中二次流转,实现对用户数据的二次封装,主要是增加mac帧头和ip头。
4.vpn功能基于linux或者windows下实现,从技术角度来说开发难度小,但是对于运行以上两种系统的cpu会有比较高的要求,对于物联网终端类型的应用场景来说小的mcu运行rtos就能满足其要求。
5.rots下实现vpn功能需要依赖mbedtls提供数据的加解密功能,但是软加解密的性能比较低,本装置结合国产安全加解密芯片使用硬件加解密替换软加解密算法,可以大大提高vpn性能。
6.综上,怎样使用安全加密芯片对加密算法使用硬件加解密是本领域关注的技术方向,同时关注怎样改造现有的mbedtl的软算法,以提高了加解密的性能。


技术实现要素:

7.针对现有技术的不足,本发明公开一种基于国产操作系统的网络安全终端装置。
8.本发明还公开上述网络安全终端装置的工作方法。
9.技术术语解释:
10.1、rtos:是real time operating system的简称,实时操作系统(rtos)是指当外界事件或数据产生时,能够接受并以足够快的速度予以处理,其处理的结果又能在规定的时间之内来控制生产过程或对处理系统做出快速响应,调度一切可利用的资源完成实时任务,并控制所有实时任务协调一致运行的操作系统。
11.2、mbedtls:arm mbedtls使开发人员可以非常轻松地在嵌入式产品中加入加密和ssl/tls功能。它提供了具有直观的api和可读源代码的ssl库。该工具即开即用,可以在大部分系统上直接构建它,也可以手动选择和配置各项功能。
12.3、lwip:是瑞典计算机科学院(sics)的adam dunkels开发的一个小型开源的tcp/ip协议栈。在保持tcp协议主要功能的基础上减少对ram的占用。
13.4、t680芯片:是由方寸微电子设计的一款国产高端安全芯片,支持硬件加密算法如sm2,sm3,sm4,aes,sha1,rsa,ecc。
14.本发明详细的技术方案如下:
15.一种基于国产操作系统的网络安全终端装置,其特征在于,包括:外设接口、数据接收处理模块、mbedtls模块和lwip模块;
16.所述外设接口是连接外围设备的数据交换接口,可以通过网口,sdio,spi的其中一种形式或多种形式;
17.所述数据接收处理模块用于解析用户数据及命令,通过外设接口对接收的数据解析后对应发起vpn连接、断开命令或者将需要加密的明文数据发送给vpn服务单元;
18.所述mebdtls模块用于实现对网络数据的加解密处理,包括连接vpn服务认证过程数据处理,动态密钥交换密钥协商等涉及加解密动作的处理;所述mbedtls模块包括vpn服务单元和数据加解密单元;所述vpn服务单元用于管理链接建立或断开及链接目的地址的管理服务和数据处理策略服务;所述数据加解密单元通过ssl对数据进行加解密;
19.所述lwip模块包括tap模块和网卡模块,lwip协议栈作为rt-thread系统实现网络通信的重要组成部分,通过menuconfig配置后以更新使用;对于vpn功能实现的另外一个重要模块tap模块需要在现有的lwip基础上做修改,结合lwip模块增加tap模块,所述tap模块为虚拟的网卡设备,有虚拟的mac地址,在协议栈中tap设备就是一个网卡设备,这样可将数据发送之前根据路由规则先经过tap模块,由此vpn单元读取tap模块的数据即是一包完整的网络帧数据,再次通过vpn单元调用ssl_write接口实现了对网络帧数据的加密,同时ssl_write会再次将数据写入到lwip模块,报文经过一次tap模块封装再经过一次网卡封装之后就具备了两层帧头两层ip头了,这样从网卡e0出去的数据包含了两层网络头;
20.所述网络安全终端装置通过internet与vpn服务器端建立连接,从而安全访问vpn服务器端的业务服务器。
21.根据本发明优选的,所述网络安全终端装置采用基于方寸t680芯片,对于mbestls模块需要更改基础的软加解密算法适配t680所拥有的硬件算法;支持硬件加密算法如sm2,sm3,sm4,aes,sha1,rsa,ecc,以上加密算法的api已经在所述mbedtls模块中对相关软算法做替换,在加密套件为tls_ecdhe_ecdsa_with_aes_256_ccm时通信速率能达到10.14582316mb/s加密套件为ecc-sm4-sm3时能达到7.45264689mb/s;其中rt-thread系统运行在t680中包括lwip模块和mbedtls模块。
22.如上述网络安全终端装置的工作方法,其特征在于,包括:
23.1)所述vpn服务单元发起连接到vpn服务器端,目的ip为vpn网关ip;
24.2)所述vpn服务单元与vpn服务器端的vpn服务互相进行身份验证,凭证是第三方证书管理中心颁发的服务端证书和第三方证书管理中心颁发给客户端的终端装置证书;
25.3)身份验证成功后,再次通过ssl协商密钥并应用于后续ssl连接,所述vpn服务器端推送ip和路由表到网络安全终端装置,再由网络安全终端装置配置此ip到tap模块中,并添加路由信息到网络协议栈的路由信息存储区域;所述网络安全终端装置与vpn服务器端的业务服务器通过建立的ssl连接:使所述tap模块和所述业务服务器处于同一个虚拟局域网中。
26.根据本发明优选的,所述工作方法还包括:
27.4)用户数据经外设接口接收到外设数据,经数据接收处理模块转换成要发送的报文,报文通过socket接口发送到lwip模块,被所述tap模块和vpn服务单元封装成密文后发送到达所述vpn服务器端的网关;解密后即是经过tap封装的网络帧数据,再发送到业务服务器;所述网络帧数据包括外设接口接收的数据,即用户数据,比如123456,经过socket接口到协议栈之后是ip数据包,再经过tap模块封装之后就是网络帧了;
28.5)所述业务服务器发送回复数据时,所述vpn服务器端的网关接收到服务器的回复数据后,通过建立好的ssl连接将数据发送到网络安全终端装置;终端装置外网口inc e0接收经过lwip模块的网络层、传输层处理卸载掉第一层头部信息,通过vpn单元调用mbedtls模块相关函数解密后写到tap模块,tap模块继续向上一层传输,依次经过网络层、传输层、应用层,最后由数据接收处理模块将数据发到外设接口,其中发送数据和回复数据都是应用层数据;所述第一层头部信息包括mac头、ip头、tcp\udp头。
29.本发明的技术优点在于:
30.1、本发明针对传统的sslvpn终端只能在linux或windows系统下实现,对处理器的性能要求较高,普通mcu下目前没有实现方案的技术问题,推出基于国产操作系统rt-thrad实现了vpn终端接入功能,有效的降低了vpn功能对linux或者windows的依赖。本发明有效的解决了rtos上无法实现sslvpn功能的难题。
31.2、本发明符合gm0024sslvpn技术规范,基于国产操作系统rt-thread和mbedtls设计,改造lwip协议栈构造出tap模块从而实现网络包的二次封装,可以实现ip业务类型的vpn服务,改变现在只有基于mbedtl的ssl连接无法实现vpn服务的现状并且性能差的问题。
32.3、本发明采用国产算法的专用芯片加密,速度快、安全性高,支持加密套件:ecc-sm4-sm3,ecdhe-sm4-sm3,tls-rsa-with-aes-256-cbc-sha256。本发明搭载方寸t680芯片,支持硬件加密算法如sm2,sm3,sm4,aes,sha1,rsa,ecc。
附图说明
33.图1是本发明与vpn服务器端进行连接的硬件构架示意图;
34.图1-1是网络安全终端装置的模块连接示意图;
35.图2是报文的处理流程图;
36.图3是接收报文的流程图;
37.图4是发送报文的流程图。
具体实施方式
38.下面结合实施例和说明书附图对本发明做详细的说明,但不限于此。
39.实施例1、
40.如图1、1-1、2所示。一种基于国产操作系统的网络安全终端装置,包括:外设接口、数据接收处理模块、mbedtls模块和lwip模块;
41.所述外设接口是连接外围设备的数据交换接口,可以通过网口,sdio,spi的其中一种形式或多种形式;
42.所述数据接收处理模块用于解析用户数据及命令,通过外设接口对接收的数据解析后对应发起vpn连接、断开命令或者将需要加密的明文数据发送给vpn服务单元;
43.所述mebdtls模块用于实现对网络数据的加解密处理,包括连接vpn服务认证过程数据处理,动态密钥交换密钥协商等涉及加解密动作的处理;所述mbedtls模块包括vpn服务单元和数据加解密单元;所述vpn服务单元用于管理链接建立或断开及链接目的地址的管理服务和数据处理策略服务;所述数据加解密单元通过ssl对数据进行加解密;
44.所述lwip模块包括tap模块和网卡模块,lwip协议栈作为rt-thread系统实现网络通信的重要组成部分,通过menuconfig配置后以更新使用;对于vpn功能实现的另外一个重要模块tap模块需要在现有的lwip基础上做修改,结合lwip模块增加tap模块,所述tap模块为虚拟的网卡设备,有虚拟的mac地址,在协议栈中tap设备就是一个网卡设备,这样可将数据发送之前根据路由规则先经过tap模块,由此vpn单元读取tap模块的数据即是一包完整的网络帧数据,再次通过vpn单元调用ssl_write接口实现了对网络帧数据的加密,同时ssl_write会再次将数据写入到lwip模块,报文经过一次tap模块封装再经过一次网卡封装之后就具备了两层帧头两层ip头了,这样从网卡e0出去的数据包含了两层网络头;
45.所述网络安全终端装置通过internet与vpn服务器端建立连接,从而安全访问vpn服务器端的业务服务器。
46.所述网络安全终端装置采用基于方寸t680芯片,对于mbestls模块需要更改基础的软加解密算法适配t680所拥有的硬件算法;支持硬件加密算法如sm2,sm3,sm4,aes,sha1,rsa,ecc,以上加密算法的api已经在所述mbedtls模块中对相关软算法做替换,在加密套件为tls_ecdhe_ecdsa_with_aes_256_ccm时通信速率能达到10.14582316mb/s加密套件为ecc-sm4-sm3时能达到7.45264689mb/s;其中rt-thread系统运行在t680中包括lwip模块和mbedtls模块。
47.实施例2、
48.如实施例1所述网络安全终端装置的工作方法,其特征在于,包括:
49.1)所述vpn服务单元发起连接到vpn服务器端,目的ip为vpn网关ip;
50.2)所述vpn服务单元与vpn服务器端的vpn服务互相进行身份验证,凭证是第三方证书管理中心颁发的服务端证书和第三方证书管理中心颁发给客户端的终端装置证书;
51.3)身份验证成功后,再次通过ssl协商密钥并应用于后续ssl连接,所述vpn服务器端推送ip和路由表到网络安全终端装置,再由网络安全终端装置配置此ip到tap模块中,并添加路由信息到网络协议栈的路由信息存储区域;所述网络安全终端装置与vpn服务器端的业务服务器通过建立的ssl连接:使所述tap模块和所述业务服务器处于同一个虚拟局域网中;
52.4)用户数据经外设接口接收到外设数据,经数据接收处理模块转换成要发送的报文,报文通过socket接口发送到lwip模块,被所述tap模块和vpn服务单元封装成密文后发送到达所述vpn服务器端的网关;解密后即是经过tap封装的网络帧数据,再发送到业务服务器;所述网络帧数据包括外设接口接收的数据,即用户数据,比如123456,经过socket接口到协议栈之后是ip数据包,再经过tap模块封装之后就是网络帧了;
53.5)所述业务服务器发送回复数据时,所述vpn服务器端的网关接收到服务器的回复数据后,通过建立好的ssl连接将数据发送到网络安全终端装置;终端装置外网口inc e0接收经过lwip模块的网络层、传输层处理卸载掉第一层头部信息,通过vpn单元调用mbedtls模块相关函数解密后写到tap模块,tap模块继续向上一层传输,依次经过网络层、
传输层、应用层,最后由数据接收处理模块将数据发到外设接口,其中发送数据和回复数据都是应用层数据;所述第一层头部信息包括mac头、ip头、tcp\udp头。
54.应用例、
55.下面结合具体应用场景对本发明及实施例做详细的说明:
56.如图2所示,是报文的处理流程:
57.用户数据由所述数据接收处理单元处理后交由app应用层;应用层调用socket接口将用户数据以报文的形式传到传输层(tcp\udp);传输层给报文添加tcp\udp头后称为数据段;数据段向下通过网络层,网络层给数据段添加ip头后称为网络包;网络包按照路由规则(iproute)到达虚拟网卡设备(tap模块),虚拟网卡设备给网络包添加mac头和校验和后称为网络帧;网络帧被vpn服务单元读取然后调用mbedtls模块的加密接口将数据加密成为密文数据,vpn服务单元通过socket接口将密文数据以报文的形式传到传输层,经过网络层按照路由规则到达链路层即真实网卡(nic)将网络帧数据发送到互联网上。
58.另一端的真实网卡(nic)接收到vpn网络帧由链路层计算校验和无误后被继续向上层传输,网络包经过网络层卸载掉mac头成为网络包,网络包到达传输层卸载掉ip头后成为数据段,数据段被应用层的socket卸载掉tcp\udp头后成为报文,报文被vpn单元读取并调用mbedtls模块的解密接口解密成明文数据,明文数据此刻还是一个完整的网络帧,vpn服务单元将网络帧数据写入到虚拟网卡设备tap模块,网络帧数据依次经过网络层、传输层、到达应用层,应用层收到的数据就是报文。
59.如图3展示了接收vpn报文流程及对应的处理函数接口:
60.图3主要补充说明报文的流转过程使用到的lwip协议栈和mbedtls模块中的主要函数接口。真实网卡(nic)接收到到电信号后触发接收中断函数,网络帧数据由eth_rx线程接收,向上层通过网络层的ip4_input函数卸载掉mac头,由传输层的tcp\udp接收函数卸载掉ip头由socket_recv卸载掉tcp\udp头,由ssl_read解密,此时得到的是带mac头和ip头的一帧数据,需要vpn服务单元初步判断经过卸载和解密之后是否还是完整的网络包:
61.如果不是,则直接抛弃掉;
62.如果完整则通过rt_mb_send消息邮箱的通知eth_rx再次接收处理网络帧数据,再次卸载操作;
63.最后应用层socket接收函数recvfrom接收的数据即是报文数据。
64.如图4展示了发送vpn报文流程及对应的处理函数接口:
65.应用层的报文数据通过socket接口的sendto发送,经过传输层、网络层和链路层的封装加头处理,在链路层通过虚拟网卡设备(tap模块)的eth_tun_dev_tx函数将封装后的网络帧数据通过vpn服务单元的ssl_write接口加密并再次通过sendto函数发送到lwip网络协议栈处理,经过传输层、网络层和链路层的封包操作后调用eth_dev_tx函数由真实网卡(nic)发送到互联网。
再多了解一些

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

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

相关文献