(57)【要約】【課題】通信上で一度に複数のコマンドを受けた場合でも、ファイルに不正が生じないように、トランザクション処理を実行可能とする。【解決手段】制御部１１において、通信部１２を通じて外部からファイルの選択を指示するコマンドが与えられるとき、そのコマンドの予め決められた位置に特定の固定値が挿入されているか否かを判定して、非トランザクション状態で固定値挿入有りと判定されたときはファイルの選択と同時にトランザクションの開始指示として受け付けてトランザクションの処理を開始する。また、トランザクションの処理中に特定の固定値挿入有りと判定されたときはコミットの指示として受け付け、対象とするファイル配下の全てのファイルに対してトランザクション中に行われた操作を一括反映する。【選択図】      図１
2014063314.tif 000002
【特許請求の範囲】
【請求項１】
外部との間で情報を送受する通信部と、
前記情報ファイルを格納する記憶部と、
外部から指示されるコマンド命令を解釈・実行する制御部と
を具備し、
前記制御部は、前記通信部を通じて外部からファイルの選択を指示するコマンドが与えられるとき、そのコマンドの予め決められた位置に特定の固定値が挿入されているか否かを判定して、非トランザクション状態で前記固定値挿入有りと判定されたときは前記専用ファイルの選択と同時にトランザクションの開始指示として受け付けて前記トランザクションの処理を開始し、前記トランザクションの処理中に前記特定の固定値挿入有りと判定されたときはコミットの指示として受け付け、対象とする専用ファイル配下の全てのファイルに対してトランザクション中に行われた操作を一括反映することを特徴とするＩＣカード。
【請求項２】
前記記憶部は、不揮発性メモリによるコミットバッファを備え、
前記制御部は、トランザクション開始指示を受けた際に前記専用ファイル配下の全てのファイルの内容を前記コミットバッファにコピーし、前記コミット指示を受けた際に、前記コミットバッファの内容を本来の領域に反映することを特徴とする請求項１記載のＩＣカード。
【請求項３】
前記制御部は、前記コミットの指示を受け、コミットバッファ上のファイルを本来のファイルに書き込みを行っている途中に電源断が発生した場合に備えて、前記コミットバッファにコミット中のファイルリストを保持することを特徴とする請求項２記載のＩＣカード。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、トランザクション開始、中断、コミット指示を受け付け、処理が可能なＩＣカードに関する。
【背景技術】
【０００２】
携帯電話などに挿入して使用されるＩＣカードはＵＩＭ（User Identify Module）カードと呼ばれる。このＵＩＭカードでは、遠隔サーバから携帯電話等を介してファイル管理コマンドを実行する「遠隔ファイル管理機能」をサポートすることが増えている。この遠隔ファイル管理において、コマンドレスポンスは携帯電話の持つ無線通信経路を介して授受されるため、無線通信の断絶に備える必要があり、一連の不可分なコマンドを処理する際にはトランザクション処理機能の実現が望まれる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００３−１１４７３１号公報
【特許文献２】特開２０００−１７２８０４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
以上のように、ＵＩＭカードと呼ばれるＩＣカードにあっては、遠隔ファイル管理において、コマンドレスポンスは携帯電話の持つ無線通信経路を介して授受されるため、無線通信の断絶に備える必要があり、一連の不可分なコマンドを処理する際には、通信上で一度に複数のコマンドを受けた場合でも、ファイル間の関係に不整合が生じないように、トランザクション処理機能の実現が望まれる。
【０００５】
本実施形態は上記の問題を解決するためになされたもので、通信上で一度に複数のコマンドを受けた場合でも、ファイル間の関係に不整合が生じないように、トランザクション処理を実行することのできるＩＣカードを提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記の課題を解決するために、本実施形態に係るＩＣカードは、外部との間で情報を送受する通信部と、前記情報ファイルを格納する記憶部と、外部から指示されるコマンド命令を解釈・実行する制御部とを具備する。前記制御部は、前記通信部を通じて外部からファイルの選択を指示するコマンドが与えられるとき、そのコマンドの予め決められた位置に特定の固定値が挿入されているか否かを判定して、非トランザクション状態で前記固定値挿入有りと判定されたときは前記ファイルの選択と同時にトランザクションの開始指示として受け付けて前記トランザクションの処理を開始し、前記トランザクションの処理中に前記特定の固定値挿入有りと判定されたときはコミットの指示として受け付け、対象とする専用ファイル配下の全てのファイルに対してトランザクション中に行われた操作を一括反映する。
【図面の簡単な説明】
【０００７】
【図１】実施形態のＩＣカードのハードウェア構成を示すブロック図である。
【図２】上記実施形態のトランザクション中のファイルリスト構造例を示す概略図である。
【図３】上記実施形態のコミット中のファイルリスト構造例を示す概略図である。
【図４】上記実施形態のＩＣカードの処理の流れを示すフローチャートである。
【発明を実施するための形態】
【０００８】
以下、図面を参照して本実施形態に係るＩＣカードを説明する。
【０００９】
尚、本実施形態において、コマンドはISO/IEC 7816で規定するＡＰＤＵ（Application Data Unit）形式をとるが、このＡＰＤＵのＩＣカードと外部の交換は、ETSI TS 102.226の５章で規定されるRemote APDU formatのように、ブロック単位で行われることを想定し、ISO/IEC 7816-3で規定されるいわゆるT=0プロトコルのようなキャラクタ伝送による交換は想定しないものとする。
【００１０】
図１は実施形態のＩＣカードとそのリーダライタ（読み出し書き込み装置）のハードウェア構成を示すブロック図である。図１において、ＩＣカード１は、ＣＰＵを備える制御部１１、ＩＣカードリーダライタ２との通信を行うためのＵＡＲＴ（Universal Asynchronous Receiver Transmitter）を備える通信部１２、プログラムコードが格納されるＲＯＭ（Read Only Memory）１３、ワーキングメモリとして一時データが記憶される揮発性メモリ（ＲＡＭ：Random Access Memory）１４、データの書き換えが可能な不揮発性メモリ（ＮＶＭ：Non-volatile memory）１５、およびそれらをつなぐシステムバス１６から構成される。ＮＶＭ１５はコミットバッファとして機能する。
【００１１】
一方、カードリーダライタ２は、ＩＣカード１と通信を行うためのＵＡＲＴを備える通信部２１を備え、図示しないサーバからの指示に応じてＩＣカード１との間で指示・命令、情報のやりとりを行う。
【００１２】
上記構成において、以下に本実施形態の処理機能について説明する。
【００１３】
本実施形態は、後述する新規SELECTコマンドによってトランザクションの開始、中止、およびコミットを実現する。表１に、従来のSELECTコマンドおよび新規SELECTコマンドによって、ISO/IEC 7816-3で規定されるＤＦ（Dedicated File：専用ファイル）が選択された際の動作を示す。尚、後述するトランザクション状態のＤＦリストを用いて、対象ＤＦがトランザクション状態か非トランザクション状態かを判別可能である。
【表１】
2014063314.tif 000003
【００１４】
ここで、ＩＣカード１が外部から受信するC-APDU（Command APDU）のSELECTコマンドは、通常、下記の表２に示すような構造を取る。この表ではC-APDU TLVの通常の構造を示している。
【表２】
2014063314.tif 000004
【００１５】
これに対し、本実施形態で提案する新規SELECTコマンドは、表３に示す構造とする。
【表３】
2014063314.tif 000005
【００１６】
すなわち、新規SELECTコマンドの構造は、表３に示すように、従来のＣＬＡ領域とＩＮＳ領域の間に固定値0xFFを挿入した構造を取る。
【００１７】
続いて、トランザクション状態のＤＦリストについて説明する。
【００１８】
ＩＣカード１は、ＲＡＭ１４にトランザクション中であるＤＦ本来のパスおよび後述するコミットバッファ上のパスをリストとして保持する。このリストの構造の例を図２に示す。ＩＣカード起動時には、このリスト（2バイト）は空であり、トランザクション開始指示を受けたＤＦの情報（ＤＦの本来のパスの長さ（1バイト）、ＤＦの本来のパス、コミットバッファ上のＤＦのパスの長さ（1バイト）、コミットバッファ上のＤＦのパス）は順次、本リストに追加される。また、コミット指示を受け実際にコミットが完了した際、およびトランザクション中止指示を受けたＤＦは、本リストから削除される。
【００１９】
ここで、ＩＣカード１はＮＶＭ１５にコミットバッファを持つ。トランザクション開始指示を受けたＤＦは、その配下の全てのファイルと共に本コミットバッファ上にコピーされる。また、コミット指示を受けた際には、コミットバッファ上のファイルで本来のパスにあるファイルの内容を上書きし、このコミットバッファ上のファイルを消去する。
【００２０】
一方、コミットの指示を受け、コミットバッファ上のファイルを本来のファイルに書き込みを行っている途中に電源断が発生した場合に備えて、ＩＣカード１はＮＶＭ１５にコミット中のファイルリスト（2バイト）を保持する。このファイルリストの構造を図３に示す。
【００２１】
すなわち、ＩＣカード１は、コミット実施直前に、コミット対象のＤＦ配下の全てのファイルへアクセスするためのアドレス（論理パス）をＮＶＭ１５にコミットファイルリスト（ファイルのパスの長さ（1バイト）、ファイルのパス、コミットバッファ上のファイルのパスの長さ（1バイト）、コミットバッファ上のファイルのパス）として書き込み、各ファイルのコミットが完了する毎に順次本領域のデータを削除する。ＩＣカード１は起動時にコミット中のファイル情報が存在するか否かを確認し、存在する場合にはコミットバッファに残されたデータをもとにコミットを行う。
【００２２】
上記の構成において、提案する実施形態の処理の流れを図４に示すフローチャートを参照して説明する。
【００２３】
まず、ステップＳ１において、ＩＣカード１はC-APDU TLVの受信を待機する。受信後、ステップＳ２へ進む。
【００２４】
ステップＳ２では、受信したコマンドがSELECTコマンドであるかどうかを確認する。具体的には、次のＳ２１〜Ｓ２３により確認する。
【００２５】
まず、CLAに続く1バイトの値が0xA4の場合（Ｓ２１）、受信したコマンドはSELECTコマンドであると認定し、ステップＳ３へ進む。また、ＣＬＡに続く2バイトの値が0xFF, 0xA4の場合（Ｓ２２）、受信したコマンドはSELECTコマンドであると認定し、ステップＳ３へ進む。上記Ｓ２１，Ｓ２２のどちらでもなかった場合（Ｓ２３）には、受信したコマンドはSELECTコマンドではないと認定してステップＳ４へ進む。
【００２６】
ステップＳ３は、SELECTコマンドで選択される対象がＤＦの場合はステップＳ５へ、それ以外の場合にはステップＳ４へ進む。ステップＳ４では、受信したコマンドに対応した所定の処理を実行する。処理結果を外部に出力し、ステップＳ１に戻ってコマンド受信の待機状態とする。
【００２７】
一方、ステップＳ５において、ＩＣカード１はＣＬＡ領域の次の1バイトの値を確認する。値が0xFFであった場合はステップＳ６へ、0xA4であった場合にはステップＳ９へ進む。
【００２８】
ステップＳ６において、受信したSELECTコマンドは、本実施形態で提案する新規SELECTコマンドである。このコマンドの選択対象のＤＦが、トランザクション状態のＤＦリストに含まれる場合にはステップＳ７へ、それ以外の場合にはステップＳ８へ進む。
【００２９】
ステップＳ７では、対象ＤＦに対するトランザクションをコミットし、ステップＳ１１へ進む。ステップＳ７のコミットは次の一連の処理により実現する。
【００３０】
まず、対象ＤＦの管理下の全てのファイルの、本来のパスとコミットバッファ上のパスをコミット中のファイルリストに追加する（Ｓ７１）。続いて、コミット中のファイルリストのファイルの一つに関して、コミットバッファ上の内容で本来の内容を上書し（Ｓ７２）。上書きしたファイルをコミット中のファイルリストから削除する（Ｓ７３）。さらに、コミット中のファイルリストが空になるまで上記の上書処理（Ｓ７２）と削除処理（Ｓ７３）を繰り返す（Ｓ７４）。最終的に、コミットバッファ上の対象ＤＦおよびＥＦ（Elementary File：基礎ファイル）ファイルを削除し（Ｓ７５）、トランザクション状態のＤＦリストから対象ＤＦを削除する（Ｓ７６）。
【００３１】
ステップＳ８では、対象ＤＦに対するトランザクションを開始し、ステップＳ１１へ進む。ステップＳ８のトランザクションの開始は、まず、コミットバッファ上に対象ＤＦと対象ＤＦ管理下の全てのファイルをコピーし（Ｓ８１）、対象ＤＦをトランザクション中のファイルリストに追加すること（Ｓ８２）により実現する。
【００３２】
ステップＳ９において、受信したSELECTコマンドは、従来のSELECTコマンドである。このコマンドの選択対象のＤＦが、トランザクション状態のＤＦリストに含まれる場合にはステップＳ１０へ、それ以外の場合にはステップＳ１１へ進む。
【００３３】
ステップＳ１０では、対象ＤＦに対するトランザクションを中止し、ステップＳ１１へ進む。トランザクションの中止は、コミットバッファ上の対象ＤＦおよびファイルを削除し（Ｓ１０１）、トランザクション状態のＤＦリストから対象ＤＦを削除すること（Ｓ１０２）で実現する。
【００３４】
最終的に、ステップＳ１１において、対象ＤＦを選択し、結果を出力して、ステップＳ１に戻る。
【００３５】
上記の処理動作を実行する本実施形態の構成によれば、トランザクション開始指示、コミット指示、トランザクション中断指示をコマンド受信時に同時に受け付けることが可能となり、ＤＦ単位でアトミックなトランザクション処理が可能となる。
【００３６】
尚、この発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
【符号の説明】
【００３７】
１…ＩＣカード、１１…制御部、１２…通信部、１３…ＲＯＭ、１４…揮発性メモリ（ＲＡＭ）、１５…不揮発性メモリ（ＮＶＭ）、１６…システムバス、２…ＩＣカードリーダライタ、２１…通信部。
【図１】
2014063314.tif 000006
【図２】
2014063314.tif 000007
【図３】
2014063314.tif 000008
【図４】
2014063314.tif 000009
【手続補正書】
【提出日】平成25年7月29日(2013.7.29)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】０００３
【補正方法】変更
【補正の内容】
【０００３】
【特許文献１】特開２００３−１１４８３１号公報
【特許文献２】特開２０００−１７２８０４号公報