數據加解密的方法及裝置與流程
2023-04-29 20:02:22

本發明涉及網際網路技術領域,尤其涉及一種數據加解密的方法及裝置。
背景技術:
虛擬專用網絡(Virtual Private Network,VPN)技術是指在公用網絡上為用戶建立的直接連接到虛擬的專用網絡,它主要的功能是在公用網絡上建立專用網絡。為了保證端與端之間數據傳輸的安全性,通常需要VPN對傳輸的數據進行加密。而網絡安全協議(Internet Protocol Security,IPSec)用以提供公用網絡和專用網絡的端對端的加密和驗證服務。
為了提高VPN中數據包收發的效率,可以基於DPDK技術平臺進行數據包的收發,DPDK是一種進行快速數據包處理的庫和驅動程序。基於DPDK技術進行的數據包收發的實現在用戶態,而採用IPSec協議來實現的VPN技術中,數據包的加解密通常情況下都在內核態,因此在使用DPDK技術進行收發需要加解密的數據包時需要將用戶態的需要加解密的數據包交給內核態進行加解密,完成後再返回給用戶態的DPDK,使DPDK將數據包發送出去。
由上述加解密的數據包收發的過程可以看到,現有的VPN在內核態進行數據包加解密的機制使加解密的數據包在用戶態與內核態之間反覆的交互,降低了加解密數據包收發的效率。
技術實現要素:
鑑於上述問題,本發明提供一種數據加解密的方法及裝置,用以解決現有VPN在內核態進行數據包加解密的機制降低了加解密數據包收發的效率的問題。
為解決上述技術問題,一方面,本發明提供了一種數據加解密的方法,所述方法包括:
建立網絡安全協議IPsec連接後,獲得所述IPsec連接對應的加解密算法與數據包封裝方式;
判斷所述加解密算法與所述數據包封裝方式是否符合預設加解密條件,所述預設加解密條件為符合網卡加解密的加解密算法以及數據包封裝方式;
若滿足預設加解密條件,則將所述IPsec連接對應的數據包發送給網卡進行加解密處理。
可選的,若滿足預設加解密條件,所述方法進一步包括:
為所述IPsec連接對應的會話信息上增加網卡加密標識以及網卡解密標識。
可選的,在將所述IPsec連接對應的數據包發送給網卡進行加密處理之前,所述方法進一步包括:
根據所述網卡加密標識設置發送描述符IPsec有效位、與所述數據包對應的IPsec連接對應的安全聯盟SA連接序號、加密有效位以及所述數據包對應的IPsec連接的類型,以使所述網卡接收到數據包後根據所述發送描述符IPsec有效位、與所述數據包對應的IPsec連接對應的SA連接序號、加密有效位以及所述數據包對應的IPsec連接的類型確定是否可以對數據包進行加密處理,SA連接序號與IPsec連接一一對應。
可選的,所述方法進一步包括:
在建立IPsec連接後,獲取加解密需要的安全關聯信息,以使網卡根據所述安全關聯信息對數據包進行加解密;
將所述安全關聯信息對應寫入網卡中,所述安全關聯信息與IPsec連接一一對應。
可選的,所述將所述安全關聯信息對應寫入網卡中,包括:
將安全參數索引SPI、密鑰、目的網間協議IP位址以及鹽值Salt Value寫入網卡中,以使網卡根據密鑰以及Salt Value對數據包進行加密,根據安全參數索引SPI、密鑰以及目的IP位址對數包進行解密。
可選的,所述方法進一步包括:
根據接收描述符上的已解密標識為數據包添加已解密標識,所述接收描述符上的已解密標識是由網卡對數據包解密之後設置的;
判斷數據包上的已解密標識與所述會話信息上的網卡解密標識是否匹配;
若匹配,則確定數據包已被網卡成功解密。
可選的,所述將安全參數索引SPI、密鑰、目的IP位址以及鹽值SaltValue寫入網卡中,包括:
根據對應的SA連接序號將所述安全參數索引SPI對應的寫入SPI參數表中;
根據對應的SA連接序號將所述密鑰對應的寫入密鑰表中;
根據對應的SA連接序號將所述目的IP位址對應的寫入IP位址表中;
根據對應的SA連接序號將所述Salt Value對應的寫入鹽值表中。
可選的,所述方法進一步包括:
通過應用程式接口開啟網卡的加解密功能。
可選的,所述方法進一步包括:
在所述IPsec連接斷開後,將網卡中對應所述IPsec連接的安全關聯信息刪除。
可選的,所述方法進一步包括:
若不滿足預設加解密條件,則將所述IPsec連接對應的數據包發送給內核進行加解密處理。
另一方面,本發明提供了一種數據加解密的裝置,所述裝置包括:
獲得單元,用於建立網絡安全協議IPsec連接後,獲得所述IPsec連接對應的加解密算法與數據包封裝方式;
判斷單元,用於判斷所述加解密算法與所述數據包封裝方式是否符合預設加解密條件,所述預設加解密條件為符合網卡加解密的加解密算法以及數據包封裝方式;
網卡發送單元,用於若滿足預設加解密條件,則將所述IPsec連接對應的數據包發送給網卡進行加解密處理。
可選的,所述裝置進一步包括:
增加單元,用於若滿足預設加解密條件,為所述IPsec連接對應的會話信息上增加網卡加密標識以及網卡解密標識。
可選的,所述裝置進一步包括:
設置單元,用於在將所述IPsec連接對應的數據包發送給網卡進行加密處理之前,根據所述網卡加密標識設置發送描述符IPsec有效位、與所述數據包對應的IPsec連接對應的安全聯盟SA連接序號、加密有效位以及所述數據包對應的IPsec連接的類型,以使所述網卡接收到數據包後根據所述發送描述符IPsec有效位、與所述數據包對應的IPsec連接對應的SA連接序號、加密有效位以及所述數據包對應的IPsec連接的類型確定是否可以對數據包進行加密處理,SA連接序號與IPsec連接一一對應。
可選的,所述裝置進一步包括:
獲取單元,用於在建立IPsec連接後,獲取加解密需要的安全關聯信息,以使網卡根據所述安全關聯信息對數據包進行加解密;
寫入單元,用於將所述安全關聯信息對應寫入網卡中,所述安全關聯信息與IPsec連接一一對應。
可選的,所述寫入單元用於:
將安全參數索引SPI、密鑰、目的網間協議IP位址以及鹽值Salt Value寫入網卡中,以使網卡根據密鑰以及Salt Value對數據包進行加密,根據安全參數索引SPI、密鑰以及目的IP位址對數包進行解密。
可選的,所述裝置進一步包括:
添加單元,用於根據接收描述符上的已解密標識為數據包添加已解密標識,所述接收描述符上的已解密標識是由網卡對數據包解密之後設置的;
匹配單元,用於判斷數據包上的已解密標識與所述會話信息上的網卡解密標識是否匹配;
確定單元,用於若匹配,則確定數據包已被網卡成功解密。
可選的,所述寫入單元包括:
第一寫入模塊,用於根據對應的SA連接序號將所述安全參數索引SPI對應的寫入SPI參數表中;
第二寫入模塊,用於根據對應的SA連接序號將所述密鑰對應的寫入密鑰表中;
第三寫入模塊,用於根據對應的SA連接序號將所述目的IP位址對應的寫入IP位址表中;
第四寫入模塊,用於根據對應的SA連接序號將所述Salt Value對應的寫入鹽值表中。
可選的,所述裝置進一步包括:
開啟單元,用於通過應用程式接口開啟網卡的加解密功能。
可選的,所述裝置進一步包括:
刪除單元,用於在所述IPsec連接斷開後,將網卡中對應所述IPsec連接的安全關聯信息刪除。
可選的,所述裝置進一步包括:
內核發送單元,用於若不滿足預設加解密條件,則將所述IPsec連接對應的數據包發送給內核進行加解密處理。
藉由上述技術方案,本發明提供的數據加解密的方法及裝置,能夠在建立IPsec連接後,獲得IPsec連接對應的加解密算法與數據包封裝方式;判斷加解密算法與數據包封裝方式是否符合預設加解密條件,預設加解密條件為符合網卡加解密的加解密算法以及數據包封裝方式;若滿足預設加解密條件,則將IPsec連接對應的數據包發送給網卡進行加解密處理。與現有技術相比,在VPN建立的虛擬專用網絡中需要對數據包進行加解密時,可以將滿足網卡加解密條件的數據包在網卡中進行加解密,即現有的數據包收發過程由「網卡-快速數據包處理應用-內核(加解密)」變為「網卡(加解密)-快速數據包處理應用」,其中數據包加解密完成後都由快速數據包處理應用發出,可以看到相比將需要加解密的數據包發送給內核進行加解密的處理的方式減少了數據包在內核態和用戶態之間的來回交互,因此可以提高加解密數據包處理的效率。
另外在網卡中進行加解密,可以減輕內核計算的負擔,減少CPU使用資源,進一步提高整個系統的性能。
上述說明僅是本發明技術方案的概述,為了能夠更清楚了解本發明的技術手段,而可依照說明書的內容予以實施,並且為了讓本發明的上述和其它目的、特徵和優點能夠更明顯易懂,以下特舉本發明的具體實施方式。
附圖說明
通過閱讀下文優選實施方式的詳細描述,各種其他的優點和益處對於本領域普通技術人員將變得清楚明了。附圖僅用於示出優選實施方式的目的,而並不認為是對本發明的限制。而且在整個附圖中,用相同的參考符號表示相同的部件。在附圖中:
圖1示出了本發明實施例提供的一種數據加解密的方法的流程圖;
圖2示出了本發明實施例提供的另一種數據加解密的方法的流程圖;
圖3示出了本發明實施例提供的一種數據加解密的裝置的組成框圖;
圖4示出了本發明實施例提供的另一種數據加解密的裝置的組成框圖。
具體實施方式
下面將參照附圖更詳細地描述本公開的示例性實施例。雖然附圖中顯示了本公開的示例性實施例,然而應當理解,可以以各種形式實現本公開而不應被這裡闡述的實施例所限制。相反,提供這些實施例是為了能夠更透徹地理解本公開,並且能夠將本公開的範圍完整的傳達給本領域的技術人員。
為解決現有的VPN在內核態進行數據包加解密的機制降低了加解密數據包收發的效率的問題,本發明實施例提供了一種數據加解密的方法,如圖1所示,該方法包括:
101、建立IPsec連接後,獲得IPsec連接對應的加解密算法與數據包封裝方式。
首先需要說明的是,本實施例應用於IPSec VPN技術中。在VPN專屬網絡中兩個交互端進行數據交互之前,需要建立IPsec連接。在建立IPsec的過程中,會經過安全聯盟(Security Association,SA)協商來確定在VPN專屬網絡通信過程中需要使用的加解密算法、加解密的方式以及數據包封裝方式等與管理和保護端與端之間通信連接相關的信息。
因此在建立IPsec連接後,可以獲得IPsec連接對應的加解密算法與數據包封裝方式。
102、判斷加解密算法與數據包封裝方式是否符合預設加解密條件。
當獲取到IPsec連接對應的加解密算法與數據包封裝方式之後,判斷是否符合網卡加解密的加解密算法以及數據包封裝方式。本實施例中符合網卡加解密的加解密算法為AES-128-GMAC和AES-128-GCM(128-bit key),符合網卡加解密的數據包封裝方式為隧道模式以及傳輸模式。另外,由於網卡對數據包加密時,數據包封裝方式只支持傳輸模式,不支持隧道模式,因此在數據包加密時符合網卡加密的數據包封裝方式為傳輸模式。
需要說明的是,若協商確定IPsec連接使用認證頭(Authentication Header,AH)或者封裝安全負載(Encapsulating Security Payload,ESP)驗證,則符和網卡加解密的加解密算法為AES-128-GMAC,若使用ESP進行驗證以及加密,則符合網卡加解密的加解密算法為AES-128-GCM。
103、若滿足預設加解密條件,則將IPsec連接對應的數據包發送給網卡進行加解密處理。
若IPsec連接對應的加解密算法滿足步驟102中網卡加解密的算法,並且IPsec連接對應的數據包封裝方式符合網卡加解密的數據包封裝方式,則將後續通過該IPsec連接進行傳輸的數據包發送給網卡,以使網卡對數據包進行加解密處理。
進一步的,當網卡對數據包加解密完成之後,將加解密後的數據包發送給數據包接收對象。其中的接收對象可以是DPDK等轉發數據包的應用,由於數據包已經由網卡進行了加解密,因此不需要再將數據包發給內核進行加解密,DPDK直接將數據包發給更上層的應用,減少了數據包在用戶態和內核態之間的交互。
本發明實施例提供的數據加解密的方法,能夠在建立IPsec連接後,獲得IPsec連接對應的加解密算法與數據包封裝方式;判斷加解密算法與數據包封裝方式是否符合預設加解密條件,預設加解密條件為符合網卡加解密的加解密算法以及數據包封裝方式;若滿足預設加解密條件,則將IPsec連接對應的數據包發送給網卡進行加解密處理;將加解密後的數據包發送給數據包的接收對象。與現有技術相比,在VPN建立的虛擬專用網絡中需要對數據包進行加解密時,可以將符合網卡加解密條件的數據包在網卡中進行加解密,即現有的數據包轉發過程由「網卡-快速數據包處理應用-內核(加解密)」變為「網卡(加解密)-快速數據包處理應用」,其中數據包加解密完成後都由快速數據包處理應用發出,可以看到相比將需要加解密的數據包發送給內核進行加解密的處理的方式減少了數據包在內核態和用戶態之間的來回交互,因此可以提高加解密數據包處理的效率。
進一步的,本發明另一實施例還給出了一種數據加解密的方法,如圖2所示,該方法包括:
201、建立IPsec連接。
使用VPN專屬網路通道進行通信的一端在與對端進行通信之前,首先需要建立端與端之間的IPsec連接,建立連接後,後續的數據傳輸都通過該連接進行。建立IPsec連接的具體過程與現有的建立方式相同。
202、獲得IPsec連接對應的加解密算法與數據包封裝方式以及安全關聯信息。
其中安全關聯信息包括安全參數索引(Security parameter index,SPI)、密鑰、目的網間協議(Internet Protocol,IP)地址以及鹽值Salt Value。SPI用於標識安全聯盟SA連接,密鑰是加解密過程的重要參數,目的IP位址即為IPsec連接中作為通信對端的IP位址。Salt Value是通過在密碼任意固定位置插入特定的字符串。需要說明的是IPsec連接與SA連接之間存在對應的關係,具體的給出示例進行說明:若A與B之間建立IPsec連接,由於SA連接為單向邏輯連接,因此A到B的數據流對應一個SA連接,B到A的數據流也對應一個SA連接,但是對於同一IPsec連接的雙向數據流分別對應的兩個SA連接的序號通常是一致的。因此SA連接序號與IPsec連接是一一對應的關係。
在建立IPsec連接的過程中,會通過安全聯盟SA協商好通過VPN通信過程中需要使用的加密算法以及加密的方式、SPI、密鑰、目的IP位址等與管理和保護端與端之間通信連接相關的信息。因此可以在建立IPsec連接後可以獲得IPsec連接對應的加解密算法與數據包封裝方式以及安全關聯信息。
203、判斷加解密算法與數據包封裝方式是否符合預設加解密條件。
該步驟的實現方式與圖1步驟102的實現方式相同,此處不再贅述。
204、若滿足預設加解密條件,則為IPsec連接對應的會話信息上增加網卡加密標識以及網卡解密標識。
增加網卡加密標識是為了在將IPsec連接對應的數據包發送給網卡進行加密處理之前,根據網卡加密標識設置發送描述符IPsec有效位、與數據包對應的IPsec連接對應的SA連接序號、加密有效位以及數據包對應的IPsec連接的類型,以使網卡接收到數據包後根據發送描述符IPsec有效位、與數據包對應的IPsec連接對應的SA連接序號、加密有效位以及數據包對應的IPsec連接的類型確定是否可以對數據包進行加密處理。其中IPsec連接的類型在本實施例中包括AH類型和ESP類型。
增加網卡解密標識是為了在接收數據包時判斷數據包上的已解密標識與所述會話信息上的網卡解密標識是否匹配;若匹配,則確定數據包已被網卡成功解密。其中數據包上的已解密標識是根據接收描述符上的已解密標識添加的,其中接收描述符上的已解密標識是由網卡對數據包解密之後設置的。具體的,在數據包上添加已解密標識是指在數據包flags位打上已解密標識。
另外還需要將安全關聯信息對應寫入網卡中,以使網卡根據安全關聯信息對數據包進行加解密。具體的將安全關聯信息對應寫入網卡中是指將安全參數索引SPI、密鑰、目的IP位址以及鹽值Salt Value寫入網卡中,以使網卡根據密鑰以及Salt Value對數據包進行加密,根據安全參數索引SPI、密鑰、目的IP位址對數包進行解密。需要說明的是網卡在加解密過程使用的密鑰是對稱密鑰。
需要說明的是,安全關聯信息與IPsec連接一一對應,即每一個IPsec連接對應一組SPI、密鑰、目的IP位址以及Salt Value,而每一個IPsec連接對應一個SA,因此在網卡中寫入SPI、密鑰、目的IP位址以及Salt Value時,需要根據IPsec連接對應的SA連接序號將SPI對應的寫入SPI參數表中;根據IPsec連接對應的SA連接序號將密鑰對應的寫入密鑰表中;根據IPsec連接對應的SA連接序號將目的網間協議IP位址對應的寫入IP位址表中;根據IPsec連接對應的SA連接序號將Salt Value對應的寫入鹽值表中。給出具體的示例進行說明,假設IPsec連接對應的SA序號為1,則將SPI參數寫入SPI參數表中索引序號為1對應的位置中,將密鑰寫入密鑰表中索引序號為1的位置中,將目的IP位址寫入IP位址表中索引序號為1的位置中,將Salt Value寫入鹽值表中索引序號為1的位置中。可以看到屬於一個安全關聯信息中的SPI、密鑰、目的IP位址以及Salt Value分別對應的索引序號是相同的,並且與安全關聯信息對應的IPsec連接對應的SA連接序號也是相同的。
205、在IPsec連接斷開後,將網卡中對應IPsec連接的安全關聯信息刪除。
在SPI參數表中密鑰表中IP位址表中以及鹽值表中查找與對應IPsec連接對應的SA序號相同的索引序號對應的SPI、密鑰、目的IP位址以及Salt Value,並將查找到的SPI、密鑰、目的IP位址以及Salt Value刪除。在執行刪除的動作時通過對應的應用程式接口實現的。
進一步的,若IPsec連接對應的加解密算法不滿足預設加解密條件,則將IPsec連接對應的數據包發送給內核進行加解密處理。這樣可以保證不滿足網卡加密條件的數據包還可以按照現有的數據包加解密的方式在內核中進行加解密。
進一步的,網卡進行加解密的功能在默認狀態下是關閉的,因此需要通過對應的應用程式接口開啟網卡的加解密功能。具體的是將網卡加解密功能對應的開關的寄存器對應的比特位清除。需要說明的是,在網卡開啟加解密功能的過程中,需要網卡暫停收發數據包。
進一步的,作為對上述各實施例的實現,本發明實施例的另一實施例還提供了一種數據加解密的裝置,用於實現上述圖1和圖2所述的方法。如圖3所示,該裝置包括:獲得單元301、判斷單元302以及網卡發送單元303。
獲得單元301,用於建立網絡安全協議IPsec連接後,獲得IPsec連接對應的加解密算法與數據包封裝方式。
首先需要說明的是,本實施例應用於IPSec VPN技術中。在VPN專屬網絡中兩個交互端進行數據交互之前,需要建立IPsec連接。在建立IPsec的過程中,會經過安全聯盟SA協商來確定在VPN專屬網絡通信過程中需要使用的加解密算法、加解密的方式以及數據包封裝方式等與管理和保護端與端之間通信連接相關的信息。
因此在建立IPsec連接後,可以獲得IPsec連接對應的加解密算法與數據包封裝方式。
判斷單元302,用於判斷加解密算法與數據包封裝方式是否符合預設加解密條件,預設加解密條件為符合網卡加解密的加解密算法以及數據包封裝方式。
當獲取到IPsec連接對應的加解密算法與數據包封裝方式之後,判斷是否符合網卡加解密的加解密算法以及數據包封裝方式。本實施例中符合網卡加解密的加解密算法為AES-128-GMAC和AES-128-GCM(128-bit key),符合網卡加解密的數據包封裝方式為隧道模式以及傳輸模式。另外,由於網卡對數據包加密時,數據包封裝方式只支持傳輸模式,不支持隧道模式,因此在數據包加密時符合網卡加密的數據包封裝方式為傳輸模式。
需要說明的是,若協商確定IPsec連接使用認證頭(Authentication Header,AH)或者封裝安全負載(Encapsulating Security Payload,ESP)驗證,則符和網卡加解密的加解密算法為AES-128-GMAC,若使用ESP進行驗證以及加密,則符合網卡加解密的加解密算法為AES-128-GCM。
網卡發送單元303,用於若滿足預設加解密條件,則將IPsec連接對應的數據包發送給網卡進行加解密處理。
進一步的,如圖4所示,裝置進一步包括:
增加單元304,用於若滿足預設加解密條件,為IPsec連接對應的會話信息上增加網卡加密標識以及網卡解密標識。
進一步的,如圖4所示,裝置進一步包括:
設置單元305,用於在將IPsec連接對應的數據包發送給網卡進行加密處理之前,根據網卡加密標識設置發送描述符IPsec有效位、與數據包對應的IPsec連接對應的安全聯盟SA連接序號、加密有效位以及數據包對應的IPsec連接的類型,以使網卡接收到數據包後根據發送描述符IPsec有效位、與數據包對應的IPsec連接對應的SA連接序號、加密有效位以及數據包對應的IPsec連接的類型確定是否可以對數據包進行加密處理,SA連接序號與IPsec連接一一對應。
進一步的,如圖4所示,裝置進一步包括:
獲取單元306,用於在建立IPsec連接後,獲取加解密需要的安全關聯信息,以使網卡根據安全關聯信息對數據包進行加解密;
寫入單元307,用於將安全關聯信息對應寫入網卡中,安全關聯信息與IPsec連接一一對應。
進一步的,寫入單元307用於:
將安全參數索引SPI、密鑰、目的IP位址以及鹽值Salt Value寫入網卡中,以使網卡根據密鑰以及Salt Value對數據包進行加密,根據安全參數索引SPI、密鑰以及目的IP位址對數包進行解密。
進一步的,如圖4所示,裝置進一步包括:
添加單元308,用於根據接收描述符上的已解密標識為數據包添加已解密標識,接收描述符上的已解密標識是由網卡對數據包解密之後設置的;
匹配單元309,用於判斷數據包上的已解密標識與會話信息上的網卡解密標識是否匹配;
確定單元310,用於若匹配,則確定數據包已被網卡成功解密。
進一步的,如圖4所示,寫入單元307包括:
第一寫入模塊3071,用於根據對應的SA連接序號將安全參數索引SPI對應的寫入SPI參數表中;
第二寫入模塊3072,用於根據對應的SA連接序號將密鑰對應的寫入密鑰表中;
第三寫入模塊3073,用於根據對應的SA連接序號將目的IP位址對應的寫入IP位址表中;
第四寫入模塊3074,用於根據對應的SA連接序號將Salt Value對應的寫入鹽值表中。
進一步的,如圖4所示,裝置進一步包括:
開啟單元311,用於通過應用程式接口開啟網卡的加解密功能。
網卡進行加解密的功能在默認狀態下是關閉的,因此需要通過對應的應用程式接口開啟網卡的加解密功能。具體的是將網卡加解密功能對應的開關的寄存器對應的比特位清除。需要說明的是,在網卡開啟加解密功能的過程中,需要網卡暫停收發數據包。
進一步的,如圖4所示,裝置進一步包括:
刪除單元312,用於在IPsec連接斷開後,將網卡中對應IPsec連接的安全關聯信息刪除。
在SPI參數表中密鑰表中IP位址表中以及鹽值表中查找與對應IPsec連接對應的SA序號相同的索引序號對應的SPI、密鑰、目的IP位址以及Salt Value,並將查找到的SPI、密鑰、目的IP位址以及Salt Value刪除。在執行刪除的動作時通過對應的應用程式接口實現的。
進一步的,如圖4所示,裝置進一步包括:
內核發送單元313,用於若不滿足預設加解密條件,則將IPsec連接對應的數據包發送給內核進行加解密處理。
將IPsec連接對應的數據包發送給內核進行加解密處理。這樣可以保證不滿足網卡加密條件的數據包還可以按照現有的數據包加解密的方式在內核中進行加解密。
本發明實施例提供的數據加解密的裝置,能夠在建立IPsec連接後,獲得IPsec連接對應的加解密算法與數據包封裝方式;判斷加解密算法與數據包封裝方式是否符合預設加解密條件,預設加解密條件為符合網卡加解密的加解密算法以及數據包封裝方式;若滿足預設加解密條件,則將IPsec連接對應的數據包發送給網卡進行加解密處理;將加解密後的數據包發送給數據包的接收對象。與現有技術相比,在VPN建立的虛擬專用網絡中需要對數據包進行加解密時,可以將符合網卡加解密條件的數據包在網卡中進行加解密,即現有的數據包轉發過程由「網卡-快速數據包處理應用-內核(加解密)」變為「網卡(加解密)-快速數據包處理應用」,其中數據包加解密完成後都由快速數據包處理應用發出,可以看到相比將需要加解密的數據包發送給內核進行加解密的處理的方式減少了數據包在內核態和用戶態之間的來回交互,因此可以提高加解密數據包處理的效率。
在上述實施例中,對各個實施例的描述都各有側重,某個實施例中沒有詳述的部分,可以參見其他實施例的相關描述。
可以理解的是,上述方法及裝置中的相關特徵可以相互參考。另外,上述實施例中的「第一」、「第二」等是用於區分各實施例,而並不代表各實施例的優劣。
所屬領域的技術人員可以清楚地了解到,為描述的方便和簡潔,上述描述的系統,裝置和單元的具體工作過程,可以參考前述方法實施例中的對應過程,在此不再贅述。
在此提供的算法和顯示不與任何特定計算機、虛擬系統或者其它設備固有相關。各種通用系統也可以與基於在此的示教一起使用。根據上面的描述,構造這類系統所要求的結構是顯而易見的。此外,本發明也不針對任何特定程式語言。應當明白,可以利用各種程式語言實現在此描述的本發明的內容,並且上面對特定語言所做的描述是為了披露本發明的最佳實施方式。
在此處所提供的說明書中,說明了大量具體細節。然而,能夠理解,本發明的實施例可以在沒有這些具體細節的情況下實踐。在一些實例中,並未詳細示出公知的方法、結構和技術,以便不模糊對本說明書的理解。
類似地,應當理解,為了精簡本公開並幫助理解各個發明方面中的一個或多個,在上面對本發明的示例性實施例的描述中,本發明的各個特徵有時被一起分組到單個實施例、圖、或者對其的描述中。然而,並不應將該公開的方法解釋成反映如下意圖:即所要求保護的本發明要求比在每個權利要求中所明確記載的特徵更多的特徵。更確切地說,如下面的權利要求書所反映的那樣,發明方面在於少於前面公開的單個實施例的所有特徵。因此,遵循具體實施方式的權利要求書由此明確地併入該具體實施方式,其中每個權利要求本身都作為本發明的單獨實施例。
本領域那些技術人員可以理解,可以對實施例中的設備中的模塊進行自適應性地改變並且把它們設置在與該實施例不同的一個或多個設備中。可以把實施例中的模塊或單元或組件組合成一個模塊或單元或組件,以及此外可以把它們分成多個子模塊或子單元或子組件。除了這樣的特徵和/或過程或者單元中的至少一些是相互排斥之外,可以採用任何組合對本說明書(包括伴隨的權利要求、摘要和附圖)中公開的所有特徵以及如此公開的任何方法或者設備的所有過程或單元進行組合。除非另外明確陳述,本說明書(包括伴隨的權利要求、摘要和附圖)中公開的每個特徵可以由提供相同、等同或相似目的的替代特徵來代替。
此外,本領域的技術人員能夠理解,儘管在此所述的一些實施例包括其它實施例中所包括的某些特徵而不是其它特徵,但是不同實施例的特徵的組合意味著處於本發明的範圍之內並且形成不同的實施例。例如,在下面的權利要求書中,所要求保護的實施例的任意之一都可以以任意的組合方式來使用。
本發明的各個部件實施例可以以硬體實現,或者以在一個或者多個處理器上運行的軟體模塊實現,或者以它們的組合實現。本領域的技術人員應當理解,可以在實踐中使用微處理器或者數位訊號處理器(DSP)來實現根據本發明實施例的發明名稱(如數據加解密的裝置)中的一些或者全部部件的一些或者全部功能。本發明還可以實現為用於執行這裡所描述的方法的一部分或者全部的設備或者裝置程序(例如,電腦程式和電腦程式產品)。這樣的實現本發明的程序可以存儲在計算機可讀介質上,或者可以具有一個或者多個信號的形式。這樣的信號可以從網際網路網站上下載得到,或者在載體信號上提供,或者以任何其他形式提供。
應該注意的是上述實施例對本發明進行說明而不是對本發明進行限制,並且本領域技術人員在不脫離所附權利要求的範圍的情況下可設計出替換實施例。在權利要求中,不應將位於括號之間的任何參考符號構造成對權利要求的限制。單詞「包含」不排除存在未列在權利要求中的元件或步驟。位於元件之前的單詞「一」或「一個」不排除存在多個這樣的元件。本發明可以藉助於包括有若干不同元件的硬體以及藉助於適當編程的計算機來實現。在列舉了若干裝置的單元權利要求中,這些裝置中的若干個可以是通過同一個硬體項來具體體現。單詞第一、第二、以及第三等的使用不表示任何順序。可將這些單詞解釋為名稱。