一种通信链路安全加固方法与流程

文档序号:19835679发布日期:2020-02-04 12:59阅读:651来源:国知局
一种通信链路安全加固方法与流程

本发明涉及安全通信技术领域,特别涉及一种通信链路安全加固方法。



背景技术:

随着物联网时代的到来,通信需求更是无处不在无时不有。智能抄表,无人售卖,工业互联网,各行各业,万事万物都提出了连接上网的需求,数据传输的安全就变得非常重要。但是目前在已经部署的物联网/互联网系统中,还有相当一部分数据直接以明文的形式在网络上传输,这些系统必须对数据通信链路进行安全加固,才能保证应用终端之间端到端数据传输的安全。

在目前的网络安全设备中,能保证端到端数据通信链路的设备是vpn(virtualprivatenetwork)设备。即在公用网络上建立专用网络,进行加密通讯。如图1所示,网络通信的发起方接收方通过vpn设备建立起安全传输隧道,对通信双方交互的明文信息进行加密传输,保证数据在网络上传输的安全。

但是直接将vpn设备的应用到物联网系统中存在一些困难。首先在两端的应用终端发起数据通信之前,两端的vpn设备需要先建立安全传输隧道,这要求其中一台vpn设备需要预先了解且能够直接访问到另一台vpn设备,这就给部署和运维带来了很大的不变,比如若网络环境发生了变化,作为vpn设备的ip地址发生了改变,则两台vpn设备之间的安全传输隧道就会中断,且无法自动恢复。第二,虽然建立vpn的协议有很多,如ipsec、ssl等,但是vpn设备本身通常是网络层的设备,直接将其挂载到应用终端之前,势必导致网络拓扑的变化,甚至使得应用终端无法被访问。第三,vpn设备使用基于非对称密码机制的密钥协商算法,无法应付潜在的量子计算的威胁,不是量子安全的。



技术实现要素:

本发明目的在于提供一种通信链路安全加固方法,以解决现有技术中在链路通信中,vpn设备之间的安全传输隧道易中断,且无法自动恢复;网络拓扑的变化,使得应用终端无法被访问。第三,vpn设备使用基于非对称密码机制的密钥协商算法,无法应付潜在的量子计算的威胁的技术性缺陷。

本发明的技术方案是这样实现的:

一种通信链路安全加固方法,包括链路加固系统,所述链路加固系统包括安全服务器以及透明加密设备,安全服务器负责为透明加密设备提供密钥管理和加密规则管理,透明加密设备串接在应用设备之前,按照指定的规则对流经的数据进行加密或者解密,透明加密设备接入网络后,首先向安全服务器注册,获取公共密钥和流量加密规则,所述加固方法包括以下步骤:

a)设备注册:在透明加密设备接入网络后,利用预先配置的信息向安全服务器发起连接,预先配置的信息包括安全服务器的ip地址或者域名、端口号、设备标识号、认证密钥、通信密钥及设备当前的ip地址,认证密钥和通信密钥由安全服务器生成,并注入到透明加密设备中,认证密钥用于透明加密设备与安全服务器之间的相互认证,通信密钥用于透明加密设备与安全服务器之间的数据通信。

透明加密设备完成注册后,会继续保持与安全服务器的连接,通过该连接,安全服务器可周期探查该透明加密设备的状态,向其更新公共密钥,下发加密规则;

b)对端发现:确定网络会话中对端的透明加密设备;

c)密钥管理:在对端发现完成之后,接收方的透明加密设备就知道发送方透明加密设备的设备标识号和会话标识号,接收方的透明加密设备将这两个信息和本身的设备标识号、会话标识号告知安全服务器,请求安全服务器分发会话密钥,安全服务器生成会话密钥连同会话标识号一起分发给对应的透明加密终端,透明加密终端收到这些会话密钥之后,即可使用这些会话密钥加密对应的网络会话;

d)规则管理:安全服务器提供规则管理功能,运维人员添加/删除/更改相关加密规则之后,安全服务器将这些规则通过安全连接下发给所有或者指定的透明加密终端,透明加密终端收到这些规则管理的指令之后,根据指令内容更新自己的规则库;

e)网络数据加密:透明加密终端根据加密规则对流经的网络数据包进行加密,但只对传输层以上的数据进行加密和认证,加密和认证的算法由加密规则指定,加密密钥优先使用会话密钥,在没有会话密钥的情况下,使用公共密钥进行加密。

优选地,所述加密规则采用六元组表示,传输层协议采用tcp或者udp其中一种,源/目的ip地址段采用ip地址和子网掩码的形式来表示,源/目的端口号范围采用起始端口号、结束端口号来表示,透明加密设备根据安全服务器下发的加密规则,对流经的网络数据包进行检查,将符合规则的网络数据包按照规则指定的算法进行加密。在与对端的透明加密设备协商出会话密钥之前,本地的透明加密设备采用系统的公共密钥对数据包进行加密,之后再使用会话密钥进行加密,保证会话周期内所有数据的传输安全。

优选地,所述b)对端发现步骤中,将网络会话的相关信息也一并告知对端采用会话ip包头部的某些标识字段来携带设备标识号进行。

优选地,所述e)网络数据加密步骤中,向加密后的网络数据包中插入了一个加密头部,以指示对应的加密信息。

与现有技术相比,本发明有以下有益效果:

本发明的通信链路安全加固方法,提出了一种即插即用的通信链路安全加固系统,工作在数据链路层,不会影响已有网络的拓扑,能够自动发现通信对端的数据加密设备,并与之建立安全隧道,系统采用对称密码机制,可应付潜在的量子计算的威胁,保证系统是量子安全的。

附图说明

图1为现有技术中基于vpn的安全传输示意图;

图2为本发明中通信链路安全加固系统组成与拓扑图;

图3为本发明透明加密设备的实际部署结构图;

图4为本发明ip头部图示;

图5为本发明网络数据包的加密内容图示;

图6为本发明加密头部格式图示;

图7为本发明数据包的检查和解密流程图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明进行清楚、完整地描述。

本发明的一种通信链路安全加固方法,包括链路加固系统,所述链路加固系统包括安全服务器以及透明加密设备,安全服务器负责为透明加密设备提供密钥管理和加密规则管理,透明加密设备串接在应用设备之前,按照指定的规则对流经的数据进行加密或者解密,透明加密设备接入网络后,首先向安全服务器注册,获取公共密钥和流量加密规则,所述加固方法包括以下步骤:

a)设备注册:在透明加密设备接入网络后,利用预先配置的信息向安全服务器发起连接,预先配置的信息包括安全服务器的ip地址或者域名、端口号、设备标识号、认证密钥、通信密钥及设备当前的ip地址,认证密钥和通信密钥由安全服务器生成,并注入到透明加密设备中,认证密钥用于透明加密设备与安全服务器之间的相互认证,通信密钥用于透明加密设备与安全服务器之间的数据通信。

透明加密设备完成注册后,会继续保持与安全服务器的连接,通过该连接,安全服务器可周期探查该透明加密设备的状态,向其更新公共密钥,下发加密规则;

b)对端发现:确定网络会话中对端的透明加密设备;

c)密钥管理:在对端发现完成之后,接收方的透明加密设备就知道发送方透明加密设备的设备标识号和会话标识号,接收方的透明加密设备将这两个信息和本身的设备标识号、会话标识号告知安全服务器,请求安全服务器分发会话密钥,安全服务器生成会话密钥连同会话标识号一起分发给对应的透明加密终端,透明加密终端收到这些会话密钥之后,即可使用这些会话密钥加密对应的网络会话;

d)规则管理:安全服务器提供规则管理功能,运维人员添加/删除/更改相关加密规则之后,安全服务器将这些规则通过安全连接下发给所有或者指定的透明加密终端,透明加密终端收到这些规则管理的指令之后,根据指令内容更新自己的规则库;

e)网络数据加密:透明加密终端根据加密规则对流经的网络数据包进行加密,但只对传输层以上的数据进行加密和认证,加密和认证的算法由加密规则指定,加密密钥优先使用会话密钥,在没有会话密钥的情况下,使用公共密钥进行加密。

所述加密规则采用六元组表示,传输层协议采用tcp或者udp其中一种,源/目的ip地址段采用ip地址和子网掩码的形式来表示,源/目的端口号范围采用起始端口号、结束端口号来表示,透明加密设备根据安全服务器下发的加密规则,对流经的网络数据包进行检查,将符合规则的网络数据包按照规则指定的算法进行加密。在与对端的透明加密设备协商出会话密钥之前,本地的透明加密设备采用系统的公共密钥对数据包进行加密,之后再使用会话密钥进行加密,保证会话周期内所有数据的传输安全。

所述b)对端发现步骤中,将网络会话的相关信息也一并告知对端采用会话ip包头部的某些标识字段来携带设备标识号进行。

所述e)网络数据加密步骤中,向加密后的网络数据包中插入了一个加密头部,以指示对应的加密信息。

具体实施例:

如图2所示,本系统由安全服务器和透明加密设备组成。安全服务器独立部署在系统中,需要有固定的ip地址,且要保证其能够别透明加密设备访问,安全服务器负责为透明加密设备提供密钥管理和加密规则管理等功能。透明加密设备串接在应用终端、应用服务器等应用设备之前,按照指定的规则对流经的数据进行加密或者解密,保证数据在公共网络上传输的安全。作为网络设备,透明加密设备工作在数据链路层,不会影响应用网络的拓扑结构。

透明加密设备接入网络后,首先向安全服务器注册,获取公共密钥和流量加密规则。公共密钥是一串固定长度的数字,由安全服务器随机生成且周期更换,用于加密流经应用终端的网络数据包。透明加密设备对流经的ip包的加密是基于网络会话而进行的,不同的会话采用不同的加密密钥,网络会话根据ip包中的(传输层协议、源ip地址,源端口号、目的ip地址、目的端口号)五元组来识别,不同五元组表示不同的网络会话。流量加密规则指定了哪些网络会话应该被加密,采用何种算法加密。在本实施例中,加密规则采用六元组(传输层协议、源ip地址段,源端口号范围、目的ip地址段、目的端口号范围、加密和认证算法)表示。传输层协议有两种:tcp或者udp。源/目的ip地址段采用ip地址和子网掩码的形式来表示,比如192.168.1.1/32表示主机地址192.168.1.1,192.168.1.1/24表示从192.168.1.1到192.168.1.255范围内的所有ip地址,特别的,子网掩码0表示所有的ip地址。源/目的端口号范围采用(起始端口号,结束端口号)来表示。透明加密设备根据安全服务器下发的规则,对流经的网络数据包进行检查,将符合规则的网络数据包按照规则指定的算法进行加密。在与对端的透明加密设备协商出会话密钥之前,本地的透明加密设备采用系统的公共密钥对数据包进行加密,之后再使用会话密钥进行加密,保证会话周期内所有数据的传输安全。

以下详细解释设备注册、对端透明加密设备发现、密钥管理、规则管理和网络数据包加密的过程,表1为本系统中使用的密钥种类和说明。

表1

1.1设备注册

在透明加密设备接入网络后,它会利用预先配置的信息向安全服务器发起连接,预先配置的信息包括安全服务器的ip地址或者域名、端口号、设备标识号、认证密钥、通信密钥及设备当前的ip地址等数据。认证密钥和通信密钥是一串固定长度的随机数字,由安全服务器生成,并通过某种安全的方式(如优盘拷贝,串口写入等)注入到透明加密设备中。认证密钥用于透明加密设备与安全服务器之间的相互认证,认证算法可采用冲激响应算法、scram(saltedchallengeresponseauthenticationmechanism)等基于预置密码的认证算法。通信密钥用于透明加密设备与安全服务器之间的数据通信。

透明加密设备完成注册后,会继续保持与安全服务器的连接,通过该连接,安全服务器可周期探查该透明加密设备的状态,向其更新公共密钥,下发加密规则。

1.2对端发现

对端发现的目的是确定网络会话中对端的透明加密设备。直接通过标识网络会话的五元组(输层协议、源ip地址,源端口号、目的ip地址、目的端口号)来确定对端设备信息通常是不可行的,比如处在同一个网络会话中的两个透明加密终端都将其观测到的网络会话五元组上报安全服务器,由安全服务器进行匹配再分别告知它们,但当透明加密设备和应用终端处在有防火墙保护的局域网的时候,这是不可行的,因为此时两个透明加密设备所观测的网络会话五元组信息是不同的。图3给出了一个示例,当应用终端a向应用终端b发起网络会话时,防火墙a和b会分别对应用终端a发出的ip包做snat和dnat操作,这样透明加密设备a和透明加密设备b通过该ip包看到的是不同的网络会话。

实现对端发现功能的最简单的方法就是直接告知通信对端自己的设备标识号和会话标识号。因为本系统的加密是基于网络会话的,所以需要将网络会话的相关信息也一并告知对端。实现的方式有两种:一是利用会话ip包头部的某些字段,二是直接伪造ip包。直接伪造ip包的方式在某些情况下可能会导致对端发现功能失败或者网络会话的失败,比如防火墙识别出了伪造的ip包而丢弃,或者对端没有透明加密设备。所以比较可行的方法是ip包头部的某些字段来携带设备标识号。

我们使用ip头部的标识字段来携带设备标识号。如图4所示,ip头部的标识字段长度为16比特,在ip包被分片时,用于指示哪些分片属于同一个被拆开的ip包。由于分片操作会影响路由器的转发性能,所以部分路由器选择直接丢弃过大的ip包,而不是将其分片后再转发,所以实际上ip头部的标识字段基本上不会被使用。对于没有分片的ip包,设置其头部的标识字段不会给网络会话造成任何影响。

由于ip头部的标识字段只有16比特,而设备标识号通常是4个字节或者更长,所以需要将设备标识号分成若干个部分,再使用多个ip包来分别携带它们。考虑到中间的网络设备也可能会使用ip头部的标识字段来携带一些信息,为了将网络标识号与其它信息区分开来,我们将ip头部的标识字段分成两个部分来使用,一个部分写入固定的数值,用于表示该标识字段携带有部分设备标识号及其属于设备标识号的哪个部分,另一部分携带设备标识号的某个部分。这里我们使用ip头部标识字段的第一个字节携带固定数值,第二个字节携带设备标识号中一个字节的信息,这样对于长度为n个字节的设备标识号和长度为m个字节的会话标识号,至少需要使用n+m个ip包来携带完整的设备标识号和会话标识号。具体的步骤如下:

(1)系统预先选定n个长度为8比特的随机数,记为r1,r2,…,rn、rn+1,rn+2,…,rn+m,用于指示设备标识号的n个部分和会话标识号的m个部分,r1,r2,…,rn、rn+1,rn+2,…,rn+m各不相同;

(2)发送方的透明加密设备将其设备标识号sdid分成n个字节,分别用sdid1,sdid2,…,sdidn表示,然后将ri与sdidi串接在一起,记为ri|sdidi;将其会话标识号sess_id分成n个字节,分别用sess_id1,sess_id2,…,sess_idm表示,然后将rn+i与sess_idi串接在一起,记为rn+i|sess_idi;

(3)发送方的透明加密设备n个ri|sdidi和m个rn+i|sess_idi分别写入n+m个流经的指定网络会话的ip包的头部标识字段;

(4)接收方的透明加密设备检查流入的每个ip包头部的标识字段,将其第一个字节与r1,r2,…,rn、rn+1,rn+2,…,rn+m分别进行较,提取出全部的之后sdid1,sdid1,…,sdidn和sess_id1,sess_id2,…,sess_idm之后,再恢复出sdid和sess_id,实现对端透明加密设备的发现。

1.3密钥管理

表1介绍了本系统使用了四种不同类型的密钥:认证密钥、通信密钥、公共密钥和会话密钥。其中认证密钥和通信密钥是在透明加密设备部署之前预置其中的,分别用于透明加密设备身份的认证和透明加密设备与安全服务器之间的数据通信,认证密钥和通信密钥不会在线更新。会话密钥是两个透明加密设备协商的用于加密某个网络会话的密钥。公共密钥是系统中所有透明加密设备共享的密钥,由安全服务器分发并定时更新,在两个透明加密设备没有协商出会话密钥之前,透明加密设备使用公共密钥加密网络会话。

在对端发现完成之后,接收方的透明加密设备就知道发送方透明加密设备的设备标识号和会话标识号,接收方的透明加密设备将这两个信息和自己的设备标识号、会话标识号告知安全服务器,请求安全服务器分发会话密钥。安全服务器生成会话密钥连同会话标识号一起分发给相关的透明加密终端。透明加密终端收到这些密钥之后,即可使用这些密钥加密相应的网络会话。安全服务器可以为透明加密终端定时更新会话密钥,更新的间隔可以自行配置。

1.4规则管理

安全服务器提供规则管理功能,当运维人员添加/删除/更改相关加密规则之后,安全服务器会将这些规则通过安全连接下发给所有或者指定的透明加密终端。透明加密终端收到这些规则管理的指令之后,根据指令内容更新自己的规则库。

1.5网络数据加密

透明加密终端根据加密规则对流经的网络数据包进行加密,但只对传输层以上(不包括传输层)的数据进行加密和认证,加密和认证的算法由加密规则指定,加密密钥优先使用会话密钥,在没有会话密钥的情况下,使用公共密钥进行加密。如图5所示,为了方便对端透明加密设备的解密,我们向加密后的网络数据包中插入了一个加密头部,以指示相关的加密信息。

加密头部的格式如图6所示,包括版本号、加密头部标识、加密数据长度、密钥id等字段。加密头部标识长度12比特,内容为固定值,本系统设定为0xcde,这样对端的透明加密设备一个网络包之后,可以根据这个字段的值来判断该网络包是否有可能是一个加密的数据包。版本号长度4比特,用于指示加密头部的格式,本系统设定为1。加密数据长度表示加密后的tcp/udp数据长度,以字节为单位。加密和认证算法字段长度1字节,指示该数据包的加密和认证算法;密钥id长度3字节,指示用于加密该数据包的密钥信息。

需要注意的是,对tcp/udp数据进行加密和认证后,数据的长度会增加,再加上加密头部的长度,加密后的网络包的长度会大于原始网络包的长度,甚至会超过路径的mtu,从而导致传输失败。为了避免这种情况,透明加密设备在对网络包进行加密之前,会先对超过指定长度(本系统设定为1200字节)的网络包分片,分片的方法按照标准的ip包分片规则进行,然后再对分片后的网络包进行加密。

对端的透明加密设备收到加密的数据之后,首先检查该网络包是否一个加密包,如果是,再从加密头部中读取密钥id信息,根据密钥id找出相应的会话密钥或者公共密钥,对加密的内容进行加密和认证,恢复出原始的内容,再转发给后面的应用终端。具体检查和解密的步骤如图7所示。

综合本发明的实施例可知,本发明的通信链路安全加固方法,提出了一种即插即用的通信链路安全加固系统,工作在数据链路层,不会影响已有网络的拓扑,能够自动发现通信对端的数据加密设备,并与之建立安全隧道,系统采用对称密码机制,可应付潜在的量子计算的威胁,保证系统是量子安全的。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1