專利名稱:具有存儲保護的多用戶數(shù)據(jù)處理設備的制作方法
一數(shù)據(jù)處理設備的基本裝置為一處理器和一存儲器。在存儲器中一方面存放由處理器執(zhí)行的指令,另一方面處理器可將運行結(jié)果寫入存儲器。通常全部可供使用的存儲器,即可由處理器定址的存儲器至少被劃分為兩個單獨范圍。在生產(chǎn)數(shù)據(jù)處理設備時,已在第一范圍內(nèi)(以下稱操作系統(tǒng)存儲范圍)存放了操作系統(tǒng)編碼,該編碼主要用于管理設備的硬件組件。在第二范圍內(nèi)(以下稱用戶存儲范圍)可以存放數(shù)據(jù)處理設備的用戶自己編寫的程序及數(shù)據(jù)。
數(shù)據(jù)處理設備的處理器本身并不區(qū)分這兩個存儲范圍。微處理器的整個地址范圍只存儲在一個不可改寫的存儲器內(nèi)(例如ROM,只讀存儲器)還是存儲在一個非易失的應用存儲器內(nèi)(例如EEPROM,電可擦可編程只讀存儲器)對于移動數(shù)據(jù)處理設備例如處理器芯片卡毫無區(qū)別。不論存儲單元位于操作系統(tǒng)存儲范圍還是位于用戶存儲范圍,處理器都根據(jù)需要利用全部地址范圍獨立訪問任何一個存儲單元。其結(jié)果是借助一獨自的程序編碼,即由用戶存放在移動數(shù)據(jù)處理設備中一預留的用戶存儲范圍內(nèi)的用戶指令,用戶可以有目的地或隨機地不受局限地讀和/或?qū)懺L問操作系統(tǒng)存儲范圍和分配給其它用戶的用戶存儲范圍以及設置在該范圍的用戶程序和用戶數(shù)據(jù)。
在文獻EP0561509A1中介紹了一種具有多個用戶終端和輸入輸出接口的網(wǎng)絡計算機系統(tǒng)。該計算機系統(tǒng)由一操作系統(tǒng)(如一UNIX操作系統(tǒng)指令組)運行。在該系統(tǒng)中,可以對用戶基本封鎖某些特定操作系統(tǒng)指令或輸入輸出接口。當計算機系統(tǒng)的用戶具有一存放在存儲器內(nèi)的訪問許可時,他可以在操作系統(tǒng)的監(jiān)控下,通過輸入一附加的操作系統(tǒng)指令間接調(diào)用或激活上述指令或接口。
在文獻DE4115152A1中公開了一種用于便攜式數(shù)據(jù)記錄裝置的具有數(shù)據(jù)保護功能的微處理器電路。該電路包括一個與實質(zhì)的微處理器電路分立的附加保護電路,用于保證外來程序只訪問那些允許訪問的存儲范圍。在第一實施形式中,該附加保護電路包括一個帶輔助寄存器的第一比較電路和帶輔助寄存器的第二比較電路。與用戶相關的用戶訪問存儲范圍的邊界值或者存放在固定的邏輯電路中或者存放在一個安全的存儲器中,這些邊界值由實質(zhì)的微處理器電路加載到輔助寄存器中,并通過比較電路與實質(zhì)的微處理器電路的地址寄存器和程序計數(shù)器進行比較。比較電路的輸出值通過一邏輯和門相互聯(lián)結(jié)并被傳送給實質(zhì)的微處理器電路的控制電路。在第二種硬件實施形式中,該附加保護電路包括一個自身的具有脈沖頻率分配電路的保護處理器和自身的存儲裝置。在該存儲裝置中存放了與用戶相關的訪問存儲器范圍的邊界值,這些邊界值通過保護處理器與實質(zhì)的微處理器電路的地址寄存器和程序計數(shù)器相比較。
本發(fā)明的目的在于為一便攜芯片卡提供一種存儲訪問保護,盡量不改變芯片卡的硬件結(jié)構(gòu)就能實現(xiàn)該存儲訪問保護。
本發(fā)明的目的是這樣實現(xiàn)的,首先,這樣設計處理器的內(nèi)部微編碼,使其封鎖執(zhí)行加載到用戶存儲范圍的要求讀或?qū)懘鎯卧膬?nèi)容的處理器標準指令。此外,在操作系統(tǒng)存儲范圍還存放了一個存儲范圍訪問表,在該表中,對每個用戶存儲范圍,分別存放了加載到各個用戶存儲范圍的指令所允許訪問的地址范圍。此外,在處理器的操作系統(tǒng)中還存放了一個附加程序例程,該例程由一個加載到一用戶存儲范圍的,要求讀或?qū)懸淮鎯卧闹噶钫{(diào)用,并借助存儲范圍訪問表在執(zhí)行指令前檢查當時的指令要求訪問的存儲單元是否處于允許訪問的地址范圍,若不是,則封鎖該指令的執(zhí)行。
本發(fā)明的優(yōu)點在于可以用簡單的方式,僅借助程序手段,將在用戶程序存儲范圍包含的一個或多個應用程序的“操作半徑(操作區(qū)域)”限制在數(shù)據(jù)處理設備的特定存儲范圍,而不需附加的硬件組件。允許用戶程序指令讀寫的存儲器地址范圍可以與用戶相關地存放在存儲范圍訪問表中。通常,該允許地址范圍與供用戶使用的并含有獨自的應用程序編碼的用戶存儲范圍是一致的。因此可禁止用戶借助其應用程序編碼讀或?qū)懺L問其指定的用戶程序存儲范圍以外的存儲單元,這些存儲單元或處于為另一個用戶指定的用戶存儲范圍或處于操作系統(tǒng)存儲范圍。
以下結(jié)合附圖
所示實施例詳細說明本發(fā)明。圖中示出一數(shù)據(jù)處理設備的存儲器的典型劃分,也稱存儲器布置。其中存儲器大致分為兩部分,上一部分為所謂的用于存儲操作系統(tǒng)編碼的操作系統(tǒng)存儲范圍,其地址范圍從起始地址0000h開始(h=16進制碼)。操作系統(tǒng)主要管理對處理器的控制,及數(shù)據(jù)處理設備中可能存在的其它裝置的運行及對存儲器的訪問。與之相鄰的用戶存儲范圍用于存儲通常不同用戶的應用程序編碼和應用數(shù)據(jù)編碼,在本實施例中,該存儲范圍從起始地址8000h(h=16進制碼)開始。因而該存儲范圍自身又劃分為各個子范圍,在圖中舉例示出了兩個這種子范圍,一個由起始地址8000h到8FFFh的范圍供用戶A存儲應用程序編碼和應用數(shù)據(jù)編碼。一個與之相鄰的從起始地址9000h到9FFFh的范圍供第二用戶B存儲應用程序編碼和應用數(shù)據(jù)編碼。從下一個起始地址A000h到存儲器的最后一個地址FFFh可以接著為其它用戶指定子范圍。
在示例中,例如,為用戶A指定了8000h至8FFFh的地址范圍為其用戶存儲范圍,用戶A根據(jù)該范圍內(nèi)安裝的用戶程序編碼只能存取用戶數(shù)據(jù),這些用戶數(shù)據(jù)編碼也被存儲在從起始地址8000h至終止地址8FFFh的存儲單元中。根據(jù)本發(fā)明,通過在操作系統(tǒng)存儲范圍的存儲范圍訪問表中以“應用程序A”標識的存儲單元中寫入一相應的記錄可保證上述要求。在圖中的示例中,用由S1表示的實線所示的正向的在自身的用戶程序存儲范圍內(nèi)的應用程序編碼的允許程序分支表示這種情況。所有超過該用戶程序存儲范圍的程序分支,如進入到操作系統(tǒng)存儲范圍的分支S5及進入到與用戶A相鄰的用戶程序存儲范圍的分支S3(該存儲范圍為9000h到9FFFh)是不允許的,因而不會被執(zhí)行。這種情況在圖中用虛線表示。
同樣,安裝在另一用戶B的用戶程序存儲范圍9000h至9FFFh內(nèi)的應用程序編碼只能讀或?qū)懺L問位于自身的用戶程序存儲范圍內(nèi)的存儲單元,例如只能執(zhí)行圖中以S2表示的逆向的程序分支。超越該用戶程序存儲范圍從而進入到用戶A的存儲范圍的讀或?qū)懺L問(圖中用虛線S4表示)同樣是不允許的,因而根據(jù)本發(fā)明不允許其執(zhí)行。
對處理器的內(nèi)部微編碼進行有益的改變,使得在執(zhí)行一要求讀或?qū)懺L問存儲單元內(nèi)容的處理器標準指令前,首先檢查分別屬于各標準指令的處理器的程序計數(shù)器中的當前內(nèi)容。該當前內(nèi)容大致“指向”當前待執(zhí)行的指令的來源地址。如果程序計數(shù)器的內(nèi)容指示一個位于操作系統(tǒng)存儲范圍內(nèi)的存儲單元地址,即該指令為操作系統(tǒng)的一部分,則允許執(zhí)行該指令。在這種情況下,指令不是來源于用戶而是來源于系統(tǒng)。相反,如果程序計數(shù)器的內(nèi)容指示一個位于用戶存儲范圍內(nèi)的存儲單元地址,便封鎖該指令的執(zhí)行。很明顯,在這種情況下該指令是來源于用戶的。
根據(jù)本發(fā)明,這種指令是通過處理器的操作系統(tǒng)內(nèi)的例行程序間接執(zhí)行的。這是采用以下方式有益設計的,即首先檢查屬于當時要求對存儲單元執(zhí)行讀或?qū)懺L問指令的處理器的堆棧存儲器的當前內(nèi)容。在該堆棧存儲器中存儲了指令的返回地址,該返回地址同樣反映待執(zhí)行的指令的來源。然后將該堆棧存儲器的內(nèi)容所包含的存儲范圍訪問表的記錄與各指令要求的對一存儲單元的訪問進行比較。如果所要求的對存儲單元的訪問指向一個存儲范圍訪問表中的允許地址范圍以外的存儲單元,則封鎖該指令的執(zhí)行,反之,則執(zhí)行該指令。
根據(jù)本發(fā)明的數(shù)據(jù)處理設備尤其適用于移動式工作方式,這是因為這種工作方式常常需要多個用戶同時使用該數(shù)據(jù)處理設備。每個用戶可以不受可能存在的其它用戶的干擾或其它應用程序或數(shù)據(jù)的無意干擾使用數(shù)據(jù)處理設備。尤其可以保證各用戶之間的數(shù)據(jù)保密,并阻止由一個安裝在用戶程序存儲范圍的應用程序編碼未經(jīng)允許地及可能非業(yè)務性地讀和寫訪問操作系統(tǒng)。根據(jù)本發(fā)明,處理器芯片卡特別適合用作移動數(shù)據(jù)處理設備。
權(quán)利要求
1.一種具有一個處理器和一個存儲器的便攜式芯片卡,所述存儲器被劃分為一個操作系統(tǒng)存儲范圍和至少一個用戶存儲范圍,其中a)適當改變處理器的內(nèi)部微編碼,以便封鎖執(zhí)行加載到用戶存儲范圍的要求讀或?qū)懺L問存儲單元內(nèi)容的處理器標準指令,b)在所述操作系統(tǒng)存儲范圍存在一存儲范圍訪問表,在該表中,為每個用戶存儲范圍分別存放了加載到各用戶存儲范圍的處理器標準指令的允許地址范圍,c)在所述操作系統(tǒng)存儲范圍內(nèi)有一個程序例程,該程序例程c1)由一個加載到用戶存儲范圍的,要求讀或?qū)懺L問一存儲單元的處理器標準指令調(diào)用,c2)利用存儲范圍訪問表檢查當時的處理器標準指令要求訪問的存儲單元是否位于允許的地址范圍,c3)如果不是,則封鎖執(zhí)行處理器標準指令。
2.根據(jù)權(quán)利要求1所述的裝置,其中這樣調(diào)節(jié)處理器的內(nèi)部微編碼,使得a)在執(zhí)行要求讀或?qū)懺L問存儲單元內(nèi)容的處理器標準指令前,檢查屬于當時的處理器標準指令的處理器程序計數(shù)器的當前內(nèi)容,b)當程序計數(shù)器的內(nèi)容指示一位于操作系統(tǒng)存儲范圍的存儲單元的地址時,允許執(zhí)行該處理器標準指令,c)當程序計數(shù)器的內(nèi)容指示一位于用戶存儲范圍的存儲單元的地址時,封鎖執(zhí)行該處理器標準指令。
3.根據(jù)權(quán)利要求1或2所述的裝置,其中這樣設計位于處理器操作系統(tǒng)中的程序例程,使之a(chǎn))檢查屬于當時要求讀或?qū)懺L問一存儲單元的處理器標準指令的處理器的堆棧存儲器的當前內(nèi)容,b)將堆棧存儲器的內(nèi)容中所包含的存儲范圍訪問表的記錄與當時的處理器標準指令要求對存儲單元的訪問進行比較,c)當所要求的訪問指向一個存儲范圍訪問表中的允許地址范圍以外的存儲單元時,封鎖執(zhí)行該處理器標準指令。
全文摘要
一種具有存儲保護的多用戶數(shù)據(jù)處理設備,特別對處理器的微編碼進行適當改變,以便封鎖執(zhí)行一加載到用戶存儲范圍的,要求讀或?qū)懺L問存儲單元內(nèi)容的處理器標準指令,在操作系統(tǒng)存儲范圍有一存儲范圍訪問表,在該表中,為每個用戶存儲范圍存放了其中的指令的允許地址范圍,此外還有一附加程序例程,該程序例程由一個加載到用戶存儲范圍的,要求讀或?qū)懺L問一存儲單元的指令調(diào)用,借助存儲范圍訪問表,在執(zhí)行指令前檢查所要求訪問的存儲單元是否位于允許地址范圍,如果不是,則封鎖執(zhí)行該命令。本發(fā)明的優(yōu)點是,用簡單的方式就能限制用戶程序存儲范圍的一個或多個應用程序的“作用半徑”。
文檔編號G06F12/14GK1176700SQ96192133
公開日1998年3月18日 申請日期1996年3月7日 優(yōu)先權(quán)日1995年3月10日
發(fā)明者馬庫斯·溫蘭德 申請人:西門子公司