專利名稱:通信系統(tǒng)、讀出器/寫入器和驗證方法
技術(shù)領(lǐng)域:
本發(fā)明涉及讀出器/寫入器,其響應(yīng)于從控制器發(fā)布的指令而從加載了一個或多個應(yīng)用 程序的IC模塊讀取信息或者向該IC模塊寫入信息,其中在該控制器中加載了與所述應(yīng)用 程序兼容的對應(yīng)應(yīng)用程序;包括所述讀出器/寫入器的通信系統(tǒng);將由所述讀出器/寫入 器實現(xiàn)的驗證方法;以及計算機程序。
背景技術(shù):
近年來,已經(jīng)能夠在諸如合并在IC卡或便攜式蜂窩電話中的IC芯片之類的 IC模塊中加載多個應(yīng)用程序,例如包括設(shè)計用于電子結(jié)算(electronicsettlement)的 應(yīng)用程序、和累積商店所提供的服務(wù)點的應(yīng)用程序(例如,參考,日本未審查專利公開 No. 2002-7971)。從IC模塊讀取信息或者向IC模塊寫入信息是通過與在IC模塊中加載的 應(yīng)用程序兼容的對應(yīng)應(yīng)用程序所控制的讀出器/寫入器實現(xiàn)的。通常,對于讀取或?qū)懭?,讀 出器/寫入器和IC模塊相互驗證。為了從加載了多個應(yīng)用程序的IC模塊中讀取信息或者 向該IC模塊寫入信息,IC模塊中的每個應(yīng)用程序和讀出器/寫入器應(yīng)該相互驗證。為了 安全的原因,過去已經(jīng)與對應(yīng)應(yīng)用程序相關(guān)聯(lián)地包括了不同的讀出器/寫入器。然而,多個讀出器/寫入器的必要性引出了各種問題,涉及裝載了讀出器/寫入器 的商店等中的安裝空間、適用性、維護(hù)性等。更具體地,例如,沒有空間來安裝多個讀出器/ 寫入器,用戶必須從多個已裝載的讀出器/寫入器中選擇對期望的處理最佳的適當(dāng)讀出器 /寫入器,并且所需要的維護(hù)工作和成本是與應(yīng)用程序的數(shù)目成比例的。在讀出器/寫入器中存儲了用于讀出器/寫入器與在IC模塊中加載的每個應(yīng)用 程序之間的相互驗證的所有各條密鑰信息。讀出器/寫入器與在IC模塊中加載的多個應(yīng) 用程序相互驗證,并且讀出器/寫入器讀取或?qū)懭胄畔ⅰ?br>
發(fā)明內(nèi)容
然而,前述所有各條密鑰信息在一個讀出器/寫入器中的存儲引起了與安全相關(guān) 的問題。具體地,控制讀出器/寫入器的對應(yīng)應(yīng)用程序可獲取并使用對于讀出器/寫入器 與除了在IC模塊中加載的并與對應(yīng)應(yīng)用程序兼容的應(yīng)用程序之外的應(yīng)用程序之間的相互 驗證所需要的密鑰信息。為了解決前述問題,期望提供一種使一個讀出器/寫入器能夠在保證安全的情況
3下從加載了多個應(yīng)用程序的IC模塊中讀取信息或者向該IC模塊寫入信息的通信系統(tǒng)、讀 出器/寫入器、驗證方法、和計算機程序。為了解決上面的問題,根據(jù)本發(fā)明的實施例,提供了一種通信系統(tǒng),包括IC模 塊,其中加載了一個或多個應(yīng)用程序;控制器,其中加載了與所述應(yīng)用程序兼容的對應(yīng)應(yīng)用 程序;以及讀出器/寫入器,其響應(yīng)從該控制器發(fā)布的指令而從IC模塊讀取信息或者向IC 模塊寫入信息。在該通信系統(tǒng)中,該讀出器/寫入器包括存儲器,其中存儲了與IC模塊中 加載的應(yīng)用程序相關(guān)聯(lián)的、并用于讀出器/寫入器與相應(yīng)的應(yīng)用程序之間的相互驗證的一 條或多條IC訪問驗證信息,并且在所述存儲器中存儲了與根據(jù)應(yīng)用程序?qū)⑺龆鄺lIC訪 問驗證信息分類成的組相關(guān)聯(lián)的多條組驗證信息。當(dāng)通過控制器中的對應(yīng)應(yīng)用程序來請求 讀出器/寫入器向IC模塊寫入信息或者從IC模塊讀取信息時,所述讀出器/寫入器和對 應(yīng)應(yīng)用程序使用組驗證信息而相互驗證。如果相互驗證成功,則讀出器/寫入器和IC模塊 中裝載的應(yīng)用程序使用IC訪問驗證信息來相互驗證,其中所述IC訪問驗證信息屬于利用 用于所述成功相互驗證的組驗證信息所標(biāo)識的組。如果相互驗證成功,則讀出器/寫入器 響應(yīng)從對應(yīng)應(yīng)用程序發(fā)布的指令來從IC模塊讀取信息或者向IC模塊寫入信息。根據(jù)該實施例,在IC模塊中加載一個或多個應(yīng)用程序,并且讀出器/寫入器持有 用于讀出器/寫入器和各個應(yīng)用程序之間的相互驗證的IC訪問驗證信息。在讀出器/寫 入器中,根據(jù)應(yīng)用程序?qū)⑺鯥C訪問驗證信息分類為多組,并且與所述組相關(guān)聯(lián)地保存組 驗證信息。當(dāng)通過控制器中的對應(yīng)應(yīng)用程序來請求讀出器/寫入器訪問IC模塊時,讀出器 /寫入器和對應(yīng)應(yīng)用程序使用組驗證信息相互驗證。僅僅當(dāng)相互驗證成功時,讀出器/寫入 器和IC模塊中的應(yīng)用程序才使用與組驗證信息相關(guān)聯(lián)的IC訪問驗證信息來相互驗證。如 果相互驗證成功,則讀出器/寫入器從IC模塊讀取信息或者向IC模塊寫入信息。根據(jù)前述配置,如果讀出器/寫入器與IC模塊中的應(yīng)用程序之間的相互驗證不成 功,則控制器不能經(jīng)由讀出器/寫入器訪問IC模塊。利用組驗證信息保護(hù)用于相互驗證的 IC訪問驗證信息。組驗證信息取決于根據(jù)在IC模塊中加載的應(yīng)用程序分類成多組的多條 IC訪問驗證信息中的每一條而變化。因此,即使使用一條組驗證信息執(zhí)行的、在控制器中的 任一個對應(yīng)應(yīng)用程序與讀出器/寫入器之間的相互驗證成功,對應(yīng)應(yīng)用程序也不能使用利 用任何其它組驗證信息保護(hù)的IC訪問驗證信息。因此,即使對于從加載了一個或多個應(yīng)用 程序的IC模塊中讀取信息或者向該IC模塊寫入信息,只要讀出器/寫入器和控制器使用 組驗證信息相互驗證,則讀出器/寫入器可實現(xiàn)在保證安全的情況下從加載了多個應(yīng)用程 序的IC模塊中讀取信息或者向該IC模塊寫入信息。為了解決前述問題,根據(jù)本發(fā)明的另一個實施例,提供了一種讀出器/寫入器,其 響應(yīng)從加載了與一個或多個應(yīng)用程序兼容的對應(yīng)應(yīng)用程序的控制器發(fā)布的指令,而從加載 了所述應(yīng)用程序的IC模塊讀取信息或者向該IC模塊寫入信息。該讀出器/寫入器包括 存儲器,其中存儲了與IC模塊中加載的應(yīng)用程序相關(guān)聯(lián)的、并分別用于驗證關(guān)聯(lián)的應(yīng)用程 序的一條或多條IC訪問驗證信息,并且在所述存儲器中存儲了與根據(jù)應(yīng)用程序?qū)⑺鯥C 訪問驗證信息分類成的組相關(guān)聯(lián)的組驗證信息;以及控制單元,其使用組驗證信息來驗證 在控制器中加載的對應(yīng)應(yīng)用程序,并且如果控制器中的對應(yīng)應(yīng)用程序的驗證成功,則控制 單元使用IC訪問驗證信息來驗證IC模塊中的應(yīng)用程序,其中所述IC訪問驗證信息屬于利 用用于所述成功驗證的組驗證信息所標(biāo)識的組。
4
根據(jù)該實施例,在IC模塊中加載一個或多個應(yīng)用程序,并且讀出器/寫入器持有 分別用于驗證相關(guān)聯(lián)的應(yīng)用程序的IC訪問驗證信息。在讀出器/寫入器中,根據(jù)應(yīng)用程序 將所述IC訪問驗證信息分類為組,并且與所述組相關(guān)聯(lián)地保存組驗證信息。當(dāng)控制器中的 對應(yīng)應(yīng)用程序請求讀出器/寫入器訪問IC模塊時,讀出器/寫入器使用組驗證信息來驗證 對應(yīng)應(yīng)用程序。僅僅當(dāng)驗證成功時,讀出器/寫入器允許對應(yīng)應(yīng)用程序使用與組驗證信息 相關(guān)聯(lián)的IC訪問驗證信息。根據(jù)前述配置,如果讀出器/寫入器沒有成功驗證IC模塊中加載的應(yīng)用程序,則 控制器不能經(jīng)由讀出器/寫入器訪問IC模塊。通過組驗證信息保護(hù)用于驗證的IC訪問驗 證信息。組驗證信息取決于根據(jù)在IC模塊中加載的應(yīng)用程序分類成組的每一條IC訪問驗 證信息而變化。因此,當(dāng)根據(jù)一個組驗證信息來驗證在控制器中加載的對應(yīng)應(yīng)用程序時,允 許該對應(yīng)應(yīng)用程序使用與該組驗證信息關(guān)聯(lián)的IC訪問驗證信息,但是不能使用由任何其 它組驗證信息保護(hù)的IC訪問驗證信息。因此,即使對于從加載了一個或多個應(yīng)用程序的IC 模塊中讀取信息或者向該IC模塊寫入信息,只要讀出器/寫入器使用組驗證信息驗證了控 制器,則讀出器/寫入器可實現(xiàn)在保證安全的情況下從加載了多個應(yīng)用程序的IC模塊中讀 取信息或者向該IC模塊寫入信息??膳c組相關(guān)聯(lián)地在不同區(qū)段中存儲所述IC訪問驗證信息。所述區(qū)段是對物理存 儲器進(jìn)行物理劃分而得到的存儲空間。控制單元可根據(jù)公用密鑰加密方法來執(zhí)行讀出器/寫入器和對應(yīng)應(yīng)用程序之間 的相互驗證。在這個情況中,組驗證信息可以是公用密鑰。根據(jù)該配置,可通過相互驗證強 化安全性。該控制單元可根據(jù)公用密鑰加密方法來執(zhí)行讀出器/寫入器與在IC模塊中加載 的應(yīng)用程序之間的相互驗證。在這個情況中,所述驗證信息可以是公用密鑰。根據(jù)該配置, 可通過相互驗證強化安全性。為了解決前述問題,根據(jù)本發(fā)明的又一個實施例,提供了一種允許計算機用作讀 出器/寫入器的計算機程序。該計算機程序被存儲在計算機中包括的存儲裝置中,由計算 機中包括的CPU來讀取并運行,從而該計算機程序允許計算機用作讀出器/寫入器。此外, 提供了一種其中記錄了計算機程序、并且可由計算機讀取的記錄介質(zhì)。該記錄介質(zhì)例如為 磁盤或者光盤。為了解決前述問題,根據(jù)本發(fā)明的又一個實施例,提供了一種將在讀出器/寫入 器中實現(xiàn)的驗證方法,其中該讀出器/寫入器響應(yīng)從加載了與應(yīng)用程序兼容的對應(yīng)應(yīng)用程 序的控制器發(fā)布的指令,來從其中加載了一個或多個應(yīng)用程序的IC模塊讀取信息或者向 該IC模塊寫入信息。在該驗證方法中,該讀出器/寫入器包括存儲器,其中存儲了與IC模 塊中加載的應(yīng)用程序相關(guān)聯(lián)的、并分別用于驗證關(guān)聯(lián)的應(yīng)用程序的一條或多條IC訪問驗 證信息,并且在所述存儲器中存儲了與根據(jù)應(yīng)用程序?qū)⑺鯥C訪問驗證信息分類成的組 相關(guān)聯(lián)的組驗證信息。該驗證方法包括以下步驟從控制器中加載的對應(yīng)應(yīng)用程序接收用 于向IC模塊寫入信息或從IC模塊讀取信息的請求;使用組驗證信息來驗證對應(yīng)應(yīng)用程序; 如果驗證成功,則使用屬于利用用于所述成功驗證的組驗證信息所標(biāo)識的組的IC訪問驗 證信息,驗證IC模塊中的應(yīng)用程序。如上所述,根據(jù)本發(fā)明的實施例,提供了一種通信系統(tǒng)、讀出器/寫入器、驗證方
5法、和計算機程序,其使得一個讀出器/寫入器能夠在保證安全的情況下從加載了多個應(yīng) 用程序的IC模塊中讀取信息或者向該IC模塊寫入信息。
將根據(jù)接下來的圖來詳細(xì)描述本發(fā)明的實施例,其中圖1是示出根據(jù)本發(fā)明的實施例的讀出器/寫入器的功能配置的框圖;圖2是描述根據(jù)實施例的要在通信系統(tǒng)中實現(xiàn)的驗證方法的流程圖;圖3是描述根據(jù)實施例的要在讀出器/寫入器中實現(xiàn)的驗證方法的流程圖;以及圖4是描述根據(jù)實施例的驗證方法的流程圖。
具體實施例方式參考附圖,下面將描述本發(fā)明的優(yōu)選實施例。順便提及,在本說明書和圖中,相同 的附圖標(biāo)記將被分配給實際上具有相同功能的組件,并將省略其重復(fù)描述。將描述根據(jù)本發(fā)明的通信系統(tǒng),其適合于通信系統(tǒng)100,包括IC模塊106,其中加 載了多個應(yīng)用程序;控制器102,其中加載了與IC模塊106中的各個應(yīng)用程序兼容的對應(yīng) 應(yīng)用程序;以及讀出器/寫入器104,其受控制器102控制,并從IC模塊106讀取信息或者 向IC模塊106寫入信息。<通信系統(tǒng)的整體配置>首先,將結(jié)合圖1描述通信系統(tǒng)100的整體配置。通信系統(tǒng)100包括控制器102、 讀出器/寫入器104、和IC模塊106。控制器102是控制讀出器/寫入器的計算機。在控制器102中加載了與在IC模 塊106中加載的應(yīng)用程序兼容的一個或多個對應(yīng)應(yīng)用程序。每個對應(yīng)應(yīng)用程序經(jīng)由在IC 模塊中加載的兼容應(yīng)用程序而向IC模塊寫入信息或者從IC模塊讀取信息。每個應(yīng)用程序 請求讀出器/寫入器104從IC模塊讀取信息或者向IC模塊寫入信息,并命令讀出器/寫 入器104從IC模塊讀取信息或者向IC模塊寫入信息。順便提及,在控制器102中可包括 專用于將由應(yīng)用程序共同執(zhí)行的處理的公用庫(common library),諸如后面描述的發(fā)送請 求到讀出器/寫入器104或者相互驗證,從而可以由應(yīng)用程序使用該公用庫。讀出器/寫入器104響應(yīng)從控制器102發(fā)布的請求,而向IC模塊106寫入信息或 者從IC模塊106讀取信息。具體地,讀出器/寫入器104從在控制器102中加載的對應(yīng)應(yīng) 用程序接收用于從IC模塊106讀取信息或者向IC模塊106寫入信息的請求,并經(jīng)由與從 其接收該請求的對應(yīng)應(yīng)用程序兼容的、并在IC模塊106中加載的應(yīng)用程序,而從IC模塊讀 取信息或者向該IC模塊寫入信息。該IC模塊106是在例如IC卡或者便攜式蜂窩電話的移動設(shè)備中加載的IC芯片 等,并且讀出器/寫入器104從IC模塊106讀取信息或者向IC模塊106寫入信息。在本 實施例中,IC模塊106通過無線電與讀出器/寫入器104通信,并從其中讀取信息或者寫入 信息到其中。該無線電通信被認(rèn)為是基于例如近場通信(NFC)標(biāo)準(zhǔn)的非接觸通信。由于手 動標(biāo)識通信方,因此將NFC施加到大約IOcm的相對窄范圍,并因此具有較好的安全性。在 IC模塊106中加載了一個或多個應(yīng)用程序。每個應(yīng)用程序經(jīng)由讀出器/寫入器104而從在 控制器102中加載的對應(yīng)應(yīng)用程序接收讀取或者寫入請求,并讀取或更新信息。
控制器102和讀出器/寫入器104、以及讀出器/寫入器104和IC模塊106相互 驗證。對于控制器102和讀出器/寫入器104之間的相互驗證,當(dāng)讀出器/寫入器104從 IC模塊106讀取信息或者向IC模塊106寫入信息時,讀出器/寫入器104和已經(jīng)請求讀取 或?qū)懭胄畔⒌膶?yīng)應(yīng)用程序相互驗證。對于讀出器/寫入器104和IC模塊106之間的相 互驗證,讀出器/寫入器104和在IC芯片中加載的并實際上讀取或?qū)懭隝C芯片內(nèi)的信息 的應(yīng)用程序相互驗證。讀出器/寫入器104持有將用于在IC模塊106中加載的各個應(yīng)用程序和讀出器 /寫入器之間的相互驗證的多條IC訪問驗證信息。在本實施例中,讀出器/寫入器104和 在IC模塊106中加載的每個應(yīng)用程序根據(jù)公用密鑰加密方法而相互驗證。所述IC訪問驗 證信息應(yīng)該是用作公用密鑰的密鑰信息。此外,讀出器/寫入器104和在控制器102中加載的對應(yīng)應(yīng)用程序相互驗證。僅 僅當(dāng)相互驗證成功時,讀出器/寫入器104才響應(yīng)從對應(yīng)應(yīng)用程序發(fā)布的請求而從IC芯片 讀取信息或者向IC芯片寫入信息。這樣,防止了對IC芯片的哄騙或欺詐訪問,從而保證安 全性。然而,如果允許在其本身和讀出器/寫入器之間的相互訪問已經(jīng)成功的對應(yīng)應(yīng)用程 序訪問除了與對應(yīng)應(yīng)用程序兼容并加載在IC模塊106中的應(yīng)用程序之外的應(yīng)用程序,則不 能保證安全性。因此,在讀出器/寫入器104中,根據(jù)相關(guān)聯(lián)的應(yīng)用程序而將用于讀出器/ 寫入器和在IC模塊中加載的各個應(yīng)用程序之間的相互驗證的密鑰信息按組進(jìn)行分類,并 逐組地進(jìn)行管理。這樣,避免了前述的問題。后面將進(jìn)行描述。迄今為止已經(jīng)描述了通信系統(tǒng)100的整體配置。接下來,將結(jié)合圖1分別描述控 制器102、讀出器/寫入器104和IC模塊106的功能配置。<控制器的功能配置>首先,下面將描述控制器102的功能配置??刂破?02包括多個對應(yīng)應(yīng)用程序,諸
如對應(yīng)應(yīng)用程序A 110、對應(yīng)應(yīng)用程序B 112、......、和對應(yīng)應(yīng)用程序Z 114。各個對應(yīng)應(yīng)
用程序分別與在IC模塊106中存儲的應(yīng)用程序A、應(yīng)用程序B........應(yīng)用程序Z兼容。
各個對應(yīng)應(yīng)用程序經(jīng)由所述兼容應(yīng)用程序而從IC模塊106讀取信息或者向IC模塊106寫 入fe息。更具體地,假設(shè)IC模塊106中的應(yīng)用程序A是例如為了電子結(jié)算而設(shè)計的應(yīng)用 程序,則對應(yīng)應(yīng)用程序A經(jīng)由應(yīng)用程序A讀取在IC模塊106中存儲的電子貨幣的余額 (balance),從讀取的余額中減去價格,并經(jīng)由應(yīng)用程序A將所述差值寫入到IC模塊106 中。此外,假設(shè)IC模塊106中的應(yīng)用程序B是用于累加商店所提供的服務(wù)點的應(yīng)用程序, 則對應(yīng)應(yīng)用程序B經(jīng)由應(yīng)用程序B而讀取在IC模塊106中存儲的服務(wù)點的當(dāng)前數(shù)目,將新 獲得的服務(wù)點數(shù)目相加到所讀取的服務(wù)點數(shù)目上,并經(jīng)由應(yīng)用程序B而將所述相加和寫入 到IC模塊106中。對應(yīng)應(yīng)用程序包括相互不同的驗證密鑰。在圖1所示的示例中,對應(yīng)應(yīng)用程序A 包括驗證密鑰A 1100,對應(yīng)應(yīng)用程序B包括驗證密鑰B 1120,以及對應(yīng)應(yīng)用程序Z包括驗 證密鑰Z 1140。驗證密鑰A 1100、驗證密鑰B 1120、和驗證密鑰Z 1140彼此不同。所述驗 證密鑰是各個應(yīng)用程序所擁有的、用于各個應(yīng)用程序和讀出器/寫入器104之間的相互驗 證的驗證信息。在本實施例中,根據(jù)公用密鑰加密方法來實現(xiàn)在控制器102中的各個對應(yīng) 應(yīng)用程序與讀出器/寫入器104之間的相互驗證。所以,該驗證密鑰被認(rèn)為是各個應(yīng)用程序與讀出器/寫入器104共享的公用密鑰。如后面提及的,讀出器/寫入器104包括分別
與驗證密鑰A、驗證密鑰B........和驗證密鑰Z對應(yīng)的驗證密鑰。每個應(yīng)用程序使用它自
己的驗證密鑰來實現(xiàn)在它自己和讀出器/寫入器104之間的相互驗證。<讀出器/寫入器的功能配置>接下來,下面將描述讀出器/寫入器104的功能配置。如圖1所示,讀出器/寫入 器104主要包括上級裝置接口 120、加密單元122、電源128、控制單元130、射頻(RF)電路 132、天線134、和存儲器136。上級裝置接口 120向控制器102發(fā)送信息或者從控制器102接收信息。例如,上級 裝置接口 120從控制器102接收用于從IC模塊讀取信息或者向IC模塊寫入信息的請求。 上級裝置接口 120發(fā)送或接收用于讀出器/寫入器和控制器102之間的相互驗證的數(shù)據(jù)。加密單元122產(chǎn)生或解密密文。加密單元122包括隨機數(shù)發(fā)生器124和密碼引擎 126。加密單元122允許密碼引擎26使用存儲在存儲器136中的驗證密鑰或密鑰信息來加 密由隨機數(shù)發(fā)生器124生成的隨機數(shù),并從而產(chǎn)生密文。此外,加密單元122允許密碼引擎 126使用驗證密鑰或者密鑰信息對密文進(jìn)行解密,并從而解密所述密文。電源128對讀出器/寫入器104供電。存儲器136是非易失性存儲裝置。在存儲器136中存儲了用于讀出器/寫入器和 控制器102之間的相互驗證的驗證密鑰、和用于讀出器/寫入器和IC模塊106之間的相互 驗證的密鑰信息。存儲器136包括多個區(qū)段,其是將存儲器物理劃分成的存儲空間。由控制 單元130管理這些區(qū)段??刂茊卧?30可改變構(gòu)成存儲器136的區(qū)段數(shù)目、或者可在各個 區(qū)段中存儲的密鑰信息條數(shù)。根據(jù)在IC模塊106中加載的應(yīng)用程序而將在存儲器136中 存儲的多條密鑰信息按組進(jìn)行分類。順便提及,使用相應(yīng)密鑰信息而相互驗證讀出器/寫 入器和應(yīng)用程序。將所述各組密鑰信息存儲在不同的區(qū)段中。此外,與存儲器136中的各 組相關(guān)聯(lián)地存儲作為組驗證信息的示例的驗證密鑰。下面將結(jié)合圖1所示的示例進(jìn)行具體 描述。存儲器136包括多個區(qū)段,諸如區(qū)段A 138、區(qū)段B 140、......、和區(qū)段Z 142。
多條密鑰信息和驗證密鑰被包含在每個區(qū)段中。組A 1382的多條密鑰信息(即,密鑰信息
la、密鑰信息Ib........和密鑰信息Iz)被存儲在區(qū)段A 138中。組A與在IC模塊106
中包括的存儲器164中存儲的應(yīng)用程序A相關(guān)聯(lián)。在區(qū)段A 138中存儲的所述多條密鑰信
息la、lb........Iz是用于讀出器/寫入器和在IC模塊106中加載的應(yīng)用程序之間的相
互驗證的公用密鑰。也將驗證密鑰A 1380存儲在區(qū)段A 138中??刂茊卧?30使用驗證密鑰A 1380 來判決是否應(yīng)該允許控制器102使用區(qū)段A中的多條密鑰信息。驗證密鑰A 1380被認(rèn)為 是與在控制器102中加載的對應(yīng)應(yīng)用程序A 110中持有的驗證密鑰A 1100對應(yīng)的公用密 鑰??刂茊卧?30使用驗證密鑰A 1380,用于對應(yīng)應(yīng)用程序A 110和讀出器/寫入器之間 的相互驗證。如果相互驗證成功,則控制單元130允許對應(yīng)應(yīng)用程序A 110使用在區(qū)段A 中存儲的多條密鑰信息。當(dāng)允許對應(yīng)應(yīng)用程序A 110使用區(qū)段138中的多條密鑰信息時,對應(yīng)應(yīng)用程序A 110允許讀出器/寫入器104和IC模塊106中的應(yīng)用程序A使用組A1382的多條密鑰信息 來相互驗證,并從而經(jīng)由讀出器/寫入器104來訪問應(yīng)用程序A。
8
另一方面,不允許既不包括驗證密鑰B也不包括驗證密鑰Z的對應(yīng)應(yīng)用程序A 110 來使用在區(qū)段B 140或者區(qū)段Z 142中存儲的多條密鑰信息。因此,對應(yīng)應(yīng)用程序A 110 不能經(jīng)由讀出器/寫入器104來訪問IC模塊106中的應(yīng)用程序B。同樣,控制器102中的 對應(yīng)應(yīng)用程序B 112包括驗證密鑰B 1120,并因此通過基于在區(qū)段B 140中存儲的驗證密 鑰B 1400的相互驗證,而被允許使用在區(qū)段B 140中存儲的密鑰信息組1402。因此,對應(yīng) 應(yīng)用程序B 112可以經(jīng)由讀出器/寫入器104來訪問在IC模塊106中的應(yīng)用程序B 168。 然而,由于對應(yīng)應(yīng)用程序B 112既不包括驗證密鑰A也不包括驗證密鑰Z,所以對應(yīng)應(yīng)用程 序B 112不能訪向IC模塊106中的應(yīng)用程序A。如上所述,用于讀出器/寫入器和IC模塊106中的各個應(yīng)用程序之間的相互驗證 的密鑰信息項被分類成多組,并存儲在區(qū)段中。與各組多條密鑰信息(在各個區(qū)段中)相 關(guān)聯(lián)地存儲不同的驗證密鑰。因此,可以控制訪問,使得僅包括對應(yīng)驗證密鑰的對應(yīng)應(yīng)用程 序可以訪問IC模塊106中的應(yīng)用程序。控制單元130控制整個讀出器/寫入器104。具體地,控制單元130使用在存儲器 136中存儲的驗證密鑰來執(zhí)行在讀出器/寫入器和控制器102之間的相互驗證。此外,控制 單元130使用在存儲器136中存儲的密鑰信息來執(zhí)行在讀出器/寫入器和IC模塊106之 間的相互驗證。特別地,當(dāng)控制單元130經(jīng)由上級裝置接口 120而從控制器102接收用于 從IC模塊106讀取信息或者向IC模塊106寫入信息的請求時,控制單元130執(zhí)行在讀出 器/寫入器和作為請求源的控制器102中的對應(yīng)應(yīng)用程序之間的相互驗證。如果相互驗證 成功,則控制單元130允許驗證已經(jīng)成功的對應(yīng)應(yīng)用程序來使用在利用用于相互驗證的驗 證密鑰所標(biāo)識的區(qū)段中存儲的密鑰信息??刂茊卧?30接收從被允許使用所述密鑰信息的 對應(yīng)應(yīng)用程序發(fā)布的請求,并接著使用所述密鑰信息來執(zhí)行對應(yīng)應(yīng)用程序和在IC模塊106 中的應(yīng)用程序之間的相互驗證??刂茊卧?30然后經(jīng)由應(yīng)用程序而從IC模塊106讀取信 息或者向該IC模塊106寫入信息。如上所述,控制單元130根據(jù)公用密鑰加密方法來執(zhí)行在讀出器/寫入器和控制 器102以及在讀出器/寫入器和IC模塊106之間的相互驗證。特別地,對于讀出器/寫入 器和控制器102之間的相互驗證,控制單元130命令隨機數(shù)發(fā)生器124生成隨機數(shù),命令密 碼引擎126使用在存儲器136中存儲的任何驗證密鑰來加密隨機數(shù),并經(jīng)由上級裝置接口 120來發(fā)送已加密的隨機數(shù)到控制器102??刂破?02使用對應(yīng)的驗證密鑰來解密所接收的 隨機數(shù),使用驗證密鑰來加密已解密的隨機數(shù),并將作為結(jié)果生成的隨機數(shù)返回到讀出器/ 寫入器104。讀出器/寫入器104中的控制單元130命令密碼引擎126使用用于加密的驗 證密鑰來解密所返回的隨機數(shù)。如果隨機數(shù)發(fā)生器124所生成的隨機數(shù)與已解密的隨機數(shù) 一致,則控制單元130認(rèn)為驗證成功。當(dāng)控制器120驗證讀出器/寫入器104時,控制單元經(jīng)由上級裝置接口 120接收隨 機數(shù),該隨機數(shù)是由控制器120生成并使用在任何對應(yīng)應(yīng)用程序中持有的驗證密鑰而加密 的??刂茊卧?30命令加密引擎126使用在區(qū)段中存儲的、并與被分配到對應(yīng)應(yīng)用程序的 驗證密鑰對應(yīng)的驗證密鑰,來解密所接收的隨機數(shù)??刂茊卧?30命令密碼引擎126使用 與用于解密的驗證密鑰相同的驗證密鑰來加密已解密的隨機數(shù),并經(jīng)由上級裝置接口 120 而將作為結(jié)果生成的隨機數(shù)返回到控制器102??刂破?02解密或者核對該隨機數(shù),從而驗 證讀出器/寫入器104。
9
此外,對于讀出器/寫入器和IC模塊106之間的相互驗證,控制單元130命令隨 機數(shù)發(fā)生器124生成隨機數(shù),命令密碼引擎126使用在存儲器136中存儲的任何密鑰信息 來加密該隨機數(shù),并經(jīng)由RF電路132和天線134而將已加密的隨機數(shù)發(fā)送到IC模塊106。 IC模塊106使用對應(yīng)的密鑰信息解密所接收的隨機數(shù),使用相同的密鑰信息加密已解密的 隨機數(shù),并然后將作為結(jié)果生成的隨機數(shù)返回到讀出器/寫入器104。讀出器/寫入器104 中的控制單元130命令密碼引擎126使用用于加密的密鑰信息來解密所返回的隨機數(shù)。如 果已解密的隨機數(shù)與隨機數(shù)發(fā)生器124所生成的隨機數(shù)一致,則控制單元130認(rèn)為加密成 功。當(dāng)由IC模塊106驗證讀出器/寫入器104時,控制單元130實際上起到與當(dāng)由控制器 102驗證讀出器/寫入器104時類似的作用。唯一不同之處在于將用于解密或加密從IC模 塊106接收的隨機數(shù)的密鑰不是驗證密鑰而是密鑰信息。由于前述配置,當(dāng)讀出器/寫入器104從在控制器102中加載的對應(yīng)應(yīng)用程序接 收用于從IC模塊106讀取信息或者向IC模塊106寫入信息的請求時,讀出器/寫入器104 使用被分配給在IC模塊106中加載的每個應(yīng)用程序的驗證密鑰,來執(zhí)行其自身和對應(yīng)應(yīng)用 程序之間的相互驗證。如果相互驗證成功,則讀出器/寫入器104允許控制器102中的其驗 證已經(jīng)成功的對應(yīng)應(yīng)用程序來訪問向其分配了用于相互驗證的驗證密鑰的IC模塊106中 的應(yīng)用程序。讀出器/寫入器104然后響應(yīng)從對應(yīng)應(yīng)用程序發(fā)布的請求,而從IC模塊106 讀取信息或者向IC模塊106寫入信息。由于該配置,讀出器/寫入器104防止控制器102 中的對應(yīng)應(yīng)用程序訪問IC模塊106中的除了與對應(yīng)應(yīng)用程序兼容的應(yīng)用程序之外的應(yīng)用 程序。從而,保證了安全性。<IC模塊的功能配置〉接下來,下面將描述IC模塊106的功能配置。如圖1所示,IC模塊106主要包括 天線150、RF電路152、加密單元154、電壓調(diào)整器160、控制單元162、和存儲器164。加密單元154包括隨機數(shù)發(fā)生器156和密碼引擎158。隨機數(shù)發(fā)生器156和密碼 引擎158分別與在讀出器/寫入器104中包括的隨機數(shù)發(fā)生器124和密碼引擎126具有相 同的功能。將省略該重復(fù)描述。電壓調(diào)整器160調(diào)整將施加到控制單元162上的電壓。存儲器164是非易失性存儲裝置。在該存儲器164中存儲了用于IC模塊和讀出 器/寫入器104之間的相互驗證的密鑰信息、和與各條密鑰信息相關(guān)聯(lián)的用戶數(shù)據(jù)項。下 面將結(jié)合圖1所示的示例來進(jìn)行具體描述。在存儲器164中存儲了一個或多個應(yīng)用程序。在存儲器164中存儲了各個應(yīng)用程 序?qū)⑹褂玫挠脩魯?shù)據(jù)項和與該用戶數(shù)據(jù)項相關(guān)聯(lián)的密鑰信息。在圖1所示示例中,在存儲 器164中存儲了兩個應(yīng)用程序,即應(yīng)用程序A 166和應(yīng)用程序B 168。由控制單元162讀取 并運行這些應(yīng)用程序。假設(shè)例如應(yīng)用程序A是為電子結(jié)算設(shè)計的應(yīng)用程序,則應(yīng)用程序A 持有用戶數(shù)據(jù)項1662,每一用戶數(shù)據(jù)項表示例如貨幣的余額或可用上限量。應(yīng)用程序A響 應(yīng)經(jīng)由讀出器/寫入器104從控制器102中加載的對應(yīng)應(yīng)用程序A發(fā)布的請求,而讀取或
更新任何用戶數(shù)據(jù)1662。多條固有密鑰信息la、lb........和Iz與各個用戶數(shù)據(jù)項相關(guān)
聯(lián),并在讀取或更新各個用戶數(shù)據(jù)項時,用于控制單元162所執(zhí)行的IC模塊和讀出器/寫 入器104之間的相互驗證。控制單元162控制整個IC模塊106。具體地,控制單元162執(zhí)行IC模塊和讀出器/寫入器104之間的相互驗證。此外,控制單元162響應(yīng)從其驗證已經(jīng)成功并且其已經(jīng) 成功地進(jìn)行了驗證的讀出器/寫入器104發(fā)布的指令,而讀取或更新在存儲器164中存儲 的任何用戶數(shù)據(jù)。到此為止,已經(jīng)描述了根據(jù)本實施例的分別包括在通信系統(tǒng)100中的控制器102、 讀出器/寫入器104、和IC模塊106的功能配置。接下來,將結(jié)合圖2至圖4描述在根據(jù)本 實施例的通信系統(tǒng)100中實現(xiàn)的驗證方法。<通信系統(tǒng)100中的驗證流程>參考圖2,下面將描述在通信系統(tǒng)100中執(zhí)行的驗證流程或處理。首先,IC模塊 106或者控制器102選擇作為要驗證的實體的應(yīng)用程序或?qū)?yīng)應(yīng)用程序(未示出)。具體 地,假設(shè)IC模塊106是例如在包括輸入單元的便攜式移動電話中合并的IC芯片,用戶操縱 輸入單元,以便選擇并啟動應(yīng)用程序。否則,用戶操作控制器102,以從多個對應(yīng)應(yīng)用程序中 選擇特定的一個對應(yīng)應(yīng)用程序,并啟動該對應(yīng)應(yīng)用程序。假設(shè)IC模塊106被放在具有在IC模塊106或者控制器102處選擇的特定應(yīng)用程 序(對應(yīng)應(yīng)用程序)的讀出器/寫入器104上,則IC模塊106接近于其中IC模塊106可 與讀出器/寫入器104進(jìn)行通信的通信范圍。在這個狀態(tài)中,控制器102請求讀出器/寫 入器104訪問IC模塊106 (S100)。讀出器/寫入器104使用已選擇的對應(yīng)應(yīng)用程序所固有的驗證密鑰來驗證該對應(yīng) 應(yīng)用程序(S102)。控制器102使用已選擇的對應(yīng)應(yīng)用程序所固有的驗證密鑰來驗證讀出器 /寫入器104(S104)。如果讀出器/寫入器104和控制器102 二者驗證成功,則控制器102 命令讀出器/寫入器104執(zhí)行讀出器/寫入器和IC模塊106中的特定用戶數(shù)據(jù)之間的相 互驗證(S106)。讀出器/寫入器104使用在區(qū)段中存儲的、用在步驟S102中使用的驗證密鑰標(biāo)識 的密鑰信息,來驗證所命令的用戶數(shù)據(jù)(S108)。IC模塊106使用密鑰信息來驗證讀出器/ 寫入器104(SllO)。讀出器/寫入器104向控制器102通知驗證結(jié)果(S112)。如果讀出器/寫入器104和IC模塊106 二者都驗證成功,則控制器102命令讀出 器/寫入器104訪問(讀取或?qū)懭?其驗證已成功的用戶數(shù)據(jù)(S114)。讀出器/寫入器 104響應(yīng)所述命令而讀取或?qū)懭朐贗C模塊106中存儲的用戶數(shù)據(jù)(S116)。<由讀出器/寫入器進(jìn)行的驗證>接下來,將結(jié)合圖3描述讀出器/寫入器104執(zhí)行的驗證流程或處理。首先,讀出 器/寫入器104從在控制器102中加載的任何對應(yīng)應(yīng)用程序接收用于訪問IC模塊106的請 求(S200)。響應(yīng)該請求,讀出器/寫入器104執(zhí)行它本身和作為請求源的對應(yīng)應(yīng)用程序之 間的相互驗證(S202)。讀出器/寫入器104判決所述相互驗證是否已經(jīng)成功(S204)。如 果相互驗證失敗,則處理終止。另一方面,如果相互驗證成功,則讀出器/寫入器104和IC 模塊106中的與對應(yīng)應(yīng)用程序兼容的應(yīng)用程序相互驗證(S206)。更具體地,讀出器/寫入 器104驗證應(yīng)用程序?qū)⑹褂玫挠脩魯?shù)據(jù),而IC模塊106驗證讀出器/寫入器,以便判決是 否授予讀出器/寫入器用于訪問用戶數(shù)據(jù)的訪問權(quán)(讀出器/寫入器是否具有對應(yīng)的密鑰 信息)。讀出器/寫入器104判決相互驗證是否已經(jīng)成功(S208)。如果相互驗證失敗,則 該處理終止。另一方面,如果相互驗證成功,則讀出器/寫入器104響應(yīng)從在控制器102中 加載的對應(yīng)應(yīng)用程序發(fā)布的請求,而從IC模塊106讀取信息或者向其寫入信息(S210)。
<控制器和讀出器/寫入器之間的驗證>接下來,將結(jié)合圖4描述將在控制器102和讀出器/寫入器104之間執(zhí)行的驗證 的詳細(xì)流程或處理。圖4描述了讀出器/寫入器104驗證在控制器102中加載的對應(yīng)應(yīng)用 程序A 110的處理。首先,讀出器/寫入器104生成隨機數(shù)(S300)。此后,讀出器/寫入器104使用在 存儲器136中存儲的驗證密鑰A 1380來加密所生成的隨機數(shù)(S302),并將已加密的隨機數(shù) 發(fā)送到控制器102(S304)??刂破魇褂迷趯?yīng)應(yīng)用程序A 110中持有的驗證密鑰A 1100來解密已接收的隨 機數(shù)(S306)。此后,控制器102使用驗證密鑰A 1100來加密已解密的隨機數(shù)(S308),并將 已加密的隨機數(shù)發(fā)送到讀出器/寫入器104(S310)。讀出器/寫入器104使用在存儲器136中存儲的驗證密鑰A 1380來解密已接收的 隨機數(shù)(S312)。此后,讀出器/寫入器104比較在步驟S312解密的隨機數(shù)和在步驟S300 生成的隨機數(shù)(S314)。如果比較結(jié)果證明這兩個隨機數(shù)彼此一致,則讀出器/寫入器104 認(rèn)為控制器102中的對應(yīng)應(yīng)用程序A 110可信,并判決該驗證已經(jīng)成功??刂破?02驗證讀出器/寫入器104的處理是通過用控制器102執(zhí)行的上述處理 來代替圖4中描述的由讀出器/寫入器執(zhí)行的處理來實現(xiàn)的。因此將省略描述。已經(jīng)描述 了在通信系統(tǒng)100中實現(xiàn)的驗證方法。如上所述,根據(jù)依照本實施例的通信系統(tǒng)100、讀出器/寫入器104、以及驗證方 法,讀出器/寫入器104防止在控制器102中加載的任何對應(yīng)應(yīng)用程序去訪問IC模塊106 中存在的除了與對應(yīng)應(yīng)用程序兼容的應(yīng)用程序之外的應(yīng)用程序。從而,保證了安全性。此外,在讀出器/寫入器104中,由于其中存儲了各條密鑰信息的存儲空間(區(qū) 段)是彼此獨立的,所以可安全地保持被分配給多個應(yīng)用程序的密鑰信息。此外,排除了包括多個讀出器/寫入器的必要性。與結(jié)合多個應(yīng)用程序來配置不 同通信系統(tǒng)的情況相比,可減少系統(tǒng)配置和維護(hù)所需要的成本。此外,即使當(dāng)需要通信系統(tǒng)與新應(yīng)用程序兼容時,也不需要新增加其中存儲了被 分配給應(yīng)用程序的密鑰信息的裝置。這改善了系統(tǒng)的可擴(kuò)展性。參考附圖,至此已描述了本發(fā)明的優(yōu)選實施例。勿庸置疑的是,本發(fā)明不限于這些 實施例。本領(lǐng)域的普通技術(shù)人員將明顯能夠想出在權(quán)利要求所限定的范圍內(nèi)的各種變形或 改變。應(yīng)該承認(rèn)這些變形或改變都屬于本發(fā)明所屬的技術(shù)領(lǐng)域。例如,在前述實施例中,控制器102和讀出器/寫入器104、以及讀出器/寫入器 104和IC模塊106相互驗證。然而,本發(fā)明不限于這個示例。例如,對于控制器102和讀出 器/寫入器104,控制器102可單向驗證讀出器/寫入器104。對于讀出器/寫入器104和 IC模塊106,IC模塊106可單向驗證讀出器/寫入器104。本領(lǐng)域的技術(shù)人員應(yīng)該理解,根據(jù)設(shè)計需要和其它因素,可出現(xiàn)各種改變、組合、 子組合、和替換,只要它們在所附權(quán)利要求或其等效的范圍內(nèi)即可。
1權(quán)利要求
一種通信系統(tǒng),包括IC模塊,其中加載了一個或多個應(yīng)用程序;控制器,其中加載了與所述應(yīng)用程序兼容的對應(yīng)應(yīng)用程序;以及讀出器/寫入器,其響應(yīng)從該控制器發(fā)布的指令而從IC模塊讀取信息或者向IC模塊寫入信息,其中該讀出器/寫入器包括存儲器,其中存儲了與IC模塊中加載的應(yīng)用程序相關(guān)聯(lián)的、并分別用于讀出器/寫入器與相關(guān)聯(lián)的應(yīng)用程序之間的相互驗證的一條或多條IC訪問驗證信息,并且在所述存儲器中存儲了與根據(jù)應(yīng)用程序?qū)⑺鯥C訪問驗證信息分類成的組相關(guān)聯(lián)的組驗證信息;以及當(dāng)通過控制器中的任何對應(yīng)應(yīng)用程序來請求讀出器/寫入器向IC模塊寫入信息或者從IC模塊讀取信息時,所述讀出器/寫入器和對應(yīng)應(yīng)用程序使用所述組驗證信息而相互驗證;如果相互驗證成功,則所述讀出器/寫入器和IC模塊中的應(yīng)用程序使用IC訪問驗證信息來相互驗證,其中所述IC訪問驗證信息屬于利用用于所述成功相互驗證的組驗證信息所標(biāo)識的組。
2.一種讀出器/寫入器,其響應(yīng)從加載了與一個或多個應(yīng)用程序兼容的對應(yīng)應(yīng)用程序 的控制器發(fā)布的指令,而從加載了所述應(yīng)用程序的IC模塊讀取信息或者向該IC模塊寫入 信息,包括存儲器,其中存儲了與IC模塊中加載的應(yīng)用程序相關(guān)聯(lián)的、并分別用于驗證關(guān)聯(lián)的應(yīng) 用程序的一條或多條IC訪問驗證信息,并且在所述存儲器中存儲了與根據(jù)應(yīng)用程序?qū)⑺?述IC訪問驗證信息分類成的組相關(guān)聯(lián)的組驗證信息;以及控制單元,其使用組驗證信息來驗證在所述控制器中加載的對應(yīng)應(yīng)用程序,并且如果 控制器中的對應(yīng)應(yīng)用程序的驗證成功,則控制單元使用IC訪問驗證信息來驗證IC模塊中 的應(yīng)用程序,其中所述IC訪問驗證信息屬于利用用于所述成功驗證的組驗證信息所標(biāo)識 的組。
3.根據(jù)權(quán)利要求2的讀出器/寫入器,其中所述IC訪問驗證信息被逐組地存儲在不同 的區(qū)段中。
4.根據(jù)權(quán)利要求2的讀出器/寫入器,其中控制單元根據(jù)公用密鑰加密方法來執(zhí)行在 所述讀出器/寫入器和對應(yīng)應(yīng)用程序之間的相互驗證,并且所述組驗證信息是公用密鑰。
5.根據(jù)權(quán)利要求2的讀出器/寫入器,其中該控制單元根據(jù)公用密鑰加密方法執(zhí)行讀 出器/寫入器與IC模塊中的應(yīng)用程序之間的相互驗證,并且所述IC驗證信息是公用密鑰。
6.一種在讀出器/寫入器中實現(xiàn)的驗證方法,其中該讀出器/寫入器響應(yīng)從加載了與 一個或多個應(yīng)用程序兼容的對應(yīng)應(yīng)用程序的控制器發(fā)布的指令,來從其中加載了所述應(yīng)用 程序的IC模塊讀取信息或者向該IC模塊寫入信息,包括以下步驟從控制器中的對應(yīng)應(yīng)用程序接收用于向IC模塊寫入信息或從IC模塊讀取信息的請求;使用組驗證信息來驗證對應(yīng)應(yīng)用程序;如果驗證成功,則使用屬于利用用于所述成功驗證的組驗證信息所標(biāo)識的組的IC訪 問驗證信息,驗證IC模塊中的應(yīng)用程序,其中所述讀出器/寫入器包括存儲器,其中存儲了與IC模塊中加載的應(yīng)用程序相關(guān)聯(lián)的、 并分別用于驗證相關(guān)聯(lián)的應(yīng)用程序的一條或多條IC訪問驗證信息,并且在所述存儲器中 存儲了與根據(jù)應(yīng)用程序?qū)⑺鯥C訪問驗證信息分類成的組相關(guān)聯(lián)的組驗證信息。
全文摘要
公開了一種通信系統(tǒng)、讀出器/寫入器和驗證方法,讀出器/寫入器響應(yīng)從加載了與應(yīng)用程序兼容的對應(yīng)應(yīng)用程序的控制器發(fā)布的指令,來從加載了一個或多個應(yīng)用程序的IC模塊讀取信息或者向該IC模塊寫入信息,該讀出器/寫入器包括存儲器,其中存儲了與IC模塊中加載的應(yīng)用程序相關(guān)聯(lián)的、并分別用于驗證關(guān)聯(lián)的應(yīng)用程序的一條或多條IC訪問驗證信息,并且其中與根據(jù)應(yīng)用程序?qū)⑺鯥C訪問驗證信息分類成的組相關(guān)聯(lián)地存儲組驗證信息;以及控制單元,其使用組驗證信息來驗證對應(yīng)應(yīng)用程序。
文檔編號G07F7/10GK101923746SQ20101016732
公開日2010年12月22日 申請日期2006年12月27日 優(yōu)先權(quán)日2005年12月27日
發(fā)明者內(nèi)田則夫, 半田實, 栗田太郎 申請人:飛力凱網(wǎng)路股份有限公司