摘 要: 研究在開放環境下利用Linda-like數據驅動" title="數據驅動">數據驅動協調模型所帶來的安全問題。為了對數據協調空間的安全進行控制,提出了一種具有時間約束的安全協調模型。此協調模型通過對元組數據增加特定信息,并運用混合密鑰機制實現對協調元組空間的安全訪問控制" title="訪問控制">訪問控制。
關鍵詞: 訪問控制 協調 混合密鑰
協調模型提供了一種描述軟件實體之間的交互框架。目前開放系統" title="開放系統">開放系統中的協調技術主要考慮如何促使軟件實體之間能夠順利地進行交互。但事實上,在開放系統下不能保證每個軟件實體都是可信的,基于系統安全方面的考慮,必須要有一定的安全訪問控制機制來限制軟件實體之間的交互。
目前僅有KLAIM[1]和SecSOS[2]協調語言提供了一定的安全訪問控制機制。KLAIM協調語言利用類型來描述軟件實體的訪問權限,在軟件實體和元組數據之間采用典型的訪問控制策略,使得軟件實體和數據形成一種一一對應的關系。這種方法不能很好地滿足開放系統動態性的要求,并且不支持對元組數據細粒度的安全控制。SecSOS通過只對空間元組數據增加一定的附加信息來控制數據的訪問。這種對字段的加鎖方法不但能對整個元組數據進行控制,還支持數據細粒度的安全控制。但SecSOS的缺陷是不能區分兩種不同類型的讀操作,并且數據的讀取者能夠向元組數據空間寫入同樣的數據。Nadia Busi,Roberto Gorrieri等人在KLAIM和SecSOS基礎上進行了擴展,提出了SecSpaces[3]安全協調模型。但是,SecSpaces每次都是運用非對稱" title="非對稱">非對稱密鑰進行匹配,計算復雜度高,而且沒有提供時效控制,從而降低了系統的安全性。本文首先介紹了用于開放系統下數據驅動的協調模型Linda[4]模型,然后簡單地介紹了SecSpaces安全協調模型,最后提出了一種新的具有時間約束的安全數據" title="安全數據">安全數據驅動協調模型。
1 Linda數據驅動協調模型
在開放系統下,運用協調技術進行軟件實體間的通信是一種非常有效的方法,能夠滿足開放系統互操作性、可移植性、伸縮性要求。Linda[2]在1985年提出了基于數據驅動的協調模型體系結構,Sun Microsystem和IBM公司在此基礎上開發了各自的商業產品JavaSpaces和TSpaces。這些都是利用一種被稱為再生通信(generative communication)的模式:數據的發送方和接收方通過一個共享的數據元組空間進行通信,發送方將數據送入這個共享空間,接收方從共享空間讀取數據。數據共享空間獨立于任何一方而存在,即一旦發送方將數據寫入共享空間,數據將不屬于數據的提供者。任何接收方都可以從中提取相應的數據。Linda模型定義了out(e)、int(t)和rd(t)三種基本操作。輸入操作out(e)是將數據項e寫入共享元組空間;int(t)是用模板t和共享空間中的數據項e匹配,如果發現匹配數據項e,然后讀e并將共享空間中的e刪除。rd(t)和int(t)類似,僅僅是讀取而不刪除。Linda模型定義的匹配規則如定義1.1。
從定義1.1可以看出最初的Linda協調模型并沒有提供相應的安全訪問控制機制對讀寫操作進行控制,也不能區分int(t)和帶有破壞性的rd(t)操作。
2 SecSpaces安全數據驅動協調模型
目前僅有KLAIM和SecSOS協調語言提供了一定的安全訪問控制機制。2002年Nadia Busi、Roberto Gorrieri等人對KLAIM和SecSOS兩種協調語言的安全訪問控制機制進行了擴展和修改,提出了SecSpaces模型(支持在開放環境下安全的數據驅動協調模型)。SecSpaces不但能夠區分讀寫操作,還能夠區分非破壞性的讀int(t)和具有破壞性的讀rd(t)操作。SecSpaces對元組空間數據附加特定的控制信息。一個邏輯分區字段Partition,另一個非對稱邏輯分區字段Asymmetric Partition。前者用于對元組空間進行邏輯上的分區,通過這個字段不但可以快速的索引到相應的數據也增加了數據的安全性。后者利用密碼學非對稱密鑰對數據的讀和寫操作進行認證,能夠嚴格區分讀和寫。同時又將后者分為int(t)和rd(t)區域,能將這兩種讀取操作區別開。
3 具有時間約束的安全數據驅動協調模型
從上述SecSpaces模型所提供的安全訪問控制機制可以看出:(1)數據每次讀取操作都會進行非對稱的解密操作,計算復雜;(2)一旦某個軟件實體得到了讀取某數據的密鑰,它將獲得永久的讀取權,SecSpaces沒有提供時效控制。這對于動態的開放系統是不安全的,例如一個Agent實體用密鑰讀取數據后離開,相隔一定的時間再次訪問相應的數據,而此時的Agent可能已經變得不安全,但依靠先前的密鑰仍能讀取。
針對SecSpaces存在的安全問題本文提出了一種具有時間約束的安全數據驅動協調模型。本文對匹配模板增加時限控制字段來控制軟件實體訪問共享數據空間的時間,使協調模型具有時間約束性。同時運用混合密鑰認證機制來代替非對稱認證來減輕SecSpaces的計算復雜度。
非對稱密鑰訪問控制如表1所示。假設(1)、(2)、(3)、(4)條件均滿足的情況下,(PrivKA;PubKA)和(PrivKB;PubKB)為兩對密鑰,分別為私鑰和公開密鑰。
為了保證時間戳本身的安全性,可運用密鑰k對T進行加密T′={T}k,當前時間t取協調系統的當前時間,其獨立于各軟件實體。這樣就避免了時間的不同步性。對數據驅動的協調模型增加時間約束性使其能夠安全運用于更多的開放系統之中。例如將其應用于Web Services中就能解決服務的一次綁定永久享受服務的局限性。
混合密鑰認證機制[5]是結合對稱密鑰和非對稱密鑰兩種并存的認證機制,通信實體通過非對稱密碼體制和密鑰分配中心間協商其會話密鑰以及在密鑰分配中心存放通信實體的注冊信息等,而通信實體之間通過對稱密碼體制認證雙方身份。本文將這種認證方式運用到共享元組數據空間的訪問控制中,第一次從共享空間讀取數據時通過非對稱密鑰認證,一旦通過身份認證,系統將和軟件實體間建立一傳遞數據的安全通道,通過此安全通道傳遞數據避免了復雜的解密計算。將混合密鑰認證機制運用于數據驅動協調模型能夠減輕系統的計算復雜度,同時增加系統的動態性。其認證流程如圖1所述。
上述所提出的具有時間約束的安全數據驅動協調模型不但能區分三種典型的操作,同時對數據的讀取操作具有時效的約束性,這樣就保證了協調系統的安全性。
本文在分析了KLAIM、SecSOS、SecSpaces的基礎上提出了一種時間約束的安全數據驅動協調模型,它能夠保證軟件實體之間的通信安全。R.Lucchi和G.Zavattaro提出了WSSecSpaces[6](面向Web Services應用的安全數據協調服務)。首次將協調技術運用于面向服務的分布式技術Web Services。本文提出的安全協調模型也可作為一種Web服務形式發布,服務之間通過共享元組空間交換數據,無需服務間的實時通信,同時可通過本模型的時間約束性來控制服務時間。這樣不但解決了Web Services在時間和空間上的緊耦合,而且還增強對服務時間的控制。但是本文提出的模型并沒有對向共享空間寫數據進行控制,即任何軟件實體都可以向共享數據空間寫信息,這是本課題今后所要研究的內容。
參考文獻
1 Nicola R D,Ferrari 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 王汝傳.混合密碼認證模型的研究.計算機學報,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