阮俊杰



摘? 要: 隨著開源技術的不斷發(fā)展,Linux在各大領域得到了廣泛的應用,在嵌入式設備領域,大量工業(yè)控制設備、路由交換設備、網(wǎng)絡安全設備等基于Linux內(nèi)核研發(fā),并得到了廣泛的應用。在網(wǎng)絡安全領域,VPN技術作為解決網(wǎng)絡通信機密性以及完整性的手段,廣泛用于各類業(yè)務系統(tǒng)的安全保障。本文開展了基于Linux內(nèi)核的IPsec協(xié)議棧設計,對網(wǎng)絡數(shù)據(jù)包在數(shù)據(jù)出入棧等環(huán)節(jié)的處理流程進行了優(yōu)化處理以及詳細說明。實踐證明該IPsec協(xié)議棧設計可以有效滿足網(wǎng)絡數(shù)據(jù)通信加密的需求。
關鍵詞: Linux,通信加密,協(xié)議棧
中圖分類號: TP393.08? ? 文獻標識碼:? ? ?DOI:10.3969/j.issn.1003-6970.2019.01.027
【Abstract】: With the rapid development of open source technology, Linux has been widely used in various fields. In the field of embedded equipment, a large number of industrial control equipment, routing switching equipment and network security equipment are based on the Linux kernel. In the field of network security, V VPN technology is widely used to solve the problem of data communication confidentiality and integrity. In this paper, the IPsec protocol stack design based on Linux kernel is researched, we optimized the processing flow of the data process. It has been proved that this IPsec protocol stack design can effectively meet the needs of network data communication encryption.
【Key words】: Linux; Communication encryption; Protocol stack
0? 引言
在工業(yè)控制系統(tǒng)當中,大量工業(yè)控制設備、遠程控制設備均基于IP網(wǎng)絡通信。IP通信技術在給業(yè)務系統(tǒng)帶來便利的同時,也帶來了網(wǎng)絡安全問題[1-4]。工業(yè)控制控制系統(tǒng)大量采用明文通信方式,存在數(shù)據(jù)被竊聽或被篡改的風險,對系統(tǒng)的安全穩(wěn)定運行造成極大的威脅[5-7]。如變電站內(nèi)采用明文方式的MMS、Goose、SV協(xié)議進行通信[8-9];設備在線監(jiān)測系統(tǒng)基于明文方式的IEC 61850協(xié)議進行通信等[10]。針對當前工控系統(tǒng)存在的問題,工信部曾在2011年451號文中要求需要采用數(shù)據(jù)加密措施實現(xiàn)工控系統(tǒng)的網(wǎng)絡安全保護[11]。
VPN技術是解決當前網(wǎng)絡通信問題的最為重要的技術之一,其基于對稱加密算法以及非對稱加密算法實現(xiàn)網(wǎng)絡通信的機密性以及完整性保護[12]。本文開展了基于Linux內(nèi)核的IPsec協(xié)議棧設計,本文首先分析了IPsec協(xié)議棧,其次對網(wǎng)絡數(shù)據(jù)包的數(shù)據(jù)出入棧等環(huán)節(jié)的處理流程進行了優(yōu)化處理以及詳細說明。實踐證明該IPsec協(xié)議棧設計可以有效滿足網(wǎng)絡數(shù)據(jù)通信加密的需求。
1? 數(shù)據(jù)處理流程
在Linux系統(tǒng)當中,IPsec VPN數(shù)據(jù)包的處理流程如下圖1所示。
在IPsec協(xié)議棧當中,ESP和AH為傳輸層協(xié)議,在傳輸層進行封裝和解封裝并處理調(diào)用了加密和解密算法實現(xiàn)對該類協(xié)議報文的處理[13]。
IPsec協(xié)議棧支持封裝協(xié)議嵌套處置,即通過封裝定義關聯(lián)一個數(shù)據(jù)報文的下一個封裝處理調(diào)用,實現(xiàn)數(shù)據(jù)報文的連續(xù)封裝或者解封裝處理。在傳輸模式下,經(jīng)過解封裝處理的報文會被發(fā)送至路由處理模塊,重新查詢路由和路由投遞[14];在隧道模式下,經(jīng)過解封裝處理的報文會被系統(tǒng)軟中斷處理,處理結束之后發(fā)送至路由處理模塊[14]。
如果VPN設備采用硬件加密卡實現(xiàn)數(shù)據(jù)包的加解密,需將需處理的報文放入加解密隊列,并通知系統(tǒng)ESP數(shù)據(jù)報文處理結束。當硬件加密卡完成數(shù)據(jù)包的處理之后,通過中斷方式返回到回調(diào)處理[15]。
1.1? 實驗材料數(shù)據(jù)包進入處理
數(shù)據(jù)包進行協(xié)議棧之后,系統(tǒng)將根據(jù)IP數(shù)據(jù)包的目的地址、安全參數(shù)索引等信息查找系統(tǒng)的安全隧道,并根據(jù)查找到的安全隧道信息進行安全隧道狀態(tài)、生存期、重放窗口等處理,數(shù)據(jù)包的具體的處理過程如下圖所示:
(1)安全封裝包檢查:根據(jù)數(shù)據(jù)包的nmask標記判斷其是否為安全封裝包,如果是則轉入安全封裝處理,如夠?qū)G棄該數(shù)據(jù)包;
(2)安全策略索引SPI(Security Parameter Index)信息查找:根據(jù)數(shù)據(jù)包的目的地址、安全參數(shù)索引等信息提取安全策略索引;
(3)安全聯(lián)盟庫SAD(Security Association Databasee)信息查找:根據(jù)數(shù)據(jù)包的目的地址、協(xié)議以及安全策略索引SPI查找安全聯(lián)盟庫SAD。如果沒找到對應的安全隧道,則丟棄該IP包,如果找到對應的安全隧道,則將根據(jù)安全隧道對安全封裝數(shù)據(jù)包進行后續(xù)處理;
(4)數(shù)據(jù)包認證或者解密處理:根據(jù)安全隧道指定的安全封轉協(xié)議、算法和密鑰進行認證或解密處理;
(5)新數(shù)據(jù)包處理策略匹配:對認證或者解密之后的數(shù)據(jù)包進行再處理,包括數(shù)據(jù)包重新匹配安全策略庫,檢查其是否所有屬于多重加密數(shù)據(jù)包;
(6)新數(shù)據(jù)包進入處置:調(diào)用數(shù)據(jù)包進入模塊進行系統(tǒng)協(xié)議棧,進行路由轉發(fā)等。
1.2? 數(shù)據(jù)包外出處理
針對將要外出的數(shù)據(jù)包,系統(tǒng)將根據(jù)IP包的相關信息查找安全策略庫,找到該IP包對應的外出處理策略,并根據(jù)安全策略對數(shù)據(jù)包進行處置,如下表所示:
對于可以向外發(fā)送的IP數(shù)據(jù)包,外出的數(shù)據(jù)包將根據(jù)策略提供的信息,查找安全隧道表,找到該IP包應該應用的安全隧道。如果找到了安全隧道,則檢查安全隧道的狀態(tài)、生存期。然后進行安全封裝協(xié)議處理,數(shù)據(jù)包的具體的處理流程如下圖所示:
(1)安全聯(lián)盟庫(SAD)信息查找:根據(jù)數(shù)據(jù)包的信息查找安全聯(lián)盟庫SAD,得到該數(shù)據(jù)包對應的安全隧道信息;
(2)安全隧道狀態(tài)檢查:檢查安全隧道的生命周期等信息,對于超時等失效的安全隧道,需要釋放并重新協(xié)商;
(3)數(shù)據(jù)包安全封裝:根據(jù)安全策略信息,對數(shù)據(jù)包進行加密封裝,增加ESP頭或者AH認證頭部信息;
(4)數(shù)據(jù)包校驗:對數(shù)據(jù)包進行數(shù)字簽名以及數(shù)據(jù)包校驗;
(5)數(shù)據(jù)包外發(fā):根據(jù)數(shù)據(jù)包的IP地址,查找系統(tǒng)的路由表,將數(shù)據(jù)包路由轉發(fā)。
2? 安全策略檢查
安全策略檢查將從IP包中提取源/目的IP地址、源/目的端口、下一層協(xié)議等信息,根據(jù)IP包的相關信息構造選擇符,然后通過選擇符查詢進入安全策略庫,找到第一個匹配項(策略),根據(jù)該匹配項所定義的策略對IP包進行檢查和處理,數(shù)據(jù)包的處理結果分為三類,如下表所示:
在檢查的過程當中,如果數(shù)據(jù)包中的數(shù)據(jù)包類型、數(shù)據(jù)包長度、IP版本、校驗和等任何一項沒有通過都將丟棄。對于處理結果為接受的數(shù)據(jù)包,根據(jù)IP包的源地址、目的地址和服務類型(tos)等信息查找路由表,并根據(jù)路由表的信息進行下一步處置。
3? 結論
網(wǎng)絡安全問題已經(jīng)逐步成為威脅工控系統(tǒng)正常穩(wěn)定運行的最為嚴重的風險之一,針對網(wǎng)絡通信安全,VPN技術是保障網(wǎng)絡通信機密性以及完整性保
護最為重要的方法之一,本文基于Linux內(nèi)核開展了IPsec協(xié)議棧設計,本文首先分析了IPsec協(xié)議棧下的數(shù)據(jù)處理數(shù)據(jù)流圖,其次對數(shù)據(jù)出入棧等環(huán)節(jié)的處理流程進行了優(yōu)化處理以及詳細說明。實踐證明該IPsec協(xié)議棧設計可以有效滿足網(wǎng)絡數(shù)據(jù)通信加密的需求。
參考文獻
尹肖棟, 嚴丹, 趙一凡. 論工業(yè)控制系統(tǒng)網(wǎng)絡安全風險評估試點工作[J]. 軟件, 2018, 39(09): 55-57.
周波, 熬洪, 高原. 軍隊無線網(wǎng)絡安全體系構建思考[J]. 軟件, 2015, 36(8): 17-21
楊盾, 王小鵬. 應對 DDoS 攻擊的 SDN 網(wǎng)絡安全特性研究[J]. 軟件, 2018, 39(3): 175-180
王天明, 符天. 基于擴展OpenFlow流標結構增強SDN網(wǎng)絡安全性研究[J]. 軟件, 2018, 39(7): 01-05
李磊. 數(shù)據(jù)通信網(wǎng)絡安全維護策略探討[J]. 軟件, 2018, 39(7): 191-193
趙澄, 方建輝, 姚明海. 工業(yè)控制網(wǎng)絡中APT攻擊檢測系統(tǒng)設計[J]. 計算機測量與控制, 2018, 26(10): 250-254.
李藝. 工業(yè)控制網(wǎng)絡安全防御體系及關鍵技術研究[D]. 華北電力大學(北京), 2017.
沃建棟. 基于IEC61850規(guī)約數(shù)字化變電站的建設與實施[D]. 浙江大學, 2017.
汪繁榮. 智能變電站網(wǎng)絡通信流量實時監(jiān)測系統(tǒng)及仿真研究[D]. 武漢大學, 2017.
劉爽. 基于分布式光纖溫度傳感器的配網(wǎng)在線監(jiān)測系統(tǒng)的設計與實現(xiàn)[D]. 電子科技大學, 2018.
陳建輝. 工業(yè)控制系統(tǒng)帶來信息安全建設巨大機遇——《關于加強工業(yè)控制系統(tǒng)信息安全管理的通知》學習與分析[J]. 中國信息安全, 2012(03): 52-56.
蔣華, 李康康, 胡榮磊. 一種基于strong Swan的IPsec VPN網(wǎng)關的實現(xiàn)[J]. 計算機應用與軟件, 2017, 34(07): 79-84.
古紅鋒. IPsec VPN產(chǎn)品測試平臺設計與實現(xiàn)[D]. 電子科技大學, 2018.
潘曉瑜. IPsec封裝模式在不同場景下的應用[J]. 軟件導刊, 2017, 16(12): 169-171.
孟祥也. 多層級服務網(wǎng)絡的信息安全傳輸技術研究[D]. 北京理工大學, 2016.