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