寧黃江 郭翔宇 劉芮汐 白利芳
(中國軟件評測中心(工業(yè)和信息化部軟件與集成電路促進中心),北京 100048)
工業(yè)互聯(lián)網是新一代信息技術與工業(yè)經濟領域深度融合形成的新興業(yè)態(tài),它將工業(yè)系統(tǒng)與高級計算、分析、傳感技術及互聯(lián)網高度融合,是一種能夠實現(xiàn)將人、機、物全面互聯(lián)的新型網絡基礎設施[1]。隨著工業(yè)互聯(lián)網成為新基建的組成部分,工業(yè)互聯(lián)網已成為國家關鍵信息基礎設施的重要組成部分。
沒有網絡安全就沒有國家安全,沒有信息化就沒有現(xiàn)代化,黨的十八大以來,以習近平同志為核心的黨中央重視互聯(lián)網、發(fā)展互聯(lián)網、治理互聯(lián)網。工業(yè)互聯(lián)網的安全可控是確保其在各生產領域能夠落地實施的前提,更是產業(yè)安全和國家安全的重要基礎和保障。密碼技術作為保障工業(yè)信息安全的基礎性技術,在工業(yè)互聯(lián)網網絡體系、平臺體系、應用體系建設和網絡安全防護體系中占據(jù)著舉足輕重的地位。我國高度重視國產密碼算法尤其是輕量級密碼算法的研究及其在工業(yè)互聯(lián)網領域的應用。國產商用密碼算法已經形成了一套完整體系[2],并且由我國自主設計的ZUC法已經成為第三代合作伙伴計劃(3GPP)中的4G國際標準,SM2/SM9數(shù)字簽名算法、SM3密碼雜湊算法、SM4分組密碼算法,SM9標識加密算法也已達到國際先進水平,并且通過了國際標準化組織(ISO)和國際電工委員會(IEC)的認證,現(xiàn)已成為國際標準。
本文首先闡述密碼技術在工業(yè)互聯(lián)網平臺基礎設施建設、數(shù)據(jù)全生命周期保護、訪問控制等方面的應用情況;其次,分析了目前密碼技術在工業(yè)互聯(lián)網應用中所存在的問題;再次,針對工業(yè)互聯(lián)網終端的身份識別問題,設計了一種基于國密算法的安全身份認證協(xié)議;最后,分析該協(xié)議的雙向認證、用戶匿名性,并能抵抗假冒攻擊等安全特性。
在工業(yè)互聯(lián)網平臺基礎設施建設中,需要用到密碼服務、密碼管理和密碼應用。在IaaS層,密碼應用在租戶數(shù)據(jù)和虛擬機鏡像的數(shù)據(jù)加密保護方面;在PaaS層,密碼應用在數(shù)據(jù)加解密、安全認證、授權管理和協(xié)同簽名等方面;在SaaS層,密碼應用在為工業(yè)互聯(lián)網用戶提供安全接入、數(shù)據(jù)加密、數(shù)據(jù)防篡改、工業(yè)敏感數(shù)據(jù)保護等方面,例如采用SM2算法和SM3算法進行數(shù)字簽名和完整性校驗,并提供數(shù)據(jù)原發(fā)證據(jù)和數(shù)據(jù)接收證據(jù),實現(xiàn)抗抵賴保護。
在工業(yè)互聯(lián)網數(shù)據(jù)全生命周期安全保護中,國產密碼算法在保障系統(tǒng)和數(shù)據(jù)的機密性、完整性、可用性時發(fā)揮著重要作用,包括在IaaS層的基礎資源池和設施建設、PaaS層的數(shù)據(jù)挖掘和海量數(shù)據(jù)匯聚分析、SaaS層的工業(yè)軟件和微服務開發(fā)應用中都需要應用密碼算法進行數(shù)據(jù)的存儲加密、通信加密、完整性校驗。使用SM1、SM2、SM3、SM4、SM7、SM9、ZUC等國產密碼算法是保證我國工業(yè)互聯(lián)網網絡安全、平臺安全、數(shù)據(jù)安全的重要途徑。
在工業(yè)互聯(lián)網身份鑒別與訪問控制中,網絡平臺的邊緣層、IaaS層、PaaS層和SaaS層中的身份鑒別與訪問控制都需要應用密碼算法來保障網絡安全。工業(yè)互聯(lián)網的邊緣接入層存在海量的設備接入平臺,采用白名單機制、強制訪問控制等安全機制可以對接入的主體和客體進行細粒度的訪問控制;在IaaS層、PaaS層和SaaS層,可以應用基于私鑰簽名的SM2算法對服務器用戶、登錄用戶進行身份認證和鑒別[3]。應用SM2算法和強訪問控制等安全機制能夠更好地實現(xiàn)工業(yè)互聯(lián)網中的身份認證和鑒別,同時基于主體身份和客體屬性的細粒度訪問控制,進而提升工業(yè)互聯(lián)網設備接入安全性。
工業(yè)互聯(lián)網中存在海量的工業(yè)控制協(xié)議,種類多達千余種,但是大多都缺少安全機制,不能夠很好地適應工業(yè)互聯(lián)網系統(tǒng)中各參與組件之間的泛在連接[4]。工控通信協(xié)議或規(guī)約在其設計時通常只強調通信的實時性和可用性,普遍缺乏對安全性的考慮,如欠缺足夠強度的授權、認證、加密等安全保護手段。特別地,對于工控系統(tǒng)中的無線通信協(xié)議而言,其在缺少安全機制的情況下會極其容易遭到第三者的竊聽,同時也大大增加了欺騙性攻擊發(fā)生的可能性[5]。
現(xiàn)有工控系統(tǒng)在使用有風險的密碼算法,以及有風險的密碼算法提供的不安全密碼服務,比如容易被破解的MD4、MD5、SHA-0、SHA-1、RSA-512、RSA-1024、DES、SKIPJACK、RC2等密碼算法,這些算法均己被警示過存在不同程度的安全風險。一些系統(tǒng)運營者和開發(fā)者為節(jié)省資源或節(jié)約成本,在開發(fā)工作中存在有意忽視密碼技術,或者規(guī)避使用密碼產品的情況,那么此類系統(tǒng)中信息的機密性、真實性、完整性和不可否認性等安全特性必然會缺乏相應密碼算法、協(xié)議的支撐,從而致使整個信息系統(tǒng)缺乏安全保障[6]。
工業(yè)互聯(lián)網網絡安全自主可控的核心和關鍵在于具備先進的密碼算法和技術產品,然而我國互聯(lián)網信息技術在發(fā)展過程中,在某些領域(芯片、操作系統(tǒng)等)長期依賴西方發(fā)達國家技術體系,直至當前,我國工業(yè)信息化建設中的“信息孤島”問題也未能得到妥善解決。我國研究密碼算法的基礎薄弱,研究密碼技術起步較晚,與發(fā)達國家在密碼行業(yè)的發(fā)展相比還存在一定差距,類似于密碼芯片等關鍵硬件產品和技術長期受制于西方國家的壟斷[7]。
為有效解決密碼技術在我國工業(yè)互聯(lián)網中存在的問題,在研制自主創(chuàng)新技術的激勵下,本文應用國產密碼算法設計了一種工業(yè)互聯(lián)網安全身份認證協(xié)議,并且該協(xié)議只需2次握手即可完成雙方的身份認證。認證過程應用SM3、SM4算法確保數(shù)據(jù)的完整性和保密性。設計過程共分為3個階段,分別為初始化階段、注冊階段、認證階段,所涉及符號如表1所示。
表1 符號說明
在該階段,服務器RS選擇私鑰s,選擇一大素數(shù)q和p,定義在有限域Fp上的橢圓曲線函數(shù)為E/Fp,選擇E/Fp上的一個階為q的點P,生成橢圓曲線循環(huán)加法群G,雜湊算法SM3和SM4對稱加密算法。服務器公開系統(tǒng)參數(shù){q,P,E/Fp,SM3(m),ESM4(l,m)/DSM4(l,m)}。
在這一階段,用戶將自己的身份信息通過安全信道發(fā)送給服務器進行注冊。具體執(zhí)行過程如下:
步驟1:用戶選擇他的身份IDu,并從有限域Fp中選擇一個隨機數(shù)xu,然后通過一條安全信道將消息{IDu,Nu}發(fā)送給服務器,其中Nu=SM3(m1),其中m1={IDu,xu}。
步驟2:服務器收到消息后,計算Lu=SM3(IDu⊕s),Su=SM3(s),并且將消息{Su,Lu}通過安全信道發(fā)給用戶存儲。
當一個合法的用戶加入網絡時,需要先通過服務器的認證才會建立起會話密鑰,認證過程如圖1所示,詳細的步驟如下:
圖1 認證階段
步驟1:用戶U選擇一個隨機數(shù)au,并且計算Au=auP,使用密鑰Su,通過SM4算法對消息{IDu||Au}進行加密AIDu=ESM4(Su,IDu||Au)和Xu=SM3(m2),其中m2={IDu,Au,Lu}。然后在公共信道上發(fā)送請求消息{AIDu,Xu}給RS。
步驟2:當RS收到請求消息{AIDu,Xu}后,RS計算Su=H(s),并使用Su,通過SM4算法對消息{AIDu}進行解密DSM4(su,AIDu)=(IDu||Au),然后RS計算Lu=SM3(IDu⊕s)和X'u=SM3(m'2),其中m'2={IDu,Au,Lu},驗證計算所得的X'u是否與Xu相等。如果不相等,RS馬上終止此階段。否則,RS選擇一個隨機數(shù)br,并且計算Br=brP,Kur=brAu=aubrP,和Xr=SM3(m3),其中m3={Kur,Br,Lu}。最后RS發(fā)送消息{Xr,Br}給U。
步驟3:當收到消息{Xr,Br}后,U計算Kur=auBr和X'r=SM3(m'3),其中m'3={Kur,Br,Lu}。U通過判斷X'r和Xr是否相等來驗證消息的正確性,如果正確,則U和RS完成認證過程。U和RS生成會話密鑰SKur=SM3(m4),其中m4={IDu,Au,Br,Kur,Lu}。
服務器通過用戶的身份IDu、密鑰參數(shù)Su以及密鑰、身份參數(shù)Lu,驗證用戶的合法性;用戶利用公鑰PK以及密鑰、身份參數(shù)Lu驗證服務器的合法性。因此,本方案認證過程實現(xiàn)了雙向認證。
隨著用戶對自己的隱私信息的重視,在身份認證方案中實現(xiàn)身份匿名越來越重要。因為攻擊者可以獲取用戶和服務器之間的消息,如果知道用戶身份就可以順藤摸瓜找到該用戶更多重要的信息。本方案確保了攻擊者不會從任何竊取的認證消息中發(fā)現(xiàn)用戶的身份。因為U從來沒有在公共信道上發(fā)送他的身份IDu給RS,用戶U使用隨機數(shù)對身份進行保護生成AIDu=ESM4(Su,IDu||Au),并且發(fā)送{AIDu,Xu}給RS。由于攻擊者不知道密鑰Su的值,所以不能得知U的身份。綜上所述該方案可以實現(xiàn)用戶匿名性。
在該攻擊中,攻擊者試圖冒充用戶或者服務器與另一方進行通信。顯然,在本方案中攻擊者不能冒充U或者RS中的任何一方,因為攻擊者不能偽造消息{AIDu,Xu}和{Xr,Br}。具體來說,如果攻擊者想要冒充U,他首先選擇一個隨機數(shù)去生成請求消息{AIDu,Xu}。需要攻擊者計算AIDu=ESM4(Su,IDu||Au)和Xu=SM3(IDu,Au,Lu),也就是說,攻擊者需要知道Lu=SM3(IDu⊕s)值才可以冒充U發(fā)送一條有效的請求消息。攻擊者是不可能知道RS的私鑰s和U的身份IDu,攻擊者不能通過RS對他的認證。同樣的,攻擊者也不能偽造消息{Xr,Br}使得U信服。綜上所述本方案可以有效地抵抗用戶/服務器假冒攻擊。
本文介紹了密碼技術在工業(yè)互聯(lián)網中的應用情況,分析了密碼技術在工業(yè)互聯(lián)網應用中目前所存在的問題,針對工業(yè)互聯(lián)網終端的身份識別問題,設計了一種基于國密算法的安全身份認證協(xié)議,該協(xié)議認證過程應用國密算法SM3、SM4確保數(shù)據(jù)的完整性和保密性。最后,分析表明該協(xié)議具備雙向認證、用戶匿名性,并能抵抗假冒攻擊等安全特性,可進一步加強工業(yè)互聯(lián)網終端身份識別安全。