1, 耿煜 2,武金木 3,王占川
(1.河北工業大學計算機軟件學院,天津 300130 E-mail:gy0402@sina.com)
摘要:本文主要介紹了加密網卡的設計和加密網卡對數據的處理。首先結合目前網絡安全的現狀分析了加密網卡的產生是勢在必趨的,并指出了加密網卡對數據安全的重要作用;繼而提出了該加密網卡的設計思想,詳細闡述了加密網卡的工作流程,并根據加密網卡所包含的重要組成部分,分別對排列碼加密算法及IPSec進行了介紹。最后指出了加密網卡的應用前景必將更加廣泛。
關鍵詞:網卡,IPSec, 排列碼加密解密算法,ESP封裝
1. 引言
以Internet為代表的全球性信息化浪潮日益深刻,信息網絡技術的應用正日益普及和廣泛,應用層次正在深入,應用領域從傳統的、小型業務系統逐漸向大型、關鍵業務系統擴展。伴隨網絡的普及,安全日益成為影響網絡效能的重要問題,而Internet所具有的開放性、國際性和自由性在增加應用自由度的同時,對安全提出了更高的要求。
目前,網絡安全技術的應用主要包括數據加密技術、防火墻技術、防病毒技術等。數據加密技術是為提高信息系統的數據安全性、保密性和防止秘密數據被破解所采用的主要手段之一。應用最為廣泛、綜合功能最強的是防火墻技術。防火墻是一種用來控制網絡之間互相訪問的網絡互連設備,通常是軟件和硬件的組合體,它在Internet與內部網之間建立起一個安全網關,保護了內部網絡免受非法用戶的侵入。
從安全保密的角度來看,互聯網的安全主要指內部網(Intranet)的安全,因此除了在內部網與外部網的聯接處用防火墻進行隔離之外,還應在內部網構筑安全保密系統,以確保內部網的安全。密碼技術是保護信息安全的主要手段之一,加密軟件就是伴隨著對信息安全的要求應運而生,信息的加密和解密運算需要占用CPU的資源,大大降低了系統運行的效率。
而硬件加密網卡則提高了加密的速度,不但簡化了信息處理過程,而且提高了整個網絡的性能。實現了基于加密的強訪問控制,從而有效地保護局域網內部主機間、主機與網關間的通信,防止了局域網內部的第三臺計算機進行竊聽;而且當移動用戶安裝了加密網卡后,與企業總部通信時,加密網卡就可以保證流經Internet的數據的安全。所以,加密網卡也可以保護外部網的安全。
2. 加密網卡系統介紹
2.1 主要性能指標
工作方式:全雙工/半雙工
接口標準:與計算機采用PCI總線接口,與網絡采用雙絞線RJ-45接口,可采用屏蔽或非屏蔽雙絞線
數據傳輸速率(bit/s):10M/100M
密碼方式:基于排列碼的分組加密
密鑰方式:數字串或任意的文字串
加密強度:比DES高 105781
加密時延:7.5ns內完成1個分組的加密
2.2 加密網卡的設計
網卡工作在物理層和數據鏈路層之間,在IP層之下,主要完成數據鏈路層的功能,所有發送和接收的數據都必須經過網卡。IPSec是有效保護IP層數據報的安全,它提供了一種標準的、健壯的以及包容廣泛的機制,可用它為IP及上層協議(如TCP、UDP)提供安全保證。將IPSec的加密、解密模塊集成在網卡上,而將IPSec的密鑰交換與管理模塊、SPD、SAD放在虛擬設備的驅動程序中實現,這樣就在網絡內部需要保護的主機之間建立了一條條安全隧道,有效地實現了局域網內部的安全。而網卡就是安全隧道兩端的封裝/解封裝設備。
我們在網卡原有的功能結構基礎上,增加加密模塊、解密模塊、封裝模塊、解封裝模塊,加密緩沖區、解密緩沖區。并且為加密模塊、解密模塊、封裝模塊、解封裝模塊設置輸入數據線、輸出數據線以及控制線。加密網卡的功能流程圖如圖一。
當主機發送數據時,由驅動程序控制詢問SPD,判斷是否加密或丟棄,如果丟棄,則直接丟棄;如果加密,則送到加密緩沖區,進行加密,當安全封裝完,就送到發送緩沖區;不加密則直接送到發送緩沖區,進行網卡發送數據的工作。
當接收數據時,由網絡接口控制器將數據送到網卡上,先進行網卡接收工作,然后由接收緩沖器將數據送到主機接口控制處,最后由驅動程序判斷該包是否加密數據包,如果判斷該包是加密數據則送到解密緩沖區,進行解封裝,然后進行解密,最后詢問SPD判斷該包是否丟棄,如果丟棄,則直接丟棄,否則,送給主機;如果判斷該包不是加密數據,由驅動程序詢問SPD是否對該包進行丟棄,如果丟棄,則直接丟棄;否則,則直接送給主機。
驅動程序是網卡不可缺少的一個組成部分。在網卡驅動程序原功能的基礎上,將具有基于排列碼加密解密算法的IPSec基本功能的安全聯盟和密鑰協商與管理功能的模塊在網卡驅動程序中實現就形成了加密網卡的驅動程序。
2.3 加密算法的介紹
該加密網卡采用排列碼加密解密算法。排列碼加密解密算法是一種分組密碼,但它突破了傳統分組密碼從明文到密文的一對一映射關系,形成了多對多映射的分組密碼新概念,從而提高了加密強度。該算法已經申請了中國專利,專利證號為:99107969.8[10]。
(圖二)所示為排列碼加密解密原理示意圖,它的加密強度比世界最先進的DES高 105781 多倍;加密速度極快,僅幾級門電路的延遲。本算法采用Maxplus設計此算法的專門功能部件來提高算法的加密速度。加密模塊采用ALTERA 公司的MAX7000B系列產品 EPM7256BQC208-5。
2.4 IPSec的原理及結構
IPSec是一種比高層安全協議(如SOCK v5)的性能更好,實現起來更方便的安全協議,它可以實現密鑰的自動管理以降低人工管理密鑰的開銷,而且對于傳輸層以上的應用來說它是完全透明的,具有更好的兼容性。
IPSec主要利用兩種IPSec協議來提供安全服務:驗證頭AH(Authentication Header)和封裝安全負載ESP(Encapsulating Security Paylaod)。其中,AH可以提供數據源地址驗證、面向無連接的數據完整性以及抗重播服務;ESP除了提供上述服務之外,還可以選擇提供機密性和有限的流量機密性服務。這兩種協議都既可以用來保護一個完整的IP負載,也可以用來保護IP負載中的上層協議。此外,IPSec提供了兩種工作模式:傳輸模式和隧道模式,傳輸模式用于端到端的安全保障,即可以實現主機對主機傳輸層的數據包的通信保護;而網關之間的安全保護或通過路由器發送數據包來提供安全服務時,則使用IPSec的隧道模式,該模式提供對IP分組的保護。
在IPSec協議套件中還包含了用于密鑰交換和管理的Internet密鑰交換協議IKE(Internet Key Exchange)以及相應的解釋域、加密和認證算法、安全策略等協議組件。其中有兩個重要的概念:SA(安全聯盟)和SP(安全策略)。SA是兩個IPSec通信實體間通過協商建立起來的一種協定,IPSec實施方案最終會構建一個SA數據庫(SAD),由它來維護SA記錄。SP為進/出數據包的處理提供了一組安全策略參數,并以記錄的形式存放在SP數據庫(SPD)中。
2.5 加密網卡對數據的處理過程
任何安裝了該加密網卡的兩臺主機進行通信都要經過三個步驟,第一,通信雙方確認對方的身份,即進行身份認證,建立安全通道ISAKMP SA。第二,通信雙方協商IPSEC SA的各參數,并將SA添加到SAD中。最后,兩主機開始正常通信,一切安全保護的運算工作都由網卡負責,對用戶是透明的。
該加密網卡采用REALTEK的8139D作為主芯片,IPSec以BITS(Bump-in-the-stack)方式實現,ESP封裝,工作在傳送模式下,采用預共享密鑰進行身份認證。
該加密網卡對發送接收數據的處理過程如圖三、圖四。
3.應用前景
隨著網絡的開放性、共享性和
互聯網絡的不斷擴大,網絡內部的安全必將會越來越受到重視。IPSec是一個開放的體系結構和一個開放的框架,它為網絡層安全提供了一個穩定的、長期持久的基礎。而建立在IPSec體系上的加密網卡系統能有效的解決網絡內部端到端的數據通信,而且采用硬件加密克服了原先的軟件加密速度慢的問題,從而為
網絡安全提供了更有效的保護。因此采用加密網卡保護網絡數據傳送安全的優越性會越來越明顯,必將會得到更廣泛的應用。