説明

カード型記憶媒体のデータをキャッシュするコンピュータシステムおよびキャッシュ方法

【課題】 カード型記憶媒体に記憶され、前記コンピュータにキャッシュされたデータの有効性を容易に確認できるコンピュータシステムを提供する。
【解決手段】 ICカード1内には、キャッシュされるICデータ101、チェックファイル認証データ121およびチェックファイル認証データ121の認証に成功したときのみアクセスできるチェックデータ111が格納される。アプリケーション3がICデータ101をキャッシュする際は、チェックファイル認証データ121を認証し、ICデータ101をキャッシュファイル320に格納する。キャッシュしたICデータ101を使用する際、チェックデータ111へアクセスできるときは、キャッシュしたICデータ101は有効と判定され、アクセスできないときはキャッシュしたICデータ101は無効と判定される。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ICカードに代表されるカード型記憶媒体に記憶されたデータをキャッシュする方法、およびカード型記憶媒体に記憶されたデータをキャッシュするコンピュータシステムに関する。
【背景技術】
【0002】
近年、カード媒体にICチップを埋め込んだICカードに代表されるようなカード型記憶媒体とパーソナルコンピュータ(Personal Computer、以下PC)が組み合わされて使用されるケースが増えている。例えば、PKI(Public Key Infrastructure)を用いた電子認証システムにおいては、認証に使用される利用者の電子証明書がICカードに格納され、PCと組み合わされて、会社内ネットワークへのログオンシステムなどに使用されている。
【0003】
カード型記憶媒体とPCを組み合わせたコンピュータシステムにおいては、カード型記憶媒体の携帯性によって利便性は高まるものの、PCからカード型記憶媒体に記憶されたデータへのアクセス時間が問題になる。例えばICカードの場合には、データを記憶するメモリは未だにアクセス速度の遅いEEPROM(Electrically Erasable Programmable Read-Only Memory)が主流であり、ICカードに記憶されたデータへのアクセス時間は、一般的な他の周辺機器と比較すると非常に遅い。
【0004】
PCのデータ処理時間を高速化するデータ処理技術としては、キャッシュと称されるデータ処理技術が広く知られている。キャッシュとは、アクセス速度が低速である記憶装置に記憶されたデータを、アクセス速度が高速である記憶装置(例えばRAM:Random Access Memory)に設けられたキャッシュファイルに一時的に記憶し、キャッシュファイルに格納したデータを使用することで、コンピュータの全体的な処理を高速化するデータ処理技術である。
【0005】
特許文献1はこのキャッシュ技術をICカードシステム(自動料金収受システム)に利用した発明で、特許文献1で開示されているデータ処理装置は、特定処理を開始する前に、前記特定処理に必要でICカードに格納されたデータをキャッシュファイルに一括して格納し、前記特定処理の終了後に、該特定処理の実行によって更新された前記キャッシュファイルのデータを、再度、前記ICカードに一括して格納することで、前記特定処理の処理時間を大幅に短縮する。
【特許文献1】特開2002−366993号公報
【発明の開示】
【発明が解決しようとする課題】
【0006】
しかしながら、上述した技術においては、カード型記憶媒体がPCから引抜かれ別のカード型記憶媒体に差し替えられたり、カード型記憶媒体がPCから引抜かれ別の環境でカード型記憶媒体内データが書き換えられたりすると、カード型記憶媒体に記憶されたデータとキャッシュデータの整合性が取れず、その後の処理に不都合が生じるケースある。
【0007】
そこで本発明は、上述の問題を鑑みて、カード型記憶媒体とPCを組み合わせたコンピュータシステムにおいて、PCがキャッシュファイルに格納したカード型記憶媒体のデータを使用する際に、キャッシュファイルに格納したデータの有効性を確認することで、たとえカード型記憶媒体がPCから引抜かれた場合であっても、その後の処理に不都合が生じることのないコンピュータシステムおよびキャッシュ方法を提供することを目的とする。
【課題を解決するための手段】
【0008】
上述した課題を解決する第1の発明は、カード形状をした情報記憶媒体であるカード型記憶媒体を使用するコンピュータシステムであって、
前記カード型記憶媒体には、前記コンピュータシステムにキャッシュされるカードデータと、前記カードデータが前記コンピュータシステムにキャッシュされる際に、前記コンピュータシステムによって認証されるキャッシュ認証データと、前記キャッシュ認証データの認証に成功した場合のみ読み取り可能となり、前記コンピュータシステムがキャッシュされた前記カードデータを操作する際に、前記コンピュータシステムによって読み取られるチェックデータを有し、
前記コンピュータシステムは、前記カード型記憶媒体と通信し、特定の処理を行うアプリケーション処理部と、前記アプリケーション処理部が前記カードデータをキャッシュして操作する際に、アプリケーション処理部から呼び出されるキャッシュ部を有し、
前記キャッシュ部は、前記カードデータをキャッシュする際は、前記カードデータを既にキャッシュしているか否かを判定し、キャッシュしている場合は、前記チェックデータを読み出し、前記チェックデータの読み出しに成功したときのみ、キャッシュした前記カードデータが有効と判断し、前記カードデータをキャッシュしていない場合もしくは前記チェックデータの読み出しに失敗した場合は、前記キャッシュ認証データを認証し、認証に成功したときのみ、前記カードデータを前記コンピュータシステムにキャッシュすることを特徴とするコンピュータシステムである。
【0009】
更に第2の発明は、カード形状をした情報記憶媒体であるカード型記憶媒体に記憶されたカードデータをコンピュータシステムに格納し操作するキャッシュ方法であって、キャッシュされた前記カードデータを格納する際は、前記カードデータをキャッシュしているか否かを判定し、キャッシュされていない場合は、前記カード型記憶媒体に記憶されたキャッシュ認証データを認証し、前記キャッシュ認証データの認証に成功した場合のみ、前記カードデータを読み出して前記コンピュータシステムにキャッシュし、前記コンピュータシステムに格納した前記カードデータを操作する際は、前記カードデータをキャッシュしているか否かを判定し、キャッシュされている場合は、前記カード型記憶媒体に記憶され、前記キャッシュ認証データの認証に成功したときのみ読み取り可能となるチェックデータを読み取り、前記チェックデータの読み出しに成功したときのみ、キャッシュされた前記カードデータが有効と判断し、キャッシュされた前記カードデータを操作することを特徴とするキャッシュ方法である。
【発明の効果】
【0010】
上述した本発明によれば、カード型記憶媒体とPCを組み合わせたコンピュータシステムにおいて、PCが有するキャッシュデータを使用する際に、PCにキャッシュされたデータの有効性を確認した上で使用することで、例えカード型記憶媒体がPCから引抜かれた場合であっても、その後の処理に不都合が生じることのないコンピュータシステムおよびキャッシュ方法を提供できる。なお、本発明において、キャッシュされた前記カードデータの有効性は、前記カード型記憶媒体の内部状態(前記チェックデータが読み取り可能か否か)によって判定されるため、複雑な処理を必要としない。
【発明を実施するための最良の形態】
【0011】
ここから、本発明を適用したコンピュータシステムについて、図を参照しながら詳細に説明する。図1はコンピュータシステムの斜視図である。図1に示したコンピュータシステムは、カード型記憶媒体としてICカード1と、ICカード1を利用するソフトウェアであるアプリケーション3がインストールされたPC2とから構成される。
【0012】
図2は、アプリケーション3がインストールされるPC2の構成図である。図2に示したように、PC2には、中央演算装置20(Central Processing Unit、以下CPU)と、メインメモリとしてRAM21(Random Access Memory)と、外部記憶装置としてハードディスク22と、情報を光学的に表示するディスプレイ23、情報をPC2に入力する入力手段としてキーボード24、ICカード1とデータ通信する機能を備えた周辺機器であるリーダライタ4を接続するためのリーダライタインターフェースとしてUSBポート25がバス26(Bus)に接続さている。
【0013】
PC2にインストールされるアプリケーション3とは、CPU20を制御し、ある特定の用途(例えば、PKIを利用したユーザ認証)のための処理をPC2が実行するために設計されたソフトウェアで、アプリケーション3はPC2のハードディスク22に記憶されている。また、本実施の形態のアプリケーション3には、ICカード1に記憶されたデータをPC2のメモリにキャッシュ(Cache)し、キャッシュしたデータを使用することでアプリケーション3の全体の処理を高速化する機能をソフトウェアで実現している。
【0014】
図3は、本実施の形態においてカード型記憶媒体となるICカード1を説明するための図で、図3(a)はICカード1の外観図、図3(b)は図3(a)のA−B間の断面図を模式的に示している。図3(a)に示したようにICカード1は、外面にリーダライタ4と電気的に接続するコンタクト端子1aを備え、図3(b)に示したようにICカード1の内部にはICチップ1bが内蔵されている。
【0015】
図4はICチップ1bのブロック図である。図4に示したように、ICカード1に内蔵されたICチップ1bは、CPU10、不揮発性メモリであるROM11・EEPROM12、揮発性メモリであるRAM13、リーダライタ4とコンタクト端子1aを介して通信するための回路であるI/O回路14などの要素を備え、本実施の形態において、PC2にキャッシュされるデータはICチップ1bに備えられたEERPROM12に記憶されている。
【0016】
なお、本実施の形態において、カード型記憶媒体を図3で示した接触型ICカード1としているが、カード型記憶媒体としては、無線でデータ通信する非接触ICカードや接触型ICカードのICチップ近傍を短冊状に切り取った形状のSIM(Subscriber Identity Module)でもよく、更には、SIMを内蔵したハードウェアトークンであっても構わない。また、PC2にキャッシュされるデータは、ROM11やRAM13に記憶されたデータであっても構わない。
【0017】
ここから、図1に示したコンピュータシステムのブロック図および本発明に係わるキャッシュ方法の動作手順を示したフロー図を参照しながら、図1で示したコンピュータシステムの機能およびキャッシュ方法について詳細に説明する。図5は、コンピュータシステムのブロック図である。
【0018】
図5に示したように、ICカード1は、PC2にキャッシュされるデータ101(以下、ICデータと記す)と、ICデータ101が格納されるデータファイル100と、キャッシュしたICデータ101の有効性を確認する際に読み出しされるチェックデータ111が格納されるチェックファイル110と、ICデータ101をキャッシュする際に認証されるチェックファイル認証データ121(以下、CF認証データ)を有している。
【0019】
ICカード1が有するデータファイル100またはチェックファイル110とは、ISO7816で規定されている作業用基礎ファイル(WEF)であって、それぞれのファイルには、ファイルを識別するための情報であるファイル識別情報(例えば、ファイル番号)が付加されている。
【0020】
データファイル100に格納されるICデータ101とは、アプリケーション3が処理に使用するデータであって、前述したように、アプリケーション3によってICカード1から読み出され、PC2のメモリにキャッシュされて使用されるデータである。そして、チェックファイル110に格納されるチェックデータ111とは、キャッシュしたICデータ101の有効性を確認する際にアプリケーション3が読み出されるデータで、CF認証データ121とは、ICデータ101をキャッシュする際に認証されるデータである。
【0021】
本実施の形態においては、ICカード1には、ISO7816規格に記述されたセキュリティ管理技術によって、CF認証データ121の認証に成功した場合のみ、チェックファイル110に格納されたチェックデータ111を読み出せる仕組みを設けている。CF認証データ121の認証に成功したことを示す認証情報はICチップ1bのRAM13に記憶され、ICカード1がリーダライタ4から引抜かれたりして、ICカード1が不活性化すると、この認証情報はRAM13から消去され、チェックデータ111が読み出せない状態に戻る。
【0022】
図6は、データファイル100、チェックファイル110およびCF認証データ121の論理ファイル構造を説明するための図である。図6に示したように、本実施の形態において、ICカード1のファイル構造は、ISO7816規格で定められた論理ファイル構造であり、論理的には、一つの専用ファイル130(DF)に下に、一つのチェックファイル110およびCF認証データ121と、少なくとも一つのデータファイル100が記憶される。
【0023】
一つのDF130の下に、一つのチェックファイル110およびCF認証データ121を記憶しているのは、一般的に、アプリケーション3が使用するDF130は、アプリケーション3ごとに異なるためである。例えば、PC2にインストールされた2つの異なるアプリケーション3が同じICカード1を使用する場合は、それぞれのアプリケーション3によってCF認証データ121は認証されることが望ましく、そのためにそれぞれのアプリケーション3が使用するDF130の下に、一つのチェックファイル110およびCF認証データ121を記憶していることが望ましい。
【0024】
なお、チェックデータ111およびCF認証データ121は、コンピュータシステムのキャッシュ機能で使用されるデータであって、ICデータ101へのアクセス管理とは何ら関係はない。例えば、ICデータ101の読み取りに、ICカード1に格納された利用者PIN(Personal Identification Number)の照合が必要であった場合は、CF認証データ121が認証されていても、この利用者PINの照合に成功していなければ、アプリケーション3はICデータ101を読み取ることはできない。
【0025】
ここから、図5のPC2の各機能について説明する。PC2はアプリケーション3を有し、アプリケーション3は、ある特定の用途のために設計された処理を実行するアプリケーション処理部300に加えて、ICカード1に格納されたICデータ101を、PC2の記憶装置(RAM21やハードディスク22)に形成したキャッシュファイル320にキャッシュするキャッシュ部310を備えている。
【0026】
図5において、アプリケーション3が有するアプリケーション処理部300は、ある特定の用途を実現するためにPC2を動作させるためのプログラムで実現される。例えば、図1のコンピュータシステムに備えられたアプリケーション3が、ICカード1を利用してPC2の起動管理をする機能を備えているならば、PC2の起動時に実行されるパスワード認証プログラムであるとか、ICカード1に格納された電子証明証を利用してユーザを認証するユーザ認証プログラムなどが、アプリケーション処理部300として記憶されている。
【0027】
キャッシュ部310とは、アプリケーション処理部300がICカード101をキャッシュして使用する際に呼び出され、ICデータ101をキャッシュファイル320に格納し操作する機能を有し、PC2を動作させるためのプログラムで実現される。そして、キャッシュ部310は、キャッシュ判定手段311とチェックファイル認証手段312(以下、CF認証プログラムと記す)とを備えている。なお、ICデータ101をキャッシュしない場合は、アプリケーション処理部300はキャッシュ部310を呼び出さない。
【0028】
キャッシュ部310は、ICデータ101をキャッシュファイル320に格納する際、ICデータ101を格納しているデータファイル100が有するファイル識別情報と、ICデータ101をキャッシュファイル320に格納したポインタをRAM21に記憶する。ここでポインタとは、ICデータ101を記憶装置に格納したアドレスを示すデータであって、例えばキャッシュファイル320をRAM21に形成した場合は、RAM21のアドレスがポインタとなる。
【0029】
アプリケーション処理部300からICデータ101へのアクセス要求をキャッシュ部310が受けると、キャッシュ部310は、RAM21に保持しているファイル識別情報とポインタを確認する。キャッシュ部310が、アクセス要求のあったICデータ101を格納しているデータファイル100が有するファイル識別情報とICデータ101を格納したポインタを保持していない場合は、チェックファイル認証手段312を使用してCF認証データ121を認証する。
【0030】
CF認証データ121の認証に成功すると、キャッシュ部310は、ICデータ101をデータファイル100から読取り、読み取ったICデータ101をキャッシュファイル320に格納する。なお、キャッシュ部310がPC2のメモリに格納する際は、上述したように、データファイル100のファイル識別情報とICデータ101を格納したポインタを記憶・保持する。
【0031】
ファイル識別情報およびポインタが既に保持されている場合は、キャッシュ部310は、キャッシュ判定手段311を用いて、キャッシュファイル320に格納されたICデータ101の有効性を確認する。
【0032】
キャッシュファイル320に格納されたICデータ101の有効性を確認するのは、ICカード1がPC2から引抜かれ別のICカード1に差し替えられたり、ICカード1がPC2から引抜かれ別の環境でICデータ101が書き換えられたりすると、ICカード1に記憶されたICデータ101とキャッシュデータの整合性が取れないケースが生じてしまうからである。
【0033】
キャッシュ判定手段311は、保持しているファイル識別情報で特定されるデータファイル100が置かれているDF130に下にあるチェックファイル110を選択し、このチェックファイル110に格納されているチェックデータ111を読み出す。読み出しに成功した場合は、ICカード1は引抜かれていないと判断し、キャッシュファイル320に格納されているICデータ101は有効と判定する。なぜならば、上述したように、ICカード1がリーダライタ4から引抜かれたりして、ICカード1が不活性化すると、VF認証データを認証した認証情報はRAM13から消去され、チェックデータ111が読み出せない状態に戻るからである。
【0034】
そして、キャッシュ部310はファイル識別情報とポインタをアプリケーション処理部300に受渡し、アプリケーション処理部300はポインタを利用してキャッシュファイル320に格納されたICデータ101を操作する。
【0035】
チェックデータ111の読み出しに成功しない場合は、キャッシュ部310は、ICカード1は引抜かれたと判断し、キャッシュファイル320に格納されたICデータ101は無効と判定する。そして、キャッシュ部310は、チェックファイル認証手段312を使用して、上述した手順で再度ICデータ101をキャッシュファイル320に格納する。
【0036】
ここから、本発明のキャッシュ方法の手順について、図を参照しながら詳細に説明する。本発明のキャッシュ方法の手順を示すことで、図5に記載した各要素の動作もより明らかになる。図7は、キャッシュ方法の手順を示したフロー図である。
【0037】
本発明の最初のステップは、アプリケーション処理部300がICデータ101を使用して処理を開始するステップ(S10)である。次のステップ(S20)では、アプリケーション処理部300は、ICデータ101をキャッシュして使用する際は、キャッシュ部310を呼び出してステップ(S30)に進み、ICデータ101をキャッシュして使用しない際は、キャッシュ部310を呼び出さずにステップ(S90)に進む。
【0038】
ステップ(S90)では、アプリケーション3はリーダライタ4を経由してICデータ101にアクセスし、ICデータ101の読み取りや変更等の処理を行い、手順は終了する。
【0039】
ステップ(S30)においては、キャッシュ部310は保持しているファイル識別情報とポインタを調べ、アクセスするICデータ101がキャッシュファイル320に格納されていないか確認する。キャッシュされている場合はステップ(S40)に進み、キャッシュされていない場合はステップ(S41)に進む。
【0040】
ステップ(S41)では、キャッシュ部310はキャッシュ判定手段311を呼び出し、ICカード1に格納されているチェックデータ111を読み取る。チェックデータ111が読み取れた場合は、キャッシュデータは有効と判定し、ステップ(S70)で、キャッシュファイル320に格納されたICデータ101を処理する。チェックデータ111が読み取れない場合は、キャッシュデータは無効と判定し、ステップ(S40)に進む。
【0041】
ステップ(S40)は、ICデータ101のキャッシュを開始するステップで、キャッシュ部310はチェックファイル認証手段312を呼び出し、ICカード1に格納されているCF認証データ121を認証する。認証に成功した場合はステップ(S50)に進み、認証に失敗した場合はステップ(S80)でICデータ101の処理を中断し、手順を終了する。
【0042】
ステップ(S50)では、キャッシュ部310はキャッシュするICデータ101を読み取る。そしてステップ(S60)では、読み取ったICデータ101をキャッシュファイル320に格納する。なお、キャッシュに格納する際、キャッシュ部310は、読み取ったICデータ101が格納されているファイル識別情報とICデータ101を格納したポインタをRAM13などに記憶・保持する。
【0043】
そして、ステップ(S70)では、キャッシュファイル320に格納したICデータ101を使用して、アプリケーション処理部300は処理を行う。ステップ(S70)をもって、キャッシュ方法の手順は終了する。なお、ステップ(S70)において、アプリケーション処理部300がキャッシュファイル320に格納したICデータ101を操作し、ICデータ101の内容を変更した場合は、アプリケーション3を終了するときに、ICカード2に格納されているICデータ101を、キャッシュファイル320に格納しているICデータ101に基づいてアップデートしてもよい。
【図面の簡単な説明】
【0044】
【図1】コンピュータシステムの斜視図。
【図2】コンピュータの構成図。
【図3】ICカードの説明図。
【図4】ICカードの構成図。
【図5】コンピュータシステムの機能ブロック図。
【図6】ICカードの論理ファイル構成を説明する図。
【図7】キャッシュ方法の手順を示したフロー図。
【符号の説明】
【0045】
1 ICカード
12 ICカードに備えられたEEPROM
13 ICカードに備えられたRAM
100 データファイル
101 ICデータ
110 チェックファイル
111 チェックデータ
121 チェックファイル認証データ
2 パーソナルコンピュータ
21 パーソナルコンピュータに備えられたメインメモリ
3 アプリケーション
300 アプリケーション処理部
310 キャッシュ処理部
311 キャッシュ判定手段
312 チェックファイル認証手段
320 キャッシュファイル
4 リーダライタ


【特許請求の範囲】
【請求項1】
カード形状をした情報記憶媒体であるカード型記憶媒体を使用するコンピュータシステムであって、
前記カード型記憶媒体には、前記コンピュータシステムにキャッシュされるカードデータと、前記カードデータが前記コンピュータシステムにキャッシュされる際に、前記コンピュータシステムによって認証されるキャッシュ認証データと、前記キャッシュ認証データの認証に成功した場合のみ読み取り可能となり、前記コンピュータシステムがキャッシュされた前記カードデータを操作する際に、前記コンピュータシステムによって読み取られるチェックデータを有し、
前記コンピュータシステムは、前記カード型記憶媒体と通信し、特定の処理を行うアプリケーション処理部と、前記アプリケーション処理部が前記カードデータをキャッシュして操作する際に、アプリケーション処理部から呼び出されるキャッシュ部を有し、
前記キャッシュ部は、前記カードデータをキャッシュする際は、前記カードデータを既にキャッシュしているか否かを判定し、キャッシュしている場合は、前記チェックデータを読み出し、前記チェックデータの読み出しに成功したときのみ、キャッシュした前記カードデータが有効と判断し、前記カードデータをキャッシュしていない場合もしくは前記チェックデータの読み出しに失敗した場合は、前記キャッシュ認証データを認証し、認証に成功したときのみ、前記カードデータを前記コンピュータシステムにキャッシュすることを特徴とするコンピュータシステム。
【請求項2】
カード形状をした情報記憶媒体であるカード型記憶媒体に記憶されたカードデータをコンピュータシステムに格納し操作するキャッシュ方法であって、キャッシュされた前記カードデータを格納する際は、前記カードデータをキャッシュしているか否かを判定し、キャッシュされていない場合は、前記カード型記憶媒体に記憶されたキャッシュ認証データを認証し、前記キャッシュ認証データの認証に成功した場合のみ、前記カードデータを読み出して前記コンピュータシステムにキャッシュし、前記コンピュータシステムに格納した前記カードデータを操作する際は、前記カードデータをキャッシュしているか否かを判定し、キャッシュされている場合は、前記カード型記憶媒体に記憶され、前記キャッシュ認証データの認証に成功したときのみ読み取り可能となるチェックデータを読み取り、前記チェックデータの読み出しに成功したときのみ、キャッシュされた前記カードデータが有効と判断し、キャッシュされた前記カードデータを操作することを特徴とするキャッシュ方法。



【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate


【公開番号】特開2006−195878(P2006−195878A)
【公開日】平成18年7月27日(2006.7.27)
【国際特許分類】
【出願番号】特願2005−9033(P2005−9033)
【出願日】平成17年1月17日(2005.1.17)
【出願人】(000002897)大日本印刷株式会社 (14,506)
【Fターム(参考)】