摘 要: 研究在開(kāi)放環(huán)境下利用Linda-like數(shù)據(jù)驅(qū)動(dòng)" title="數(shù)據(jù)驅(qū)動(dòng)">數(shù)據(jù)驅(qū)動(dòng)協(xié)調(diào)模型所帶來(lái)的安全問(wèn)題。為了對(duì)數(shù)據(jù)協(xié)調(diào)空間的安全進(jìn)行控制,提出了一種具有時(shí)間約束的安全協(xié)調(diào)模型。此協(xié)調(diào)模型通過(guò)對(duì)元組數(shù)據(jù)增加特定信息,并運(yùn)用混合密鑰機(jī)制實(shí)現(xiàn)對(duì)協(xié)調(diào)元組空間的安全訪問(wèn)控制" title="訪問(wèn)控制">訪問(wèn)控制。
關(guān)鍵詞: 訪問(wèn)控制 協(xié)調(diào) 混合密鑰
協(xié)調(diào)模型提供了一種描述軟件實(shí)體之間的交互框架。目前開(kāi)放系統(tǒng)" title="開(kāi)放系統(tǒng)">開(kāi)放系統(tǒng)中的協(xié)調(diào)技術(shù)主要考慮如何促使軟件實(shí)體之間能夠順利地進(jìn)行交互。但事實(shí)上,在開(kāi)放系統(tǒng)下不能保證每個(gè)軟件實(shí)體都是可信的,基于系統(tǒng)安全方面的考慮,必須要有一定的安全訪問(wèn)控制機(jī)制來(lái)限制軟件實(shí)體之間的交互。
目前僅有KLAIM[1]和SecSOS[2]協(xié)調(diào)語(yǔ)言提供了一定的安全訪問(wèn)控制機(jī)制。KLAIM協(xié)調(diào)語(yǔ)言利用類(lèi)型來(lái)描述軟件實(shí)體的訪問(wèn)權(quán)限,在軟件實(shí)體和元組數(shù)據(jù)之間采用典型的訪問(wèn)控制策略,使得軟件實(shí)體和數(shù)據(jù)形成一種一一對(duì)應(yīng)的關(guān)系。這種方法不能很好地滿足開(kāi)放系統(tǒng)動(dòng)態(tài)性的要求,并且不支持對(duì)元組數(shù)據(jù)細(xì)粒度的安全控制。SecSOS通過(guò)只對(duì)空間元組數(shù)據(jù)增加一定的附加信息來(lái)控制數(shù)據(jù)的訪問(wèn)。這種對(duì)字段的加鎖方法不但能對(duì)整個(gè)元組數(shù)據(jù)進(jìn)行控制,還支持?jǐn)?shù)據(jù)細(xì)粒度的安全控制。但SecSOS的缺陷是不能區(qū)分兩種不同類(lèi)型的讀操作,并且數(shù)據(jù)的讀取者能夠向元組數(shù)據(jù)空間寫(xiě)入同樣的數(shù)據(jù)。Nadia Busi,Roberto Gorrieri等人在KLAIM和SecSOS基礎(chǔ)上進(jìn)行了擴(kuò)展,提出了SecSpaces[3]安全協(xié)調(diào)模型。但是,SecSpaces每次都是運(yùn)用非對(duì)稱(chēng)" title="非對(duì)稱(chēng)">非對(duì)稱(chēng)密鑰進(jìn)行匹配,計(jì)算復(fù)雜度高,而且沒(méi)有提供時(shí)效控制,從而降低了系統(tǒng)的安全性。本文首先介紹了用于開(kāi)放系統(tǒng)下數(shù)據(jù)驅(qū)動(dòng)的協(xié)調(diào)模型Linda[4]模型,然后簡(jiǎn)單地介紹了SecSpaces安全協(xié)調(diào)模型,最后提出了一種新的具有時(shí)間約束的安全數(shù)據(jù)" title="安全數(shù)據(jù)">安全數(shù)據(jù)驅(qū)動(dòng)協(xié)調(diào)模型。
1 Linda數(shù)據(jù)驅(qū)動(dòng)協(xié)調(diào)模型
在開(kāi)放系統(tǒng)下,運(yùn)用協(xié)調(diào)技術(shù)進(jìn)行軟件實(shí)體間的通信是一種非常有效的方法,能夠滿足開(kāi)放系統(tǒng)互操作性、可移植性、伸縮性要求。Linda[2]在1985年提出了基于數(shù)據(jù)驅(qū)動(dòng)的協(xié)調(diào)模型體系結(jié)構(gòu),Sun Microsystem和IBM公司在此基礎(chǔ)上開(kāi)發(fā)了各自的商業(yè)產(chǎn)品JavaSpaces和TSpaces。這些都是利用一種被稱(chēng)為再生通信(generative communication)的模式:數(shù)據(jù)的發(fā)送方和接收方通過(guò)一個(gè)共享的數(shù)據(jù)元組空間進(jìn)行通信,發(fā)送方將數(shù)據(jù)送入這個(gè)共享空間,接收方從共享空間讀取數(shù)據(jù)。數(shù)據(jù)共享空間獨(dú)立于任何一方而存在,即一旦發(fā)送方將數(shù)據(jù)寫(xiě)入共享空間,數(shù)據(jù)將不屬于數(shù)據(jù)的提供者。任何接收方都可以從中提取相應(yīng)的數(shù)據(jù)。Linda模型定義了out(e)、int(t)和rd(t)三種基本操作。輸入操作out(e)是將數(shù)據(jù)項(xiàng)e寫(xiě)入共享元組空間;int(t)是用模板t和共享空間中的數(shù)據(jù)項(xiàng)e匹配,如果發(fā)現(xiàn)匹配數(shù)據(jù)項(xiàng)e,然后讀e并將共享空間中的e刪除。rd(t)和int(t)類(lèi)似,僅僅是讀取而不刪除。Linda模型定義的匹配規(guī)則如定義1.1。
從定義1.1可以看出最初的Linda協(xié)調(diào)模型并沒(méi)有提供相應(yīng)的安全訪問(wèn)控制機(jī)制對(duì)讀寫(xiě)操作進(jìn)行控制,也不能區(qū)分int(t)和帶有破壞性的rd(t)操作。
2 SecSpaces安全數(shù)據(jù)驅(qū)動(dòng)協(xié)調(diào)模型
目前僅有KLAIM和SecSOS協(xié)調(diào)語(yǔ)言提供了一定的安全訪問(wèn)控制機(jī)制。2002年Nadia Busi、Roberto Gorrieri等人對(duì)KLAIM和SecSOS兩種協(xié)調(diào)語(yǔ)言的安全訪問(wèn)控制機(jī)制進(jìn)行了擴(kuò)展和修改,提出了SecSpaces模型(支持在開(kāi)放環(huán)境下安全的數(shù)據(jù)驅(qū)動(dòng)協(xié)調(diào)模型)。SecSpaces不但能夠區(qū)分讀寫(xiě)操作,還能夠區(qū)分非破壞性的讀int(t)和具有破壞性的讀rd(t)操作。SecSpaces對(duì)元組空間數(shù)據(jù)附加特定的控制信息。一個(gè)邏輯分區(qū)字段Partition,另一個(gè)非對(duì)稱(chēng)邏輯分區(qū)字段Asymmetric Partition。前者用于對(duì)元組空間進(jìn)行邏輯上的分區(qū),通過(guò)這個(gè)字段不但可以快速的索引到相應(yīng)的數(shù)據(jù)也增加了數(shù)據(jù)的安全性。后者利用密碼學(xué)非對(duì)稱(chēng)密鑰對(duì)數(shù)據(jù)的讀和寫(xiě)操作進(jìn)行認(rèn)證,能夠嚴(yán)格區(qū)分讀和寫(xiě)。同時(shí)又將后者分為int(t)和rd(t)區(qū)域,能將這兩種讀取操作區(qū)別開(kāi)。
3 具有時(shí)間約束的安全數(shù)據(jù)驅(qū)動(dòng)協(xié)調(diào)模型
從上述SecSpaces模型所提供的安全訪問(wèn)控制機(jī)制可以看出:(1)數(shù)據(jù)每次讀取操作都會(huì)進(jìn)行非對(duì)稱(chēng)的解密操作,計(jì)算復(fù)雜;(2)一旦某個(gè)軟件實(shí)體得到了讀取某數(shù)據(jù)的密鑰,它將獲得永久的讀取權(quán),SecSpaces沒(méi)有提供時(shí)效控制。這對(duì)于動(dòng)態(tài)的開(kāi)放系統(tǒng)是不安全的,例如一個(gè)Agent實(shí)體用密鑰讀取數(shù)據(jù)后離開(kāi),相隔一定的時(shí)間再次訪問(wèn)相應(yīng)的數(shù)據(jù),而此時(shí)的Agent可能已經(jīng)變得不安全,但依靠先前的密鑰仍能讀取。
針對(duì)SecSpaces存在的安全問(wèn)題本文提出了一種具有時(shí)間約束的安全數(shù)據(jù)驅(qū)動(dòng)協(xié)調(diào)模型。本文對(duì)匹配模板增加時(shí)限控制字段來(lái)控制軟件實(shí)體訪問(wèn)共享數(shù)據(jù)空間的時(shí)間,使協(xié)調(diào)模型具有時(shí)間約束性。同時(shí)運(yùn)用混合密鑰認(rèn)證機(jī)制來(lái)代替非對(duì)稱(chēng)認(rèn)證來(lái)減輕SecSpaces的計(jì)算復(fù)雜度。
非對(duì)稱(chēng)密鑰訪問(wèn)控制如表1所示。假設(shè)(1)、(2)、(3)、(4)條件均滿足的情況下,(PrivKA;PubKA)和(PrivKB;PubKB)為兩對(duì)密鑰,分別為私鑰和公開(kāi)密鑰。
為了保證時(shí)間戳本身的安全性,可運(yùn)用密鑰k對(duì)T進(jìn)行加密T′={T}k,當(dāng)前時(shí)間t取協(xié)調(diào)系統(tǒng)的當(dāng)前時(shí)間,其獨(dú)立于各軟件實(shí)體。這樣就避免了時(shí)間的不同步性。對(duì)數(shù)據(jù)驅(qū)動(dòng)的協(xié)調(diào)模型增加時(shí)間約束性使其能夠安全運(yùn)用于更多的開(kāi)放系統(tǒng)之中。例如將其應(yīng)用于Web Services中就能解決服務(wù)的一次綁定永久享受服務(wù)的局限性。
混合密鑰認(rèn)證機(jī)制[5]是結(jié)合對(duì)稱(chēng)密鑰和非對(duì)稱(chēng)密鑰兩種并存的認(rèn)證機(jī)制,通信實(shí)體通過(guò)非對(duì)稱(chēng)密碼體制和密鑰分配中心間協(xié)商其會(huì)話密鑰以及在密鑰分配中心存放通信實(shí)體的注冊(cè)信息等,而通信實(shí)體之間通過(guò)對(duì)稱(chēng)密碼體制認(rèn)證雙方身份。本文將這種認(rèn)證方式運(yùn)用到共享元組數(shù)據(jù)空間的訪問(wèn)控制中,第一次從共享空間讀取數(shù)據(jù)時(shí)通過(guò)非對(duì)稱(chēng)密鑰認(rèn)證,一旦通過(guò)身份認(rèn)證,系統(tǒng)將和軟件實(shí)體間建立一傳遞數(shù)據(jù)的安全通道,通過(guò)此安全通道傳遞數(shù)據(jù)避免了復(fù)雜的解密計(jì)算。將混合密鑰認(rèn)證機(jī)制運(yùn)用于數(shù)據(jù)驅(qū)動(dòng)協(xié)調(diào)模型能夠減輕系統(tǒng)的計(jì)算復(fù)雜度,同時(shí)增加系統(tǒng)的動(dòng)態(tài)性。其認(rèn)證流程如圖1所述。
上述所提出的具有時(shí)間約束的安全數(shù)據(jù)驅(qū)動(dòng)協(xié)調(diào)模型不但能區(qū)分三種典型的操作,同時(shí)對(duì)數(shù)據(jù)的讀取操作具有時(shí)效的約束性,這樣就保證了協(xié)調(diào)系統(tǒng)的安全性。
本文在分析了KLAIM、SecSOS、SecSpaces的基礎(chǔ)上提出了一種時(shí)間約束的安全數(shù)據(jù)驅(qū)動(dòng)協(xié)調(diào)模型,它能夠保證軟件實(shí)體之間的通信安全。R.Lucchi和G.Zavattaro提出了WSSecSpaces[6](面向Web Services應(yīng)用的安全數(shù)據(jù)協(xié)調(diào)服務(wù))。首次將協(xié)調(diào)技術(shù)運(yùn)用于面向服務(wù)的分布式技術(shù)Web Services。本文提出的安全協(xié)調(diào)模型也可作為一種Web服務(wù)形式發(fā)布,服務(wù)之間通過(guò)共享元組空間交換數(shù)據(jù),無(wú)需服務(wù)間的實(shí)時(shí)通信,同時(shí)可通過(guò)本模型的時(shí)間約束性來(lái)控制服務(wù)時(shí)間。這樣不但解決了Web Services在時(shí)間和空間上的緊耦合,而且還增強(qiáng)對(duì)服務(wù)時(shí)間的控制。但是本文提出的模型并沒(méi)有對(duì)向共享空間寫(xiě)數(shù)據(jù)進(jìn)行控制,即任何軟件實(shí)體都可以向共享數(shù)據(jù)空間寫(xiě)信息,這是本課題今后所要研究的內(nèi)容。
參考文獻(xiàn)
1 Nicola R D,F(xiàn)errari G,Pugliese R.KLAIM:A Ker-nel Language for Agents Interaction and Mobility.IEEE Transactions on Software Engineering.1998;24(5):315~330
2 Vitek J,Bryce C,Oriol M.Coordinating Processes with Secure Spaces.Science of computer Programming,2003;46(1~2):163~193
3 Busi N,Corrieri R,Lucchi R et al.Secspaces:a data-driven coordination model for environments open to untrusted agents.Electronic Notes in Theoretical Computer Science.2003;68(3):310~327
4 Gelernter D.Generative Communication in Linda.ACM Trans-actions on Programming Languages and Systems.1985;7(1):80~112
5 王汝傳.混合密碼認(rèn)證模型的研究.計(jì)算機(jī)學(xué)報(bào),2002;(11):44~48
6 Lucchi R,Zavattaro G.WSSecSpaces:a Secure Data-Driven Coordination Service for Web Services Applications.Proceed-ings of the ACM Symposium on Applied Computing,2004;(1):487~491