文獻標識碼: A
DOI:10.16157/j.issn.0258-7998.191208
中文引用格式: 劉建兵. 基于非對稱算法的工控核心區內嵌認證技術[J].電子技術應用,2019,45(12):10-15.
英文引用格式: Liu Jianbing. Embedded authentication technology for industrial control core area based on asymmetric algorithm[J]. Application of Electronic Technique,2019,45(12):10-15.
0 引言
工業控制系統安全是國家網絡安全的重要組成部分,等保2.0將工業控制系統安全納入標準體現了國家保護工業控制系統安全的政策要求。工業控制系統也是關鍵信息基礎設施的基礎,探索工業控制系統網絡安全的新方法,對于提高關鍵信息基礎設施安全防護能力和網絡安全,應對網絡安全威脅有積極意義。
1 工業控制系統安全防護新方法
業界流行的工業控制系統安全防護技術和方案主要在外圍(過程監控層以上)進行,工業控制系統核心區(圖1中粗黑框部分:現場控制層+過程監控層)的防護仍然十分薄弱,甚至一片空白。通過在工業控制系統核心區交換機上強化安全功能,建立工業控制系統核心區的邊界準入系統,是工控系統安全防護的新方法,該方法基于標準工業交換機,在不影響其基本通信功能的前提下,對接入交換機的計算機設備進行認證。結合交換機技術,保證通過認證的合法計算機數據包可以通過交換機轉發,未通過認證的計算機交換機拒絕轉發,在工業控制系統核心區建立最后防線以保護核心區安全。基于交換機的訪問控制能力,依據核心區業務和設備的通信關系建立核心區訪問控制策略,禁止正常業務以外數據通信。
圖1摘自最新發布的GB/T 22239-2018《信息安全技術 網絡安全等級保護基本要求》[1]附錄G,其中的現場控制層和過程監控層是工業控制系統中與生產過程控制直接相關的區域,該區域功能正常仍能夠保證基本的生產能力,即使外圍區域遭遇網絡攻擊而失能,核心區域仍能維持業已設定的生產控制邏輯正常執行,因此工業控制系統核心區的安全才是工業控制系統安全的核心,只有核心區得到了有效的保護,才能保證工業控制系統的安全。
2 內嵌認證技術和安全交換機
內嵌認證(Embedded Authenitication,EA)是建構在網絡接入層的新型認證體系,內嵌在每一個接入交換機內部的內嵌認證服務(Embedded Authenitication Server,EAS)通過認證數據同步協議(Authenitication Data Synchronization Protocol,ADSP)協同工作,每個接入交換機與接入終端通過接入認證協議AAP完成接入認證過程,實現網絡邊界的準入控制。這兩個協議不是本文重點,詳情略過。內嵌認證是安全交換機的重要功能,是實現工控系統核心區安全認證和準入的基礎,也是安全交換機區別于普通交換機的主要特征。
內嵌認證包括嵌入認證和網絡準入控制兩個相關聯的子功能,嵌入認證EA是指內嵌在接入交換機的身份認證服務,網絡準入控制(Network Access Service,NAS)是對接入網絡對象的入網控制。內嵌認證是將認證服務內嵌在交換機中實現的,通過內嵌認證將單純執行通信任務的網絡交換機轉變為通信安全功能一體化設備,并在網絡邊緣分布認證服務。
內嵌認證系統和傳統認證系統有很大的區別,如圖2所示,左邊是傳統認證系統架構,右邊是嵌入認證系統架構。首先,傳統的認證系統是縱向的架構,由中心化的認證服務端Radius Server和認證客戶端組成,在傳統認證系統中,網絡僅僅是通道,并不是認證系統的功能要素;內嵌認證系統是基于網絡邊界的橫向架構,由多個平行部署的認證服務端EAS和認證客戶端組成,并且每個EAS是內嵌在接入交換機內部的,使網絡接入設備成為認證系統的不可或缺要素。其次,認證過程不同,傳統認證系統可以認為是一種網絡服務,是否認證是由應用決定的,接入設備在特定應用之前,不經認證可以先行接入網絡,在應用需要時,才由客戶端發起認證,認證終結在網絡內部的認證服務器,即認證與網絡無關(除802.1x);嵌入認證系統是和網絡接入相關的認證,不是可選的網絡應用服務,其認證是強制性的,在終端接入網絡時即認證,先認證后入網是內嵌認證的主要特征之一;認證是由網絡接入交換機發起的,終結在交換機內部的EAS上;第三,傳統認證技術采用的認證標識、認證協議和算法都是國外標準,嵌入認證技術采用獨立設計的認證標識和認證協議,基于非對稱算法,特別是可以基于國密算法SM2實現;第四,傳統認證技術主要是基于PKI體系,使用X.509標準的數字證書和SM2/RSA算法,嵌入認證技術主要采用密鑰對,不依賴證書,不僅可以支持PKI公鑰體制,使用X.509格式數字證書,還可以支持無證書的IPK體制。
從形式上來看,內嵌認證和802.1x認證技術有類似的地方,主要是都在接入交換機上控制終端的入網,但又有很大的不同,前者在架構上仍屬傳統架構,使用中心化的Radius Server,后者使用分布化的EAS;前者在Radius Server與客戶端之間通過EAP協議完成認證過程,后者使用AAP協議。
3 基于國密算法SM2的內嵌認證技術實現
內嵌認證技術可以基于多種非對稱算法實現,為了便于描述內嵌認證技術的主要流程和關鍵,僅以國密SM2算法和標識秘鑰(Identity-Key,IPK)秘鑰體系實現為例具體敘述內嵌認證的實現。
3.1 內嵌認證總體流程
基于非對稱算法的內嵌認證技術,實現了工控系統核心區的終端認證接入。終端(即認證客戶端)和內嵌認證交換機通過接入認證協議AAP,利用國密SM2算法,進行認證報文加解密交互實現終端認證準入,具體見圖3。
終端在交換機上認證總體過程如下:
(1)交換機端EAS保存了合法用戶公鑰(Public Key,PBK),當終端接入邊界交換機時,其mac地址被交換機發現,交換機端EAS即發起認證挑戰,根據mac地址在本地公鑰庫中查詢到對應的PBK;
(2)交換機端EAS未找到mac對應的PBK,不進行認證直接進入等待Hold超時狀態;找到mac對應的PBK,進入下一步認證工作;
(3)交換機端EAS與認證客戶端進行報文交互認證(包括EAS的認證挑戰報文、客戶端的挑戰響應報文等);
(4)交換機端EAS對終端認證不成功,進入等待Hold超時狀態;認證成功則打開通路,允許終端接入網絡進行通信;
(5)首次認證通過后,ESA設置周期認證定時,按設定周期向客戶端發起認證挑戰(認證過程和首次認證相同),如果認證成功,則EAS保持通路打開狀態,如果認證失敗,則關閉通路,進入Hold超時狀態。
3.2 交換機端內嵌認證服務實現
接入認證協議(Access Authenitication Protocol,AAP)是內嵌認證中實現接入對象到交換機認證準入的數據和通信規程。公鑰體制PKI/IPK和國密算法SM2是實現AAP協議的關鍵,圖4展示了EAS實現的主要認證過程,描述了SM2算法在其中的使用方法和作用。EA技術在密鑰分發完成的前提下,EAS端保存了合法客戶端的公鑰PBK,私鑰(Private Key,PRK)在客戶端保存。
交換機端認證過程:交換機端EAS使用根據mac地址檢索到的PBK對一個1 024 bit的隨機數進行SM2加密,后將生成密文發送給mac地址對應的客戶端主機,該隨機數的MD5值與mac對應保存在指紋緩存中,等待客戶端主機的回應。
一旦接收到主機的挑戰響應,EAS取出數據包載荷數據,將其MD5值與指紋緩存中mac對應的指紋比對,如果相同,則認證成功,隨即打開交換通路,交換機開始轉發該主機數據包,完成網絡接入,如果不同或者接收不到回應,交換通路一直處于關閉狀態,交換機丟棄該主機所有數據包,拒絕接入網絡。
首次認證通過后,EAS進入對客戶端的周期認證,認證流程和首次認證過程類似,不再贅述。所不同的是,在周期認證失敗或客戶端離線后,EAS會關閉該接入主機的交換通道,并進入下一次認證的準備狀態。
3.3 客戶端認證實現
客戶端認證過程是:主機客戶端監聽網絡二層數據包,當收到發給本機的認證挑戰數據包后,取出數據包載荷并用本機私鑰PRK調用SM2解密函數解密數據,然后把數據用二層數據包發回EAS。圖5展示了客戶端軟件的主要認證流程。
3.4 PKI/IPK下的密鑰管理差異
從上述實現過程中可以發現,嵌入認證對SM2算法的使用與一般的加密過程不同,一般的加密過程是使用非對稱密鑰協商并加密對稱密鑰,再使用對稱密鑰對數據內容進行加密傳輸和解密;內嵌認證直接使用非對稱密鑰對數據內容進行加解密,即公鑰加密,私鑰解密,簡化了加解密過程,一次交互即可完成認證數據傳輸,降低交換機端計算資源消耗,提高通信和認證效率。該方式采用256 bit密鑰長度,認證數據長度設計為1 024 bit,十分適合SM2算法對分組數據的處理。認證數據采用隨機數,每次認證過程的內容均不同,認證數據有效時間僅為一個認證周期(認證周期設定為10 s),從效果上看就是一次一密,攻擊窗口時間很短,提高了抗攻擊強度。
PKI密碼體制下,數字證書是公鑰的載體,EAS端需要導入和管理接入端的數字證書,認證過程中EAS直接使用公鑰完成認證數據的加密。
IPK密鑰體制下,公私鑰對不依賴于數字證書,公鑰是依據組合標識(Combinnation Identification,CID)和公鑰種子(Public Key Seed,PKS)計算得出的,因此EAS端管理的不是公鑰,而是客戶端的組合標識CID。
4 工控核心區內嵌認證準入的仿真驗證
4.1 仿真驗證環境建立
典型工控系統核心區由工業交換機、上位機、下位機、服務器、打印機等組成,其中上位機、下位機和服務器屬于通用計算機,運行通用操作系統,主要是Windows和Linux。仿真驗證環境針對工控系統核心區網絡環境構建,以安全交換機模擬標準網絡交換機,以PC模擬工程師站、操作站和服務器等通用主機。
仿真驗證環境由3臺安全交換機和3臺PC組成,采用3臺VRV 6211安全交換機組成核心區網絡仿真環境,3臺PC安裝Windows操作系統和內嵌認證客戶端軟件,驗證終端在內嵌認證交換機上的認證準入實現,具體仿真驗證環境見圖6。
4.2 認證功能驗證
驗證步驟如下:
(1)按圖6連接設備,PC1、PC2、PC3未安裝認證客戶端軟件,使用ping命令驗證連通性;
(2)PC1、PC2、PC3安裝認證客戶端軟件,使用ping命令驗證連通性;
(3)在PC1的認證客戶端上導入私鑰,使用ping命令驗證連通性;
(4)在PC2的認證客戶端上導入私鑰,使用ping命令驗證連通性;
(5)在PC3的認證客戶端上導入私鑰,使用ping命令驗證連通性;
(6)在SW1上逐個刪除PC1、PC2、PC3的公鑰(CID),使用ping命令驗證連通性。
驗證結果如下:
(1)按步驟(1)測試,PC1、PC2和PC3相互之間不能ping通,三臺PC都不能ping通三臺交換機設備的IP地址;
(2)按步驟(2)測試,PC1、PC2和PC3相互之間不能ping通,三臺PC都不能ping通三臺交換機設備的IP地址;
(3)按步驟(3)測試,PC1在導入匹配的私鑰后,能夠ping通三臺交換機的IP地址;
(4)按步驟(4)測試,PC2在導入匹配的私鑰后,能夠ping通三臺交換機的IP地址,并能ping通PC1;
(5)按步驟(5)測試,PC3在導入匹配的私鑰后,能夠ping通三臺交換機的IP地址,并能ping通PC1和PC2;
(6)按步驟(6)測試,在SW1上刪除PC1的CID大約10 s后,PC1到其他兩臺PC和所有交換機的ping命令全部超時,繼續刪除PC2和PC3的CID,結果與PC1相同。
4.3 認證速度測試
驗證步驟如下:
(1)按照驗證環境連接設備,所有PC安裝認證客戶端并導入各自匹配的私鑰,SW1上導入三臺PC的CID;
(2)配置SW2,將PC2連接的端口流量鏡像至PC3與SW3連接的端口,保證抓包工具wireshark(V 3.0.0)抓獲PC3的流量;
(3)斷開PC2與SW2的連接后,至少30 s后再恢復連接,重復進行10次,每次嘗試PC2登錄SW2,看是否登錄成功;
(4)保持PC2與SW2的連接,用抓包工具wireshark(V3.0.0)持續抓包200 s。
驗證結果如下:
(1)按步驟(1)準備環境,PC2能ping通所有交換機和PC3;
(2)按步驟(2)配置交換機端口鏡像,并在PC3的wireshark上能抓到來自PC2的數據流量;
(3)按步驟(3)測試,在PC2登錄SW2后拔下PC2的網線,至少30 s以后再插上網線,用wireshark抓取首次認證數據包,包特征為eth.type=0x876d,如此重復至少10次,每次抓獲的數據包記錄在表1中;
(4)按步驟(4)測試,在PC2首次認證成功、網絡連通的情況下,用wireshark連續抓取數據包,持續200 s左右,包特征為eth.type=0x876d,抓包數據的時間數據記錄在表1;
(5)數據處理,首次認證耗時為交換機SW2發出首個在線查詢包時間與收到認證挑戰回應時間的差值,T=Q-R,單位s,保留6位有效數字;周期認證耗時為交換機SW2發出認證挑戰時間與收到挑戰回應時間的差值,T=C-R,單位s,保留6位有效數字。
4.4 認證抗仿冒驗證
驗證步驟如下:
(1)按照驗證環境連接設備;
(2)確認PC1、PC2、PC3已經通過認證,網絡連通正常;
(3)在PC3上修改網卡地址為PC2的網卡地址,測試PC3網絡連通性;
(4)在PC3上修改網卡地址為PC2的網卡地址,PC3的客戶端導入PC2的私鑰替代PC3的私鑰,測試PC3的網絡連通性;
(5)將PC2的硬盤克隆到PC3本地,并在PC3上通過工具修改網卡地址為PC2的網卡地址,查看PC3網絡連通性。
驗證結果如下:
(1)驗證步驟(2)中,每臺PC分別ping其他兩臺PC和三臺交換機,確認三臺PC已通過認證,網絡通信正常;
(2)驗證步驟(3)中,在PC3上修改操作系統mac地址,PC3對其他網元的ping測試全部超時,不能ping通直連的交換機SW3,PC3的接入認證失敗;
(3)驗證步驟(4)中,繼步驟(3)后,在PC3上導入PC2的私鑰,PC3對其他網元的ping測試仍然超時,對直連交換機SW3的ping測試依然超時,認證不能通過,PC2除了對PC3的ping測試超時外,對其他網元的ping響應正常,PC2認證未受影響;重啟PC3后重復上述測試,結果相同;
(4)驗證步驟(5)中,克隆硬盤安裝到PC3啟動后,修改操作系統為PC2的mac地址,PC3對其他網元的ping測試全部超時,包括直連的交換機SW3,認證失敗。
4.5 驗證結論
通過對工控系統核心區典型網絡環境下通用計算機認證功能的驗證,得出如下結論:
(1)內嵌認證功能對符合內嵌認證條件的合規交換機接入網絡實現了認證和準入,認證功能確定,準入功能有效;
(2)認證速度:計算機首次接入網絡的認證時間為2.79 s、周期認證時間為0.52 s(精確到1% s);
(3)可以抵抗常見的仿冒手段,mac地址仿冒、私鑰盜用、硬盤克隆不能突破內嵌認證的認證和準入。
5 結論
內嵌認證作為采用非對稱算法的新型認證準入技術,對提高網絡安全能力具有現實意義。作為一項新技術還有待進一步發展和完善,目前的內嵌認證系統主要是對計算機類接入設備實現了強認證,非計算機類設備采用的依然是mac認證、mac/ip端口綁定等認證方式。后者采用的技術從認證的角度來看,可以說都是非可靠認證技術,有明顯的可仿冒漏洞,mac/ip的假冒可以輕易騙過認證系統,這是需要繼續解決的問題。筆者認為,嵌入認證技術未來的方向,是將認證客戶端植入非計算機接入設備內部,使非計算機設備也能夠采用和計算機設備同類的基于非對稱算法的強認證。
嵌入式系統設備尚無非對稱算法支撐,是阻礙其實現嵌入認證的主要障礙,如能將非對稱算法植入嵌入系統作為基礎功能,將為嵌入認證在嵌入式設備上的實現鋪平道路,可喜的是國內已經有先鋒廠商將密碼芯片植入嵌入系統,這將極大地提高嵌入系統實現內嵌認證的能力。嵌入認證目前已經實現了Linux系統下的嵌入認證客戶端,其對于采用Linux的嵌入系統設備有很好的可移植性,并已經與主要國產PLC和打印機廠商做了初步的探索,取得初步進展,突破可期;未來一旦實現了PLC和打印機的嵌入認證,工控系統核心區的全部系統組件即可基于內嵌認證技術建立工業控制系統核心區自主可控認的證準入系統,并可期望取得技術上的優勢,這對于建立工業控制系統網絡安全第二道防線,有效抵御網絡攻擊和威脅具有重要意義。
參考文獻
[1] GB/T 22239-2018信息安全技術網絡安全等級保護基本要求[S].2018.
作者信息:
劉建兵
(北京北信源軟件股份有限公司,北京100044)