掌桥专利:专业的专利平台
掌桥专利
首页

一种解密和加密的方法及装置

文献发布时间:2024-04-18 19:58:30


一种解密和加密的方法及装置

技术领域

本申请涉及网络通信领域,尤其涉及一种解密和加密的方法及装置。

背景技术

目前,为了解决广域网面临的更优网络弹性、更高性能需求等一系列挑战,提出了一种应用驱动广域网AD-WAN(Application-driven Wide Area Network)分支解决方案。

上述AD-WAN组网中的ADWAN报文是一种非标准协议报文,为了安全性,一般会进行互联网安全协议IPSec(Internet ProtocolSecurity)封装保护。

然而,当前传统的IPSec封装加/解密流程步骤复杂,耗时大,性能不高。

发明内容

有鉴于此,本申请提供一种解密和加密的方法及装置,以实现IPSec封装加/解密全流程性能的提高。

在本申请的第一方面,提供一种解密方法,该方法应用于网络设备,所述网络设备至少包括:加解密引擎Inline Engine、交换芯片和CPU,包括:

通过所述交换芯片接收本设备与对端设备之间的隧道转发的报文,若确定需要对所述报文携带的待解密数据进行解密,则在所述报文上增加第一交换头并重定向至所述Inline Engine;所述第一交换头至少携带本设备接收到所述报文的入接口信息;

通过所述Inline Engine解析出所述报文携带的未被加密的报文特征信息以及所述报文携带的未被加密的封装安全载荷ESP字段中的安全参数索引SPI信息,从已获得的第一安全联盟SA表项信息中得到与所述报文特征信息和所述SPI信息匹配的SA表项,利用所述SA表项中的解密算法和解密密钥对所述待解密数据进行解密,得到第一明文;通过所述Inline Engine将所述第一明文和所述入接口信息发送至所述交换芯片,以通过所述交换芯片转发至所述CPU;

通过所述CPU按照所述入接口信息对所述第一明文进行对应的数据处理,并对处理结果进行转发。

在本申请的第二方面,提供一种加密方法,该方法应用于网络设备,所述网络设备至少包括:加解密引擎Inline Engine、交换芯片和CPU,包括:

通过CPU接收需要加密的原始报文,基于用于传输所述原始报文的隧道对所述原始报文进行封装,得到第三封装报文,将所述第三封装报文发送至所述交换芯片,以通过所述交换芯片转发至所述Inline Engine;所述第三封装报文至少携带隧道头、报文特征信息字段、所述隧道对应的封装安全载荷ESP字段和逻辑头FPGA-OUT;所述FPGA-OUT携带安全联盟SA表项索引,所述SA表项索引是由所述CPU基于所述ESP字段中的安全参数索引SPI信息,从已获得的的第二安全联盟SA表项信息中得到的SA表项的索引;

通过所述Inline Engine接收所述第三封装报文,基于所述第三封装报文携带的逻辑头FPGA-OUT中的SA表项索引从已获得的第二安全联盟SA表项信息中得到与所述SA索引匹配的SA表项,利用所述SA表项中的加密算法和加密密钥对所述第三封装报文携带的待加密数据进行加密并向所述交换芯片转发,以由所述交换芯片通过所述隧道转发密文,所述待加密数据至少包括所述原始报文。

在本申请的第三方面,提供一种解密装置,该装置应用于网络设备,所述网络设备至少包括:加解密引擎Inline Engine、交换芯片和CPU,包括:

接收单元,用于通过所述交换芯片接收本设备与对端设备之间的隧道转发的报文,若确定需要对所述报文携带的待解密数据进行解密,则在所述报文上增加第一交换头并重定向至所述Inline Engine;所述第一交换头至少携带本设备接收到所述报文的入接口信息;

解密单元,通过所述Inline Engine解析出所述报文携带的未被加密的报文特征信息以及所述报文携带的未被加密的封装安全载荷ESP字段中的安全参数索引SPI信息,从已获得的第一安全联盟SA表项信息中得到与所述报文特征信息和所述SPI信息匹配的SA表项,利用所述SA表项中的解密算法和解密密钥对所述待解密数据进行解密,得到第一明文;通过所述Inline Engine将所述第一明文和所述入接口信息发送至所述交换芯片,以通过所述交换芯片转发至所述CPU;

处理单元,用于通过所述CPU按照所述入接口信息对所述第一明文进行对应的数据处理,并对处理结果进行转发。

在本申请的第四方面,提供一种加密装置,该装置应用于网络设备,所述网络设备至少包括:加解密引擎Inline Engine、交换芯片和CPU,包括:

接收处理单元,用于通过CPU接收需要加密的原始报文,基于用于传输所述原始报文的隧道对所述原始报文进行封装,得到第三封装报文,将所述第三封装报文发送至所述交换芯片,以通过所述交换芯片转发至所述Inline Engine;所述第三封装报文至少携带隧道头、报文特征信息字段、所述隧道对应的封装安全载荷ESP字段和逻辑头FPGA-OUT;所述FPGA-OUT携带安全联盟SA表项索引,所述SA表项索引是由所述CPU基于所述ESP字段中的安全参数索引SPI信息,从已获得的的第二安全联盟SA表项信息中得到的SA表项的索引;

加密单元,用于通过所述Inline Engine接收所述第三封装报文,基于所述第三封装报文携带的逻辑头FPGA-OUT中的SA表项索引从已获得的第二安全联盟SA表项信息中得到与所述SA索引匹配的SA表项,利用所述SA表项中的加密算法和加密密钥对所述第三封装报文携带的待加密数据进行加密并向所述交换芯片转发,以由所述交换芯片通过所述隧道转发密文,所述待加密数据至少包括所述原始报文。

在本申请的第五方面,提供一种电子设备,包括处理器和存储器,所述存储器存储有能够被所述处理器执行的机器可执行指令,所述处理器用于执行机器可执行指令,以实现第一至第二方面提供的任一方法。

在本申请的第六方面,提供一种机器可读存储介质,所述机器可读存储介质内存储有机器可执行指令,所述机器可执行指令被处理器执行时实现第一至第二方面提供的任一方法。

由以上技术方案可见,本申请将报文处理流程由互联网安全协议IPSec加/解密模式改进为Inline模式,即报文在传输过程中及时的加解密。在解密方法中,交换芯片确定待解密报文后,将该报文发送至Inline Engine,Inline Engine找到对应的SA表项并根据该SA表项中的解密算法和解密密钥对该待解密报文进行解密得到明文,通过Inline Engine将该明文发送至交换芯片,以由交换芯片转发至CPU,CPU对接收的明文继续处理和转发;在加密方法中,CPU确定待加密报文,找到该待加密报文对应的SA表项并将该SA表项的索引填充至待加密报文的逻辑头FPGA-OUT,Inline Engine接收并解析待加密报文,依据逻辑头FPGA-OUT携带的SA表项的索引找到对应的SA表项,并根据该SA表项中的加密算法和加密密钥对该待加密报文进行加密得到密文,通过Inline Engine将该密文发送至交换芯片,以由交换芯片通过隧道转发密文。以上技术方案使得IPSec封装加/解密流程不需要将报文重复送回CPU,明显提升IPSec封装加/解密流程的性能。

附图说明

图1是本申请实施例提供的一种解密方法流程图;

图2是本申请实施例提供的一种网络设备结构框图;

图3是本申请实施例提供的第一种报文格式示意图;

图4是本申请实施例提供的第二种报文格式示意图;

图5是本申请实施例提供的第三种报文格式示意图;

图6是本申请实施例提供的第四种报文格式示意图;

图7是本申请实施例提供的第五种报文格式示意图;

图8是本申请另一实施例提供的一种加密方法流程图;

图9是本申请另一实施例提供的一种网络设备结构框图;

图10是本申请另一实施例提供的第六种报文格式示意图;

图11是本申请另一实施例提供的第七种报文格式示意图;

图12是本申请另一实施例提供的第八种报文格式示意图;

图13是本申请实施例提供的一种解密装置示意图;

图14是本申请另一实施例提供的一种加密装置示意图;

图15是本申请实施例提供的一种电子设备的硬件结构示意图。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。

在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。

为了使本领域技术人员更好地理解本申请实施例提供的技术方案,并使本申请实施例的上述目的、特征和优点能够更加明显易懂,下面结合附图对本申请实施例中技术方案作进一步详细的说明。

在本申请的实施例中,为了实现报文的互联网安全协议IPSec(InternetProtocolSecurity)封装加/解密流程性能的提升,本实施例将传统IPSec封装加/解密流程改进为Inline模式,上述Inline模式即为报文在传输过程中及时的加/解密,不需要如传统IPSec封装加/解密流程那般,将报文重复送回CPU。

在本申请的实施例中,以网络架构为应用驱动广域网AD-WAN(Application-driven Wide Area Network)组网展开说明,上述AD-WAN组网中的ADWAN报文是一种非标准协议报文,为了安全性,需要进行IPSec封装加/解密保护。

参见图1,图1为本实施例提供的一种报文解密方法流程图,该方法应用于网络设备,上述网络设备至少包括:加解密引擎Inline Engine、交换芯片和CPU。

图2为本实施例提供的一种网络设备结构框图,该结构框图用于使本领域技术人员更好地理解本申请实施例提供的技术方案,并不用以限制本申请中Inline Engine、交换芯片和CPU之间的结构关系。

更为具体的是,上述Inline Engine可以是可编程的加/解密引擎或者任何可编程器件,如现场可编程逻辑门阵列FPGA(Field Programmable Gate Array)、复杂可编程逻辑器件CPLD(Complex Programmable logic device)等。在本实施例中,以上述InlineEngine为FPGA展开说明。

更为具体的是,CPU与交换芯片之间和FPGA与交换芯片之间,通过以太链路连接,CPU与FPGA之间通过控制链路连接;上述以太链路是数据传输链路,主要用于实际数据的传输和交换;上述控制链路属于控制平面的链路,用于网络设备管理和配置,传输网络设备配置信息。

更为具体的是,FPGA接收CPU预先下发的第一安全联盟SA(SecurityAssociation)表项信息。在上述AD-WAN组网建立之前,会进行传输隧道端点TTE(TransportTunnel Endpoint)连接的协商,在TTE连接协商阶段,CPU将网络管理员或开发人员预先配置的第一SA表项信息通过CPU与FPGA之间的控制链路提前下发给FPGA。

更为具体的是,上述第一SA表项信息为用于ADWAN报文解密的SA表项信息,上述第一SA表项信息存储有一个或多个SA表项,其中,任一SA表项存储有五元组信息、安全参数索引SPI(Security Parameter Index)信息以及对应的解密算法和解密密钥。

如图1所示,本申请实施例提供的一种报文解密方法可以包括以下步骤:

步骤101:通过所述交换芯片接收本设备与对端设备之间的隧道转发的报文,若确定需要对所述报文携带的待解密数据进行解密,则在所述报文上增加第一交换头并重定向至所述Inline Engine;所述第一交换头至少携带本设备接收到所述报文的入接口信息。

在本实施例中,交换芯片接收本设备与对端设备之间的隧道转发的报文。

更为具体的是,解密流程中,上述交换芯片的入接口为图2所示的WAN口,上述WAN口与至少一条隧道连接,任一隧道还与对端设备连接。上述交换芯片通过WAN口接收本设备与对端设备之间的隧道转发的报文,具体的报文传输方向如图2的201所示。上述隧道转发的报文可以是任意报文封装格式的报文,交换芯片对WAN口的收包不做区分。

在本实施例中,若确定需要对所述报文携带的待解密数据进行解密,则在所述报文上增加第一交换头并重定向至所述Inline Engine;所述第一交换头至少携带本设备接收到所述报文的入接口信息。

更为具体的是,交换芯片接收本设备与对端设备之间的隧道转发的报文后,需要确定上述报文携带的未被加密的目的端口号是否为本设备的端口号、且该端口号是否被标记了解密标签。其中,端口号的解密标签在上述TTE连接协商阶段由ADWAN业务提前配置。

当隧道转发的报文携带的未被加密的目的端口号为本设备的端口号、且该端口号被标记了解密标签,则确定需要对上述报文携带的待解密数据进行解密,上述报文的报文格式如图3所示,在图3中,以太网ETH(Ethernet)、IP、用户数据报协议UDP(User DatagramProtocol)、封装安全载荷ESP(Encapsulate Security Payload)和认证Auth(Authentication)为公有头明文,ADWAN、内层IP、数据和尾部Tail为公有头密文。基于图3所示的上述报文的报文格式,在下文的描述中将需要解密的本设备与对端设备之间的隧道转发的报文记为待解密ADWAN报文。

更为具体的是,交换芯片在确定待解密ADWAN报文后,在上述报文上增加第一交换头并重定向至FPGA,上述第一交换头携带待解密ADWAN报文进入交换芯片的入接口信息,如图2所示,上述入接口即为图2中的WAN口。第一交换头还携带上述报文从交换芯片传输到FPGA的出接口信息,如图2所示,上述出接口即为图2中的21口。上述第一交换头标识了待解密ADWAN报文在交换芯片内的传输路径,实现了交换芯片对报文识别引流,达到对数据流的精准处理。

在本实施例中,交换芯片在完成上述确定待解密ADWAN报文步骤和在待解密ADWAN报文上添加第一交换头步骤后,会将携带第一交换头的待解密ADWAN报文发送至FPGA,上述携带第一交换头的待解密ADWAN报文的报文格式如图4所示,具体的报文传输方向如图2中的202所示,由交换芯片的21口传输至FPGA的22口。

步骤102:通过所述Inline Engine解析出所述报文携带的未被加密的报文特征信息以及所述报文携带的未被加密的封装安全载荷ESP字段中的安全参数索引SPI信息,从已获得的第一安全联盟SA表项信息中得到与所述报文特征信息和所述SPI信息匹配的SA表项,利用所述SA表项中的解密算法和解密密钥对所述待解密数据进行解密,得到第一明文;通过所述Inline Engine将所述第一明文和所述入接口信息发送至所述交换芯片,以通过所述交换芯片转发至所述CPU。

在本实施例中,FPGA接收交换芯片传输过来的待解密ADWAN报文后,解析出上述报文携带的未被加密的报文特征信息以及上述报文携带的未被加密的ESP字段中的SPI信息,从已获得的第一SA表项信息中得到与上述报文特征信息和SPI信息匹配的SA表项。

更为具体的是,FPGA在接收待解密ADWAN报文后,解析该待解密ADWAN报文的ESP头,获取其ESP头携带的SPI信息。ESP头的长度是可变的,但其前8个字节是固定的,为SPI(4个字节)和序列号Sequence Number(4个字节),FPGA识别该待解密ADWAN报文的ESP头的前4个字节,获取其携带的SPI信息。

在获取上述待解密ADWAN报文携带的SPI信息后,FPGA在第一SA表项信息中寻找与该SPI信息一致的目标SPI信息,该目标SPI信息所在的SA表项即为匹配的SA表项。

在确定匹配的SA表项之后,FPGA还会对待解密ADWAN报文携带的未被加密的报文特征信息,即待解密ADWAN报文的外层五元组信息,进行校核。具体为,FPGA解析待解密ADWAN报文的外层五元组信息,并将上述外层五元组信息与第一目标SA表项存储的五元组信息进行校核。

当待解密ADWAN报文的外层五元组信息与第一目标SA表项存储的五元组信息一致时,FPGA会进行后续的解密步骤,即依据匹配的SA表项存储的解密算法和解密密钥对待解密ADWAN报文进行解密;

否则,FPGA不进行后续的解密步骤,以防止攻击报文对该解密流程的性能产生负面影响。

在本实施例中,FPGA利用所述SA表项中的解密算法和解密密钥对所述待解密数据进行解密,得到第一明文。

更为具体的是,FPGA利用匹配的SA表项中的解密算法和解密密钥对待解密ADWAN报文中的待解密数据进行解密后,再进行解封装处理,得到第一明文。上述第一明文的报文格式如图5所示,携带ADWAN头、内层IP地址和待传输数据。

在本实施例中,通过FPGA将所述第一明文和所述入接口信息发送至所述交换芯片,以通过所述交换芯片转发至所述CPU。

更为具体的是,FPGA会对上述第一明文进行封装得到第一封装报文,上述第一封装报文的报文格式如图6所示。具体的,上述第一封装报文是指被封装了FPGA与CPU协商的私有协议对应的私有以太头ETH1、逻辑头FPGA_IN以及第二交换头的第一明文;

其中,逻辑头FPGA-IN携带待解密ADWAN报文进入交换芯片的入接口信息,该入接口信息由FPGA在接收携带第一交换头的待解密ADWAN报文后,读取其第一交换头携带的待解密ADWAN报文进入交换芯片的入接口信息并添加到该逻辑头FPGA-IN中。依据上文的描述,上述待解密ADWAN报文进入交换芯片的入接口信息,如图2所示,入接口即为图2中的WAN口。

其中,私有以太头ETH1携带私有以太协议类型,该私有以太协议类型标识了私有以太协议,以使CPU依据该私有以太协议对上述第一封装报文进行解析。私有以太头本身的格式不受以太网协议规定,可用于在数据包中携带自定义信息和控制信息,私有以太协议类型是私有以太头的一个字段,在本实施例中,上述私有以太协议类型是非公知的,由FPGA与CPU协商确定。

其中,第二交换头携带上述第一封装报文进入交换芯片的入接口信息和第一封装报文从交换芯片传输到CPU的出接口信息。如图2所示,上述入接口为图2中的24口,上述出接口为图2中的25口。上述第二交换头标识了第一封装报文在交换芯片内的传输路径,实现了交换芯片对报文识别引流,达到对数据流的精准处理。

在本实施例中,FPGA会将第一封装报文发送给交换芯片,具体可以如图2中的203所示,上述第一封装报文由FPGA的23口传输至交换芯片的24口。

上述第二交换头是由FPGA给上述第一明文添加的。更为具体的是,在上述TTE连接协商阶段,CPU还会预先下发交换头的固定格式和报文进入CPU的入接口给FPGA,如图2所示,上述报文进入CPU的入接口为图2中的26口,由于交换芯片的25口与CPU的26口之间为物理连接,上述入接口26口也可等价于交换芯片的25口。FPGA在得到第一明文后,依据上述CPU预先下发的交换头的固定格式和报文进入CPU的入接口,给第一明文添加第二交换头,以使交换芯片依据第二交换头携带的进入CPU的入接口,将上述第一封装报文传输至CPU,如图2所示,上述第一封装报文的传输方向为如图2中的204,由交换芯片的25口传输至CPU的26口。

步骤103:通过所述CPU按照所述入接口信息对所述第一明文进行对应的数据处理,并对处理结果进行转发。

在本实施例中,CPU接收交换芯片传输上来的第一明文和入接口信息后,依据上述入接口信息对第一明文进行对应的数据处理。

更为具体的是,CPU接收交换芯片传输上来的被封装后的第一明文,即CPU接收交换芯片传输上来的第一封装报文,解析第一封装报文携带的私有以太头ETH1和逻辑头FPGA-IN,获得逻辑头FPGA-IN中携带的待解密ADWAN报文进入交换芯片的入接口信息,并依据上述入接口信息对第一封装报文进行对应的数据处理。

其中,CPU解析第一封装报文携带的私有以太头ETH1,具体为,CPU解析私有以太头ETH1携带的私有以太协议类型字段,获取FPGA与CPU协商的私有以太协议。CPU依据上述FPGA与CPU协商的私有以太协议,对逻辑头FPGA-IN进行解析,获取逻辑头FPGA-IN携带的上述入接口信息。

其中,入接口的接口类型可能是多样的,如三层的物理口、子接口或聚合口,CPU需要依据获取的上述入接口信息,在交换芯片上找到对应的入接口,依据入接口上被配置的处理函数对上述第一封装报文进行数据处理。

在本实施例中,CPU对上述数据处理的处理结果进行转发。

更为具体的是,CPU会对上述内层IP地址和上述数据处理的处理结果进行用于IP转发的封装,得到第二封装报文,并对第二封装报文进行转发。其中,上述进行用于IP转发的封装,具体为,对经过数据处理后的第一封装报文进行砍头操作,剥离逻辑头FPGA-IN、私有以太头ETH1和ADWAN报文格式的封装头,增加以太头ETH。上述第二封装报文的报文格式如图7所示。

至此,完成图1所示的解密流程。

在本实施例中,解密流程中,由交换芯片确定是否需要对报文携带的待解密数据进行解密,由FPGA找到对应的SA表项并依据该SA表项存储的解密算法和解密密钥对报文进行解密,使得CPU的部分解密任务由交换芯片和FPGA来实现,报文无需重复返回CPU,实现了IPSec封装解密流程性能的提升。

进一步的,在本实施例中,使用交换头来标识报文在交换芯片内的传输路径,以使交换芯片对报文识别引流,实现了对数据流的精准处理。

参见图8,图8为本申请另一实施例提供的一种报文加密方法流程图,该方法应用于网络设备,上述网络设备至少包括:加解密引擎Inline Engine、交换芯片和CPU。

图9为本申请另一实施例提供的一种网络设备结构框图,该结构框图用于使本领域技术人员更好地理解本申请实施例提供的技术方案,并不用以限制本申请中InlineEngine、交换芯片和CPU之间的结构关系。

更为具体的是,上述Inline Engine可以是可编程的加/解密引擎或者任何可编程器件,如现场可编程逻辑门阵列FPGA(Field Programmable Gate Array)、复杂可编程逻辑器件CPLD(Complex Programmable logic device)等。在另一实施例中,以上述InlineEngine为FPGA展开说明。

更为具体的是,CPU与交换芯片之间和FPGA与交换芯片之间,通过以太链路连接,CPU与FPGA之间通过控制链路连接;上述以太链路是数据传输链路,主要用于实际数据的传输和交换;上述控制链路属于控制平面的链路,用于网络设备管理和配置,传输网络设备配置信息。

更为具体的是,FPGA接收CPU预先下发的第二安全联盟SA(SecurityAssociation)表项信息。在上述AD-WAN组网建立之前,会进行传输隧道端点TTE(TransportTunnel Endpoint)连接的协商,在TTE连接协商阶段,CPU将网络管理员或开发人员预先配置的第二SA表项信息通过CPU与FPGA之间的控制链路提前下发给FPGA。

更为具体的是,上述第二SA表项信息为用于ADWAN报文加密的SA表项信息,第二SA表项信息存储有一个或多个SA表项,其中,任一SA表项存储有安全参数索引SPI(SecurityParameter Index)信息以及对应的加密算法和加密密钥。任一SA表项具有SA索引,上述SA索引为一个快速索引下标或地址,用于唯一标识SA表项,对不同SA表项实现区分和识别,依据SA索引可快速访问和检索相应的SA表项。

如图8所示,本申请另一实施例提供的一种报文加密方法可以包括以下步骤:

步骤801:通过CPU接收需要加密的原始报文,基于用于传输所述原始报文的隧道对所述原始报文进行封装,得到第三封装报文,将所述第三封装报文发送至所述交换芯片,以通过所述交换芯片转发至所述Inline Engine;所述第三封装报文至少携带隧道头、报文特征信息字段、所述隧道对应的封装安全载荷ESP字段和逻辑头FPGA-OUT;所述FPGA-OUT携带安全联盟SA表项索引,所述SA表项索引是由所述CPU基于所述ESP字段中的安全参数索引SPI信息,从已获得的的第二安全联盟SA表项信息中得到的SA表项的索引。

在另一实施例中,通过CPU接收需要加密的原始报文。

更为具体的是,需要加密的原始报文的报文格式如图10所示。

更为具体的是,交换芯片的LAN口接收到原始报文后,直接上传给CPU。具体为,如图9中的901所示,交换芯片的LAN口接收原始报文;如图9中的902所示,交换芯片接收原始报文后直接上送CPU,由交换芯片的91口传输至CPU的92口。

更为具体的是,CPU在接收到交换芯片上传的原始报文之后,在原始报文中确定出需要做加密的报文。

其中,CPU依据原始报文携带的目的IP在预配置的路由表中查找所述原始报文的传输路径;当上述传输路径经过如图9所示的交换芯片的WAN口到隧道,则所述原始报文为需要加密的原始报文。

在另一实施例中,CPU基于用于传输所述原始报文的隧道对所述原始报文进行封装,得到第三封装报文;所述第三封装报文至少携带隧道头、报文特征信息字段、所述隧道对应的封装安全载荷ESP字段和逻辑头FPGA-OUT;所述FPGA-OUT携带安全联盟SA表项索引,所述SA表项索引是由所述CPU基于所述ESP字段中的安全参数索引SPI信息,从已获得的的第二安全联盟SA表项信息中得到的SA表项的索引。

更为具体的是,上述第三封装报文的报文格式如图11所示,第三封装报文是指被封装了第三交换头、CPU与FPGA协商的私有协议对应的私有以太头ETH2、逻辑头FPGA-OUT、上述隧道的隧道头、报文特征信息字段(即外层五元组信息)、上述隧道对应的ESP头和ADWAN报文头的原始报文。

其中,上述第三交换头用于指示交换芯片向FPGA转发上述第三封装报文。上述第三交换头携带第三封装报文进入交换芯片的入接口信息,如图9所示,上述入接口即为图9中的94口;第三交换头还携带第三封装报文从交换芯片传输到FPGA的出接口信息,如图9所示,上述出接口即为图9中的95口。上述第三交换头标识了第三封装报文在交换芯片内的传输路径,实现了交换芯片对报文识别引流,达到对数据流的精准处理。

其中,上述私有以太头ETH2携带私有以太协议类型,该私有以太协议类型标识了私有以太协议,以使FPGA依据该私有以太协议对上述第三封装报文进行解析。私有以太头本身的格式不受以太网协议规定,可用于在数据包中携带自定义信息和控制信息,私有以太协议类型是私有以太头的一个字段,在本实施例中,上述私有以太协议类型是非公知的,由FPGA与CPU协商确定。

其中,上述逻辑头FPGA-OUT携带SA表项索引。该SA表项索引的获取过程,具体为:CPU解析上述第三封装报文的ESP头,获取该ESP头携带的SPI信息。ESP头的长度是可变的,但其前8个字节是固定的,为SPI(4个字节)和序列号Sequence Number(4个字节),CPU识别该ESP头的前4个字节,获取其携带的SPI信息。在获取上述SPI信息后,CPU在第二SA表项信息中寻找与该SPI信息一致的目标SPI信息,该目标SPI信息所在的SA表项即为匹配的SA表项。在找到匹配的SA表项后,CPU将匹配的SA表项的索引填充至逻辑头FPGA-OUT中。

其中,上述逻辑头FPGA-OUT还携带本网络设备上的上述隧道的出接口信息,如图9所示,上述出接口即为图9中的WAN口。

其中,上述ADWAN报文头为AD-WAN组网中的ADWAN报文封装格式的报文头。上述隧道对应的ESP头由CPU的IPSec模块给原始报文增加,上述外层五元组信息由CPU的转发模块给原始报文增加。

在另一实施例中,在完成上述步骤801后,CPU将上述第三封装报文发送至交换芯片,如图9中的903所示,上述第三封装报文从CPU的93口传输至交换芯片的94口。交换芯片接收上述第三封装报文后,依据第三封装报文携带的第三交换头中的出接口信息,将上述第三封装报文转发至FPGA,如图9中的904所示,上述第三封装报文从交换芯片的95口传输至FPGA的96口。

步骤802:通过所述Inline Engine接收所述第三封装报文,基于所述第三封装报文携带的逻辑头FPGA-OUT中的SA表项索引从已获得的第二安全联盟SA表项信息中得到与所述SA索引匹配的SA表项,利用所述SA表项中的加密算法和加密密钥对所述第三封装报文携带的待加密数据进行加密并向所述交换芯片转发,以由所述交换芯片通过所述隧道转发密文,所述待加密数据至少包括所述原始报文。

在另一实施例中,FPGA接收交换芯片传输过来的第三封装报文,基于第三封装报文携带的逻辑头FPGA-OUT中的SA表项索引从已获得的第二安全联盟SA表项信息中得到与所述SA索引匹配的SA表项。

更为具体的是,FPGA接收交换芯片传输过来的第三封装报文后,解析第三封装报文携带的私有以太头ETH2,具体为,FPGA解析私有以太头ETH2携带的私有以太协议类型字段,获取FPGA与CPU协商的私有以太协议。FPGA依据上述FPGA与CPU协商的私有以太协议,对逻辑头FPGA-OUT进行解析,获取逻辑头FPGA-OUT携带的上述SA表项索引和出接口信息。

在获取上述SA表项索引后,FPGA依据该SA表项索引快速访问对应的SA表项,该SA表项即为另一实施例中描述的“与所述SA索引匹配的SA表项”。

在另一实施例中,FPGA利用上述SA表项中的加密算法和加密密钥对第三封装报文携带的待加密数据进行加密并向所述交换芯片转发。

更为具体的是,FPGA利用上述SA表项中的加密算法和加密密钥对第三封装报文携带的待加密数据进行加密,并剥离第三封装报文携带的逻辑头FPGA-OUT、私有以太头ETH2和第三交换头,并在第三封装报文新增加第四交换头。上述第四交换头携带上述出接口信息,具体为,如前文描述的FPGA解析第三封装报文的逻辑头FPGA-OUT获得上述出接口信息,FPGA将该出接口信息添加到上述第四交换头中。

完成以上加密和处理操作后,FPGA将处理后的第三封装报文传输至交换芯片,上述处理后的第三封装报文的报文格式如图12所示,其中图12中的ADWAN、内层IP、数据和Tail为公有头密文。如图9中的905所示,处理后的第三封装报文从FPGA的97口传输至交换芯片的98口。

在另一实施例中,交换芯片接收FPGA传输过来的处理后的第三封装报文后,通过隧道转发密文。

更为具体的是,交换芯片接收处理后的第三封装报文后,剥离其携带的第四交换头,并基于第四交换头携带的上述出接口信息,将密文从对应的出接口发出。如图9中的906所示,交换芯片基于第四交换头携带的上述出接口信息,将密文从对应的WAN口发出。上述密文的报文格式如图3所示,图3中的ETH、IP、UDP、ESP和Auth为公有头明文,ADWAN、内层IP、数据和Tail为公有头密文。

至此,完成图8所示的加密流程。

在另一实施例中,加密流程中,由交换芯片依据交换头将密文直接从对应的出接口发出,由FPGA执行部分封装操作,使得CPU的部分封装和加密任务由交换芯片和FPGA来实现,报文无需重复返回CPU,实现了IPSec封装加密流程性能的提升。

进一步的,在本实施例中,使用交换头来标识报文在交换芯片内的传输路径,以使交换芯片对报文识别引流,实现了对数据流的精准处理。

以上内容对本申请提供的方法进行了描述。下面对本申请提供的装置进行描述:

请参见图13,为本申请实施例提供的一种解密装置的结构示意图。

如图13所示,该装置可以包括:

确定单元1301,用于通过所述交换芯片接收本设备与对端设备之间的隧道转发的报文,若确定需要对所述报文携带的待解密数据进行解密,则在所述报文上增加第一交换头并重定向至所述Inline Engine;所述第一交换头至少携带本设备接收到所述报文的入接口信息;

解密单元1302,用于通过所述Inline Engine解析出所述报文携带的未被加密的报文特征信息以及所述报文携带的未被加密的封装安全载荷ESP字段中的安全参数索引SPI信息,从已获得的第一安全联盟SA表项信息中得到与所述报文特征信息和所述SPI信息匹配的SA表项,利用所述SA表项中的解密算法和解密密钥对所述待解密数据进行解密,得到第一明文;通过所述Inline Engine将所述第一明文和所述入接口信息发送至所述交换芯片,以通过所述交换芯片转发至所述CPU;

处理单元1303,用于通过所述CPU按照所述入接口信息对所述第一明文进行对应的数据处理,并对处理结果进行转发。

在一些实施例中,所述确定单元1301中,所述确定需要对所述报文携带的待解密数据进行解密,包括:

确定所述报文携带的未被加密的目的端口号为本设备的端口号、且该端口号被标记了解密标签,则确定需要对所述报文携带的待解密数据进行解密;

其中,任一端口号被标记解密标签,用于指示目的端口号为该端口号的报文携带的加密数据需要解密。

在一些实施例中,所述解密单元1302中,所述通过所述Inline Engine将所述第一明文和所述入接口信息发送至所述交换芯片还包括:

对所述第一明文进行封装得到第一封装报文,所述第一封装报文是指被封装了所述Inline Engine与所述CPU协商的私有协议对应的私有以太头ETH1、逻辑头FPGA-IN以及第二交换头的第一明文;所述逻辑头FPGA-IN携带所述入接口信息,所述第二交换头用于指示所述交换芯片向所述CPU转发所述第一封装报文;

将所述第一封装报文发送至所述交换芯片。

在一些实施例中,所述第一明文携带应用驱动广域网ADWAN头、内层IP地址和待传输数据;

所述处理单元1303中,所述通过所述CPU按照所述入接口信息对所述第一明文进行对应的数据处理包括:通过所述CPU依据所述入接口信息找到入接口被配置的处理函数,基于所述处理函数对所述第一明文进行数据处理;

所述处理单元1303中,所述对处理结果进行转发包括:对所述内层IP地址和所述处理结果进行用于IP转发的封装,得到第二封装报文;对第二封装报文进行转发。

请参见图14,为本申请另一实施例提供的一种加密装置的结构示意图。

如图14所示,该装置可以包括:

处理单元1401,用于通过CPU接收需要加密的原始报文,基于用于传输所述原始报文的隧道对所述原始报文进行封装,得到第三封装报文,将所述第三封装报文发送至所述交换芯片,以通过所述交换芯片转发至所述Inline Engine;所述第三封装报文至少携带隧道头、报文特征信息字段、所述隧道对应的封装安全载荷ESP字段和逻辑头FPGA-OUT;所述FPGA-OUT携带安全联盟SA表项索引,所述SA表项索引是由所述CPU基于所述ESP字段中的安全参数索引SPI信息,从已获得的的第二安全联盟SA表项信息中得到的SA表项的索引;

加密单元1402,用于通过所述Inline Engine接收所述第三封装报文,基于所述第三封装报文携带的逻辑头FPGA-OUT中的SA表项索引从已获得的第二安全联盟SA表项信息中得到与所述SA索引匹配的SA表项,利用所述SA表项中的加密算法和加密密钥对所述第三封装报文携带的待加密数据进行加密并向所述交换芯片转发,以由所述交换芯片通过所述隧道转发密文,所述待加密数据至少包括所述原始报文。

在一些实施例中,所述第三封装报文还携带所述CPU与所述Inline Engine协商的私有协议对应的私有以太头ETH2、以及第三交换头;所述第三交换头用于指示所述交换芯片向所述Inline Engine转发所述第三封装报文;

其中,所述加密单元1402中,所述利用所述SA表项中的加密算法和加密密钥对所述第三封装报文携带的待加密数据进行加密并向所述交换芯片转发包括:

对第三封装报文进行以下处理:利用所述SA表项中的加密算法和加密密钥对所述第三封装报文携带的待加密数据进行加密,并剥离第三封装报文携带的逻辑头FPGA-OUT、私有以太头ETH2和第三交换头,并在第三封装报文新增加第四交换头;

将处理后的第三封装报文向所述交换芯片转发;

其中,逻辑头FPGA-OUT还携带本设备上的所述隧道的出接口信息;所述第四交换头携带所述出接口信息,以使得所述交换芯片接收到处理后的第三封装报文后剥离第四交换头并基于所述第四交换头携带的所述出接口信息进行报文转发;

和/或,

所述加密单元1402中,所述待加密数据还包括隧道头,所述隧道头为应用驱动广域网ADWAN头。

本申请实施例提供一种电子设备,包括处理器和存储器,其中,存储器存储有能够被所述处理器执行的机器可执行指令,处理器用于执行机器可执行指令,以实现上文描述的加/解密方法。

请参见图15,为本申请实施例提供的一种电子设备的硬件结构示意图。该电子设备可包括处理器1501、存储有机器可执行指令的存储器1502。处理器1501与存储器1502可经由系统总线1503通信。并且,通过读取并执行存储器1502中与加/解密逻辑对应的机器可执行指令,处理器1501可执行上文描述的加/解密方法。

本文中提到的存储器1502可以是任何电子、磁性、光学或其它物理存储装置,可以包含或存储信息,如可执行指令、数据,等等。例如,机器可读存储介质可以是:RAM(RadomAccess Memory,随机存取存储器)、易失存储器、非易失性存储器、闪存、存储驱动器(如硬盘驱动器)、固态硬盘、任何类型的存储盘(如光盘、dvd等),或者类似的存储介质,或者它们的组合。

需要说明的是,在本文中,诸如目标和目标等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。

相关技术
  • 一种数据加密方法、解密方法、加密系统及解密系统
  • 空调机组加密解密方法、装置和加密解密终端
  • 一种脚本加密方法、脚本解密运行方法和相关装置
  • 一种数据库的数据加密/解密方法、装置和设备
  • 一种基于非对称加密的数据加密方法、解密方法及系统
  • 加密装置、解密装置、加密方法、解密方法、加密程序和解密程序
  • 加密装置、解密装置、加密方法、加密程序、解密方法和解密程序
技术分类

06120116503412