陳南洋,楊玉發,張 斌,楊素梅
(中國電子科技集團公司第三十研究所,四川 成都 610041)
路由交換設備作為網絡基礎設施直接暴露在網絡中,極易成為網絡攻擊的主要目標,一旦遭到破壞,將對整個網絡造成嚴重影響。利用缺陷挖掘漏洞進行攻擊是網絡安全面臨的永恒命題。路由交換設備存在的安全問題主要體現在3 個方面:一是當前的計算體系結構缺乏安全防護部件[1],導致完成計算任務的邏輯組合不能防止被篡改和破壞,無法確保實現正確計算;二是路由交換設備使用的操作系統、用戶設計與實現的路由協議、配置管理等大量軟件模塊,不可避免地存在缺陷或漏洞,而任何一個缺陷或錯誤均有可能引入安全漏洞并被網絡攻擊者利用;三是無法有效保障路由協議的安全,路由協議的安全內容主要包括保護路由協議消息的完整性、真實性等,而目前路由協議只提供一些如簡單口令的認證方式來保護自身的安全,易受到來自重放、假冒等攻擊,包括偽造、刪除或篡改正確的路由信息等,導致網絡癱瘓或者數據流被惡意牽引。
傳統的安全架構中,較多依賴特征庫的匹配。防護設備在應用過程中首先需要寫入某個攻擊事件的特征庫,然后才能有效防御該特征的攻擊。所以,基于已知特征的防御措施,對未知威脅的攻擊存在滯后性。防護永遠落后于攻擊,對0day 等未知威脅無能為力[2]。
分析可以看出,基于傳統被動式的防御技術手段已經難以適應各種攻擊技術的快速發展和變化。為此,提出基于可信計算、擬態防御、組合公鑰(Combined Public Key,CPK)三者有機結合的內生安全機制應用設計思路。可信計算機制基于可信根構建可信平臺,實現從固件、操作系統到應用程序的行為符合預期;擬態防御機制基于多數判決,可以大概率降低針對已知的風險或漏洞,以及未知漏洞或風險的攻擊;CPK 組合公鑰機制通過有限種子密鑰組合的方法產生數量龐大的共、私鑰對,并基于用戶的標識生成公鑰,解決了實體與公開密鑰的解耦,無需可信第三方的認證,能夠用來解決大規模網絡環境下密鑰的生產與分發問題。CPK 采用密鑰集中生成、分散存儲方式。密鑰的集中生成有利于管理,而密鑰的分散存儲有利于安全[3]。
從國外可信平臺模塊(Trusted Platform Module,TPM)到可信密碼模塊(Trust Cryptography Module,TCM),再到可信平臺控制模塊(Trusted Platform Control Module,TPCM),我國經歷了從學習TPM可信計算思想,到替換其中的密碼算法,增加自主密碼算法和雙證書體系,將對稱密碼與非對稱密碼機制相結合構建TCM,再到創建雙體系架構可信計算平臺的TPCM。我國走出了一條從學習到自主,然后創新的可信計算發展道路。
可信計算的防護思想是變被動為主動,為系統構建免疫能力。通過“計算+保護”的雙體系結構建立可信的計算環境,在計算運算的同時進行安全防護。計算全程可測可控,不被干擾,使計算結果總是與預期一樣,形成自動識別的“自己”與“非己”程序的安全免疫機制,實現對未知病毒木馬的安全免疫[1]。
基于雙體系結構的可信計算平臺如圖1 所示。其中,通用計算域完成通用的計算任務,可信防護域通過TPCM 硬件平臺、TPCM 操作系統和可信軟件基根據可信策略對通用計算域進行主動度量和主動控制。通用計算域與可信防護域之間通過專用安全訪問通道交互信息,實現安全隔離。

圖1 基于雙體系結構的可信計算平臺
可信啟動流程從系統的啟動到應用分為待機、啟動和運行3 個階段。待機階段,作為信任根的TPCM 首先上電,主導電源控制,對啟動代碼的度量確認;啟動階段對通用平臺信息進行度量,通用操作系統加載代碼和內核進行度量,建立可信運行環境;運行階段維護可信平臺,動態監控重要數據及運行代碼的安全可信,從而達到系統運行全過程的可信計算環境保護目的。啟動過程中,如果檢測度量對象被惡意篡改,則根據啟動策略進入受控非可信工作模式或阻止其上電等。極端情況下,一旦惡意代碼入侵而導致系統失控,TPCM 可以采取切斷物理通道、關閉控制電源等保護措施。
基于雙體系結構的可信計算平臺改變了TPM作為一個被動掛接的外部設備思路,從系統架構角度解決啟動源頭、平臺及運行環境的不可信問題,將TPCM 作為主動度量和主動控制的源點,對通用計算域具有主動的、絕對的控制權,為通用計算域構建了安全可信的信任鏈,可有效保障通用計算域的安全性。
路由交換協議由于設計方式與實現環節的巨量代碼,決定了其不可避免存在漏洞或者后門。路由交換設備作為網絡基礎設施將面對許多不確定的安全威脅,如何變被動防御為主動防御,改變傳統的打補丁式安全防御方法,提高路由交換協議和配置管理協議的健壯性,擬態防御是解決問題的關鍵技術之一。
擬態防御通過引入動態性、冗余性和異構性,以及多數表決機制,在盡可能不影響目標系統功能和性能的前提下構建動態異構冗余模型,從而提升路由交換協議和控制管理協議等的安全性和健壯性,以具有不確定性的防護機制來對抗不確定性的安全威脅[2]。
路由交換設備從控制管理功能角度可細分為控制平面和管理平面。控制平面包括各種不同的路由協議軟件(如BGP、OSPF、RIP 等),負責路由計算。管理平面包括多種配置管理軟件(如Web、CLI 和SNMP 等),負責系統配置管理維護。此外,它還包括用于密鑰協商、安全訪問等安全軟件。
路由交換設備的管理軟件、控制軟件和其他功能軟件,功能流程可以概括為“輸入—處理—輸出”模型,將進行消息處理的單元定義為功能執行體(路由交換功能執行體、配置管理功能執行體、其他功能行體)。功能執行體存在的漏洞和后門可以被攻擊者掃描探測并利用,進而進行提權、系統控制和信息獲取。針對攻擊者對設備各功能執行體的攻擊步驟,基于擬態防御思想設計了基于動態異構冗余的擬態防御模型,如圖2 所示。該結構模型針對每一種軟件的功能,引入多個異構冗余的功能執行體,對同一輸入進行處理,并對多個功能執行體輸出的消息進行多數表決,識別哪個功能執行體輸出消息異常。

圖2 基于動態異構冗余的擬態防御模型
針對每一種軟件功能單元可以用以下模型來描述:通過不同操作系統編譯器,對同一功能軟件編譯生成多個功能等價的異構功能執行體,形成一個功能等價的異構功能執行體池,分別運行在不同架構處理器和操作系統上。由輸入代理模塊將輸入消息分發給每一個執行體,由它們對同一個輸入進行計算后得到多個輸出結果。多數表決模塊對多個結果進行基于某種算法的多數表決,得到歸一化的輸出結果,輸出結果由輸出代理操作后輸出。
基于動態異構冗余的擬態防御模型是一種主動防御模型,具有異構性、冗余性和動態性特點,可以有效應對已知和未知安全威脅。異構性即功能等價的兩個執行體結構組成不相同,描述的是兩個執行體之間的差異性。這種差異性可以保證同樣的攻擊不會同時使兩個執行體同時失效。冗余性是指工作集的異構并行執行體的多樣化。多樣化可以支持表決結果的正確性,但冗余性過多也將增加系統的成本開銷。動態性是指在不同時刻下輪換對外呈現的工作執行體。動態性具有兩大作用。一是通過不定時改變工作執行體降低單位時間內特定部件的暴露時間,增加系統結構信息的不確定性,減小漏洞被發現的風險,同時使系統處于不斷更新的狀態。針對漸進式攻擊等最初可能難以被察覺的行為,動態性的存在可以清除攻擊的前期努力,對潛在漏洞、后門的狀態跳轉等也具有清理作用。二是動態性實質上是在時間維度上對多樣性的擴展,在未感知到威脅時,動態性可以阻礙依賴特定后門的攻擊行為,有效降低了攻擊的成功率;在感知到威脅發生時,它可動態替換并隔離被感染執行體,有效阻斷攻擊者對目標系統的持續控制,并保證系統功能的完整性和持續性。
在通用的PKI、EKI、CPK 這3 種認證體制中,因CPK 具有集中生成和分散存儲的特點,在安全性、規模性、可行性、運行效率上相較于PKI 和EKI 具有無法比擬的優勢[3]。
在CPK 中,用戶公鑰由TPCM 中的設備標識符導出,在映射密鑰Hkey函數下經哈希變換輸出得到一序列值YS。YS 經過一系列行列置換后,由密鑰管理中心(Key Management Center,KMC)計算得到組合私鑰。根據公私鑰的依賴關系,KMC 計算得到組合公鑰,經KMC 再形成公鑰矩陣,然后將私鑰和公鑰矩陣分發到每一個TPCM。依賴TPCM 防篡改和防非法訪問的特點,公私鑰可以得到有效保護。
將CPK 機制用于路由交換設備的認證,可實現設備的雙向身份認證,且在雙方進行身份認證的同時,生成路由協議會話密鑰KEYhmac和數據會話密鑰KEYcrypt,用于保證路由協議的完整性、真實性以及業務數據的機密性。基于CPK 的認證及密鑰協商流程如圖3 所示。

圖3 基于CPK 的認證及密鑰協商流程
基于CPK 的認證及應用流程分為3 個階段:認證及密鑰協商階段、路由學習階段和業務加密階段,詳細流程參見文獻[3]。不同的是,身份認證和密鑰協商流程中的算法用國密算法SM2 取代了國外密碼算法。協商生成的完整性密鑰使用國密算法SM3,保證路由協議的完整性和真實性;協商生成的業務加密密鑰,結合MACsec 框架和硬件加密模塊,使用國密算法SM4 加密業務數據,保證業務數據的機密性。
結合可信計算、擬態防御和組合公鑰等安全機制,將安全與通信進行一體化設計,形成具有內生安全功能的路由交換平臺體系架構,如圖4 所示。
異構可信平臺由多個基于雙體系架構的可信平臺組成。構建可信平臺的處理器架構(MIPS、ARM、PowerPC 等)和操作系統(Linux、VxWorks、uCLinux 等)各異,可信平臺上運行具有功能等價的路由交換協議(OSPF、RIP、BGP、STP、VRRP等)、配置管理(SNMP、WEB、CLI 等)和密鑰協商等軟件模塊。不同可信平臺上運行的功能等價軟件構成擬態調度中的異構體。可信平臺中的TPCM 可以集成在通用處理器中,如自主可控的基于MIPS 架構的龍芯3A4000SE 處理器和基于ARM 架構的飛騰2000/4 處理器等[4]。TPCM 也可以獨立模塊形式存在,通過安全訪問總線與通用處理器連接,由TPCM 控制通用處理器的啟動權限和可信鏈的傳遞。可信平臺通過異構可配置的數據-判決模塊進行互聯,確保各可信平臺CPU 在不能直接通信的基礎上,實現可信平臺之間的安全隔離。

圖4 內生安全路由交換平臺體系架構
擬態調度層主要包括策略生成、擬態調度器、請求分發和應答響應等模塊。策略生成為擬態調度提供針對異構體的調度策略;擬態調度器服務功能請求按照策略生成給定的調度策略,將服務功能請求分配給異構體并接收異構體的反饋,根據策略產生服務響應。對于數據轉發平面而言,通過擬態調度層的分發與仲裁判決,認為控制平面只有一個CPU;對于控制平面的每一個CPU 而言,認為轉發平面只工作在自己的管控下,使得業務層面感知不到其他CPU 的存在。
擬態調度層的核心是擬態調度器,其結構及運行機制決定了其具有高安全防御特性。擬態調度器接收外部的服務功能請求,按照策略生成模塊給定的調度策略為服務功能請求確定為其提供服務的異構體,將服務功能請求分配給異構體并接收異構體的反饋,根據反饋和策略生成模塊給定的調度策略輸出與結構表征不確定的服務響應。這種服務功能與結構表征的不確定性在應對未知風險方面,可以從機理層面獲得主動的防護能力[2,5]。
擬態調度器對功能等價異構體的反饋進行同步處理,使得網絡攻擊者不容易嗅探或掃描到裝置中的缺陷或漏洞,進一步增強了系統的安全性。同步模塊獲取異構體的輸出結果,對異構體的輸出結果做同步處理并生成目標處理結果,并將目標處理結果發送給調度器。同步模塊通過對異構體的輸出結果和工作狀態進行同步處理,克服了由于異構體輸出不同使得調度器無法辨識。屏蔽不同的功能等價異構體在輸出服務響應上存在的差異,使得網絡攻擊者不容易嗅探或掃描到系統的缺陷或漏洞,進一步增強了系統的安全性。調度器內嵌冗余控制功能對輸入與輸出進行隨機組合調度,使得調度器在結構表征層面及時間維度層面具有不同的復雜度,進而加載的陷門(后門)或是漏洞(缺陷)很難被攻方探知或利用,降低了入侵者對網絡系統攻擊的成功率。
數據轉發層根據異構可信平臺路由交換協議協商或者通過配置管理模塊的配置,完成port 表、VLAN 表、L2 地址表、L2 組播表、接口表、主機路由表、子網路由表以及L3 組播表等表項的生成與更新,根據表項規則實現數據交換、路由轉發或者丟棄處理。
安全傳輸層基于IEEE 802 局域網絡的數據安全通信方法結合CPK 認證機制實現相關的功能。MACsec 機制及國密算法SM4 提供安全的MAC 層數據發送和接收服務,包括數據機密性、數據完整性檢查及數據源真實性校驗。MACsec 與CPK 認證機制配合使用,CPK 認證過程成功后使用國密算法SM2 計算生成會話密鑰KEYencry,并將會話密鑰寫入Key Queue,然后調用加密引擎完成數據加密和完整性計算。該安全機制主要用于網絡節點之間的安全防護,確保節點之間的雙方身份真實可信,防止數據信息泄漏和被篡改。
針對路由交換設備面臨的安全問題,本文結合可信計算、擬態防御和CPK 組合公鑰等安全防護機制構建了內生安全路由交換平臺,可提供完整性、機密性、動態性、異構性和冗余性等安全防護能力,有助于抵御來自多個層面的已知或未知的威脅攻擊,可為構建安全的路由交換平臺提供技術支撐。