(57)【要約】【課題】安全性の高いＩＣカード、電子装置、及び携帯可能電子装置を提供する。【解決手段】実施形態によれば、ＩＣカードは、通信部と、生成部と、第１記録部と、消去部と、を備える。通信部は、外部装置とデータを送受信する。生成部は、前記通信部が受信するセッションキーの生成を要求するコマンドに応じてセッションキーを生成する。第１記録部は、前記生成部が生成した前記セッションキーを記録する。消去部は、前記第１記録部が記録した前記セッションキーの保持期間が閾値を超過した場合に前記セッションキーを消去する。【選択図】図２
2014174722.tif 000002
【特許請求の範囲】
【請求項１】
外部装置からのコマンドを実行するＩＣカードにおいて、
外部装置とデータを送受信する通信部と、
前記通信部が受信するセッションキーの生成を要求するコマンドに応じてセッションキーを生成する生成部と、
前記生成部が生成した前記セッションキーを記録する第１記録部と、
前記第１記録部が記録した前記セッションキーの保持期間が閾値を超過した場合に前記セッションキーを消去する消去部と、
を備えるＩＣカード。
【請求項２】
さらに、タイマを備え、
前記消去部は、前記タイマの値が閾値に達した場合に、前記セッションキーを消去する、
前記請求項１に記載のＩＣカード。
【請求項３】
さらに、前記消去部が前記セッションキーを消去した後に前記通信部が前記セッションキーを必要とするコマンドを受信した場合に、前記セッションキーが消去されたことを示す応答を前記通信部により前記外部装置へ送信する送信部を備える、
前記請求項１又は２の何れか１項に記載のＩＣカード。
【請求項４】
さらに、前記セッションキーの保持期間に対する前記閾値を記録する第２記録部を備える、
前記請求項１乃至３の何れか１項に記載のＩＣカード。
【請求項５】
さらに、前記セッションキーを用いてアクセスするデータごとに、前記消去部によるセッションキーの消去を実行するか否かを示す消去可否情報を記録する第３記録部を備え、
前記消去部は、前記第３記録部が記録する前記消去可否情報に基づいて、時間経過によってセッションキーを消去するか否か決定する、
前記請求項１乃至４の何れか１項に記載のＩＣカード。
【請求項６】
前記通信部は、外部装置と接触してデータを送受信する、
前記請求項１乃至５の何れか１項に記載のＩＣカード。
【請求項７】
前記セッションキーの保持期間は、コマンドの受信待ちの期間である、
前記請求項１乃至６の何れか１項に記載のＩＣカード。
【請求項８】
前記セッションキーの保持期間は、前記通信部が前記セッションキーを必要とするコマンドを受信した場合にリセットされる、
前記請求項１乃至７の何れか１項に記載のＩＣカード。
【請求項９】
外部装置からのコマンドを実行するＩＣカードにおいて、
外部装置とデータを送受信する通信部と、前記通信部が受信するセッションキーの生成を要求するコマンドに応じてセッションキーを生成する生成部と、前記生成部が生成した前記セッションキーを記録する第１記録部と、前記第１記録部が記録した前記セッションキーの保持期間が閾値を超過した場合に前記セッションキーを消去する消去部と、を備えるモジュールと、
前記モジュールを収納した本体と、
を備えるＩＣカード。
【請求項１０】
外部装置からのコマンドを実行する電子装置において、
外部装置とデータを送受信する通信部と、
前記通信部が受信するセッションキーの生成を要求するコマンドに応じてセッションキーを生成する生成部と、
前記生成部が生成した前記セッションキーを記録する第１記録部と、
前記第１記録部が記録した前記セッションキーの保持期間が閾値を超過した場合に前記セッションキーを消去する消去部と、
を備える電子装置。
【請求項１１】
外部装置からのコマンドを実行する携帯可能電子装置において、
外部装置とデータを送受信する通信部と、
前記通信部が受信するセッションキーの生成を要求するコマンドに応じてセッションキーを生成する生成部と、
前記生成部が生成した前記セッションキーを記録する第１記録部と、
前記第１記録部が記録した前記セッションキーの保持期間が閾値を超過した場合に前記セッションキーを消去する消去部と、
を備える携帯可能電子装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、ＩＣカード、電子装置、及び携帯可能電子装置に関する。
【背景技術】
【０００２】
電子装置の１つであるＩＣカードは、処理装置からの命令を実行するために、セッションキーを生成するものがある。従来、ＩＣカードは、電源がオフになるまでセッションキーを保持する。そのため、ＩＣカードは、長時間にわたりセッションキーを保持することになる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平４−２５６１９６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上記の課題を解決するため、安全性の高いＩＣカード、電子装置、及び携帯可能電子装置を提供する。
【課題を解決するための手段】
【０００５】
実施形態によれば、ＩＣカードは、通信部と、生成部と、第１記録部と、消去部と、を備える。通信部は、外部装置とデータを送受信する。生成部は、前記通信部が受信するセッションキーの生成を要求するコマンドに応じてセッションキーを生成する。第１記録部は、前記生成部が生成した前記セッションキーを記録する。消去部は、前記第１記録部が記録した前記セッションキーの保持期間が閾値を超過した場合に前記セッションキーを消去する。
【図面の簡単な説明】
【０００６】
【図１】図１は、実施形態に係るＩＣカードとＩＣカード処理装置とを有するＩＣカード処理システムの構成例を示すブロック図である。
【図２】図２は、実施形態に係るＩＣカードの構成例を示すブロック図である。
【図３】図３は、実施形態に係るＩＣカードのライフサイクルの例を示すフローチャートである。
【図４】図４は、実施形態に係るＩＣカードのＮＶＭに記憶されるファイルの管理構造の例を示す図である。
【図５】図５は、実施形態に係るＩＣカードのＮＶＭの構成例を示す図である。
【図６】図６は、実施形態に係るＩＣカードのＮＶＭに記録されるＤＦ定義情報の構成例を示す図である。
【図７】図７は、実施形態に係るＩＣカードのＮＶＭに記録されるセッションキー制御情報の構成例を示す図である。
【図８】図８は、実施形態に係るＩＣカードのＲＡＭに記録されるセッションキー管理情報の構成例を示す図である。
【図９】図９は、実施形態に係るＩＣカードの動作例を説明するためのフローチャートである。
【図１０】図１０は、実施形態に係るＩＣカードのセッションキー設定処理の動作例を説明するためのフローチャートである。
【図１１】図１１は、実施形態に係るＩＣカードのセッションキー消去処理の動作例を説明するためのフローチャートである。
【図１２】図１２は、実施形態に係るＩＣカードのコマンド実行処理の動作例を説明するためのフローチャートである。
【発明を実施するための形態】
【０００７】
実施形態に係る電子装置は、外部装置とデータ通信を確立し、外部装置が送信するコマンドに従って動作する。外部装置は、電子装置へコマンドを送信する。電子装置は、受信されたコマンドに従って動作し、動作結果などを格納したレスポンスを外部装置へ送信する。
【０００８】
電子装置は、外部装置からのコマンドを実行するため、コマンドを受信する前にセッションキーを生成し格納しておく必要がある。電子装置は、セッションキーを格納する間においてセッションキーを必要とするコマンドを外部装置から受信した場合、受信されたコマンドを実行することができる。
【０００９】
また、電子装置は、セッションキーを生成した後、所定の時間経過するとセッションキーを消去する。電子装置は、セッションキーを消去した後に、セッションキーを必要とするコマンドを受信しても、受信されたコマンドを実行することができない。
【００１０】
以下、図面を参照しながら、詳細に説明する。  
図１は、実施形態に係る電子装置としてのＩＣカード２と、ＩＣカード２と通信を行う外部装置としてのＩＣカード処理装置１の構成例について説明するためのブロック図である。
【００１１】
図１が示す構成例において、ＩＣカード処理装置１は、基本的な構成として、制御部１１、ディスプレイ１２、操作部１３及びカードリーダライタ１４などを有する。なお、図１が示すような構成の他に、必要に応じた構成を具備したり特定の構成を除外したりしてもよい。
【００１２】
制御部１１は、ＩＣカード処理装置１全体の動作を制御するものである。制御部１１は、ＣＰＵ、種々のメモリ及び各種インターフェースなどにより構成される。たとえば、制御部１１は、パーソナルコンピュータ（ＰＣ）により構成されるようにしても良い。  
制御部１１は、カードリーダライタ１４によりＩＣカード２へコマンドを送信する機能、ＩＣカード２から受信するレスポンスなどのデータを基に種々の処理を行う機能などを有する。たとえば、制御部１１は、カードリーダライタ１４を介して操作部１３で入力されたデータ又は所定のデータなどを含む書き込みコマンドをＩＣカード２に送信することにより、ＩＣカード２に当該データの書き込み処理を要求する制御を行う。
【００１３】
ディスプレイ１２は、制御部１１の制御により種々の情報を表示する表示装置である。ディスプレイ１２は、たとえば、液晶モニタなどである。  
操作部１３は、ＩＣカード処理装置１の使用者によって、種々の操作指示及びデータなどが入力される。操作部１３は、入力された操作指示及びデータなどを制御部１１へ送信する。操作部１３は、たとえば、キーボード、テンキー、及び、タッチパネルなどである。
【００１４】
カードリーダライタ１４は、ＩＣカード２との通信を行うためのインターフェース装置である。カードリーダライタ１４は、ＩＣカード２の通信方式に応じたインターフェースにより構成される。カードリーダライタ１４は、ＩＣカード２のコンタクト部と物理的かつ電気的に接続するための接触部などにより構成される。
【００１５】
カードリーダライタ１４は、制御部１１による制御に基づいてＩＣカード２の活性化（起動）、種々のコマンドの送信、及び送信したコマンドに対する応答（レスポンス）の受信などを行なう。
【００１６】
次に、ＩＣカード２について説明する。  
ＩＣカード２は、ＩＣカード処理装置１などの上位装置から電力などの供給を受けて活性化される（動作可能な状態になる）ようになっている。たとえば、ＩＣカード２は、通信インターフェースとしてのコンタクト部を介してＩＣカード処理装置１からの動作電源及び動作クロックの供給を受けて活性化される。
【００１７】
次に、ＩＣカード２の構成例について説明する。  
図２は、実施形態に係るＩＣカード２の構成例を概略的に示すブロック図である。  
ＩＣカード２は、プラスチックなどで形成されたカード状の筐体（本体）Ｃ内にモジュールＭが内蔵されている。モジュールＭは、１つまたは複数のＩＣチップＣａと通信用の外部インターフェース（通信インターフェース）とが接続された状態で一体的に形成され、本体Ｃ内に埋設されている。また、ＩＣカード２のモジュールＭは、図２が示すように、ＣＰＵ２１、ＮＶＭ２２、ＲＡＭ２３、ＲＯＭ２４、通信部２５、および、割り込みタイマ２６などを有してしている。
【００１８】
ＣＰＵ２１は、ＩＣカード２全体の制御を司るものである。ＣＰＵ２１は、ＲＯＭ２４あるいはＮＶＭ２２に記憶されている制御プログラムおよび制御データに基づいて動作することにより、種々の機能を実現する。たとえば、ＣＰＵ２１は、オペレーティングシステムのプログラムを実行することにより、ＩＣカード２の基本的な動作制御を行う。また、ＣＰＵ２１は、ＩＣカード２の利用目的に応じたアプリケーションプログラムを実行することにより、ＩＣカード２の運用形態に応じた種々の動作制御を行う。なお、各種の機能のうちの一部は、ハードウエア回路により実現されるものであっても良い。この場合、ＣＰＵ２１は、ハードウエア回路により実行される機能を制御する。
【００１９】
ＮＶＭ２２は、データの書き込み及び書換えが可能な不揮発性のメモリにより構成される。たとえば、ＮＶＭ２２は、ＥＥＰＲＯＭ（Electrically  Erasable  Programmable  Read-Only  Memory）、又はフラッシュＲＯＭなどである。ＮＶＭ２２には、ＩＣカード２の運用用途に応じた制御プログラムあるいは種々のデータが書込まれる。ＮＶＭ２２には、ＩＣカード２の規格に応じた種々のファイルが定義され、それらのファイルに種々のデータが書き込まれる。ＮＶＭ２２に格納されるファイル構成例については、後述する。
【００２０】
ＲＡＭ２３は、ＲＡＭなどの揮発性のメモリである。また、ＲＡＭ２３は、ＣＰＵ２１が処理中のデータなどを一時保管するバッファとして機能する。たとえば、ＲＡＭ２３は、受信用バッファ、計算用バッファ、送信用バッファなどを備える。受信用バッファとしては、通信部２５を通じてＩＣカード処理装置１から送信されたコマンドを保持する。計算用バッファとしては、ＣＰＵ２１が種々の計算をするため一時的な結果を保持する。送信用バッファとしては、通信部２５を通じてＩＣカード処理装置１に送信するデータを保持する。
【００２１】
また、ＲＡＭ２３は、セッションキー管理情報を格納する記録領域２３ａなどを有する。記録領域２３ａが格納するセッションキー管理情報（以下、セッションキー管理情報２３ａ）については、後述する。
【００２２】
ＲＯＭ２４は、予め制御用のプログラムや制御データなどが記憶されている不揮発性のメモリである。ＲＯＭ２４には、ＩＣカード２の製造段階で制御プログラムあるいは制御データなどが記憶された状態でＩＣカード２内に組み込まれる。つまり、ＲＯＭ２４に記憶されている制御プログラムあるいは制御データは、ＩＣカード２の基本的な動作を司るものであり、予め当該ＩＣカード２の仕様に応じて組み込まれる。
【００２３】
通信部２５は、ＩＣカード処理装置１のカードリーダライタ１４との通信を行うためのインターフェースである。通信部２５は、ＩＣカード処理装置１のカードリーダライタ１４と物理的かつ電気的に接触して信号の送受信を行うための通信制御部とコンタクト部とにより構成される。たとえば、ＩＣカード２が携帯電話などで利用されるＳＩＭカードである場合、通信部２５は、携帯電話などと信号の送受信を行う通信部とコンタクト部とにより構成される。
【００２４】
割り込みタイマ２６は、割り込み処理が実行される時間をＣＰＵ２１に知らせるタイマである。割り込み処理とは、ＣＰＵ２１が行っている処理を強制的に停止させ他の処理を行うことをいう。即ち、割り込みタイマ２６が計時を開始してから所定の時間を経過すると、割り込みタイマ２６は、割り込み処理の開始を知らせる割り込み開始信号をＣＰＵ２１へ送信する。
【００２５】
割り込みタイマ２６は、セッションキーの保持期間が閾値を超過したかをチェックする。  
割り込みタイマ２６は、ＣＰＵ２１からの命令に基づいてカウンタのカウントアップを開始する機能、カウンタが所定のカウント数（カウント閾値）に達した場合にＣＰＵ２１へ割り込み開始信号を送信する機能などを有する。
【００２６】
たとえば、ＣＰＵ２１は、カウント閾値を設定するカウント閾値設定信号を送信し、割り込みタイマ２６にカウント閾値を設定する。ＣＰＵ２１がカウント閾値を設定した後、所定のタイミングで、ＣＰＵ２１は、割り込みタイマ２６へカウンタのカウントアップを開始する命令を送信する。割り込みタイマ２６は、ＣＰＵ２１からの命令に従ってカウンタのカウントアップを開始する。即ち、割り込みタイマ２６は、所定の時間間隔でカウンタをインクリメントする。カウンタの値がカウント閾値に達すると、割り込みタイマ２６は、割り込み処理の開始を知らせる割り込み開始信号をＣＰＵ２１へ送信する。
【００２７】
また、割り込みタイマ２６は、ＣＰＵ２１からの命令に基づいてカウンタをリセットする機能、ＣＰＵ２１からの命令に基づいてカウンタのカウントアップを一時的に停止する機能、及び、ＣＰＵ２１からの命令に基づいてカウンタのカウントアップを再開する機能なども有する。  
なお、割り込みタイマ２６は、ＣＰＵ２１がソフトウェアを実行することによって実現されてもよい。
【００２８】
次に、ＩＣカード２の初期化から破棄までのライフサイクルについて説明する。  
図３は、ＩＣカード２のライフサイクルについて説明するためのフローチャートである。  
まず、ＩＣカード２は、モジュールＭを筐体に埋設などの製造工程により製造される。製造直後の状態において、ＩＣカード２は、ＮＶＭ２２内に何もデータが書き込まれていない状態である。製造されたＩＣカード２には、発行処理における最初の発行フェーズとして初期化処理が実行される。即ち、発行処理装置は、製造されたＩＣカード２に対して初期化処理を実行させる（ステップ１）。初期化処理は、ＩＣカード２のＮＶＭ２２内のシステム領域に、ＯＳなどの基本的なデータ、プログラム管理テーブル及びプログラムコードなどを書き込む処理である。
【００２９】
初期化処理が完了したＩＣカード２には、次の発行フェーズとして一次発行が行われる。即ち、発行処理装置は、初期化処理が完了したＩＣカード２に対して一次発行処理を実行させる（ステップ２）。一次発行処理は、ＩＣカード２のＮＶＭ２２内にファイル定義情報領域にファイル定義情報などを書き込み、ファイル創生などを行う処理である。
【００３０】
一次発行処理が完了したＩＣカード２には、次の発行フェーズとして二次発行が行われる。即ち、発行処理装置は、一次発行処理が完了したＩＣカード２に対して二次発行処理を実行させる（ステップ３）。二次発行処理は、ＩＣカード２のＮＶＭ内のファイルデータ領域に、ＩＣカード２の運用に必要なファイルデータなどを書き込む処理である。たとえば、二次発行処理では、運用時にＩＣカード２を使用するユーザの情報などが書き込まれる。
【００３１】
二次発行処理が完了したＩＣカード２は、実際に運用が開始される（ステップ４）。たとえば、二次発行が完了したＩＣカード２は、ユーザに手渡され、ＩＣカード２が提供するサービスに沿った運用がなされる。運用を開始したＩＣカード２は、所定の運用条件に従って運用された後に破棄される（ステップ５）。たとえば、ＩＣカード２は、サービスの提供終了、所定の有効期間の経過、あるいは、動作の不具合などが発生した場合に破棄される。
【００３２】
なお、各発行フェーズで使用される発行処理装置は、同一の装置であってもよいし、異なる装置であってもよい。また、ステップ１及びステップ２で使用される発行処理装置は、ＩＣカード２の製造工場などにあってもよい。ステップ３で使用される発行処理装置は、ＩＣカード２を使用するサービスを提供する店舗などにあってもよい。
【００３３】
次に、ＮＶＭ２２に格納されるファイルについて説明する。  
図４は、ＮＶＭ２２に格納されるファイルの構造例を示す図である。  
図４が示すように、ＮＶＭ２２は、ＭＦ（Master File）、ＤＦ(Dedicated File)１並びに２および、ＥＦ(Elementary File)１並びに２などからなる階層構造を有する複数のファイル群が定義される。
【００３４】
図４が示す例では、最上階層のＭＦ（マスターファイル）の下の階層には、ＤＦ１及びＤＦ２が存在する。たとえば、１つのＤＦは、ＩＣカード２が具備する１つのアプリケーションを実現するためのデータが格納される。ＩＣカードが複数のアプリケーションによって複数の機能を実現している場合は、ＮＶＭ２２は、各アプリケーションに対応する複数のＤＦを格納しても良い。また、ＤＦの下の階層に、さらに他のＤＦが存在してもよい。
【００３５】
また、図４が示す例では、ＭＦ（マスターファイル）の下の階層に、ＥＦ１が存在し、ＤＦ１の下の階層に、ＥＦ２が存在している。ＥＦ１及びＥＦ２は、各種のデータを格納するためのデータファイルである。ＥＦ１及びＥＦ２には、所定のデータ構造のうち何れかのデータ構造でデータが格納される。たとえば、ＥＦ１及びＥＦ２は、識別子（タグ（Tag））、長さ情報（レングス(Length)）、および、データ部（バリュー（Value））が順に連結されるＴＬＶ構造のオブジェクトデータが格納されるファイルであっても良いし、バイナリーデータを記憶するファイルであっても良い。  
なお、ＮＶＭ２２が格納するＤＦ及びＥＦは、特定の個数に限定されるものではない。また、ＮＶＭ２２に格納されるファイルの階層構造は、特定の構造に限定されるものではない。
【００３６】
次に、ＩＣカード２のＮＶＭ２２の構成例について説明する。  
図５は、ＩＣカード２のＮＶＭ２２の構成例を示す図である。  
図５が示すように、ＮＶＭ２２は、システム領域３１、ファイル定義情報領域３２及びファイルデータ領域３３などを備える。
【００３７】
システム領域３１は、ＩＣカード２の基本的な動作を司るＯＳ、及びＯＳを制御するためのデータなどを格納する。たとえば、システム領域３１は、ＯＳなどの基本的なデータ、プログラム管理テーブル及びプログラムコードなどを格納する。
【００３８】
ファイル定義情報領域３２は、各ファイルのファイル定義情報を格納する。ファイル定義情報は、ＮＶＭ２２が格納するファイルを定義する情報である。ファイル定義情報については、後述する。  
ファイルデータ領域３３は、各ファイルのデータエリアを格納する。データエリアは、ファイル定義情報が定義するファイルの実データである。
【００３９】
図５が示す構成例において、ファイルは、ファイル定義情報領域３２が記憶するファイル定義情報と、ファイルデータ領域３３においてファイル定義情報が定義するデータエリアとにより構成される。たとえば、ＤＦは、ファイル定義情報領域３２が記憶するＤＦ定義情報で定義される。また、ＥＦは、ファイル定義情報領域３２が記憶するＥＦ定義情報とファイルデータ領域３３においてそのＥＦ定義情報が定義するデータエリアとにより構成される。
【００４０】
次に、ＤＦ定義情報について説明する。  
図６は、ＩＣカード２のＮＶＭ２２が格納するＤＦ定義情報の構成例を示す図である。  
ＤＦ定義情報は、ＮＶＭ２２が格納するＤＦを定義する情報である。
【００４１】
図６が示すように、ＤＦ定義情報は、ファイルタイプ４１、ＤＦ管理番号４２、ＤＦ名長４３、ＤＦ名４４、セキュリティ属性４５、セッションキー制御情報４６、及びチェックコード４７などから構成される。
【００４２】
ファイルタイプ４１は、ＤＦの形式を示す。ＤＦ管理番号４２は、ＤＦを識別するためのＤＦ固有の識別番号である。ＤＦ名長は、ＤＦ名の長さを示す。ＤＦ名は、外部装置がＤＦを選択する際にＤＦを外部装置がＤＦを識別するための名称である。セキュリティ属性４５は、ＣＰＵ２１がＤＦのアプリケーションを実行する際に参照するセキュリティ情報である。セッションキー制御情報４６は、ＣＰＵ２１がセッションキーを制御するために利用する情報である。セッションキー制御情報４６については、後述する。チェックコード４７は、ＤＦ定義情報が正確に読み込まれたかチェックするためのコードである。  
なお、ＤＦ定義情報は、他の要素を備えてもよく、ＤＦ定義情報の構成は、特定の構成に限定されるものではない。
【００４３】
次に、セッションキーについて説明する。  
セッションキーは、ＩＣカード２がアプリケーションを実行するために必要となる認証キーである。即ち、ＩＣカード２は、アプリケーションを実行する前に、アプリケーションに対応するセッションキーを生成しＲＡＭ２３に格納しておかなければならない。たとえば、セッションキーは、ＩＣカード処理装置１が秘密鍵で暗号化したデータをＩＣカード２が復号化したデータであってもよい。セッションキーの生成方法は、特定の方法に限定されるものではない。
【００４４】
また、ＩＣカード２がアプリケーションを実行するために必要なセッションキーは、アプリケーションごとに異なる。即ち、アプリケーションごとに必要なセッションキーが予め設定されており、ＩＣカード２は、実行されるアプリケーションに応じたセッションキーを生成する必要がある。
【００４５】
なお、全てのアプリケーションに対して全て互いに異なるセッションキーが設定されてもよい。また、複数のアプリケーションに対して１つのセッションキーが設定されてもよい。また、全てのアプリケーションに対して同一のセッションキーが設定されてもよい。また、セッションキーを必要としないアプリケーションがあってもよい。
【００４６】
ＩＣカード処理装置１は、後に続くコマンドによって実行されるアプリケーションに応じたセッションキーを生成するセッションキー生成コマンドをＩＣカード２へ送信する。ＩＣカード２は、ＩＣカード処理装置１が送信するセッションキー生成コマンドに基づいて、セッションキーを生成する。
【００４７】
次に、セッションキー制御情報４６について説明する。  
図７は、セッションキー制御情報４６の構成例を示す図である。  
前述の通り、セッションキー制御情報４６は、セッションキーを制御するための情報である。即ち、セッションキー制御情報４６は、ＩＣカード２が時間経過によってセッションキーを消去するか否か、及び、セッションキーを消去するまでの時間などを示す。
【００４８】
図７が示すように、セッションキー制御情報４６は、セッションキー消去フラグ５１及びセッションキー消去カウンタ５２などを備える。  
セッションキー消去フラグ５１は、ＩＣカード２が時間経過によってセッションキーを消去するか否かを示す。セッションキー消去フラグ５１が「消去可」を示す場合、ＩＣカード２は、セッションキーを生成してから所定の時間が経過した際にセッションキーを消去する。また、セッションキー消去フラグ５１が「消去不可」を示す場合、ＩＣカード２は、ＩＣカード処理装置１からの電力供給がなくなるまで、又は、セッションキーを消去するコマンドを受信するまで、セッションキーを保持する。
【００４９】
セッションキー消去カウンタ５２は、セッションキー消去カウンタ５２は、セッションキーを消去するまでの保持時間を示す。即ち、セッションキー消去カウンタ５２が格納する値は、割り込みタイマ２６がこの値までカウンタをカウントすると保持時間が経過している値である。つまり、セッションキー消去カウンタ５２をカウンタ閾値として設定された割り込みタイマ２６は、保持時間が経過すると、割り込み開始信号をＣＰＵ２１に送信する。
【００５０】
次に、ＲＡＭ２３が格納するセッションキー管理情報２３ａについて説明する。  
図８は、セッションキー管理情報２３ａの構成例を示す図である。  
セッションキー管理情報２３ａは、ＩＣカード２がセッションキーの制御に必要な情報である。
【００５１】
図８が示すように、セッションキー管理情報２３ａは、セッションキー６１、アプリケーション識別情報６２、及びセッションキー消去済みフラグ６３などから構成される。  
セッションキー６１は、ＩＣカード処理装置１が送信したセッションキー生成コマンドに基づいて生成されたセッションキーである。
【００５２】
アプリケーション識別情報６２は、現在選択されているＤＦ（アプリケーション）のＤＦ定義情報を示す情報を格納する。たとえば、アプリケーション識別情報６２は、現在選択されているＤＦのＤＦ定義情報を格納してもよいし、ＤＦ定義情報を格納するエリアの先頭アドレスを格納してもよい。アプリケーション識別情報６２が示すＤＦのアプリケーションは、実行にセッションキー６１を必要とするアプリケーションである。
【００５３】
セッションキー消去済みフラグ６３は、セッションキー６１が消去されたかを示す。セッションキー消去済みフラグ６３が「未消去」である場合、セッションキー管理情報２３ａは、セッションキー６１を保持している。セッションキー消去済みフラグ６３が「消去済み」である場合、セッションキー６１はすでに消去され、セッションキー管理情報２３ａは、セッションキー６１を保持していない。
【００５４】
セッションキー消去済みフラグ６３は、セッションキー６１が格納されると同時に格納される。即ち、ＣＰＵ２１は、セッションキー６１をセッションキー管理情報２３ａに格納すると同時に、セッションキー消去済みフラグ６３として「未消去」を示す情報をセッションキー管理情報２３ａに格納する。
【００５５】
次に、ＩＣカード２の動作例について説明する。  
ここでは、ＩＣカード処理装置１は、セッションキー生成コマンド、実行コマンドの順番で各コマンドをＩＣカード２へ送信するものとする。また、ＩＣカード処理装置１からの選択コマンドによって、ＩＣカード２は、すでにＤＦを選択しているものとする。
【００５６】
まず、ＩＣカード２のＣＰＵ２１は、ＩＣカード処理装置１からセッションキー生成コマンドを受信する。セッションキー生成コマンドを受信すると、ＣＰＵ２１は、セッションキー生成コマンドに基づいてセッションキー６１を生成し、生成されたセッションキー６１をセッションキー管理情報２３ａに格納する。セッションキー６１を格納すると、ＣＰＵ２１は、セッションキー管理情報２３ａに「未消去」を示す情報をセッションキー消去済みフラグ６３として格納する。セッションキー消去済みフラグ６３を格納すると、ＣＰＵ２１は、セッションキー管理情報２３ａ内のアプリケーション識別情報６２を参照し、アプリケーション識別情報６２が示すＤＦのセッションキー制御情報４６を取得する。
【００５７】
ＤＦのセッションキー制御情報４６を取得すると、ＣＰＵ２１は、セッションキー制御情報４６を参照し、割り込みタイマ２６にセッションキー消去カウンタ５２をカウンタ閾値として設定する。カウンタ閾値を設定すると、ＣＰＵ２１は、セッションキーの生成に成功したことを示すレスポンスをＩＣカード処理装置１へ送信する。レスポンスを送信すると、ＣＰＵ２１は、割り込みタイマ２６を開始する。
【００５８】
ＣＰＵ２１が他の処理をしている間にも、割り込みタイマ２６は、カウンタをカウントアップする。カウンタの値がカウンタ閾値に達すると、割り込みタイマ２６は、割り込み処理を開始する割り込み開始信号をＣＰＵ２１へ送信する。
【００５９】
ＣＰＵ２１は、割り込み開始信号を受信すると、割り込み処理として、セッションキー消去処理を行う。即ち、ＣＰＵ２１は、現在行っている処理を強制的に停止し、セッションキー消去処理を行う。以下、セッションキー消去処理について説明する。
【００６０】
まず、ＣＰＵ２１は、セッションキー管理情報２３ａからセッションキーを消去する。セッションキーを消去すると、ＣＰＵ２１は、セッションキー管理情報２３ａのセッションキー消去済みフラグ６３を「未消去」から「消去済み」へ書き換える。セッションキー消去済みフラグ６３を「消去済み」へ書き換えると、ＣＰＵ２１は、セッションキー消去処理を終了する。
【００６１】
ＩＣカード処理装置１は、セッションキーの生成に成功したことを示すレスポンスを受信した後に、実行コマンドをＩＣカード２へ送信する。
【００６２】
ＣＰＵ２１は、実行コマンドを受信すると、実行コマンドに基づいてアプリケーションを実行しようとする。この時点において、ＣＰＵ２１がセッションキー消去処理を行っていなければ（即ち、割り込みタイマ２６のカウンタがカウント閾値に達していなければ）、ＣＰＵ２１は、実行コマンドに基づいてアプリケーションを実行する。アプリケーションを実行すると、ＣＰＵ２１は、アプリケーションの実行結果を示すレスポンスをＩＣカード処理装置１へ送信する。レスポンスをＩＣカード処理装置１へ送信すると、ＣＰＵ２１は、割り込みタイマ２６のカウンタをリセットする。割り込みタイマ２６は、カウンタをリセットされた後に再度カウントを開始する。
【００６３】
また、この時点において、ＣＰＵ２１がセッションキー消去処理を行っていると（即ち、割り込みタイマ２６のカウンタがカウント閾値に達していると）、ＣＰＵ２１は、アプリケーションを実行することができない。この場合、ＣＰＵ２１は、セッションキーが消去されたことを示すレスポンスをＩＣカード処理装置１へ送信する。
【００６４】
割り込みタイマ２６のカウンタをリセットした場合、又は、セッションキーが消去されたことを示すレスポンスを送信した場合、ＣＰＵ２１は、動作を終了する。
【００６５】
図９は、ＩＣカード２の動作例を説明するためのフローチャートである。  
まず、ＩＣカード２のＣＰＵ２１は、ＩＣカード処理装置１から初期応答（Ａｎｓｗｅｒ  Ｔｏ  Ｒｅｓｅｔ（ＡＴＲ））を行う（ステップ１１）。ＩＣカード処理装置１は、初期応答によってＩＣカード２を特定する。
【００６６】
初期応答を行うと、ＣＰＵ２１は、割り込みタイマ２６を無効化する（ステップ１２）。即ち、ＣＰＵ２１は、割り込みタイマ２６を、割り込みタイマ２６のカウントを開始させるカウント開始信号を受信してもカウントを開始しない状態にする。ＣＰＵ２１は、割り込みタイマ２６を無効化する信号を割り込みタイマ２６へ送信し、割り込みタイマ２６を無効化する。また、同時に、ＣＰＵ２１は、ＣＰＵ２１は、割り込みタイマ２６のカウンタ及びカウント閾値をリセットしてもよい。
【００６７】
割り込みタイマ２６を無効化すると、ＣＰＵ２１は、カウントを開始させるカウンタ開始信号を割り込みタイマ２６へ送信する（ステップ１３）。割り込みタイマ２６が無効化されている場合、割り込みタイマ２６は、カウンタ開始信号を受信してもカウントを開始しない。また、割り込みタイマ２６が有効化されている場合、割り込みタイマ２６は、カウント開始信号を受信すると、カウントを開始する。また、割り込みタイマ２６がカウントをすでに開始している場合、割り込みタイマ２６は、カウント開始信号を受信すると、カウンタをリセットし、再度カウントを開始する。
【００６８】
カウントを開始させる信号を割り込みタイマ２６へ送信すると、ＣＰＵ２１は、通信部２５を通じてＩＣカード処理装置１からコマンドを受信したか判定する（ステップ１４）。コマンドを受信していないと判定すると（ステップ１４、ＮＯ）、ＣＰＵ２１は、ステップ１４へ戻り、コマンドの送信を待つ。
【００６９】
コマンドを受信したと判定すると、ＣＰＵ２１は、割り込みタイマ２６を停止する（ステップ１５）。即ち、ＣＰＵ２１は、カウントを停止させる信号を割り込みタイマ２６へ送信する。割り込みタイマ２６がカウンタのカウントアップを開始している場合、割り込みタイマ２６は、当該信号を受信すると、カウンタのカウントアップを停止する。割り込みタイマ２６がカウンタのカウントアップを開始していない場合、割り込みタイマ２６は、当該信号を受信しても、何らの動作もしない。
【００７０】
割り込みタイマ２６を停止すると、ＣＰＵ２１は、受信されたコマンドがセッションキー生成コマンドであるか判定する（ステップ１６）。受信されたコマンドがセッションキー生成コマンドであると判定すると（ステップ１６、ＹＥＳ）、ＣＰＵ２１は、セッションキー設定処理を行う（ステップ１７）。セッションキー設定処理については、後述する。また、受信されたコマンドがセッションキー生成コマンドでないと判定すると（ステップ１６、ＮＯ）、ＣＰＵ２１は、コマンド処理を行う（ステップ１８）。コマンド処理については、後述する。
【００７１】
セッションキー設定処理を行った場合（ステップ１７）、又は、コマンド処理を行った場合（ステップ１８）、ＣＰＵ２１は、通信部２５を通じてＩＣカード処理装置１へレスポンスを送信する（ステップ１９）。即ち、ＣＰＵ２１は、セッションキー設定処理又はコマンド処理を行った際にＲＡＭ２３の送信バッファに格納されたレスポンスをＩＣカード処理装置１へ送信する。  
レスポンスを送信すると、ＣＰＵ２１は、ステップ１３へ戻る。
【００７２】
次に、セッションキー設定処理（ステップ１７）について説明する。  
図１０は、ＣＰＵ２１がセッションキー設定処理を行う際の動作例を説明するためのフローチャートである。  
まず、ＣＰＵ２１は、セッションキー生成コマンドの実行条件をチェックする（ステップ３１）。たとえば、ＣＰＵ２１は、セッションキー生成コマンドが破損していないかなどをチェックする。
【００７３】
実行条件が満たされていると判定すると（ステップ３２、ＹＥＳ）、ＣＰＵ２１は、セッションキー６１を生成する（ステップ３３）。セッションキー６１を生成すると、ＣＰＵ２１は、生成されたセッションキー６１を設定する（ステップ３４）。即ち、ＣＰＵ２１は、生成されたセッションキー６１をＲＡＭ２３内にあるセッションキー管理情報２３ａに格納する。
【００７４】
セッションキーを設定すると、ＣＰＵ２１は、セッションキー管理情報２３ａ内にあるセッションキー消去済みフラグ６３を「未消去」に設定する（ステップ３５）。即ち、ＣＰＵ２１は、セッションキー消去済みフラグ６３として「未消去」を示す情報をセッションキー管理情報２３ａに格納する。
【００７５】
セッションキー消去済みフラグ６３を「未消去」に設定すると、ＣＰＵ２１は、アプリケーション識別情報６２を参照して、生成されたセッションキー６１が時間経過によって消去されるセッションキーであるか否か判定する（ステップ３６）。
【００７６】
アプリケーション識別情報６２がＤＦ定義情報を格納する場合、ＣＰＵ２１は、アプリケーション識別情報６２が格納するＤＦ定義情報の中からセッションキー制御情報４６を抽出し、セッションキー消去フラグ５１を取得する。ＣＰＵ２１は、取得されたセッションキー消去フラグ５１に基づいて、生成されたセッションキー６１が時間経過によって消去されるセッションキーであるか否か判定する。
【００７７】
また、アプリケーション識別情報６２がＤＦ定義情報を格納するエリアの先頭アドレスを格納する場合、ＣＰＵ２１は、アプリケーション識別情報６２から当該先頭アドレスを取得し、取得された先頭アドレスに基づいてＮＶＭ２２からＤＦ定義情報を検索する。ＣＰＵ２１は、検索されたＤＦ定義情報の中からセッションキー制御情報４６を抽出し、セッションキー消去フラグ５１を取得する。ＣＰＵ２１は、取得されたセッションキー消去フラグ５１に基づいて、生成されたセッションキーが時間経過によって消去されるセッションキーであるか否か判定する。
【００７８】
生成されたセッションキー６１が時間経過によって消去されるセッションキーであると判定すると（ステップ３６、ＹＥＳ）、ＣＰＵ２１は、割り込みタイマ２６にカウント閾値を設定する（ステップ３７）。即ち、ＣＰＵ２１は、ステップ３６で抽出されたセッションキー制御情報４６から、セッションキー消去カウンタ５２を取得する。ＣＰＵ２１は、取得されたセッションキー消去カウンタ５２の値をカウント閾値と設定するカウント閾値設定信号を割り込みタイマ２６に送信する。
【００７９】
割り込みタイマ２６にカウント閾値を設定すると、ＣＰＵ２１は、割り込みタイマ２６を有効化する（ステップ３８）。即ち、ＣＰＵ２１は、割り込みタイマ２６を、カウント開始信号を受信するとカウントを開始する状態にする。ＣＰＵ２１は、割り込みタイマ２６を有効化する信号を割り込みタイマ２６へ送信し、割り込みタイマ２６を有効化する。
【００８０】
割り込みタイマ２６を有効化した場合（ステップ３８）、又は、生成されたセッションキー６１が時間経過によって消去されるセッションキーでないと判定した場合（ステップ３６、ＮＯ）、ＣＰＵ２１は、セッションキー生成成功を示すレスポンスを生成し、生成されたレスポンスをＲＡＭ２３の送信バッファに格納する（ステップ３９）。
【００８１】
また、実行条件が満たされていないと判定すると（ステップ３２、ＮＯ）、ＣＰＵ２１は、セッションキー生成失敗を示すレスポンスを生成し、生成されたレスポンスをＲＡＭ２３の送信バッファに格納する（ステップ４０）。
【００８２】
セッションキー生成成功を示すレスポンスを生成した場合（ステップ３９）、又は、セッションキー生成失敗を示すレスポンスを生成した場合（ステップ４０）、ＣＰＵ２１は、セッションキー設定処理を終了する。
【００８３】
次に、セッションキー消去処理について説明する。  
割り込みタイマ２６のカウンタがカウント閾値に達したことで割り込みタイマ２６が割り込み開始信号をＣＰＵ２１へ送信した場合に、ＣＰＵ２１は、セッションキー消去処理を開始する。ＣＰＵ２１は、割り込み開始信号を受信すると、他の処理を停止し、割り込み処理としてセッションキー消去処理を開始する。
【００８４】
図１１は、セッションキー消去処理の動作例を説明するためのフローチャートである。  
まず、ＣＰＵ２１は、セッションキー６１を消去する（ステップ５１）。即ち、ＣＰＵ２１は、ＲＡＭ２３内にあるセッションキー管理情報２３ａからセッションキー６１を消去する。
【００８５】
セッションキーを消去すると、ＣＰＵ２１は、セッションキー管理情報２３ａ内のセッションキー消去済みフラグ６３を「未消去」から「消去済み」へ書き換える（ステップ５２）。  
セッションキー消去済みフラグ６３を「未消去」から「消去済み」へ書き換えると、ＣＰＵ２１は、セッションキー消去処理を終了する。
【００８６】
なお、ＣＰＵ２１がコマンドを受信している間に割り込み開始信号を受信した場合、ＣＰＵ２１は、セッションキー消去処理を行わずコマンドを実行してもよい。また、ＣＰＵ２１がセッションキー消去処理を行っている間にコマンドを受信した場合、ＣＰＵ２１は、セッションキー消去処理を中断してもよい。
【００８７】
次に、セッションキー生成コマンド以外のコマンド処理（ステップ１８）の動作例について説明する。  
たとえば、コマンドは、書き込みコマンド、読み込みコマンド、又は、データ消去コマンドなどであってもよい。コマンドは、セッションキー生成コマンド以外であれば特定のコマンドに限定されるものではない。
【００８８】
図１２は、セッションキー生成コマンド以外のコマンド処理の動作例を説明するためのフローチャートである。  
まず、ＣＰＵ２１は、コマンドの実行条件をチェックする（ステップ４１）。たとえば、ＣＰＵ２１は、受信されるコマンドが破損していないかなどをチェックする。
【００８９】
実行条件が満たされていると判定すると（ステップ４２、ＹＥＳ）、ＣＰＵ２１は、セッションキー管理情報２３ａにセッションキー６１があるか否か判定する（ステップ４３）。
【００９０】
セッションキー６１があると判定すると（ステップ４３、ＹＥＳ）、ＣＰＵ２１は、受信されたコマンドを実行する（ステップ４４）。受信されたコマンドを実行すると、ＣＰＵ２１は、実行結果を示すレスポンスを生成し、生成されたレスポンスを送信バッファに格納する（ステップ４５）。
【００９１】
セッションキー６１がないと判定すると（ステップ４３、ＮＯ）、ＣＰＵ２１は、セッションキー消去済みフラグ６３が「消去済み」であるか否か判定する（ステップ４６）。即ち、ＣＰＵ２１は、セッションキー管理情報２３ａのセッションキー消去済みフラグ６３を参照し、「消去済み」を示す情報が格納されているか判定する。
【００９２】
セッションキー消去済みフラグ６３が「消去済み」であると判定すると（ステップ４６、ＹＥＳ）、ＣＰＵ２１は、セッションキー６１が消去されたことを示すレスポンスを生成し、生成されたレスポンスを送信バッファに格納する（ステップ４７）。
【００９３】
セッションキー消去済みフラグ６３が「消去済み」でないと判定すると（ステップ４６、ＮＯ）、ＣＰＵ２１は、セッションキー６１が存在しないことを示すレスポンスを生成し、生成されたレスポンスを送信バッファに格納する（ステップ４８）。
【００９４】
実行結果を示すレスポンスを生成した場合（ステップ４５）、セッションキー６１が消去されたことを示すレスポンスを生成した場合（ステップ４７）、又は、セッションキー６１が存在しないことを示すレスポンスを生成した場合（ステップ４８）、ＣＰＵ２１は、コマンド処理を終了する。
【００９５】
なお、ＣＰＵ２１は、セッションキー６１を生成した直後に割り込みタイマ２６にカウント開始信号を送信してもよい。  
また、ＣＰＵ２１は、コマンド処理を実行した後、割り込みタイマ２６のカウンタをリセットせずに割り込みタイマ２６にカウンタのカウントアップを命令してもよい。即ち、ＣＰＵ２１は、ステップ１３でカウンタを再開させる信号を割り込みタイマ２６へ送信してもよい。
【００９６】
また、割り込みタイマ２６は、ソフトウェアによって実現されてもよい。この場合、ＣＰＵ２１は、カウンタをカウントアップする。カウンタがカウンタ閾値に達すると、ＣＰＵ２１は、セッションキー消去処理を実行する。また、ＣＰＵ２１は、セッションキー６１の生成から所定の時間が経過した場合に、セッションキー消去処理を実行してもよい。
【００９７】
また、ＩＣカード２は、非接触でＩＣカード処理装置１と通信してもよい。この場合、ＩＣカード２の通信部２５は、ＩＣカード処理装置１のカードリーダライタ１４との無線通信を行うための変復調回路などの通信制御部および電波を送受信するためのアンテナなどにより構成されてもよい。
【００９８】
また、ＣＰＵ２１が割り込みタイマ２６に設定するカウンタ閾値は、外部装置からの命令によって指定されてもよい。また、ＣＰＵ２１がセッションキーを時間経過によって消去するか否かは、外部装置からの命令によって決定されてもよい。
【００９９】
また、ＣＰＵ２１が複数の通信チャネルを確立する場合、又は、ＣＰＵ２１が複数のＤＦを選択する場合、ＲＡＭ２３は、複数個のセッションキー管理情報２３ａを格納してもよい。
【０１００】
以上のように構成されるＩＣカードは、セッションキーを生成してから所定の時間経過した場合にセッションキーを消去する。その結果、ＩＣカードは、長期にわたりセッションキーを保持することがなく、ＩＣカードのセキュリティが高まる。また、ＩＣカードが接触型である場合、ＩＣカードは、長期にわたり動作可能となる。この場合、時間経過によってセッションキーを消去することは、ＩＣカードのセキュリティの向上により効果的である。  
また、ＩＣカードがコマンドを実行するたびに割り込みタイマをリセットすることで、ＩＣカード２は、定期的に利用されるセッションキーを保持し続けることができる。
【０１０１】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【０１０２】
１…ＩＣカード処理装置、２…ＩＣカード、２１…ＣＰＵ、２２…ＮＶＭ（第２記録部、第３記録部）、２３…ＲＡＭ（第１記録部）、２３ａ…セッションキー管理情報、２５…通信部、２６…割り込みタイマ（計時部）、４６…セッションキー制御情報、５１…セッションキー消去フラグ（消去可否情報）、５２…セッションキー消去カウンタ（閾値）、６１…セッションキー、６２…アプリケーション識別情報、６３…セッションキー消去済みフラグ。
【図１】
2014174722.tif 000003
【図２】
2014174722.tif 000004
【図３】
2014174722.tif 000005
【図４】
2014174722.tif 000006
【図５】
2014174722.tif 000007
【図６】
2014174722.tif 000008
【図７】
2014174722.tif 000009
【図８】
2014174722.tif 000010
【図９】
2014174722.tif 000011
【図１０】
2014174722.tif 000012
【図１１】
2014174722.tif 000013
【図１２】
2014174722.tif 000014