一种基于IPSec的通信方法、装置、设备和储存介质与流程

文档序号:16926366发布日期:2019-02-22 19:54阅读:203来源:国知局
一种基于IPSec的通信方法、装置、设备和储存介质与流程

本发明实施例涉及互联网技术,尤其涉及一种基于ipsec的通信方法、装置、设备和储存介质。



背景技术:

internet协议安全性(internetprotocolsecurity,ipsec)是一系列协议规范的集合,由安全联盟(securityassociation,sa)、安全协议(包括验证头(authenticationheader,ah)、封装安全载荷(encapsulatesecuritypayload,esp)、网络密钥交换协议(internetkeyexchange,ike)以及认证和加密算法构成一个完整的安全体。该安全体的核心在于运用了安全策略并通过密码算法对数据进行加密保护。

然而由于ipsec采用sa对数据包进行保护,每个sa都要指配一个唯一的安全参数索引(securityparameterindex,spi)。如果攻击者采用侧信道等攻击手段攻击了sa,那么就可使用spi对数据包进行关联,从而访问整个网络。而且随着攻击设备和攻击方法的不断提升,使得攻击者直接对数据通路进行分析也成为可能。



技术实现要素:

本发明实施例提供一种基于ipsec的通信方法、装置、设备和储存介质,以实现提高网络通信的安全性和可靠性。

第一方面,本发明实施例提供了一种基于ipsec的通信方法,包括:

在通信设备之间建立伪安全联盟和加密安全联盟;

根据预设随机数据,生成伪数据流;

根据所述预设随机数据,对通信数据进行加密,生成加密数据流;其中,所述伪数据流和所述加密数据流之间存在用于还原所述通信数据的预设逻辑关系;

使用所述伪安全联盟传输所述伪数据流,使用所述加密安全联盟传输所述加密数据流;

根据所述伪数据流和所述加密数据流,基于所述预设逻辑关系,确定所述通信数据。

第二方面,本发明实施例还提供了一种基于ipsec的通信装置,包括:

安全联盟建立模块,用于在通信设备之间建立伪安全联盟和加密安全联盟;

伪数据流生成模块,用于根据预设随机数据,生成伪数据流;

加密数据流生成模块,用于根据所述预设随机数据,对通信数据进行加密,生成加密数据流;其中,所述伪数据流和所述加密数据流之间存在用于还原所述通信数据的预设逻辑关系;

数据流传输模块,用于使用所述伪安全联盟传输所述伪数据流,使用所述加密安全联盟传输所述加密数据流;

通信数据确定模块,用于根据所述伪数据流和所述加密数据流,基于所述预设逻辑关系,确定通信数据。

第三方面,本发明实施例还提供了一种设备,所述设备包括:

一个或多个处理器;

存储器,用于存储一个或多个程序,

当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如本发明任意实施例所提供的基于ipsec的通信方法。

第四方面,本发明实施例还提供了一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行本发明任意实施例所提供的基于ipsec的通信方法。

本发明通过对安全联盟进行加扰保护,解决安全联盟受到攻击后通信数据被截获的问题,实现提高网络通信的安全性和可靠性的效果。

附图说明

图1是本发明实施例一中的一种基于ipsec的通信方法的流程图;

图2是本发明实施例二中的一种基于ipsec的通信方法的流程图;

图3是本发明实施例三中的一种基于ipsec的通信方法的流程图;

图4是本发明实施例三中的现有技术的ipsec体系示意图;

图5是本发明实施例三中的ipsec体系示意图;

图6是本发明实施例四中的一种基于ipsec的通信装置的结构示意图;

图7是本发明实施例五中的一种设备的结构示意图。

具体实施方式

下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。

实施例一

图1为本发明实施例一提供的一种基于ipsec的通信方法的流程图,本实施例可适用于网络中的设备基于ipsec通信情况,该方法可以由基于ipsec的通信装置来执行,该装置可以由软件和/或硬件来实现,具体包括如下步骤:

步骤110、在通信设备之间建立伪安全联盟和加密安全联盟。

其中,在ike协议中生成安全联盟相关数据,包括spi、密码算法、密钥以及密钥的有效存在时间等数据。在生成安全联盟时,可以生成两个安全联盟,一个为用于传输伪数据流的伪安全联盟,一个为用于传输加密数据流的加密安全联盟。

步骤120、根据预设随机数据,生成伪数据流。

步骤130、根据预设随机数据,对通信数据进行加密,生成加密数据流。

其中,伪数据流是随机生成的,其内容为随机数模块生成的预设随机数据。加密数据流是通信数据与随机数模块生成的预设随机数据进行逻辑运算生成的,也就是加扰的通信数据。伪数据流和加密数据流之间存在用于还原通信数据的预设逻辑关系。在通信设备之间进行数据传输时,就有两路通信数据,即伪数据流和加密数据流,根据伪数据流和加密数据流,以及两者之间的预设逻辑关系,便可以还原通信数据,也就是通信数据传输前的加扰过程与接收到通信数据后的还原过程互为逆过程。如果攻击者截获了其中一路数据,攻击者无法得到真实的通信数据,而且,攻击者也难以预料到还存在另一数据通路;即便攻击者截获了两路数据,攻击者也不清楚两路数据的关系,同样无法获取到真实的通信数据。可选的,伪数据流和加密数据流之间存在的逻辑关系为逻辑异或。也就是通过将伪数据流和加密数据流进行逻辑异或运算,可以得到原本的通信数据。可以理解的是,步骤120和步骤130的执行顺序不做限定,亦可同步进行。

步骤140、使用伪安全联盟传输伪数据流,使用加密安全联盟传输加密数据流。

步骤150、根据伪数据流和加密数据流,基于预设逻辑关系,确定通信数据。

其中,在获取到伪数据流和加密数据流之后,根据伪数据流和加密数据流之间的预设逻辑关系,可以得到原本的通信数据,也就是预先确定如何进行加扰得到加扰后的通信数据,再据此将加扰后的通信数据,还原为原本的通信数据。例如,伪数据流和加密数据流之间存在的逻辑关系为逻辑异或,将伪数据流中的数据和加密数据流中的数据进行异或运算,就可以得到通信数据。伪数据流记为r,加密数据流记为a,原本的通信数据记为u,则存在r^a=u。这样就使得在使用ipsec进行通信时由原来的一个sa变成了两个sa,在数据通信时需要同时使用这两个sa对数据进行保护。

本实施例的技术方案,通过对安全联盟传输的数据进行加扰保护,使得攻击者无法直接截获真实的通信数据,且攻击者无法根据截获的加扰的通信数据得到真实的通信数据,实现提高网络通信的安全性和可靠性的效果。

实施例二

图2为本发明实施例二提供的一种基于ipsec的通信方法的流程图,本实施例的技术方案在上述技术方案的基础上进一步细化,该方法包括:

步骤210、在通信设备之间建立至少一个伪安全联盟和至少一个加密安全联盟。

其中,在通信设备之间可以建立两个安全联盟,其中一个为伪安全联盟,另一个为加密安全联盟。也可以在通信设备之间建立多个安全联盟,包括多个并行的伪安全联盟和一个加密安全联盟,也就是说可以多个伪安全联盟和一个加密安全联盟构建一个安全体。还可以在通信设备之间建立多个安全联盟,包括一个伪安全联盟和多个并行的加密安全联盟,也就是说可以一个伪安全联盟和多个加密安全联盟构建一个安全体。

步骤220、将伪数据流分割成第一预设数量的子伪数据流。

步骤230、使用至少一个伪安全联盟传输子伪数据流。

其中,可以将伪数据流分割成多个子伪数据流,使用建立的至少一个伪安全联盟传输这些子伪数据流。如果仅建立了一个伪安全联盟,则使用该伪安全联盟传输所有的子伪数据流;如果建立了多个伪安全联盟,则使用至少部分伪安全联盟传输这些子伪数据流,并且,不同的子伪数据流可以使用相同的伪安全联盟传输,也可以使用不同的伪安全联盟传输。建立多个伪安全联盟,可以对攻击者进行扰乱,如果攻击者攻击了其中一个伪安全联盟,攻击者也不能通过窃听点访问进而其他子伪数据流,即便攻击者攻击了所有伪安全联盟,也不能确定各子伪数据流之间的关联,这样既能增加攻击者获取数据流的难度,也给攻击者造成了扰乱。当然,除了上述将伪数据流分割为第一预设数量的子伪数据流,也可以不对伪数据流进行分割,使用至少一个伪安全联盟传输伪数据流。

步骤240、将加密数据流分割成第二预设数量的子加密数据流。

步骤250、使用至少一个加密安全联盟传输子加密数据流。

其中,可以将加密数据流分割成多个子加密数据流,使用建立的至少一个加密安全联盟传输这些子加密数据流。如果仅建立了一个加密安全联盟,则使用该加密安全联盟传输所有的子加密数据流;如果建立了多个加密安全联盟,则使用至少部分加密安全联盟传输这些子加密数据流,并且,不同的子加密数据流可以使用相同的加密安全联盟传输,也可以使用不同的加密安全联盟传输。与建立多个伪安全联盟类似,建立多个加密安全联盟,既能增加攻击者获取数据流的难度,也给攻击者造成了扰乱。当然,除了上述将加密数据流分割为第二预设数量的子加密数据流,也可以不对加密数据流进行分割,使用至少一个加密安全联盟传输加密数据流。

步骤260、将子伪数据流合并为伪数据流,将子加密数据流合并为加密数据流。

其中,当采用将伪数据流和加密数据流分割后进行传输的方式时,将子伪数据流合并为伪数据流,将子加密数据流合并为加密数据流,以备基于预设逻辑关系确定通信数据流。

步骤270、根据伪数据流和加密数据流,基于预设逻辑关系,确定通信数据。

本实施例的技术方案,在通信时采用伪数据流和加密数据流分别进行传输的基础上,如进一步将伪数据流和/或加密数据流进行分割再传输,然后还原得到完整的通信数据,既能加大攻击者的攻击难度,还能给攻击者造成扰乱,从而提高网络通信的安全性。

实施例三

图3为本发明实施例三提供的一种基于ipsec的通信方法的流程图,本实施例的技术方案在上述技术方案的基础上进一步细化,该方法包括:

步骤310、在通信设备之间建立伪安全联盟和加密安全联盟。

步骤320、将伪安全联盟和加密安全联盟按照预设加密方式处理后,存储至安全联盟库。

其中,对于通信量比较大的系统,可能需要构建安全联盟库,即需要建立多个安全联盟的系统。因为安全联盟是存储在一张表中,按照顺序进行存储,其安全性相对较低。可以在将生成的伪安全联盟和加密安全联盟存入安全联盟库时,对伪安全联盟和加密安全联盟进行加扰操作和/或乱序操作,使得存储在安全联盟库中的安全联盟没有规律。

步骤330、当需要使用伪安全联盟和加密安全联盟时,基于预设加密方式,将伪安全联盟和加密安全联盟从安全联盟库中解密并提取。

其中,在使用安全联盟库中存储的安全联盟时,根据之前的预设加密方式,将伪安全联盟和加密安全联盟从安全联盟库中解密并提取,这样调度安全联盟,以保证使用安全联盟的正确性。

步骤340、根据预设随机数据,生成伪数据流。

步骤350、根据预设随机数据,对通信数据进行加密,生成加密数据流。

步骤360、使用伪安全联盟传输伪数据流,使用加密安全联盟传输加密数据流。

步骤370、根据伪数据流和加密数据流,基于预设逻辑关系,确定通信数据。

可选的,同时为了能够抵抗攻击者对数据加密通路的侧信道攻击,在ipsec协议实现中,可进一步应用具有抗侧信道攻击(例如能量分析攻击、电磁分析攻击、故障攻击等攻击方式)的高安全密码算法(包括但不限于国密算法sm1、sm4,以及国际算法aes、des、3des等),高安全验证算法(包括但不限于国密算法sm3,以及国际算法hmac、sha、md5等)和高安全密钥交换协议算法(包括但不限于国密sm2,以及国际ecc、rsa等),参见附图4和图5。即在ipsec协议中加入高安全密码算法库,在使用ipsec协议进行通信时,对于有高安全应用需求的场景在创建安全联盟时可配置高安全加密算法以提高系统的安全性能。高安全密码算法以及高安全验证算法需要随机数为其提供必要的安全辅助,例如高安全密码算法在设计实现中可能用到掩码,以及其它随机操作等。这就使得攻击者即使通过专用的攻击设备获取了数据传输过程时的能量信息也不能成功实施侧信道攻击。从而有效的保护了数据传输的安全性。对于有高安全应用需求的通信网络可以提供有力的安全保障。

实施例四

图6为本发明实施例四提供的一种基于ipsec的通信装置的结构示意图,该装置包括:

安全联盟建立模块610,用于在通信设备之间建立伪安全联盟和加密安全联盟;

伪数据流生成模块620,用于根据预设随机数据,生成伪数据流;

加密数据流生成模块630,用于根据预设随机数据,对通信数据进行加密,生成加密数据流;其中,伪数据流和加密数据流之间存在用于还原通信数据的预设逻辑关系;

数据流传输模块640,用于使用伪安全联盟传输伪数据流,使用加密安全联盟传输加密数据流;

通信数据确定模块650,用于根据伪数据流和加密数据流,基于预设逻辑关系,确定通信数据。

本实施例的技术方案,通过对安全联盟进行加扰保护,解决安全联盟受到攻击后通信数据被截获的问题,实现提高网络通信的安全性和可靠性的效果。

可选的,安全联盟建立模块610,具体用于:

根据预设随机数据,在通信设备之间建立至少一个伪安全联盟和至少一个加密安全联盟。

可选的,数据流传输模块640,具体用于:

将所述伪数据流分割成第一预设数量的子伪数据流;

使用至少一个伪安全联盟传输所述子伪数据流;

将所述加密数据流分割成第二预设数量的子加密数据流;

使用至少一个加密安全联盟传输所述子加密数据流。

可选的,基于ipsec的通信装置,还包括:

数据流合并模块,用于在根据伪数据流和加密数据流,基于预设逻辑关系,确定通信数据之前,将子伪数据流合并为伪数据流,将子加密数据流合并为加密数据流。

可选的,所述预设逻辑关系包括逻辑异或。通信数据确定模块650,具体用于:

将所述伪数据流中的数据和所述加密数据流中的数据进行异或运算,得到所述通信数据。

可选的,基于ipsec的通信装置,还包括:

安全联盟存储模块,用于在所述根据预设随机数据,在通信设备之间建立伪安全联盟和加密安全联盟之后,将所述伪安全联盟和所述加密安全联盟按照预设加密方式处理后,存储至安全联盟库;

安全联盟提取模块,用于当需要使用所述伪安全联盟和所述加密安全联盟时,基于所述预设加密方式,将所述伪安全联盟和所述加密安全联盟从所述安全联盟库中解密并提取。

可选的,安全联盟存储模块,具体用于:

将所述伪安全联盟和所述加密安全联盟进行加扰操作和/或乱序操作后,存储至安全联盟库。

本发明实施例所提供的基于ipsec的通信装置可执行本发明任意实施例所提供的基于ipsec的通信方法,具备执行方法相应的功能模块和有益效果。

实施例五

图7为本发明实施例五提供的一种设备的结构示意图,如图7所示,该设备包括处理器710、存储器720、输入装置730和输出装置740;设备中处理器710的数量可以是一个或多个,图7中以一个处理器710为例;设备中的处理器710、存储器720、输入装置730和输出装置740可以通过总线或其他方式连接,图7中以通过总线连接为例。

存储器720作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明实施例中的基于ipsec的通信方法对应的程序指令/模块(例如,基于ipsec的通信装置中的安全联盟建立模块610、数据流传输模块620和通信数据流确定模块630)。处理器710通过运行存储在存储器720中的软件程序、指令以及模块,从而执行设备的各种功能应用以及数据处理,即实现上述的基于ipsec的通信方法。

存储器720可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端的使用所创建的数据等。此外,存储器720可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器720可进一步包括相对于处理器710远程设置的存储器,这些远程存储器可以通过网络连接至设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

输入装置730可用于接收输入的数字或字符信息,以及产生与设备/的用户设置以及功能控制有关的键信号输入。输出装置740可包括显示屏等显示设备。

实施例六

本发明实施例六还提供一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行一种基于ipsec的通信方法,该方法包括:

在通信设备之间建立伪安全联盟和加密安全联盟;

根据预设随机数据,生成伪数据流;

根据所述预设随机数据,对通信数据进行加密,生成加密数据流;其中,所述伪数据流和所述加密数据流之间存在用于还原所述通信数据的预设逻辑关系;

使用所述伪安全联盟传输所述伪数据流,使用所述加密安全联盟传输所述加密数据流;

根据所述伪数据流和所述加密数据流,基于所述预设逻辑关系,确定所述通信数据。

当然,本发明实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的方法操作,还可以执行本发明任意实施例所提供的ipsec的通信方法中的相关操作。

通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,软件实现优点是方便实现,硬件实现的优点是安全性更强。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、闪存(flash)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。

值得注意的是,上述ipsec的通信装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。

注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

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