專利名稱:資源訪問(wèn)控制系統(tǒng)的制作方法
本申請(qǐng)要求1999年9月3日提交的美國(guó)臨時(shí)專利申請(qǐng)?zhí)?0/152,312題為“Resource Access Control System”申請(qǐng)的優(yōu)先權(quán),該申請(qǐng)全文結(jié)合于此。
背景技術(shù):
本發(fā)明一般涉及數(shù)字處理系統(tǒng),尤其涉及數(shù)字系統(tǒng)中的資源分配。
數(shù)字處理裝置,如計(jì)算機(jī)系統(tǒng),允許裝置用戶執(zhí)行各種軟件程序、對(duì)象等,以提供功能性。例如,用戶可以在計(jì)算機(jī)系統(tǒng)上運(yùn)行Web瀏覽器,文字處理器和電子郵件程序。這些軟件應(yīng)用中的每一種都可以由不同的軟件開(kāi)發(fā)者制造,并獨(dú)立獲得、安裝并運(yùn)行。用戶可以在計(jì)算機(jī)上根據(jù)期望運(yùn)行或刪除軟件。該方法允許一件不變的硬件,也就是計(jì)算機(jī)系統(tǒng),通過(guò)執(zhí)行軟件對(duì)象而完成很多不同的任務(wù)。因此,可以按希望改變或更新計(jì)算機(jī)系統(tǒng)的功能性。
當(dāng)軟件應(yīng)用或?qū)ο蟊仨殸?zhēng)奪資源時(shí),這種方法就出現(xiàn)了問(wèn)題。計(jì)算機(jī)系統(tǒng)中的有限資源包括隨機(jī)存取存儲(chǔ)器(RAM),磁盤(pán)存儲(chǔ)器和用于與其它裝置通信的網(wǎng)絡(luò)訪問(wèn)或通信機(jī)構(gòu)。傳統(tǒng)上,處理資源的分配是計(jì)算機(jī)中操作系統(tǒng)的工作。操作系統(tǒng)的主要目的是在分時(shí)的基礎(chǔ)上向每個(gè)軟件對(duì)象提供其所需的資源分配。該方法使任何軟件對(duì)象的制造者都很難控制可在處理裝置中執(zhí)行的對(duì)象之間的分配。
越來(lái)越重要的是當(dāng)資源的總大小和數(shù)量減小時(shí),能夠調(diào)節(jié)對(duì)數(shù)字處理裝置中資源的訪問(wèn)。尤其是在面向客戶的嵌入處理中,例如在電視接收裝置或所謂的“機(jī)頂盒”中。
因此,期望提供一種資源訪問(wèn)控制系統(tǒng)(RACS),用于處理裝置,如計(jì)算機(jī)、機(jī)頂盒或其它裝置,它允許對(duì)資源訪問(wèn)和分配的高度控制。通過(guò)允許更多地控制資源分配,軟件對(duì)象的制造者可以設(shè)計(jì)不同的收費(fèi)模型,用于將軟件功能性出售給終端用戶。例如,可以以較低的費(fèi)用提供軟件對(duì)象,其中它限制于某些資源(如調(diào)制解調(diào)器連接、訪問(wèn)電視調(diào)諧器、硬盤(pán)存儲(chǔ)器等等)??梢砸暂^高的費(fèi)用提供相同的軟件對(duì)象,它具有較高的資源訪問(wèn)等級(jí),所以它向終端用戶提供更大的功能性。
提供對(duì)每個(gè)軟件對(duì)象資源分配的詳細(xì)控制的資源訪問(wèn)控制系統(tǒng)還可用于很多高級(jí)別的安全性。某些類別的對(duì)象可限制于使用有限的資源,因此確保使用多個(gè)或不同資源的高優(yōu)先級(jí)或高安全性的對(duì)象能夠適當(dāng)并專用地執(zhí)行。
發(fā)明內(nèi)容
本發(fā)明提供了一種資源訪問(wèn)控制系統(tǒng),它限制處理裝置中執(zhí)行的各個(gè)軟件對(duì)象的訪問(wèn)權(quán)限。根據(jù)本發(fā)明,在軟件對(duì)象的執(zhí)行期間,軟件對(duì)象的資源分配可以變化。
因此,在一個(gè)實(shí)施例中,本發(fā)明提供了一種控制數(shù)字處理裝置中資源訪問(wèn)的方法,該方法包括將第一組資源分配給數(shù)字處理裝置中的軟件對(duì)象;并在軟件對(duì)象的執(zhí)行期間,改變軟件對(duì)象的資源分配。
在另一實(shí)施例中,本發(fā)明提供了一種控制數(shù)字處理裝置中資源訪問(wèn)的方法,該方法包括識(shí)別數(shù)字處理裝置中的第一組資源;使一區(qū)域與第一組資源關(guān)聯(lián);并通過(guò)使軟件對(duì)象與該區(qū)域關(guān)聯(lián),將第一組資源分配給軟件對(duì)象。
在另一實(shí)施例中,本發(fā)明提供了一種控制數(shù)字處理裝置中資源訪問(wèn)的方法,該方法包括將第一組資源分配給數(shù)字處理裝置中的軟件對(duì)象;并改變軟件對(duì)象的資源分配,以改變軟件對(duì)象的功能性。
在另一實(shí)施例中,一種控制數(shù)字處理裝置中資源訪問(wèn)的系統(tǒng),它包括將第一組資源分配給數(shù)字處理裝置中軟件對(duì)象的裝置;和在軟件對(duì)象執(zhí)行期間,改變軟件對(duì)象的資源分配的裝置。
參考以下詳細(xì)描述和附圖,將獲得對(duì)本發(fā)明本質(zhì)和優(yōu)點(diǎn)的較佳理解。
圖1是可能存在于運(yùn)行系統(tǒng)中的各種安全線程中一部分的實(shí)例;圖2描述了安全線程的授權(quán)堆棧;和圖3是本發(fā)明授權(quán)堆棧的圖示。
特殊實(shí)施例的詳細(xì)描述本發(fā)明提供了資源訪問(wèn)控制系統(tǒng),它限制處理裝置中執(zhí)行的各個(gè)軟件對(duì)象的訪問(wèn)權(quán)限。電纜或衛(wèi)星機(jī)頂盒,或任何其它計(jì)算機(jī)主機(jī)一般包括不同類型的軟件對(duì)象,也就是系統(tǒng)程序、解釋程序、應(yīng)用程序、Java小程序、腳本等等。軟件對(duì)象需要訪問(wèn)資源,以實(shí)現(xiàn)它們的功能,也就是它們需要物理/軟件資源,如用于通信的調(diào)制解調(diào)器、用于調(diào)節(jié)電視頻道的調(diào)諧器、存儲(chǔ)數(shù)據(jù)的文件等等。因此,給定的軟件對(duì)象可以要求以一些類型訪問(wèn)給定類型的資源對(duì)象。應(yīng)該注意到該資源對(duì)象組包括軟件對(duì)象組。換句話說(shuō),給定的軟件對(duì)象可以要求訪問(wèn)其它軟件對(duì)象。
不同的軟件對(duì)象可以具有不同的資源需要,可以源自不同的代碼源,或者可以為不同機(jī)頂盒用戶的利益運(yùn)行。在所有的這些情況下,必須限制軟件對(duì)象的訪問(wèn)權(quán)限;如,不是所有的軟件對(duì)象都可以被委托使用調(diào)制解調(diào)器或?qū)诹钗募淖x/寫(xiě)。如果被授權(quán)訪問(wèn)這些資源,那么每個(gè)軟件對(duì)象都應(yīng)該具有對(duì)資源對(duì)象子集的訪問(wèn)權(quán)限。RACS負(fù)責(zé)實(shí)施對(duì)每個(gè)軟件對(duì)象上資源訪問(wèn)的限制。
RACS的基本概念和重要構(gòu)成模塊是保護(hù)區(qū)域。該區(qū)域可由軟件對(duì)象當(dāng)前可直接訪問(wèn)的資源對(duì)象組和這些資源上所允許的操作構(gòu)成。軟件對(duì)象是許可(結(jié)果是責(zé)任)的實(shí)體。
Java安全結(jié)構(gòu)使用類似于保護(hù)區(qū)域的概念,保護(hù)區(qū)域可用于限制被下載的對(duì)象只訪問(wèn)已被授權(quán)的資源。這是靜態(tài)保護(hù)區(qū)域的實(shí)例,其中特定對(duì)象已被授權(quán)的資源不隨時(shí)間變化。
RACS還可以包括動(dòng)態(tài)保護(hù)區(qū)域。包括動(dòng)態(tài)保護(hù)區(qū)域意味著已被授權(quán)給對(duì)象的資源隨時(shí)間變化,即使在對(duì)象運(yùn)行時(shí)亦然。尤其,動(dòng)態(tài)保護(hù)區(qū)域可用作有條件訪問(wèn)的工具??蛻艨梢韵螺d軟件對(duì)象,使它的一些功能性通過(guò)資源控制被失效。之后,同一客戶可以付費(fèi),獲取同一軟件對(duì)象中的附加功能性。這可以通過(guò)改變對(duì)軟件對(duì)象的資源控制使得軟件對(duì)象能訪問(wèn)(也就是,現(xiàn)在被授權(quán)的)資源的擴(kuò)充列表而實(shí)現(xiàn)。
雖然在面向?qū)ο蟮沫h(huán)境中,如Java,能最方便地實(shí)現(xiàn)RACS,但是該文檔中所述的RACS結(jié)構(gòu)及其實(shí)施可用于任何軟件結(jié)構(gòu)。例如軟件環(huán)境可以包括C或C++寫(xiě)的本機(jī)應(yīng)用程序、Java虛擬機(jī)(JVM)中運(yùn)行的解釋Java應(yīng)用程序、和瀏覽器中運(yùn)行的HTML腳本和Java小程序。
在一個(gè)實(shí)施例中,保護(hù)區(qū)域與對(duì)象組關(guān)聯(lián)。每個(gè)對(duì)象包含一個(gè)安全組標(biāo)識(shí)(ID),它使對(duì)象和特定的保護(hù)區(qū)域關(guān)聯(lián)。帶有相同安全組ID的所有對(duì)象將被授權(quán)相同的資源組。保護(hù)區(qū)域可能只包括一個(gè)對(duì)象。
系統(tǒng)還可能包括被授權(quán)給主機(jī)中所有資源的軟件對(duì)象。這并不意味著這些對(duì)象就不需要RACS進(jìn)行資源校驗(yàn)。為了一致性,將這種對(duì)象中的每一個(gè)都分配在被授權(quán)給所有資源的同一保護(hù)區(qū)域中。這種對(duì)象中每一個(gè)的標(biāo)識(shí)仍然要授權(quán),就如同任何其它對(duì)象。
如果不是這種情況,且一些對(duì)象不與任何授權(quán)信息關(guān)聯(lián),那么犯罪分子可以通過(guò)獲取限制于特定保護(hù)區(qū)域的對(duì)象并簡(jiǎn)單地除去它的授權(quán)信息,很容易地繞過(guò)RACS。
為了確定對(duì)象的特定運(yùn)行實(shí)例的授權(quán),只看該對(duì)象的保護(hù)區(qū)域是不夠的。這是因?yàn)檫\(yùn)行對(duì)象可以調(diào)用來(lái)自相同保護(hù)區(qū)域的其它對(duì)象。必須跟蹤該對(duì)象的調(diào)用順序,以計(jì)算對(duì)象運(yùn)行實(shí)例的有效許可。
在另一實(shí)施例中,構(gòu)想了使用安全線程。安全線程是可執(zhí)行線程,它除了跟蹤當(dāng)前可執(zhí)行狀態(tài)(如寄存器值、邏輯變量等)外還跟蹤當(dāng)前授權(quán)狀態(tài)。每個(gè)安全線程可獨(dú)立執(zhí)行,就如其它線程。
安全線程的授權(quán)狀態(tài)是當(dāng)前已對(duì)線程授權(quán)的資源和這些資源上所允許操作的列表。一般,授權(quán)狀態(tài)是位于安全線程的當(dāng)前調(diào)用堆棧中所有對(duì)象的保護(hù)區(qū)域的函數(shù)。以下將描述計(jì)算授權(quán)狀態(tài)的方法。
在有其它線程的情況下,安全線程可以產(chǎn)生其它的安全線程。新的線程將繼承源線程的授權(quán)狀態(tài)。然而,一旦新的線程開(kāi)始執(zhí)行,它的授權(quán)狀態(tài)就會(huì)根據(jù)調(diào)用的對(duì)象而改變,不依賴于原線程的授權(quán)狀態(tài)。當(dāng)RACS啟動(dòng)時(shí),主機(jī)中運(yùn)行的每個(gè)單線程將成為安全線程,并具有關(guān)聯(lián)的授權(quán)狀態(tài)。
在圖1所示的特定實(shí)施例中,描述了運(yùn)行系統(tǒng)中可能存在的各種安全線程中一部分的實(shí)例。在該實(shí)例中,起初只有操作系統(tǒng)運(yùn)行,與其本身的安全線程0關(guān)聯(lián)。
之后,線程0產(chǎn)生電子郵件應(yīng)用(安全線程A)和JVM(安全線程B)。安全線程A和B開(kāi)始時(shí)具有安全線程0的授權(quán)狀態(tài)的拷貝。在安全線程A和B產(chǎn)生之后,有3個(gè)獨(dú)立的安全線程運(yùn)行(0、A和B),每個(gè)都具有其本身的授權(quán)狀態(tài)。
之后,電子郵件應(yīng)用產(chǎn)生三個(gè)附加線程。檢驗(yàn)進(jìn)入的郵件(安全線程A-1)、發(fā)送輸出的郵件(安全線程A-2)和格式輸出并發(fā)送到打印機(jī)(安全線程A-3)。線程A-1、A-2和A-3每個(gè)開(kāi)始時(shí)都具有線程A授權(quán)狀態(tài)的拷貝?,F(xiàn)在有6個(gè)獨(dú)立的安全線程運(yùn)行(0、A、A-1、A-2、A-3和B)。
最后,JVM產(chǎn)生三個(gè)Java應(yīng)用,每個(gè)都具有其本身的安全線程屏幕保護(hù)程序(安全線程B-1)、花式時(shí)鐘(安全線程B-2)和網(wǎng)上銀行(安全線程B-3)。(這里,我們使用廣義的Java應(yīng)用程序定義,它是直接由JVM啟動(dòng)的高級(jí)Java對(duì)象。不像標(biāo)準(zhǔn)定義的應(yīng)用程序,對(duì)象中包含函數(shù)“main()”,其中可以有由JVM的同一實(shí)例控制的多個(gè)這種應(yīng)用程序。Java小程序是這種應(yīng)用程序的一個(gè)實(shí)例。JVM的同一實(shí)例能夠同時(shí)運(yùn)行多個(gè)小程序。線程B-1、B-2和B-3開(kāi)始時(shí)具有線程B的授權(quán)狀態(tài)的拷貝?,F(xiàn)在有9個(gè)獨(dú)立的安全線程運(yùn)行(0、A、A-1、A-2、A-3、B、B-1、B-2和B-3)。
當(dāng)一個(gè)對(duì)象調(diào)用不同保護(hù)區(qū)域中的另一對(duì)象時(shí),該動(dòng)作使當(dāng)前授權(quán)狀態(tài)與被調(diào)用對(duì)象的保護(hù)區(qū)域相交。這意味著被調(diào)用對(duì)象不能訪問(wèn)資源,除非它能被當(dāng)前調(diào)用堆棧中的每個(gè)對(duì)象訪問(wèn)。
如上所述,合法的是使對(duì)象屬于具有對(duì)每個(gè)單個(gè)資源訪問(wèn)權(quán)的保護(hù)區(qū)域。當(dāng)調(diào)用這種對(duì)象時(shí),當(dāng)前授權(quán)狀態(tài)保持不變。實(shí)際上,可以將對(duì)象放入該保護(hù)區(qū)域,不是因?yàn)樗哂袑?duì)所有資源的訪問(wèn)權(quán),而是因?yàn)樗鼘⒗^承當(dāng)前的授權(quán)狀態(tài)。
簡(jiǎn)單地相交保護(hù)區(qū)域在一些情況下是不夠的。例如,各種軟件對(duì)象可能被授權(quán)或未被授權(quán)將輸出發(fā)送到打印機(jī)。然而,它們只被授權(quán)對(duì)打印機(jī)驅(qū)動(dòng)器的某些API調(diào)用,而不應(yīng)該被允許直接寫(xiě)入打印機(jī)端口。
因此,打印機(jī)驅(qū)動(dòng)器對(duì)象的保護(hù)區(qū)域?qū)⑹俏ㄒ坏?,包括訪問(wèn)打印機(jī)端口的權(quán)利的保護(hù)區(qū)域。在以上段落中定義的相交規(guī)則下,當(dāng)調(diào)用打印機(jī)驅(qū)動(dòng)器時(shí),其保護(hù)區(qū)域?qū)⑴c當(dāng)前授權(quán)狀態(tài)相交,并且它將將失去訪問(wèn)打印機(jī)端口的能力。因此,這里需要一種組合保護(hù)區(qū)域的新方法。
RACS使用類似于Java特權(quán)片段的特權(quán)片段,以解決該問(wèn)題。當(dāng)可執(zhí)行對(duì)象中遇到“開(kāi)始特權(quán)”結(jié)構(gòu)時(shí),當(dāng)前授權(quán)狀態(tài)再次改變,它被設(shè)置成當(dāng)前授權(quán)狀態(tài)和可執(zhí)行對(duì)象保護(hù)區(qū)域的并集。當(dāng)遇到“結(jié)束特權(quán)”時(shí),授權(quán)狀態(tài)回復(fù)其原先的狀態(tài)。
考慮了安全線程的各種實(shí)施。在一個(gè)實(shí)施例中,每個(gè)安全線程具有關(guān)聯(lián)的授權(quán)堆棧,類似于調(diào)用堆棧,但保持獨(dú)立。授權(quán)堆棧的每個(gè)條目都是授權(quán)狀態(tài)。在任何時(shí)間點(diǎn)上,安全線程的當(dāng)前授權(quán)狀態(tài)是在其授權(quán)堆棧頂部找到的授權(quán)狀態(tài)。
根據(jù)本發(fā)明,當(dāng)調(diào)用不同的軟件對(duì)象時(shí),就將新的授權(quán)狀態(tài)推入授權(quán)堆棧的頂部。如上所述,新的授權(quán)狀態(tài)是舊授權(quán)狀態(tài)與被調(diào)用對(duì)象保護(hù)區(qū)域的交集。一旦該新軟件對(duì)象的執(zhí)行結(jié)束了并且控制轉(zhuǎn)移到原先的對(duì)象,那么當(dāng)前授權(quán)狀態(tài)就出棧。
類似地,當(dāng)遇到“開(kāi)始特權(quán)”結(jié)構(gòu)時(shí),就將新的授權(quán)狀態(tài)推入授權(quán)堆棧的頂部。這時(shí),新的授權(quán)狀態(tài)是舊授權(quán)狀態(tài)與當(dāng)前對(duì)象保護(hù)區(qū)域的并集。一旦特權(quán)片段(以“結(jié)束特權(quán)”結(jié)構(gòu))結(jié)束了,授權(quán)狀態(tài)就出棧。
現(xiàn)在參考圖2,顯示了安全線程1的授權(quán)堆棧的實(shí)例。安全線程1以某一狀態(tài)開(kāi)始,并獲得初始授權(quán)狀態(tài)S0。授權(quán)狀態(tài)S0是原線程授權(quán)狀態(tài)的拷貝。
之后,調(diào)用對(duì)象A,并將新的授權(quán)狀態(tài)推入堆棧。它是原先授權(quán)狀態(tài)與對(duì)象A的保護(hù)區(qū)域(POA)的交集。類似地,調(diào)用對(duì)象B,新的授權(quán)狀態(tài)為原先狀態(tài)和B的保護(hù)區(qū)域(POB)的交集。
最后,在對(duì)象B中,遇到“開(kāi)始特權(quán)”結(jié)構(gòu),使得建立一新的授權(quán)狀態(tài)。新的授權(quán)狀態(tài)是原先授權(quán)狀態(tài)和POB的并集。
根據(jù)本發(fā)明,授權(quán)堆棧中的每個(gè)條目都是授權(quán)狀態(tài),它應(yīng)該至少包括以下信息當(dāng)前可執(zhí)行對(duì)象的對(duì)象ID;安全組ID(標(biāo)識(shí)保護(hù)區(qū)域);當(dāng)該授權(quán)狀態(tài)產(chǎn)生(也就是,推入堆棧)時(shí)的時(shí)間標(biāo)記;和允許資源操作的列表(如打開(kāi)、關(guān)閉、讀和寫(xiě))。
在運(yùn)行時(shí)間檢驗(yàn)特定資源的授權(quán)。執(zhí)行資源檢驗(yàn)的最重要位置在代表資源的特定對(duì)象的“打開(kāi)”函數(shù)內(nèi)部。打開(kāi)調(diào)用應(yīng)該包括一種“模式”,該模式將返回的資源句柄限制在特定的操作組。因此,“打開(kāi)”函數(shù)內(nèi)部的檢驗(yàn)將校驗(yàn)安全線程被允許訪問(wèn)該資源,并被允許執(zhí)行特定的操作。
RACS也可以校驗(yàn)打開(kāi)資源上執(zhí)行的操作,以進(jìn)一步增強(qiáng)安全性??梢韵胂袢敉ㄟ^(guò)非法裝置(在常規(guī)“打開(kāi)”調(diào)用外部)獲得資源的句柄,則該句柄可以在之后對(duì)該句柄的操作期間被資源檢驗(yàn)檢測(cè)出。由于經(jīng)??梢詧?zhí)行資源操作,所以必須注意這些之后資源檢驗(yàn)的實(shí)施。之后的資源檢驗(yàn)每幾次調(diào)用才實(shí)際檢驗(yàn)一次,以改進(jìn)性能,這樣就足夠了。
如果在資源檢驗(yàn)API內(nèi)部檢測(cè)到非法資源訪問(wèn),那么必須執(zhí)行適當(dāng)?shù)膭?dòng)作。在一個(gè)實(shí)施例中,防止竄改安全處理器執(zhí)行該資源檢驗(yàn)API,該處理器負(fù)責(zé)對(duì)未授權(quán)訪問(wèn)執(zhí)行適當(dāng)?shù)膭?dòng)作。該動(dòng)作可以包括以下任何一種或它們的組合返回出錯(cuò)代碼,拒絕請(qǐng)求對(duì)該資源的操作;將未授權(quán)的訪問(wèn)消息寫(xiě)到日志記錄中;將未授權(quán)的訪問(wèn)報(bào)告給可信的當(dāng)局;去除非法的安全線程;和/或開(kāi)始關(guān)閉主機(jī)中的各種服務(wù)。為了允許最大的適應(yīng)性,每個(gè)保護(hù)區(qū)域可以包括標(biāo)記,該標(biāo)記用于確定檢測(cè)到未授權(quán)訪問(wèn)時(shí)所執(zhí)行的動(dòng)作。
每個(gè)資源檢驗(yàn)可涉及與安全處理器的通信,這可引入很多的額外開(kāi)銷。如上段所提到的,每幾次操作只執(zhí)行一次實(shí)際檢驗(yàn)?zāi)軠p小該額外開(kāi)銷。
在另一實(shí)施例中,每個(gè)資源訪問(wèn)不是立刻被檢驗(yàn),并且不是由獲得資源的安全線程檢驗(yàn)。而是,每個(gè)資源訪問(wèn)將被形成影像,理想地是形成在安全處理器可用的安全存儲(chǔ)器中,并且由安全處理器中運(yùn)行的獨(dú)立線程進(jìn)行檢查。如果線程檢測(cè)出未授權(quán)的訪問(wèn),那么它執(zhí)行任何以下的動(dòng)作或它們的組合將未授權(quán)訪問(wèn)消息寫(xiě)入日志記錄;將未授權(quán)訪問(wèn)報(bào)告給可信的當(dāng)局;去除非法的安全線程;和/或開(kāi)始關(guān)閉主機(jī)中的各種服務(wù)。如上所述,每個(gè)保護(hù)區(qū)域可以包括標(biāo)記,該標(biāo)記用于確定檢測(cè)到未授權(quán)訪問(wèn)時(shí)執(zhí)行的動(dòng)作。
可能希望動(dòng)態(tài)地改變對(duì)各種保護(hù)區(qū)域的資源許可。例如,可以根據(jù)機(jī)頂盒或其它平臺(tái)所有者購(gòu)買(mǎi)的功能性而改變資源許可。當(dāng)軟件對(duì)象被調(diào)用時(shí),與其保護(hù)區(qū)域關(guān)聯(lián)的最近資源許可可用于計(jì)算安全線程的授權(quán)狀態(tài),因此使得RACS比標(biāo)準(zhǔn)Java安全模式更動(dòng)態(tài)。
有時(shí)還可以改變對(duì)當(dāng)前可執(zhí)行的對(duì)象的許可。例如,如JVM的對(duì)象可以連續(xù)執(zhí)行很長(zhǎng)一段時(shí)間,有人想在重新開(kāi)始前使改變生效。需要定義附加的機(jī)構(gòu)以處理這種情況。
授權(quán)堆棧中的每個(gè)條目包括安全組ID,它指出特定的保護(hù)區(qū)域。當(dāng)授權(quán)堆棧中保護(hù)區(qū)域之一的資源許可改變時(shí),可能通過(guò)改變每個(gè)條目而更新堆棧,從對(duì)應(yīng)于改變后的保護(hù)區(qū)域之一開(kāi)始,向上繼續(xù),直到到達(dá)堆棧的頂部。
不幸的是,這樣還不足以解決問(wèn)題。當(dāng)安全線程A產(chǎn)生安全線程A-1時(shí),A-1的初始授權(quán)狀態(tài)被設(shè)置成A-1產(chǎn)生時(shí)A的授權(quán)狀態(tài)。就說(shuō)T時(shí)刻A的授權(quán)堆棧中的一個(gè)保護(hù)區(qū)域發(fā)生變化。我們可以調(diào)節(jié)A的授權(quán)堆棧,但是這時(shí)A-1的初始授權(quán)狀態(tài)可能過(guò)期。
沒(méi)有方法提供從A的授權(quán)堆棧到A-1的初始授權(quán)狀態(tài)的鏈接。這是因?yàn)樵贏-1啟動(dòng)之后,線程A可以獨(dú)立地連續(xù)執(zhí)行,到T時(shí)刻A的授權(quán)堆棧可能已完全不同,或者可能到那時(shí)候A已經(jīng)終止。
本發(fā)明提供了該問(wèn)題的解決方法。就說(shuō)安全線程A產(chǎn)生A-1。那么,將A-1的授權(quán)堆棧初始化成A的授權(quán)堆棧的精確拷貝。之后,當(dāng)A-1產(chǎn)生時(shí)刻正好在A的授權(quán)堆棧中的保護(hù)區(qū)域變化時(shí),也能在A-1的授權(quán)堆棧中找到該保護(hù)區(qū)域。這允許堆棧中的所有授權(quán)狀態(tài)適當(dāng)?shù)馗隆?br>
參考圖3,可以看出安全線程A如何產(chǎn)生A-1。最初,線程A運(yùn)行對(duì)象A,這意味著在A和A-1的授權(quán)堆棧中可以找到受A的保護(hù)區(qū)域所影響的條目。之后(在步驟5中),線程A停止執(zhí)行對(duì)象A,去除A的授權(quán)堆棧中的相應(yīng)條目。然而,由于線程A-1由對(duì)象A內(nèi)部的代碼產(chǎn)生,所以相應(yīng)的條目仍然在A-1的授權(quán)堆棧中。之后,對(duì)象A的保護(hù)區(qū)域變化。這不再影響線程A的授權(quán)堆棧,因?yàn)樗鼪](méi)有運(yùn)行對(duì)象A。然而,它卻影響相應(yīng)更新的A-1的授權(quán)堆棧。
在一個(gè)實(shí)施例中,有一種分離執(zhí)行的線程,稱為授權(quán)堆棧刷新(ASR)線程,當(dāng)保護(hù)區(qū)域變化時(shí)它可以動(dòng)態(tài)地更新授權(quán)堆棧的內(nèi)容。這不保證立刻更新授權(quán)堆棧,但是保證在合理的時(shí)間內(nèi)更新它們。在運(yùn)行特定的對(duì)象時(shí),根據(jù)資源許可是否需要更新,而任選是否啟動(dòng)該線程。
為了安全地實(shí)現(xiàn)RACS,在對(duì)象下載期間和對(duì)象啟動(dòng)(開(kāi)始執(zhí)行)期間必須驗(yàn)證每個(gè)對(duì)象的標(biāo)識(shí)。對(duì)象的驗(yàn)證可以獨(dú)立于RACS實(shí)現(xiàn),并且不在這里所討論的范圍內(nèi)。
保護(hù)區(qū)域的資源許可可以動(dòng)態(tài)地變化,并且必須安全地傳送。每個(gè)對(duì)象的資源許可可以被簽署一個(gè)授權(quán)權(quán)威的密碼,并應(yīng)該包括版本號(hào),以避免版本回退的攻擊?;蛘撸跈?quán)權(quán)威可以提供安全消息協(xié)議,如TLS或IPSEC,傳送資源許可。資源許可的傳送細(xì)節(jié)不在這里所討論的范圍內(nèi)。
當(dāng)防止竄改安全處理器中封裝了所有資源和驗(yàn)證檢驗(yàn)時(shí),進(jìn)一步增強(qiáng)了RACS的安全性。安全處理器的設(shè)計(jì)不在這里討論的范圍內(nèi)。
總之,本發(fā)明提供了控制數(shù)字處理裝置中資源訪問(wèn)的方法。雖然以上是本發(fā)明較佳實(shí)施例的完整描述,但是還可能使用各種變化、改變和等效的實(shí)例。因此,不應(yīng)該參考以上描述確定本發(fā)明的范圍,而是應(yīng)該參考以下的權(quán)利要求書(shū)及其等效范圍而確定。
權(quán)利要求
1.一種控制數(shù)字處理裝置中資源訪問(wèn)的方法,其特征在于,該方法包括以下步驟將第一組資源分配給數(shù)字處理裝置中的軟件對(duì)象;和在軟件對(duì)象的執(zhí)行期間,改變對(duì)軟件對(duì)象的資源分配。
2.一種控制數(shù)字處理裝置中資源訪問(wèn)的方法,其特征在于,該方法包括以下步驟識(shí)別數(shù)字處理裝置中的第一組資源;使一區(qū)域與第一組資源關(guān)聯(lián);和通過(guò)使軟件對(duì)象與該區(qū)域關(guān)聯(lián),將第一組資源分配給軟件對(duì)象。
3.如權(quán)利要求2所述的方法,其特征在于,軟件對(duì)象可以與一個(gè)或多個(gè)保護(hù)區(qū)域關(guān)聯(lián)。
4.如權(quán)利要求2所述的方法,其特征在于,所述區(qū)域是保護(hù)區(qū)域。
5.如權(quán)利要求4所述的方法,其特征在于,保護(hù)區(qū)域是靜態(tài)的。
6.如權(quán)利要求4所述的方法,其特征在于,保護(hù)區(qū)域是動(dòng)態(tài)的。
7.如權(quán)利要求4所述的方法,其特征在于,軟件對(duì)象與安全組標(biāo)識(shí)關(guān)聯(lián),該安全組標(biāo)識(shí)使軟件對(duì)象與保護(hù)區(qū)域關(guān)聯(lián)。
8.如權(quán)利要求4所述的方法,其特征在于,至少一個(gè)軟件對(duì)象中的每一個(gè)都與單個(gè)安全組標(biāo)識(shí)關(guān)聯(lián);每個(gè)不同的安全組標(biāo)識(shí)使軟件對(duì)象或與其關(guān)聯(lián)的對(duì)象與不同的保護(hù)區(qū)域關(guān)聯(lián)。
9.如權(quán)利要求8所述的方法,其特征在于,還包括以下步驟運(yùn)行具有授權(quán)狀態(tài)的安全線程;和通過(guò)安全線程調(diào)用軟件對(duì)象,其中根據(jù)通過(guò)安全線程調(diào)用的軟件對(duì)象,改變授權(quán)狀態(tài)。
10.如權(quán)利要求9所述的方法,其特征在于,當(dāng)?shù)谝卉浖?duì)象調(diào)用第二軟件對(duì)象時(shí),授權(quán)狀態(tài)與第二軟件對(duì)象的保護(hù)區(qū)域相交。
11.如權(quán)利要求8所述的方法,其特征在于,與同一安全組標(biāo)識(shí)關(guān)聯(lián)的所有軟件對(duì)象被授權(quán)相同的資源組。
12.如權(quán)利要求9所述的方法,其特征在于,還包括以下步驟使授權(quán)堆棧與安全線程關(guān)聯(lián),其中安全線程的當(dāng)前授權(quán)狀態(tài)是授權(quán)堆棧頂部的授權(quán)狀態(tài)。
13.一種控制數(shù)字處理裝置中資源訪問(wèn)的方法,其特征在于,該方法包括以下步驟將第一組資源分配給數(shù)字處理裝置中的軟件對(duì)象;和改變軟件對(duì)象的資源分配,以改變軟件對(duì)象的功能性。
14.如權(quán)利要求13所述的方法,其特征在于,當(dāng)軟件對(duì)象執(zhí)行時(shí),改變軟件對(duì)象的資源分配。
15.如權(quán)利要求13所述的方法,其特征在于,還包括以下步驟從終端用戶處收取費(fèi)用,以交換資源分配的改變。
16.一種控制數(shù)字處理裝置中資源訪問(wèn)的系統(tǒng),其特征在于,該系統(tǒng)包括將第一組資源分配給數(shù)字處理裝置中軟件對(duì)象的裝置;和在軟件對(duì)象執(zhí)行期間,改變軟件對(duì)象的資源分配的裝置。
全文摘要
一種資源訪問(wèn)控制系統(tǒng),它限制處理裝置中執(zhí)行的各個(gè)軟件對(duì)象的訪問(wèn)權(quán)利。軟件對(duì)象被設(shè)計(jì)成屬于一個(gè)或單個(gè)保護(hù)區(qū)域。每個(gè)保護(hù)區(qū)域定義對(duì)軟件對(duì)象可訪問(wèn)的資源的許可。對(duì)軟件對(duì)象的資源分配可以隨時(shí)間變化,即使在對(duì)象執(zhí)行時(shí)。本方法提供的另一優(yōu)點(diǎn)是客戶可以下載軟件對(duì)象,使它的一些功能性已通過(guò)資源控制被失效。之后,同一客戶可以付費(fèi),獲取同一軟件對(duì)象中的附加功能性。這可以通過(guò)改變對(duì)軟件對(duì)象的資源控制使得軟件對(duì)象能訪問(wèn)資源的擴(kuò)充列表而實(shí)現(xiàn)。軟件對(duì)象與安全組ID關(guān)聯(lián),該安全組ID使對(duì)象與特定的保護(hù)區(qū)域關(guān)聯(lián)。
文檔編號(hào)G06F9/46GK1372663SQ00812404
公開(kāi)日2002年10月2日 申請(qǐng)日期2000年9月5日 優(yōu)先權(quán)日1999年9月3日
發(fā)明者M·布蘭斯拉夫, A·麥德維恩斯基 申請(qǐng)人:通用器材公司