一種實現智慧卡多業務應用的方法及裝置的製作方法
2023-06-19 05:06:41 1
專利名稱::一種實現智慧卡多業務應用的方法及裝置的製作方法
技術領域:
:本發明涉及智慧卡
技術領域:
,特別涉及一種實現智慧卡多業務應用的方法及裝置。
背景技術:
:在現有智慧卡領域中,根據片內作業系統(COS,ChipOperatingSystem)的體系結構以及業務應用代碼編寫方式的不同,可以將卡片COS類型分為Native卡和Java卡。Native卡是一種卡片的COS和硬體平臺緊密相關的智慧卡,不具備平臺通用性和二次開發的API接口,業務應用的開發和底層COS密不可分,業務應用代碼同底層COS—同編譯執行。圖l為Native卡片的軟體體系結構圖,包括至少一個Native業務應用,Native片內作業系統COS,以及硬體接口程序。由於Native卡片的業務應用是與底層COS—同編譯執行,這樣在最大限度上減少了執行的時間,從而,Native卡片具有速度快和執行效率高的優勢。一些有時間限制的應用,例如數據傳輸和安全計算等,都可以採用Native代碼形式的程序。但目前多數的Native卡僅支持單一業務應用,即便是支持多業務應用也是事先將業務應用固化在COS中,不能動態的進行下載和刪除。同時由於Native卡同底層COS以及晶片的密切相關性,導致Native卡片在功能的增加等方面存在著最大的困難。Java卡是SUN公司推出的面向智慧卡的一種Java體系結構,是一種能夠運行Java程序的智慧卡。在Java卡的COS中加入了JavaCardVM(VirtualMachine),用於將上層的Java語言解釋給COS,從而屏蔽了不同晶片以及COS的區別,使Java卡達到了硬體無關性。因此,Java卡能夠利用Java"—次編寫,隨處運行"的能力,使Java能在智慧卡和其他存儲容量相對匱乏的設備上得以應用。利用Java卡可以加快智慧卡業務應用開發的進度,避免開發者苦苦鑽研具體的智慧卡晶片底層結構,能夠以更靈活的方式支持卡片多業務應用以及卡片發行後的應用添加和刪除。不同應用之間具有防火牆,可用通過安全通道的方式實現卡片和終端之間的保密通訊。Java卡的框架定義了供業務應用開發者使用的API(業務應用接口)。Java卡的業務應用稱為Applet,每個Applet由唯一的AID(業務應用標識符)來識別。其軟體體系結構如圖2所示。包括Java的應用業務Applet,Java卡運行環境(JCRE,JavaCardRuntimeEnvironment),Java虛擬機(VM,VirtualMachine),禾口工業標準Industryaddonclass6s。由於Java卡需要將應用解釋成COS能看得懂的指令,需要多出解釋執行的時間,所以相對於Native卡片,Java卡的指令速度和執行效率都比較慢。目前,隨著智慧卡應用的迅猛發展,涉及到的社會事務、商業業務、消費活動不斷增加,迫切需要能支持多種業務應用的智慧卡。例如支持交通業務應用和銀行業務應用的智慧卡,支持小額支付業務應用和銀行業務應用的智慧卡。由於銀行業務應用對於安全性要求比較高,一般對應為Java代碼封裝形式的業務應用,而小額支付業務應用、電信業務應用對速度要求也非常高,一般對應為Native代碼封裝形式的業務應用,這樣,需要一種能同時支持Native業務應用和Java業務應用的智慧卡,而目前,智慧卡一般是單獨的Native卡,或單獨的Java卡,都很難使一張智慧卡同時支持Native業務應用和Java業務應用。
發明內容本發明實施例提供一種實現智慧卡多業務應用的方法及裝置,用以使一張智慧卡同時支持Native業務應用和Java業務應用。本發明實施例提供一種實現智慧卡多業務應用的方法,應用於包括至少兩類業務應用的智慧卡中,包括判斷接收的指令是否為攜帶選擇業務應用信息的指令;當所述指令是攜帶選擇業務應用信息的指令時,根據所述指令的標識屬性,調用對應的業務應用執行所述指令。本發明實施例提供一種實現智慧卡多業務應用的裝置,包括判斷單元,用於判斷接收的指令是否為攜帶選擇業務應用信息的指令;調用單元,用於當所述指令是攜帶選擇業務應用信息的指令時,根據所述指令的標識屬性,調用對應的業務應用執行所述指令。本發明實施例多業務應用智慧卡中,判斷接收的指令是否為攜帶選擇業務應用信息的指令,當所述指令是攜帶選擇業務應用信息的指令時,根據所述指令的標識屬性,調用對應的業務應用執行所述指令,當接收到的指令不是攜帶選擇業務應用信息的指令時,根據保存的上下文屬性信息,執行所述指令,這樣使智慧卡能同時支持硬體無關性和高安全性的Java業務應用,又支持高速執行速度的Native業務應用,從而,在實現智慧卡多業務應用的同時,提高業務應用的執行速度,使得這種智慧卡能廣泛應用於電信、銀行等領域。圖1為現有技術中Native卡的軟體體系結構圖;圖2為現有技術中Java卡的軟體體系結構圖;圖3為本發明實施例中智慧卡的軟體體系結構圖;圖4為本發明實施例中實現智慧卡多業務應用的流程圖;圖5為本發明實施例一中實現智慧卡多業務應用的流程圖;圖6為本發明實施例中實現智慧卡多業務應用裝置的結構圖。具體實施例方式本發明實施例提供的智慧卡能支持多業務應用,其中,每個業務應用可以採用Native代碼封裝形式,或者採用Java代碼封裝形式。參見圖3,本發明實施例中,智慧卡軟體體系結構如圖3所示,包括至少一個Native業務應用,至少一個Java應用業務Applet,JCRE,Java虛擬機VM,Industryaddonclasses,COS,以及硬體接口程序。在智慧卡的COS系統內部可以設置"上下文屬性信息",這是一種COS系統內部的一個屬性值,包括Native或Java。COS系統需要根據這個屬性信息進行運行環境的切換。當上下文屬性信息為Native時,則COS直接進入Native運行環境。當上下文屬性信息為Java時,則COS直接進入Java運行環境。系統的默認狀態可以設置為Native或者是Java。參見圖4,本發明實施例中,實現智慧卡多業務應用的過程包括步驟401:判斷接收的指令是否為攜帶選擇業務應用信息的指令,當該指令是攜帶選擇業務應用信息的指令時,執行步驟402,否則,執行步驟403。智慧卡的COS接收的指令中一般攜帶一些屬性信息,例如類型信息,標識信息。當接收的指令的類型信息為一設定值時,確定該指令是攜帶選擇業務應用信息的指令時,執行步驟402,否則,執行步驟403。步驟402:根據接收的指令的標識屬性,調用對應的業務應用執行該指令。這裡,COS將接收的指令的第一標識屬性的值與另一設定值進行比較,然後,根據比較結果,在保存的業務應用中,查找與該指令的第二標識屬性相匹配的業務應用。其中,當該指令的第一標識屬性的值不為設定值,在保存的所有Native業務應用中,查找與該指令的第二標識屬性相匹配的Native業務應用。當該指令的第一標識屬性的值為設定值,首先在保存的所有Java業務應用中,查找與該指令的第二標識屬性相匹配的Java業務應用,如果不能查找到Java業務應用,則還需在保存的所有Native業務應用中,查找與該指令的第二標識屬性相匹配的Native業務應用。步驟403:根據保存的上下文屬性信息,執行接收的指令。當保存的上下文屬性信息為"Native"時,進入Native運行環境,執行接收的指令。當保存的上下文屬性信息為"Java"時,進入Java運行環境,執行接收指令。當然,為了使C0S能執行接收指令,還需進行Java運行環境信息的設置,包括進行棧初始化等信息設置。上述步驟402根據接收的指令的標識屬性,確定對應的業務應用後,還需調用該業務應用執行接收到的指令,並在調用成功後,修正保存的上下文屬性信息。這裡,當接收指令的第一標識屬性的值不為設定值,在保存的所有Native業務應用中,查找與該指令的第二標識屬性相匹配的Native業務應用,當能查找到匹配的Native業務應用時,調用該業務應用執行接收到的指令,並在調用成功後,將保存的上下文屬性信息設置為"Native"。如果不能調用該業務應用,則不修改保存的上下文屬性信息,並發送對應的系統異常響應消息;當然,如果不能在保存的所有Native業務應用中,查找到匹配的Native業務應用時,COS也發送對應的系統異常響應消息。當接收指令的第一標識屬性的值為設定值,首先在保存的所有Java業務應用中,查找與該指令的第二標識屬性相匹配的Java業務應用,如果能查找到,則調用該查找到的Java業務應用執行接收的指令,並在調用成功後,將保存的上下文屬性信息設置為"Java"。如果不能調用該查找到的Java業務應用,則不修改保存的上下文屬性信息,並發送對應的系統異常響應消息。如果不能查找到Java業務應用,則還需在保存的所有Native業務應用中,查找與該指令的第二標識屬性相匹配的Native業務應用,當能查找到匹配的Native業務應用時,調用該Native業務應用執行接收的指令,並在調用成功後,將保存的上下文屬性信息設置為"Native"。如果不能調用執行該業務應用,則不修改保存的上下文屬性信息,並發送對應的系統異常響應消息。當然,如果還是不能查找到匹配的Native業務應用時,則COS也發送對應的系統異常響應消息。下面結合說明書附圖對本發明實施例作進一步詳細描述。實施例l,本發明實施例中,智慧卡的默認的狀態為Native,參見圖5,實現智慧卡多業務應用的過程包括步驟501:判斷接收的指令是否為選擇應用指令,即判斷接收的指令是否為攜帶選擇業務應用信息的指令。當該指令是選擇應用指令時,執行步驟502,否則,執行步驟509。根據智慧卡運行環境規範可知,接收的指令的格式一般為APDU格式,如表l所示tableseeoriginaldocumentpage7表1其中,CLA、INS、PP1、PP2、LEN、和DATA都是APDU格式指令參數,這裡,INS為該指令的類型屬性,PP1為該指令的第一標識屬性,DATA為該指令的第二標識屬性,這裡可以為數據屬性。當該指令的INS的值為固定的0xA4時,確定該指令是選擇應用指令時,執行步驟502,否則,執行步驟509。步驟502:將該指令的PP1的值與設定值0x04進行比較,當PP1=0x04時,執行步驟503,否則,執行步驟506。根據智慧卡運行環境規範可知,當PP1=0x04時,才能進行Java業務應用的選擇。步驟503:根據DATA中的數據信息,在智慧卡的文件系統中,查找與該指令的數據信息相匹配的Java業務應用,如果能查找到,則執行步驟504,否則,執行步驟506。在智慧卡的文件系統中,每個Java業務應用都有一個唯一的AID,根據DATA中的AID,查找每個Java業務應用的AID,確定是否有與DATA中的AID—致,如果能找到與DATA中的AID—致的Java業務應用,執行步驟504,否則,執行步驟506。步驟504:是否能調用確定的Java業務應用執行接收的指令,如果能,執行步驟505,如果不能,執行步驟512。COS確定與DATA中的AID—致的Java業務應用後,就調用該Java業務應用執行接收的指令。如果能調用,則轉入步驟505,否則,轉入步驟512。步驟505:修正系統的上下文信息,並轉入步驟512。COS能調用Java業務應用執行指令,則將保存的上下文屬性信息設置為"Java"。步驟5Q6:根據DATA中的數據信息,在智慧卡的文件系統中,查找與該指令的數據信息相匹配的Native業務應用。如果能查找到,則執行步驟507,否則,執行步驟512。當PPl不能等於0x04時,或者,當PPl等於0x04,但不能在智慧卡的文件系統中,查找對應的Java業務應用時,需要在智慧卡的文件系統中,查找對應的Native業務應用。在智慧卡的文件系統中,查找每個Native業務應用的數據信息,如果能找到與DATA中的數據信息一致的Native業務應用,執行步驟507,否則,執行步驟512。步驟507:是否能調用確定的Native業務應用執行接收的指令,如果能,執行步驟508,如果不能,執行步驟512。COS確定與DATA中的數據信息一致的Native業務應用後,就調用該Native業務應用執行接收的指令。如果能調用,則轉入步驟508,否則,轉入步驟512。步驟508:修正系統的上下文信息,並轉入步驟512。COS調用Native業務應用執行接收的指令後,將保存的上下文屬性信息設置為"Native,,。步驟509:判斷保存的上下文屬性信息是否為"Native",如果是,執行步驟510,否則,執行步驟511。這裡,已經確定接收的指令不是選擇應用指令,此時,根據保存的上下文屬性信息,執行對應的系統信息設置。初始狀態時,系統默認上下文屬性信息是"Native",則執行步驟510。若經過上述的應用選擇過程,則有可能對上下文屬性信息進行修改,則根據修改後的上下文屬性信息來執行對應的系統信息設置。步驟510:進入Native運行環境執行接收的指令,並轉入步驟512。此時,COS系統的上下文屬性信息是"Native",因此,進入Native的運行環境,執行接收的指令。步驟511:進入Java運行環境執行接收的指令,並轉入步驟512。此時,COS系統的上下文屬性信息是"Java",因此,進入Java的運行環境,進行棧初始化等環境信息設置工作,然後執行接收的指令。步驟512:返回對應的處理結果,本次指令處理流程結束。這裡,不同處理過程,對應不同的處理結果。當從步驟504轉入步驟512時,COS不能調用確定的Java業務應用,此時,COS返回對應的錯誤狀態字。當從步驟505轉入步驟512時,COS已經根據接收的指令,調用Java業務應用執行了接收的指令,並修正系統的上下文信息,此時COS返回對應的數據信息。當從步驟506轉入步驟512時,COS不能在智慧卡的文件系統中,查找與該指令的數據信息相匹配的業務應用,此時,COS返回對應的錯誤狀態字。當從步驟507轉入步驟512時,COS不能調用確定的Native業務應用,此時,COS返回對應的錯誤狀態字。當從步驟508轉入步驟512時,COS已經根據接收的指令,調用Native業務應用執行了指令,並修正系統的上下文信息,此時COS返回對應的數據信息。當從步驟510轉入步驟512時,COS進行Native運行環境執行接收的指令,此時COS返回對應的數據信息。當從步驟511轉入步驟512時,COS進入Java的運行環境執行接收的指令,此時COS返回對應的數據信息。這樣,COS根據指令的標識屬性不同的值,執行不同的處理流程,從而選擇對應的業務應用。本發明實施例中,若且唯若選擇應用指令到來時,才會有可能進行"上下文屬性信息"的更迭,從而改變智慧卡系統的運行環境。當智慧卡卡片復位時,系統會重新置回到Native的狀態。並且,上述實施例中,以INS、PP1、和DATA這些APDU格式指令參數為依據,來確定對應的業務應用。但是在實際應用中,還可以根據智慧卡的應用領域,選擇其他的APDU格式指令參數為依據,來確定對應的業務應用。例如當智慧卡應用到電信領域時,還可以增加CLA這個指令參數進行判斷。另外在PP1和PP2的判斷上,還會根據電信文件或應用的具體特點進行進一步的處理,以能夠更好滿足Java和Native業務應用兼容的目的。根據上述實現智慧卡多業務應用的方法,可以構造一種實現智慧卡多業務應用的裝置,應用於包括Native業務應用和Java用程序智慧卡中,參見圖6,包括判斷單元100和調用單元200。其中,判斷單元100,用於判斷接收的指令是否為攜帶選擇業務應用信息的指令。調用單元200,用於當所述指令是攜帶選擇業務應用信息的指令時,根據所述指令的標識屬性,調用對應的業務應用執行所述指令。當然,該裝置還包括處理單元,用於當接收到的指令不是攜帶選擇業務應用信息的指令時,根據保存的上下文屬性信息,執行所述指令。其中,處理單元200包括比較子單元,用於將所述指令的第一標識屬性的值與設定值進行比較。第一查找子單元,用於當所述第一標識屬性的值等於設定值時,在保存的所有業務應用中,查找與所述指令的數據屬性相匹配的業務應用。第二查找子單元,用於當所述第一標識屬性的值不等於設定值時,在保存的所有Native業務應用中,查找與所述指令的第二標識屬性相匹配的Native業務應用。其中,第一查找子單元,還用於在保存的所有Java業務應用中,查找與所述指令的數據屬性相匹配的J肌a業務應用,當未查找到J肌a業務應用時,在保存的所有Native業務應用中,查找與所述指令的數據屬性相匹配的Native業務應用。當然該裝置還包括修正單元,用於修正保存的上下文屬性信息。本發明實施描述了一種同時支持硬體無關性和高安全性的Java業務應用,又支持高速執行速度的Native業務應用的智慧卡工作模式。由於這只是一種工作模式,所以也不僅僅適用於智慧卡,也可以用在帶有智慧卡功能的USBKey上。綜上所述,本發明實施例中,判斷接收的指令是否為攜帶選擇業務應用信息的指令,當所述指令是攜帶選擇業務應用信息的指令時,根據所述指令的標識屬性,調用對應的業務應用執行所述指令,當接收到的指令不是攜帶選擇業務應用信息的指令時,根據保存的上下文屬性信息,執行所述指令,這樣使智慧卡能同時支持硬體無關性和高安全性的Java業務應用,又支持高速執行速度的Native業務應用,從而,在實現智慧卡多業務應用的同時,提高業務應用的執行速度,使得這種智慧卡能廣泛應用於電信、銀行等領域。顯然,本領域的技術人員可以對本發明進行各種改動和變型而不脫離本發明的精神和範圍。這樣,倘若對本發明的這些修改和變型屬於本發明權利要求及其等同技術的範圍之內,則本發明也意圖包含這些改動和變型在內。權利要求一種實現智慧卡多業務應用的方法,其特徵在於,應用於包括至少兩類業務應用的智慧卡中,包括判斷接收的指令是否為攜帶選擇業務應用信息的指令;當所述指令是攜帶選擇業務應用信息的指令時,根據所述指令的標識屬性,調用對應的業務應用執行所述指令。2.如權利要求l所述的方法,其特徵在於,還包括當接收到的指令不是攜帶選擇業務應用信息的指令時,根據保存的上下文屬性信息,執行所述指令。3.如權利要求1所述的方法,其特徵在於,所述根據所述指令的標識屬性,調用對應的業務應用執行所述指令包括將所述指令的第一標識屬性的值與設定值進行比較;當所述第一標識屬性的值等於設定值時,在保存的所有業務應用中,查找與所述指令的第二標識屬性相匹配的業務應用;當所述第一標識屬性的值不等於設定值時,在保存的所有Native業務應用中,查找與所述指令的第二標識屬性相匹配的Native業務應用。4.如權利要求3所述的方法,其特徵在於,在保存的所有業務應用中,查找與所述指令的第二標識屬性相匹配的業務應用包括在保存的所有Java業務應用中,查找與所述指令的第二標識屬性相匹配的Java業務應用;當未查找到Java業務應用時,在保存的所有Native業務應用中,查找與所述指令的第二標識屬性相匹配的Native業務應用。5.如權利要求1所述的方法,其特徵在於,所述調用對應的業務應用執行所述指令之後,包括修正保存的上下文屬性信息。6.—種實現智慧卡多業務應用的裝置,其特徵在於,應用於包括至少兩類業務應用的智慧卡中,包括判斷單元,用於判斷接收的指令是否為攜帶選擇業務應用信息的指令;調用單元,用於當所述指令是攜帶選擇業務應用信息的指令時,根據所述指令的標識屬性,調用對應的業務應用執行所述指令。7.如權利要求6所述的裝置,其特徵在於,還包括處理單元,用於當接收到的指令不是攜帶選擇業務應用信息的指令時,根據保存的上下文屬性信息,執行所述指令。8.如權利要求6所述的裝置,其特徵在於,所述調用單元包括比較子單元,用於將所述指令的第一標識屬性的值與設定值進行比較;第一查找子單元,用於當所述第一標識屬性的值等於設定值時,在保存的所有業務應用中,查找與所述指令的數據屬性相匹配的業務應用;第二查找子單元,用於當所述第一標識屬性的值不等於設定值時,在保存的所有Native業務應用中,查找與所述指令的第二標識屬性相匹配的Native業務應用。9.如權利要求8所述的裝置,其特徵在於,所述第一查找子單元,還用於在保存的所有Java業務應用中,查找與所述指令的數據屬性相匹配的Java業務應用,當未查找到Java業務應用時,在保存的所有Native業務應用中,查找與所述指令的數據屬性相匹配的Native業務應用。10.如權利要求6所述的裝置,其特徵在於,還包括修正單元,用於修正保存的上下文屬性信息。全文摘要本發明公開了一種實現智慧卡多業務應用的方法及裝置,應用於包括至少兩類業務應用的智慧卡中,用以使該張智慧卡同時支持Native業務應用和Java業務應用。該方法包括判斷接收的指令是否為選擇應用指令,當所述指令是攜帶選擇業務應用信息的指令時,根據所述指令的標識屬性,調用對應的業務應用執行所述指令。文檔編號G07F7/10GK101739755SQ200910241739公開日2010年6月16日申請日期2009年12月4日優先權日2009年12月4日發明者席礪蓴,臧宏偉,苑中魁,靳偉申請人:北京握奇數據系統有限公司