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