(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0014】
<第1実施形態>
[ICカードの構成例]
図1を参照して、本実施形態におけるICカード(記憶媒体装置の一例)100の構成例について説明する。なお、同図においては、ICカードを対象として発行処理を行うICカード発行装置200をともに示している。
ICカード発行装置200は、ICカード100に対する発行処理として、DF(Dedicated File:専用ファイル)あるいはEF(Elementary File:基礎ファイル)が格納されるファイル格納領域を記憶媒体103の記憶領域に作成する処理を行うことができる。このように、ICカード100の記憶媒体103の記憶領域にファイル格納領域を作成する処理は、ファイル生成などとも呼ばれる。
【0015】
DFは、下位のEFやDFをグループ化するためのファイルである。
EFは、データを格納するファイルである。EFは、IEF(Internal Elementary File:内部基礎ファイル)とWEF(作業基礎ファイル)との2つの種別に分けられる。
【0016】
IEF(第1種別ファイルの一例)は、セキュリティのためのキーデータが格納されるファイルである。IEFは、セキュリティ上、ICカード100から外部への出力が不可のファイルであり、ICカード100の内部においてのみ使用される。
WEF(第2種別ファイルの一例)は、ICカード100から外部への出力が可能なファイルである。WEFは、例えば、ユーザに付与されたポイントに関する情報などの一般的なデータを格納する。
【0017】
同図に示すICカード100は、通信部101、制御部102及び記憶媒体103を備える。
通信部101は、ICカード発行装置200をはじめとする外部通信装置と通信を実行する。通信部101による外部通信装置との通信は接触式であってもよいし非接触式であってもよい。
【0018】
制御部102は、ICカード100における各種制御を実行する。制御部102としての機能は、例えば制御部102において備えられるCPU(Central Processing Unit)が、記憶媒体103に記憶されたプログラムを実行することにより実現される。
本実施形態における制御部102は、ファイル生成に関連する機能部としてファイル格納領域作成部121を備える。
【0019】
ファイル格納領域作成部121は、記憶領域の分割の指示(記憶領域分割コマンド)が通信部101にて受信されるのに応じて、記憶媒体103が有する記憶領域を複数の分割領域に分割する。本実施形態において、通信部101が受信する記憶領域の分割の指示は、ICカード発行装置200が送信する記憶領域分割コマンドである。
【0020】
また、ファイル格納領域作成部121は、IEFを格納するIEF格納領域の作成の指示が通信部101にて受信されるのに応じて、複数の分割領域のうちの1つの分割領域の先頭から順にIEF格納領域を作成する。
本実施形態において、IEFを格納するIEF格納領域の作成の指示は、ICカード発行装置200が送信するファイル領域作成コマンドのうち、格納対象のEFとしてIEFを指定するファイル領域作成コマンドである。
【0021】
また、ファイル格納領域作成部121は、WEFを格納するWEF格納領域の作成の指示が通信部101にて受信されるのに応じて、IEF格納領域が作成される分割領域とは異なる分割領域の先頭から順にWEF格納領域を作成する。
本実施形態において、WEFを格納するWEF格納領域の作成の指示は、ICカード発行装置200が送信するファイル領域作成コマンドのうち、格納対象のEFとしてWEFを指定するファイル領域作成コマンドである。
【0022】
記憶媒体103は、制御部102が利用する各種の情報を記憶する。記憶媒体103が対応するハードウェアは、例えばEEPROM(Electrically Erasable Programmable Read-Only Memory)やフラッシュメモリなどである。
【0023】
図2は、記憶媒体103の記憶領域についてのメモリマッピング例を示している。同図に示すように、記憶媒体103の記憶領域は、ファイル管理領域AR1、システム領域AR2及びユーザデータ領域AR3を備える。
ファイル管理領域AR1は、システム領域AR2、ユーザデータ領域AR3に記憶されるデータをファイル単位で管理するファイル管理情報が記憶される領域である。本実施形態におけるファイル管理領域AR1には、例えばFAT(File Allocation Table)ファイルシステムに対応したファイル管理情報が格納される。
【0024】
システム領域AR2は、OS(Operating System)、各種設定情報などをはじめとするシステム情報が記憶される領域である。
ユーザデータ領域AR3は、アプリケーションが使用するユーザデータが記憶される領域である。本実施形態において、DF、EF(IEF、WEF)は、ユーザデータ領域AR3に記憶される。
なお、記憶媒体103の記憶領域においては、ファイル管理領域AR1、システム領域AR2及びユーザデータ領域AR3以外の領域が含まれていてもよい。
【0025】
[一般的なファイル格納領域の作成例]
本実施形態におけるファイル格納領域の作成(ファイル生成)について説明するのに先立ち、一般的なファイル格納領域の作成例について説明する。なお、以降のファイル生成に関する説明にあたっては、説明を簡単で分かりやすくすることの便宜上、WEFとIEFとに対応するファイル格納領域を作成する場合を例に挙げる。
【0026】
図3は、ICカード100の記憶媒体103のユーザデータ領域AR3におけるファイル格納領域の作成結果の一例を示している。以降の説明にあたり、IEF格納領域とは、IEFを格納するファイル格納領域であり、WEF格納領域とは、WEFを格納するファイル格納領域である。
【0027】
同図には、ユーザデータ領域AR3の先頭アドレスから順に、WEF格納領域(1)、IEF格納領域(1)、IEF格納領域(2)、WEF格納領域(2)、IEF格納領域(3)、WEF格納領域(3)、WEF格納領域(4)、WEF格納領域(5)、IEF格納領域(4)が作成された状態が示されている。
このように、ユーザデータ領域AR3において作成されるIEF格納領域とWEF格納領域とは連続して配置されてもよい。
具体的には、WEF格納領域(1)とIEF格納領域(1)のように、WEF格納領域に続けてIEF格納領域が作成されてよい。また、IEF格納領域(3)とWEF格納領域(3)のように、IEF格納領域に続けてWEF格納領域が作成されてもよい。
【0028】
ICカード発行装置200は、ファイル生成に際して、各ファイル格納領域において格納可能なファイルの最大サイズをそれぞれ決定し、決定した最大サイズに基づきファイル格納領域のサイズを決定する。また、ICカード発行装置200は、ファイル格納領域のそれぞれに対応してファイル識別子を決定する。そして、ICカード発行装置200は、ファイル識別子とファイル格納領域のサイズを指定してファイル格納領域の作成をICカード100に指示する。
【0029】
ICカード100は、指定されたファイル識別子に対応するファイル格納領域を記憶媒体103のユーザデータ領域AR3に作成する。このために、ICカード100は、指定されたファイル識別子に対応して、指定されたサイズの領域がユーザデータ領域AR3において確保されるようにファイル管理情報を更新する。
【0030】
図3のように作成された各ファイル格納領域には、以降における所定の発行処理によって、所定の内容を有するファイルのデータが格納される。同じファイル格納領域であっても、格納されるファイルの内容は実装されるアプリケーションなどに応じて異なる。そして、例えば外部のリーダライタがICカード100からWEFを読み出す際には、
図4に示す構造によるファイル読出コマンドをICカード100に送信する。
【0031】
図4に示すファイル読出コマンドは、先頭から順に、コマンドヘッダCH、第1パラメータP1、第2パラメータP2、レスポンス長Leが配列された構造を有する。
コマンドヘッダCHは、当該コマンドの種別を示す。ファイル読出コマンドの場合、コマンドヘッダCHには、ファイル読出コマンドであることを示す所定値が格納される。
ファイル読出コマンドの場合の第1パラメータP1、第2パラメータP2による領域は、読み出し対象のWEFを指定するWEF指定情報を格納する。具体的に、WEF指定情報は、読み出し対象のWEFを一意に示すファイル識別子を示す。
レスポンス長Leは、レスポンスの長さを指定する。即ち、ファイル読出コマンドの場合におけるレスポンス長Leは、読み出すべきデータ長(サイズ)を示す。以降において、レスポンス長Leが示すデータ長については読出サイズとも呼ぶ。
【0032】
リーダライタ(図示せず)は、読み出し対象のWEFをICカード100から読み出すにあたり、
図4のファイル読出コマンドの第1パラメータP1、第2パラメータP2によるWEF指定情報の領域に読み出し対象のWEFのファイル識別子を格納する。また、リーダライタは、レスポンス長Leの領域に、読み出し対象のWEFの読出サイズを示す値を格納する。そして、リーダライタは、上記のように生成したファイル読出コマンドをICカード100に送信する。
【0033】
先の
図3においては、
図4のファイル読出コマンドによってWEF格納領域(1)に格納されたWEFの読み出しが指示された場合の、制御部102によるユーザデータ領域AR3に対する読み出し処理が模式的に示されている。
制御部102は、ファイル読出コマンドに含まれるWEF指定情報が示すファイル識別子のWEFの開始アドレスをファイル管理情報から取得する。
図3との対応では、WEFのWEF格納領域(1)の先頭のアドレスが開始アドレスとして取得される。
そして、制御部102は、取得した開始アドレスを起点として、ファイル読出コマンドにおけるレスポンス長Leにおける読出サイズRszが示すサイズまでのデータの読み出しを行う。制御部102は、読み出したデータを通信部101からリーダライタに送信する。
このようにして、リーダライタは、WEF格納領域(1)に格納されたWEFを読み出すことができる。
【0034】
ここで、
図4にて説明したように、リーダライタからのWEFの読み出しに際しては、ファイル読出コマンドのレスポンス長Leにより読出サイズが指定される。
例えば外部からの攻撃として、ファイル読出コマンドのレスポンス長Leに対して、読み出し対象のWEFが格納されるWEF格納領域よりも大きな読出サイズが不正に書き込まれる可能性がある。このようなファイル読出コマンドを受信したICカード100では、WEFに続いて格納されたEF(IEFまたはWEF)を読み出すことになる。
【0035】
具体例として、WEF格納領域(1)におけるWEFの読み出しを指示するファイル読出コマンドのレスポンス長Leに、WEF格納領域(1)のサイズより大きな読出サイズが格納された場合には、以下のようにデータの読み出しが行われる。
つまり、この場合の制御部102は、ファイル読出コマンドに従って、
図5に例示するように、WEF格納領域(1)の開始アドレスから、WEF格納領域(1)のサイズよりも大きな読出サイズRszまでのデータを読み出してリーダライタに送信する。
この場合、WEF格納領域(1)に続けてIEF格納領域(1)が配置されていることから、WEF格納領域(1)に格納されているWEFとともに、IEF格納領域(1)に格納されているIEFのデータも読み出され、リーダライタに送信されてしまう。
このように、ファイル読出コマンドにおけるレスポンス長Leに格納する読出サイズが不正に書き換えられた場合において、読み出し対象のファイルに続くファイルがIEFである場合には、IEFのデータがICカード100から読み出されてしまう可能性がある。
【0036】
[本実施形態におけるファイル生成]
そこで、本実施形態のICカード100は、以下に説明するようにファイル生成を行うことによって、ファイル読出コマンドにおける読出サイズの不正な書き換えによるIEFの漏洩を防止する。
【0037】
本実施形態におけるICカード発行装置200は、ファイル生成にあたり、先ず、ICカード100に対して、ユーザデータ領域AR3の分割を指示する記憶領域分割コマンドをICカード100に送信する。記憶領域分割コマンドは、例えばICカード100の発行にあたり1回のみ使用される特殊なコマンドである。
【0038】
ICカード100において、制御部102のファイル格納領域作成部121は、通信部101にて記憶領域分割コマンドが受信されるのに応じて、記憶媒体103の記憶領域を複数の分割領域に分割する。
図6は、本実施形態における記憶領域についての分割態様例を示している。即ち、本実施形態におけるユーザデータ領域AR3は、同図に示されるように、第1分割領域AR11と第2分割領域AR12との2つの分割領域に分割される。
【0039】
ファイル格納領域作成部121は、
図6のようにユーザデータ領域AR3を第1分割領域と第2分割領域とに分割するために、ユーザデータ領域AR3の分割状態を示す記憶領域分割情報を生成する。ファイル格納領域作成部121は、生成した記憶領域分割情報を、記憶媒体103のシステム領域AR2に格納する。このようにして記憶領域分割情報がシステム領域AR2に格納されることで、ユーザデータ領域AR3は、第1分割領域と第2分割領域とに分割されたものとして管理される。
【0040】
図7は、記憶領域分割情報の内容例を示す。同図の記憶領域分割情報は、
図6に例示したようにユーザデータ領域AR3を分割した場合に対応する内容を示す。
同図に示すように、記憶領域分割情報は、分割領域ごとにアドレス範囲と格納ファイル種別とを対応付けた構造である。
アドレス範囲は、対応の分割領域が占有するアドレスの範囲を示す。
格納ファイル種別は、対応の分割領域において格納されるべきEFの種別がIEFとWEFとのいずれであるのかを示す。
【0041】
同図の例では、第1分割領域について、アドレスA1−A2を示すアドレス範囲と、IEFを示す格納ファイル種別が対応付けられる。また、第2分割領域について、アドレスA3−A4を示すアドレス範囲と、WEFを示す格納ファイル種別が対応付けられる。
即ち、同図に示す記憶領域分割情報は、ユーザデータ領域AR3が、アドレスA1−A2による第1分割領域AR11と、第1分割領域AR11に続くアドレスA2−A3による第2分割領域AR12とに2分割されていることを示す。そのうえで、記憶領域分割情報は、第1分割領域AR11に格納されるファイルの種別がIEFであり、第2分割領域AR12に格納されるファイルの種別がWEFであることを示す。
【0042】
同図に示す記憶領域分割情報がシステム領域AR2に格納されることにより、ユーザデータ領域AR3が、IEFを格納すべき第1分割領域AR11と、WEFを格納すべき第2分割領域AR12とに分割されたものとして管理される。
【0043】
なお、同図においては、ユーザデータ領域AR3が第1分割領域AR11と第2分割領域AR12とにより二等分された状態が示されている。しかし、第1分割領域AR11と第2分割領域AR12との容量は同じである必要はない。例えば、各分割領域において作成されるファイル格納領域の総サイズなどに応じて、第1分割領域AR11と第2分割領域AR12との各容量が異なるように定められてよい。
【0044】
上記のように記憶領域の分割が行われた後、ICカード発行装置200は、所定のファイル生成順に従って、IEF格納領域とWEF格納領域とのうちのいずれかの作成を指示するファイル格納領域作成コマンドを、順次、ICカード100に対して送信する。
【0045】
図8は、ファイル格納領域作成コマンドの構造例を示している。同図に示すファイル格納領域作成コマンドは、コマンドヘッダCH、第1パラメータP1、第2パラメータP2、データ長Lc、データ部Dataが配置された構造を有する。
コマンドヘッダCHは、当該コマンドの種別を示す。ファイル格納領域作成コマンドの場合、コマンドヘッダCHには、ファイル格納領域作成コマンドであることを示す所定値が格納される。
第1パラメータP1、第2パラメータP2による領域は、コマンドヘッダCHが示すコマンドの種別に応じた所定のパラメータを格納する。
データ長Lcは、データ部Dataのデータ長(サイズ)を示す。
ファイル格納領域作成コマンドにおけるデータ部Dataは、ファイル種別情報、サイズ情報、ファイル識別子を含む。
【0046】
ファイル種別情報は、作成対象のファイル格納領域が対応するEFの種別がIEFとWEFのいずれであるのかを示す情報である。即ち、ファイル種別情報がIEFを示す場合、当該ファイル格納領域作成コマンドは、IEF格納領域の作成を指示する。一方、ファイル種別情報がWEFを示す場合、当該ファイル格納領域作成コマンドは、WEF格納領域の作成を指示する。
サイズ情報は、作成対象のファイル格納領域のサイズを示す情報である。
ファイル識別子は、作成対象のファイル格納領域に格納されるべきEFのファイル識別子を示す。
【0047】
ICカード発行装置200から送信されたファイル格納領域作成コマンドは、ICカード100において、通信部101にて受信される。
通信部101にてファイル格納領域作成コマンドが受信されると、制御部102のファイル格納領域作成部121は、受信されたファイル格納領域作成コマンドのData部から、ファイル種別情報、サイズ情報、ファイル識別子を取得する。
【0048】
ファイル格納領域作成部121は、取得したファイル種別情報がIEFを示している場合、第1分割領域AR11における未使用領域のうちから、取得したサイズ情報が示すサイズによる領域を選択し、選択した領域をIEF格納領域として新規に作成する。
具体的に、ファイル格納領域作成部121は、第1分割領域AR11の未使用領域の先頭を開始位置として、サイズ情報が示すサイズによる領域を選択する。そして、ファイル格納領域作成部121は、このように選択した領域をIEF格納領域として新規に作成する。
【0049】
上記のIEF格納領域の作成は、ファイル格納領域作成部121がファイル管理情報を更新することによって実現される。
ファイル管理情報は、ディレクトリエントリと、ファイル管理テーブル(例えば、FAT)とを含む。ディレクトリエントリは、ファイル識別子、ファイルが置かれるファイル構造上の位置(ディレクトリ)、ファイルが記憶される先頭のアドレス(例えば、クラスタ番号)などを示す。ファイル管理テーブルは、ファイルが記憶される領域(クラスタ)の連結状態を示す。
ファイル格納領域作成部121は、ファイル格納領域作成コマンドから取得したファイル識別子をディレクトリエントリに新規登録する。そのうえで、ファイル格納領域作成部121は、これまで第1分割領域AR11において未使用領域として管理されていた領域の先頭からサイズ情報が示すサイズまでの領域が、新規登録されたファイル識別子に対応する領域として示されるようにファイル管理テーブルを更新する。
このようにして、ファイル格納領域作成部121は、IEF格納領域の作成を指示するファイル格納領域作成コマンドが受信されるのに応じて、第1分割領域AR11の先頭から、順次、IEF格納領域を作成していくことができる。
【0050】
また、ファイル格納領域作成部121は、取得したファイル種別情報がWEFを示している場合にも、上記と同様に、第2分割領域AR12における未使用領域の先頭を開始位置として、サイズ情報が示すサイズによる領域を、WEF格納領域として作成する。
このようにして、ファイル格納領域作成部121は、WEF格納領域の作成を指示するファイル格納領域作成コマンドが受信されるのに応じて、第2分割領域AR12の先頭から、順次、WEF格納領域を作成していくことができる。
【0051】
図9は、本実施形態におけるファイル格納領域作成部121によるファイル格納領域の作成結果の一例を示している。
同図においては、
図3の場合と同様に、IEF格納領域(1)〜(4)、WEF格納領域(1)〜(5)をそれぞれユーザデータ領域AR3上に作成した場合が示される。
【0052】
ICカード発行装置200は、例えば、
図3のファイル格納領域の配置順に応じて、WEF格納領域(1)、IEF格納領域(1)、IEF格納領域(2)、WEF格納領域(2)、IEF格納領域(3)、WEF格納領域(3)、WEF格納領域(4)、WEF格納領域(5)、IEF格納領域(4)に対応する順でファイル格納領域作成コマンドを順次送信する。
【0053】
上記のように送信されるファイル格納領域作成コマンドが受信されるのに応じて、ICカード100のファイル格納領域作成部121は、ファイル格納領域作成コマンドが示すファイル識別子、ファイル種別情報、サイズ情報に基づいてファイル格納領域を作成する。
つまり、前述のように、ファイル格納領域作成部121は、ファイル種別情報がIEFを示していれば、第1分割領域AR11の未使用領域の先頭からサイズ情報が示すサイズまでの領域を、ファイル識別子に対応するIEF格納領域として作成する。
また、ファイル格納領域作成部121は、ファイル種別情報がWEFを示していれば、第2分割領域AR12の未使用領域の先頭からサイズ情報が示すサイズまでの領域をWEF格納領域として作成する。
【0054】
このようにしてファイル格納領域が作成される結果、
図9に示すように、第1分割領域AR11においては、先頭から、IEF格納領域(1)、IEF格納領域(2)、IEF格納領域(3)、IEF格納領域(4)の順でIEF格納領域が連続して配置される。
また、第2分割領域AR12においては、先頭から、WEF格納領域(1)、WEF格納領域(2)、WEF格納領域(3)、WEF格納領域(4)、WEF格納領域(5)の順でWEF格納領域が連続して配置される。
【0055】
このように、本実施形態においては、ユーザデータ領域AR3が第1分割領域AR11と第2分割領域AR12とに分割される。そのうえで、第1分割領域AR11においては、IEF格納領域が作成され、第2分割領域AR12においては、WEF格納領域が作成される。
【0056】
ここで、WEF格納領域(1)に格納されるWEFを指定し、WEF格納領域(1)よりも大きい不正な値を示す読出サイズ(レスポンス長Le)が格納されているファイル読出コマンドを受信した場合、ICカード100は以下のようにデータの読み出しを実行する。
つまり、ICカード100の制御部102は、
図9に示すように、WEF格納領域(1)よりも大きな読出サイズRszに従って、WEF格納領域(1)に格納されるWEFと、続くWEF格納領域(2)に格納されるWEFとを読み出すことになる。
つまり、この場合のICカード100の制御部102は、本来の読み出し対象であるWEF格納領域(1)のWEFだけではなく、WEF格納領域(2)に格納されるWEFも読み出す。
【0057】
しかし、この場合においてWEF格納領域(2)から読み出されるデータはWEFであり、IEFではない。
つまり、本実施形態では、ファイル読出コマンドにおける読出サイズが、読み出し対象のWEFのWEF格納領域よりも大きな値に書き換えられていたとしても、不正に読み出されるデータはWEFであって、IEFが読み出されることはない。
このようにして、本実施形態においては、不正に長いデータ読み出しサイズが指定された場合のセキュリティの保護が図られている。
【0058】
特に、本実施形態においては、ユーザデータ領域AR3における上位アドレス側の第1分割領域AR11にIEF格納領域を作成し、下位アドレス側の第2分割領域AR12にWEF格納領域を作成している。
このために、例えば、ファイル読出コマンドとしてどれだけ長いデータ読み出しサイズが指定されたとしても、WEFの読み出しのためのアクセスは第2分割領域AR12にて行われ、第1分割領域AR11に対するアクセスが行われることはない。
このようにして本実施形態では、WEF格納領域よりも長いデータ読み出しサイズの指定により不正な読み出しが行われた場合にIEFが読み出されてしまうことを確実に回避できるようにしている。
【0059】
[処理手順例]
図10のフローチャートを参照して、本実施形態のICカード100が実行するファイル生成のための処理手順例について説明する。同図に示す処理は、ICカード100におけるファイル生成のために、ICカード100とICカード発行装置200とが通信可能に接続されている状態のもとで実行される。
【0060】
ICカード100において、制御部102におけるファイル格納領域作成部121は、ICカード発行装置200から送信される記憶領域分割コマンドが通信部101にて受信されるのを待機している(ステップS101−NO)。
そして、記憶領域分割コマンドが通信部101にて受信されるのに応じて(ステップS101−YES)、ファイル格納領域作成部121は、記憶媒体103の記憶領域を分割する(ステップS102)。具体的には、ファイル格納領域作成部121は、
図6にて説明したように、ユーザデータ領域AR3を第1分割領域と第2分割領域とに分割する。
このために、ファイル格納領域作成部121は、ステップS102として、
図7にて説明したように記憶領域の分割状態を示す記憶領域分割情報を生成し、生成した記憶領域分割情報をシステム領域AR2に格納する。
【0061】
次に、ファイル格納領域作成部121は、ICカード発行装置200から送信されるファイル格納領域作成コマンドが受信されるのを待機する(ステップS103−NO)。
そして、ファイル格納領域作成コマンドが受信されると(ステップS103−YES)、ファイル格納領域作成部121は、受信されたファイル格納領域作成コマンドに含まれるファイル種別情報が示すファイル種別がIEFであるか否かについて判定する(ステップS104)。
【0062】
ファイル種別がIEFである場合(ステップS104−YES)、ファイル格納領域作成部121は、第1分割領域AR11の未使用領域にIEF格納領域を作成する(ステップS105)。
ステップS105としてのIEF格納領域の作成にあたり、ファイル格納領域作成部121は、ステップS103にて受信されたファイル格納領域作成コマンドから取得したファイル識別子とサイズ情報とを利用して以下の処理を実行する。
つまり、ファイル格納領域作成部121は、第1分割領域AR11における未使用領域の先頭からサイズ情報が示すサイズによる領域までを新たなIEF格納領域として決定する。ファイル格納領域作成部121は、ファイル格納領域作成コマンドから取得したファイル識別子に対応するファイルの領域が、新たに決定したIEF格納領域を示すようにファイル管理情報を更新する。
【0063】
一方、ファイル種別がWEFである場合(ステップS104−NO)、ファイル格納領域作成部121は、第2分割領域AR12の未使用領域にWEF格納領域を作成する(ステップS106)。
ステップS106としてのWEF格納領域の作成にあっても、ファイル格納領域作成部121は、ステップS101にて受信されたファイル格納領域作成コマンドから取得したファイル識別子とサイズ情報とを利用し、ステップS105の場合と同様に処理を実行する。
つまり、ファイル格納領域作成部121は、これまでの第2分割領域AR12における未使用領域の先頭からサイズ情報が示すサイズによる領域までを新たなWEF格納領域として決定する。
そして、ファイル格納領域作成部121は、ファイル格納領域作成コマンドから取得したファイル識別子に対応するファイルの領域が、新たに決定したWEF格納領域を示すようにファイル管理情報を更新する。
【0064】
ステップS105またはステップS106による処理が終了した後、ファイル格納領域作成部121は、全てのファイル格納領域の作成が終了したか否かについて判定する(ステップS107)。
全てのファイル格納領域の作成が終了したか否かについては、例えばICカード発行装置200から送信される、ファイル格納領域の作成についての終了通知が受信されたか否かに基づいて判定すればよい。
【0065】
未だ全てのファイル格納領域の作成が終了していない場合(ステップS107−NO)、ファイル格納領域作成部121は、ステップS103に処理を戻すことで、次のファイル格納領域を作成するための処理に移行する。
そして、全てのファイル格納領域の作成が終了すると(ステップS107−YES)、ファイル格納領域作成部121は、同図に示すファイル生成処理を終了する。
上記のような処理を実行することによって、本実施形態のICカード100は、
図9に例示したように、分割領域ごとにIEF格納領域とWEF格納領域とを作成するようにしてファイル生成を行うことができる。
【0066】
なお、第1実施形態において、
図9の例とは逆に、第1分割領域AR11にWEF格納領域を作成し、第2分割領域AR12にIEF格納領域を作成してもよい。この場合、ファイル読出コマンドのレスポンス長Leに格納される不正な読出サイズとして想定される値よりも十分に大きい空き容量が第1分割領域AR11の終端側に確保されることが好ましい。
【0067】
<第2実施形態>
[概要]
続いて、第2実施形態について説明する。
図11におけるユーザデータ領域AR3は、第2実施形態におけるファイル生成の結果例を示している。なお、同図において、
図9と同一部分には同一符号を付して説明を省略する。
同図に示されるユーザデータ領域AR3は、第1分割領域AR11、第2分割領域AR12、緩衝領域AR13の3つの領域に分割されている。
緩衝領域AR13は、同図に示すように、第1分割領域AR11と第2分割領域AR12との間に設けられる。
緩衝領域AR13は、データの書き込みが禁止される領域である。従って、緩衝領域AR13においては、IEF格納領域とWEF格納領域とのいずれのファイル格納領域も作成されない。
ここで、緩衝領域AR13は、例えば、ユーザデータ領域AR3に作成されるWEF格納領域の最大サイズに対して、所定のセキュリティの条件などを考慮して求めたマージンサイズを加算したサイズとすることができる。
【0068】
そのうえで、本実施形態においては、ユーザデータ領域AR3における上位アドレス側の第1分割領域AR11に対してWEF格納領域が作成され、ユーザデータ領域AR3における下位アドレス側の第2分割領域AR12に対してIEF格納領域が作成される。
具体的に、同図では、第1分割領域AR11において、WEF格納領域(1)〜(5)が作成され、第2分割領域AR12において、IEF格納領域(1)〜(4)が作成されている。
【0069】
同図を参照して、ファイル読出コマンドによりWEF格納領域(1)に格納されるファイルが指定され、WEF格納領域(1)よりも大きい値の読出サイズRsz1(レスポンス長Le)が指定された場合のデータ読み出しについて説明する。
この場合、ICカード100は、第1分割領域AR11において、WEF格納領域(1)に格納されるWEFを読み出し、WEF格納領域(1)より後ろの領域のデータも読み出すことになる。
しかし、第1分割領域AR11においてはWEF格納領域しか作成されておらず、WEF格納領域(1)の次にはWEF格納領域(2)が続く。このために、ICカード100は、WEF格納領域(1)に格納されるWEFに続けて、さらに、WEF格納領域(2)に格納されるWEFを読み出すことになる。このようにして、ICカード100は、IEFの読み出しを行わないようにすることができる。
【0070】
また、同図に示すように第1分割領域AR11の終端にWEF格納領域(N)が作成された場合について説明する。WEF格納領域(N)を読み出し対象としてWEF格納領域(N)よりも大きい読出サイズが指定された場合、ICカード100は、以下のようにデータ読み出しを行う。
ICカード100は、ファイル読出コマンドの受信に応じて、WEF格納領域(N)の開始アドレスを起点として、ファイル読出コマンドにおけるレスポンス長Leに格納される読出サイズRsz2が示すサイズによるデータの読み出しを行う。
この場合、ICカード100は、WEF格納領域(N)に格納されたWEFだけではなく、さらにWEF格納領域(N)に続く緩衝領域AR13において、読出サイズRsz2からWEF格納領域(N)のサイズを差し引いた分のデータ長の読み出しを行う。
しかし、WEF格納領域(N)のサイズを超えたデータ長に応じて読み出されるデータは、データ書き込みが禁止された緩衝領域AR13から読み出したデータであり、有意なデータではない。つまり、この場合にも、WEF格納領域(N)のサイズを超えたデータ長によるデータの読み出しを行っても、IEFは読み出されない。
このように、第2実施形態においても、ファイル読出コマンドにより不正に長いデータ読み出しサイズが指定された場合のセキュリティの向上が図られる。
【0071】
なお、
図3のように同じ領域にてWEF格納領域とIEF格納領域とが連続してもよい条件でファイル生成を行う場合において、ファイル格納領域の間ごとに緩衝領域を作成するという構成を採ることができる。この場合にも、緩衝領域について、不正な読出サイズとして想定される値よりも十分に大きいサイズとすることで、読出サイズの不正な書き換えに対するセキュリティ保護効果を得ることができる。
しかし、この場合には、ファイル格納領域の間ごとにデータの書き込みに使用できない緩衝領域が多数挿入されることになってしまう。このために、記憶媒体103の記憶容量を有効に使用できなくなる。
これに対して、本実施形態の場合であれば、第1分割領域AR11と第2分割領域AR12との間に1つの緩衝領域AR13を設ければよいことから、上記の構成と比較して記憶媒体103の記憶容量を有効に使用できる。
【0072】
[記憶領域分割情報の内容例]
本実施形態において、ICカード100のファイル格納領域作成部121が実行する処理の流れとしては、
図10と同様でよい。
そのうえで、本実施形態におけるファイル格納領域作成部121は、
図10のステップS102において、ユーザデータ領域AR3を、第1分割領域AR11、第2分割領域AR12及び緩衝領域AR13の3つの領域に分割する。
このために、ファイル格納領域作成部121は、ステップS102の処理として、
図12に例示する内容の記憶領域分割情報を生成し、生成した記憶領域分割情報をシステム領域AR2に格納する。
【0073】
図12に示される記憶領域分割情報においては、分割領域として、第1分割領域AR11、緩衝領域AR13、第2分割領域AR12が定義されている。
第1分割領域AR11については、アドレスA1−A11のアドレス範囲による領域であり、格納ファイル種別がWEFであることが示される。
緩衝領域AR13については、第1分割領域AR11に続くアドレスA12−A13のアドレス範囲による領域であり、格納すべきファイルの無いこと(ファイル書き込み禁止であること)が示される。
第2分割領域AR12については、緩衝領域AR13に続くアドレスA14−A15のアドレス範囲による領域であり、格納ファイル種別がIEFであることが示される。
【0074】
上記のように生成された記憶領域分割情報がシステム領域AR2に格納されることによって、
図11に示したように、ユーザデータ領域AR3が第1分割領域AR11、緩衝領域AR13、第2分割領域AR12に分割される。そして、第1分割領域AR11にWEF格納領域が作成され、第2分割領域AR11にIEF格納領域が作成され、緩衝領域AR13にはいずれのファイル格納領域も作成されないように制御される。
<第3実施形態>
[概要]
続いて、第3実施形態について説明する。WEFは、ユーザデータとして外部への出力が許可されるファイルである。そのうえで、WEFには、種別ごとに異なるアクセス権が設定される場合がある。アクセス権の設定されたWEFは、アクセス権を有するユーザに対応するリーダライタによっては読み出しが可能であるが、アクセス権を有さないユーザに対応するリーダライタによっては読み出しができない。
従って、WEFであっても、アクセス権が設定されている場合には、外部への出力が不可となる場合が生じる。このために、アクセス権が設定されているWEFについては、アクセス権の無いユーザに対応するリーダライタからの不正な読み出しに対して読み出しが行われないようにすることが好ましい。
【0075】
そこで、本実施形態においては、IEFとともに、WEFについてもアクセス権を有さないユーザに対応するリーダライタからの不正な読み出しに対して防御が図られるようにする。
【0076】
図13は、本実施形態のユーザデータ領域AR3におけるファイル生成結果の一例を示している。なお、同図において
図9と同一部分には同一符号を付して説明を省略する。
また、同図の説明にあたっては、WEFとして、同じアクセス権が設定されたWEFと、アクセス権が設定されていないWEFとの2種類が存在する場合を例に挙げる。
【0077】
本実施形態においては、同図に示すように、第2分割領域AR12が複数のアクセス権対応分割領域にさらに分割される。
同図では、第2分割領域AR12は、第1アクセス権対応分割領域AR21と第2アクセス権対応分割領域AR22との、2つのアクセス権対応分割領域に分割された例を示している。
【0078】
第1アクセス権対応分割領域AR21は、アクセス権が設定されたWEFに対応するWEF格納領域が作成された分割領域である。
第2アクセス権対応分割領域AR22は、アクセス権が設定されていないWEFに対応するWEF格納領域が作成される。
【0079】
第1分割領域AR11においては、先頭から順に、IEF格納領域(1)〜IEF格納領域(4)が作成されている。
また、第2分割領域AR12において、第1アクセス権対応分割領域AR21には、先頭から順にWEF格納領域(11)〜WEF格納領域(15)が作成されている。WEF格納領域(11)〜WEF格納領域(15)には、それぞれ、アクセス権が設定されたWEFが格納される。
また、第2アクセス権対応分割領域AR22には、先頭から順にWEF格納領域(1)〜WEF格納領域(4)が作成されている。WEF格納領域(1)〜WEF格納領域(4)には、アクセス権が設定されていないWEFが格納される。
【0080】
同図に示すようにファイル格納領域が作成される場合、ユーザデータ領域AR3における最も上位アドレス側の第1分割領域にIEF格納領域が作成される。そのうえで、第1アクセス権対応分割領域AR21と第2アクセス権対応分割領域AR22は、第1分割領域よりも下位アドレス側に設けられる。
このために、第1アクセス権対応分割領域AR21と第2アクセス権対応分割領域AR22のいずれにおいても、不正に長い読出サイズが指定された場合には次のWEFが読み出されることになり、IEFが読み出されることはない。
【0081】
そのうえで、本実施形態のICカード100は、アクセス権が設定されたWEFに対応するWEF格納領域については、第2分割領域AR12において上位アドレス側の第1アクセス権対応分割領域AR21に作成している。
一方、ICカード100は、アクセス権が設定されていないWEFに対応するWEF格納領域については、第2分割領域AR12において下位アドレス側の第2アクセス権対応分割領域AR22に作成している。
これにより、アクセス権が設定されていないWEFの読み出しに際して不正に長い読出サイズが指定された場合、ICカード100は、ユーザデータ領域AR3において最も下位アドレス側の第2アクセス権対応分割領域にアクセスすることになる。この場合において、ICカード100は、第2アクセス権対応分割領域AR22に対して上位アドレス側となる第1アクセス権対応分割領域AR21にアクセスすることがない。従って、アクセス権が無いユーザに対応するリーダライタからの不正な読み出しに対して、アクセス権が設定されたWEFが読み出されることはない。
このように本実施形態においては、WEFの読み出しにあたって、アクセス権の設定されたWEFについてのセキュリティ保護が図られるようにされている。
【0082】
[処理手順例]
図14のフローチャートを参照して、本実施形態におけるICカード100がファイル生成のために実行する処理手順例について説明する。なお、
図10と同様の処理となるステップについては同一符号を付している。
【0083】
ICカード100において、ファイル格納領域作成部121は、ICカード発行装置200から送信される記憶領域分割コマンドが受信されるのに応じて(ステップS101−YES)、記憶媒体103の記憶領域(ユーザデータ領域AR3)を分割する(ステップS102)。
【0084】
本実施形態におけるステップS102の処理にあたり、ファイル格納領域作成部121は、
図15に例示する内容の記憶領域分割情報を作成し、作成した記憶領域分割情報をシステム領域AR2に格納する。
図15に示す記憶領域分割情報は、
図13に例示したユーザデータ領域AR3の分割の態様例に対応している。つまり、
図15の記憶領域分割情報は、第1分割領域AR11と、第2分割領域AR12における第1アクセス権対応分割領域AR21、第2アクセス権対応分割領域AR22ごとにアドレス範囲と格納ファイル種別とが対応付けられている。
同図に示す内容によれば、第1分割領域AR11は、アドレスA1−A21のアドレス範囲による領域であり、IEFを格納すべきことが示される。
第1アクセス権対応分割領域AR21は、第1分割領域AR11に続くアドレスA22−A23のアドレス範囲による領域であり、アクセス権Aが設定されたWEFを格納すべきことが示される。
第2アクセス権対応分割領域AR22は、第1アクセス権対応分割領域AR21に続くアドレスA23−A24までのアドレス範囲であり、アクセス権が設定されていないWEFを格納すべきことが示される。
【0085】
説明を
図14に戻す。同図において、ステップS103〜S105の処理は、
図10と同様である。
そして、ファイル種別がWEFであることが判定されるのに応じて(ステップS104−NO)、ファイル格納領域作成部121は、ステップS103にて受信したファイル格納領域作成コマンドに対応するWEFについてのアクセス権の設定内容を認識する(ステップS106A)。
【0086】
ステップS106Aによるアクセス権の設定内容の認識は以下のようにして行われる。
アクセス権が設定されるWEFがある場合、ICカード発行装置200は、ファイル格納領域作成コマンドのデータ部Dataに対して、ファイル種別情報、サイズ情報、ファイル識別子とともに、アクセス権設定情報を含める。
アクセス権設定情報は、対応のWEF格納領域に格納されるべきファイルについてのアクセス権の設定内容を示す。
ステップS106Aにおいて、ファイル格納領域作成部121は、ステップS103にて受信したファイル格納領域作成コマンドに含まれるアクセス権設定情報を取得する。ファイル格納領域作成部121は、取得したアクセス権設定情報によりアクセス権の設定の有無を認識する。アクセス権が設定されている場合、ファイル格納領域作成部121は、さらに設定されているアクセス権の内容を認識できる。
【0087】
そして、ファイル格納領域作成部121は、記憶領域分割情報を参照して、ステップS106Aにて認識したアクセス権の設定内容に該当するアクセス権対応分割領域を認識する。ファイル格納領域作成部121は、認識したアクセス権対応分割領域の未使用領域に、受信したファイル格納領域作成コマンドから取得したサイズ情報とファイル識別子とを利用して、ファイル格納領域を新規に作成する(ステップS106B)。
具体的に、
図13との対応では、ファイル格納領域作成部121は、認識したアクセス権の設定内容がアクセス権Aであると認識した場合には、ステップS106Bとして、第1アクセス権対応分割領域AR21の未使用領域にファイル格納領域を新規に作成する。
また、ファイル格納領域作成部121は、認識したアクセス権の設定内容がアクセス権無しであると認識した場合には、ステップS106Bとして、第2アクセス権対応分割領域AR22の未使用領域にファイル格納領域を新規に作成する。
【0088】
このような処理によって、本実施形態のICカード100は、WEF格納領域に格納されるべきWEFに対するアクセス権の設定内容ごとに応じて、アクセス権対応分割領域を形成することができる。そのうえで、ICカード100は、アクセス権対応分割領域ごとに、該当のアクセス権が設定されたWEFに対応するWEF格納領域を作成していくことができる。
【0089】
なお、本実施形態における変形例として、第2の実施形態に準じて、第2分割領域AR12における第1アクセス権対応分割領域AR21と第2アクセス権対応分割領域AR22との間に緩衝領域を設けてもよい。この場合、第2分割領域AR12においては、アクセス権が設定されていないWEFを格納する第2アクセス権対応分割領域AR22を上位アドレス側に配置し、アクセス権が設定されているWEFを格納する第1アクセス権対応分割領域AR21を上位アドレス側に配置することができる。
また、この場合の緩衝領域も、例えば第2分割領域AR12において作成されるWEF格納領域の最大サイズに対して、所定のセキュリティの条件などを考慮して求めたマージンサイズを加算したサイズとすればよい。
このように緩衝領域を設けることで、ファイル読出コマンドにより、第2分割領域AR12の終端のWEFを読み出し対象として、当該WEFのサイズを超えた読み出しサイズが指定されたとしても、終端のWEFに続けて読み出されるのは緩衝領域のデータである。従って、この場合には、第1アクセス権対応分割領域AR21に格納されたWEFまでが読み出されることはない。
このように、第2アクセス権対応分割領域AR22と第1アクセス権対応分割領域AR21との間に緩衝領域を設けることで、アクセス権の設定されたWEFが不正に読み出されてしまうことが防止される。
【0090】
なお、上述のICカード100の機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体(記憶媒体)に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより上述のICカード100としての処理を行ってもよい。ここで、「記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行する」とは、コンピュータシステムにプログラムをインストールすることを含む。ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものとする。また、「コンピュータシステム」は、インターネットやWAN、LAN、専用回線等の通信回線を含むネットワークを介して接続された複数のコンピュータ装置を含んでもよい。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。このように、プログラムを記憶した記録媒体は、CD−ROM等の非一過性の記録媒体であってもよい。また、記録媒体には、当該プログラムを配信するために配信サーバからアクセス可能な内部または外部に設けられた記録媒体も含まれる。配信サーバの記録媒体に記憶されるプログラムのコードは、端末装置で実行可能な形式のプログラムのコードと異なるものでもよい。すなわち、配信サーバからダウンロードされて端末装置で実行可能な形でインストールができるものであれば、配信サーバで記憶される形式は問わない。なお、プログラムを複数に分割し、それぞれ異なるタイミングでダウンロードした後に端末装置で合体される構成や、分割されたプログラムのそれぞれを配信する配信サーバが異なっていてもよい。さらに「コンピュータ読み取り可能な記録媒体」とは、ネットワークを介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ(RAM)のように、一定時間プログラムを保持しているものも含むものとする。また、上記プログラムは、上述した機能の一部を実現するためのものであってもよい。さらに、上述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル(差分プログラム)であってもよい。