陳 芳,張 爽,陳 姣*
(1. 湖南信息學院計算機科學與工程學院,湖南 長沙 410151;2. 沈陽理工大學自動化與電氣工程學院,遼寧 沈陽 110117)
近年來,網絡使用方式與用戶數量均發生巨大變化。起初用戶數量小,網絡結構簡單,隨著各類移動終端的不斷發展,網絡結構逐漸復雜,信息化時代來臨。信息化背景下,豐富的網絡資源帶來便利的同時,由于計算機技術進步、資源數量增多、信息豐富程度加深,網絡安全問題也逐漸顯現。用戶系統中的隱私很有可能被攻擊者盜取,破壞網絡的安全可靠性能,無法為用戶上網安全提供保障。防火墻技術有效解決了這一問題。防火墻技術作為一種控制訪問技術,可防止非法用戶進入內部網絡,減少內網安全隱患,并根據安全策略檢查數據包是否存在安全隱患,實時感知網絡運行態勢。防火墻雖然是一種有效的網絡保護設備,但也存在一些不足,難以防范內部威脅,也無法避免發送病毒文件。盡管該技術有很大的應用前景,但上述缺陷成為其進一步發展的阻礙。為此,該領域學者針對防火墻安全問題,提出以下幾種策略。
劉毅[1]等人構建一種基于霧計算的智能防火墻模型,結合語義推理內容建立隔離防火墻,使用霧計算信息中心網絡防火墻技術,感知網絡環境中的威脅,針對不同威脅,制定過濾策略,構建防御霧模型。岳少博[2]等人采用虛擬專用技術實現防火墻防御。結合網絡防御需求,設計整體功能架構,利用入侵檢測技術、虛擬專用網絡以及防火墻技術實現空間信息的三層加密,通過聚類分析法獲得未知攻擊規則,為防火墻設立一道安全屏障。
上述方法從不同角度提高了防火墻安全性能,但是當用戶請求較多時,會降低系統吞吐量。為此,本文研究一種基于認證服務器[3]的防火墻加密算法,利用加密技術[4]保護網絡安全,為防火墻設置一道密鑰,當信息傳輸到防火墻時,只有通過密鑰對防火墻解密,才能使信息安全發送到接收方。同時結合認證服務器緩解系統工作壓力,提高吞吐量,即使用戶請求數量較大,也能保證網絡安全運行。
1)防火墻結構與執行準則
防火墻是在兩個網絡中間發揮控制作用的系統,也是監測網絡安全的設備,其結構示意圖如圖1所示。
由圖1可知,防火墻相當于一個阻塞點,所有的網絡連接必須經過該點,避免非法用戶入侵系統內部。此外,防火墻能夠執行相關管理條例[5]、記載可疑信息,主要遵循下述基本準則:

圖1 防火墻主要架構示意圖
準則一:一切沒有經過允許的都視作禁止的。對于此條規則,防火墻必須隔離全部信息,僅可以對理想的服務開放,營造安全網絡環境,對通過的項目必須仔細篩查。
準則二:一切沒有被視為禁止的都具有開放權。防火墻可轉發網絡中所有信息流,經過篩選,屏蔽存在一定風險的服務。該方式靈活多變,服務的用戶更加多元化。
2)相關功能探析
安全屏障功能:防火墻的位置通常在網絡結構的出入口,能夠檢測全部數據,結合相關規則來判斷數據是否可以進出,保障了內部網絡的安全性,抵擋一些不安全的外部攻擊[6]。
流量審計功能:網絡流量進出必須通過防火墻,因此,防火墻可記錄流量使用情況。此外還可以統計帶寬利用率,如果檢測到流量存在風險,防火墻會自動報警,生成監測日志,為分析網絡是否受到攻擊提供依據。
1)服務器整體架構
本文利用分布式思想,設計認證服務器處理系統,如圖2所示。該系統由一臺負載均衡機和多個服務器構成,這些服務器均訪問相同數據庫。
①負載均衡服務器:屬于認證服務器的前端機,主要工作是將用戶請求傳輸到執行服務器上,而用戶通常認為服務來自某虛擬IP地址[7]。

圖2 認證服務器整體架構圖
②集群服務器:執行用戶提出的請求。
③數據庫:為服務器執行任務提供數據,確保所有服務器獲取統一信息。由于設計過程中添加緩存機制,當服務器節點增加時,不會發生訪問壓力急劇上升的情況。若要求數據庫具備更高性能,可利用分布式數據庫技術。
2)業務流程
當建立用戶端和服務器之間的聯系后,通信層將Session當作對象,利用Session中請求隊列保存用戶傳輸的報文。
集群服務器將認證、計費與代理模塊作為處理對象,這些對象同樣具有一個請求隊列。當報文到達通信層時,按照報文種類發送到相應隊列中。認證模塊會結合配置信息建立執行集合,構成完整的執行模塊鏈。
業務模塊作為所有業務的執行者,是通過數據緩存方式完成信息存儲的。如需調出某數據,從緩存模塊中重新調取即可。
3.2.1 公開大素數篩選
分析密鑰生成原理,通過窗函數[8]與模乘優化算法獲取尋找公開大素數與保密大素數,生成防火墻密鑰。
素數初步篩選方式如下:
步驟一:建立一個素數集合Su(k)={pi|pi≤k,k∈N},其中k表示正整數。獲取隨機生成的n位奇整數d,假設i=0,生成的n位整數表達式為:
[w1,w2,...]=[dmodp1,dmodp2,…,dmodpi]
(1)
式中,pi表示第i小的素數。
步驟二:針對某個j∈{r|pr∈Su(k),r∈N},若j符合wj=0的要求,則跳轉到步驟四繼續計算,否則執行下一步驟。
步驟三:假設素性測試模式為Ts(d),Ts代表測試函數,若測試結果顯示True,則將d作為輸出結果并結束測試;反之繼續執行下一步驟。
步驟四:針對j∈{r|pr∈Su(k),r∈N},運算wj=wj+2,再將計算結果和公開素數對比,若結果為wj≥pj,繼續運算wj=wj-pj。
步驟五:利用公式q=q+2和i=i+1獲取其值,將循環操作過程轉到步驟二,直到符合要求停止循環。
經過以上計算,循環結束后即可篩選出大素數,生成公開大素數p。
3.2.2 保密大素數篩選
為降低模冪計算過程算法復雜度,利用模乘操作替換乘法操作,通過滑動窗口與模乘優化算法相結合確定保密大素數。
改進的模冪算法執行過程如下:
將x,e=(etet-1...e1e0)2作為輸入數據,當et=1,k′≥1(窗口尺寸)時,輸出結果為xemodn。
1)計算下述公式
MontMul(x,R2,n)→x1
(2)
MontSqu(x1,n)→x2
(3)
針對i由1到2k′-1-1,運算MontMul(x2i-1,x2,n)→x2i+1,R→A和t→i。
2)如果i≥0,繼續執行下一步,反之跳轉到步驟4)。
3)如果ei=0,MontSqu(A,n)→A,i-1→i,尋找最長的位串eiei-1ei-2...es,確保i-s+1≤k′,且es=1。
4)MontMul(A,1,n)→A,返回A。
上述步驟中,MontMul(·)與AontSqu(·)分別表示模乘函數與模平方函數。將該方法與滑動窗口[9]相結合,能夠獲得簡便的模冪算法。

3.2.3 密鑰生成
結合上述選擇的公開與保密大素數共同生成防火墻密鑰。密鑰生成包括以下三個過程。
原始密鑰建立:結合公開大素數p得出密鑰位數共256位,再使用保密大素數建立密鑰,如果位數低于256,則在有效位之后添加一個字符,補全密鑰位數。再將補全后獲得的密鑰平均分成8份,表示為ω-8,ω-7,…,ω-1。
中間密鑰建立:利用下述公式將以上8等份密鑰擴展至132個中間密鑰ω0,ω-1,…,ω131。
ωi←(ωi-8⊕ωi-5⊕ωi-3⊕ωi-1⊕i)
(4)
子密鑰建立:針對生成的中間密鑰,使用8個S盒,建立33個子密鑰,計作S0,S1,…,S7。生成過程如下

(5)
由此能夠看出,密鑰生成過程是根據多項式x8+x7+x5+x3+1實現的,必須依賴該密鑰和之前密鑰進行兩輪循環。即便攻擊者獲得其中某一輪密鑰,因不具備前一輪密鑰,難以繼續推算,確保了防火墻安全。
在本文構建的認證服務器下,結合上述生成的密鑰提出一種多服務器認證策略,該策略共分為如下四個階段。
階段一:初始化

在此方案中,下述兩個問題屬于難點:已知橢圓曲線[10]E(FP)上存在P、aP與bP三個點,且a,b∈[1,n-1],在橢圓曲線中尋找這三點較為困難;假設已知E(FP)中的任意兩點Q′與R′,尋找一個整數K∈[1,n-1],確保R′=K·Q′,也是不容易實現的。
階段二:服務器注冊


(6)
階段三:登錄

階段四:認證
當認證服務器接收到查找票據Tγ時,利用私鑰解密,服務器檢測私鑰與上述建立的密鑰是否一致,如果二者相同,允許通過防火墻,反之防火墻開啟防守模式,避免外部攻擊。
仿真環境中設置四臺機器,客戶端與服務器各兩臺,這些設備均安置在相同局域網中。首先測試本文設計的認證服務器性能。假設用戶端在短時間內發出海量認證請求,將系統吞吐量作為衡量指標,將本文方法與文獻[1]提出的基于霧計算的智能防火墻加密算法、文獻[2]提出的基于虛擬專用技術的防火墻加密算法三種算法進行對比,不同方法下系統吞吐量測試結果如圖3所示。
圖3表明,隨用戶數量的上升,本文方法下系統吞吐量明顯上升,智能防火墻模型也能夠提高系統吞吐量,但是上升幅度小,虛擬專用技術由于是一種三層次防御技術,當用戶請求不斷增加時,系統吞吐量會降低。本文認證服務器結構相對簡單,業務邏輯設置合理,因此具有較高的性能表現。

圖3 不同方法系統吞吐量對比圖
本文通過將擴散率作為指標,驗證該方法的加密強度與加密速度。當擴散率高于0.5時,則認為密文擴散率達到完全擴散狀態。不同方法下的密文、明文擴散率分別如圖4和5所示。

圖4 密文擴散率
結合完全擴散定義,分析不同算法的密文與明文擴散率可知,所提算法經過四次加密與解密處理后,便可以達到完全擴散狀態,其它方法都需要五次以上的操作才可以實現完全擴散。因此,在認證服務器中使用基于大素數的加密算法,不僅加密強度大,且加解密速度更快,這是因為將單一循環換更換為多個循環同時進行,減少運算時間,有效解決加密、解密效率低的問題,縮短用戶等待時長。

圖5 明文擴散率
擊中次數最能體現防火墻加密性能的好壞,本文建立一個攻擊集合,對不同算法下的防火墻進行模擬攻擊,記錄被擊中的次數,并使用下述公式獲取擊中率。

(7)
式中,O(η)代表成功擊中防火墻次數,Mi′為數據成功傳輸的次數,ρ(i′)表示總截取率。不同算法的防火墻擊中率如圖6所示。
由圖6能夠看出,本文方法的擊中率非常低,低于5%,表現出防火墻強大的防守性能。這是因為本文不僅僅生成了初始密鑰,還另外建立中間密鑰與子密鑰,為防火墻提供多重保護,不容易被輕易擊中。

圖6 不同算法防護墻擊中率
表1是通過不同攻擊類型對三種算法下的防火墻進行攻擊,檢驗三種算法面對哪種攻擊時容易被擊中。利用“√”表示經過多次實驗沒有出現擊中現象,“×”代表出現擊中現象。

表1 不同攻擊方式下防火墻性能
表1顯示,本文方法只有在防火墻受到偽造攻擊時,會出現被擊中現象,面對其余攻擊方式時都表現出良好的性能。這是因為攻擊者會偽造真實身份,容易通過非法途徑獲取密鑰,導致防火墻被擊中。
本文建立了認證服務器,并在服務器中添加密鑰生成算法,通過安全認證來實現防火墻加密,保障網絡安全。仿真結果表明,該算法提高系統吞吐量,減少加密與解密時間,在面對多數攻擊類型時均能表現出良好的防守性能。但是隨著攻擊方式的層出不窮,網絡環境依舊威脅不斷,因此防御技術也應該不斷推陳出新。本文實驗中模擬的攻擊類型較少,在今后研究中應該增加攻擊種類,使加密算法可以更好的抵御各種攻擊形式。