專利名稱:在一個安全處理環(huán)境中有條件地安裝和執(zhí)行服務的方法和系統(tǒng)的制作方法
技術領域:
本發(fā)明涉及的是加密系統(tǒng)。特別的是,本發(fā)明涉及了已授權的軟件應用程序的安全安裝和執(zhí)行。
背景技術:
許多計算機軟件需要執(zhí)行一個或多個安全功能。一個安全功能就是一段計算機程序,該計算機程序的特征,或者該計算機程序的操作,是有高度的抵抗力的,不會被用戶和第三方篡改。
舉個例子,一個軟件程序可能擁有一個終止日期,過期之后,軟件的applet程序變得不起作用。然而,一個典型的軟件終止功能是不安全的,因為通過把本地計算機時鐘重設到一個更早的時間位置,或者通過修改軟件跳過程序中檢測本地計算機時鐘的那一部分,很容易將它破解,。
作為另一個例子,一個計算機程序,它保存著從一個本地加密的數據庫中訪問得到得數據記錄,用于主管本地加密數據庫的使用,該程序一般有兩個鑒定記錄,第一個記錄顯示了數據過去使用的次數,而另一個記錄顯示了剩下的信用次數。然而,如果使用和信用記錄的更新不是一個安全功能的話,用戶可以通過減少使用記錄的數量和/或增加信用記錄的數量來破解該系統(tǒng)。相似的,保存一個它自身使用記錄,用于繳費管理的繳費軟件,需要一個安全功能來防止用戶篡改繳費賬目記錄,以及其他內部鑒定記錄和功能。
作為另一個例子,一個遠程訪問的數據庫可以管理訪問數據庫的注冊用戶。在允許用戶訪問數據庫之前,通常需要一個安全功能來鑒別每個用戶的身份。還有另一個安全功能是密鑰管理,例如,注冊用戶的加密密鑰的分配。
一類安全功能解決方案是在用戶桌面軟件中執(zhí)行安全功能。在桌面軟件中執(zhí)行一個安全功能擁有實際通用的優(yōu)點。然而,在桌面軟件中執(zhí)行一個安全功能不像在硬件中執(zhí)行一個安全功能那樣安全。在另一方面,安全功能的硬件實現比軟件的花銷要大,并且可能每一個應用程序都需要特定的硬件。如果每一個應用程序都需要它自己的特定硬件,一個安全功能的硬件實現就是不通用的。
發(fā)明簡介本發(fā)明的一個目的是提供一個系統(tǒng)和方法用于在一個安全環(huán)境中有條件的安裝和執(zhí)行一個applet。在一個特別的實施例中,當且僅當一個安全處理器擁有執(zhí)行該applet的資源時,本發(fā)明才提供一個applet的安裝。
依照本發(fā)明方法的第一個典型的實施例,提供了一個方法,用于在擁有一個數據存儲器和一個安全處理器的系統(tǒng)上安全地安裝applet。發(fā)明的一個方面包括,將applet接收到數據存儲器中,從applet的至少一部分中決定該applet是否可以被安全處理器運行,和如果安全處理器可以運行applet則在安全處理器上安裝applet。在本發(fā)明的一個方面中,applet包括一個元數據(meta-data)部分,一個可執(zhí)行部分,和一個憑證部分。在本發(fā)明的另一個方面,元數據部分包含一個安全元數據部分,一個指出了applet運行所需要的任何資源的資源元數據部分,以及一個元數據簽名部分。
依照本發(fā)明方法的第二個典型的實施例,提供了一個方法,用于在擁有一個不安全數據存儲器和一個安全處理器的系統(tǒng)上安全地安裝applet。發(fā)明的另一個方面包括將applet接收到不安全數據存儲器中。該applet包含一個元數據部分和一個可執(zhí)行部分,元數據部分中包括了一個安全元數據部分,一個資源元數據部分,和一個元數據簽名部分。而且發(fā)明的另一個方面包括,基于至少一部分applet的安全元數據部分和資源元數據部分,來決定該applet是否可以被安全處理器運行。在本發(fā)明的一個方面,這包括校驗安全處理器的一個安全處理器安全等級,是滿足或是超過applet安全元數據部分的一個安全處理器安全需求,以及如果安全處理器可以執(zhí)行該applet,就在安全處理器上安裝該applet。
依照本發(fā)明方法的第三個典型的實施例,提供了一個可選擇applet的清單,用于第一個applet不能夠安裝在一臺計算機上的情況,該計算機擁有至少一個資源,以及與一個安全等級相聯(lián)系的一個安全處理器。本發(fā)明的另一個方面包括接收一個來自于安全處理器的對可選擇applet清單的請求,該請求包含一個用于識別第一個applet的applet序列號,一個單元識別符用于標識安全處理器,一個第一指示器用于識別安全處理器的安全等級,以及一個第二指示器用于識別至少一個計算機的資源。在本發(fā)明的另一個方面,可選擇的applet清單是從大量的applet中,至少基于第一指示器和第二指示器的一部分而生成的,并且可選擇的多個applet清單被傳送給計算機。在本發(fā)明的另一個方面,該方法進一步包括了從可選擇applet清單中安裝一個可選擇的applet,并管理安裝該可選擇applet的額外費用。
依照本發(fā)明方法的第四個典型的實施例,提供一個安全applet執(zhí)行系統(tǒng),它包含一個數據存儲器元件,用于存儲從安全applet系統(tǒng)接收到的一個applet;以及一個安全處理器,用于從applet的至少一部分中決定該applet是否可以被安全處理器執(zhí)行;并且如果該安全處理器可以執(zhí)行該applet,則將該applet安裝到安全處理器上。仍然是在本發(fā)明的一個方面,applet進一步包括了一個元數據部分和一個可執(zhí)行部分。
依照本發(fā)明方法的第五個典型的實施例,一個給出的安全applet執(zhí)行系統(tǒng)包括一個非安全數據存儲元件,用于存儲從安全applet執(zhí)行系統(tǒng)中接收到的一個applet。在本發(fā)明的一個方面,applet包括一個元數據部分和一個可執(zhí)行部分,元數據部分包括一個安全元數據部分,一個資源元數據部分,和一個元數據簽名部分。一個安全處理器從applet的至少一部分中決定該applet是否可以被安全處理器執(zhí)行,并且如果安全處理器可以執(zhí)行該applet,則將該applet安裝到安全處理器上。
附圖的簡要說明本發(fā)明的進一步的目的,特點和優(yōu)點將在下面關于附圖的詳細描述中被闡明,這些附圖展示了本發(fā)明說明的實施例,在其中
圖1所示為用于從一個applet服務器下載applet的系統(tǒng)一個框圖;圖2所示為一個applet的結構的一個框圖;圖3所示為applet的安裝和執(zhí)行過程的一個流程圖;圖4所示為第一個applet的驗證一個更詳細的流程圖;圖5所示為一個applet可執(zhí)行部分的驗證一個更詳細的流程圖;圖6所示為一個applet可執(zhí)行部分的執(zhí)行一個更詳細的流程圖,它圖解了;圖7所示為applet服務器對一個applet請求的響應的一個流程圖;圖8所示為applet服務器對一個加密密鑰請求的響應的一個流程圖;以及圖9所示為一個流程圖,它圖解了applet服務器對一個可選擇applet請求的響應。
全部附圖,除非另外聲明,均使用了相同的參照編號和字符來表示相似特征,元件,組件,或所示實施例的一部分。而且,雖然現在將參考附圖,并聯(lián)系所示的實施例對發(fā)明的主題進行詳細的描述,但是沒有離開附加權利要求中所定義的發(fā)明主題的真實范圍和精神,可以對所描述的實施例做出改變和修正。
對最佳實施例的描述美國專利序列號第09/313,295號,1999年3月17日申請,StevenJ.Sprague和Gregory J.Kazmierczak著,標題為“公共加密控制單元和為此的系統(tǒng)”(在下文中被稱為“Sprague et al”),它的全部說明在這里被合并參考,描述了一個加密控制單元,在其中applet可以被換進和/或換出。
圖1圖解了一個系統(tǒng)100,用于從一個applet服務器110下載applet,該applet服務器的例子有,在Sprague et al中公開的一個軟件開發(fā)PC,安裝applet到一個用戶計算機170,例如,在Sprague et al中公開的一個桌面PC,并以一個安全的方式,在一個安全處理器180上執(zhí)行該applet,該安全處理器的例子有,在Sprague et al中提到的公共加密控制單元。Applet服務器110包括一個CPU112,一個數據存儲器元件114,一個網絡接口116,以及一個給出的數據庫。數據存儲器元件114包含了描述不同用戶和applet的信息。一個網絡連接130,經由一個網絡接口116,連接applet服務器110到一個通訊網絡150上,允許網絡服務器110在通訊網絡150上進行通訊。最好,通訊網絡150是Internet,但也可以是直接調制解調器線連接,無線連接或相似的連接。
一個憑證授權中心120,例如,在Sprague et al中公開的加密操作中心,包括一個CPU122,一數據存儲器單元124,一個網絡接口126,和一個給出的數據庫128。一個網絡連接140,經由一個網絡接口126,連接憑證授權中心120到一個通訊網絡150上,允許憑證授權中心120在通訊網絡150上進行通訊。
一個用戶計算機包括一個CPU172,一個數據存儲器單元174,一個網絡接口176,一個數據庫178,以及擁有一個唯一標識符182的安全處理器180,該標識符與在Sprague et al中所描述的唯一的單元標識一樣,是被給出的。一個網絡連接160,經由一個網絡接口176,連接用戶計算機170到一個通訊網絡150上,允許用戶計算機170在通訊網絡150上進行通訊。
一個認證中心系統(tǒng)190包括一個CPU192,一個數據存儲單元194,一個網絡接口196,和給出的一個數據庫198。一個網絡連接199,經由一個網絡接口196,連接認證中心系統(tǒng)190到一個通訊網絡150上,允許認證中心系統(tǒng)190在通訊網絡150上進行通訊。認證中心系統(tǒng)190提供了一個可信的認證等級,在其中applet服務器和憑證授權中心120的憑證和相關公鑰,對用戶計算機170中的安全處理器180而言是已知的。
圖2A顯示了一個applet200,它包括一個元數據部分202,一個可執(zhí)行部分204和一個憑證部分206。元數據部分202,如圖2B所示,包含一個安全元數據部分,一個資源元數據214,和一個元數據簽名部分216。資源元數據部分214包括指定必需資源的信息和一個applet序列號,例如在Sprague et al中公開的一個applet序列號。必需的資源可能包括,例如,一個生物統(tǒng)計傳感器,一個安全輸出,一個鍵盤,一個個人身份識別號登陸裝置,一個第一智能卡插槽,一個第二智能卡插槽,一個指紋掃描儀,一個一般用途掃描儀,一個硬盤驅動器,一個全球定位系統(tǒng)輸入,一個磁條卡讀卡機,一個安全存儲區(qū)域,一個效能量測,它定義了硬件的最小標準,一個執(zhí)行特定加密運算法則的運算法則,和等等類似的東西。Applet序列號指示了元數據部分202所屬的applet。元數據簽名部分216是由憑證授權中心120生成的。可執(zhí)行部分204,如圖2C,包括一個加密的可執(zhí)行部分222和一個可執(zhí)行簽名部分224??蓤?zhí)行簽名部分224是由憑證授權中心120生成的。憑證部分206是由認證中心系統(tǒng)190生成的。一旦軟件applet被下載,它就被存儲在數據存儲單元174中。
圖3圖解了軟件applet的安裝和執(zhí)行進程300。為了啟動軟件applet的安裝和執(zhí)行進程300,用戶計算機170在步驟302從applet服務器110請求applet200。該請求包括了唯一的單元識別182和一個applet序列號。這導致用戶計算機170在通訊網絡150上發(fā)送一個applet請求給applet服務器110。在一個可選擇的實施例中,用戶計算機170從一個分配媒體上,或者是從某些其他資源上,讀取applet200,該媒體例如在Sprague et al中提到的分配媒體。在步驟306,用戶計算機170下載applet200到用戶計算機的數據存儲單元174中。
Applet的安裝請求在步驟304被校驗。用戶計算機170提示用戶提供一個鑒定碼來校驗該請求源于該用戶。如果用戶提供的鑒定碼與存儲在安全處理器180中,用于唯一身份標識的鑒定碼相匹配,一個applet200就是安裝的一個候選。如果用戶提供的鑒定碼與存儲在安全處理器180中,用于唯一身份標識的鑒定碼不匹配,進程300被中斷,安裝進程接收到一個錯誤消息,并且退出進程300。在步驟308,安全處理器180校驗安全處理器180在步驟308執(zhí)行applet的能力,這在圖4中有進一步詳細的描述。作為選擇,最初只有元數據部分202和憑證部分206被下載到用戶計算機170,用于在步驟308的校驗。這個元數據部分202和憑證部分206的初始下載,可以進一步被直接下載到安全處理器中的數據存儲器。
在圖4,在步驟402,applet200的元數據部分202和憑證部分206被從數據存儲單元174中移入安全處理器180中。在元數據部分202被移入安全處理器180之后,在步驟403,applet200的憑證部分206被安全處理器180使用Rivest,Shamir和Adleman算法進行校驗。如果安全處理器180核實認證中心系統(tǒng)190生成了憑證部分206,進程300前進到步驟404。如果認證中心系統(tǒng)190沒有生成憑證部分206,進程300被退出。
在步驟404,一個臨時變量resources被設為FALSE,而一個臨時變量secure被設為FALSE。之所以這樣設置是表示不知道安全處理器180是否有必需的安全級別來執(zhí)行applet,也不知道安全處理器180是否有必要的資源來執(zhí)行applet。
在步驟406,Applet200的元數據部分的數據完整性被校驗。安全處理器180依靠元數據簽名部分216,使用一個公鑰校驗算法來校驗安全元數據部分212和資源元數據部分214的數據完整性。在某一個實施例中,使用了Rivest,Shamir和Adleman算法。最初,在applet200被從applet服務器110下載之前,元數據簽名部分216基于安全元數據部分212和資源元數據部分214而被生成。如果在安全元數據部分212或資源元數據部分214中的任何信息,在元數據簽名部分被生成和校驗進行這兩個時間之間被改變,那么校驗進程就失敗了。如果校驗進程失敗了,進程300被退出并且顯示一個錯誤。如果校驗進程在安全元數據部分212和資源元數據部分214中檢測不到改動,則繼續(xù)進程300。
在安全處理器180上必需資源的可用性在步驟408得到校驗。資源元數據部分214指定了許多可執(zhí)行部分在執(zhí)行時可能需要的資源。最好的是,資源元數據部分214指定了每一個可執(zhí)行部分在執(zhí)行時可能需要的資源。所有在資源元數據部分214中指定的資源在安全處理器180上必須是可用的,以便于安裝applet200。當applet安裝時,這些資源可能當前正被另一個進程使用,但是在執(zhí)行中,所有指定的資源必須在applet200的支配之中。如果安全處理器180擁有必需的資源,臨時變量resources被設為TRUE,從而指明所需的資源現在在安全處理器180中。
安全處理器180支持的安全等級,例如,它的安全級別,必須在步驟410中被驗證為至少和安全元數據212中指定的安全等級相等。如果在安全處理器中可用的安全等級至少和安全元數據212中指定的安全等級相等,applet200可以被安裝到安全處理器180上。如果applet200可以被安裝到安全處理器180,臨時變量secure被設為TRUE,表示安全處理器180上有所需的安全等級。
接下來進程300前進到圖3中的步驟310,在這兒檢測applet是否能夠被安裝。如果臨時變量secure和臨時變量resources是TRUE,applet200能夠被安裝。Applet200的元數據部分202被存儲在安全處理器180中,而步驟300前進到步驟318。如果臨時變量secure或者臨時變量resources是FALSE,那么applet不能夠被安裝,并且進程300前進到步驟312。
安全處理器180確認是否有某些已知的可選擇applet可用作步驟312中的applet。applet200的安裝失敗或者是因為安全處理器180不擁有所需的資源,或者是因為安全處理器180不支持必需的安全協(xié)議。安全處理器180通過讓用戶計算機170從applet服務器110中請求可選擇applet的清單,來開始它對于某些可選擇applet是否存在的確認。用戶計算機170傳送一個對可選擇applet的清單的請求。該請求包含唯一的單元標識符182,不可被安裝的applet的applet序列號,安全處理器180的安全級別,以及安全處理器180的資源性能。如果從applet服務器返回到用戶計算機170的可選擇applet的清單是空的,則退出進程300。如果可選擇applet的清單不是空的,進程300前進到步驟314。
在步驟314中,安全處理器180指示用戶計算機向用戶出示可選擇applet清單。在步驟316,用戶可以挑選安裝可選擇applet中的一個,或是拒絕選擇。如果用戶選擇接受可選擇applet中的一個,進程300從步驟302重新開始。如果用戶拒絕可選擇的applet,則退出進程300。
在步驟318,安全處理器180從applet服務器110請求一個解密密鑰。該解密密鑰請求包括唯一標識182和applet序列號。該解密密鑰使安全處理器180能夠解密applet200的加密可執(zhí)行部分222。安全處理器200在步驟320等待解密密鑰。如果安全處理器180從applet服務器110接收到了解密密鑰,安全處理器180可以前進到步驟322,從而繼續(xù)applet200的安裝。如果用戶計算機170沒有從applet服務器110接收到解密密鑰,applet200不能被安裝,退出進程300。applet200的加密可執(zhí)行部分222在步驟322被校驗。
圖5更詳細的顯示了在步驟322中,applet200的加密可執(zhí)行部分222的校驗。為了校驗加密可執(zhí)行部分222,在步驟502中,它必須首先被從數據存儲單元174中移動到安全處理器180中。在步驟504,加密可執(zhí)行部分222被使用解密密鑰解密到一個非加密可執(zhí)行部分中。
非加密可執(zhí)行部分的數據完整性在步驟506進行校驗。安全處理器180通過預備applet序列號給非加密可執(zhí)行部分,來校驗非加密可執(zhí)行部分的數據完整性,并使用一個公鑰校驗算法來校驗可執(zhí)行簽名部分224。在某一個實施例中,使用了Rivest,Shamir和Adleman算法。在applet服務器110下載applet之前,基于非加密可執(zhí)行部分中的數據生成可執(zhí)行簽名部分,它帶有被預備給非加密可執(zhí)行部分的applet序列號。在可執(zhí)行簽名部分被生成之后,applet序列號被從非加密可執(zhí)行部分上去掉,而非加密可執(zhí)行部分被加密從而生成加密可執(zhí)行部分222。如果在非加密可執(zhí)行簽名216被生成,到在安全處理器180上開始校驗這段時間內,在加密可執(zhí)行部分222和非加密可執(zhí)行部分中的任何信息,或是applet序列號被改變,校驗進程失敗。如果校驗進程失敗,則退出進程300。如果校驗進程沒有在非加密可執(zhí)行部分中檢測到變化,applet可以被安裝。
在步驟508,非加密可執(zhí)行部分被加密并被捆綁到安全處理器180上。非加密可執(zhí)行部分被重加密,并生成一個本地解密密鑰。該本地解密密鑰由安全處理器180生成,并對安全處理器180而言是唯一的。重加密的可執(zhí)行部分只能夠由該本地解密密鑰解密,它被存儲在安全處理器180中。因此將加密可執(zhí)行部分捆綁到安全處理器180上。之后在步驟510,重加密可執(zhí)行部分被卸載到數據存儲單元174,從而完成了步驟322。之后進程300前進到圖3的步驟324。
在步驟324,確認在此時是否要求執(zhí)行。如果此時要求執(zhí)行,進程300進入步驟326。如果此時沒有要求執(zhí)行,則退出進程300。
圖6更詳細的顯示了在步驟326中applet200的執(zhí)行。作為安裝進程的一部分,執(zhí)行進程600可以被它自身激活,。在步驟602,加密可執(zhí)行部分被從數據存儲單元174移動到安全處理器180中。在步驟604,加密可執(zhí)行部分222在安全處理器180中,被使用存儲在安全處理器180中的本地解密密鑰解密。
為了執(zhí)行非加密的可執(zhí)行部分,在applet200的元數據部分中指定的資源必須是可用的。在applet200的元數據部分中指定的資源的可用性在步驟606中被校驗。安全處理器180讀取存儲于安全處理器180中的,來自于applet200元數據部分的資源元數據中的所需資源。如果安全處理器180的所需資源是空閑的,進程前進到步驟609。如果安全處理器180的所需資源不是空閑的,進程前進到步驟607。
在步驟607,安全處理器180控制用戶計算機170顯示一個消息給用戶,來確認所需要的資源是非空閑的,并且提供給用戶機會來釋放必需的資源。非加密可執(zhí)行部分只有在它所需要的所有資源都對它來說是可用的時候,才會被執(zhí)行。如果在步驟608用戶釋放了所需的資源,進程300前進到步驟609。如果用戶不能夠或沒有釋放所需資源,因為另一個進程正在使用該資源,或其他什么原因,則退出進程300。在一個可選擇的實施例中,安全處理器180按計劃等待直至所需的資源變?yōu)榭捎玫?。在另一個可選擇的實施例中,安全處理器180呈給用戶一個選擇,是延遲applet的執(zhí)行直至所需的資源空閑,還是根本就不執(zhí)行該applet。仍是在另一個可選擇的實施例中,資源基于事先建立的優(yōu)先選擇或優(yōu)先級按計劃被釋放。
在一個可選擇的實施例中,如果用戶能夠釋放所需的資源,進程300返回步驟606而不是前進到步驟608。
在步驟608,安全處理器180校驗所需的資源是否已經被用戶所釋放。如果用戶已經釋放了所需的資源,進程300前進到步驟609。如果用戶沒有釋放所需資源,則退出進程300。在步驟609,非加密可執(zhí)行部分被安全處理器180執(zhí)行。在步驟609,非加密可執(zhí)行部分完成所有它所被要求的動作,并退出。在非加密可執(zhí)行部分執(zhí)行完畢之后,非加密可執(zhí)行部分必須被重加密。非加密可執(zhí)行部分在步驟612被加密,并移入數據存儲單元174,而解密密鑰被存儲在安全處理器180中,這樣就完成了步驟324,以及進程300。這個步驟被用來完成對與可執(zhí)行部分相關的任何用戶和應用程序的數據進行重加密。
在一個可選擇的實施例中,步驟612和614可以被跳過,如果安全處理器180沒有按計劃預留機會給applet的可執(zhí)行部分。
在一個可選擇的實施例中,步驟602和604可以在安裝進程中被跳過,使得可執(zhí)行部分在其校驗之后可以立即被執(zhí)行。
圖7圖解了一個進程700,用于applet服務器110響應一個關于applet的請求。在步驟702,applet服務器110接收一個對applet的請求。對applet的請求包括唯一的單元識別符182和一個applet序列號。在步驟704,applet服務器110在數據庫118中搜索一個applet,該applet擁有在步驟702中接收到的請求所指定的applet序列號。如果applet服務器100擁有步驟702中接收到的請求所指定的applet,在步驟708,applet服務器100發(fā)送一個確認請求到用戶計算機170。如果applet服務器沒有請求中指定的applet,在步驟706,applet服務器100發(fā)送一個報錯消息給用戶計算機170并退出進程700。
在一個可選擇的實施例中,如果applet服務器l00擁有該applet,步驟708,710,712,714,716可以被省略,進程700直接從步驟704前進到步驟716。
在步驟710,applet服務器110接收來自用戶的確認代碼。在步驟712中,applet服務器110驗證確認代碼。在安全處理器180初始注冊的時候,applet服務器100把注冊的每一個唯一標識182的確認代碼,存儲在applet服務器100的數據庫118中。如果applet服務器100在步驟710接收到的確認代碼,同存儲在數據庫118中的唯一標識符182的確認代碼相匹配,進程700前進到步驟716。如果兩個代碼不匹配,在步驟714,applet服務器100傳輸一個拒絕信息給用戶計算機170并退出進程700。
在步驟716,applet服務器100依照規(guī)定校驗用戶賬戶。如果用戶賬戶不是非法的,applet服務器100在步驟718中傳輸所需的applet并退出進程700。如果用戶賬戶是非法的,applet服務器100在步驟720中傳輸一個拒絕信息給用戶計算機并退出進程700。如果一個用戶的帳單沒有按定期方式被付清,或是因為其他的商業(yè)目的,例如作為被允許執(zhí)行applet的群體的一部分,該用戶的賬戶可以被視為非法的。
在一個可選擇的實施例中,用戶可以在applet服務器110上擁有一個存款帳戶。如果該存款帳戶中的金額大于所需的applet的授權費用,該賬號就不是非法的。在另一個可選擇的實施例中,用戶可以有一個信用卡號歸檔在applet服務器110中。如果該信用卡號可以付清所需applet的授權費用,該賬號就不是非法的。
在一個可選擇的實施例中,用戶可以在安全處理器110上擁有一個借貸帳戶。如果該借貸帳戶上的金額大于所需的applet的授權費用,該本地借貸帳戶可以被用于與applet安裝費用相關的金融交易。
在另一個可選擇的實施例中,用戶可以在安全處理器110上擁有一個信用帳戶。如果這個信用帳戶可以被用于建立一個真正的分期賒購交易,安裝可以進行。
圖8圖解了一個進程800,用于applet服務器110響應一個請求。在步驟802,applet服務器110接收到一個用于applet的解密密鑰請求。對于解密密鑰的請求包括唯一單元識別碼182和一個applet序列號。在步驟804,applet服務器110在數據庫118中搜索applet解密密鑰,該密鑰是由在步驟802接收到的請求所確認的。如果applet服務器110擁有在步驟802接收到的請求所指定的applet解密密鑰,進程800前進到步驟808。如果applet服務器110沒有正確的applet解密密鑰,在步驟806,applet服務器110傳輸一個出錯信息給用戶計算機170并退出進程800。
在步驟808,applet服務器100依照規(guī)定校驗用戶賬戶。如果用戶賬戶不是非法的,applet服務器100在步驟812中傳輸所需解密密鑰的并退出進程800。如果用戶賬戶是非法的,applet服務器100在步驟810中傳輸一個拒絕信息給用戶計算機并退出進程800。如果一個用戶的帳單沒有按定期方式被付清,該用戶的賬戶是非法的,。
在一個可選擇的實施例中,用戶可以在applet服務器110上擁有一個存款帳戶,如果存款帳戶中的金額大于所需的applet的授權費用,該賬號就不是非法的。在另一個可選擇的實施例中,用戶可以有一個信用卡號歸檔在applet服務器110中。如果該信用卡號可以付清所需applet的授權費用,該賬號就不是非法的。
在一個可選擇的實施例中,用戶可以在安全處理器180上擁有一個借貸帳戶。如果該借貸帳戶上的金額大于所需的applet的授權費用,該本地借貸帳戶可以被用于和applet安裝費用相關的金融交易。
在另一個可選擇的實施例中,用戶可以在安全處理器180上擁有一個信用帳戶。如果這個信用帳戶可以被用于建立一個真正的分期賒購交易,安裝可以進行。
圖9圖解了一個進程900,用于applet服務器110響應一個對可選擇applet的請求。在步驟902,applet服務器110接收到一個對可選擇applet清單的請求。對可選擇applet清單的請求包括唯一單元識別符182,一個applet序列號,安全處理器180的安全級別和安全處理器180的資源性能。
在步驟904,applet服務器110搜索已知的可選擇applet作為applet200。applet200的安裝失敗或者是因為安全處理器180沒有所需的資源,或者是因為安全處理器180不支持所必需的安全保護。applet服務器110分析安全處理器180的安全級別,以及安全處理器180的資源性能,來確認安裝失敗的原因。applet服務器110在它的數據庫118中搜索等價的applet,該applet需要更少的資源,較低的安全程度,或兩者都有,這取決于失敗安裝的原因。
在步驟906,applet服務器110生成一個可選擇applet的清單。在步驟904,applet服務器110獲得數據庫查詢的執(zhí)行結果,并從這些數據中生成一個可選擇applet清單。在步驟908,applet服務器110傳輸該可選擇applet清單給用戶計算機170,無論該清單是否為空。在該清單被傳輸之后,退出進程900。
在一個可選擇的實施例中,安全等級可以同applet的費用相關聯(lián)。換句話說,用戶可能不得不付更高的費用,來接收安全處理器180中的applet,如果它有比典型的applet請求更低的安全等級的話。因此用戶要為使用較低安全等級的applet付額外的費用。
在一個可選擇的實施例中,applet200的費用可以同該applet提供的安全等級相關聯(lián)。用戶可能不得不為一個更安全的服務付更高的費用,因為更高等的安全服務提供了一個更高水平的服務完整性。
在另一個可選擇實施例中,同等的安全等級可以通過執(zhí)行的核算量來分配。系統(tǒng)中的核算量越大,所需的安全等級越高。專門致力于安全硬件和安全軟件的確認的獨立第三方團體,可以獨立的分配安全等級給安全處理器和applet。通過由擁有尊重和行業(yè)信任的第三方團體確認環(huán)境和相關的服務,可能提供一個更高等級的憑證,以及附加提供保險單或其他保險來分配服務的責任。
由于applet發(fā)布商有能力指定他們的服務所需的資源和安全需求,硬件供應商有能力指定他們的安全處理器的資源和安全等級,以及用戶有能力指定他們想要的最小的安全需求,這樣就有可能生成一個定制的安全執(zhí)行能力,來滿足多方交易模式下不同設備的所有需求。
權利要求
1.在一個擁有一個數據存儲器和一個安全處理器的計算機系統(tǒng)上安全的安裝一個applet的方法,包含接收一個applet到一個數據存儲器中;從至少applet的一部分中確認該applet是否可以被一個安全處理器執(zhí)行;以及如果安全處理器可以執(zhí)行該applet,則安裝該applet到安全處理器上。
2.權利要求1所述的方法,其中的applet被存儲在一個非安全的存儲器中。
3.權利要求2所述的方法,其中的applet進一步包含一個元數據部分;以及一個可執(zhí)行部分。
4.權利要求3所述的方法,其中的applet進一步包含一個憑證部分。
5.權利要求3所述的方法,其中的元數據部分,進一步包含一個安全元數據部分;一個資源元數據部分,它指定了applet執(zhí)行所需的所有資源;以及一個元數據簽名部分。
6.權利要求5所述的方法,其中的資源元數據部分是用于指定資源的,這些資源包含以下的至少一個一個生物統(tǒng)計傳感器;一個安全輸出;一個鍵盤;一個個人身份識別號登陸裝置;一個全球定位系統(tǒng)輸入;一個磁條卡讀卡機;一個安全存儲區(qū)域;一個效能測量;一個執(zhí)行特定加密運算法則的運算法則;以及至少一個智能卡插槽。
7.權利要求5所述的方法,其中由安全處理器確認applet是否可以被執(zhí)行的步驟進一步包含裝載applet的元數據部分到安全處理器的一個安全存儲區(qū)域中。
8.權利要求7所述的方法,其中由安全處理器確認applet是否可以被執(zhí)行的步驟進一步包含依靠applet的元數據部分的簽名部分加密地校驗applet元數據部分的安全元數據部分和資源元數據部分。
9.權利要求7所述的方法,其中由安全處理器確認applet是否可以被執(zhí)行的步驟進一步包含校驗安全處理器的一個安全處理器安全級別,是否滿足或超過該applet的安全元數據部分的一個安全處理器的安全需求。
10.權利要求9所述的方法,其中由安全處理器確認applet是否可以被執(zhí)行的步驟進一步包含確認安全處理器的一個安全處理器安全級別,是否未滿足或超過該applet的安全元數據部分的一個安全處理器安全需求;以及建議使用第二個applet,它所擁有的第二個安全處理器安全需求,可以被安全處理器的安全處理器安全級別滿足或超過。
11.權利要求10所述的方法,其中由安全處理器確認applet是否可以被執(zhí)行的步驟進一步包含對使用第二applet的額外費用的管理。
12.權利要求7所述的方法,其中由安全處理器確認applet是否可以被執(zhí)行的步驟進一步包含確認安全處理器可以提供applet元數據部分的資源元數據部分中指定的資源。
13.權利要求12所述的方法,其中由安全處理器確認applet是否可以被執(zhí)行的步驟進一步包含確認安全處理器沒有能力提供至少一個在applet元數據部分的資源元數據部分中指定的資源;并建議使用第二個applet,它可以指定該安全處理器可以提供的唯一資源。
14.權利要求3所述的方法,其中的可執(zhí)行部分進一步包含一個加密可執(zhí)行部分;以及一個非加密可執(zhí)行簽名。
15.權利要求14所述的方法,其中安裝applet到安全處理器上的步驟,進一步包含將該applet的可執(zhí)行部分存儲到安全存儲區(qū)域中去。
16.權利要求15所述的方法,其中安裝applet到安全處理器上的步驟進一步包含為applet的加密可執(zhí)行部分請求一個解密密鑰;接收該解密密鑰;并使用該解密密鑰將加密可執(zhí)行部分解密到一個非加密可執(zhí)行部分中去。
17.權利要求16所述的方法,其中安裝applet到安全處理器上的步驟進一步包含,依靠非加密可執(zhí)行簽名來校驗非加密可執(zhí)行部分。
18.權利要求16所述的方法,其中安裝applet到安全處理器上的步驟進一步包含,依靠非加密可執(zhí)行簽名來校驗預備有一個applet序列號的非加密可執(zhí)行部分。
19.權利要求17所述的方法,其中安裝applet到安全處理器上的步驟進一步包含將非加密可執(zhí)行部分捆綁到安全處理器上。
20.權利要求17所述的方法,其中安裝applet到安全處理器上的步驟進一步包含將非加密可執(zhí)行部分加密成一個加密可執(zhí)行部分;將該加密可執(zhí)行部分存儲在非安全存儲器中;并將加密可執(zhí)行部分的解密密鑰存儲在安全存儲區(qū)域中。
21.權利要求1所述的方法,其中的計算機系統(tǒng)進一步包含一個非安全處理器。
22.一個用于在具有一個數據存儲器和一個安全處理器的一個計算機系統(tǒng)上安全的安裝一個applet的方法,包含接收一個applet到一個非安全數據存儲器中,上述applet包含一個元數據部分,上述元數據部分包含一個安全元數據部分;一個資源元數據部分,它指定了該applet執(zhí)行所需的所有資源;以及一個元數據簽名部分;和一個可執(zhí)行部分;基于至少一部分applet的安全元數據部分和資源元數據部分,來確認該applet能否被一個安全處理器執(zhí)行,包含校驗該安全處理器的安全處理器安全級別,是滿足或是超過該applet的安全元數據部分的安全處理器安全需求;以及校驗該安全處理器是否可以提供在applet元數據部分的資源元數據中指定的資源;以及如果安全處理器能夠執(zhí)行該applet,則在該安全處理器上安裝該applet。
23.權利要求22所述的方法,其中確認applet是否可以被安全處理器執(zhí)行的步驟進一步包含,依靠applet的元數據部分的簽名部分,來校驗applet的元數據部分的安全元數據部分和資源元數據部分。
24.權利要求23所述的方法,其中確認applet是否可以被安全處理器執(zhí)行的步驟進一步包含確認安全處理器的安全處理器安全級別,并未滿足或是超過該applet的安全元數據部分的安全處理器安全需求;建議使用第二個applet,它所擁有的第二個安全處理器安全需求,可以被安全處理器的安全處理器安全級別滿足或超過。
25.權利要求24所述的方法,其中確認applet是否可以被安全處理器執(zhí)行的步驟進一步包含對使用第二個applet的額外費用的管理。
26.權利要求22所述的方法,其中在安全處理器上安裝applet的步驟進一步包含將applet的可執(zhí)行部分存儲到安全存儲區(qū)域中。
27.權利要求26所述的方法,其中在安全處理器上安裝applet的步驟進一步包含請求一個解密密鑰用于applet的加密可執(zhí)行部分;接收解密密鑰;并使用該解密密鑰,將加密可執(zhí)行部分解密到一個非加密可執(zhí)行部分中去。
28.權利要求26所述的方法,其中在安全處理器上安裝applet的步驟進一步包含使用解密密鑰,將加密可執(zhí)行部分解密到一個非加密可執(zhí)行部分中去;并將該非加密可執(zhí)行部分捆綁到安全處理器上。
29.權利要求28所述的方法,其中在安全處理器上安裝applet的步驟進一步包含將非加密可執(zhí)行部分加密成一個加密可執(zhí)行部分;將加密可執(zhí)行部分存儲在非安全存儲器中;并將加密可執(zhí)行部分的解密密鑰存儲在安全存儲區(qū)域中。
30.一種方法被用于提供一個可選擇applet的清單,該清單用于第一個applet不能被安裝在一臺擁有至少一個資源和擁有一個于安全級別相關的安全處理器的計算機上的情況,該方法包含接收一個來自于安全處理器的對一個可選擇applet清單的請求;該請求包括一個applet序列號,它識別第一個applet;一個識別符,它識別安全處理器;一個第一指示器,它識別安全處理器的一個安全級別;以及一個第二指示器,它識別計算機的至少一個資源;基于第一指示器和第二指示器的至少一部分,從大多數applet中生成可選擇applet的清單;并傳送多個可選擇applet清單給計算機。
31.權利要求30所述的方法,進一步包含從可選擇applet清單中安裝一個可選擇的applet;并管理安裝可選擇applet的額外費用。
32.權利要求30所述的方法,其中的識別符唯一的識別安全處理器。
33.一個安全applet執(zhí)行系統(tǒng),包含一個數據存儲單元,存儲安全applet執(zhí)行系統(tǒng)接收到的一個applet;以及一個安全處理器,從applet的至少一部分確認該applet是否可以被該安全處理器執(zhí)行,并且如果該安全處理器可以執(zhí)行該applet,則安裝該applet到該安全處理器上。
34.權利要求33所述的安全applet執(zhí)行系統(tǒng),其中的applet進一步包含一個元數據部分;以及一個可執(zhí)行部分。
35.權利要求34所述的安全applet執(zhí)行系統(tǒng),其中的applet進一步包含一個憑證部分。
36.權利要求35所述的安全applet執(zhí)行系統(tǒng),其中的元數據部分進一步包含一個安全元數據部分;一個資源元數據部分,它指定了applet執(zhí)行所需的所有資源;以及一個元數據簽名部分;
37.一個安全applet執(zhí)行系統(tǒng),包含一個非安全數據存儲元件,存儲安全applet執(zhí)行系統(tǒng)接收到的一個applet;上述applet包含一個元數據部分;和一個可執(zhí)行部分。上述元數據部分包含一個安全元數據部分;一個資源元數據部分,它指定了applet執(zhí)行所需的所有資源;以及一個元數據簽名部分;一個安全處理器,從applet的至少一部分確認該applet是否可以被該安全處理器執(zhí)行,并且如果該安全處理器可以執(zhí)行該applet,則安裝該applet到該安全處理器上。
38.一個被構造用來包括一個加密安全可執(zhí)行部分的安全applet,包含一個元數據部分;上述元數據部分包括一個安全元數據部分;一個資源元數據部分;以及一個元數據簽名部分;一個可執(zhí)行部分,上述加密可執(zhí)行部分包括一個加密可執(zhí)行部分;和一個非加密可執(zhí)行簽名部分;以及一個憑證部分。
39.權利要求39所述的安全applet,其中上述安全元數據部分包含描述解密和執(zhí)行該加密可執(zhí)行部分所需的安全需求信息。
40.權利要求38所述的安全applet,其中的資源元數據部分包含描述執(zhí)行該加密可執(zhí)行部分所需的安全需求信息。
41.權利要求38所述的安全applet,其中的資源元數據部分包含了一個applet序列號。
42.權利要求41所述的安全applet,其中的非加密簽名部分包含了一些信息,該信息適用于在加密可執(zhí)行部分被applet序列號解密和預備的時候,校驗其是否已經在某種程度上被修改過。
43.權利要求38所述的安全applet,其中的元數據簽名部分包含了一些信息,該信息適用于校驗安全元數據部分和資源元數據部分是否已經在某種程度上被修改過。
全文摘要
提供一個系統(tǒng)(100)和方法(300)用于在一個安全處理器(180)上安裝和執(zhí)行一個applet。該系統(tǒng)(100)和方法(300)可以接收applet到非安全存儲器(174)中。該applet包括了一個元數據部分(202)和一個可執(zhí)行部分(204)。元數據部分(202)包括一個安全元數據部分,一個資源元數據部分(212),和一個元數據簽名部分(216)。該系統(tǒng)(100)和方法(300)至少一部分基于applet的安全元數據部分(212)和資源元數據部分(214),來確認該applet是否可以被安全處理器(180)執(zhí)行,并且如果該applet可以被安全處理器(180)執(zhí)行,則在安全處理器(180)上安裝該applet。
文檔編號G06F21/22GK1849581SQ02810012
公開日2006年10月18日 申請日期2002年5月14日 優(yōu)先權日2001年5月15日
發(fā)明者倫納德·斯科特·維里, 埃里卡·伊麗莎白·特布斯 申請人:維福系統(tǒng)公司