CN111031055A - 一种IPsec加速装置及实现方法 - Google Patents

一种IPsec加速装置及实现方法 Download PDF

Info

Publication number
CN111031055A
CN111031055A CN201911319422.4A CN201911319422A CN111031055A CN 111031055 A CN111031055 A CN 111031055A CN 201911319422 A CN201911319422 A CN 201911319422A CN 111031055 A CN111031055 A CN 111031055A
Authority
CN
China
Prior art keywords
data
authentication
module
algorithm
ipsec
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201911319422.4A
Other languages
English (en)
Other versions
CN111031055B (zh
Inventor
张鹏程
张洪柳
刘天明
刘树伟
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Qingdao Fangcun Microelectronic Technology Co ltd
Shandong Fangcun Microelectronics Technology Co Ltd
Original Assignee
Qingdao Fangcun Microelectronic Technology Co ltd
Shandong Fangcun Microelectronics Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Qingdao Fangcun Microelectronic Technology Co ltd, Shandong Fangcun Microelectronics Technology Co Ltd filed Critical Qingdao Fangcun Microelectronic Technology Co ltd
Priority to CN201911319422.4A priority Critical patent/CN111031055B/zh
Publication of CN111031055A publication Critical patent/CN111031055A/zh
Application granted granted Critical
Publication of CN111031055B publication Critical patent/CN111031055B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0435Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply symmetric encryption, i.e. same key used for encryption and decryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/123Applying verification of the received information received data contents, e.g. message integrity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/565Conversion or adaptation of application format or content
    • H04L67/5651Reducing the amount or size of exchanged application data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/06Notations for structuring of protocol data, e.g. abstract syntax notation one [ASN.1]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Power Engineering (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本公开提供了一种IPsec加速装置及实现方法,包括SA LIST模块、IPsec加速器模块、SM4及AES模块、SM3及SHA‑1模块、DATA FIFO模块、MASTER模块、ARBITER模块和SLAVE模块;所述IPsec加速器模块用于从读回的描述符中读取出有效的SA指针,根据SA指针检索SA LIST模块,从中选出当前数据包的操作信息,利用硬件根据选择的操作信息自动为数据包增添头部,对加密算法进行选择,对数据包进行校验和计算并将校验和写入对应的地址中;本公开用硬件的方式处理IPsec流程中的一部分操作,减轻了CPU的负载,达到了一种加速的效果。

Description

一种IPsec加速装置及实现方法
技术领域
本公开涉及IPsec加速计算领域,特别涉及一种IPsec加速装置及实现方法。
背景技术
本部分的陈述仅仅是提供了与本公开相关的背景技术,并不必然构成现有技术。
随着生活的不断发展,网络技术在我们日常生活中扮演的角色也越来越重要,与我们的生活息息相关。但是在这样的一个网络大环境下如何保证传输信息的机密性是一个很大的问题,IPsec是我们目前常采用的一种安全机制。
本公开发明人发现,目前市场上的大部分产品都是由软件来处理IPsec,这样的做法会增加CPU的负载,信息的处理速度依赖于CPU的性能。
发明内容
为了解决现有技术的不足,本公开提供了一种IPsec加速装置及实现方法,用硬件的方式处理IPsec流程中的一部分操作,减轻了CPU的负载,达到了一种加速的效果。
为了实现上述目的,本公开采用如下技术方案:
本公开第一方面提供了一种IPsec加速装置。
一种IPsec加速装置,包括SA LIST模块、IPsec加速器模块、SM4及AES模块、SM3及SHA-1模块、DATA FIFO模块、MASTER模块、ARBITER模块和SLAVE模块;
所述MASTER模块用于发送端读回描述符,根据读回的描述符中的地址取回要进行IPsec加速处理的数据,IPsec加速处理完成之后,将状态写回描述符;用于接收端读回描述符,根据读回的描述符中的地址将已经经过处理的IPsec数据搬到相对应的位置,将状态写回描述符;SLAVE模块用于与网络接口进行数据交换,所述DATA FIFO模块用于存放MASTER模块读取回来的数据包、经过IPsec加速处理完的数据包以及经过SLAVE模块传输进来的数据包;
SM4及AES模块用于对发送端数据进行加密,对接收端数据进行解密操作;SM3及SHA-1模块对发送端数据进行认证,对接收端数据进行完整性检查;所述ARBITER模块用于处理发送端多个描述符环和接收端多个描述符环之间的处理优先级;
所述SA LIST模块用于存放IPsec加速需要用到的参数,所述IPsec加速器模块用于从读回的描述符中读取出有效的SA指针,根据SA指针检索SA LIST模块,从中选出当前数据包的操作信息,利用硬件根据选择的操作信息自动为数据包增添头部,对加密算法进行选择,对数据包进行校验和计算并将校验和写入对应的地址中。
作为可能的一些实现方式,所述SA LIST模块中至少存储有序列号、AH认证算法选择、AH认证密钥、ESP加密及认证选择、ESP加密算法选择、ESP加密密钥、ESP认证算法选择、ESP认证密钥、ESP IV值、模式选择、协议选择、PMTU、SPI和目的IP地址。
作为可能的一些实现方式,IPsec加速器模块还用于根据PMTU将大的数据包分解成符合PMTU大小的数据包,硬件根据选择的信息自动为数据包增添头部。
作为进一步的限定,IPsec加速器模块选择加密算法,至少包括认证算法、数据填充、验证数据的填充。
作为可能的一些实现方式,所述SLAVE模块用于将经过IPsec加速处理的数据包传送给网络控制器,网络控制器接收到的数据包通过SLAVE进入到IPsec加速处理模块。
本公开第二方面提供了一种IPsec加速的实现方法。
一种IPsec加速的实现方法,利用本公开第一方面所述的IPsec加速装置,发送端的发送流程,包括以下步骤:
步骤6-1:外置软件完成描述符的操作,启动IPsec加速装置;
步骤:6-2:MASTER读回描述符,取出SA索引指针,数据包起始地址以及数据包长度;
步骤6-3:IPsec加速器根据索引指针从SA LIST中取出相对应的操作参数;
步骤6-4:根据取出的PMTU确定数据包是否需要进行分包操作;
步骤6-5:从取回的第一个数据数据包中提取出IP头部和TCP/UDP头部缓存,计算TCP/UDP部分的校验和并填写到相对应的位置,按照SA LIST中相对应的操作参数进行操作,先为数据包增加AH/ESP数据包头,按照不同的传输模式进行处理;
步骤6-6:IPsec数据处理完成,通知网络控制器来将数据取走,更新对应的SA中的序列号和ESP IV值,同时查看是否分包完成,如果完成则结束此次操作,未完成则从步骤6-5继续进行处理。
作为可能的一些实现方式,所述步骤6-4中,如果不需进行分包操作则将数据包整个取回;如果需要进行分包操作则按照PMTU来确定分包大小,如果是IP或者UDP/IP数据包则在IP层进行分片;如果是TCP/IP数据包的话则在TCP层进行分包,按值依次取回数据包;
作为可能的一些实现方式,步骤6-5中,所述传输模式包括AH协议下的传输模式,具体为:将IP头部中可变部分清零,启动认证算法,将认证密钥以及数据发送给算法模块,等待认证完成,将认证数据写回对应的数据包尾部;将可变部分恢复成初始值,重新对数据包进行IP的校验和计算,并将校验和写回IP头部;
作为可能的一些实现方式,步骤6-5中,所述传输模式包括AH协议下的隧道模式,具体为:将外部IP头部中可变部分清零,启动认证算法,将认证密钥以及数据发送给算法模块,等待认证完成,将认证数据写回对应的数据包尾部;将可变部分恢复成初始值,重新对数据包进行外部IP头部的校验和计算,并将校验和写回IP头部;
作为可能的一些实现方式,步骤6-5中,所述传输模式包括ESP协议下的传输模式,加密算法和认证算法必须至少有一个有效,具体为:
如果不需要使用加密算法的话,则略过,如果需要使用加密算法的话,先调用相对应的算法进行密钥扩展,待密钥扩展完成之后,将待加密数据以及初始IV发送到加密算法模块进行计算,等待加密完成,将数据写回数据包相对应的位置;
如果不需要使用认证算法的话,则略过,如果需要使用认证算法的话,则将认证密钥和数据一起发送到认证算法模块,等待认证完成,将结果写回到对应的数据包位置;
重新回写IP头部长度,计算新的IP头部的校验和并写回相对应的位置;
作为可能的一些实现方式,步骤6-5中,所述传输模式包括ESP协议下的隧道模式,加密算法和认证算法必须至少有一个有效,具体为:
如果不需要使用加密算法的话,则略过,如果需要使用加密算法的话,先调用相对应的算法进行密钥扩展,待密钥扩展完成之后,将待加密数据,以及初始IV发送到加密算法模块进行计算,等待加密完成,将数据写回数据包相对应的位置;
如果不需要使用认证算法的话,则略过,如果需要使用认证算法的话,则将认证密钥和数据一起发送到认证算法模块,等待认证完成。将结果写回到对应的数据包位置;
重新回写外部IP头部长度,计算新的外部IP头部的校验和并写回相对应的位置。
本公开第三方面提供了一种IPsec加速的实现方法。
一种IPsec加速的实现方法,利用本公开第一方面所述的IPsec加速装置,接收端的接收流程,包括以下步骤:
步骤8-1:对于由SLAVE端口进入的接收数据包先进行检验和计算比对;
步骤8-2:比对通过之后,确定是不是IP层的分片包,如果是,则不进行IPsec处理,直接交给CPU聚合之后再做处理;如果不是,则从中提取SPI、目的IP地址和协议三项数据,同时将IP头部及验证数据缓存;
步骤8-3:IPsec加速器通过上面的三项数据查询SA LIST,如果未找到,则将数据包丢弃并上报;如果找到,则从SA LIST中提取出数据包的处理方式;
步骤8-4:IPsec加速器按照从SA LIST中提取的数据包处理方式根据不同的传输模式对数据包进行处理;
步骤8-5:IPsec验证完成之后,对相应的数据进行校验和计算,计算完成之后写回相对应的位置;
步骤8-6:再通过MASTER端口将数据写回到描述符中对应的地址。传输完成之后,修改描述符状态并通知网络控制器数据传输完成。
作为可能的一些实现方式,步骤8-4中,所述传输模式包括AH协议下的传输模式,具体为:将IP头部中可变部分清零,启动认证算法,将认证密钥以及数据发送给算法模块,等待认证完成,将认证数据与之前保存的接收到的认证数据进行对比,如果相符,则通过验证;如果不相符,则丢弃并上报;
作为可能的一些实现方式,步骤8-4中,所述传输模式包括AH协议下的隧道模式,具体为:将外部IP头部中可变部分清零,启动认证算法,将认证密钥以及数据发送给算法模块,等待认证完成,将认证数据与之前保存的接收到的认证数据进行对比,如果相符,则通过验证,如果不相符,则丢弃并上报;
作为可能的一些实现方式,步骤8-4中,所述传输模式包括ESP协议下的传输模式,加密算法和认证算法必须至少有一个有效,具体为:
如果不需要使用认证算法的话,则略过,如果需要使用认证算法的话,则将认证密钥和数据一起发送到认证算法模块,等待认证完成,将结果与提前保存的认证数据进行比对,如果相符,则通过验证;如果不相符,则丢弃并上报;
如果不需要使用解密算法的话,则略过,如果需要使用解密算法的话,先调用相对应的算法进行密钥扩展,待密钥扩展完成之后,将待解密数据以及初始IV发送到加密算法模块进行计算,等待解密完成,将数据写回数据包相对应的位置;
作为可能的一些实现方式,步骤8-4中,所述传输模式包括ESP协议下的隧道模式,加密算法和认证算法必须至少有一个有效,具体为:
如果不需要使用认证算法的话,则略过;如果需要使用认证算法的话,则将认证密钥和数据一起发送到认证算法模块,等待认证完成。将结果与缓存的认证数据进行对比,如果相符,则通过验证;如果不相符,则丢弃并上报;
如果不需要使用解密算法的话,则略过;如果需要使用解密算法的话,先调用相对应的算法进行密钥扩展,待密钥扩展完成之后,将待解密数据以及初始IV发送到加密算法模块进行计算,等待加密完成,将数据写回数据包相对应的位置。
作为可能的一些实现方式,步骤8-5中,传输模式是对应用层协议做校验和,如果没有就不做;
隧道模式是对内部的IP层和应用层协议做校验和,如果没有就不做。
与现有技术相比,本公开的有益效果是:
1、本公开所述IPsec加速装置能够完成校验和计算和大包拆分等工作,将原本属于网络控制器,TCP/IP协议栈的工作放到IPsec加速器中,减少网络控制器的工作量,同时还能供多个网络控制器共同使用。
2、本公开能够在IPsec处理过程中将大的数据包自动拆分成符合PMTU大小的数据包,软件只需要对整体大的数据包进行一次处理就可以,校验和、拆分以及IPsec的处理都由硬件完成,减少软件参与处理,减少CPU负载。
3、本公开能够在IPsec处理过程中使用内部握手机制处理整个过程,减少软件参与,减少不必要的等待时间,提升IPsec的处理速度。
4、本公开能够实现一对多的网卡支持方式,减少硬件资源使用,可以通过SLAVE接口对接多个网络控制器,按照一定的优先级处理SLAVE请求,实现一对多的方式,不需要每一个网络控制器对接一个IPsec加速器。
5、本公开能够合理利用总线带宽,使资源利用最大化。因为网络控制器的传输最大只要求到1000Mb/s,远小于内部带宽,多个网络控制器先后工作能够实现带宽的合理利用。
6、本公开兼容Linux软件处理框架,支持关闭开启GSO(Generic SegmentOffload)。
附图说明
图1为本公开实施例1提供的IPsec加速装置的架构示意图。
具体实施方式
应该指出,以下详细说明都是例示性的,旨在对本公开提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语具有与本公开所属技术领域的普通技术人员通常理解的相同含义。
需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本公开的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在特征、步骤、操作、器件、组件和/或它们的组合。
在不冲突的情况下,本公开中的实施例及实施例中的特征可以相互组合。
实施例1:
针对因特网安全需求,IETF(因特网工程任务组)颁布了IP层安全协议IPsec。IPsec是IP安全协议标准,是指在IP层为网络传输提供安全保护的安全协议标准,主要作用是将安全机制引入IP协议,保护网络传输安全。
IPsec协议(AH/ESP)既可以用来保护一个完整的IP数据包,也可以用来保护IP层之上的上层协议数据包(如TCP/UDP等)。这两种保护分别对应到IPsec中的两种传输方式:传送模式和隧道模式。
本实施例主要是将AH/ESP通过硬件的方式添加到网络数据包,具体实现架构如图1所示,具体包括SA LIST模块、IPsec加速器模块、SM4及AES模块、SM3及SHA-1模块、DATAFIFO模块、MASTER模块、ARBITER模块和SLAVE模块。
(1)SA LIST
主要负责存放IPsec加速需要用到的参数,主要包含以下几种:
1)序列号
2)AH认证算法选择(SM3/SHA-1)
3)AH认证密钥
4)ESP加密、认证选择
5)ESP加密算法选择(SM4/AES)
6)ESP加密密钥
7)ESP认证算法选择(SM3/SHA-1)
8)ESP认证密钥
9)ESP IV值
10)模式选择(传输/隧道)
11)协议选择(AH/ESP)
12)PMTU
13)SPI
14)目的IP地址
(2)IPsec加速器
主要负责IPsec的加速操作,从读回的描述符中读取出有效的SA指针,然后根据SA指针检索SA LIST,从中选出当前数据包的操作信息;
可以根据PMTU将大的数据包分解成符合PMTU大小的数据包,然后硬件根据选择的信息自动为数据包增添头部;
根据不同的算法选择加密算法,认证算法(ESP协议下,加密算法、认证算法是可选的,可以同时有效但是不能同时无效),数据填充(ESP协议下的对称加密,如果没有机密性要求,填充是为了将字段‘填充长度’和‘下一个头’靠右排列或者是隐藏负载的真正长度)以及验证数据的填充(AH协议下的验证数据),可以对数据包进行校验和计算并将校验和写入多相对应的地址中去。
(3)SM4/AES
主要负责对发送端数据进行加密,接收端数据进行解密操作。主要运用在ESP协议下并且加密算法被选中使用的时候。
算法主要运用CBC模式;IV值与ESP的认证算法共用。算法输入块要求是128比特的整数倍。传输模式下对IP载荷(不包含ESP头部)进行加解密;隧道模式下对外部IP载荷(不包含ESP头部,但包含内部IP头部以及其载荷)进行加解密。
(4)SM3/SHA-1
主要负责对发送端数据进行认证,接收端数据进行完整性检查。AH/ESP协议下都有使用,但是在ESP协议下是可选项。本实施例中主要运用的是HMAC(硬件实现)计算出最后的认证值。因为在算法协议中明确规定需要进行补数操作,所以在算法模块中使用硬件实现补数操作。ESP协议下传输模式对IP载荷进行验证(不包含需要填充的验证数据区域);隧道模式对外部IP载荷进行认证(包含内部IP头部,但不包含验证数据区域)。AH协议下传输模式对整个数据包进行认证(可变部分需要按0来做计算,不区分传输模式还是隧道模式)。
(5)DATA FIFO
主要负责存放MASTER读取回来的数据包,经过IPsec处理完的数据包以及经过SLAVE接口传输进来的数据包。
(6)MASTER
主要负责发送端读回描述符,然后根据读回的描述符中的地址取回要进行IPsec处理的数据,IPsec处理完成之后,将状态写回描述符;接收端读回描述符,根据读回的描述符中的地址将已经经过处理的IPsec数据搬到相对应的位置,然后将状态写回描述符。
(7)ARBITER
主要负责处理来自不同网络控制器的申请,分为轮询和可变优先级两种处理方式。
(8)SLAVE
主要负责与网络接口进行数据交换:将经过IPsec处理的数据包传送给网络控制器;网络控制器接收到的数据包通过SLAVE进入到IPsec加速处理模块。
本实施例的IPsec加速的实现,主要应用于提升IPsec的处理速度。其中IKE过程、接收端的重复数据包处理以及SA的生命周期维护由软件完成,剩下的操作由硬件实现。
主要分为发送端发送流程和接收端接收流程。
发送端发送流程,具体为:
(A)软件完成描述符的操作,然后启动IPsec加速模块;
(B)MASTER读回描述符,取出SA索引指针,数据包起始地址以及数据包长度;
(C)IPsec Accelerate根据索引指针从SA LIST中取出相对应的操作参数;
(D)根据取出的PMTU确定数据包是否需要进行分包操作;如果不需进行分包操作则将数据包整个取回;如果需要进行分包操作则按照PMTU来确定分包大小(如果是IP或者UDP/IP数据包则在IP层进行分片;如果是TCP/IP数据包的话则在TCP层进行分包),然后按值依次取回数据包;
(E)从取回的第一个数据数据包中提取出IP头部(有可能是隧道包,包含两个头,内部头的校验和计算),TCP/UDP头部缓存(仅数据包拆分的第一个数据头需要缓存),计算TCP/UDP部分的校验和填写到相对应的位置。然后再按照SA LIST中相对应的操作参数进行操作,先为数据包增加AH/ESP(暂时不支持两种同时存在的情况)数据包头。填充AH头部时,需要确认它的认证数据长度,可能需要填充以保证AH头部时32(IPv4)或者64(IPv6)比特的整数倍(认证时需要包含计算在内,统一按零处理);填充ESP头部时,需要确保要加解密的数据长度是128比特的整数倍(AES/SM4的最小加解密数据块是128比特);
再按如下几种情况操作:
(E-1)AH协议下的传输模式,将IP头部中可变部分清零(选项或扩展头按整体做计算),然后启动认证算法,将认证密钥以及数据发送给算法模块,等待认证完成,将认证数据写回对应的数据包尾部;然后将可变部分恢复成初始值,然后重新对数据包进行IP的校验和计算,并将校验和写回IP头部;
(E-2)AH协议下的隧道模式,将外部IP头部中可变部分清零(选项或扩展头按整体做计算),然后启动认证算法,将认证密钥以及数据发送给算法模块,等待认证完成,将认证数据写回对应的数据包尾部;然后将可变部分恢复成初始值,然后重新对数据包进行外部IP头部的校验和计算,并将校验和写回IP头部;
(E-3)ESP协议下的传输模式,加密算法和认证算法必须至少有一个有效:
(E-3-1)如果不需要使用加密算法的话,则略过;如果需要使用加密算法的话,先调用相对应的算法进行密钥扩展,待密钥扩展完成之后,将待加密数据(不包含IP头部和ESP头部)以及初始IV发送到加密算法模块进行计算,等待加密完成。将数据写回数据包相对应的位置;
(E-3-2)如果不需要使用认证算法的话,则略过;如果需要使用认证算法的话,则将认证密钥和数据一起发送到认证算法模块,等待认证完成。将结果写回到对应的数据包位置;
(E-3-3)重新回写IP头部长度,计算新的IP头部的校验和并写回相对应的位置;
(E-4)ESP协议下的隧道模式,加密算法和认证算法必须至少有一个有效;
(E-4-1)如果不需要使用加密算法的话,则略过;如果需要使用加密算法的话,先调用相对应的算法进行密钥扩展,待密钥扩展完成之后,将待加密数据(不包含外部IP头部和ESP头部)以及初始IV发送到加密算法模块进行计算,等待加密完成。将数据写回数据包相对应的位置;
(E-4-2)如果不需要使用认证算法的话,则略过;如果需要使用认证算法的话,则将认证密钥和数据一起发送到认证算法模块,等待认证完成。将结果写回到对应的数据包位置;
(E-4-3)重新回写外部IP头部长度,计算新的外部IP头部的校验和并写回相对应的位置;
(F)IPsec数据处理完成,通知网络控制器来将数据取走。更新对应的SA中的序列号,ESP IV值(只有用到的时候,结束才需要更新,进行加1操作);同时查看是否分包完成,如果完成则结束此次操作,未完成则从步骤(E)处继续。
接收端接受流程,具体为:
(a)对于由SLAVE端口进入的接收数据包先进行检验和计算比对;
(b)比对通过之后,确定是不是IP层的分片包,如果是,则不进行IPsec处理,直接交给CPU聚合之后再做处理;如果不是,则从中提取SPI,目的IP地址(隧道时是外层IP头部)以及协议(AH/ESP)这三项;同时将IP头部(隧道时是外部IP头部)及验证数据缓存;
(c)IPsec accelerator通过上面的三元组查询SA LIST,如果未找到,则将数据包丢弃并上报;如果找到,则从SA LIST中提取出数据包的处理方式;
(d)IPsec accelerator按照从SA LIST中提取的数据包处理方式对数据包进行处理;
(d-1)AH协议下的传输模式,需要将IP头部中可变部分清零(选项或扩展头按整体做计算),然后启动认证算法,将认证密钥以及数据发送给算法模块,等待认证完成,将认证数据与之前保存的接收到的认证数据进行对比。如果相符,则通过验证;如果不相符,则丢弃并上报;
(d-2)AH协议下的隧道模式,需要将外部IP头部中可变部分清零(选项或扩展头按整体做计算),然后启动认证算法,将认证密钥以及数据发送给算法模块,等待认证完成,将认证数据与之前保存的接收到的认证数据进行对比;如果相符,则通过验证;如果不相符,则丢弃并上报;
(d-3)ESP协议下的传输模式,加密算法和认证算法必须至少有一个有效;
(d-3-1)如果不需要使用认证算法的话,则略过;如果需要使用认证算法的话,则将认证密钥和数据一起发送到认证算法模块,等待认证完成。将结果与提前保存的认证数据进行比对,如果相符,则通过验证;如果不相符,则丢弃并上报;
(d-3-2)如果不需要使用解密算法的话,则略过;如果需要使用解密算法的话,先调用相对应的算法进行密钥扩展,待密钥扩展完成之后,将待解密数据(不包含IP头部和ESP头部)以及初始IV发送到加密算法模块进行计算,等待解密完成。将数据写回数据包相对应的位置;
(d-4)ESP协议下的隧道模式,加密算法和认证算法必须至少有一个有效;
(d-4-1)如果不需要使用认证算法的话,则略过;如果需要使用认证算法的话,则将认证密钥和数据一起发送到认证算法模块,等待认证完成。将结果与缓存的认证数据进行对比,如果相符,则通过验证;如果不相符,则丢弃并上报;
(d-4-2)如果不需要使用解密算法的话,则略过;如果需要使用解密算法的话,先调用相对应的算法进行密钥扩展,待密钥扩展完成之后,将待解密数据(不包含外部IP头部和ESP头部)以及初始IV发送到加密算法模块进行计算,等待加密完成。将数据写回数据包相对应的位置;
(e)IPsec验证完成之后,对相应的数据进行校验和计算。传输模式是对应用层协议(TCP/UDP,如果没有就不做)做校验和;隧道模式是对内部的IP层和应用层协议(TCP/UDP,如果没有就不做)做校验和。做完处理之后写回相对应的位置;
(f)再通过MASTER端口将数据写回到描述符中对应的地址。传输完成之后,修改描述符状态并通知网络控制器数据传输完成。
以上所述仅为本公开的优选实施例而已,并不用于限制本公开,对于本领域的技术人员来说,本公开可以有各种更改和变化。凡在本公开的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本公开的保护范围之内。

Claims (10)

1.一种IPsec加速装置,其特征在于,包括SA LIST模块、IPsec加速器模块、SM4及AES模块、SM3及SHA-1模块、DATA FIFO模块、MASTER模块、ARBITER模块和SLAVE模块;
所述MASTER模块用于发送端读回描述符,根据读回的描述符中的地址取回要进行IPsec加速处理的数据,IPsec加速处理完成之后,将状态写回描述符;用于接收端读回描述符,根据读回的描述符中的地址将已经经过处理的IPsec数据搬到相对应的位置,将状态写回描述符;SLAVE模块用于与网络接口进行数据交换,所述DATA FIFO模块用于存放MASTER模块读取回来的数据包、经过IPsec加速处理完的数据包以及经过SLAVE模块传输进来的数据包;
SM4及AES模块用于对发送端数据进行加密,对接收端数据进行解密操作;SM3及SHA-1模块对发送端数据进行认证,对接收端数据进行完整性检查;所述ARBITER模块用于处理发送端多个描述符环和接收端多个描述符环之间的处理优先级;
所述SA LIST模块用于存放IPsec加速需要用到的参数,所述IPsec加速器模块用于从读回的描述符中读取出有效的SA指针,根据SA指针检索SA LIST模块,从中选出当前数据包的操作信息,利用硬件根据选择的操作信息自动为数据包增添头部,对加密算法进行选择,对数据包进行校验和计算并将校验和写入对应的地址中。
2.如权利要求1所述的IPsec加速装置,其特征在于,所述SA LIST模块中至少存储有序列号、AH认证算法选择、AH认证密钥、ESP加密及认证选择、ESP加密算法选择、ESP加密密钥、ESP认证算法选择、ESP认证密钥、ESP IV值、模式选择、协议选择、PMTU、SPI和目的IP地址。
3.如权利要求1所述的IPsec加速装置,其特征在于,IPsec加速器模块还用于根据PMTU将大的数据包分解成符合PMTU大小的数据包,硬件根据选择的信息自动为数据包增添头部。
4.如权利要求3所述的IPsec加速装置,其特征在于,IPsec加速器模块选择加密算法,至少包括认证算法、数据填充、验证数据的填充。
5.如权利要求1所述的IPsec加速装置,其特征在于,所述SLAVE模块用于将经过IPsec加速处理的数据包传送给网络控制器,网络控制器接收到的数据包通过SLAVE进入到IPsec加速处理模块。
6.一种IPsec加速的实现方法,其特征在于,利用权利要求1-5任一项所述的IPsec加速装置,发送端的发送流程,包括以下步骤:
步骤6-1:外置软件完成描述符的操作,启动IPsec加速装置;
步骤:6-2:MASTER读回描述符,取出SA索引指针,数据包起始地址以及数据包长度;
步骤6-3:IPsec加速器根据索引指针从SA LIST中取出相对应的操作参数;
步骤6-4:根据取出的PMTU确定数据包是否需要进行分包操作;
步骤6-5:从取回的第一个数据数据包中提取出IP头部和TCP/UDP头部缓存,计算TCP/UDP部分的校验和并填写到相对应的位置,按照SA LIST中相对应的操作参数进行操作,先为数据包增加AH/ESP数据包头,按照不同的传输模式进行处理;
步骤6-6:IPsec数据处理完成,通知网络控制器来将数据取走,更新对应的SA中的序列号和ESP IV值,同时查看是否分包完成,如果完成则结束此次操作,未完成则从步骤6-5继续进行处理。
7.如权利要求6所述的IPsec加速的实现方法,其特征在于,所述步骤6-4中,如果不需进行分包操作则将数据包整个取回;如果需要进行分包操作则按照PMTU来确定分包大小,如果是IP或者UDP/IP数据包则在IP层进行分片;如果是TCP/IP数据包的话则在TCP层进行分包,按值依次取回数据包;
或者,
步骤6-5中,所述传输模式包括AH协议下的传输模式,具体为:将IP头部中可变部分清零,启动认证算法,将认证密钥以及数据发送给算法模块,等待认证完成,将认证数据写回对应的数据包尾部;将可变部分恢复成初始值,重新对数据包进行IP的校验和计算,并将校验和写回IP头部;
或者,
步骤6-5中,所述传输模式包括AH协议下的隧道模式,具体为:将外部IP头部中可变部分清零,启动认证算法,将认证密钥以及数据发送给算法模块,等待认证完成,将认证数据写回对应的数据包尾部;将可变部分恢复成初始值,重新对数据包进行外部IP头部的校验和计算,并将校验和写回IP头部;
或者,
步骤6-5中,所述传输模式包括ESP协议下的传输模式,加密算法和认证算法必须至少有一个有效,具体为:
如果不需要使用加密算法的话,则略过,如果需要使用加密算法的话,先调用相对应的算法进行密钥扩展,待密钥扩展完成之后,将待加密数据以及初始IV发送到加密算法模块进行计算,等待加密完成,将数据写回数据包相对应的位置;
如果不需要使用认证算法的话,则略过,如果需要使用认证算法的话,则将认证密钥和数据一起发送到认证算法模块,等待认证完成,将结果写回到对应的数据包位置;
重新回写IP头部长度,计算新的IP头部的校验和并写回相对应的位置;
或者,
步骤6-5中,所述传输模式包括ESP协议下的隧道模式,加密算法和认证算法必须至少有一个有效,具体为:
如果不需要使用加密算法的话,则略过,如果需要使用加密算法的话,先调用相对应的算法进行密钥扩展,待密钥扩展完成之后,将待加密数据,以及初始IV发送到加密算法模块进行计算,等待加密完成,将数据写回数据包相对应的位置;
如果不需要使用认证算法的话,则略过,如果需要使用认证算法的话,则将认证密钥和数据一起发送到认证算法模块,等待认证完成。将结果写回到对应的数据包位置;
重新回写外部IP头部长度,计算新的外部IP头部的校验和并写回相对应的位置。
8.一种IPsec加速的实现方法,其特征在于,利用权利要求1-5任一项所述的IPsec加速装置,接收端的接收流程,包括以下步骤:
步骤8-1:对于由SLAVE端口进入的接收数据包先进行检验和计算比对;
步骤8-2:比对通过之后,确定是不是IP层的分片包,如果是,则不进行IPsec处理,直接交给CPU聚合之后再做处理;如果不是,则从中提取SPI、目的IP地址和协议三项数据,同时将IP头部及验证数据缓存;
步骤8-3:IPsec加速器通过上面的三项数据查询SA LIST,如果未找到,则将数据包丢弃并上报;如果找到,则从SA LIST中提取出数据包的处理方式;
步骤8-4:IPsec加速器按照从SA LIST中提取的数据包处理方式根据不同的传输模式对数据包进行处理;
步骤8-5:IPsec验证完成之后,对相应的数据进行校验和计算,计算完成之后写回相对应的位置;
步骤8-6:再通过MASTER端口将数据写回到描述符中对应的地址。传输完成之后,修改描述符状态并通知网络控制器数据传输完成。
9.如权利要求8所述的IPsec加速的实现方法,其特征在于,步骤8-4中,所述传输模式包括AH协议下的传输模式,具体为:将IP头部中可变部分清零,启动认证算法,将认证密钥以及数据发送给算法模块,等待认证完成,将认证数据与之前保存的接收到的认证数据进行对比,如果相符,则通过验证;如果不相符,则丢弃并上报;
或者,
步骤8-4中,所述传输模式包括AH协议下的隧道模式,具体为:将外部IP头部中可变部分清零,启动认证算法,将认证密钥以及数据发送给算法模块,等待认证完成,将认证数据与之前保存的接收到的认证数据进行对比,如果相符,则通过验证,如果不相符,则丢弃并上报;
或者,
步骤8-4中,所述传输模式包括ESP协议下的传输模式,加密算法和认证算法必须至少有一个有效,具体为:
如果不需要使用认证算法的话,则略过,如果需要使用认证算法的话,则将认证密钥和数据一起发送到认证算法模块,等待认证完成,将结果与提前保存的认证数据进行比对,如果相符,则通过验证;如果不相符,则丢弃并上报;
如果不需要使用解密算法的话,则略过,如果需要使用解密算法的话,先调用相对应的算法进行密钥扩展,待密钥扩展完成之后,将待解密数据以及初始IV发送到加密算法模块进行计算,等待解密完成,将数据写回数据包相对应的位置;
或者,
步骤8-4中,所述传输模式包括ESP协议下的隧道模式,加密算法和认证算法必须至少有一个有效,具体为:
如果不需要使用认证算法的话,则略过;如果需要使用认证算法的话,则将认证密钥和数据一起发送到认证算法模块,等待认证完成。将结果与缓存的认证数据进行对比,如果相符,则通过验证;如果不相符,则丢弃并上报;
如果不需要使用解密算法的话,则略过;如果需要使用解密算法的话,先调用相对应的算法进行密钥扩展,待密钥扩展完成之后,将待解密数据以及初始IV发送到加密算法模块进行计算,等待加密完成,将数据写回数据包相对应的位置。
10.如权利要求8所述的IPsec加速的实现方法,其特征在于,步骤8-5中,传输模式是对应用层协议做校验和,如果没有就不做;
隧道模式是对内部的IP层和应用层协议做校验和,如果没有就不做。
CN201911319422.4A 2019-12-19 2019-12-19 一种IPsec加速装置及实现方法 Active CN111031055B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911319422.4A CN111031055B (zh) 2019-12-19 2019-12-19 一种IPsec加速装置及实现方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911319422.4A CN111031055B (zh) 2019-12-19 2019-12-19 一种IPsec加速装置及实现方法

Publications (2)

Publication Number Publication Date
CN111031055A true CN111031055A (zh) 2020-04-17
CN111031055B CN111031055B (zh) 2021-10-12

Family

ID=70209870

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911319422.4A Active CN111031055B (zh) 2019-12-19 2019-12-19 一种IPsec加速装置及实现方法

Country Status (1)

Country Link
CN (1) CN111031055B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113438097A (zh) * 2021-05-21 2021-09-24 翱捷科技股份有限公司 一种网络加速的实现方法及装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020188839A1 (en) * 2001-06-12 2002-12-12 Noehring Lee P. Method and system for high-speed processing IPSec security protocol packets
US6708273B1 (en) * 1997-09-16 2004-03-16 Safenet, Inc. Apparatus and method for implementing IPSEC transforms within an integrated circuit
US20050074005A1 (en) * 2003-10-06 2005-04-07 Hitachi, Ltd. Network-processor accelerator
CN103188264A (zh) * 2013-03-25 2013-07-03 清华大学深圳研究生院 在线网络安全处理器和处理方法
CN103988483A (zh) * 2011-10-14 2014-08-13 思杰***有限公司 用于网络加速器的动态适应的***和方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6708273B1 (en) * 1997-09-16 2004-03-16 Safenet, Inc. Apparatus and method for implementing IPSEC transforms within an integrated circuit
US20020188839A1 (en) * 2001-06-12 2002-12-12 Noehring Lee P. Method and system for high-speed processing IPSec security protocol packets
US20050074005A1 (en) * 2003-10-06 2005-04-07 Hitachi, Ltd. Network-processor accelerator
CN1606291A (zh) * 2003-10-06 2005-04-13 株式会社日立制作所 网络处理加速器
CN103988483A (zh) * 2011-10-14 2014-08-13 思杰***有限公司 用于网络加速器的动态适应的***和方法
CN103188264A (zh) * 2013-03-25 2013-07-03 清华大学深圳研究生院 在线网络安全处理器和处理方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113438097A (zh) * 2021-05-21 2021-09-24 翱捷科技股份有限公司 一种网络加速的实现方法及装置
CN113438097B (zh) * 2021-05-21 2022-08-23 翱捷科技股份有限公司 一种网络加速的实现方法及装置

Also Published As

Publication number Publication date
CN111031055B (zh) 2021-10-12

Similar Documents

Publication Publication Date Title
US7194766B2 (en) Method and system for high-speed processing IPSec security protocol packets
AU2003226286B2 (en) Processing a packet using multiple pipelined processing modules
WO2019092593A1 (en) Nic with programmable pipeline
US7360076B2 (en) Security association data cache and structure
EP1423963B1 (en) Techniques for offloading cryptographic processing for multiple network traffic streams
EP1203477B1 (en) Protection of communications
US7266703B2 (en) Single-pass cryptographic processor and method
US8447898B2 (en) Task offload to a peripheral device
US7656894B2 (en) Offloading processing tasks to a peripheral device
US7697682B2 (en) Encryption apparatus and encryption method
US20020188871A1 (en) System and method for managing security packet processing
US20070101023A1 (en) Multiple task offload to a peripheral device
JP5205075B2 (ja) 暗号処理方法、暗号処理装置、復号処理方法および復号処理装置
US20060174058A1 (en) Recirculation buffer for semantic processor
US20080028210A1 (en) Packet cipher processor and method
US20220201020A1 (en) Dynamic adaption of arw management with enhanced security
CN111031055B (zh) 一种IPsec加速装置及实现方法
US7603549B1 (en) Network security protocol processor and method thereof
CN100502348C (zh) 网络安全处理装置及其方法
US11677727B2 (en) Low-latency MACsec authentication
US20200177540A1 (en) In-line transmission control protocol processing engine using a systolic array
CN104980497B (zh) 基于Wishbone总线的ESP封装处理装置
JP2011015042A (ja) 暗号化通信装置、暗号化通信方法及びプログラム
JP2010268293A (ja) 通信装置及び通信処理方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant