石 碩,林喜軍,于樹松
(中國海洋大學(xué) 計算機(jī)科學(xué)與技術(shù)學(xué)院,青島 266100)
隨著信息技術(shù)的快速發(fā)展以及Internet時代的到來,各行業(yè)受到極大地刺激和推動,逐漸向“互聯(lián)網(wǎng)+”模式轉(zhuǎn)型和升級。
制造業(yè)的發(fā)展?fàn)顩r作為衡量一個國家國民經(jīng)濟(jì)水平的重要指標(biāo),自然也不例外。當(dāng)今制造業(yè)正在向“互聯(lián)網(wǎng)+制造”模式發(fā)展。美國率先發(fā)布“國家先進(jìn)制造戰(zhàn)略計劃”,日本、德國等國家緊隨其后。在這股工業(yè)信息化改革的浪潮中,我國自然不甘人后,相應(yīng)地發(fā)布了“中國制造2025”,旨在發(fā)展智能化協(xié)同制造新模式,提升制造業(yè)數(shù)字化程度。
數(shù)控機(jī)床是制造業(yè)的基礎(chǔ)和根本,廣泛應(yīng)用于制造業(yè)的各個行業(yè),下游產(chǎn)業(yè)鏈涉及面極廣,包括國防軍工、石油化工、船舶產(chǎn)業(yè)、機(jī)械行業(yè)、汽車產(chǎn)業(yè)以及其他工業(yè)制造相關(guān)領(lǐng)域。
目前,數(shù)控機(jī)床產(chǎn)業(yè)主要集中在亞洲和歐美[1]。我國數(shù)控機(jī)床產(chǎn)量占全球的31.5%,僅次于日本(占比32.1%),遠(yuǎn)高于排名第三位的德國(占比17.2%)[2]。
我國數(shù)控機(jī)床產(chǎn)量雖然很高,但是世界排名前十位的數(shù)控機(jī)床制造商卻未見我國企業(yè)身影,全部被日本、德國和美國的企業(yè)占領(lǐng)。
這從側(cè)面證明了,與歐美世界工業(yè)強(qiáng)國相比,我國在制造能力和產(chǎn)業(yè)協(xié)同方面還遠(yuǎn)遠(yuǎn)落后。其中最主要的原因是整個產(chǎn)業(yè)的信息化程度遠(yuǎn)不及歐美發(fā)達(dá)國家,信息化技術(shù)相對滯后,同時缺乏相應(yīng)的支撐平臺[3]。
在跨國企業(yè)間競爭日益激烈、國際局勢日趨緊張的今天,數(shù)控機(jī)床產(chǎn)業(yè)的發(fā)展關(guān)乎到國計民生。
目前我國數(shù)控機(jī)床產(chǎn)業(yè)已形成區(qū)域集聚的狀態(tài)[4],這就使得原本串行的工作模式無法滿足產(chǎn)業(yè)快速發(fā)展的需求,整個產(chǎn)業(yè)鏈中包含的原材料供給、產(chǎn)品結(jié)構(gòu)設(shè)計、計劃調(diào)度、質(zhì)量和財務(wù)管理、產(chǎn)品銷售、售后服務(wù)、廢品回收等各個方面需要有機(jī)地聯(lián)合起來,因此,推動我國數(shù)控機(jī)床產(chǎn)業(yè)升級轉(zhuǎn)型,發(fā)展區(qū)域網(wǎng)絡(luò)協(xié)同制造勢在必行。
數(shù)控機(jī)床產(chǎn)業(yè)集群的區(qū)域網(wǎng)絡(luò)協(xié)同制造需要充分結(jié)合信息技術(shù),以及以云服務(wù)、物聯(lián)網(wǎng)、邊緣計算為代表的網(wǎng)絡(luò)高新技術(shù)[5],實現(xiàn)供應(yīng)鏈上下企業(yè)的并行合作模式,將Internet、智能機(jī)器、工業(yè)云平臺等相結(jié)合,形成基于云制造的網(wǎng)絡(luò)協(xié)同制造模式[6]。
基于云制造的區(qū)域網(wǎng)絡(luò)協(xié)同制造模式(如圖1所示)允許產(chǎn)業(yè)鏈的合作企業(yè)實時接入“云端”并提供信息共享服務(wù)[7]。
圖1 基于云制造的區(qū)域網(wǎng)絡(luò)協(xié)同制造信息共享模式
然而,亟需解決的一個重要問題是,如何在供應(yīng)鏈內(nèi)部以及跨供應(yīng)鏈的企業(yè)之間實現(xiàn)高層次、透明的信息共享。目前我國大小企業(yè)早已實現(xiàn)信息化和網(wǎng)絡(luò)化,它們各有自己的信息系統(tǒng)。不同企業(yè)的系統(tǒng)由于并未遵循統(tǒng)一的開發(fā)標(biāo)準(zhǔn),各系統(tǒng)的數(shù)據(jù)格式、接口參數(shù)、網(wǎng)絡(luò)報文格式等千差萬別,這就導(dǎo)致各系統(tǒng)之間無法實現(xiàn)直接的信息共享。因此,基于云制造的區(qū)域網(wǎng)絡(luò)協(xié)同制造模式的一個研究方面就是探討高層次、透明的信息共享解決方案。
實現(xiàn)信息共享的一種主流方法是基于REST的WEB服務(wù)交互方式。相比于XML-RPC和SOAP,REST更加簡單輕量。
REST并沒有一個明確的標(biāo)準(zhǔn),它只是一組架構(gòu)約束條件和原則。滿足這些約束條件和原則的應(yīng)用程序稱為RESTful,它基于HTTP,可以使用XML傳遞數(shù)據(jù)。
圖2 RESTful架構(gòu)圖
然而,REST中并沒有給出保證數(shù)據(jù)機(jī)密性和完整性的具體方法,這就導(dǎo)致RESTful在實現(xiàn)信息共享時需要自行實現(xiàn)安全保護(hù)。
本論文面向數(shù)控機(jī)床產(chǎn)業(yè)集群區(qū)域網(wǎng)絡(luò)協(xié)同制造,提出一種基于RESTful的數(shù)據(jù)安全保護(hù)機(jī)制,以提高信息系統(tǒng)之間信息共享的安全性。該機(jī)制可以保證共享數(shù)據(jù)的機(jī)密性、完整性、認(rèn)證性,防范舊消息重放攻擊,并提供輕量級的密鑰管理功能。
不失一般性,在本文提出的數(shù)據(jù)保護(hù)機(jī)制中,假設(shè)云平臺擁有一個系統(tǒng)主密鑰,記為msk。
當(dāng)企業(yè)的信息系統(tǒng)接入云端時,云平臺為信息系統(tǒng)產(chǎn)生一對密鑰,分別記為k1和k2。設(shè)F是安全的偽隨機(jī)函數(shù)(PRF),則具體步驟如下:
1)為企業(yè)的信息系統(tǒng)分配系統(tǒng)唯一可識別的身份信息,記為IDi。
2)為信息系統(tǒng)產(chǎn)生當(dāng)前時間戳Ti。
3)將信息系統(tǒng)的相關(guān)信息及(IDi,Ti)保存到數(shù)據(jù)庫中。
4)計算k1=F(msk,i||1)和k2=F(msk,i||2)。
其中,k1用于保證數(shù)據(jù)機(jī)密性,k2用于保證數(shù)據(jù)完整性。
云平臺通過秘密信道將密鑰對(k1,k2)分發(fā)給信息系統(tǒng)。
如果該企業(yè)有多個信息系統(tǒng),則可以重復(fù)以上過程,每個信息系統(tǒng)作為一個獨立的信息單位記錄在數(shù)據(jù)庫中,并獲得各自的密鑰對。
實際應(yīng)用中,可以用AES-128實現(xiàn)偽隨機(jī)函數(shù)F,此時msk應(yīng)為128比特的隨機(jī)序列。
信息系統(tǒng)在將數(shù)據(jù)上傳到云平臺之前,首先使用自己的密鑰對(k1,k2)對數(shù)據(jù)進(jìn)行機(jī)密性和完整性保護(hù)。
設(shè)(E,D)是安全的對稱加密體制,k1是可以應(yīng)用于(E,D)的密鑰;MAC為安全的消息認(rèn)證碼算法,k2是可以應(yīng)用于MAC的密鑰。
首先,信息系統(tǒng)產(chǎn)生當(dāng)前時間戳T,并對數(shù)據(jù)Data做如下計算:
最后,通過RESTful以XML格式將(IDi,C,M,T)發(fā)送到云服務(wù)器。
實際應(yīng)用中,可以用AES-128/CTR實現(xiàn)對稱加密體制(E,D),并用HMAC實現(xiàn)消息認(rèn)證碼算法MAC。
在收到XML 后,云平臺解析XML,并獲得(IDi,C,M,T)。
然后,云平臺計算k1=F(msk,i||1)和k2=F(msk,i||2)以恢復(fù)信息系統(tǒng)的密鑰對。
使用密鑰對(k1,k2),首先檢查消息認(rèn)證碼的正確性:
如果M與MAC(k2,C||T)不相等,說明XML在傳輸過程中發(fā)生了錯誤(這種錯誤可能是黑客造成的),便向信息系統(tǒng)報錯;否則執(zhí)行以下步驟:
1)檢查數(shù)據(jù)庫,如果該信息系統(tǒng)對應(yīng)的時間戳Ti≥T,說明該數(shù)據(jù)是舊消息,向信息系統(tǒng)報錯。
2)否則,更新數(shù)據(jù)庫,將Ti更新為T。
3)調(diào)用解密算法D,以恢復(fù)相應(yīng)的數(shù)據(jù)Data=D(k1,C)。
在恢復(fù)出數(shù)據(jù)Data后,云平臺將之保存到數(shù)據(jù)庫中。
當(dāng)有某目標(biāo)信息系統(tǒng)需要共享數(shù)據(jù)Data時,云平臺執(zhí)行以下步驟:
1)從數(shù)據(jù)庫中讀取數(shù)據(jù)Data。
2)從數(shù)據(jù)庫中讀取目標(biāo)信息系統(tǒng)的可識別身份信息IDj。
3)計算相應(yīng)的密鑰對k’1=F(msk,j||1)和k’2=F(msk,j||2)。
4)產(chǎn)生當(dāng)前時間戳T’。
5)用(k’1,k’2)對數(shù)據(jù)Data進(jìn)行封裝:C’=E(k’1,Data),M’=MAC(k’2,C’||T’)。
6)通過RESTful以XML格式將(C’,M’,T’)發(fā)送給目標(biāo)信息系統(tǒng)。
目標(biāo)信息系統(tǒng)在收到XML后,首先解析出(C’,M’,T’)。然后,目標(biāo)信息系統(tǒng)使用自己的密鑰對(k’1,k’2),檢查消息認(rèn)證碼的正確性:
如果M’與MAC(k’2,C’||T’)不相等,說明XML在傳輸過程中發(fā)生錯誤,向云平臺報錯;否則調(diào)用解密算法D,以獲得數(shù)據(jù)Data=D(k’1,C’)。
本文提出的數(shù)據(jù)保護(hù)機(jī)制滿足以下安全特性:
1) 由于F是安全的偽隨機(jī)函數(shù),所以它能安全地隱藏主密鑰msk的信息。即使某些信息系統(tǒng)由于管理不善,導(dǎo)致它們的密鑰對(k1,k2)泄露,黑客也無法從這些密鑰對中獲得關(guān)于主密鑰msk的任何信息。
另一方面,除主密鑰msk以外,整個機(jī)制并沒有為各信息系統(tǒng)的密鑰對保存額外的信息,這樣既有利于密鑰管理,又有利于節(jié)省存儲空間[8]。
2) 保證機(jī)密性和完整性:在同時保護(hù)數(shù)據(jù)機(jī)密性和完整性時,加密體制和MAC算法有三種組合方式:Enc-then-MAC、Enc-and-MAC和MAC-then-Enc。其中,Enc-and-MAC是不安全的,因為MAC可能會泄露數(shù)據(jù)的信息,MAC-then-Enc在某些情況下也不安全。因此,我們使用的方法屬于Enc-then-MAC,只要(E,D)和MAC是安全的,它倆的組合就能同時保證數(shù)據(jù)的機(jī)密性和完整性。
3) 保證數(shù)據(jù)的認(rèn)證性:MAC算法是對稱密碼算法,只有共享密鑰的通信雙方才可以產(chǎn)生正確的消息認(rèn)證碼。因此,如果接收方檢查出收到的消息驗證碼是正確的,可以確認(rèn)數(shù)據(jù)Data就是指定的發(fā)送者發(fā)送而來,由此保證數(shù)據(jù)的認(rèn)證性。
4) 抵抗離線密鑰竊取攻擊:接入云端的所有信息系統(tǒng)的密鑰對都不是直接保存在數(shù)據(jù)庫中,而是通過偽隨機(jī)函數(shù)F和主密鑰msk,以及對應(yīng)各系統(tǒng)的身份信息一起產(chǎn)生的。如果攻擊者利用數(shù)據(jù)庫系統(tǒng)的漏洞下載了數(shù)據(jù)庫,既然他沒有主密鑰msk,他也無法獲得信息系統(tǒng)的密鑰對。
5) 抵抗舊消息重放:對應(yīng)每個信息系統(tǒng),云平臺數(shù)據(jù)庫中除了保存各系統(tǒng)的相關(guān)信息外,還保存了上次通信時使用的時間戳Ti。每次信息系統(tǒng)與云平臺成功通信后,Ti都會被更新為本次通信時使用的時間戳。這樣,如果攻擊者發(fā)動舊消息重放攻擊,因舊消息中的時間戳不會晚于數(shù)據(jù)庫中保存的時間戳,因此會被云平臺判定為非法。所以,本機(jī)制能有效抵抗舊消息重放攻擊,防范向數(shù)據(jù)庫中惡意注入重復(fù)數(shù)據(jù)。
面向基于云制造的數(shù)控機(jī)床產(chǎn)業(yè)集群區(qū)域網(wǎng)絡(luò)協(xié)同制造模式,本文提出一種基于RESTful的數(shù)據(jù)保護(hù)機(jī)制,以提高不同企業(yè)信息系統(tǒng)之間信息共享的安全性。