(57)【特許請求の範囲】
【請求項１】
モジュールが埋め込まれたカード本体により構成されるＩＣカードであって、
前記モジュールは、
アプリケーションデータ、管理データ、及びセキュリティデータを記憶する記憶手段と、
アプリケーションのライフサイクルの変更命令に基づき、前記セキュリティデータが設定済みであることを条件として、前記管理データに含まれる発行ライフサイクルデータを運用ライフサイクルデータへ更新し、アプリケーションの実行命令に基づき、再度、前記セキュリティデータが設定済みであることを確認し、前記管理データに含まれる前記発行ライフサイクルデータが前記運用ライフサイクルデータへ更新されていることを条件として、前記アプリケーションデータによるアプリケーションを実行する制御手段と、
を備え、
前記制御手段は、前記アプリケーションのライフサイクルの変更命令に基づき、前記セキュリティデータが未設定であることを条件として、前記発行ライフサイクルデータを維持し、前記アプリケーションデータによるアプリケーションを実行不能に制御し、また、前記アプリケーションの実行命令に基づき、再度の確認において、前記セキュリティデータが設定されていないことを確認した場合にも、前記アプリケーションデータによるアプリケーションを実行不能に制御するＩＣカード。
【請求項２】
前記制御手段は、前記アプリケーションのライフサイクルの変更命令に基づき、前記セキュリティデータが設定済みであることを条件として、前記管理データに含まれるアプリケーション発行フェーズをアプリケーション運用フェーズへ更新し、正常を示すレスポンスを送信し、アプリケーションの実行命令に基づき、再度、前記セキュリティデータが設定済みであることを確認し、前記管理データに含まれる前記アプリケーション発行フェーズが前記アプリケーション運用フェーズへ更新されていることを条件として、前記アプリケーションデータによるアプリケーションを実行する、
ことを特徴とする請求項１に記載のＩＣカード。
【請求項３】
前記制御手段は、前記アプリケーションのライフサイクルの変更命令に基づき、前記セキュリティデータが未設定であることを条件として、前記管理データに含まれる前記アプリケーション発行フェーズを維持する、
ことを特徴とする請求項２に記載のＩＣカード。
【請求項４】
前記セキュリティデータは、対象鍵、非対象鍵、及びＰＩＮコードで構成されることを特徴とする請求項１乃至３の何れか１つのＩＣカード。
【請求項５】
モジュールが埋め込まれたカード本体により構成されるＩＣカードに適用される動作制御方法であって、
前記ＩＣカードに記憶されたアプリケーションのライフサイクルの変更命令に基づき、前記ＩＣカードに対してセキュリティデータが設定済みであることを条件として、前記ＩＣカードに記憶された管理データに含まれる発行ライフサイクルデータを運用ライフサイクルデータへ更新し、
アプリケーションの実行命令に基づき、再度、前記セキュリティデータが設定済みであることを確認し、前記ＩＣカードに記憶された前記管理データに含まれる前記発行ライフサイクルデータが前記運用ライフサイクルデータへ更新されていることを条件として、アプリケーションデータによるアプリケーションを実行し、
前記アプリケーションのライフサイクルの変更命令に基づき、前記セキュリティデータが未設定であることを条件として、前記発行ライフサイクルデータを維持し、前記アプリケーションデータによるアプリケーションを実行不能に制御し、また、前記アプリケーションの実行命令に基づき、再度の確認において、前記セキュリティデータが設定されていないことを確認した場合にも、前記アプリケーションデータによるアプリケーションを実行不能に制御することを特徴とする動作制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えば、ＣＰＵ、ＲＯＭ、ＲＡＭ、ＥＥＰＲＯＭなどの制御素子を有するＩＣ（Integrated Circuit）チップを内蔵するＩＣカードと称される情報記憶媒体に関する。さらに、本発明は、このような情報記憶媒体に適用される動作制御方法に関する。
【背景技術】
【０００２】
ＩＣカードは、クレジットカード、定期券、その他の商取引の決済に使われるだけでなく、社員証、会員証、保険証などのＩＤカードとしても様々な分野で使われるようになっている。これは、従来の磁気カードに比べ、ＩＣカードは、ＣＰＵ、ＲＯＭ、ＲＡＭ、ＥＥＰＲＯＭなどの制御素子を有するＩＣを備えることにより、様々な機能が実現可能となったこと、さらには偽造が難しいためセキュリティの面でも大きく向上したことが要因である。
【０００３】
この種のＩＣカードの用途をさらに広げようと、ＩＣカードに対して利用アプリケーションの運用時に必要なアプリケーションデータを適切に記憶させる技術が提案されている（特許文献１参照）。
【特許文献１】特開２００１−２１６１４９
【発明の開示】
【発明が解決しようとする課題】
【０００４】
上記したＩＣカードはライフサイクルを持っていて、そのライフサイクルは製造フェーズ、発行フェーズ、及び運用フェーズに分けられる。製造フェーズではＥＥＰＲＯＭ、ＦＲＡＭ、ＦＬＵＳＨにカードのシステム領域が設定される。発行フェーズは、一次発行フェーズ及び二次発行フェーズに細分でき、例えば、一次発行フェーズではファイル構成が作成され、二次発行フェーズでは重要データを含む各種データが設定され個人データが入力される。また、運用フェーズでは、取引が行われる。
【０００５】
発行フェーズのＩＣカードが、特定のコマンドを端末（ＩＣカードリーダ／ライタ）から受信すると、ＩＣカードは、発行フェーズから運用フェーズへ遷移する。なお、発行フェーズでは全てのＩＣカードに対して重要データが適切に設定されることが前提となっており、これにより運用フェーズでは全てのＩＣカードに対して重要データが設定されていることになる。
【０００６】
特に、発行フェーズから運用フェーズへ遷移する前に、ＩＣカードに対して重要データが設定されているか否かチェックはなされていない。そのため、重要データが未設定の状態のＩＣカード、例えば鍵データがＮＵＬＬ状態のＩＣカードが、発行フェーズから運用フェーズへ遷移されてしまう可能性がある。重要データが未設定の状態のＩＣカードからは、鍵データが用意に推測されてしまうことがあり、これにより、ＩＣカード上に実装されるアプリケーションが不正に利用されてしまうことがある。
【０００７】
ＩＣカードに対しては、近年更なる高度なセキュリティが求められており、上記したような重要データが未設定の状態のＩＣカードの不正利用を防止したいという要望が挙げられている。
【０００８】
本発明の目的は、ＩＣカードと称される情報記憶媒体の不正利用を防止する技術を提供することにある。
【課題を解決するための手段】
【０００９】
この発明の一実施形態に係る情報記憶媒体は、モジュールが埋め込まれたカード本体により構成される情報記憶媒体であって、前記モジュールは、アプリケーションデータ、管理データ、及びセキュリティデータを記憶する記憶手段と、アプリケーションのライフサイクルの変更命令に基づき、前記セキュリティデータが設定済みであることを条件として、前記管理データに含まれる第１のライフサイクルデータを第２のライフサイクルデータへ更新し、アプリケーションの実行命令に基づき、前記管理データに含まれる前記第１のライフサイクルデータが前記第２のライフサイクルデータへ更新されていることを条件として、前記アプリケーションデータによるアプリケーションを実行する制御手段とを備えている。
【００１０】
この発明の一実施形態に係る動作制御方法は、モジュールが埋め込まれたカード本体により構成される情報記憶媒体に適用される動作制御方法であって、前記情報記憶媒体に記憶されたアプリケーションのライフサイクルの変更命令に基づき、前記情報記憶媒体に対してセキュリティデータが設定済みであることを条件として、前記情報記憶媒体に記憶された管理データに含まれる第１のライフサイクルデータを第２のライフサイクルデータへ更新し、アプリケーションの実行命令に基づき、前記情報記憶媒体に記憶された前記管理データに含まれる前記第１のライフサイクルデータが前記第２のライフサイクルデータへ更新されていることを条件として、前記アプリケーションデータによるアプリケーションを実行する。
【発明の効果】
【００１１】
本発明によれば、ＩＣカードと称される情報記憶媒体の不正利用を防止する技術を提供できる。
【発明を実施するための最良の形態】
【００１２】
以下、図面を参照し、本発明の実施形態について説明する。
【００１３】
図１は、本発明の一実施形態に係るＩＣカードシステムの概略構成を示すブロック図である。図１に示すように、ＩＣカードシステムは、端末１０及びＩＣカード（情報記憶媒体）２０により構成される。端末１０は、本体１１、ディスプレイ１２、キーボード１３、ＩＣカードリーダ／ライタ１４を備えている。端末１０はＩＣカード２０と通信可能に構成されており、端末１０はＩＣカード２０に対してデータを送信したり、ＩＣカード２０からのデータを受信したりする。
【００１４】
本体１１は、アプリケーションを実行したり、入出力を司る。ディスプレイ１２は、ＩＣカード２０との通信結果等を表示する。キーボード１３は、本体１１に対して文字や数字等を入力する。カードリーダ／ライタ１４は、ＩＣカード２０と通信する。
【００１５】
なお、本実施形態では、ＩＣカード２０が接触式通信機能をサポートするケースについて説明するが、ＩＣカード２０は非接触式通信機能をサポートするものであってもよいし、接触式通信機能と非接触式通信機能の両者をサポートするコンビ型であってもよい。同様に、カードリーダ／ライタ１４が接触式通信機能をサポートするケースについて説明するが、カードリーダ／ライタ１４は非接触式通信機能をサポートするものであってもよいし、接触式通信機能と非接触式通信機能の両者をサポートするコンビ型であってもよい。
【００１６】
図２は、本発明の一実施形態に係る情報記憶媒体の概観を示す図である。図２に示すように、ＩＣカード２０はカード本体（プラスチックカード）により構成され、カード本体はＩＣチップ２１（モジュール）を備えている。
【００１７】
図３は、ＩＣチップ２１の概略構成を示す図である。図３に示すように、ＣＰＵ２３、ＲＡＭ２４、ＲＯＭ２５、ＥＥＰＲＯＭ２６、Ｉ／Ｏ２７、コプロセッサ２８、及びデータバス２９を備えている。なお、ＥＥＰＲＯＭ２６の替わりに、ＦＲＡＭ、ＦＬＵＳＨ等を適用してもよい。
【００１８】
ＲＯＭ２５は、ＩＣカードの各種プログラムを格納する。ＣＰＵ２３は、ＲＯＭ２５に格納されている各種プログラムを実行する。ＲＡＭ２４及びＥＥＰＲＯＭ２６は、ＣＰＵ２３による各種プログラム実行時に必要なデータを格納する。Ｉ／Ｏ２７は、カードリーダ／ライタ１４などの外部装置からコマンドを受け取り、また処理結果をレスポンスとして出力する。データバス２９は、ＣＰＵ２３、ＲＡＭ２４、ＲＯＭ２５、ＥＥＰＲＯＭ２６、Ｉ／Ｏ２７、及びコプロセッサ２８の間でデータを転送するためのバスである。
【００１９】
ＩＣカード２０は、例えばＥＥＰＲＯＭ２６は、重要データ及び個人データなどを格納する。セキュリティを確保するために、ＩＣカードに格納される重要データは暗号化され、またＩＣカードユーザに対して認証を要求する。
【００２０】
図４は、ＥＥＰＲＯＭ２６に格納されるデータの一例を示す図である。ＩＣカード２０のＥＥＰＲＯＭ２６は、アプリケーションデータ、管理データ、及びセキュリティデータを格納する。図４に示すように、管理データは、ライフサイクルフラグ２６１を含み、セキュリティデータは、例えば第１の重要データ２６２、第２の重要データ２６３、及び第３の重要データ２６４を含む。
【００２１】
ライフサイクルフラグ２６１は、ＩＣカードのライフサイクルを示す。つまり、ライフサイクルフラグ２６１は、ライフサイクルの遷移に対応し、書き換えられる。即ち、ライフサイクルフラグ２６１により、発行フェーズ又は運用フェーズが示される。第１の重要データ２６２は、例えば、暗号化する鍵と復号化する鍵は非対称なＲＳＡ鍵（非対称鍵）である。第２の重要データ２６３は、例えば、暗号化する鍵と復号化する鍵は対称なＤＥＳ鍵（対称鍵）である。第３の重要データ２６４は、ＰＩＮコードである。
【００２２】
ＩＣカード２０のＣＰＵ２３は、ＩＣカードリーダ／ライタ１４からのアプリケーションのライフサイクルの変更命令に基づき、重要データが設定済みであることを条件として、管理データに含まれるライフサイクルフラグ２６１を更新する（アプリケーション発行フェーズをアプリケーション運用フェーズへ更新し）。さらに、ＩＣカード２０のＣＰＵ２３は、ＩＣカードリーダ／ライタ１４からのアプリケーションの実行命令に基づき、管理データに含まれるライフサイクルフラグ２６１を参照し、アプリケーション発行フェーズがアプリケーション運用フェーズへ更新されていることを条件として、アプリケーションデータによるアプリケーションを実行する。
【００２３】
或いは、ＩＣカード２０のＣＰＵ２３は、ＩＣカードリーダ／ライタ１４からのアプリケーションのライフサイクルの変更命令に基づき、重要データが未設定であることを条件として、管理データに含まれるライフサイクルフラグ２６１を更新しない（アプリケーション発行フェーズのまま維持する）。これにより、ＩＣカード２０のＣＰＵ２３は、アプリケーションデータによるアプリケーションを実行不能に制御する。
【００２４】
以上により、重要データが未設定の状態のＩＣカードの不正利用を防止する。以下、その詳細についてさらに説明する。
【００２５】
図５は、ＩＣカード２０とＩＣカードリーダ／ライタ１４との間のコマンドの送受信のシーケンスの一例を示す図である。図６は、ＩＣカード２０の動作制御の一例を示すフローチャートである。
【００２６】
例えば、ＩＣカード２０が起動されると、ＩＣカードリーダ／ライタ１４からの発行コマンドを通じて、ＩＣカード２０に対して初期データやファイル構成が設定され、アプリケーションが搭載される。この時、アプリケーションのライフサイクルは発行フェーズに設定される。つまり、ライフサイクルフラグ２６１は発行フェーズを示す。
【００２７】
その後、図５で示されるように、ＩＣカードリーダ／ライタ１４は、対象のアプリケーションを選択するためのパラメータを指定したインタプリタコマンドをＩＣカードに送信する。ＩＣカード２０は、そのインタプリタコマンドを受信する。ＩＣカード２０は、受信したインタプリタコマンドにより指定されたアプリケーションを選択し、正常を示すレスポンスをＩＣカードリーダ／ライタ１４に送信する。
【００２８】
その後、ＩＣカードリーダ／ライタ１４は、対象のアプリケーションに設定されるデータを発行するためのインタプリタコマンドをＩＣカード２０に送信する。ＩＣカード２０は、そのインタプリタコマンドを受信し、受信したインタプリタコマンドにより発行されたデータを設定し（ＳＴ１）、正常を示すレスポンスをＩＣカードリーダ／ライタ１４に送信する。
【００２９】
その後、同様の動作を繰り返した後、ＩＣカードリーダ／ライタ１４は、アプリケーションのライフサイクルを運用フェーズに変更する指定をしたインタプリタコマンドをＩＣカード２０に送信する。ＩＣカード２０は、そのインタプリタコマンドを受信し（ＳＴ２）、対象のアプリケーションに重要データが設定済みであることを確認する。なお、重要データの設定はインタプリタコマンドで設定する方法であってもよいし、あらかじめアプリケーションに組み込まれていてもよい。
【００３０】
例えば、図６に示すように、第１の重要データ、第２の重要データ、第３の重要データが指定されている場合は、ＩＣカード２０は第１の重要データ、第２の重要データ、第３の重要データのすべてが設定済みかを確認し（ＳＴ３）（ＳＴ４）（ＳＴ５）、いずれかひとつでも設定がされていない場合は（ＳＴ３、ＮＯ）（ＳＴ４、ＮＯ）（ＳＴ５、ＮＯ）、アプリケーションのライフサイクルをアプリケーションの使用不可を示すフェーズに変更し（ＳＴ８）、使用不可を示すレスポンス（特定のステータスワード）をリーダライタに送信する（ＳＴ９）。或いは、ＩＣカード２０は第１の重要データ、第２の重要データ、第３の重要データのすべてが設定済みかを確認し、いずれかひとつでも設定がされていない場合は、アプリケーションのライフサイクルを発行フェーズのまま維持し、使用不可を示すレスポンス（特定のステータスワード）をリーダライタに送信する。この後、例えばＩＣカードリーダ／ライタ１４が、ＩＣカード２０内部のレコードを読み出すパラメータを指定したインタプリタコマンドをＩＣカード２０に送信しても、ＩＣカード２０は、使用不可を示すレスポンスをＩＣカードリーダ／ライタ１４に送信するのみである。
【００３１】
或いは、ＩＣカード２０は第１の重要データ、第２の重要データ、第３の重要データのすべてが設定済みかを確認し（ＳＴ３）（ＳＴ４）（ＳＴ５）、すべてが設定されている場合は（ＳＴ３、ＹＥＳ）（ＳＴ４、ＹＥＳ）（ＳＴ５、ＹＥＳ）、アプリケーションのライフサイクルを運用フェーズに変更し（ＳＴ６）、正常を示すレスポンス（正常を示すステータスワード）をリーダライタに送信する（ＳＴ７）。
【００３２】
上記に詳述したように、本実施形態のＩＣカード２０は、運用フェーズへの移行時に重要データが正しく発行されていることを確認してから運用フェーズへ移行するため、ＩＣカードに搭載されるアプリケーションのセキュリティが大幅に向上する。
【００３３】
さらに、ＩＣカード２０は、アプリケーションの実行命令に基づき、再度、第１の重要データ、第２の重要データ、第３の重要データのすべてが設定済みかを確認し、ライフサイクルフラグ２６１が運用フェーズへ更新されていることを条件として、アプリケーションを実行する。つまり、アプリケーションの実行時にも、再度、重要データが適切に設定されていることを確認してから、アプリケーションを実行する。仮に、重要データが適切に設定されていない場合には、アプリケーションを実行不能に制御してしまう。
【００３４】
なお、アプリケーション実行の度に重要データの設定を再確認するのではなく、アプリケーションを最初に実行するときにだけ重要データの設定を再確認するようにして、処理負荷を軽減するようにしてもよい。
【００３５】
また、ライフサイクルフラグ２６１を採用せずに（ライフサイクルフラグ２６１の更新を必須とせずに）、アプリケーション実行時に重要データの設定を確認するだけでもよい。つまり、ＩＣカード２０は、アプリケーションの実行命令に基づき、第１の重要データ、第２の重要データ、第３の重要データのすべてが設定済みかを確認し、アプリケーションを実行する。仮に、重要データが設定されていない場合には、アプリケーションを実行不能に制御する。なお、アプリケーション実行の度に重要データの設定を確認するのではなく、アプリケーションを最初に実行するときにだけ重要データの設定を確認するようにして、処理負荷を軽減するようにしてもよい。
【００３６】
或いは、アプリケーション実行時に重要データをチェックする方法として、ライフサイクルをＯＳ（オペレーティングシステム）とアプリケーションでひとつずつ管理する方法が考えられる。ＯＳのライフサイクルは、ＯＳのライフサイクルを遷移させるコマンドで変更される。またアプリケーションのライフサイクルは、上記の通りアプリケーション実行時に内部でセキュリティデータの設定を確認し、設定されていれば運用フェーズに変更される。なお、ＯＳのライフサイクルが運用フェーズのときにのみアプリケーションに処理が渡されることを前提とする。
【００３７】
なお、本願発明は、上記実施形態に限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で種々に変形することが可能である。また、各実施形態は可能な限り適宜組み合わせて実施してもよく、その場合組み合わせた効果が得られる。更に、上記実施形態には種々の段階の発明が含まれており、開示される複数の構成要件における適当な組み合わせにより種々の発明が抽出され得る。例えば、実施形態に示される全構成要件からいくつかの構成要件が削除されても、発明が解決しようとする課題の欄で述べた課題が解決でき、発明の効果の欄で述べられている効果が得られる場合には、この構成要件が削除された構成が発明として抽出され得る。
【図面の簡単な説明】
【００３８】
【図１】ＩＣカードシステムの概略構成を示すブロック図である。
【図２】本発明の一実施形態に係る情報記憶媒体の概観を示す図である。
【図３】ＩＣチップの概略構成を示す図である。
【図４】ＥＥＰＲＯＭに格納されるデータの一例を示す図である。
【図５】ＩＣカードとＩＣカードリーダ／ライタとの間のコマンドの送受信のシーケンスの一例を示す図である。
【図６】ＩＣカードの動作制御の一例を示すフローチャートである。
【符号の説明】
【００３９】
１０…端末、１４…ＩＣカードリーダ／ライタ、２０…ＩＣカード、２１…ＩＣチップ、２３…ＣＰＵ、２４…ＲＡＭ、２５…ＲＯＭ、２６…ＥＥＰＲＯＭ、２７…Ｉ／Ｏ、２８…コプロセッサ、２９…データバス
【図１】
0005075549.tif 000002
【図２】
0005075549.tif 000003
【図３】
0005075549.tif 000004
【図４】
0005075549.tif 000005
【図５】
0005075549.tif 000006
【図６】
0005075549.tif 000007