專利名稱:預(yù)先檢驗存儲在終端附加芯片卡內(nèi)的程序的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及使通過可以插入通信終端的附加芯片卡提供的應(yīng)用程序安全可靠。特別是,終端是一個包括一個用來標識用戶和與通信網(wǎng)通信的第一卡和一個附加芯片卡讀卡器的移動電話終端。
在一個GSM型蜂窩移動電話網(wǎng)內(nèi),采取了一些措施,根據(jù)執(zhí)行在SIM芯片卡內(nèi)的應(yīng)用程序為用戶提供應(yīng)用服務(wù)。這些業(yè)務(wù)服務(wù)用一種稱為SIM應(yīng)用工具包(SIM Application Toolkit)的標準化技術(shù)實現(xiàn)。一種稱為前攝(proactivity)的特別功能允許SIM卡在運行一個程序中向外界(終端,用戶和網(wǎng)絡(luò))發(fā)送請求。
例如,這樣的應(yīng)用程序包括從終端向銀行服務(wù)器查詢和遠距離進行銀行操作的菜單。開發(fā)執(zhí)行在SIM卡內(nèi)的增值服務(wù)應(yīng)用軟件需要在預(yù)約業(yè)務(wù)期間配給和維護這些應(yīng)用軟件。這可以通過交給用戶前用適當?shù)某绦蚴筍IM卡個性化實現(xiàn),也可以通過無線電鏈路將這些程序下載入SIM卡實現(xiàn),或者通過在銷售點直接裝入這些程序?qū)崿F(xiàn)?,F(xiàn)有技術(shù)還考慮到用一種與SIM卡不同的附加芯片卡,這種附加芯片卡可以插入終端,或者通過一個外部閱讀器器連接到SIM卡的終端上。這個第二卡受一個在SIM卡內(nèi)執(zhí)行的程序控制。終端起的作用是透明的,只是向第二卡發(fā)送SIM卡產(chǎn)生的命令。這樣交換命令目的在于利用任何類型的芯片卡開發(fā)業(yè)務(wù)。例如,附加卡是一個銀行信用卡,在移動終端上提供預(yù)付款服務(wù)。
附加卡成為一個通過傳送諸如當前在SIM卡內(nèi)可以發(fā)現(xiàn)的履行增值服務(wù)的程序配給應(yīng)用軟件的裝置。
將第二卡插入終端具有一些缺點,應(yīng)用程序不再必須由網(wǎng)絡(luò)運營方提供,因此在它的可靠性上就脫離了任何控制。第二卡不包含由終端、第一卡或網(wǎng)絡(luò)驗證它的內(nèi)容的裝置。
本發(fā)明的目的是在使用存儲在一個附加卡內(nèi)的特別是可由終端的第一卡或者由終端本身執(zhí)行的應(yīng)用程序前和在使用這個應(yīng)用程序期間增強安全可靠的技術(shù)。
為此,本發(fā)明提出了一種對執(zhí)行存儲在引入一個還有一個第一芯片卡的終端的一個第二芯片卡內(nèi)的程序進行預(yù)先檢驗的方法,第一芯片卡存有與本終端所連接的通信網(wǎng)有關(guān)的數(shù)據(jù),這種方法的特征是它包括在執(zhí)行這個程序前和在執(zhí)行這個程序期間由第一和第二卡中的一個卡驗證另一個卡。
因此,這種驗證防止了騙用、盜版和拷貝第二卡內(nèi)的應(yīng)用程序。
在本發(fā)明的意義內(nèi),第二芯片卡可以是多種存有不同的應(yīng)用程序的附加卡中的任何一種卡,每個第二卡存有一個或多個與在它、第一卡和終端之間通信的軟件裝置無關(guān)的程序。
多種第二卡使一個運營方可以為它的用戶提供通過一種呈現(xiàn)為插入終端的第二卡的形式的傳統(tǒng)經(jīng)銷電路銷售的新服務(wù),而保持對所提供的服務(wù)的控制。
按照本發(fā)明的第一實施例,在驗證包括第一卡對第二卡的驗證時,這種方法包括下列步驟●將一個由第二卡發(fā)送給第一卡的程序標識符和一個密鑰應(yīng)用于一個存儲在第一卡內(nèi)的算法,產(chǎn)生一個結(jié)果;以及●將這個結(jié)果與一個由第二卡發(fā)送給第一卡的證件相比較,以便只是在它們相等的情況下才執(zhí)行程序。
這種驗證因此可以包括按照程序標識符從一個存儲在第一卡內(nèi)的密鑰表中選擇這個密鑰。
按照本發(fā)明的第二實施例,在驗證包括第一卡對第二卡的驗證時,這種方法包括下列步驟●從第一卡向第二卡發(fā)送一個隨機數(shù);●將所發(fā)送的隨機數(shù)和一個密鑰應(yīng)用于一個存儲在第二卡內(nèi)的算法,產(chǎn)生一個簽字,發(fā)送給第一卡;●將第一隨機數(shù)和一個密鑰應(yīng)用于一個存儲在第一卡內(nèi)的算法,產(chǎn)生一個結(jié)果;以及●將這個結(jié)果與第一卡發(fā)送的簽字相比較,以便只有在它們相等的情況下才執(zhí)行程序。
驗證因此可以包括按照一個由第二卡發(fā)送給第一卡的程序標識符從一個存儲在第一卡內(nèi)的密鑰表中選擇這個密鑰。
在驗證包括第二卡對第一卡的驗證時,按照第一實施例,這種方法可以包括下列步驟●從第一卡向第二卡發(fā)送一個號碼的預(yù)定字段;
●在第二卡內(nèi)將這個預(yù)定字段與一個號碼相比較,以便只有在它們相等的情況下才執(zhí)行程序或者讀取它的內(nèi)容。
這個預(yù)定字段因此可以包括至少在第一卡的標志號碼內(nèi)所含的通信網(wǎng)的指示符。
在驗證包括第二卡對第一卡的驗證時,按照第二實施例,這種方法可以包括下列步驟●由第一卡讀取第二卡內(nèi)的一個隨機數(shù);●將這個隨機數(shù)和一個密鑰應(yīng)用于一個存儲在第一卡內(nèi)的算法,產(chǎn)生一個簽字,發(fā)送給第二卡;●將這個隨機數(shù)和一個密鑰應(yīng)用于一個存儲在第二卡內(nèi)的算法,產(chǎn)生一個結(jié)果;以及●在第二卡內(nèi)將這個結(jié)果與所發(fā)送的簽字相比較,以便只有在它們相等的情況下才執(zhí)行程序或者讀取它的內(nèi)容。
驗證因此可以包括按照由第二卡發(fā)送給第一卡的程序標識符從一個存儲在第一卡內(nèi)的密鑰表中選擇這個密鑰。
這種方法在第一和第二卡之間相互驗證時更為有效。它包括下列步驟或者第一卡對第二卡的第一驗證,在第一驗證后第一卡證明第二卡可靠時第二卡對第一卡的第二驗證,以及在第二驗證后第二卡證明第一卡可靠時執(zhí)行程序;或者第二卡對第一卡的第一驗證,在第一驗證后第二卡證明第一卡可靠時第一卡對第二卡的第二驗證,以及在第二驗證后第一卡證明第二卡可靠時執(zhí)行程序。
不是所有的第一卡必須由一個第二卡證明可靠,相反也不是所有的第二卡都必須由第一卡證明可靠。特別是,至少部分驗證可以只是響應(yīng)一個從第二卡向第一卡發(fā)送的驗證請求執(zhí)行。
第一卡可以不包含參加驗證的硬件或軟件裝置。在這種情況下,這種方法可以包括一些響應(yīng)一個來自第一卡的請求在通信網(wǎng)的一個服務(wù)器內(nèi)執(zhí)行驗證的步驟。執(zhí)行程序,無論是至少部分在第一卡內(nèi)、在終端內(nèi)還是在第二卡內(nèi),需要事前驗證這三個實體的兼容性。在這點上,本發(fā)明的方法可以包括響應(yīng)第二卡插入一個與終端連接的讀卡裝置,由第一卡或終端讀取執(zhí)行第二卡內(nèi)的程序的特征;以及分析這些特征,將之與第一卡和/或終端的硬件和軟件能力相比較,以便在所述特征與第一卡和/或終端不兼容時拒絕第二卡。
按照一個優(yōu)選實施例,通信網(wǎng)是一個移動電話網(wǎng),終端是一個移動電話終端,而第一芯片卡是一個用戶標識卡。然而,按照其他變型,通信網(wǎng)可以就是電話交換網(wǎng)或綜合業(yè)務(wù)數(shù)字網(wǎng),也可以是專用數(shù)據(jù)傳輸電話網(wǎng)。
從以下結(jié)合相應(yīng)附圖對本發(fā)明的一些優(yōu)選實施例的說明中可以更清楚地看到本發(fā)明的其他特征和優(yōu)點,在這些附圖中
圖1為一個具有一個詳細示出的移動終端的蜂窩移動電話網(wǎng)的方框圖;圖2為按照本發(fā)明方法對執(zhí)行一個應(yīng)用程序進行預(yù)先檢驗的主要步驟的算法;圖3為與終端連接的第一卡和第二卡相互驗證的算法;圖4為按照第一實施例由第一卡對第二卡的第一驗證的算法;圖5為按照第二實施例由第一卡對第二卡的第一驗證的算法;圖6為按照第一實施例由第二卡對第一卡的第二驗證的算法;圖7為按照第二實施例由第二卡對第一卡的第二驗證的算法。
本發(fā)明以如圖1所示的GSM型數(shù)字蜂窩移動電話網(wǎng)RR的通信網(wǎng)環(huán)境為例進行說明。移動電話網(wǎng)的移動電話終端TE包括一個具有一個可拆卸的微處理器、構(gòu)成終端的一個模塊的第一芯片卡C1和一個稱為附加應(yīng)用卡的第二芯片卡C2,第二芯片卡可以通過一個與終端不同的讀卡器連接到終端上,也可以可拆卸地安裝在終端內(nèi)。
在圖1中,網(wǎng)絡(luò)RR示為一個負責移動終端TE當時所在的位置區(qū)的移動業(yè)務(wù)交換中心MSC和一個由基站控制器BSC連接到移動業(yè)務(wù)交換中心MSC和由無線電鏈路連接到終端TE的基站BTS。實體MSC、BSC和BTS大體上構(gòu)成了一個固定網(wǎng)絡(luò),通過它傳輸?shù)挠行诺佬帕睢⒖刂?、?shù)據(jù)和語音消息。網(wǎng)絡(luò)RR中能與終端TE內(nèi)的第一卡交互作用的主要實體是移動業(yè)務(wù)交換中心MSC,它有一個訪問用戶位置寄存器VLR配合,而且與電話交換網(wǎng)RTC的至少一個自動路由選擇電話交換機CAA連接。移動業(yè)務(wù)交換中心MSC管理當時處在它所負責的位置區(qū)內(nèi)的訪問移動終端(包括終端TE)的通信?;究刂破鰾SC值得注意的是管理對訪問移動終端的信道分配,而基站BTS覆蓋終端MS當時所在的無線電小區(qū)。
移動電話網(wǎng)RR還包括一個與訪問用戶位置寄存器VLR連接的歸屬用戶位置寄存器HLR,它類似于一個數(shù)據(jù)庫。歸屬用戶位置寄存器HLR特別是為每個移動電話終端存儲了本終端TE內(nèi)的稱為SIM(用戶標志模塊)卡的第一芯片卡C1的國際標志IMSI(國際移動用戶標志)(也就是擁有這個SIM卡的用戶的標志)、用戶的業(yè)務(wù)預(yù)約情況和移動終端暫時配屬的訪問用戶位置寄存器VLR的號碼。
在圖1中詳細示出的終端TE有一個與移動電話網(wǎng)RR的無線電接口30,它主要包括發(fā)送接收信道雙工器、頻率變換電路、模數(shù)和數(shù)模變換器、調(diào)制和解調(diào)器、以及信道編碼和解碼電路。終端TE還包括一個與拾音器310和揚聲器311連接的語音編碼和解碼電路31、一個有非易失程序存儲器EEPRON 33和數(shù)據(jù)存儲器RAM 34配合的微控制器32、以及一個為芯片卡C1和C2、小鍵盤36和圖形顯示屏37服務(wù)的輸入輸出接口35。微控制器32通過總線BU與接口30、電路31和存儲器33和34連接,通過總線BS與輸入輸出接口35連接。微控制器32管理終端接收和發(fā)送的在頻率變換后的基帶數(shù)據(jù)的所有處理,特別是與ISO模型的協(xié)議層1、2和3有關(guān)的處理,以及監(jiān)控在網(wǎng)絡(luò)RR(通過無線電接口30)與第一芯片卡C1(通過輸入輸出接口35)之間的數(shù)據(jù)交換。
SIM芯片卡C1與包括至少一個在終端內(nèi)的讀卡器的輸入輸出接口35和移動終端上的一些外圍插座連接。芯片卡C1主要含有一個微處理器10;一個ROM型存儲器11,其中包括一個對卡的操作系統(tǒng)和本發(fā)明的專用的通信、應(yīng)用和驗證算法;一個EEPROM型的非易失性存儲器12,其中含有所有與用戶有關(guān)的特征,特別是用戶的國際標志IMSI;以及一個RAM型的存儲器13,主要用來處理要從終端內(nèi)的微處理器32和第二卡C2接收的數(shù)據(jù)和要發(fā)送給它們的數(shù)據(jù)。
如圖1所示,可按需要配置一個驗證服務(wù)器SA作為移動電話網(wǎng)RR的一個內(nèi)部實體,通過網(wǎng)絡(luò)RR的信令網(wǎng)與一個或多個包括移動業(yè)務(wù)交換中心和訪問用戶位置寄存器VLR的對連接。服務(wù)器SA的地址預(yù)先存儲在卡C1的存儲器12內(nèi)。
按照本發(fā)明,若干軟件包大部分是下載入ROM 11和EEPROM 12存儲器,以便管理附加卡C2內(nèi)的應(yīng)用軟件。特別是如圖2所示的本發(fā)明的預(yù)先檢驗方法的算法存儲在存儲器11和12內(nèi)。
與SIM卡C1類似,第二卡C2也包括一個微處理器20;一個ROM存儲器21,其中存有卡C2的操作系統(tǒng)和至少部分包括本發(fā)明的專用的一個應(yīng)用程序PA和一個驗證算法;一個EEPROM型非易失存儲器12,按照本發(fā)明存有應(yīng)用程序的標識符IPA以及執(zhí)行程序所需的特征CPA和一個或兩個驗證請求DA1和DA2;以及一個RAM存儲器13,存儲要從微控制器32和處理器10接收的數(shù)據(jù)。卡C2例如可以是一個銀行信用卡、電子錢包卡、游戲卡或訪問卡,在最后這種情況中,訪問卡用來將移交這個卡的人員的姓名和電話號碼插入SIM卡的電話目錄和/或自動呼叫所述人員。
卡C1和C2內(nèi)的ROM和EEPROM存儲器11、12、21和22包括與終端TE的微控制器32對話和通過終端TE(也就是說通過微控制器32和輸入輸出接口35)在處理器10和20之間對話的通信軟件。
為了互相對話,SIM卡C1和附加卡C2都是前攝型的,以便用按照ISO 7816-3的協(xié)議“T=0”預(yù)先格式化和按照GSM建議書11.14(SIM工具包)封裝的命令觸發(fā)移動終端MS內(nèi)的一些操作。這個建議書允許將芯片卡C1、C2的存儲器11、21內(nèi)的操作系統(tǒng)的命令集擴展到使數(shù)據(jù)可以由一個可用的芯片卡C1(C2)發(fā)送給另一個卡C2(C1)。如以下可以看到的那樣,終端TE對于在卡C1和C2之間的一些數(shù)據(jù)交換可以是透明的,或者可以與其中一個卡通信而不與另一個卡通信。
如圖2所示,對執(zhí)行一個存儲在第二卡C2內(nèi)的應(yīng)用程序PA進行預(yù)先檢驗的方法包括四個主要步驟E1至E4。首先,在步驟E0觸發(fā)預(yù)先檢驗方法,可以在卡C2插入讀卡器后通過按壓終端TE的小鍵盤上一個預(yù)定的確認鍵或通過確認在終端的屏幕上顯示的指令“VALIDATEINSERTION ADDITIONAL CARD(確認附加卡插入)”人工觸發(fā),也可以通過終端TE響應(yīng)由與終端TE不同的或象卡C1那樣集成在輸入輸出接口35內(nèi)的讀卡器發(fā)送的一個卡存在消息自動觸發(fā)。然后,終端TE使第一卡(SIM卡)C1詢問第二卡C2。
按照圖2所示的這個實施例,就在以下的步驟E1至E4期間出現(xiàn)的所有事件來說,終端TE(實際上是微控制器32和輸入輸出接口35)對于在兩個卡之間的數(shù)據(jù)交換是透明的。
在步驟E1,卡C1通過終端TE讀取卡C2的EEPROM存儲器22內(nèi)的業(yè)務(wù)信息IS,存入EEPROM存儲器12。業(yè)務(wù)信息含有應(yīng)用程序PA的標識符IPA、執(zhí)行程序所需的特征CPA和經(jīng)常用的驗證請求DA。特征CPA中值得注意的是終端TE執(zhí)行程序PA所需的軟件環(huán)境類型、存儲器容量和硬件參數(shù),以及禁止還是許可在第二卡C2外執(zhí)行程序PA。第一卡C1通過讀取第二卡C2內(nèi)的信息IS知道與第二卡內(nèi)含有的應(yīng)用程序相應(yīng)的應(yīng)用的性質(zhì)。
如果在步驟E2第一卡C1發(fā)現(xiàn)含有SIM卡C1的終端TE與應(yīng)用程序的特征CPA不兼容,卡C1就在步驟E21拒絕繼續(xù)預(yù)先檢驗過程,向終端TE表明拒絕,因此終端TE顯示一個消息“附加卡不兼容”。
在相反的情況下,卡C1在中間步驟E22決定繼續(xù)或不繼續(xù)預(yù)先檢驗。如果卡C1不立即繼續(xù)預(yù)先檢驗,例如由于有來自終端的呼叫,卡C1就推遲預(yù)先檢驗,以便以后再調(diào)入程序PA或使它在卡C2內(nèi)執(zhí)行。
如果在步驟E22后第一卡C1繼續(xù)進行預(yù)先檢驗,就在步驟E3,第一卡C1用讀取的卡C2內(nèi)的應(yīng)用程序特征CPA控制是否需要用第二卡C2驗證至少其中一個卡。
如果沒有驗證請求,預(yù)先檢驗方法就從步驟E3進至步驟E4,決定應(yīng)用程序PA的執(zhí)行位置。程序執(zhí)行位置可以由終端利用在SIM卡內(nèi)的工具包應(yīng)用的前攝命令在稱為SIM卡的第一卡C1、稱為附加卡的第二卡C2和終端TE這三個實體之中選擇。
按照第一種變型,應(yīng)用程序PA通過工具包應(yīng)用程序的多卡讀卡軟件裝置從第二卡下載入第一卡C1,在下個步驟E5使程序PA在卡C1內(nèi)執(zhí)行。
按照第二變型,程序PA在步驟E5在第二卡C2內(nèi)執(zhí)行。按照第一可選方案,程序PA在SIM卡C1的控制下啟動,然后將執(zhí)行程序而進行的命令和響應(yīng)的交換的主動性交給終端TE,由終端TE直接與第二卡通信。按照第二可選方案,程序PA在SIM卡C1的控制下啟動,而在卡C2與終端TE之間的所有命令和響應(yīng)的交換都通過卡C1,使得從終端看來似乎卡C1本身存有和執(zhí)行程序PA。
按照第三變型,程序PA在步驟E5從第二卡C2下載入終端TE,在終端內(nèi)最初為此實現(xiàn)的執(zhí)行軟件環(huán)境中執(zhí)行。
在步驟E4后,在步驟E5,執(zhí)行在第二卡C2內(nèi)讀取的程序PA。這個程序為用戶提供服務(wù),例如在顯示屏37上顯示文本菜單,SIM卡C1采集用戶數(shù)據(jù),向網(wǎng)絡(luò)RR或RTC發(fā)送請求,以及解釋對請求的響應(yīng)。
按照另一個實施例,在步驟E1至E4在SIM卡C1內(nèi)執(zhí)行的操作(示于圖2中的左側(cè)),除與在下面要詳細說明的相互驗證有關(guān)的操作外,都在終端TE內(nèi)執(zhí)行,也就是說都在微控制器32的控制下執(zhí)行。因此,終端在步驟E1讀取業(yè)務(wù)信息IS[IPA,CPA,DA],本身根據(jù)在步驟E2、E3和E4的程序執(zhí)行情況決定是否繼續(xù)進行預(yù)先檢驗。
再來看圖2中的步驟E3,第一卡C1在從卡C2讀取的存入卡C1的業(yè)務(wù)信息IS中含有一個驗證請求DA1時觸發(fā)卡的相互驗證。相互驗證按照圖3所示的這個實施例包括由第一卡C1對第二卡C2的第一驗證A1,以及響應(yīng)第二卡的可靠性由第二卡C2對第一卡C1的第二驗證A2。然而,按照本發(fā)明中的另一個實施例,驗證的次序相反首先進行卡C2對卡C1的驗證A2,再根據(jù)第一卡的可靠性,進行卡C1對卡C2的驗證A1。
第一驗證A1保證在一個諸如卡C2之類的附加卡內(nèi)的一個應(yīng)用程序只有在這個程序充分得到證實時才可以執(zhí)行。驗證A1包括步驟A11至A15。
在步驟E3后的步驟A11,第一卡(SIM卡)C1檢驗它是否含有一個所管理的寫入ROM 11和EEPROM 12的第一驗證算法AA1。如果有,在步驟A12,卡C1進行對卡C2的驗證。如果在步驟A11確定卡C1不能驗證卡C2,SIM卡C1經(jīng)終端TE通過固定網(wǎng)BTS-BSC-MSC向與終端TE暫時配屬的訪問用戶位置寄存器VLR連接的驗證服務(wù)器SA發(fā)送一個第一驗證請求消息,從而是服務(wù)器SA代替卡C1直接進行對卡C2的驗證,例如按照如下所述的前兩個驗證之一進行。在卡C1或服務(wù)器SA進行的第一驗證A1的最后一個步驟A14,如果卡C2通過驗證,就繼續(xù)進行相互驗證的第二驗證A2;否則,就在步驟A15停止相互驗證,控制方法結(jié)束,SIM卡向終端TE傳送消息“ADDITI0NAL CARD NOT AUTHENTICATED(附加卡沒有通過驗證)”,以便將它暫時在顯示屏37上顯示。
按照如圖4所示的第一實施例,在卡C1內(nèi)(或者在服務(wù)器SA內(nèi))對卡C2的第一驗證A12a包括驗證先前在步驟E1卡C2在業(yè)務(wù)信息IS中向卡C1發(fā)送的第二卡證件,主要包括四個步驟A120至A124。
在第一步驟A120,將應(yīng)用程序PA的標識符IPA讀入卡C1的EEPROM存儲器12。標識符IPA用作存儲在存儲器12內(nèi)的一個密鑰表TKa的讀取地址,以便從中讀取一個與程序PA或一個包括程序PA的程序系列相應(yīng)的密鑰Ka。在步驟A121,將標識符TPA和密鑰Ka應(yīng)用于一個驗證算法AA1a,產(chǎn)生一個結(jié)果R1。算法AA1a例如是DES(數(shù)據(jù)加密標準)類型的,就像在本說明的其他部分引用的另一個驗證算法那樣。在步驟A122,將證件CERT讀入卡C1,在相當于步驟A14的步驟A123,與結(jié)果R1相比較如果R1=CERT,證件CERT得到證實,卡C2通過卡C1的驗證,然后就在步驟A2執(zhí)行對卡C1的驗證;否則,就在步驟A15停止驗證和預(yù)先檢驗方法。
圖5示了在卡C1內(nèi)對卡C2的另一個第一驗證A12b。它包括步驟A124至A125,包括通過卡C1驗證在第二卡C2內(nèi)按照第一卡C1發(fā)送的一個隨機數(shù)NA進行計算的結(jié)果SG。
在步驟A11后,卡C1在步驟A124選擇一個由處理器10含有的一個偽隨機信號發(fā)生器提供的一個偽隨機數(shù)NA1,將它引入一個驗證請求消息,通過終端TE發(fā)送給卡C2。響應(yīng)這個驗證請求,在步驟A125,第二卡C2暫時將所發(fā)送的隨機數(shù)NA1存儲在存儲器23內(nèi),而且從EEPROM存儲器22讀取一個密鑰Kb。在步驟A126,將隨機數(shù)NA1和密鑰Kb應(yīng)用于一個驗證算法AA1b,產(chǎn)生一個簽字SG2。
幾乎與步驟A125和A126同時,在第一卡C1內(nèi)執(zhí)行類似的步驟A127和A128。制定驗證請求消息后,在步驟A127,將隨機數(shù)NA1寫入卡C1的RAM存儲器,再讀取在卡C1的EEPROM存儲器12內(nèi)的標識符IPA,以便以讀取模式對EEPROM存儲器12內(nèi)的一個密鑰表TKb進行尋址。然后,在步驟A128,將從存儲器13讀取的隨機數(shù)NA1和從表TKb讀取的密鑰Kb應(yīng)用于也是卡C1的ROM 11和EEPROM 12存儲器提供的算法AA1b??–1內(nèi)的算法AA1b產(chǎn)生結(jié)果R2。
最后,在步驟A129,第二卡C2將簽字SG2通過終端TE發(fā)送給第一卡C1,以便將它與結(jié)果R2相比較。步驟A129相當于步驟A14,在卡C1內(nèi)驗證卡C2,如果R2=SG2,就執(zhí)行步驟A20,或者,在R2與SG2不同時,拒絕卡C2,步驟E15停止驗證和預(yù)先檢驗方法。
在這兩個第一驗證中,在步驟A120、A124前,密鑰Ka、Kb在擁有SIM卡C1的用戶預(yù)約業(yè)務(wù)時最初對卡C1個性化期間裝入卡C1的EEPROM存儲器12,或者在使用卡C1期間下載,例如以便修改或增補。
第一驗證的第三實施例包括在步驟E1從第二卡向第一卡發(fā)送一個應(yīng)用程序標識符IPA、一個通常是用英語代表序號的第二卡的標識符CSN和一個是IPA和CSN的函數(shù)的數(shù)字RND。如果第一卡已經(jīng)含有一個對這個三元組IPA、CSN、RDN的許可,驗證就取得成功。相反,如果第一卡還沒有許可這個三元組,它就通過一個保安信道與一個授權(quán)中心接觸,向授權(quán)中心發(fā)送三元組IPA、CSN、RND以及一個與第一卡關(guān)聯(lián)的諸如它的CSN或IMSI之類的獨特號碼。
授權(quán)中心在一個數(shù)據(jù)庫內(nèi)進行核對,看這個三元組IPA、CSN、RND是否與一個授權(quán)卡相應(yīng)。如果不是,授權(quán)中心向第一卡發(fā)送一個消息,表明這個第二卡不是授權(quán)的。如果三元組與一個授權(quán)的第二卡相應(yīng),授權(quán)中心在一個數(shù)據(jù)庫內(nèi)進行核對,看這個第二卡是否還沒有與另一個“第一卡”關(guān)聯(lián)。如果確實如此,授權(quán)中心向第一卡發(fā)送一個消息,表示驗證失敗。如果第二卡還沒有與一個第一卡關(guān)聯(lián)的,授權(quán)中心修改數(shù)據(jù)庫,使得第二卡與這個第一卡關(guān)聯(lián),然后授權(quán)中心向第一卡發(fā)送一個消息,表示驗證成功。第一卡于是將授權(quán)情況存儲起來,以免在以后驗證階段期間再與授權(quán)中心接觸。
在第一驗證的這個第三實施例中,也可以按需要將一個第二卡不是與單個第一卡關(guān)聯(lián),而是與一組第一卡關(guān)聯(lián),從而允許一小組用戶使用同一個第二卡。
回到圖3,如果在步驟A14按照驗證A12a等式R1=CERT或者按照驗證A12b等式RES1=SG滿足,就開始進行第二驗證A2。驗證A2保證第一卡C1(SIM卡)適當?shù)氐玫降诙–2的認可,以便觸發(fā)和讀取卡C2內(nèi)的應(yīng)用程序PA。
第二驗證在步驟A20開始,按需要進行事前檢查,看在存儲器12內(nèi)的業(yè)務(wù)信息IS是否存在一個第二驗證請求DA2。如果因沒有請求DA2而不執(zhí)行驗證A2,預(yù)先檢驗方法就直接進至確定應(yīng)用程序執(zhí)行位置的步驟E4。在相反的情況下,分別以類似于第一驗證A1的步驟A11至A15的方式執(zhí)行第二驗證的步驟A21至A25。
在步驟A20后的步驟A21,卡C1核實它是否能完全參加第二驗證。如果不能,卡C1就在步驟A23不是象在下面要詳細說明的步驟A22那樣向卡C2而是通過終端TE向參加第二驗證的驗證服務(wù)器SA發(fā)送一個請求第二驗證的消息。在卡C2在卡C1或服務(wù)器SA參與下對卡C1的驗證的步驟A22或A23的最后A24,卡C1或者通過驗證,預(yù)先檢驗方法進至確定執(zhí)行位置的步驟E4,或者沒有通過驗證,預(yù)先檢驗方法在步驟A25結(jié)束,在終端TE的顯示屏37上顯示消息“SIM CARD NOT AUTHORISED(SIM卡沒有得到認可)”。
按照如圖6所示的第一實施例,第二驗證A22a包括步驟A220至A222,包括向第二卡C2傳輸擁有這個SIM卡C1的用戶的國際標志號碼IMSI(國際移動用戶標志)的預(yù)定字段和將所發(fā)送的這個字段與預(yù)先存儲在卡C2內(nèi)的一個號碼相比較。
在步驟A220,讀取卡C1的存儲器12內(nèi)存有的標志號碼IMSI的預(yù)定字段。這個預(yù)定字段例如是用戶配屬的移動無線電網(wǎng)RR的2數(shù)字指示符MNC(移動網(wǎng)代碼),或者是整個指示符MNC和網(wǎng)絡(luò)RR所屬國的指示符MCC(移動網(wǎng)國家代碼),因此通常由網(wǎng)絡(luò)RR的運營方發(fā)行的卡C2可以驗證SIM卡是否確實屬于這個運營方。按照另一個變型,這個預(yù)定字段是一個一組用戶的用戶號碼MSIN(移動用戶標識號碼)的共同前綴。
在步驟A221,響應(yīng)這個預(yù)定字段,例如為指示符MNC,在卡C2內(nèi)從存儲器22讀出一個相當?shù)奶柎aMNC2。下一個步驟A222相當于步驟A24,將號碼MNC與MNC2相比較,如果相等,預(yù)先檢驗方法就進至步驟E4;否則,卡C2就不認為卡C1可靠,從而直接使終端TE或者通過SIM卡C1顯示步驟A25的消息,預(yù)先檢驗方法終止。
按照如圖7所示的第二實施例,第二驗證A22b包括步驟A223至A229,包括用卡C2驗證在第一卡C1內(nèi)由卡C1按照向卡C2請求到的一個隨機數(shù)NA2進行計算的結(jié)果SG3。
步驟A21后,在步驟A223,卡C1通過終端TE向卡C2發(fā)送一個隨機數(shù)請求消息。在步驟A224,卡C2從它的EEPRON存儲器22讀取由處理器20提供的一個隨機數(shù)NA2,通過終端TE發(fā)送給卡C1,卡C1將它暫時存儲起來。在卡C1內(nèi),隨機數(shù)請求步驟后是讀取步驟A225,從EEPROM存儲器12讀取應(yīng)用程序標識符IPA。這個標識符用來以讀取模式對一個密鑰表TC進行尋址,以便從中讀取一個與程序PA或者與包括程序PA的一系列程序相應(yīng)的密鑰C。在步驟A226,在卡C1內(nèi)將所接收的隨機數(shù)NA2和讀取的密鑰C應(yīng)用于一個第二驗證算法AA2,得出一個簽字SG3,通過終端TE發(fā)送給卡C2。
在卡C2內(nèi),在隨機數(shù)選擇步驟A224后,在步驟A227,用隨機數(shù)NA2讀取存儲器22內(nèi)的密鑰C,以便將它們應(yīng)用于也由卡C2內(nèi)的存儲器21和22提供的算法AA2。在步驟A228,算法AA2產(chǎn)生一個結(jié)果R3。在相當于步驟A24的步驟A229,將卡C2所接收的簽字SG3與結(jié)果R3相比較。在SG3=R3時,卡C2證明卡C1可靠,于是預(yù)先檢驗方法進至步驟E4。否則,在SG3≠R3時,在步驟A25,卡C2拒絕卡C1,于是SIM卡請求終端TE顯示消息“SIM CARD NOT AUTHORISED(SIM卡沒有得到認可)”,預(yù)先檢驗方法結(jié)束。
概括地說,如果卡C2對卡C1的驗證失敗,存儲在卡C2內(nèi)的所有或一些程序就不能讀取和不能執(zhí)行。
按照本發(fā)明的另一個實施例,在執(zhí)行第二卡內(nèi)的程序前兩個卡相互驗證后,在整個程序執(zhí)行對話期間還要進行驗證。首先,每一個卡都產(chǎn)生一個隨機數(shù),發(fā)送給另一個卡。根據(jù)這個兩個隨機數(shù),每個卡各計算出一個稱為對話密鑰的密鑰。每個卡用對話密鑰對一個諸如這兩個隨機數(shù)之類的已知消息應(yīng)用加密算法,得到一個加密消息。每個卡將它的加密消息發(fā)送給另一個卡,檢查從另一個卡接收到的加密消息的可靠性。
在兩個卡相互證明各自可靠時,可以繼續(xù)執(zhí)行程序。在整個程序執(zhí)行對話期間,從一個卡發(fā)送給另一個卡的所有消息用以下方式證明可靠將一個算法應(yīng)用于需發(fā)送的消息,得到所述消息的一個印記。將一個使用對話密鑰的簽名算法應(yīng)用于這個印記,得到一個將與它相應(yīng)的消息一起發(fā)送的簽字。在一個卡從另一個卡接收到帶有簽字的消息時,它重新計算與所接收的消息相應(yīng)的印記和簽字,然后核對這個簽字是否與隨消息接收到的簽字相同。
權(quán)利要求
1.一種對執(zhí)行一個存儲在一個引入一個還有一個第一芯片卡(C1)的終端(TE)內(nèi)的第二芯片卡(C2)內(nèi)的程序進行預(yù)先檢驗的方法,所述第一芯片卡(C1)存有與所述終端所連接的通信網(wǎng)(RR)有關(guān)的數(shù)據(jù),所述方法的特征是它包括在執(zhí)行(E5)所述程序前由所述第一和第二卡(C1,C2)的一個卡對另一個卡進行驗證(A1,A2)。
2.一種按照權(quán)利要求1所述的方法,其中所述驗證包括所述第一卡(C1)對第二卡(C2)的驗證(A1),所述方法包括下列步驟將一個由所述第二卡發(fā)送給所述第一卡的所述程序的一個標識符(IPA)和一個密鑰(Ka)應(yīng)用(A121)于一個存儲在所述第一卡內(nèi)的算法(AA1a),產(chǎn)生一個結(jié)果(R1);以及將所述結(jié)果(R1)與一個由所述第二卡發(fā)送給所述第一卡的證件(CERT)相比較(A123),以便只有在它們相等的情況下才執(zhí)行所述程序。
3.一種按照權(quán)利要求1所述的方法,其中所述驗證包括按照所述程序標識符(IPA)從一個存儲在所述第一卡(C1)內(nèi)的密鑰表(TKa)中選擇(A120)所述密鑰(Ka)。
4.一種其中權(quán)利要求1所述的方法,其中所述驗證包括所述第一卡(C1)對第二卡(C2)的驗證(A1),所述方法包括下列步驟從所述第一卡(C1)向所述第二卡(C2)發(fā)送(A124)一個隨機數(shù)(NA1);將所發(fā)送的所述隨機數(shù)和一個密鑰(Kb)應(yīng)用(A125,A126)于一個存儲在所述第二卡內(nèi)的算法(AA1b),產(chǎn)生一個簽字(SG2),發(fā)送給第一卡(C1);將所述隨機數(shù)和一個密鑰(Kb)應(yīng)用(A128)于一個存儲在所述第一卡內(nèi)的算法(AA1b),產(chǎn)生一個結(jié)果(R2);以及將所述結(jié)果與所述第一卡發(fā)送的簽字相比較(A129),以便只有在它們相等的情況下才執(zhí)行所述程序。
5.一種按照權(quán)利要求4所述的方法,其中所述驗證包括按照一個由所述第二卡發(fā)送給所述第一卡的程序標識符(IPA)從一個存儲在所述第一卡(C1)內(nèi)的密鑰表(TKb)中選擇(A127)所述密鑰(Kb)。
6.一種按照權(quán)利要求1所述的方法,其中,在所述驗證包括所述第二卡(C2)對所述第一卡(C1)的驗證(A2)時,所述方法包括下列步驟從所述第一卡(C1)向所述第二卡發(fā)送(A220)一個號碼(IMSI)的預(yù)定字段(MNC);將所述預(yù)定字段(MUC)與所述第二卡內(nèi)的一個號碼(MNC2)相比較(A222),以便只有在它們相等的情況下才執(zhí)行所述程序或者讀取它的內(nèi)容。
7.一種按照權(quán)利要求6所述的方法,其中所述預(yù)定字段包括至少存儲在所述第一卡的一個標志號碼(IMSI)內(nèi)的所述通信網(wǎng)(RR)的指示符(MNC)。
8.一種按照權(quán)利要求1所述的方法,其中,在所述驗證包括所述第二卡(C2)對所述第一卡(C1)的驗證(A2)時,所述方法包括下列步驟。由所述第一卡(C1)從所述第二卡(C2)讀取(A223,A224)一個隨機數(shù)(NA2);將所述隨機數(shù)和一個密鑰(C)應(yīng)用(A226)于一個存儲在所述第一卡內(nèi)的算法(AA2),產(chǎn)生一個簽字(SGS),發(fā)送給第二卡(C2);將所述隨機數(shù)(NA2)和一個密鑰(C)應(yīng)用(A228)于一個存儲在所述第二卡內(nèi)的算法(AA2),產(chǎn)生一個結(jié)果(R3);以及在所述第二卡內(nèi),將所述結(jié)果與所發(fā)送的所述簽字相比較(A129),以便只有在它們相等的情況下才執(zhí)行所述程序或者讀取它的內(nèi)容。
9.一種按照權(quán)利要求8所述的方法,其中所述驗證包括根據(jù)一個由所述第二卡發(fā)送給所述第一卡的程序標識符(IPA)從一個存儲在所述第一卡(C1)內(nèi)的密鑰表(TC)中選擇(A225)所述密鑰(C)。
10.一種按照權(quán)利要求1至9中任何一個權(quán)利要求所述的方法,所述方法包括所述第一卡(C1)對所述第二卡(C2)的第一驗證(A1),在第一驗證后所述第一卡證明所述第二卡可靠時所述第二卡對所述第一卡的第二驗證(A2),以及在第二驗證后所述第二卡證明所述第一卡可靠時執(zhí)行所述程序;或者包括所述第一卡對所述第一卡(C1)的第一驗證(A2),在第一驗證后所述第二卡證明所述第一卡可靠時所述第一卡對所述第二卡的第二驗證(A1),以及在第二驗證后所述第一卡證明所述第二卡可靠時執(zhí)行所述程序。
11.一種按照權(quán)利要求1至10中任何一個權(quán)利要求所述的方法,其中所述驗證的至少一部分(A1,A2;A2)只是響應(yīng)一個從所述第二卡(C2)向所述第一卡(C1)發(fā)送的驗證請求(DA1;DA2)而執(zhí)行的。
12.一種按照權(quán)利要求1至11中任何一個權(quán)利要求所述的方法,所述方法包括響應(yīng)一個來自所述第一卡(C1)的請求(A11,A21)在所述通信網(wǎng)(RR)的一個服務(wù)器(SA)內(nèi)執(zhí)行的一些驗證步驟。
13.一種按照權(quán)利要求1至12中任何一個權(quán)利要求所述的方法,所述方法包括由所述第一卡(C1)或所述終端(TE)響應(yīng)所述第二卡(C2)插入(E0)一個與所述終端連接的讀卡裝置(35)讀取(E1)執(zhí)行在所述第二卡(C2)內(nèi)的所述程序的特征(CPA),以及分析(E2)所述特征,將之與所述第一卡和/或所述終端的硬件和軟件能力相比較,以便在所述特征與所述第一卡和/或所述終端不兼容時拒絕所述第二卡。
14.一種按照權(quán)利要求1至13中任何一個權(quán)利要求所述的方法,所述方法在驗證卡(A1,A2)與執(zhí)行程序(E5)之間還包括將所述程序(PA)從所述第二卡(C2)下載(E5)入所述第一卡(C1),以便在所述第一卡(C1)內(nèi)執(zhí)行(E5)所述程序。
15.一種按照權(quán)利要求1至13中任何一個權(quán)利要求所述的方法,其中所述程序在所述第一卡(C1)的控制下啟動(E5),以便在所述第二卡(C2)內(nèi)執(zhí)行,在所述第二卡(C2)與所述終端(TE)之間直接或者通過所述第一卡(C1)進行命令和響應(yīng)的交換。
16.一種按照權(quán)利要求1至13中任何一個權(quán)利要求所述的方法,所述方法在卡驗證(A1,A2)與程序執(zhí)行(E5)之間還包括將所述程序(PA)從所述第二卡(C2)下載入所述終端(TE),以便在所述終端內(nèi)執(zhí)行(E5)程序。
17.一種按照權(quán)利要求1至16中任何一個權(quán)利要求所述的方法,其中所述通信網(wǎng)是一個移動電話網(wǎng)(RR),所述終端是一個移動電話終端(TE),而所述第一芯片卡是一個用戶標志卡(C1)。
全文摘要
本發(fā)明提供了一種方法,在將一個存儲在一個插入諸如移動無線電話終端之類的終端(TE)的第二芯片卡(C1)內(nèi)的程序加到一個存有與終端所鏈接的通信網(wǎng)(RR)有關(guān)的數(shù)據(jù)的第一芯片卡(C1)執(zhí)行前由其中一個卡(C1,C2)證明另一個卡可靠或者兩個卡相互證明可靠。這樣的雙重驗證(A1,A2)保證了程序在終端內(nèi)全球執(zhí)行的可靠性和通過網(wǎng)絡(luò)運營方的標準信道配給的第二卡的來據(jù)源的可靠性。
文檔編號G07F7/10GK1369084SQ00811284
公開日2002年9月11日 申請日期2000年5月12日 優(yōu)先權(quán)日1999年6月3日
發(fā)明者B·巴斯奎恩 申請人:格姆普拉斯公司