新四季網

一種歸類數據語言的安全方法,特別是在嵌入式系統中及實現該方法的嵌入式系統的製作方法

2023-05-27 20:39:26 2

專利名稱:一種歸類數據語言的安全方法,特別是在嵌入式系統中及實現該方法的嵌入式系統的製作方法
技術領域:
本發明涉及一種歸類的數據類型的語言的動態安全方法,特別是對於一個電子晶片嵌入式系統。
發明還涉及一種使用該方法的電子智慧卡嵌入式系統。
為說明該觀念,並且不限制其範圍,在後面發明在最佳應用的情況下,即基於靈巧卡的應用,除非有相反的描述。
同樣,儘管不同的信息性語言,例如「ADA」或「KAMEL」(二者都是註冊商標),都是被稱為歸類的數據或對象類型的,但是一種在發明中最常用的是「JAVA」對象類型的語言,為詳細描述發明的方法,該語言將在後面被作為例子。
最後,術語「安全」必須以其最一般的意義來被理解。特別地,這同樣涉及到與嵌入式系統中硬體和/或軟體的完整性以及使用的數據的保密有關的概念。
在描述發明之前,首先簡要地回顧一下「JAVA」語言的主要特徵,特別是在靈巧卡類型的環境中,是有用的。
「JAVA」語言特別是具有多平臺的優點執行以「JAVA」語言編寫的應用程式的機器只需要帶有最小的特定信息資源,特別是帶有一個被稱為「JAVA虛擬機」的軟體,以解釋8比特指令「操作碼」序列流,被稱為「字節碼」或「p-碼」(指「程序碼」)。「p-碼」被記錄在前述數據記錄裝置的記錄位置中。更準確地,在「JAVA」語言的情況下,從邏輯的觀點看,存儲位置所佔據的區域具有棧的公知構造。
在智慧卡的情況中,它集成「JAVA虛擬機」並通過解釋基於前述操作碼序列的語言來工作。可執行代碼或「p-碼」產生於一個預編譯。編譯器被設置以使得變換的語言符合一個預定義的格式,並且遵從某些預先建立的規則。
「操作碼」可以接收「p-碼」序列中接下來的元素值,因而這些元素被稱為參數。操作碼也可以接收來自棧中的值。因此這些元素構成了操作數。
根據「JAVA」語言的另一個特徵,元素以「類」和「方法」的名義被使用。當執行一個給定的方法時,虛擬機尋找對應的「p-碼」。該「p-碼」表示由虛擬機執行的特定操作。一個特定的棧必須用於局部變量,用於算術運算或用於其它方法的調用。
該棧對於虛擬機用作工作區。為優化虛擬機的性能,對於一個給定的原始類型棧的長度通常是固定的。
在該棧中,兩大類型的對象被使用-「原始」類型的對象,它以「int」(長整型4位元組),「short」(短整型2位元組),「byte」(字節),「Boolean」(布爾對象)的命名所公知;以及-「參考」類型的對象(原始類型對象陣列,類實例)。
這兩種對象類型之間的基本不同僅在於虛擬機向參考類型的對象指定一個值並處理它們。
參考對象可以被看作是指向智慧卡存儲區域的指針(物理或邏輯參考)。
「JAVA」語言,其主要特點剛剛簡要地回顧,特別適合於與網際網路絡內連應用,並且其極大的成功還與網際網路的應用大量發展相聯繫的。
從安全的觀點,它同樣具有一些優點。首先,可執行代碼或「p-碼」產生於一個預編譯。因此編譯器如同已經表明的那樣被設置,以使得變換的語言符合一個預定義的格式,並且遵從某些預先建立的規則。
這些規則之一是一給定的應用被封閉於一個被稱為「砂盒」(或「黑盒子」)之內。與給定應用相關的指令和/或數據被存儲在數據記錄裝置的存儲位置。在「JAVA」語言情況中,從邏輯觀點上看,這些數據記錄裝置的構造具有一個棧的形式。在一個「砂盒」中的封閉實際上表明,前述指令不能在為所述應用指定的存儲位置之外尋址存儲位置,除非授權元件。
然而,當裝載存儲器後,安全問題就可能被提出來,如果「p-碼」被改變或者如果其格式沒有遵守虛擬機的規範。再有,在現有技術中,特別是涉及到通過網際網路遠程下載的應用,例如「applets」(小應用程式),被編譯的代碼,也就是說「p-碼」由虛擬機來驗證。該後者通常與「WEB」類型的導航器相關聯,它帶有一個與網際網路網絡相連的終端。為此,虛擬機本身與一個特定的軟體或驗證器相關聯。
該驗證可以以「off-line(離線)」模式被執行,也就是說沒有連接,這不會破壞到應用的處理,特別是從通訊成本的觀點看。
因此在進行驗證後,我們可以保證「p-碼」沒有被損害並且符合預先建立的格式和規則。在該情況下,我們可以保證在「p-碼」執行時,在其執行中不會損壞終端。
然而,該方法不是沒有缺陷,特別是在發明最佳應用的範圍內。
首先,前述驗證器需要相對較多的存儲器數量,幾兆字節的量級。如果驗證器被記錄在擁有較多存儲器資源的微機或類似的終端中,該較高的值並不會帶來特別的問題。然而,當我們所面臨的是使用具有有限計算資源的數據處理終端時,更不必說智慧卡,從實踐的觀點看,考慮到實際可用的技術,不可能在該類型終端中裝入驗證器。
同樣地,我們必須要注意到,驗證屬於我們可以定性為「靜態」的類型,因為在「p-碼」執行之前,只執行一次。當這涉及到微機類型的終端時,特別是當該終端在執行預先驗證過的「p-碼」時保持不連接時,該後一特性不會帶來特殊的問題。實際上,從安全的觀點看,不存在很大的風險,因為終端通常是在其操作者的控制之下。
而這並不是移動嵌入式系統的情況,特別是智慧卡的情況。實際上,如果「p-碼」,儘管被驗證過,接下來被裝入靈巧卡數據記錄裝置中,也可能要接受以後的替換。通常,智慧卡,自然地,不可能被用於永久地存留於應用被裝入的終端中。以一個非限制性的例子,智慧卡可能遭受輻射電離,它物理性地改變存儲位置。也可能在從終端到智慧卡的下載時改變「p-碼」。
其結果是,如果「p-碼」被改變,特別是用於目的中,就可能執行一個被稱為存儲區域「轉儲」和/或使智慧卡的良好運行處於危險的操作。這也可能,例如,雖然存在前述「砂盒」,存取保密數據,或者在更少的情況下未經授權地攻擊存在於智慧卡中一個或多個應用的完整性。最後,如果靈巧卡被連接到外部世界,所產生的錯誤運行可能蔓延到智慧卡的外部。
發明在於克服現有技術的方法和設備的缺陷,一些缺陷已經被回顧了。
發明還提供一種使用該方法的系統。
為此,根據第一個特徵,一個包括一個或多個比特的二進位信息元素,以下稱為「類型信息元素」,與每一個虛擬機操作的對象相關聯,在前述的「JAVA」語言的情況中。更一般地,一個類型信息元素被物理性地存儲在電子智能嵌入式系統的存儲裝置的特別存儲器區域中。
根據另一個特徵,還是虛擬機,總是在「JAVA」語言的情況下,在執行某些「p-碼」操作的情況下,例如在棧中處理對象,等等,驗證所述類型信息元素,操作將在後面被詳細描述。同樣更一般地,對於其它語言,處理是類似的並且是在一個類型信息元素的驗證步驟中被處理。因此我們看到,更好地,所述驗證是我們可以稱為動態的類型,因為在代碼解釋或執行時實時進行。
虛擬機,或對於不同於「JAVA」語言的其它語言的替代,在一個指令或一個操作的所述執行之前,連續驗證類型信息元素是否很好地對應於要處理的類型數據或對象所期待的類型。當一個不正確的類型被探測到時,對於電子智能嵌入式系統的完整性而言,安全措施就會被採取,以保護虛擬機和/或防止所有不合適的操作和/或危險。
根據發明方法一個實現的第一個變化,所述類型信息元素同樣最好地被用於大小變化的棧管理,這也可以優化電子智能嵌入式系統的存儲器空間,該類型的資源是有限的,如前所述。
根據實現的第二個變化,可以與第一種變化合併,信息類型元素同樣被使用,通過加入一個或多個額外的信息比特,用作「標記」(英文術語「flag」),以標記對象和類型數據。該標記用於表明,該後面的元素是否被使用,並且在否定的情況下,是否從存儲器中清除,從而能獲得存儲空間。
因此發明主要是提供一種用於信息應用的指令序列的安全執行,它以記錄在信息系統,特別是電子智能嵌入式系統的存儲器的確定的第一位置系列的類型數據格式呈現,其特徵在於稱為類型信息元素的附加數據被關聯於每一個所述類型數據,以便指定這些數據的類型,並且所述類型信息元素被記錄在信息系統所述存儲器被確定的第二存儲位置系列,並且在一個預定義類型指令執行之前,它在預定義指令執行前,一個連續的在這些指令所表明的類型和在記錄在所述第二存儲位置系列的所述類型信息元素所表明的期望類型的一致性類型驗證所執行。
發明還在於一種用於使用該方法的電子智能嵌入式系統。


發明將以一種更加詳細地並參照附圖的形式被描述,在其中-圖1A到1G示出了,在與存儲根據發明的類型信息元素的所述數據的特定存儲器區域相關聯的棧存儲器中,一個「p-碼」例子正確執行的主要步驟;-圖2A和2B簡要地示出了該同樣代碼的執行步驟,但是具有一個錯誤執行的變化,並且該變化由根據發明的方法所探測;-圖3簡要地示出了包括一個用於應用根據發明方法的智慧卡的系統。
具體實施例方式
在後面,並非限制其範圍,我們將在此後處於發明最佳應用的範圍內,除非指出相反的情況,也就是說在集成有用於翻譯「p-碼」的「JAVA」虛擬機的電子智能嵌入式系統的情況下。
如同我們在本說明書序言中所回顧的那樣,當一個給定方法執行時,虛擬機查找對應的「p-碼」。該「p-碼」標識虛擬機要執行的特定操作。一個特殊的棧對於局部變量及算術操作的處理或對於其它方法的調用是必需的。
對於虛擬機而言棧用作工作區。為優化虛擬機性能,棧的長度對於一個給定的原始類型通常是固定的。
如同已經回顧的,在該棧中兩大類型對象可以被使用-「原始」類型的對象,它以「int」(長整型4位元組),「short」(短整型2位元組),「byte」(字節),「Boolean」(布爾對象)的命名所公知;以及-「參考」類型的對象(原始類型對象陣列,類實例)。
從安全觀點看,是該後一對象類型更容易出現問題,並且如前所指出的那樣,可能存在人為使用它們並且造成不同狀態的錯誤運行。
存在多種類型的「操作碼」,特別是-一個原始類型對象的創建(例如被命名為「bipush」或「iconst」的操作碼);-對於原始類型對象的算術運算執行(例如被命名為「iadd」或「sadd」的「操作碼」);-一個參考對象的創建(例如被命名為「new」,「newarray」或「anewarray」的「操作碼」)。
-局部變量的管理(例如被命名為「aload」,「iload」或「istore」的「操作碼」);並且-類變量的管理(例如被命名為「getstatic_a」或「putfield_i」的「操作碼」)。
每一個使用位於棧中對象的「操作碼」被確定類型,以便保證其執行能夠被控制。通常「操作碼」的第一個(些)字母表示了所使用的類型。作為一個例子,並為明確該觀念,(第一個(些)字母被加黑以使該狀態更加清晰),我們可以引證如下的「操作碼」-「aload」指參考對象;-「iload」指整數;並且-「iaload」指整數陣列。
在後面,為簡化起見「JAVA虛擬機」將被稱為JVM。
根據發明方法第一個特徵,類型信息元素被儲存在一個存儲區中,並且其每一個是以一個或多個比特的形式。這些類型信息元素的每一個成為由JVM使用的一個對象。我們特別將類型信息元素關聯於-填充在棧數據區的每一個對象;-每一個局部變量(其範圍不超過方法範圍的變量);以及-每一個被稱為「堆」的對象,也就是說存儲稱為「參考」的對象存儲區域,每一個陣列和每一個全局變量。
該操作可以被稱為對象「分類型」。根據發明方法第二個特徵,JVM在下列情況下驗證分類型-當一個「操作碼」操作一個存儲在棧中的對象;-檢索在「堆」區域或在局部變量區中的對象以將其置於棧中;-改變「堆」區域或局部變量區中的對象;以及-在調用一個新方法期間,當操作數與方法特徵比較時。
根據發明方法的另一個特徵,在執行上面的操作之前,JVM驗證其類型實際上對應於所期望的類型(也就是說它們由要執行的「操作碼」所給出)。
在類型探測不正確的情況下,就會採取安全措施,以便保護JVM和/或防止所有對於系統完整性而言的非法操作或危險,不論是從軟體還是從硬體的觀點看。
為更好地解釋發明的方法,我們將通過考察一個「JAVA」語言原始碼的特殊例子來詳細說明。
我們同樣假設JVM被關聯於一個32比特的棧,它包括最多32級並且支持原始類型(例如「int」,「short」,「byte」,「Boolean」和「object reference(對象參考)」。
棧的分類型,根據發明的一個特徵,可藉助於3比特長度的類型信息元素,按照本說明書後面的表1,來被實現。表1中的值自然可以是任意的。在不脫離發明範圍的情況下也可以採取其它的協議。
將在後面作為一個特殊的例子被考慮的「JAVA」原始碼如下「JAVA」原始碼(1)Public void method{int[]buffer; //聲明 buffer=new int[2]; //創建一個2個元素的整數數組buffer[1]=5; //以值5來初始化數組}在通過一個合適的編譯器後,一個容納有對應於上述原始碼(1)的「p-碼」(2)的「類」文件就被獲得了。它表達如下「p-碼」(2)iconst_2 //推入整型常數2newarray T_INTastore_1 int[]buffer;aload_1 int[]buffer;iconst_1//推入整型常數1iconst_5//推入整型常數5iastorereturn如同所屬技術領域的技術人員公知的那樣,前三行對應於前述數組的創建(見原始碼(1))。後5行對應於該數組的初始化。
現在我們將詳細示出上述「p-碼」的正確執行步驟。而「p-碼」是解釋類型的語言,連續的行被一句接一句地閱讀,前述步驟對應於這些行的執行,可能還有重複和/或跳轉執行。在後面,不同的代碼行被加黑以使其更清晰。
正確執行步驟1「iconst_2」
圖1A簡要地示出該「p-碼」的執行步驟。我們以標記1示出晶片嵌入式系統(未示出)的存儲器。更準確地,該存儲器1被分為4個主要部分,兩個是與現有技術相同的稱為「zone data(數據區)」(數據)的區2a和稱為「zone variable locale(局部變量區)」的區3a。這些區,2a和3a,構成了準確地說是「JAVA」虛擬機的棧,我們在後面將簡單地稱其為「JVM棧」。
這些區分別與特定於發明的存儲區4a和5a相關聯,在後面將其稱為「分類型」區。根據發明的一個方面,4a和5a被用於將與存儲在區2a和3a的數據相關聯的存儲類型信息元素(在所述的例子中是3比特長),分別存儲在與這些區的存儲位置一一對應關聯的存儲位置中。這些存儲器的邏輯組織如同回顧過的那樣是「棧」類型的。因此,它以一個cxl維的陣列來被表示,c是列數,l是行數,也就是說棧的「高度」或級(它在一個「p-碼」的每一個執行步驟中是可變的)。在例子中,對於「數據區」2a和「局部變量區」3a(每一列對應一個4位元組的存儲位置,即總共32比特)c=4,對於「分類型」區4a和5a是c=3,(每一列對應於1比特的存儲位置)。在圖1A上,所表示的行數(或級數1到所述的例子中的最大值32)對於所有存儲區是等於2。因此存儲器區的每一個,2a到5a,構成了棧元素。
我們必須很好的理解,儘管物理上,前述存儲位置可以基於不同的電子電路來被實現隨機存取存儲器單元,寄存器,等等。同樣,在存儲器1空間中不是強制性地相鄰的。圖1A僅構成存儲器1棧邏輯組織的一個簡要展示。
在該第一步中要執行的「操作碼」即沒有參數,也沒有操作數。整數值2(或「0002」)在棧中被替換在區2a的級1(例子中下一行)。對應的「分類型」區4a被表明。
根據表1的協議,「int」(整數)值「000」(比特)被置於「分類型」區4a中,同樣在1級(下面一行)。在「局部變量區」3a中不置入任何值。同樣在對應的「分類型」區5a也不置入。
步驟2newarray T_INT
對應的步驟由圖1B所示。
與圖1A相同的元素具有相同的數字標示,並且僅是在必要時才被重複描述。僅是與數字值相關的字母值被改變。它與對應圖一樣,也就是在圖1B的情況下是b,以便特徵化存儲區內容的連續改變。這同樣適用於接下來的圖1C到1G。
在該第二步中要執行的「操作碼」是用於要建立陣列的類型參數(即類型「int」)。
該「操作碼」是一個值必須是「int」類型的操作數,對應於要建立陣列的大小(即2)。
「分類型」區的驗證(在狀態4a)表明一個正確的類型。因此執行是可能的。
一個參考對象在「JVM棧」中被建立例如(任意的)4位元組值「1234」被置於「局部變量區」(級1)的存儲位置。因為它涉及一個參考類型的對象,值「100」(比特)被置於對應的「分類型」區5b(級1)。
任何值不會置入在存儲器區3b中,也不會在「分類型」區5b中。
步驟3astore_1 int[]buffer該步驟由圖1C所示。
「操作碼」是一個必須是「參考對象」類型值的操作數。「分類型」區的驗證(在步驟4b)表明一個正確的類型。因此執行是可能的。
參考對象被移向「局部變量區」3c位置1(級1)。
「分類型」區4c和5c被更新值「100」(比特)被從區4c的級1朝向區5c的級1移動。
步驟4aload_1 int[]buffer該步驟由圖1D所示。
該「操作碼」用於將存儲在「局部變量區」3d的參考對象「1234」推入「數據區」2d的級1,也就是說在該區下面行的存儲位置中。
「分類型」區的驗證(在狀態5c)表明一個正確的類型。因此執行是可能的。
參考對象「1234」被置入在「數據區」2d。
「分類型」區4d和5d被更新並且在對應的存儲位置中二者都存儲值「100」(比特),表示一個「參考對象」類型。
步驟5iconst_1 //推入整型常數1該步驟由圖1E示出。
要在該步驟中執行的「操作碼」即沒有參數也沒有操作數。整數值1(或「0001」)被置於棧中「數據區」2e的位置2(級2)。對應的「分類型」區4e同樣在級2(級1保持不變值「1000」)被更新。「int」(整數)值「000」(比特)被置入「分類型」區4e(級2)。區3e和5e保持不變。
步驟6iconst_5 //推入整型常數5該步驟在圖1F上被示出。
在該步驟中要執行的「操作碼」即沒有參數也沒有操作數。整數值1(或「0001」)被置入到棧中「數據區」2f級3。對應的「分類型」區4f同樣在級3(級1和2保持不變分別是值「1000」和「000」)被更新。「int」(整數)值「000」(比特)被置入到「分類型」區4f內。區3f和5f保持不變。
步驟7iastore該步驟由圖1G所示出。
該「操作碼」用於具有「int」類型值的操作數,一個「int」類型索引和一個數組類型參考對象。
「分類型」區的驗證(在狀態4f級3)表明一個正確的類型。因此執行是可能的。
值被存儲在有數據索引的參考對象中。
步驟7return該「操作碼」表明方法的結束,因此棧必須被清空。
重新考慮同一「p-碼」(見(2),在原始碼(1)編譯之後),我們將詳細說明一個不正確執行的例子。
不正確執行在我們將標記為4』的步驟(對應於步驟4圖1D)。假設「p-碼」被改變並且「操作碼」「aload_1 int[]buffer」,由例如下列「操作碼」所替換「iipush 0x5678」,其中指令「0x」表示一個十六進位值。
如同圖2A所示的那樣,該「操作碼」,是參考對象的,被儲存在「局部變量區」3a』的級1,用於將整數值「5678」推入「數據區」2』a的棧中。
「分類型」4a』區將被更新。接下來「分類型」區4a』和5a』的級1將都容納有值「100」(比特),也就是說一個與一個「參考對象」相關聯的值。該特殊構造由圖2A所示。
執行繼續按照圖1E和1F所標示出的那樣正常進行。
步驟5』iconst_1//推入整型常數1步驟6』iconst_5//推入整型常數5「JVM棧」,「局部變量區」3b』和「數據區」2b』由圖2B所示出,更明確的「數據區」2b』在級1記錄整數值「5678」,在級2記錄整數值「0001」並且在級3記錄整數值「0005」。「局部變量區」3a』保持不變。同樣對於對應的「分類型」區5a』。相反,「分類型」區4b』被更新,並且接下來的值被分別記錄在級1到3「100」,「000」和「000」(比特)。
步驟7』iastore該「操作碼」用於一個「int」類型值的操作數,一個「int」類型索引和一個數組類型的參考對象。
「分類型」區的驗證(區的級1,在狀態4』)表明所探測到的代碼是不正確的。實際上,「對象參考」(代碼「100」)期望是一個整數(「int」;代碼「000」)。
因此,JVM探測到存在一個威脅到系統安全的非法「操作碼」。正在正常執行的指令序列被中斷並由一個預編程安全措施的指令執行所代替警告信號,等等。
直到現在,我們假設「JVM棧」的長度(或高度);無論它是「數據區」或「局部變量區」的長度(或高度),是固定的,這也就是通常公知技術的情況。在所描述的例子中,我們假設每一個存儲位置計為4個字節(也就是32比特)。然而,該種設置顯得損失了存儲器的容量。實際上,從一個軟體應用到另一個,或到同一應用的內部,對於每一個指令所必需的字節數是可變的。如同已經指出的那樣,「zone data」和「zonevariable locale」的棧元素的布置,例如由圖1A到1G或2A到2B所示出的那樣,僅表示一個存儲器空間1在邏輯上所看到的。因為完全可能保留一個棧類型的邏輯架構,不論其存儲位置是連續的還是不連續的,其長度是可變的,或者不論其不同的存儲位置(單元),其物理上是分散的。
因此,根據發明方法第一個附加變化,類型信息元素也可以確定必要的「JVM棧」區的存儲位置的實際大小。為此,只需要被記錄在存儲器「分類型」區中的代碼被全部地或部分地關聯到一個表明前述棧長度特徵的信息上。作為一個非限制性的例子,這可能涉及到一個輔助比特,被加入到分類型代碼中,或與這些代碼沒有使用的比特相結合。在第一種情況下,如果棧長度可變化,還是作為一個例子,在1和4個八比特之間,對於表明下列長度特徵只需要2個輔助比特

該設置能根據要執行的應用來優化存儲器空間,這可以獲得一個實在的存儲位置收益,當涉及到設備時就構成了可見到的優點,特別是一個靈巧卡,其存儲資源是有限的。
根據發明方法第二個實施變化,同樣可以使用信息元素以表明是否一個對象還在被使用(也就是說必須被保留)或可以從「局部變量區」中消除。實際上,在一定數量的操作之後,一個給定的記錄在該區中的對象就不再被使用了。因此讓其永久地保存就會造成存儲器空間的無謂損失。
作為一個非限制性的例子,我們可以在記錄在「分類型」區中的代碼中加入一個信息比特,用作標記作用,或英文的「flag」。因此,該比特的狀態表明了對象是否必須被保留(因為還在使用),或可以被消除,並且如此標記。下面任意的協議都可以適用-邏輯狀態「0」=對象被使用-邏輯狀態「1」=對象可以被消除該設置,我們可以把它看作是「garbage collector(廢料收集器)」,也可以獲得更多存儲器空間。
自然地,剛才描述的兩種附加實現變化的裝置也可以被合併。
圖3簡要地示出了一個基於剛描述過的根據發明方法的靈巧卡應用的信息系統的架構。
該系統包括一個終端7,它可以通過一個數據機或所有其他同樣的裝置71連接到或不連接到外部網絡,特別是到網際網路網絡RI。終端7,例如一臺微機,特別地包括一個編譯器9。代碼可以在終端的外部被編譯,以給出一個稱為「Class」的文件(「JAVA」向「Class」編譯器),該文件可以被網際網路導航器遠程下載,微機本身包括一個轉換器,它能給出一個稱為「Cap」的文件(「Class」朝向「Cap」)。該轉換器特別是可以減小「Class」文件的尺寸以使得能夠將其裝載入智慧卡。某一個應用,例如通過網際網路網絡遠程下載並且是以「JAVA」語言編寫的,通過編譯器9被編譯並通過智慧卡閱讀器70被裝載到智慧卡8的存儲器電路1中。它本身,如同已經回顧過的那樣,整合了一個「JAVA」虛擬機6,它能夠解釋編譯過的並被裝載到存儲器1中的「p-碼」。我們同樣具有不同的存儲器棧「數據區」區2和「局部變量區」3,以及分類型區4和5,後者特定於發明。智慧卡8同樣包括與存儲器1相連結的傳統數據處理裝置,例如一個微處理器80。
一方面通過閱讀器70在智慧卡8與終端7之間的通訊,另一方面通過數據機71在終端7和外部世界,例如網際網路網絡RI,之間的通信以傳統的方式進行,不需要更加進一步地被描述。
通過對前面描述的閱讀,我們可以很容易地理解到發明可以很好地達到其預期目的。
它能夠安全地執行在具有棧類型架構的存儲器中的以歸類數據語言所編寫的應用指令流。根據發明的一個方面,由於代碼的驗證是動態地被執行的,因此可以獲得很高的安全度。
該設置另外還可以通過最小增加處理時間為代價,驗證器無需大量存儲器資源。需大量存儲器資源的驗證器類型在實際中對於本發明是不適合的。
必須要清楚的是發明並不限於前面所解釋的實現例子,特別是圖1A到1G,2A到2B及3的例子。
同樣,儘管發明特別適用於對象類型的語言,並且特別適用於經過編譯後所獲得的「JAVA」語言的「p-碼」,它同樣可以適用於大量使用歸類數據類型的語言,例如在本說明書中一併回顧過的「ADA」或「KAMEL」。
最後,儘管發明對於電子智慧卡的嵌入式系統具有特別的優點,其信息資源,以及數據處理和這些數據的存儲等是有限的,特別是對於智慧卡;對於更加強大的系統發明也是適用的。
表1

權利要求
1.一種安全執行記錄在一個信息系統,特別是一個電子晶片嵌入式系統中的存儲器第一預定義位置序列中並以歸類數據形式的指令序列的方法,其特徵在於被稱為類型信息元素的輔助數據被關聯到每一個所述歸類數據上,以便表明這些數據的類型,並且所述類型信息元素被記錄在所述信息系統(8)的存儲器(1)的第二預定義存儲位置系列(4,5)中,在預定義類型指令執行之前,要進行一個連續的在由這些指令所表明的類型與在所述第二存儲位置系列(4,5)中記錄的所述類型信息元素所表明的期待類型之間的一致性驗證,以便只在所述類型之間一致的情況下允許執行預定義指令。
2.根據權利要求1所述的方法,其特徵在於每一個所述類型信息元素由一系列記錄在所述第二系列存儲位置中的比特序列構成,該第二系列與所述第一系列(2,3)的存儲位置一一對應,第一系列中記錄所述相關聯的歸類數據,並且其構造表示所述歸類數據類型之一。
3.根據權利要求1所述的方法,其特徵在於所述指令是由「JAVA」(註冊商標)語言編寫的應用,所述歸類的數據由歸類的對象構成,並且所述信息系統集成了稱為「JAVA」虛擬機(5)的一個軟體,它操作所述的歸類對象,並且所述信息系統(8)的所述存儲器(1)的所述存儲位置(2-5)以棧的形式被組織,它包括一個預定義的最大級數,每一級構成了一個所述存儲位置,所述歸類對象至少被記錄在稱為數據區(2)的第一元素棧以及被稱為局部變量區(3)的第二元素棧中,所述類型信息元素被分配到兩個輔助元素棧(4,5)中,它們分別與所述第一(2)和第二(3)元素棧一一對應,以指定所述記錄在所述數據區(2)和局部變量區(3)中的相關的對象的類型。
4.根據權利要求1所述的方法,其特徵在於當所述的一致性不能實現時,所述指令序列的執行被中斷並且由對應於預編程的安全措施的指令執行所代替。
5.根據權利要求3所述的方法,其特徵在於所述類型信息元素被關聯於輔助信息元素,這些元素確定所述記錄所述歸類對象的棧(2,3)的所述存儲位置的大小,以便根據要操作的對象來改變所述棧的大小。
6.根據權利要求3所述的方法,其特徵在於所述類型信息元素被關聯於稱為標記的輔助信息元素,以便標記它們所關聯的所述對象,並表明它們是否必須被保留在所述棧(2,3)中,或可以被消除。
7.電子靈巧卡嵌入式系統,包括數據信息處理裝置和用於信息應用指令序列安全執行的存儲器裝置,信息應用具有記錄在信息系統存儲器預定義位置的第一系列中的歸類數據類型的形式,其特徵在於存儲器裝置(1)包括一個第二預定義位置系列(4,5),用於記錄稱為類型信息元素的輔助數據,它每一個都與歸類數據相關聯,以便表明這些數據的類型,並且驗證裝置(6)能夠在預定義指令執行之前連續地驗證在由這些指令所表明的類型及由這些所述類型信息元素所表明的類型之間的一致性,以便只有在這些類型之間一致的情況下才允許所述執行。
8.根據權利要求7所述的系統,其特徵在於,所述電子靈巧卡嵌入式系統(8)的所述存儲器(1)的所述第一預定義位置系列以棧的形式被組織,它包括一個確定的最大級數,其每一級構成了所述存儲位置,所述歸類數據被至少記錄在稱為數據區(2)的第一元素棧和稱為局部變量區(3)的第二元素棧中,並且所述第二存儲位置系列也以元素棧(4,5)的形式被組織,它們與所述第一(2)和第二(3)元素棧一一對應。
9.根據權利要求8所述的系統,其特徵在於記錄在所述第二存儲位置系列(4,5)內的類型信息元素被關聯於用於確定記錄所述歸類數據的棧(2,3)存儲位置尺度的輔助信息元素。根據權利要求7所述的系統,其特徵在於所述嵌入式系統是一個靈巧卡(8)。
全文摘要
發明涉及一種用於歸類數據或對象形式,特別是「JAVA」語言編寫的,信息應用指令序列的安全執行的方法和系統。存儲器(1)以第一元素棧系列(2,3)的形式被組織,以記錄指令。我們將每一個數據或歸類對象關聯於一個或多個表明類型的類型比特上。這些比特被記錄在第二元素棧系列(4,5)中,並且與第一系列棧(2,3)一一對應。在預定義類型指令執行之前,要進行一個連續的、在這些指令執行前的,在由這些指令所表明的類型及與類型比特所表明的類型之間的一致性驗證。在不一致的情況下停止執行。
文檔編號G06F21/22GK1383505SQ0180175
公開日2002年12月4日 申請日期2001年5月17日 優先權日2000年5月17日
發明者尼考拉斯·福吉奧克斯, 奧利弗·弗迪爾, 帕特裡·海米奧 申請人:布爾Cp8公司

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀