(57)【要約】【課題】バッテリレス式タイマ手段を使用することによって、たとえ電源供給のない状態の期間が存在しても、また外部からの情報を必要としなくても、カード自身がアプリケーションを管理、制御することが可能となるＩＣカードを提供する。【解決手段】外部から入力されるアプリケーションを不揮発性メモリにロードし、このロードしたアプリケーションを実行することが可能なＩＣカードにおいて、ロードしたアプリケーションの有効時間をバッテリレス式タイマにより計時し、ＩＣカードが起動されると、バッテリレス式タイマの計時内容が有効時間内であるか否かを判定し、有効時間内であれば当該アプリケーションは動作可能とし、有効時間外であれば当該アプリケーションを動作不可の状態に設定する。【選択図】      図１
2005173863.tif 000002
【特許請求の範囲】
【請求項１】
メモリに所望のアプリケーションをロードし、このロードしたアプリケーションを実行することが可能なＩＣカードにおいて、
アプリケーションのロード時、当該アプリケーションの使用可能な期間を示す有効時間が設定され、計時動作を開始するもので、電源の供給がなくても動作するバッテリレス式のタイマ手段と、
当該ＩＣカードの起動後、前記タイマ手段の計時内容が前記設定された有効時間内であるか否かを判定する判定手段と、
この判定手段による判定の結果、前記タイマ手段の計時内容が前記設定された有効時間内であれば当該アプリケーションは動作可能とし、前記タイマ手段の計時内容が前記設定された有効時間外であれば当該アプリケーションを動作不可の状態に設定する制御手段と、
を具備したことを特徴とするＩＣカード。
【請求項２】
前記判定手段は、当該ＩＣカードの起動直後に前記タイマ手段の計時内容が前記設定された有効時間内であるか否かを判定することを特徴とする請求項１記載のＩＣカード。
【請求項３】
前記判定手段は、当該ＩＣカードの起動後に行なわれるアプリケーションの選択時に前記タイマ手段の計時内容が前記設定された有効時間内であるか否かを判定することを特徴とする請求項１記載のＩＣカード。
【請求項４】
前記制御手段が行なう当該アプリケーションを動作不可の状態に設定するとは当該アプリケーションを前記不揮発性メモリから削除することである請求項１記載のＩＣカード。
【請求項５】
前記制御手段が行なう当該アプリケーションを動作不可の状態に設定するとは当該アプリケーションが動作できないようにロックすることである請求項１記載のＩＣカード。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、たとえば、書込み、書換え可能な不揮発性メモリおよびＣＰＵなどの制御素子を有したＩＣチップを内蔵し、外部から入力されるコマンドに対応した処理を実行してその処理結果を外部へ出力し、かつ、外部から入力されるアプリケーションを不揮発性メモリにロード（あるいは、インストール）し、このロードしたアプリケーションを実行することが可能なＩＣカードに関する。
【背景技術】
【０００２】
最近、たとえば、電子商取引（ＥＣ）などの分野で電子マネーとして注目されているＩＣカードは、書込み、書換えが可能な不揮発性メモリおよびこれを管理、制御するためのＣＰＵなどの制御素子を有したＩＣチップがプラスチック板などで構成されるカードの内部に埋設されている構造となっている。
【０００３】
ところで、この種のＩＣカードは、通常、カード内のアプリケーション（アプリケーションプログラム）がＩＣカード（ＩＣチップ）の製造メーカ独自の言語で作成され、そのうえＲＯＭに記憶されていたために、ＩＣカード（ＩＣチップ）の提供者以外が、アプリケーションを（一般言語で）作成することや、アプリケーションを追加したり削除したりすることが不可能であった。
【０００４】
そこで、これらの不都合を解決するために、Ｊａｖａカード（Ｊａｖａは米サン・マイクロシステムズ社の登録商標）と称されるＩＣカードが開発された（たとえば、特許文献１参照）。Ｊａｖａカードは、一般的なＩＣカードのＯＳ（オペレーティングシステム）の上にバーチャルマシン（Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ）をのせたＩＣカードであり、その特徴は、Ｊａｖａ言語でアプリケーション（アプレット）を作成することが可能で、カード発行者などの権限を持った人であれば、Ｊａｖａカード内のアプリケーションを追加したり削除したりすることが可能であることにある。
【０００５】
ただし、アプリケーションを自由に作成する場合、その作成者は、アプリケーションの有効期間（有効時間）を設定する必要がある。これまでの一般的なＩＣカードは、「ＩＣカードの有効期間＝アプリケーションの有効期間」であったのに対し、Ｊａｖａカードは、アプリケーションが独立しているために、それぞれのアプリケーションに対し有効期間を独立して設定することが可能であるからである。
【特許文献１】特開２０００−３４８１４６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
アプリケーションの有効期間に関しては、アプリケーションごとに様々な設定方法が考えられる。既存のＩＣカードのように有効期日を年月日で管理する方法（有効期日管理）、逆に有効期間の長さを設定して、アプリケーションの追加や最終起動時から一定の長さだけ有効にする方法（有効期間管理）などである。
【０００７】
ただし、どちらの場合も、現状のＩＣカード（Ｊａｖａカードも含めて）は、非通電時にも動作する時計（タイマ手段）を持っていないために、外部から時間に関する情報（たとえば、システムやカードリーダライタの時間情報など）を取得する必要がある。しかし、高いセキュリティ性を特徴としているＩＣカードにとって、外部からの情報を鵜呑みにせざるを得ないことが問題となっている。
【０００８】
そこで、本発明は、バッテリレス式タイマ手段を使用することによって、たとえ電源供給のない状態の期間が存在しても、また外部からの情報を必要としなくても、カード自身がアプリケーションを管理、制御することが可能となるＩＣカードを提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明のＩＣカードは、メモリに所望のアプリケーションをロードし、このロードしたアプリケーションを実行することが可能なＩＣカードにおいて、アプリケーションのロード時、当該アプリケーションの使用可能な期間を示す有効時間が設定され、計時動作を開始するもので、電源の供給がなくても動作するバッテリレス式のタイマ手段と、当該ＩＣカードの起動後、前記タイマ手段の計時内容が前記設定された有効時間内であるか否かを判定する判定手段と、この判定手段による判定の結果、前記タイマ手段の計時内容が前記設定された有効時間内であれば当該アプリケーションは動作可能とし、前記タイマ手段の計時内容が前記設定された有効時間外であれば当該アプリケーションを動作不可の状態に設定する制御手段とを具備している。
【発明の効果】
【００１０】
本発明によれば、バッテリレス式タイマ手段を使用することによって、たとえ電源供給のない状態の期間が存在しても、また外部からの情報を必要としなくても、カード自身がアプリケーションを管理、制御することが可能となるＩＣカードを提供できる。
【発明を実施するための最良の形態】
【００１１】
以下、本発明の実施の形態について図面を参照して説明する。  
図１は、本実施の形態に係るＩＣカードの一例としてＪａｖａカードのハードウエア構成を概略的に示すものである。このＪａｖａカードは、全体的な管理、制御を司るＣＰＵ（セントラル・プロセッシング・ユニット）１１、ＣＰＵ１１の制御用プログラムなどが格納されたＲＯＭ（リード・オンリ・メモリ）１２、ワーキングメモリとしてのＲＡＭ（ランダム・アクセス・メモリ）１３、外部装置（カードリーダライタなど）と通信を行なうための通信ユニット（ＵＡＲＴ）１４、各種データやアプリケーション（アプリケーションプログラム）を記憶する不揮発性メモリ（ＮＶ（ＥＥＰＲＯＭ））１５、演算の補助を行なうコプロセッサ（Ｃｏ−Ｐｒｏ）１６、非通電時にも動作するバッテリレス式タイマ手段としてのバッテリレス式タイマ（ＢＴ）１７、タイマ１７の残時間に連動したビット（１／Ｏ）が格納されるタイマ連動ビット部１８から構成されている。
【００１２】
図２は、上述したＪａｖａカードのソフトウエア構成を模式的に示すものである。前述した通信ユニット（ＵＡＲＴ）１４、不揮発性メモリ（ＮＶ（ＥＥＰＲＯＭ））１５、バッテリレス式タイマ（ＢＴ）１７などのハードウエア（Ｈ／Ｗ）層２１は、ＯＳ（オペレーティングシステム）層２２のカードＯＳで制御される。ＯＳ層２２は、Ｊａｖａカードを動作させるための環境を含めたバーチャルマシン（Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ）、アプリケーション（アプレット）の管理をするＩ．Ｓ．Ｄ．（Ｉｓｓｕｅｒ  Ｓｅｃｕｒｉｔｙ  Ｄｏｍａｉｎ）、アプレットの関数であるＡＰＩといったモジュールがカードＯＳにのった状態となっていて、アプリケーション（アプレット）層２３が最上位に位置する。アプリケーション層２３は、たとえば、複数のアプレット（Ａｐｐｌｅｔ１、Ａｐｐｌｅｔ２、Ａｐｐｌｅｔ３）からなる。
【００１３】
バッテリレス式タイマ１７は、アプリケーションの使用可能な期間を示す有効時間（有効期間）が設定され、計時動作を開始するもので、電源の供給がなくても計時動作を行なう周知のタイマであり、一例としては、コンデンサの自然放電を利用したものがあげられる。コンデンサの充電量（放電量）をタイマ値とすることにより、任意の時間を設定することが可能である。計時時間が経過すると、タイマ値は減少し、最終的に「０」となり、自動的に、タイマ連動ビット部１８の設定値が変化する。このタイマ連動ビット部１８は、タイマ値が存在するときに「１」、タイマ値が「０」のときに「０」が設定される。
【００１４】
なお、ハードウエアの構成によっては、このタイマ連動ビット部１８を、不揮発性メモリ１５やＲＡＭ１３などのメモリに割り当て、タイマ値が「０」になった後や、時間が設定されたときに、スイッチでそのビットを書換えて代用することも可能である。
【００１５】
次に、このような構成において、アプリケーションの有効期間（有効時間）を管理、制御する方法について説明する。有効期間を管理、制御する方法としては、下記２つの方法が考えられる。
【００１６】
(1) アプリケーションがバッテリレス式タイマ制御用ＡＰＩを操作して制御する。
【００１７】
(2) ＯＳ層２２にて、アプリケーション動作時にバッテリレス式タイマ１７を直接制御する。
【００１８】
ここでは、(2) の方法について説明する。具体的には、たとえば、お祭りのようなイベント会場にて、そのイベント開催中にカード発行後、３時間だけ使用できる電子マネーを制御するアプリケーションを、バッテリレス式タイマ搭載のＪａｖａカード内の不揮発性メモリにロードした場合について説明する。したがって、この例の場合、ロードされたアプリケーションは、３時間後に自動的に削除あるいは動作不可能な状態にロックされることになる。
【００１９】
まず、有効期間設定ルーチンについて図３に示すフローチャートを参照して説明する。  
イベント会場にて電子マネーを使用したい利用者は、所定の手続きを経てＪａｖａカードを発行してもらう。当該Ｊａｖａカードは、外部装置である上位装置（カードリーダライタ（Ｒ／Ｗ））により、電子マネーを制御するアプリケーションを不揮発性メモリ１５にロードしておく（図３の丸数字「１」に対応）。この際、カード発行者は、当該Ｊａｖａカードに、アプリケーションを３時間の有効期間管理情報を付加した上でロード（あるいは、インストール）する（図３の丸数字「２」に対応）。
【００２０】
ＯＳ層２２のＩ．Ｓ．Ｄ．は、アプリケーションのロード中に、当該アプリケーションに有効期間管理情報が存在することを確認すると、そのアプリケーションの登録情報に有効期間制限有り（期間後削除）を設定し（図３の丸数字「３」に対応）、有効期間３時間分のタイマ値（有効時間）を、カードＯＳを経由してバッテリレス式タイマ１７にセットする（図３の丸数字「４」に対応）。
【００２１】
バッテリレス式タイマ１７は、有効期間３時間分のタイマ値がセットされると、タイマ連動ビット部１８に「１」をセットし（図３の丸数字「５」に対応）、タイマ値を減少させる。以降、バッテリレス式タイマ１７は、通電／非通電に関係なくタイマ値を減少させ、タイマ値が「０」になった時点で、タイマ連動ビット部１８に「０」をセットする（図３の丸数字「６」に対応）。
【００２２】
次に、発行後、実際にアプリケーションを使用するまでの処理ルーチンについて図４に示すフローチャートを参照して説明する。  
外部装置である上位装置（カードリーダライタ（Ｒ／Ｗ））にＪａｖａカードがセットされて通電され、リセットが解除されると（図４の丸数字「１」に対応）、ＣＰＵ１１がハードウエアの動作確認などのイニシャル処理を実行する。イニシャル処理の最後に、カードＯＳが不揮発性メモリ１５内の全アプリケーションの登録情報を検索する（図４の丸数字「３」に対応）。
【００２３】
この検索の結果、有効期間制限有りのアプリケーションが存在した場合、タイマ連動ビット部１８をチェックする（図４の丸数字「４」に対応）。このチェックの結果、タイマ連動ビット部１８が「１」の場合、そのアプリケーションに対して特別な処理は実施しない。したがって、そのアプリケーションは使用可能である。
【００２４】
上記チェックの結果、タイマ連動ビット部１８が「０」の場合、有効期間制限有りにて期間後削除となっているために、Ｉ．Ｓ．Ｄ．の関数を利用して、そのアプリケーションを削除する処理を実施する（図４の丸数字「５」に対応）。なお、有効期間制限有りにて期間後ロックとなっている場合には、やはりＩ．Ｓ．Ｄ．の関数を利用して、アプリケーションのライフサイクルをロックにすることも可能である。
【００２５】
削除（あるいはロック）等のアプリケーションに対しての処理に前後して、当該Ｊａｖａカードは、上位装置（カードリーダライタ（Ｒ／Ｗ））からコマンドを受信するが（図４の丸数字「２」に対応）、アプリケーションの削除等の処理が終わるまで、そのコマンド処理は待機する。
【００２６】
アプリケーションの削除等の処理が終了すると（図４の丸数字「６」に対応）、アプリケーションがそのまま存在していれば、アプリケーション用のコマンドを処理することが可能となり、電子マネーを制御して一連の処理をすることが可能となる。ただし、アプリケーションが削除されていると（ロックされていた場合にも）、アプリケーション用コマンドの処理が実施できないために、電子マネーを制御することは不可能となる。
【００２７】
上述した具体例には、さらに有効な機能が付加されている。それは、カードＯＳがＩ．Ｓ．Ｄ．の関数を使用してアプリケーションを削除することが可能であることである。現状のＪａｖａカードのアプリケーションでは、自動的にアプリケーションを削除することができない。そのために、有効期間を過ぎたアプリケーションは、カード発行者が改めて削除をしない限り、ゴミとしてＪａｖａカード内に存在してしまう。カードＯＳが自動的に削除する本機能はゴミを残さない点でも有効である。
【００２８】
このように、バッテリレス式タイマを備えたＩＣカードにおいて、カード内のバッテリレス式タイマを使用することによって、たとえ電源供給のない状態の期間が存在しても、また外部の情報（たとえば、システムやカードリーダライタの時間情報など）を必要としなくても、カード自身がアプリケーション（アプレット）の有効期限（有効時間）を管理、制御（たとえば、削除やロックなど）することが可能となる。
【図面の簡単な説明】
【００２９】
【図１】本発明の実施の形態に係るＩＣカードの一例としてＪａｖａカードのハードウエア構成を概略的に示すブロック図。
【図２】Ｊａｖａカードのソフトウエア構成を模式的に示す図。
【図３】有効期間設定ルーチンについて説明するフローチャート。
【図４】発行後、実際にアプリケーションを使用するまでの処理ルーチンについて説明するフローチャート。
【符号の説明】
【００３０】
１１…ＣＰＵ、１２…ＲＯＭ、１３…ＲＡＭ、１４…通信ユニット（ＵＡＲＴ）、１５…不揮発性メモリ（ＮＶ（ＥＥＰＲＯＭ））、１６…コプロセッサ（Ｃｏ−Ｐｒｏ）、１７…バッテリレス式タイマ（バッテリレス式タイマ手段）、１８…タイマ連動ビット部。
【図１】
2005173863.tif 000003
【図２】
2005173863.tif 000004
【図３】
2005173863.tif 000005
【図４】
2005173863.tif 000006