(57)【特許請求の範囲】
【請求項１】
書き換え可能な複数のアプリケーションを搭載可能であり、各アプリケーション間で共有アクセスが可能なＩＣカードであって、
前記アプリケーション間での共有アクセスの履歴を記録するログファイルを有し、
前記複数のアプリケーションの中で、第１のアプリケーションは、第２のアプリケーションにアクセスした際に、少なくとも、前記第１のアプリケーションと前記第２のアプリケーションを特定するそれぞれの認証情報を前記ログファイルに記録する
ＩＣカード。
【請求項２】
前記第１のアプリケーションは、前記第２のアプリケーションにアクセスし、前記第２のアプリケーションの関数を呼出した際に、呼出された前記第２のアプリケーションの関数を前記ログファイルに記録する
請求項１に記載のＩＣカード。
【請求項３】
前記ログファイルに記録された前記アプリケーション間での共有アクセスの履歴データは、古い順に自動的に消去される
請求項１に記載のＩＣカード。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、アプリケーション間の共有アクセスを管理する機能を有するＩＣカードに関する。
【０００２】
【従来の技術】
複数アプリケーションを搭載したマルチアプリケーションＩＣカードにおいて、限られたメモリ資源を有効に使うために、アプリケーションの間で、互いにアクセスし、機能やデータなどを共有する、言わば共有アクセスが可能となっている。
しかし、共有アクセスはセキュリティ上問題が起こりやすいので、不正なアクセスを防止し、セキュリティ性を保つために、共有アクセスは、管理された環境下で、承認されたアプリケーション間で行なわれるようにしていた。また、マルチアプリケーションＩＣカードにおいては、新たにアプリケーションを追加、また、削除することができるので、新たに追加されたアプリケーションについて、事前承認が不可能であるため、以上の方法が適用できないが、特願２０００−２６８６７６では、この問題を解決する方法が提案され、新たに追加されたアプリケーションとの共有アクセスが可能となった。
【０００３】
【発明が解決しようとする課題】
しかし、安全措置を増強しても、不正な利用を完全に防止することができない。例えば、ＩＣカードのセキュリティ・システムのソフトウエア的な不完全なところを見つけて侵入する、或は、利用者や、アプリケーションなどを認証するためのパラメータ、例えば、ＩＤや、ＰＩＮ（Ｐｅｒｓｏｎａｌ  Ｉｄｅｎｔｉｆｉｃａｔｉｏｎ  Ｎｕｍｂｅｒ）などを変更して何度もアクセスを試すなどの方法によって、不正な共有アクセス権が取得できてしまう可能性が何時でもある。不正な手段によって、共有アクセス権限を獲得した場合は、アプリケーション間の不正な共有アクセスがカードＯＳに許可され、正常に実行されてしまう。
また、アプリケーションのバグによって、異常なアプリケーション間アクセスが生じてしまい、或は、正当なアプリケーション間アクセスに障害を生じてしまうことも有り得る。
そのため、結果として、不正なアクセスが行われたことが判明しても、どのアプリケーション間でどのようなアクセスがなされたかは、アクセス終了後に知る手段がない。
【０００４】
本発明は、上記課題を鑑みてなされたものであり、その目的は、不正なアクセスを検知できるＩＣカードを提供することにある。
【０００５】
【課題を解決するための手段】
上記目的を達成するために、本発明に係わるＩＣカードは、書き換え可能な複数のアプリケーションを搭載可能であり、各アプリケーション間での共有アクセスが可能なＩＣカードであって、前記アプリケーション間の共有アクセスの履歴を記録するログファイルを有し、前記複数のアプリケーションの中で、第１のアプリケーションは、第２のアプリケーションにアクセスした際に、少なくとも、前記第１のアプリケーションと前記第２のアプリケーションを特定するそれぞれの認証情報を前記ログファイルに記録する。
また、好ましくは、前記第１のアプリケーションは、前記第２のアプリケーションにアクセスし、前記第２のアプリケーションの関数を呼出した際に、呼出された前記第２のアプリケーションの関数を前記ログファイルに記録する。
また、好ましくは、前記ログファイルに記録された前記アプリケーション間での共有アクセスの履歴データは、古い順に自動的に消去される。
【０００６】
以上のように、ＩＣカード内にアプリケーション間の共有アクセスの履歴を記録するログファイルを設け、両アプリケーション間の共有アクセスがあったときは、両アプリケーションを特定する認証情報、例えば、ＩＤ番号、ＰＩＮなどを、該ログファイルに記録し、また、関数が呼出された時は、その関数も該ログファイルに記録する。そのため、不正なアクセスがあった場合、アクセス終了後、上記ログファイルを外部から読み出して解析すれば、その不正アクセスを検知することができる。
全ての共有アクセスを記録すると、ログファイルのサイズが膨大になってしまう。そのため、ログファイルに記録された共有アクセスの履歴データは、古い順に自動的に消去されるようにしている。
【０００７】
【発明の実施の形態】
以下に、本発明のＩＣカードの実施の形態について、添付の図面を参照して述べる。
図１は、本発明の実施形態に係わるＩＣカード１０の概略構成図である。
図１において、ＩＣカード１０は、例えば、ＣＰＵ１１、インタフェース（Ｉ／Ｆ）１２、ランダム・アクセス・メモリ（ＲＡＭ）１４、読み出し専用メモリ（ＲＯＭ）１５、および、書き換え可能な不揮発性メモリＥＥＰＲＯＭ１６を有する。
以上のＩＣカード１０は、例えば、インタフェース（Ｉ／Ｆ）１２を介して、外部装置となるリーダ・ライタ及びホスト・コンピュータと通信を行ない、データを送受信し、ホスト・コンピュータからの指示に基づいて、ＩＣカード１０に対して、様々な処理を行なう。
【０００８】
ＣＰＵ１１は、外部装置から送信されたコマンド、あるいは、予めＩＣカード１０に設定されたコマンドに従って、ＥＥＰＲＯＭ１６に記憶されているアプリケーションに基づいて、インタフェース（Ｉ／Ｆ）１２を介して外部装置と適宜通信を行ないながら、所望の処理を行なう、たとえば、所有者とＩＣカードの認証、代金の決済を行なう。
ＣＰＵ１１において処理を行なう際に一時的に発生するデータをＲＡＭ１４に記憶する。
【０００９】
インタフェース（Ｉ／Ｆ）１２を介して、ＩＣカード１０が外部装置に差し込んだ場合に、電力とクロックの供給を受けるとともに、外部装置と信号の送受信を行なう。すなわち、インタフェース（Ｉ／Ｆ）１２は、外部装置から受信した信号をＣＰＵ１１に出力し、また、ＣＰＵ１１から入力された信号を外部装置に送信する。
ＲＡＭ１４、ＲＯＭ１５、および、ＥＥＰＲＯＭ１６がＩＣカード１０のメモリシステムを構成する。ＲＯＭ１５には、カードＯＳ（或は、ＯＳのカーネル部）が記憶されており、ＯＳ上に動作するシステム用プログラムや、サービスを提供するアプリケーション・プログラムなどがＥＥＰＲＯＭ１６に配置されている。
【００１０】
このような構成を有するＩＣカード１０には、図２に示したソフトウエアが搭載されている。
図２は、本発明の実施形態に係わる以上のＩＣカード１０におけるソフトウエアの構成の一例を示す概略図である。
この階層構造の中核はＲＯＭ１５に記憶されるＯＳのカーネル部２１である。ＯＳカーネル部２１は、ＩＣカードのハードウエア資源を管理し、上層のプログラムからＩＣカードのハードウエアをアクセスするためのインタフェースを提供する。また、ＯＳカーネル部２１は上層のプログラムの動作を制御する。
【００１１】
図２に示していないが、ＯＳカーネル部２１の上層には、ＯＳレベルのソフトウエアである処理モジュールが配置されている。処理モジュールは、ＯＳカーネルの多様な機能を応用プログラムが便利に利用できるようにする。このような処理モジュールとしては、例えば、プログラム言語を処理するインタプリタ、プログラムの追加、または、更新するプログラムローダ、アプリケーション・プログラミング・インタフェース、暗号処理ライブラリ、特に、ＩＣカード１０に搭載した複数のアプリケーションを管理するカードマネージャ２４が搭載されている。カードマネージャ２４は、例えば、アプリケーションの追加、削除の権限を持っている。
さらに、カードマネージャ２４に管理されて、ＩＣカード１０に搭載した複数のアプリケーション間の共有アクセスの履歴を記録する共有アクセスログファイル２５を有する。カードマネージャ２４は、共有アクセスログファイル２５を読む、書き換える、また、削除することができる。
これら処理モジュールはＥＥＰＲＯＭ１６、又は、ＲＯＭ１５に記録されている。ここで、カードマネージャ２４と共有アクセスログファイル２５がＥＥＰＲＯＭ１６に記録されている場合を例とする。
【００１２】
処理モジュールを参照しながら動作し、色々なサービスを提供するアプリケーション・プログラムがカードＯＳ２１の上層に配置されている。ここでは、２つのアプリケーション（アプリケーションＡ２２とアプリケーションＢ２３）が配置されているとする。
【００１３】
図３は、ＩＣカード１０のＥＥＰＲＯＭ１６におけるファイル格納イメージの一例を示す。図３では、上より下に向けてメモリの絶対アドレスが増大している。
図３において、ＥＥＰＲＯＭ１６の先頭はシステムエリアであり、ＩＣカード１０全体の構成などの情報が記録されており、また、カードマネージャ２４も記録されている。続いて、アプリケーション間の共有アクセスの履歴を記録する共有アクセスログファイル２５が記録されている。
続いて、アプリケーションＡ２２のプログラム部分、アプリケーションＡ２２が実行する際に参照する関数１及びデータが記録されている。そして、アプリケーションＢ２３のプログラム部分、アプリケーションＢ２３が実行する際に参照する関数２及びデータが記録されている。例えば、共有アクセスを行なう時に、アプリケーションを認証するためのＩＤやＰＩＮなどのデータは各アプリケーションのデータ領域に記憶されている。
その次は、アプリケーションの情報をまとめて管理するアプリケーション管理テーブルが記録されている。例えば、ＩＣカード１０内に搭載した各アプリケーションの間で、共有アクセスが要求された時に、アプリケーション管理テーブルが呼出し側のアプリケーションに参照されて、呼出し先のアプリケーションの情報を得る。
【００１４】
図４は、本発明の実施形態に係わるＩＣカードを用いて、アプリケーション間の共有アクセスを管理する処理を説明するフローチャートである。
ＩＣカード１０は外部装置に処理されて、ＩＣカード１０内のアプリケーションＢが実行されている。アプリケーションＢの実行に当たっては、ある段階で必要となった関数やデータなどは、アプリケーションＢ自身が持っていない、即ち、アプリケーションＢに割り当てられたメモリ領域に存在しないことがある。一方、ＩＣカード１０のメモリの別の領域に記憶されているアプリケーションＡは、その関数やデータなどが存在する。
この場合は、アプリケーションＢはアプリケーションＡのメモリ領域をアクセスし、アプリケーションＢが必要な関数やデータなどを参照し、いわゆるアプリケーション間共有アクセスによって、アプリケーションＢはその関数とデータを持たなくても、引続き実行でき、処理を続くことができる。
【００１５】
アプリケーションＢのプログラムは、アプリケーションＡが持つ関数又はデータを参照するところまで進行すると、本例の処理が開始する。
ステップ４１：
アプリケーションＢが、カードＯＳにアプリケーションＡを呼出す、即ち、共有アクセスを要求する。
ステップ４２：
カードＯＳは、具体的に、カードマネージャは、アプリケーションＢからの要求を受け、メモリに記憶されたアプリケーション管理テーブルを検索し、ＩＣカード１０内にアプリケーションＡの存在を確認する。
ステップ４３：
アプリケーションＡがＩＣカード１０内に存在していない場合は、カードマネージャは、アプリケーションＢにエラーメッセージを出力する。
それと同時に、カードマネージャは、共有アクセスログファイルに、アプリケーションＡとアプリケーションＢの認証情報、及びアプリケーションＡが存在しない、アプリケーションＢからのアクセスが失敗した内容を記録し、ログファイルの内容を更新して、処理を終了する（ステップ４７）。
【００１６】
ステップ４４：
アプリケーションＡがＩＣカード１０内に存在する場合は、アプリケーションＢは、参照すべきアプリケーションＡの持つ関数（関数１と称する）のメモリ領域をアクセスし、関数１を呼出す。
ステップ４５：
そして、アプリケーションＡのメモリ領域で、アプリケーションＡにより関数１は起動されて、実行される。
ステップ４６：
プログラムの互換性や、バグなどの原因で、関数１の実行が失敗した場合は、アプリケーションＡは、カードマネージャ及びアプリケーションＢにエラーメッセージを出力する。そして、カードマネージャは、共有アクセスログファイルに、アプリケーションＡとアプリケーションＢの認証情報と関数１、及び関数１が実行中がエラーが出た内容を記録し、ログファイルの内容を更新して、処理を終了する（ステップ４７）。
ステップ４７：
関数１が正常に実行した場合は、カードマネージャは、共有アクセスログファイルに、アプリケーションＡとアプリケーションＢの認証情報、関数１を参照した内容を記録し、ログファイルの内容を更新して、アプリケーションＢの共有アクセスの処理を終了し、ＩＣカード１０において、アプリケーションＢによる処理が続行する。
【００１７】
図５は、本発明の実施形態に係わるＩＣカード内に、共有アクセスログファイルの内容の一例を示す図である。
図５において、アプリケーションＢからアプリケーションＡを２回アクセスし、アプリケーションＡの関数１を２回呼出した内容と、アプリケーションＡからアプリケーションＢを１回アクセスし、アプリケーションＢの関数２を１回呼出した内容が記録されている。
図５に示していないが、上記のように、エラーが起きた時も、エラーの種類や、理由なども記録する。
【００１８】
次に、以上の処理方法を適用した１具体例を説明する。
本例では、例えば、ＩＣカード１０内に、社員証アプリケーションが搭載されており、また、ネットワークを経由してログインして所定の機能を利用するネットワーク・ログイン・アプリケーションもＩＣカードに搭載されている。
社員証アプリケーションは、例えば、社員の社員番号、氏名などの個人情報を管理するアプリケーションであり、例えば、会社内の施設を利用する時に実行されて、カード保持者である社員の本人確認を行なう。
また、ネットワーク・ログイン・アプリケーションは、例えば、ＰＣにログインする際に使用され、社員の本人確認が行なわれた後、ログインとＰＣの利用が許可される。
また、例えば、契約のあるネット上サービスを利用するために、ネットワークを経由してログインしてサービスを利用する際にも、ネットワーク・ログイン・アプリケーションを用いれば便利である。
【００１９】
ネットワークを経由してログインする時は、社員の本人確認が行なわれるので、社員の社員番号、氏名などの個人情報が必要である。社員証アプリケーションはすでに社員の個人情報を持っているので、ネットワーク・ログイン・アプリケーションにも社員の個人情報を持たせることは、ＩＣカードのメモリ資源の無駄利用となる。
そこで、共有アクセスを利用して、ネットワーク・ログイン・アプリケーションに社員の個人情報を持たせず、ネットワーク・ログイン・アプリケーションから社員証アプリケーションをアクセスして、社員証アプリケーションの持つ社員の個人情報データを呼出すことにより、メモリ資源を有効に利用できる。
【００２０】
次に、図６を用いて本例を説明する。
図６は、本発明の実施形態に係わるＩＣカードの動作の具体例を示すフローチャートである。
ネットワーク・ログイン・アプリケーションは、社員証アプリケーションが持つ個人情報データを参照するところまで進行すると、本例の共有アクセス処理が開始する。
ステップ６１：
ネットワーク・ログイン・アプリケーションが、カードＯＳに社員証アプリケーションを呼出す、即ち、共有アクセスを要求する。
ステップ６２：
カードＯＳは、具体的には、カードマネージャは、ネットワーク・ログイン・アプリケーションからの要求を受け、メモリに記憶されたアプリケーション管理テーブルを検索し、ＩＣカード１０内に社員証アプリケーションの存在を確認する。
ステップ６３：
社員証アプリケーションがＩＣカード１０内に存在していない場合は、カードマネージャは、ネットワーク・ログイン・アプリケーションにエラーメッセージを出力し、それと同時に、カードマネージャは、共有アクセスログファイルに、社員証アプリケーションが存在しない、ネットワーク・ログイン・アプリケーションからのアクセスが失敗した内容を記録し、ログファイルの内容を更新して、処理を終了する（ステップ６７）。
【００２１】
ステップ６４：
社員証アプリケーションがＩＣカード１０内に存在する場合は、ネットワーク・ログイン・アプリケーションは、参照すべき社員証アプリケーションの持つ関数（関数１と称する）のメモリ領域をアクセスし、関数１を呼出す。
ステップ６５：
そして、社員証アプリケーションのメモリ領域で、社員証アプリケーションにより関数１は起動されて、実行されて、社員の個人情報データが呼出される。
【００２２】
ステップ６６：
両アプリケーションの互換性や、バグなどの原因で、社員の個人情報データが正しく呼出せなかった場合は、社員証アプリケーションは、カードマネージャとネットワーク・ログイン・アプリケーションにエラーメッセージを出力する。そして、カードマネージャは、共有アクセスログファイルに、社員証アプリケーションの関数１の実行が失敗し、社員証アプリケーションのデータを呼出すことはできなかった内容を記録し、ログファイルの内容を更新して、処理を終了する（ステップ６７）。
ステップ６７：
関数１は正常に実行し、社員の個人情報データが正しく呼出された場合は、カードマネージャは、共有アクセスログファイルに、ネットワーク・ログイン・アプリケーションから、社員証アプリケーションの関数１を参照した内容を記録し、ログファイルの内容を更新して、ネットワーク・ログイン・アプリケーションの共有アクセスの処理を終了し、ＩＣカード１０において、ネットワーク・ログイン・アプリケーションによる処理が続行する。
【００２３】
以上のように、アプリケーション間で共有アクセスがあった度に、呼出先のアプリケーション、呼出元のアプリケーション、呼出関数を共有アクセスログファイルに記録される。
万が一不正なアクセスがあった場合は、外部装置からこのログファイルを読み出して、解析すれば、不正なアクセス元、アクセス先、と不正アクセスの内容を判明できる。
しかし、全ての共有アクセスを共有アクセスログファイルに記録すると、このログファイルのサイズが膨大になってしまう。そのため、たとえば、ログファイルのサイズを一定にして、記録された共有アクセスの履歴データは、古い順に自動的に消去すればよい。
【００２４】
以上、本発明を好ましい実施の形態に基づき説明したが、本発明は以上に説明した実施の形態に限られるものではなく、本発明の要旨を逸脱しない範囲で、種々の改変が可能である。
例えば、共有アクセスログファイルに、日付など情報を記入しても良い。また、失敗した場合に、例えば、失敗の理由などを記録しても良い。
【００２５】
【発明の効果】
本発明によれば、ＩＣカード内にアプリケーション間の共有アクセスの履歴を記録するログファイルを設け、両アプリケーション間の共有アクセスがあったときは、両アプリケーションを特定する認証情報、例えば、ＩＤ番号、ＰＩＮなどを、該ログファイルに記録し、また、関数が呼出された時は、その関数も該ログファイルに記録する。そのため、不正なアクセスがあった場合、アクセス終了後、上記ログファイルを外部から読み出して解析すれば、その不正アクセスを検知することができ、ＩＣカードのセキュリティ性を高めることができる。
【図面の簡単な説明】
【図１】本発明の実施形態に係わるＩＣカードの概略構成図である。
【図２】本発明の実施形態に係わるＩＣカードにおけるファイル構成の一例を示す。
【図３】本発明の実施形態に係わるＩＣカードのメモリマップの一例である。
【図４】本発明の実施形態に係わるＩＣカードの動作を説明するフローチャート。
【図５】本発明の実施形態に係わるＩＣカードの共有アクセスログファイルの内容の一例を示す。
【図６】本発明の実施形態に係わるＩＣカードの動作の具体例を示すフローチャートである。
【符号の説明】
１０…ＩＣカード、１１…ＣＰＵ、１２…Ｉ／Ｆ、１４…ＲＡＭ、１５…ＲＯＭ、１６…ＥＥＰＲＯＭ、２１…カードＯＳ、２２…アプリケーションＡ、２３…アプリケーションＢ、２４…カードマネージャ、２５…共有アクセスログファイル。
【図１】
0003884963.tif 000002
【図２】
0003884963.tif 000003
【図３】
0003884963.tif 000004
【図４】
0003884963.tif 000005
【図５】
0003884963.tif 000006
【図６】
0003884963.tif 000007