陳南洋,楊玉發(fā),張 斌,楊素梅
(中國電子科技集團(tuán)公司第三十研究所,四川 成都 610041)
路由交換設(shè)備作為網(wǎng)絡(luò)基礎(chǔ)設(shè)施直接暴露在網(wǎng)絡(luò)中,極易成為網(wǎng)絡(luò)攻擊的主要目標(biāo),一旦遭到破壞,將對整個網(wǎng)絡(luò)造成嚴(yán)重影響。利用缺陷挖掘漏洞進(jìn)行攻擊是網(wǎng)絡(luò)安全面臨的永恒命題。路由交換設(shè)備存在的安全問題主要體現(xiàn)在3 個方面:一是當(dāng)前的計(jì)算體系結(jié)構(gòu)缺乏安全防護(hù)部件[1],導(dǎo)致完成計(jì)算任務(wù)的邏輯組合不能防止被篡改和破壞,無法確保實(shí)現(xiàn)正確計(jì)算;二是路由交換設(shè)備使用的操作系統(tǒng)、用戶設(shè)計(jì)與實(shí)現(xiàn)的路由協(xié)議、配置管理等大量軟件模塊,不可避免地存在缺陷或漏洞,而任何一個缺陷或錯誤均有可能引入安全漏洞并被網(wǎng)絡(luò)攻擊者利用;三是無法有效保障路由協(xié)議的安全,路由協(xié)議的安全內(nèi)容主要包括保護(hù)路由協(xié)議消息的完整性、真實(shí)性等,而目前路由協(xié)議只提供一些如簡單口令的認(rèn)證方式來保護(hù)自身的安全,易受到來自重放、假冒等攻擊,包括偽造、刪除或篡改正確的路由信息等,導(dǎo)致網(wǎng)絡(luò)癱瘓或者數(shù)據(jù)流被惡意牽引。
傳統(tǒng)的安全架構(gòu)中,較多依賴特征庫的匹配。防護(hù)設(shè)備在應(yīng)用過程中首先需要寫入某個攻擊事件的特征庫,然后才能有效防御該特征的攻擊。所以,基于已知特征的防御措施,對未知威脅的攻擊存在滯后性。防護(hù)永遠(yuǎn)落后于攻擊,對0day 等未知威脅無能為力[2]。
分析可以看出,基于傳統(tǒng)被動式的防御技術(shù)手段已經(jīng)難以適應(yīng)各種攻擊技術(shù)的快速發(fā)展和變化。為此,提出基于可信計(jì)算、擬態(tài)防御、組合公鑰(Combined Public Key,CPK)三者有機(jī)結(jié)合的內(nèi)生安全機(jī)制應(yīng)用設(shè)計(jì)思路。可信計(jì)算機(jī)制基于可信根構(gòu)建可信平臺,實(shí)現(xiàn)從固件、操作系統(tǒng)到應(yīng)用程序的行為符合預(yù)期;擬態(tài)防御機(jī)制基于多數(shù)判決,可以大概率降低針對已知的風(fēng)險或漏洞,以及未知漏洞或風(fēng)險的攻擊;CPK 組合公鑰機(jī)制通過有限種子密鑰組合的方法產(chǎn)生數(shù)量龐大的共、私鑰對,并基于用戶的標(biāo)識生成公鑰,解決了實(shí)體與公開密鑰的解耦,無需可信第三方的認(rèn)證,能夠用來解決大規(guī)模網(wǎng)絡(luò)環(huán)境下密鑰的生產(chǎn)與分發(fā)問題。CPK 采用密鑰集中生成、分散存儲方式。密鑰的集中生成有利于管理,而密鑰的分散存儲有利于安全[3]。
從國外可信平臺模塊(Trusted Platform Module,TPM)到可信密碼模塊(Trust Cryptography Module,TCM),再到可信平臺控制模塊(Trusted Platform Control Module,TPCM),我國經(jīng)歷了從學(xué)習(xí)TPM可信計(jì)算思想,到替換其中的密碼算法,增加自主密碼算法和雙證書體系,將對稱密碼與非對稱密碼機(jī)制相結(jié)合構(gòu)建TCM,再到創(chuàng)建雙體系架構(gòu)可信計(jì)算平臺的TPCM。我國走出了一條從學(xué)習(xí)到自主,然后創(chuàng)新的可信計(jì)算發(fā)展道路。
可信計(jì)算的防護(hù)思想是變被動為主動,為系統(tǒng)構(gòu)建免疫能力。通過“計(jì)算+保護(hù)”的雙體系結(jié)構(gòu)建立可信的計(jì)算環(huán)境,在計(jì)算運(yùn)算的同時進(jìn)行安全防護(hù)。計(jì)算全程可測可控,不被干擾,使計(jì)算結(jié)果總是與預(yù)期一樣,形成自動識別的“自己”與“非己”程序的安全免疫機(jī)制,實(shí)現(xiàn)對未知病毒木馬的安全免疫[1]。
基于雙體系結(jié)構(gòu)的可信計(jì)算平臺如圖1 所示。其中,通用計(jì)算域完成通用的計(jì)算任務(wù),可信防護(hù)域通過TPCM 硬件平臺、TPCM 操作系統(tǒng)和可信軟件基根據(jù)可信策略對通用計(jì)算域進(jìn)行主動度量和主動控制。通用計(jì)算域與可信防護(hù)域之間通過專用安全訪問通道交互信息,實(shí)現(xiàn)安全隔離。
圖1 基于雙體系結(jié)構(gòu)的可信計(jì)算平臺
可信啟動流程從系統(tǒng)的啟動到應(yīng)用分為待機(jī)、啟動和運(yùn)行3 個階段。待機(jī)階段,作為信任根的TPCM 首先上電,主導(dǎo)電源控制,對啟動代碼的度量確認(rèn);啟動階段對通用平臺信息進(jìn)行度量,通用操作系統(tǒng)加載代碼和內(nèi)核進(jìn)行度量,建立可信運(yùn)行環(huán)境;運(yùn)行階段維護(hù)可信平臺,動態(tài)監(jiān)控重要數(shù)據(jù)及運(yùn)行代碼的安全可信,從而達(dá)到系統(tǒng)運(yùn)行全過程的可信計(jì)算環(huán)境保護(hù)目的。啟動過程中,如果檢測度量對象被惡意篡改,則根據(jù)啟動策略進(jìn)入受控非可信工作模式或阻止其上電等。極端情況下,一旦惡意代碼入侵而導(dǎo)致系統(tǒng)失控,TPCM 可以采取切斷物理通道、關(guān)閉控制電源等保護(hù)措施。
基于雙體系結(jié)構(gòu)的可信計(jì)算平臺改變了TPM作為一個被動掛接的外部設(shè)備思路,從系統(tǒng)架構(gòu)角度解決啟動源頭、平臺及運(yùn)行環(huán)境的不可信問題,將TPCM 作為主動度量和主動控制的源點(diǎn),對通用計(jì)算域具有主動的、絕對的控制權(quán),為通用計(jì)算域構(gòu)建了安全可信的信任鏈,可有效保障通用計(jì)算域的安全性。
路由交換協(xié)議由于設(shè)計(jì)方式與實(shí)現(xiàn)環(huán)節(jié)的巨量代碼,決定了其不可避免存在漏洞或者后門。路由交換設(shè)備作為網(wǎng)絡(luò)基礎(chǔ)設(shè)施將面對許多不確定的安全威脅,如何變被動防御為主動防御,改變傳統(tǒng)的打補(bǔ)丁式安全防御方法,提高路由交換協(xié)議和配置管理協(xié)議的健壯性,擬態(tài)防御是解決問題的關(guān)鍵技術(shù)之一。
擬態(tài)防御通過引入動態(tài)性、冗余性和異構(gòu)性,以及多數(shù)表決機(jī)制,在盡可能不影響目標(biāo)系統(tǒng)功能和性能的前提下構(gòu)建動態(tài)異構(gòu)冗余模型,從而提升路由交換協(xié)議和控制管理協(xié)議等的安全性和健壯性,以具有不確定性的防護(hù)機(jī)制來對抗不確定性的安全威脅[2]。
路由交換設(shè)備從控制管理功能角度可細(xì)分為控制平面和管理平面??刂破矫姘ǜ鞣N不同的路由協(xié)議軟件(如BGP、OSPF、RIP 等),負(fù)責(zé)路由計(jì)算。管理平面包括多種配置管理軟件(如Web、CLI 和SNMP 等),負(fù)責(zé)系統(tǒng)配置管理維護(hù)。此外,它還包括用于密鑰協(xié)商、安全訪問等安全軟件。
路由交換設(shè)備的管理軟件、控制軟件和其他功能軟件,功能流程可以概括為“輸入—處理—輸出”模型,將進(jìn)行消息處理的單元定義為功能執(zhí)行體(路由交換功能執(zhí)行體、配置管理功能執(zhí)行體、其他功能行體)。功能執(zhí)行體存在的漏洞和后門可以被攻擊者掃描探測并利用,進(jìn)而進(jìn)行提權(quán)、系統(tǒng)控制和信息獲取。針對攻擊者對設(shè)備各功能執(zhí)行體的攻擊步驟,基于擬態(tài)防御思想設(shè)計(jì)了基于動態(tài)異構(gòu)冗余的擬態(tài)防御模型,如圖2 所示。該結(jié)構(gòu)模型針對每一種軟件的功能,引入多個異構(gòu)冗余的功能執(zhí)行體,對同一輸入進(jìn)行處理,并對多個功能執(zhí)行體輸出的消息進(jìn)行多數(shù)表決,識別哪個功能執(zhí)行體輸出消息異常。
圖2 基于動態(tài)異構(gòu)冗余的擬態(tài)防御模型
針對每一種軟件功能單元可以用以下模型來描述:通過不同操作系統(tǒng)編譯器,對同一功能軟件編譯生成多個功能等價的異構(gòu)功能執(zhí)行體,形成一個功能等價的異構(gòu)功能執(zhí)行體池,分別運(yùn)行在不同架構(gòu)處理器和操作系統(tǒng)上。由輸入代理模塊將輸入消息分發(fā)給每一個執(zhí)行體,由它們對同一個輸入進(jìn)行計(jì)算后得到多個輸出結(jié)果。多數(shù)表決模塊對多個結(jié)果進(jìn)行基于某種算法的多數(shù)表決,得到歸一化的輸出結(jié)果,輸出結(jié)果由輸出代理操作后輸出。
基于動態(tài)異構(gòu)冗余的擬態(tài)防御模型是一種主動防御模型,具有異構(gòu)性、冗余性和動態(tài)性特點(diǎn),可以有效應(yīng)對已知和未知安全威脅。異構(gòu)性即功能等價的兩個執(zhí)行體結(jié)構(gòu)組成不相同,描述的是兩個執(zhí)行體之間的差異性。這種差異性可以保證同樣的攻擊不會同時使兩個執(zhí)行體同時失效。冗余性是指工作集的異構(gòu)并行執(zhí)行體的多樣化。多樣化可以支持表決結(jié)果的正確性,但冗余性過多也將增加系統(tǒng)的成本開銷。動態(tài)性是指在不同時刻下輪換對外呈現(xiàn)的工作執(zhí)行體。動態(tài)性具有兩大作用。一是通過不定時改變工作執(zhí)行體降低單位時間內(nèi)特定部件的暴露時間,增加系統(tǒng)結(jié)構(gòu)信息的不確定性,減小漏洞被發(fā)現(xiàn)的風(fēng)險,同時使系統(tǒng)處于不斷更新的狀態(tài)。針對漸進(jìn)式攻擊等最初可能難以被察覺的行為,動態(tài)性的存在可以清除攻擊的前期努力,對潛在漏洞、后門的狀態(tài)跳轉(zhuǎn)等也具有清理作用。二是動態(tài)性實(shí)質(zhì)上是在時間維度上對多樣性的擴(kuò)展,在未感知到威脅時,動態(tài)性可以阻礙依賴特定后門的攻擊行為,有效降低了攻擊的成功率;在感知到威脅發(fā)生時,它可動態(tài)替換并隔離被感染執(zhí)行體,有效阻斷攻擊者對目標(biāo)系統(tǒng)的持續(xù)控制,并保證系統(tǒng)功能的完整性和持續(xù)性。
在通用的PKI、EKI、CPK 這3 種認(rèn)證體制中,因CPK 具有集中生成和分散存儲的特點(diǎn),在安全性、規(guī)模性、可行性、運(yùn)行效率上相較于PKI 和EKI 具有無法比擬的優(yōu)勢[3]。
在CPK 中,用戶公鑰由TPCM 中的設(shè)備標(biāo)識符導(dǎo)出,在映射密鑰Hkey函數(shù)下經(jīng)哈希變換輸出得到一序列值YS。YS 經(jīng)過一系列行列置換后,由密鑰管理中心(Key Management Center,KMC)計(jì)算得到組合私鑰。根據(jù)公私鑰的依賴關(guān)系,KMC 計(jì)算得到組合公鑰,經(jīng)KMC 再形成公鑰矩陣,然后將私鑰和公鑰矩陣分發(fā)到每一個TPCM。依賴TPCM 防篡改和防非法訪問的特點(diǎn),公私鑰可以得到有效保護(hù)。
將CPK 機(jī)制用于路由交換設(shè)備的認(rèn)證,可實(shí)現(xiàn)設(shè)備的雙向身份認(rèn)證,且在雙方進(jìn)行身份認(rèn)證的同時,生成路由協(xié)議會話密鑰KEYhmac和數(shù)據(jù)會話密鑰KEYcrypt,用于保證路由協(xié)議的完整性、真實(shí)性以及業(yè)務(wù)數(shù)據(jù)的機(jī)密性?;贑PK 的認(rèn)證及密鑰協(xié)商流程如圖3 所示。
圖3 基于CPK 的認(rèn)證及密鑰協(xié)商流程
基于CPK 的認(rèn)證及應(yīng)用流程分為3 個階段:認(rèn)證及密鑰協(xié)商階段、路由學(xué)習(xí)階段和業(yè)務(wù)加密階段,詳細(xì)流程參見文獻(xiàn)[3]。不同的是,身份認(rèn)證和密鑰協(xié)商流程中的算法用國密算法SM2 取代了國外密碼算法。協(xié)商生成的完整性密鑰使用國密算法SM3,保證路由協(xié)議的完整性和真實(shí)性;協(xié)商生成的業(yè)務(wù)加密密鑰,結(jié)合MACsec 框架和硬件加密模塊,使用國密算法SM4 加密業(yè)務(wù)數(shù)據(jù),保證業(yè)務(wù)數(shù)據(jù)的機(jī)密性。
結(jié)合可信計(jì)算、擬態(tài)防御和組合公鑰等安全機(jī)制,將安全與通信進(jìn)行一體化設(shè)計(jì),形成具有內(nèi)生安全功能的路由交換平臺體系架構(gòu),如圖4 所示。
異構(gòu)可信平臺由多個基于雙體系架構(gòu)的可信平臺組成。構(gòu)建可信平臺的處理器架構(gòu)(MIPS、ARM、PowerPC 等)和操作系統(tǒng)(Linux、VxWorks、uCLinux 等)各異,可信平臺上運(yùn)行具有功能等價的路由交換協(xié)議(OSPF、RIP、BGP、STP、VRRP等)、配置管理(SNMP、WEB、CLI 等)和密鑰協(xié)商等軟件模塊。不同可信平臺上運(yùn)行的功能等價軟件構(gòu)成擬態(tài)調(diào)度中的異構(gòu)體??尚牌脚_中的TPCM 可以集成在通用處理器中,如自主可控的基于MIPS 架構(gòu)的龍芯3A4000SE 處理器和基于ARM 架構(gòu)的飛騰2000/4 處理器等[4]。TPCM 也可以獨(dú)立模塊形式存在,通過安全訪問總線與通用處理器連接,由TPCM 控制通用處理器的啟動權(quán)限和可信鏈的傳遞??尚牌脚_通過異構(gòu)可配置的數(shù)據(jù)-判決模塊進(jìn)行互聯(lián),確保各可信平臺CPU 在不能直接通信的基礎(chǔ)上,實(shí)現(xiàn)可信平臺之間的安全隔離。
圖4 內(nèi)生安全路由交換平臺體系架構(gòu)
擬態(tài)調(diào)度層主要包括策略生成、擬態(tài)調(diào)度器、請求分發(fā)和應(yīng)答響應(yīng)等模塊。策略生成為擬態(tài)調(diào)度提供針對異構(gòu)體的調(diào)度策略;擬態(tài)調(diào)度器服務(wù)功能請求按照策略生成給定的調(diào)度策略,將服務(wù)功能請求分配給異構(gòu)體并接收異構(gòu)體的反饋,根據(jù)策略產(chǎn)生服務(wù)響應(yīng)。對于數(shù)據(jù)轉(zhuǎn)發(fā)平面而言,通過擬態(tài)調(diào)度層的分發(fā)與仲裁判決,認(rèn)為控制平面只有一個CPU;對于控制平面的每一個CPU 而言,認(rèn)為轉(zhuǎn)發(fā)平面只工作在自己的管控下,使得業(yè)務(wù)層面感知不到其他CPU 的存在。
擬態(tài)調(diào)度層的核心是擬態(tài)調(diào)度器,其結(jié)構(gòu)及運(yùn)行機(jī)制決定了其具有高安全防御特性。擬態(tài)調(diào)度器接收外部的服務(wù)功能請求,按照策略生成模塊給定的調(diào)度策略為服務(wù)功能請求確定為其提供服務(wù)的異構(gòu)體,將服務(wù)功能請求分配給異構(gòu)體并接收異構(gòu)體的反饋,根據(jù)反饋和策略生成模塊給定的調(diào)度策略輸出與結(jié)構(gòu)表征不確定的服務(wù)響應(yīng)。這種服務(wù)功能與結(jié)構(gòu)表征的不確定性在應(yīng)對未知風(fēng)險方面,可以從機(jī)理層面獲得主動的防護(hù)能力[2,5]。
擬態(tài)調(diào)度器對功能等價異構(gòu)體的反饋進(jìn)行同步處理,使得網(wǎng)絡(luò)攻擊者不容易嗅探或掃描到裝置中的缺陷或漏洞,進(jìn)一步增強(qiáng)了系統(tǒng)的安全性。同步模塊獲取異構(gòu)體的輸出結(jié)果,對異構(gòu)體的輸出結(jié)果做同步處理并生成目標(biāo)處理結(jié)果,并將目標(biāo)處理結(jié)果發(fā)送給調(diào)度器。同步模塊通過對異構(gòu)體的輸出結(jié)果和工作狀態(tài)進(jìn)行同步處理,克服了由于異構(gòu)體輸出不同使得調(diào)度器無法辨識。屏蔽不同的功能等價異構(gòu)體在輸出服務(wù)響應(yīng)上存在的差異,使得網(wǎng)絡(luò)攻擊者不容易嗅探或掃描到系統(tǒng)的缺陷或漏洞,進(jìn)一步增強(qiáng)了系統(tǒng)的安全性。調(diào)度器內(nèi)嵌冗余控制功能對輸入與輸出進(jìn)行隨機(jī)組合調(diào)度,使得調(diào)度器在結(jié)構(gòu)表征層面及時間維度層面具有不同的復(fù)雜度,進(jìn)而加載的陷門(后門)或是漏洞(缺陷)很難被攻方探知或利用,降低了入侵者對網(wǎng)絡(luò)系統(tǒng)攻擊的成功率。
數(shù)據(jù)轉(zhuǎn)發(fā)層根據(jù)異構(gòu)可信平臺路由交換協(xié)議協(xié)商或者通過配置管理模塊的配置,完成port 表、VLAN 表、L2 地址表、L2 組播表、接口表、主機(jī)路由表、子網(wǎng)路由表以及L3 組播表等表項(xiàng)的生成與更新,根據(jù)表項(xiàng)規(guī)則實(shí)現(xiàn)數(shù)據(jù)交換、路由轉(zhuǎn)發(fā)或者丟棄處理。
安全傳輸層基于IEEE 802 局域網(wǎng)絡(luò)的數(shù)據(jù)安全通信方法結(jié)合CPK 認(rèn)證機(jī)制實(shí)現(xiàn)相關(guān)的功能。MACsec 機(jī)制及國密算法SM4 提供安全的MAC 層數(shù)據(jù)發(fā)送和接收服務(wù),包括數(shù)據(jù)機(jī)密性、數(shù)據(jù)完整性檢查及數(shù)據(jù)源真實(shí)性校驗(yàn)。MACsec 與CPK 認(rèn)證機(jī)制配合使用,CPK 認(rèn)證過程成功后使用國密算法SM2 計(jì)算生成會話密鑰KEYencry,并將會話密鑰寫入Key Queue,然后調(diào)用加密引擎完成數(shù)據(jù)加密和完整性計(jì)算。該安全機(jī)制主要用于網(wǎng)絡(luò)節(jié)點(diǎn)之間的安全防護(hù),確保節(jié)點(diǎn)之間的雙方身份真實(shí)可信,防止數(shù)據(jù)信息泄漏和被篡改。
針對路由交換設(shè)備面臨的安全問題,本文結(jié)合可信計(jì)算、擬態(tài)防御和CPK 組合公鑰等安全防護(hù)機(jī)制構(gòu)建了內(nèi)生安全路由交換平臺,可提供完整性、機(jī)密性、動態(tài)性、異構(gòu)性和冗余性等安全防護(hù)能力,有助于抵御來自多個層面的已知或未知的威脅攻擊,可為構(gòu)建安全的路由交換平臺提供技術(shù)支撐。