ICカード、データ制御方法およびプログラム
【課題】ICカード内の認証不要なデータ領域について、不正な改ざんを防止する。
【解決手段】ICカード20は、外部装置からの要求に応じて、表示部に表示させる表示要求データと、表示部への表示を制御する制御データをカード用メモリ40へ記録する記録部(カード用CPU38)、カード用メモリに記録された表示要求データと制御データとに含まれる所定の制御コマンドを比較することによりデータの整合性を検証する検証部(表示用CPU54)と、を備える。
【解決手段】ICカード20は、外部装置からの要求に応じて、表示部に表示させる表示要求データと、表示部への表示を制御する制御データをカード用メモリ40へ記録する記録部(カード用CPU38)、カード用メモリに記録された表示要求データと制御データとに含まれる所定の制御コマンドを比較することによりデータの整合性を検証する検証部(表示用CPU54)と、を備える。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ICカード、データ制御方法およびプログラムに関し、特に、データの整合性を検証するICカード、データ制御方法およびプログラムに関する。
【背景技術】
【0002】
近年、RAMやROM、EEPROMなどの半導体メモリを組み込むことで、多量の情報を記録可能なICカードが広く用いられている。ICカードには、例えば、電子決済における残高情報、交通機関や娯楽施設における電子チケットの情報、ショッピングに利用されるクーポン情報など、様々な情報がリーダ/ライタを通して書込まれる。
【0003】
ICカードの利便性を向上させる技術開発の事例としては、次のようなものが挙げられる。例えば、下記特許文献1には、カードの表面に電子ペーパーやLCDパネル等の表示デバイスを設けて、記録されている情報をユーザに表示可能なICカードが記載されている。また、例えば、下記特許文献2には、太陽電池など光電変換によって電力を発生させる手段を備え、当該電力発生手段により生成された電力を利用して、リーダ/ライタから離れた状態でも表示デバイスに情報を表示可能なICカードが記載されている。
【0004】
【特許文献1】特開2003−208582号公報
【特許文献2】特開2008−21176号公報
【発明の開示】
【発明が解決しようとする課題】
【0005】
上記のようなICカードには、リーダ/ライタからのデータの書き込みや読み込みを制御するカード用制御部と、表示部への表示を制御する表示用制御部とが存在することとなる。この場合、リーダ/ライタは、カード用制御部を介してデータの書き込みや読み込みを行う。したがって、外部装置であるリーダ/ライタによりアクセスされるICカード内のデータは、書き込み時に認証が必要な構成となっている。
【0006】
一方、表示制御部は外部のリーダ/ライタから直接アクセスされる構成とはなっていないため、表示制御部にセキュリティ機能を搭載していない場合がある。この場合、表示制御部によりアクセスされるICカード内のデータを認証不要として、表示制御部がICカード内の必要なデータを書き込む構成とする必要がある。このように構成されているICカードにおいては、認証が不要なデータ領域が、悪意のある第三者により不正に改ざんされる危険性があるという問題があった。
【0007】
そこで、本発明は、上記問題に鑑みてなされたものであり、本発明の目的とするところは、ICカード内の認証不要なデータ領域について、不正な改ざんを防止することが可能な、新規かつ改良されたICカード、データ制御方法およびプログラムを提供することにある。
【課題を解決するための手段】
【0008】
上記課題を解決するために、本発明のある観点によれば、外部装置からの要求に応じて、表示部に表示させる表示要求データと、表示部への表示を制御する制御データをカード用メモリへ記録する記録部と、カード用メモリに記録された表示要求データと制御データとに含まれる所定の制御コマンドを比較することによりデータの整合性を検証する検証部と、を備えるICカードが提供される。
【0009】
かかる構成によれば、ICカードは、外部からの要求に応じて表示部に表示させる表示要求データと、表示部への表示を制御する制御データをカード用メモリに記録し、表示要求データと制御データとに含まれる所定の制御コマンドを比較してデータの整合性を検証する。これにより、ICカード内の認証不要なデータ領域について、不正な改ざんを防止することが可能となる。
【0010】
また、検証部による検証結果に応じて、表示要求データを表示部に表示させ、制御データを更新する表示制御部を備えるようにしてもよい。
【0011】
また、外部装置からの要求に応じて、記録部に記録された表示要求データの制御コマンドと制御データの制御コマンドとは特定の関係を有し、制御データの制御コマンドは、表示制御部に対して表示部への表示要求データの取得を指示するコマンドであり、表示制御部は、表示要求データをカード用メモリから取得した場合に、制御データに含まれる制御コマンドを、表示要求データに含まれる制御コマンドと所定の関係になるように更新するようにしてもよい。ここで、特定の関係とは、例えば、制御コマンドの値が同一となる関係などである。また、所定の関係とは、いずれかの制御コマンドの値に「1」を加算した関係などである。
【0012】
また、検証部は、制御データの制御コマンドが表示要求データの取得を指示するコマンドである場合に、表示部の内容と、表示要求データの制御コマンドと制御データの制御コマンドとが特定の関係を有しているか否かを検証するようにしてもよい。
【0013】
また、検証部は、制御データの制御コマンドが表示要求データの取得を指示するコマンドである場合に、表示部の内容と、表示要求データの制御コマンドと制御データの制御コマンドとが特定の関係を有しているか否かを検証し、さらに、表示要求データの内容と、表示制御部に取得されている表示部に表示させるための表示データの内容とが一致しているか否かを検証するようにしてもよい。
【0014】
また、表示要求データの更新は、認証処理を要するセキュアなデータであり、制御データの更新は、認証処理が不要なノンセキュアなデータであってもよい。
【0015】
また、ICカードは、外部装置と非接触式に通信可能なICチップを搭載してもよい。
【0016】
また、上記課題を解決するために、本発明の別の観点によれば、外部装置からの要求に応じて、表示部に表示させる表示要求データと、表示部への表示を制御する制御データをカード用メモリへ記録するステップと、カード用メモリに記録された表示要求データと制御データとに含まれる所定の制御コマンドを比較することによりデータの整合性を検証するステップと、検証結果に応じて、表示要求データを表示部に表示させ、制御データを更新するステップと、を含む、データ制御方法が提供される。
【0017】
また、上記課題を解決するために、本発明の別の観点によれば、コンピュータを、外部装置からの要求に応じて、表示部に表示させる表示要求データと、表示部への表示を制御する制御データをカード用メモリへ記録する記録部と、カード用メモリに記録された表示要求データと制御データとに含まれる所定の制御コマンドを比較することによりデータの整合性を検証する検証部と、検証部の結果に応じて、表示要求データを表示部に表示させ、制御データを更新する表示制御部を備える、ICカードとして機能させるための、プログラムが提供される。
【発明の効果】
【0018】
以上説明したように本発明によれば、ICカード内の認証不要なデータ領域について、不正な改ざんを防止することができる。
【発明を実施するための最良の形態】
【0019】
以下に添付図面を参照しながら、本発明の好適な実施の形態について詳細に説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
【0020】
また、以下に示す順序に従って、当該「発明を実施するための最良の形態」を説明する。
〔1〕本実施形態の目的
〔2〕ICカードの概要
〔3〕ICカードの内部構成
〔4〕ICカードによる表示処理
〔5〕ICカードによる検証処理
〔6〕リーダ/ライタによる表示制御
【0021】
〔1〕本実施形態の目的
まず、本発明の実施形態の目的について説明する。近年、RAMやROM、EEPROMなどの半導体メモリを組み込みことで、多量の情報を記録可能なICカードが広く用いられている。ICカードには、例えば、電子決済における残高情報、交通機関や娯楽施設における電子チケットの情報、ショッピングに利用されるクーポン情報など、様々な情報がリーダ/ライタを通して書込まれる。
【0022】
ICカードの利便性を向上させる技術開発の事例としては、例えば、カードの表面に電子ペーパーやLCDパネル等の表示デバイスを設けて、記録されている情報をユーザに表示可能なICカードが挙げられる。また、例えば、太陽電池など光電変換によって電力を発生させる手段を備え、当該電力発生手段により生成された電力を利用して、リーダ/ライタから離れた状態でも表示デバイスに情報を表示可能なICカードが挙げられる。
【0023】
上記のような表示機能付きICカードには、リーダ/ライタからのデータの書き込みや読み込みを制御するカード用制御部と、表示部への表示を制御する表示用制御部とが存在することとなる。この場合、リーダ/ライタは、カード用制御部を介してデータの書き込みや読み込みを行う。したがって、外部装置であるリーダ/ライタによりアクセスされるICカード内のデータは、書き込み時に認証が必要な構成となっている。
【0024】
一方、表示制御部は外部のリーダ/ライタから直接アクセスされる構成とはなっていないため、表示制御部にセキュリティ機能を搭載していない場合がある。この場合、表示制御部によりアクセスされるICカード内のデータを認証不要として、表示制御部がICカード内の必要なデータを書き込む構成とする必要がある。このように構成されているICカードにおいては、認証が不要なデータ領域が、悪意のある第三者により不正に改ざんされる危険性があるという問題があった。
【0025】
そこで、上記のような事情を一着眼点として、本発明の実施形態にかかるICカード20が創作されるに至った。本実施形態にかかるICカード20によれば、ICカード内の認証不要なデータ領域について、不正な改ざんを防止することが可能となる。
【0026】
〔2〕ICカードの概要
次に、図1を参照して、ICカードの概要について説明する。図1は、一実施形態にかかるICカード20の外観を示す模式図である。
図1を参照すると、ICカード20は、その外観上に操作部42及び表示部60を有している。
【0027】
表示部60は、例えばLCD(Liquid Crystal Display)又はOLED(Organic Light Emitting Diode)などを用いた表示デバイスとして構成される。表示部60は、ICカード20の内部に設けられた制御部(図示せず)からの制御に基づき、ICカード20のメモリから読み出されたデータを表示する。
【0028】
操作部42は、光電変換により生ずる電位差により表示部60の表示内容を切替可能な操作手段としての役割を果たす。例えば、操作部42は、図1に示したように、セル24aからセル24hまでの8個のセルを直列接続した太陽電池の集合として構成され得る。太陽電池の1セル当たりの起電力は、負荷と受光する光量とに応じて決定される。そのため、このようなセルのいずれかをユーザが指を用いて覆い隠せば、セルごとの起電力に応じた電位差に変化が生じ、ICカード20はユーザによる操作を認識することができる。
【0029】
例えば、図1のセルの配置において、セル24g及びセル24hが覆い隠された場合には、ICカード20は、表示部60の表示内容をある特定の方向(例えば、「進む」など)へ切替えてもよい。また、例えば、セル24a及びセル24bが覆い隠された場合には、ICカード20は、表示部60の表示内容を逆の方向(例えば、「戻る」など)へ切替えてもよい。なお、操作部42におけるセルの配置は、かかる例に限定されない。例えば、操作部42において、上記「進む」又は「戻る」のいずれか一方向の操作のみを認識可能としてもよい。
【0030】
また、操作部42は、後にさらに説明するように、表示部60を駆動するための電力を生成する電力生成手段としての役割も果たす。
【0031】
なお、ICカード20の外観はかかる例に限定されない。例えば、操作部42又は表示部60の大きさ、位置又は向きなどは、ICカード20の利用形態に応じてどのように変更されてもよい。
【0032】
また、操作部42のセル24a〜24hの表面は、外部との接触や刺激によりキズや破砕を生じないようにするための保護フィルムにより覆われるのが好適である。その場合、保護フィルムの素材として集光性のある素材を使用することで、各セルの光電変換による起電力が上昇し、表示部60の連続表示可能時間や許容消費電力を向上させることができる。
【0033】
〔3〕ICカードの内部構成
さらに、ICカード20は、次に説明する図2に示した内部構成を有する。図2は、ICカード20の構成の一例を示すブロック図である。図2を参照すると、ICカード20は、アンテナ28、ICカードモジュール30、電力生成部34、操作部(電力生成部)42、電力蓄積部44、スイッチ46、及び表示モジュール50を備える。
【0034】
さらに、ICカードモジュール30は、無線通信部32、変調/復調部36、カード用CPU(Central Processing Unit)38、及びカード用メモリ40を有する。また、表示モジュール50は、内部通信I/F(インタフェース)52、表示用CPU54、表示用メモリ56、デバイスドライバ58、及び表示部60を有する。
【0035】
ICカード20が信号を受信する場合、まず、アンテナ28を介して受信された電磁波は、ICカードモジュール30の無線通信部32により増幅され、変調/復調部36へ供給される。変調/復調部36は、例えば、無線通信部32から供給された変調波(ASK変調波)を包連線検波し、BPSK(Binary Phase Shift Keying)などに従って復調する。そして、変調/復調部36は、復調により得られた入力信号をカード用CPU38へ出力する。
【0036】
カード用CPU38は、ICカードモジュール30の動作全般を制御する。例えば、カード用CPU38は、入力信号に含まれるデータをカード用メモリ40の所定の書込み位置に記録し、又は入力信号により指定された所定のコマンドの実行結果を変調/復調部36へ出力する。カード用メモリ40は、例えばROMやフラッシュメモリなどの半導体メモリを用いて、カード用CPU38により実行されるプログラム、制御データ、及び電子チケット情報などのアプリーションデータを記録する。カード用CPU38は、本発明の記録部の一例である。
【0037】
ICカード20が信号を送信する場合、まず、カード用CPU38から変調/復調部36へ出力信号が出力される。出力信号には、例えば、カード用メモリ40から読み取られたデータ、又は所定のコマンドの実行結果などが含まれる。変調/復調部36は、例えば、出力信号をBPSKなどに従って変調し、さらにASK変調波を生成する。そして、変調/復調部36は、生成した変調波を無線通信部32へ出力する。無線通信部32は、変調/復調部36から入力された変調波をアンテナ28へ供給し、アンテナ28から出力信号が電磁波の輻射により送信される。
【0038】
電力生成部34は、例えば、アンテナ28により受信された電磁波を、アンテナ28とコンデンサ(図示せず)とにより構成されるLC回路によって共振させる。そして、電力生成部34は、例えば、励起した交流磁界を整流して電圧レギュレータなどで安定化させ、直流電源の電力としてICカードモジュール30へ供給する。
【0039】
一方、操作部42は、図1に関連して説明したように、光電変換により生ずる電位差に基づく操作手段であると共に、例えば太陽電池を用いた電力生成手段としての役割を有する。即ち、操作部42は、例えば、外部から受光する光(太陽光又はその他の光源から発せられる光)を光電変換して電力を生成し、生成した電力を電力蓄積部44へ供給する。
【0040】
また、操作部42は、図1に示した個々のセル24a〜24hごとの起電力に応じた電位差を検知し、ユーザによる操作を認識する。そして、操作部42は、検知した操作の内容を表す操作信号を表示用CPU54へ出力する。なお、操作信号とは、例えば、表示部60の表示内容を切替える方向として「進む」又は「戻る」を指定する信号などであってよい。
【0041】
電力蓄積部44は、例えばコンデンサなどを用いて、操作部(電力生成部)42から供給される電力を蓄積する。そして、電力蓄積部44は、蓄積した電力を表示モジュール50に供給し、表示モジュール50を駆動させる。さらに、電力蓄積部44は、蓄積した電力をスイッチ46に供給する。
【0042】
スイッチ46は、表示モジュール50からのICカードモジュール30へのアクセスと外部(ICカード20の外部)からのICカードモジュール30へのアクセスを切替える。例えば、スイッチ46は、リーダ/ライタ等の外部装置から輻射された電磁波をアンテナ28が受信した場合には、表示モジュール50からのICカードモジュール30へのアクセスを遮断する。また、例えば、スイッチ46は、アンテナ28が電磁波を受信していない状態で電力蓄積部44から電力の供給を受けている場合には、表示モジュール50からのICカードモジュール30へのアクセスを通過させる。
【0043】
表示モジュール50の表示用CPU54は、例えばROM(図示せず)などに記憶されているプログラムを実行し、表示モジュール50の動作全般を制御する。例えば、表示用CPU54は、内部通信I/F52を介してICカードモジュール30にアクセスし、カード用メモリ40に記録されているデータを取得する。また、表示用CPU54は、取得したデータを表示用メモリ56に表示用データとして記録させる。また、表示用CPU54は、例えば表示モジュール50の起動時などの所定のタイミングで表示用メモリ56から表示用データを取得し、取得した表示用データを表示部60に表示させる。表示用CPU54は、本発明の検証部および表示制御部の一例である。検証部による検証処理については、後で詳細に説明する。
【0044】
内部通信I/F52は、例えば、ICカードモジュール30が外部の装置に提供するコマンドと同等の信号を生成することにより、表示用CPU54からICカードモジュール30へのアクセスを実現する。それにより、表示用CPU54は、カード用メモリ40に記録されているデータを取得することが可能となる。
【0045】
表示用メモリ56は、例えばフラッシュメモリなどの半導体メモリを用いて、制御データ、及び表示用CPU54がカード用メモリ40から取得した表示用データなどを記録する。なお、表示用メモリ56に記録されるデータの内容については、後にさらに具体的に説明する。
【0046】
デバイスドライバ58は、表示用CPU54による制御に応じて、ICカード20に設けられた表示デバイスである表示部60を駆動する。
【0047】
表示部60は、図1に関連して説明したように、LCDなどを用いた表示デバイスとして構成される。表示部60は、例えば、表示用CPU54により表示用メモリ56から取得された表示用データを画面に表示する。
【0048】
ここまで、図1及び図2を用いて、本発明の一実施形態の前提となるICカード20の外観及び内部構成について説明した。ここでの説明から理解されるように、ICカード20のICカードモジュール30は、アンテナ28が電磁波を受信している間にのみ電力の供給を受けて駆動する。一方、ICカード20の表示モジュール50は、例えば図1に示したリーダ/ライタ10などのリーダ/ライタから離れた場所にICカード20が位置していても、電力蓄積部44に蓄積された電力を利用して表示部60にデータを表示することができる。
【0049】
なお、ここではICカード20が非接触型ICカードである例について説明したが、ICカード20は、非接触型ICカードでなくてもよい。ICカード20が接触型のICカードであった場合には、例えば、アンテナ28及び無線通信部32の代わりに、端子及び通信部がICカード20に設けられ得る。
【0050】
次に、ICカード20のカード用メモリ40及び表示用メモリ56に記録されるデータのうち、本実施形態と関連のあるデータの構成について説明する。
【0051】
<カード用メモリのデータ構成例>
図3は、図2に示したカード用メモリ40に記録されるデータの部分的なデータ構成の一例を示す説明図である。
【0052】
図3を参照すると、カード用メモリ40のアドレスX0〜X5には表示要求データ、アドレスX6には制御データ、アドレスY0〜Y5以降にはアプリケーションデータ1〜アプリケーションデータMが記録されている。
【0053】
表示要求データとは、ICカードモジュール30(又は外部装置)が表示モジュール50に表示を要求するデータである。ICカードモジュール30のカード用CPU38は、外部装置からの指示に応じて、例えば、電子チケットや電子クーポンなどの任意のアプリケーションに関連する表示要求データをアドレスX0〜X5に書き込む。なお、表示要求データは、例えばテキストデータ、ビットマップデータなど、表示モジュール50の表示部60により表示可能な任意のデータであってよい。
【0054】
制御データとは、ICカードモジュール30から表示モジュール50への表示要求と応答とを制御するためのデータである。例えば、ICカードモジュール30のカード用CPU38は、外部装置からの指示に応じて、表示を要求するデータを表示要求データに書き込むと共に、表示モジュール50による表示要求データの取得を指示する所定のビット列を制御データに書き込む。
【0055】
また、例えば、表示モジュール50の表示用CPU54は、表示要求データの取得に成功した場合に、表示要求データの取得に成功したことを表す所定のビット列を制御データに書き込む。さらに、例えば、表示用CPU54は、表示要求データの取得に失敗した場合には、表示要求データの取得に失敗したことを表す所定のビット列(エラーコード)を制御データに書き込む。なお、例えば、エラーコードの値によってエラーの種類(データ長の不正、コマンドの不正など)を識別可能としてもよい。
【0056】
かかる制御データの使用により、ICカードモジュール30と表示モジュール50との間のデータ連携の状況が、外部装置と共有される。それにより、例えば、表示モジュール50による表示要求データの取得が完了するまで外部装置からの新たなデータの書込みを禁止し、ICカードモジュール30と表示モジュール50との間のデータの不整合を未然に防ぐことができる。
【0057】
アプリケーションデータ1〜アプリケーションデータMは、ICカード20により提供される様々なアプリケーションに関連する任意のデータである。アプリケーションデータ1〜アプリケーションデータMには、前述したように、例えば残高情報、電子チケット情報、又はクーポン情報などが含まれ得る。
【0058】
なお、複数のアプリケーションにより共通的に使用される可能性のある残高情報は、図4の例によらず、アプリケーションデータ1〜アプリケーションデータMとは異なる特別なアドレスに保持されていてもよい。また、カード用メモリ40には、図3に示したデータ以外のどのようなデータが保持されていてもよい。
【0059】
<表示用メモリのデータ構成例>
次に、図4は、図2に示した表示用メモリ56に記録されるデータのデータ構成の一例を示す説明図である。
【0060】
図4を参照すると、表示用メモリ56のアドレス01にはカード識別子、アドレス02には表示制御データ、アドレス03には表示順テーブル、及びアドレスK0〜K5以降には表示用データ1〜表示用データNが記録されている。
【0061】
カード識別子は、表示モジュール50がアクセスするICカードモジュール30の個体を識別するための識別子である。通常、ICカードに外部装置がアクセスする際には、外部装置からポーリングコマンドが発行され、その応答によってカード識別子が取得される。それにより、外部装置は複数のICカードから通信相手とするICカードを識別することができる。
【0062】
これに対し、本実施形態では、ICカード20に搭載されるICカードモジュール30と表示モジュール50の組合せは変化しない。そこで、予め表示用メモリ56にICカードモジュール30の個体を識別するカード識別子を記録させておくことにより、ポーリング処理を省略してICカード20の消費電力の低減と処理時間の短縮を図ることができる。なお、カード識別子は、表示モジュール50がICカード20に組み込まれた後の初回の起動時に、ポーリングコマンドによって取得されてもよく、又は製造時に製造装置により書き込まれてもよい。
【0063】
表示制御データは、表示モジュール50による表示処理を制御するためのデータである。例えば、表示制御データには、ICカードモジュール30のカード用メモリ40内の制御データが格納されているメモリアドレスなどのアドレスデータが含まれる。
【0064】
表示順テーブルは、アドレスK0〜K5以降の表示用データ1〜表示用データNをどのような順序で表示部60に表示させるかを定義する。表示順テーブルは、例えば、表示部60に表示させる順に表示用データ1〜表示用データNのアドレス(又はブロック番号など)を列記したデータであってもよい。また、表示順テーブルに、メモリ順、日付順といった表示順の種類を定義するデータが含まれていてもよい。
【0065】
また、表示順テーブルには、表示部60に最初に表示させる初期表示用データのアドレスが含まれていてもよい。さらに、表示用メモリ56には、複数の表示順テーブルが記録されてもよい。その場合には、例えば表示順テーブルにシリアル番号を付しておき、表示部60へのデータの表示順を複数のパターンの中から適宜選択することができる。
【0066】
表示用データ1〜表示用データNは、それぞれ表示部60に表示され得るデータである。上述したように、表示用CPU54は、ICカードモジュール30のカード用メモリ40から取得した表示要求データを、表示用データとして表示用データ1〜表示用データNのいずれかのメモリ位置に記録させる。そして、表示用データは、表示順テーブルに従った順序で表示用CPU54に読み出され、表示部60に表示される。
【0067】
ここまで、図3及び図4を用いて、ICカード20のカード用メモリ40及び表示用メモリ56に記録され得るデータのデータ構成の一例について説明した。次に、かかるICカード20により実行される表示処理について説明する。
【0068】
〔4〕ICカードによる表示処理
図5は、ICカード20による表示処理の流れの一例を示すシーケンス図である。図5には、リーダ/ライタなどの外部装置からのICカード20へのデータの書込みが開始した後、ICカード20の表示部60にデータが表示されるまでの処理が示されている。
【0069】
図5を参照すると、まず、外部装置は、ICカードモジュール30のカード用メモリ40から制御データを取得し、未だ表示モジュール50に書き込まれていない表示要求データが残っていないかを確認する(S102)。ここで、未取込みの表示要求データが残っていることが制御データにより示されていれば、外部装置はその後の処理をキャンセルする。一方、未取込みの表示要求データが残っていなければ、外部装置からの指示に応じて、ICカードモジュール30のカード用メモリ40に表示要求データが書込まれる(S104)。
【0070】
なお、処理を効率的に行うためには、表示要求データに対応するアプリケーションデータをカード用メモリ40に同時に書き込むこととするのが好適である。さらに、外部装置は、カード用メモリ40の制御データを、表示モジュール50によるデータ取得を指示する所定のビット列に更新する(S106)。その後、外部装置は、自装置からの電磁波の輻射を停止して表示モジュール50による表示要求データの取得を待つ(S108)。
【0071】
その後、ICカードの操作部(電力生成部)42が光を受光して表示モジュール50を駆動可能な電力が電力蓄積部44に蓄積されると、表示モジュール50が起動する(S120)。そうすると、表示モジュール50の表示用CPU54は、ICカードモジュール30にアクセスしてカード用メモリ40に記録されている制御データを取得する(S122)。
【0072】
次に、表示用CPU54は、制御データのビット列を参照して新しい表示要求データが書込まれているか否かを判定する(S124)。ここで、新しい表示要求データが書込まれていなければ、後続のS126〜S128の処理はスキップされる。一方、新しい表示要求データが書込まれていれば、表示用CPU54は、ICカードモジュール30にアクセスしてカード用メモリ40に記録されている表示要求データを取得する(S126)。
【0073】
そして、ステップS122において取得した制御データと、ステップS126において取得した表示要求データとに含まれる制御コマンドを比較して、データの整合性を検証する(S127)。ステップS127におけるデータの検証処理については、後で詳細に説明する。
【0074】
そして、表示用CPU54は、表示要求データの取得に成功すると、カード用メモリ40の制御データを、表示要求データの取得に成功したことを表す所定のビット列に更新する(S128)。
【0075】
そして、表示用CPU54は、表示用メモリ56から表示順テーブルを読み出し(S130)、表示順テーブルに従って表示用データ1〜Nを順次表示部60に表示させる(S132)。このとき、さらに操作部42を介して表示内容の切替えを指示する操作が行われたことを検知した場合には、表示用CPU54は、表示部60に表示させている表示用データを他の表示用データに切替える。
【0076】
なお、表示モジュール50によるS122からS128までの通信処理と比較して、S130以降の表示処理には高速な処理速度は求められない。例えば、通信処理の処理速度は数十MHz程度である一方、表示処理の処理速度は数十kHz程度でよい。そのため、表示モジュール50は、S122からS128の間にのみ処理クロックを一時的に高速化することで、電力消費を節約してもよい。ICカード20は、このようにして、外部装置から書込まれたデータをユーザに表示させることができる。
【0077】
〔5〕ICカードによる検証処理
以上、ICカード20による表示処理について説明した。次に、ICカードによる検証処理について説明する。上記したように、該検証処理は、検証部の一例である表示用CPU54によって実行される処理である。図6は、ICカードによる検証処理について説明する説明図である。上記したように、リーダ/ライタ等の外部装置(以下リーダ/ライタと称する)は、ICカードモジュール内のメモリを読み込んだり、該メモリにデータを書き込んだりする。すなわち、リーダ/ライタがアクセスできるのはICカードモジュールだけであり、表示モジュールのメモリを直接書き換えることができない構造となっている。
【0078】
図6に示したように、リーダ/ライタ10は、ICカードモジュール30の不揮発性メモリ部分を読み書きする。また、表示モジュール50は、ICカードモジュール30から必要な情報を読み込み、表示モジュール50内部の不揮発性メモリにデータを保存する。そして、表示モジュール50は、保存した表示イメージデータをディスプレイに転送して表示動作をさせたり、太陽電池スイッチの入力に応じて表示を切り替えたりする。
【0079】
ところで、リーダ/ライタ10とICカード20との間の非接触通信システムにおいては、1つのファイルに対して、複数のアクセス方法を定義することができる。例えば、ICカード20においては、表示要求データ管理領域は書き込み時に認証が必要であり、読み込み時には認証が不要となっている。
【0080】
一方、リーダ/ライタ10に直接アクセスされない表示モジュール50にセキュリティ機能を搭載していない場合には、表示モジュール50にアクセスされる制御データは認証不要なノンセキュアなデータとなっている。一般的に、ICカードに搭載するLSI(Large Scale Integration)にセキュリティ機能を搭載すると、ICカードを製造するためのコストが嵩んでしまう。そこで、外部からアクセスされない表示用のLSI(表示モジュール)にセキュリティ機能を搭載しない場合がある。
【0081】
ICカードモジュールの制御データがノンセキュアなデータとなっている場合、悪意の第三者により、制御データが破壊され不正な状態とされてしまったり、本来の情報とは異なるコマンドに書き換えられたりする危険性がある。制御データが破壊されてしまった場合には、不正な状態を検出して処理を中断する等の対処をすることができる。しかしながら、制御データ自体は不正な状態であるが、本来の情報とは異なる別の情報に書き換えられてしまった場合には、正しい情報であると判断して本来の処理とは異なる処理を実行してしまう可能性がある。
【0082】
制御データに書き込まれるコマンドとしては、例えば以下のコマンドが挙げられる。
(1)表示データの設定
(2)表示データの削除
(3)表示テーブルの設定
(4)アクセス領域アドレスの設定
以下、それぞれのコマンドについて、悪意の第三者によりコマンドが書き換えられる場合について説明する。
【0083】
(1)表示データの設定
悪意の第三者により表示データ設定コマンドが制御データに書き込まれた場合、表示モジュール50はICカードモジュール30内の表示要求データを取り込んで、表示モジュール50内のメモリに書き込んでしまう。そうすると、以前に表示モジュール内のメモリに書き込まれたデータは、上書きされ消えてしまう。
【0084】
また、表示要求データを確実に表示モジュール50内のメモリに書き込むためには、表示モジュール50に安定した電力を供給する必要がある。例えば、悪意の第三者が、制御データを取り込み済みから表示要求データが存在するとの情報に書き換え、さらに、表示モジュールが表示要求データを取り込む過程で表示モジュールの電力を遮断することが考えられる。一般に、不揮発性メモリを書き換える途中で電力が不足してしまうと、データの書き損じなどが生じる。したがって、上記のような悪意の第三者による不正な行為が発生すると、表示要求データを書き込めなかったり、書き込み中のデータが不正なデータとなってしまったりする可能性がある。
【0085】
(2)表示データの削除
悪意の第三者により表示データ削除要求コマンドが制御データに書き込まれると、表示モジュール50は表示モジュール50内のメモリから表示要求データを削除してしまう。
【0086】
(3)表示テーブルの設定
悪意の第三者により表示テーブルを書き換えるコマンドが制御データに書き込まれると、表示順が期待しない順番に書き換えられてしまう。
【0087】
(4)アクセス領域のアドレス設定
悪意の第三者により、残高や表示データ、制御データ等のアクセスするデータ領域の保存アドレスを書き換えられると、次にアクセスしたときに、書き換えられたアドレスに該当するデータ領域にアクセスしてしまう。この結果、悪意の第三者が自由にアクセスできる領域に、データアドレスが移し替えられてしまうこととなる。本来、カード内のデータ領域はすべてアクセス権限のある者に管理されており、悪意の第三者が自由に使える領域は作れないこととなっている。しかし、正当な権限者が他者に領域を付与したりした場合、付与した領域が踏み台となって攻撃される可能性も考えられる。
【0088】
上記のような悪意の第三者による不正なデータの改ざんを防止するために、表示モジュール50内の表示用CPU54は、カード用メモリに記録された表示要求データと制御データに含まれる所定のコマンドを比較することにより、データの整合性を検証する。カード用メモリに記録された表示要求データは権限者しか書き換えることができないため、データの整合性を検証することにより、悪意の第三者により制御データが書き換えられたか否かを検証して不正なデータの改ざんを防止することが可能となる。
【0089】
データの整合性を検証する方法としては、制御データに含まれるレスポンスコードと表示要求データに含まれるコマンドコードに所定の関連性を持たせておくことが考えられる。制御データに含まれるレスポンスコードは、通常、表示モジュール50が制御データを取り込んだ際に書き換えられるデータである。また、表示要求データに含まれるコマンドコードは、通常、リーダ/ライタによりデータが書き込まれた後は変動しないコードである。
【0090】
リーダ/ライタによりデータが書き込まれる際には、制御データのレスポンスコードと表示要求データのコマンドコードとを同一の値としておく。そして、表示モジュールが表示要求データを取り込んだ際には、制御データのレスポンスコードを、表示要求データのコマンドコードと所定の関係となるように書き換える。
【0091】
例えば、表示モジュールが表示要求データを取り込んだ際には、制御データのレスポンスコードに「1」を加算する。これにより、制御データのレスポンスコードと表示要求データのコマンドコードとの関係は、同一の場合か、差が「1」の場合かのいずれかとなる。よって、表示用CPU54が、両者のコードが特定の関係(同一)となっているか、所定の関係(「1」加算されている)となっているかを検証することにより、悪意の第三者により制御データが書き換えられたか否かを判断することが可能となる。
【0092】
しかし、悪意の第三者により表示用CPU54が処理済みとした制御データのレスポンスコードを、未処理状態を表すレスポンスコードに戻してしまう可能性がある。この場合、表示用CPU54は、一度表示要求データを取り込んでいるにも関わらず、再度同じ表示要求データを取り込もうとしてしまう。特に、表示モジュール50内のメモリにデータを書き込んでいる際に電力(光)が遮断されてしまうと、上記したように表示モジュール50内のデータが破壊されてしまう恐れがある。
【0093】
上記したようなデータの改ざんを防止するために、カードモジュール30内の制御データを読み出し、データを取り込んでいない(未処理状態)場合に表示要求データを読み出す。そして、上記したように、表示要求データに含まれるコマンドコードと、制御データのレスポンスコードを比較して整合性を検証する。検証の結果、コマンドコードとレスポンスコードとが同一である等データの整合性があると判断された場合には、さらに、表示要求データと、表示モジュール50内のメモリに書き込まれている表示データとを比較する。表示要求データと表示モジュール50内の表示データとが同一であった場合には、既にデータが取り込まれていることとなる。この場合には、表示用CPU54は、データの書き込み処理は実行せずにレスポンスコードを未処理状態から処理状態に書き換える。
【0094】
また、制御データに含まれるコマンドが、表示イメージデータ削除コマンドであった場合に、既に表示データが削除されていた場合には削除処理を実行しない。また、表示テーブル書き換え指示のコマンドであった場合には、書き換え要求のあった表示テーブルが既に書き込まれている場合には、表示テーブルのデータ書き換えを行わない。アクセス領域アドレス設定コマンドであった場合にも、既にアクセス領域が設定されている場合には設定処理を実行しない。
【0095】
書き込み中に電力不足となってメモリが破壊される危険性があるため、データの変更を伴う処理が指示された場合には、変更後のデータと要求されているデータとを比較する。そして、要求された処理を実行してもデータの変更がなされないと判定された場合には、処理を実行しない。
【0096】
次に、図7および図8を参照して、上記したデータの検証処理について具体的に説明する。図7は、データの検証処理を示すフローチャートである。図7に示した検証処理を説明するにあたり、適宜図8を参照する。
【0097】
図7に示したように、まず、表示用CPU54は、ICカードモジュール30内の制御データを取得する(S122)。次に、表示用CPU54は、ICカードモジュール30内の表示要求データを取得する(126)。
【0098】
そして、制御データの制御コマンド(レスポンスデータ)が表示要求取得指示データか否かを判定する(S202)。ステップS202において、制御データのレスポンスデータが表示要求取得指示データであると判定された場合には、ステップS126において取得した表示要求データの制御コード(コマンドコード)と、ステップS122において取得した制御データの制御コード(レスポンスデータ)とが一致しているか否かを判定する(S204)。
【0099】
図8に示したように、リーダ/ライタ(R/W)によりデータがかきこまれた場合には、制御データのレスポンスデータは「000」であり、表示要求データのコマンドコードは「000」で同一の値となっている。また、表示要求データに含まれる表示データは「ABC」であったとする。
【0100】
図7に戻り、ステップS204において、表示要求データと制御データの制御コマンドが一致していると判定された場合には、さらに、表示要求データに含まれる表示データと、表示モジュール50内に書込み済の表示データが一致しているか否かを判定する(S206)。ステップS206において、表示データが一致していないと判定された場合には、表示要求データを表示モジュール50内に書き込む(S208)。そして、制御データのレスポンスコードを更新する(S210)。
【0101】
図8に示したように、表示用CPU54は、表示要求データを取得した後に制御データを更新する。このとき、表示用CPU54は、制御データのレスポンスコードを、表示要求データのコマンドコードに「1」を加算した値に書き換える。さらに、表示データを表示モジュール50内のメモリに書き込む。
【0102】
したがって、ステップS204において、表示要求データのコマンドコードが「000」であり、制御データのレスポンスコードが「001」であった場合には、表示要求データが表示モジュール内のメモリに書き込まれたことを表す。
【0103】
図7に戻り、ステップS206において、表示データが一致していないと判定された場合には、表示要求データの書込みはせずに、制御データのレスポンスコードを更新する(S210)。
【0104】
図8に示したように、通常、表示用モジュール50内のメモリに表示データが書き込まれた場合には、制御データのレスポンスコードは更新されて、表示要求データのコマンドコード「000」に1を加算した値「001」となっている。しかし、悪意の第三者により、既に表示データが書き込まれているにも関わらず、制御データのレスポンスコードが「000」に書き換えられてしまう可能性がある。
【0105】
この場合、表示要求データのコマンドコード「000」と制御データのレスポンスコード「000」は同一であるため、表示用CPU54はデータ未処理と判断して表示データを表示用モジュール50内のメモリに書き込もうとしてしまう。しかし、ステップS206において、制御データが一致している場合でも、表示要求データの内容と表示モジュール50内の表示データとの整合性を判断する。これにより、既に表示要求データが書き込まれている場合には、ステップS208の書込み処理を実行せずに、制御データの更新のみ実行する。この場合、制御データのレスポンスコードは、未処理状態の「000」から処理完了状態の「001」となる。
【0106】
このように、本実施形態にかかるICカード20は、制御データがノンセキュアなデータとなっている場合に、制御データと表示要求データとに含まれる制御コマンドを比較することにより、データの整合性を検証する。これにより、悪意のある第三者による不正な改ざんを防止することが可能となる。
【0107】
〔6〕リーダ/ライタによる表示制御
次に、リーダ/ライタ10によるICカード20への表示制御について説明する。図9は、リーダ/ライタ10のICカード保持部12にICカード20が保持されている様子を示す模式図である。図9に示したように、リーダ/ライタ10は、例えば、その外観上に、ICカード保持部12、表示部14、及びキー入力部16を有している。
【0108】
図9では、リーダ/ライタ10のICカード保持部12にICカード20が挿入されている。このとき、ICカード20の位置は、リーダ/ライタ10を使用するユーザにより表示部60を視認可能であって、かつ操作部42に外部からの光が届かない位置に調整されている。
【0109】
ICカード保持部12は、例えば残高情報、電子チケット情報、又はクーポン情報などの任意の情報をリーダ/ライタ10がICカードへ書き込む際に当該ICカードを保持する。ICカード保持部12の深さは、後により詳しく説明するように、ICカード保持部12にICカードが保持されている状態で当該ICカードの表示部が情報処理措置10の外部から視認可能となるように調整されている。なお、ここでは一例として、ICカード保持部12の形状を上からICカードを挿入可能なポケット型の形状としているが、ICカード保持部12の形状はかかる例に限定されず、他の形状であってもよい。
【0110】
表示部14は、リーダ/ライタ10の制御に関する情報、ICカードから読み取った情報、又はICカードへ書き込まれる情報など、任意の情報をユーザに表示する。
【0111】
キー入力部16は、ユーザがリーダ/ライタ10を操作するためのボタン、スイッチ、レバー又はキーなどを含む。なお、例えばタッチパネルなどを用いて、表示部14とキー入力部16とが一体に構成されていてもよい。
【0112】
なお、リーダ/ライタ10には、必要に応じて、リーダ/ライタ10が外部の装置と通信するための外部通信用デバイス、及び任意の情報を紙媒体に印刷する印刷デバイス(共に図示せず)などが追加的に設けられていてもよい。
【0113】
また、図9では、リーダ/ライタ10の一例として携帯型の電子チケット発券機を示しているが、リーダ/ライタ10はかかる例に限定されない。例えば、リーダ/ライタ10は、据え置き型の電子チケット発券機、電子決済用端末、又は電子クーポン発券機など、ICカード用の任意のリーダ/ライタであってよい。
【0114】
また、リーダ/ライタ10は、図10に示したように、表示部14、キー入力部16、制御部110、メモリ112、変調/復調部114、無線通信部116、アンテナ118、発光部120、及び発光調整部122などを備える。
【0115】
制御部110は、CPUやMPUなどの演算装置を用いて、例えばメモリ112に記録されているプログラムを実行することにより、リーダ/ライタ10の動作全般を制御する。例えば、制御部110は、所定のデータ書込みコマンドを、変調/復調部114、無線通信部116及びアンテナ118を介してICカード20へ送信する。なお、本実施形態に係るリーダ/ライタ10の特徴に関連する制御部110の機能については、後にさらに具体的に説明する。メモリ112は、例えばROMやフラッシュメモリなどの半導体メモリを用いて、制御部110により実行されるプログラム、又は制御データなどを記録している。
【0116】
変調/復調部114、無線通信部116、及びアンテナ118は、リーダ/ライタ10がICカード20に所定のコマンドを送信し、及びリーダ/ライタ10がICカード20から応答を受信するための通信モジュールの役割を果たす。
【0117】
例えば、リーダ/ライタ10がICカード20にデータを書き込む場合、まず、制御部110から変調/復調部114へデータの書込みを指示するコマンドとデータとを含む出力信号が出力される。変調/復調部114は、例えば、出力信号をBPSKなどに従って変調し、さらにASK変調波を生成する。そして、変調/復調部114は、生成した変調波を無線通信部116へ出力する。無線通信部116は、変調/復調部114から入力された変調波をアンテナ118へ供給し、アンテナ118から出力信号が電磁波の輻射により送信される。
【0118】
また、リーダ/ライタ10がICカード20からデータを読み取る場合、上述したデータの書込みの場合と同様に、まず、データの読み取りを指示するコマンドがICカード20に送信される。そうすると、ICカード20から所定のデータを含む応答信号が返信され、アンテナ118により受信される。そして、アンテナ118により受信された応答信号(ASK変調波)は、無線通信部116により増幅され、変調/復調部114へ供給される。変調/復調部114は、例えば、無線通信部116から供給された変調波を包連線検波し、BPSKなどに従って復調する。そして、変調/復調部114は、復調された応答信号を制御部110へ出力する。
【0119】
発光部120は、図9に示したICカード保持部12に保持されるICカードに設けられた操作手段であって光電変換により生ずる電位差により当該ICカードの表示部の表示内容を切替可能な当該操作手段に、光を供給する。ここで、ICカードの操作手段とは、例えば図1を用いて説明したICカード20の操作部(第2電力生成部)42などに相当する。即ち、発光部120は、例えばICカード保持部12に保持されるICカード20の操作部42に光を照射可能な、例えばLED(Light Emitting Diode)などの発光素子、又は蛍光管若しくは電球などの発光器を有する。そして、発光部120は、後述する発光調整部122からの制御に応じて、ICカードの操作手段に光を照射し、ICカードの表示モジュールを駆動する。
【0120】
さらに、発光部120は、ICカードの表示部を駆動させる第1の発光パターン、及びICカードの表示部の表示内容を切替える第2の発光パターンにより、前記操作手段に光を供給可能である。
【0121】
図11は、図9の方向AからICカード保持部12の内部を見た状態を示す模式図である。図11を参照すると、リーダ/ライタ10のICカード保持部12に保持されているICカード20が、操作部42の配置された面(以下、操作面という)を上にして示されている。
【0122】
図11において、操作部42は、3つ操作区画42a、42b及び42cに分けられている。このうち、第1の操作区画42aは、例えば図1に示した操作部42のセル24g及びセル24hに対応する。第2の操作区画42bは、例えば図1に示した操作部42のセル24c〜セル24fに対応する。第3の操作区画42cは、例えば図1に示した操作部42のセル24a及びセル24bに対応する。
【0123】
一方、リーダ/ライタ10のICカード保持部12の内側の、ICカード20の操作面に相対する面には、発光部120の有する複数の発光素子が配置されている。これら発光素子は、仕切り18a及び18bによって、3つの発光区画120a、120b及び120cに分けられている。このうち、第1の発光区画120aは、ICカード20の第1の操作区画42aに相対している。第2の発光区画120bは、ICカード20の第2の操作区画42bに相対している。第3の発光区画120cは、ICカード20の第3の操作区画42cに相対している。
【0124】
発光部120は、このような3つの発光区画120a、120b及び120cを有することにより、ICカード20の操作部42に所定の発光パターンで光を照射して、ICカード20の表示部60に表示される内容を切替えることができる。
【0125】
なお、図11において、仕切り18aは、第1の発光区画120aからの光が第2の操作区画42bに、及び第2の発光区画120bからの光が第1の操作区画42aにそれぞれ届かないようにする役割を果たす。同様に、仕切り18bは、第2の発光区画120bからの光が第3の操作区画42cに、及び第3の発光区画120cからの光が第2の操作区画42bにそれぞれ届かないようにする役割を果たす。
【0126】
図12は、発光部120による発光パターンと、ICカード20の操作部42により検知される操作の内容の関係について示す説明図である。
【0127】
図12を参照すると、発光パターンA〜Dの4つの発光パターンが定義されている。そのうち、発光パターンAは、第1の発光区画120a、第2の発光区画120b及び第3の発光区画120cがいずれも点灯している状態を表す。このとき、ICカード20の操作部42の全ての操作区画42a〜cに光が照射されるため、ICカード20は、操作部42により生成された電力を使用して表示部60を駆動することができる。
【0128】
次に、発光パターンBは、第1の発光区画120aが消灯し、第2の発光区画120b及び第3の発光区画120cが点灯している状態を表す。このとき、ICカード20の操作部42の第1の操作区画42aには光が照射されず、第2の操作区画42b及び第3の操作区画42cに光が照射される。即ち、ICカード20の操作部42において、セル24g及びセル24hが覆い隠されたのと同じ状態となり、ICカード20は、表示部60の表示内容を、例えば「進む」方向へ切替える。
【0129】
次に、発光パターンCは、第1の発光区画120a及び第2の発光区画120bが点灯し、第3の発光区画120cが消灯している状態を表す。このとき、ICカード20の操作部42の第1の操作区画42a及び第2の操作区画42bに光が照射され、第3の操作区画42cには光が照射されない。即ち、ICカード20の操作部42において、セル24a及びセル24bが覆い隠されたのと同じ状態となり、ICカード20は、表示部60の表示内容を、例えば「戻る」方向へ切替える。
【0130】
次に、発光パターンDは、第1の発光区画120a、第2の発光区画120b及び第3の発光区画120cがいずれも消灯している状態を表す。このとき、ICカード20の操作部42の全ての操作区画42a〜cに光は照射されない。そのため、ICカード20は、例えば電力蓄積部44に蓄積された電力が残っていなければ、表示部60を駆動することができない。
【0131】
なお、図12では、発光部120の有する発光素子を発光区画ごとに点灯又は消灯することでICカード20への光の供給が制御される例について説明した。しかしながら、ICカード20への光の供給を制御する方法は、かかる例に限定されない。例えば、各発光区画の前面にシャッターを設け、当該シャッターを開閉することにより、ICカード20への光の供給が制御されてもよい。
【0132】
また、発光部120の発光区画の数、形状及び位置、並びに仕切りの数は、ICカード20の操作部42の操作区画の数、形状及び位置等の仕様に応じて定められ得る。例えば、操作部42において「進む」操作のみを認識可能である場合には、発光部120の発光区画の数を2つ、仕切りの数を1つとしてもよい。また、例えば、リーダ/ライタ10において、複数の異なるICカードの使用に対応するために、1つの操作について複数の発光パターンが用意されてもよい。
【0133】
図10へ戻り、発光調整部122は、制御部110が変調/復調部114、無線通信部116、及びアンテナ118を介してICカード20に記録させたデータを、発光部120による発光回数又は発光パターンを調整することによりICカード20の表示部60に表示させる。即ち、発光調整部122は、制御部110がICカード20に任意のデータを記録させた後、制御部110からICカード20のメモリ上での当該データの書込み位置(に関する情報)を取得する。
【0134】
次に、発光調整部122は、取得した当該書込み位置に応じて発光部120による発光回数又は発光パターンを決定する。そして、発光調整部122は、決定した発光回数又は発光パターンにより発光部120からICカード20へ光を供給させる。その結果、ICカード20の表示部60に表示される内容は、制御部110がICカード20に記録させたデータに切替えられる。それにより、ユーザは、ICカード20に書き込んだデータを、あらためてリーダ/ライタ10からICカード20を取り出して操作することなく、ICカード20の表示部60を見て確認することができる。なお、ここで述べた発光調整部122の機能を、制御部110が直接実行してもよい。
【0135】
また、発光調整部122は、制御部110が変調/復調部114、無線通信部116、及びアンテナ118を介してICカード20との間で通信している間、例えば図12の発光パターンDを適用し、発光部120からICカード20への光の供給を停止させる。同様に、制御部110は、発光調整部122により発光部120からICカード20へ光が供給されている間、ICカード20との間の通信を停止させる。それにより、ICカード20においてICカードモジュール30に表示モジュール50と外部装置(リーダ/ライタ10)が同時にアクセスしてICカード20内で処理のエラーやデータの不整合が生じることを防ぐことができる。
【0136】
ここで、リーダ/ライタ10によりデータの書き込みがなされ、ICカード20の表示モジュール50が表示要求データを未だ取り込んでいない状態で、悪意の第三者により制御データが書き換えられてしまった場合について検討する。この場合、制御データのレスポンスコードは未処理状態「000」であるが、悪意の第三者により制御データのレスポンスコードが処理済「001」に書き換えられてしまう可能性がある。
【0137】
書き込み指示のコマンドがICカードモジュール30内の制御データに書き込まれるのは、上記したようなリーダ/ライタ10を駅員が操作しているか、リーダ/ライタ10の機能を有する発券機により発券されている場合である。この場合には、リーダ/ライタ10により光制御が行われて、データが確実に書き込まれることとなる。したがって、データの書き込み途中で、悪意の第三者により制御データが書き換えられる可能性はほとんどないこととなる。
【0138】
以上、添付図面を参照しながら本発明の好適な実施形態について詳細に説明したが、本発明はかかる例に限定されない。本発明の属する技術の分野における通常の知識を有する者であれば、特許請求の範囲に記載された技術的思想の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本発明の技術的範囲に属するものと了解される。
【0139】
なお、本明細書では、主にリーダ/ライタ10が携帯型のリーダ/ライタである場合について説明したが、リーダ/ライタ10が携帯型と据え置き型のいずれかであるかは問わない。同様に、本明細書では、主にICカード20が非接触型のICカードである場合について説明したが、ICカード20が接触型と非接触型のいずれかであるかは問わない。
【0140】
また、本明細書において説明したリーダ/ライタ10又はICカード20による一連の処理は、ハードウェアで実現されてもよく、又はソフトウェアで実現されてもよい。一連の処理又はその一部をソフトウェアで実行させる場合には、例えば、ソフトウェアを構成するプログラムが予めROMに格納され、実行時にRAMに読み込まれてCPUにより実行される。
【図面の簡単な説明】
【0141】
【図1】本発明の一実施形態にかかるICカードの外観の一例を示す模式図である。
【図2】同実施形態にかかるICカードの構成の一例を示すブロック図である。
【図3】同実施形態にかかるカード用メモリに記録されるデータの部分的なデータ構成の一例を示す説明図である
【図4】同実施形態にかかる表示用メモリに記録されるデータのデータ構成の一例を示す説明図である。
【図5】同実施形態にかかるICカードによる表示処理の流れの一例を示すシーケンス図である。
【図6】同実施形態にかかるICカードによる検証処理について説明する説明図である。
【図7】同実施形態にかかるデータの検証処理を示すフローチャートである。
【図8】同実施形態にかかるICカードに書き込みされるデータの一例である。
【図9】同実施形態にかかるリーダ/ライタにICカードが保持されている様子を示す模式図である。
【図10】同実施形態にかかるリーダ/ライタの構成の一例を示すブロック図である。
【図11】同実施形態にかかるICカードが保持されている様子を図9の方向Aから見た模式図である。
【図12】同実施形態にかかる発光部の発光パターンについて説明するための説明図である。
【符号の説明】
【0142】
10 リーダ/ライタ
12 ICカード保持部
14 表示部(リーダ/ライタ)
16 キー入力部
18a,18b 仕切り
110 制御部
116 無線通信部
120 発光部
120a〜120c 発光区画
122 発光調整部
20 ICカード
24a〜24h セル
42 操作部
42a〜42c 操作区画
60 表示部(ICカード)
【技術分野】
【0001】
本発明は、ICカード、データ制御方法およびプログラムに関し、特に、データの整合性を検証するICカード、データ制御方法およびプログラムに関する。
【背景技術】
【0002】
近年、RAMやROM、EEPROMなどの半導体メモリを組み込むことで、多量の情報を記録可能なICカードが広く用いられている。ICカードには、例えば、電子決済における残高情報、交通機関や娯楽施設における電子チケットの情報、ショッピングに利用されるクーポン情報など、様々な情報がリーダ/ライタを通して書込まれる。
【0003】
ICカードの利便性を向上させる技術開発の事例としては、次のようなものが挙げられる。例えば、下記特許文献1には、カードの表面に電子ペーパーやLCDパネル等の表示デバイスを設けて、記録されている情報をユーザに表示可能なICカードが記載されている。また、例えば、下記特許文献2には、太陽電池など光電変換によって電力を発生させる手段を備え、当該電力発生手段により生成された電力を利用して、リーダ/ライタから離れた状態でも表示デバイスに情報を表示可能なICカードが記載されている。
【0004】
【特許文献1】特開2003−208582号公報
【特許文献2】特開2008−21176号公報
【発明の開示】
【発明が解決しようとする課題】
【0005】
上記のようなICカードには、リーダ/ライタからのデータの書き込みや読み込みを制御するカード用制御部と、表示部への表示を制御する表示用制御部とが存在することとなる。この場合、リーダ/ライタは、カード用制御部を介してデータの書き込みや読み込みを行う。したがって、外部装置であるリーダ/ライタによりアクセスされるICカード内のデータは、書き込み時に認証が必要な構成となっている。
【0006】
一方、表示制御部は外部のリーダ/ライタから直接アクセスされる構成とはなっていないため、表示制御部にセキュリティ機能を搭載していない場合がある。この場合、表示制御部によりアクセスされるICカード内のデータを認証不要として、表示制御部がICカード内の必要なデータを書き込む構成とする必要がある。このように構成されているICカードにおいては、認証が不要なデータ領域が、悪意のある第三者により不正に改ざんされる危険性があるという問題があった。
【0007】
そこで、本発明は、上記問題に鑑みてなされたものであり、本発明の目的とするところは、ICカード内の認証不要なデータ領域について、不正な改ざんを防止することが可能な、新規かつ改良されたICカード、データ制御方法およびプログラムを提供することにある。
【課題を解決するための手段】
【0008】
上記課題を解決するために、本発明のある観点によれば、外部装置からの要求に応じて、表示部に表示させる表示要求データと、表示部への表示を制御する制御データをカード用メモリへ記録する記録部と、カード用メモリに記録された表示要求データと制御データとに含まれる所定の制御コマンドを比較することによりデータの整合性を検証する検証部と、を備えるICカードが提供される。
【0009】
かかる構成によれば、ICカードは、外部からの要求に応じて表示部に表示させる表示要求データと、表示部への表示を制御する制御データをカード用メモリに記録し、表示要求データと制御データとに含まれる所定の制御コマンドを比較してデータの整合性を検証する。これにより、ICカード内の認証不要なデータ領域について、不正な改ざんを防止することが可能となる。
【0010】
また、検証部による検証結果に応じて、表示要求データを表示部に表示させ、制御データを更新する表示制御部を備えるようにしてもよい。
【0011】
また、外部装置からの要求に応じて、記録部に記録された表示要求データの制御コマンドと制御データの制御コマンドとは特定の関係を有し、制御データの制御コマンドは、表示制御部に対して表示部への表示要求データの取得を指示するコマンドであり、表示制御部は、表示要求データをカード用メモリから取得した場合に、制御データに含まれる制御コマンドを、表示要求データに含まれる制御コマンドと所定の関係になるように更新するようにしてもよい。ここで、特定の関係とは、例えば、制御コマンドの値が同一となる関係などである。また、所定の関係とは、いずれかの制御コマンドの値に「1」を加算した関係などである。
【0012】
また、検証部は、制御データの制御コマンドが表示要求データの取得を指示するコマンドである場合に、表示部の内容と、表示要求データの制御コマンドと制御データの制御コマンドとが特定の関係を有しているか否かを検証するようにしてもよい。
【0013】
また、検証部は、制御データの制御コマンドが表示要求データの取得を指示するコマンドである場合に、表示部の内容と、表示要求データの制御コマンドと制御データの制御コマンドとが特定の関係を有しているか否かを検証し、さらに、表示要求データの内容と、表示制御部に取得されている表示部に表示させるための表示データの内容とが一致しているか否かを検証するようにしてもよい。
【0014】
また、表示要求データの更新は、認証処理を要するセキュアなデータであり、制御データの更新は、認証処理が不要なノンセキュアなデータであってもよい。
【0015】
また、ICカードは、外部装置と非接触式に通信可能なICチップを搭載してもよい。
【0016】
また、上記課題を解決するために、本発明の別の観点によれば、外部装置からの要求に応じて、表示部に表示させる表示要求データと、表示部への表示を制御する制御データをカード用メモリへ記録するステップと、カード用メモリに記録された表示要求データと制御データとに含まれる所定の制御コマンドを比較することによりデータの整合性を検証するステップと、検証結果に応じて、表示要求データを表示部に表示させ、制御データを更新するステップと、を含む、データ制御方法が提供される。
【0017】
また、上記課題を解決するために、本発明の別の観点によれば、コンピュータを、外部装置からの要求に応じて、表示部に表示させる表示要求データと、表示部への表示を制御する制御データをカード用メモリへ記録する記録部と、カード用メモリに記録された表示要求データと制御データとに含まれる所定の制御コマンドを比較することによりデータの整合性を検証する検証部と、検証部の結果に応じて、表示要求データを表示部に表示させ、制御データを更新する表示制御部を備える、ICカードとして機能させるための、プログラムが提供される。
【発明の効果】
【0018】
以上説明したように本発明によれば、ICカード内の認証不要なデータ領域について、不正な改ざんを防止することができる。
【発明を実施するための最良の形態】
【0019】
以下に添付図面を参照しながら、本発明の好適な実施の形態について詳細に説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
【0020】
また、以下に示す順序に従って、当該「発明を実施するための最良の形態」を説明する。
〔1〕本実施形態の目的
〔2〕ICカードの概要
〔3〕ICカードの内部構成
〔4〕ICカードによる表示処理
〔5〕ICカードによる検証処理
〔6〕リーダ/ライタによる表示制御
【0021】
〔1〕本実施形態の目的
まず、本発明の実施形態の目的について説明する。近年、RAMやROM、EEPROMなどの半導体メモリを組み込みことで、多量の情報を記録可能なICカードが広く用いられている。ICカードには、例えば、電子決済における残高情報、交通機関や娯楽施設における電子チケットの情報、ショッピングに利用されるクーポン情報など、様々な情報がリーダ/ライタを通して書込まれる。
【0022】
ICカードの利便性を向上させる技術開発の事例としては、例えば、カードの表面に電子ペーパーやLCDパネル等の表示デバイスを設けて、記録されている情報をユーザに表示可能なICカードが挙げられる。また、例えば、太陽電池など光電変換によって電力を発生させる手段を備え、当該電力発生手段により生成された電力を利用して、リーダ/ライタから離れた状態でも表示デバイスに情報を表示可能なICカードが挙げられる。
【0023】
上記のような表示機能付きICカードには、リーダ/ライタからのデータの書き込みや読み込みを制御するカード用制御部と、表示部への表示を制御する表示用制御部とが存在することとなる。この場合、リーダ/ライタは、カード用制御部を介してデータの書き込みや読み込みを行う。したがって、外部装置であるリーダ/ライタによりアクセスされるICカード内のデータは、書き込み時に認証が必要な構成となっている。
【0024】
一方、表示制御部は外部のリーダ/ライタから直接アクセスされる構成とはなっていないため、表示制御部にセキュリティ機能を搭載していない場合がある。この場合、表示制御部によりアクセスされるICカード内のデータを認証不要として、表示制御部がICカード内の必要なデータを書き込む構成とする必要がある。このように構成されているICカードにおいては、認証が不要なデータ領域が、悪意のある第三者により不正に改ざんされる危険性があるという問題があった。
【0025】
そこで、上記のような事情を一着眼点として、本発明の実施形態にかかるICカード20が創作されるに至った。本実施形態にかかるICカード20によれば、ICカード内の認証不要なデータ領域について、不正な改ざんを防止することが可能となる。
【0026】
〔2〕ICカードの概要
次に、図1を参照して、ICカードの概要について説明する。図1は、一実施形態にかかるICカード20の外観を示す模式図である。
図1を参照すると、ICカード20は、その外観上に操作部42及び表示部60を有している。
【0027】
表示部60は、例えばLCD(Liquid Crystal Display)又はOLED(Organic Light Emitting Diode)などを用いた表示デバイスとして構成される。表示部60は、ICカード20の内部に設けられた制御部(図示せず)からの制御に基づき、ICカード20のメモリから読み出されたデータを表示する。
【0028】
操作部42は、光電変換により生ずる電位差により表示部60の表示内容を切替可能な操作手段としての役割を果たす。例えば、操作部42は、図1に示したように、セル24aからセル24hまでの8個のセルを直列接続した太陽電池の集合として構成され得る。太陽電池の1セル当たりの起電力は、負荷と受光する光量とに応じて決定される。そのため、このようなセルのいずれかをユーザが指を用いて覆い隠せば、セルごとの起電力に応じた電位差に変化が生じ、ICカード20はユーザによる操作を認識することができる。
【0029】
例えば、図1のセルの配置において、セル24g及びセル24hが覆い隠された場合には、ICカード20は、表示部60の表示内容をある特定の方向(例えば、「進む」など)へ切替えてもよい。また、例えば、セル24a及びセル24bが覆い隠された場合には、ICカード20は、表示部60の表示内容を逆の方向(例えば、「戻る」など)へ切替えてもよい。なお、操作部42におけるセルの配置は、かかる例に限定されない。例えば、操作部42において、上記「進む」又は「戻る」のいずれか一方向の操作のみを認識可能としてもよい。
【0030】
また、操作部42は、後にさらに説明するように、表示部60を駆動するための電力を生成する電力生成手段としての役割も果たす。
【0031】
なお、ICカード20の外観はかかる例に限定されない。例えば、操作部42又は表示部60の大きさ、位置又は向きなどは、ICカード20の利用形態に応じてどのように変更されてもよい。
【0032】
また、操作部42のセル24a〜24hの表面は、外部との接触や刺激によりキズや破砕を生じないようにするための保護フィルムにより覆われるのが好適である。その場合、保護フィルムの素材として集光性のある素材を使用することで、各セルの光電変換による起電力が上昇し、表示部60の連続表示可能時間や許容消費電力を向上させることができる。
【0033】
〔3〕ICカードの内部構成
さらに、ICカード20は、次に説明する図2に示した内部構成を有する。図2は、ICカード20の構成の一例を示すブロック図である。図2を参照すると、ICカード20は、アンテナ28、ICカードモジュール30、電力生成部34、操作部(電力生成部)42、電力蓄積部44、スイッチ46、及び表示モジュール50を備える。
【0034】
さらに、ICカードモジュール30は、無線通信部32、変調/復調部36、カード用CPU(Central Processing Unit)38、及びカード用メモリ40を有する。また、表示モジュール50は、内部通信I/F(インタフェース)52、表示用CPU54、表示用メモリ56、デバイスドライバ58、及び表示部60を有する。
【0035】
ICカード20が信号を受信する場合、まず、アンテナ28を介して受信された電磁波は、ICカードモジュール30の無線通信部32により増幅され、変調/復調部36へ供給される。変調/復調部36は、例えば、無線通信部32から供給された変調波(ASK変調波)を包連線検波し、BPSK(Binary Phase Shift Keying)などに従って復調する。そして、変調/復調部36は、復調により得られた入力信号をカード用CPU38へ出力する。
【0036】
カード用CPU38は、ICカードモジュール30の動作全般を制御する。例えば、カード用CPU38は、入力信号に含まれるデータをカード用メモリ40の所定の書込み位置に記録し、又は入力信号により指定された所定のコマンドの実行結果を変調/復調部36へ出力する。カード用メモリ40は、例えばROMやフラッシュメモリなどの半導体メモリを用いて、カード用CPU38により実行されるプログラム、制御データ、及び電子チケット情報などのアプリーションデータを記録する。カード用CPU38は、本発明の記録部の一例である。
【0037】
ICカード20が信号を送信する場合、まず、カード用CPU38から変調/復調部36へ出力信号が出力される。出力信号には、例えば、カード用メモリ40から読み取られたデータ、又は所定のコマンドの実行結果などが含まれる。変調/復調部36は、例えば、出力信号をBPSKなどに従って変調し、さらにASK変調波を生成する。そして、変調/復調部36は、生成した変調波を無線通信部32へ出力する。無線通信部32は、変調/復調部36から入力された変調波をアンテナ28へ供給し、アンテナ28から出力信号が電磁波の輻射により送信される。
【0038】
電力生成部34は、例えば、アンテナ28により受信された電磁波を、アンテナ28とコンデンサ(図示せず)とにより構成されるLC回路によって共振させる。そして、電力生成部34は、例えば、励起した交流磁界を整流して電圧レギュレータなどで安定化させ、直流電源の電力としてICカードモジュール30へ供給する。
【0039】
一方、操作部42は、図1に関連して説明したように、光電変換により生ずる電位差に基づく操作手段であると共に、例えば太陽電池を用いた電力生成手段としての役割を有する。即ち、操作部42は、例えば、外部から受光する光(太陽光又はその他の光源から発せられる光)を光電変換して電力を生成し、生成した電力を電力蓄積部44へ供給する。
【0040】
また、操作部42は、図1に示した個々のセル24a〜24hごとの起電力に応じた電位差を検知し、ユーザによる操作を認識する。そして、操作部42は、検知した操作の内容を表す操作信号を表示用CPU54へ出力する。なお、操作信号とは、例えば、表示部60の表示内容を切替える方向として「進む」又は「戻る」を指定する信号などであってよい。
【0041】
電力蓄積部44は、例えばコンデンサなどを用いて、操作部(電力生成部)42から供給される電力を蓄積する。そして、電力蓄積部44は、蓄積した電力を表示モジュール50に供給し、表示モジュール50を駆動させる。さらに、電力蓄積部44は、蓄積した電力をスイッチ46に供給する。
【0042】
スイッチ46は、表示モジュール50からのICカードモジュール30へのアクセスと外部(ICカード20の外部)からのICカードモジュール30へのアクセスを切替える。例えば、スイッチ46は、リーダ/ライタ等の外部装置から輻射された電磁波をアンテナ28が受信した場合には、表示モジュール50からのICカードモジュール30へのアクセスを遮断する。また、例えば、スイッチ46は、アンテナ28が電磁波を受信していない状態で電力蓄積部44から電力の供給を受けている場合には、表示モジュール50からのICカードモジュール30へのアクセスを通過させる。
【0043】
表示モジュール50の表示用CPU54は、例えばROM(図示せず)などに記憶されているプログラムを実行し、表示モジュール50の動作全般を制御する。例えば、表示用CPU54は、内部通信I/F52を介してICカードモジュール30にアクセスし、カード用メモリ40に記録されているデータを取得する。また、表示用CPU54は、取得したデータを表示用メモリ56に表示用データとして記録させる。また、表示用CPU54は、例えば表示モジュール50の起動時などの所定のタイミングで表示用メモリ56から表示用データを取得し、取得した表示用データを表示部60に表示させる。表示用CPU54は、本発明の検証部および表示制御部の一例である。検証部による検証処理については、後で詳細に説明する。
【0044】
内部通信I/F52は、例えば、ICカードモジュール30が外部の装置に提供するコマンドと同等の信号を生成することにより、表示用CPU54からICカードモジュール30へのアクセスを実現する。それにより、表示用CPU54は、カード用メモリ40に記録されているデータを取得することが可能となる。
【0045】
表示用メモリ56は、例えばフラッシュメモリなどの半導体メモリを用いて、制御データ、及び表示用CPU54がカード用メモリ40から取得した表示用データなどを記録する。なお、表示用メモリ56に記録されるデータの内容については、後にさらに具体的に説明する。
【0046】
デバイスドライバ58は、表示用CPU54による制御に応じて、ICカード20に設けられた表示デバイスである表示部60を駆動する。
【0047】
表示部60は、図1に関連して説明したように、LCDなどを用いた表示デバイスとして構成される。表示部60は、例えば、表示用CPU54により表示用メモリ56から取得された表示用データを画面に表示する。
【0048】
ここまで、図1及び図2を用いて、本発明の一実施形態の前提となるICカード20の外観及び内部構成について説明した。ここでの説明から理解されるように、ICカード20のICカードモジュール30は、アンテナ28が電磁波を受信している間にのみ電力の供給を受けて駆動する。一方、ICカード20の表示モジュール50は、例えば図1に示したリーダ/ライタ10などのリーダ/ライタから離れた場所にICカード20が位置していても、電力蓄積部44に蓄積された電力を利用して表示部60にデータを表示することができる。
【0049】
なお、ここではICカード20が非接触型ICカードである例について説明したが、ICカード20は、非接触型ICカードでなくてもよい。ICカード20が接触型のICカードであった場合には、例えば、アンテナ28及び無線通信部32の代わりに、端子及び通信部がICカード20に設けられ得る。
【0050】
次に、ICカード20のカード用メモリ40及び表示用メモリ56に記録されるデータのうち、本実施形態と関連のあるデータの構成について説明する。
【0051】
<カード用メモリのデータ構成例>
図3は、図2に示したカード用メモリ40に記録されるデータの部分的なデータ構成の一例を示す説明図である。
【0052】
図3を参照すると、カード用メモリ40のアドレスX0〜X5には表示要求データ、アドレスX6には制御データ、アドレスY0〜Y5以降にはアプリケーションデータ1〜アプリケーションデータMが記録されている。
【0053】
表示要求データとは、ICカードモジュール30(又は外部装置)が表示モジュール50に表示を要求するデータである。ICカードモジュール30のカード用CPU38は、外部装置からの指示に応じて、例えば、電子チケットや電子クーポンなどの任意のアプリケーションに関連する表示要求データをアドレスX0〜X5に書き込む。なお、表示要求データは、例えばテキストデータ、ビットマップデータなど、表示モジュール50の表示部60により表示可能な任意のデータであってよい。
【0054】
制御データとは、ICカードモジュール30から表示モジュール50への表示要求と応答とを制御するためのデータである。例えば、ICカードモジュール30のカード用CPU38は、外部装置からの指示に応じて、表示を要求するデータを表示要求データに書き込むと共に、表示モジュール50による表示要求データの取得を指示する所定のビット列を制御データに書き込む。
【0055】
また、例えば、表示モジュール50の表示用CPU54は、表示要求データの取得に成功した場合に、表示要求データの取得に成功したことを表す所定のビット列を制御データに書き込む。さらに、例えば、表示用CPU54は、表示要求データの取得に失敗した場合には、表示要求データの取得に失敗したことを表す所定のビット列(エラーコード)を制御データに書き込む。なお、例えば、エラーコードの値によってエラーの種類(データ長の不正、コマンドの不正など)を識別可能としてもよい。
【0056】
かかる制御データの使用により、ICカードモジュール30と表示モジュール50との間のデータ連携の状況が、外部装置と共有される。それにより、例えば、表示モジュール50による表示要求データの取得が完了するまで外部装置からの新たなデータの書込みを禁止し、ICカードモジュール30と表示モジュール50との間のデータの不整合を未然に防ぐことができる。
【0057】
アプリケーションデータ1〜アプリケーションデータMは、ICカード20により提供される様々なアプリケーションに関連する任意のデータである。アプリケーションデータ1〜アプリケーションデータMには、前述したように、例えば残高情報、電子チケット情報、又はクーポン情報などが含まれ得る。
【0058】
なお、複数のアプリケーションにより共通的に使用される可能性のある残高情報は、図4の例によらず、アプリケーションデータ1〜アプリケーションデータMとは異なる特別なアドレスに保持されていてもよい。また、カード用メモリ40には、図3に示したデータ以外のどのようなデータが保持されていてもよい。
【0059】
<表示用メモリのデータ構成例>
次に、図4は、図2に示した表示用メモリ56に記録されるデータのデータ構成の一例を示す説明図である。
【0060】
図4を参照すると、表示用メモリ56のアドレス01にはカード識別子、アドレス02には表示制御データ、アドレス03には表示順テーブル、及びアドレスK0〜K5以降には表示用データ1〜表示用データNが記録されている。
【0061】
カード識別子は、表示モジュール50がアクセスするICカードモジュール30の個体を識別するための識別子である。通常、ICカードに外部装置がアクセスする際には、外部装置からポーリングコマンドが発行され、その応答によってカード識別子が取得される。それにより、外部装置は複数のICカードから通信相手とするICカードを識別することができる。
【0062】
これに対し、本実施形態では、ICカード20に搭載されるICカードモジュール30と表示モジュール50の組合せは変化しない。そこで、予め表示用メモリ56にICカードモジュール30の個体を識別するカード識別子を記録させておくことにより、ポーリング処理を省略してICカード20の消費電力の低減と処理時間の短縮を図ることができる。なお、カード識別子は、表示モジュール50がICカード20に組み込まれた後の初回の起動時に、ポーリングコマンドによって取得されてもよく、又は製造時に製造装置により書き込まれてもよい。
【0063】
表示制御データは、表示モジュール50による表示処理を制御するためのデータである。例えば、表示制御データには、ICカードモジュール30のカード用メモリ40内の制御データが格納されているメモリアドレスなどのアドレスデータが含まれる。
【0064】
表示順テーブルは、アドレスK0〜K5以降の表示用データ1〜表示用データNをどのような順序で表示部60に表示させるかを定義する。表示順テーブルは、例えば、表示部60に表示させる順に表示用データ1〜表示用データNのアドレス(又はブロック番号など)を列記したデータであってもよい。また、表示順テーブルに、メモリ順、日付順といった表示順の種類を定義するデータが含まれていてもよい。
【0065】
また、表示順テーブルには、表示部60に最初に表示させる初期表示用データのアドレスが含まれていてもよい。さらに、表示用メモリ56には、複数の表示順テーブルが記録されてもよい。その場合には、例えば表示順テーブルにシリアル番号を付しておき、表示部60へのデータの表示順を複数のパターンの中から適宜選択することができる。
【0066】
表示用データ1〜表示用データNは、それぞれ表示部60に表示され得るデータである。上述したように、表示用CPU54は、ICカードモジュール30のカード用メモリ40から取得した表示要求データを、表示用データとして表示用データ1〜表示用データNのいずれかのメモリ位置に記録させる。そして、表示用データは、表示順テーブルに従った順序で表示用CPU54に読み出され、表示部60に表示される。
【0067】
ここまで、図3及び図4を用いて、ICカード20のカード用メモリ40及び表示用メモリ56に記録され得るデータのデータ構成の一例について説明した。次に、かかるICカード20により実行される表示処理について説明する。
【0068】
〔4〕ICカードによる表示処理
図5は、ICカード20による表示処理の流れの一例を示すシーケンス図である。図5には、リーダ/ライタなどの外部装置からのICカード20へのデータの書込みが開始した後、ICカード20の表示部60にデータが表示されるまでの処理が示されている。
【0069】
図5を参照すると、まず、外部装置は、ICカードモジュール30のカード用メモリ40から制御データを取得し、未だ表示モジュール50に書き込まれていない表示要求データが残っていないかを確認する(S102)。ここで、未取込みの表示要求データが残っていることが制御データにより示されていれば、外部装置はその後の処理をキャンセルする。一方、未取込みの表示要求データが残っていなければ、外部装置からの指示に応じて、ICカードモジュール30のカード用メモリ40に表示要求データが書込まれる(S104)。
【0070】
なお、処理を効率的に行うためには、表示要求データに対応するアプリケーションデータをカード用メモリ40に同時に書き込むこととするのが好適である。さらに、外部装置は、カード用メモリ40の制御データを、表示モジュール50によるデータ取得を指示する所定のビット列に更新する(S106)。その後、外部装置は、自装置からの電磁波の輻射を停止して表示モジュール50による表示要求データの取得を待つ(S108)。
【0071】
その後、ICカードの操作部(電力生成部)42が光を受光して表示モジュール50を駆動可能な電力が電力蓄積部44に蓄積されると、表示モジュール50が起動する(S120)。そうすると、表示モジュール50の表示用CPU54は、ICカードモジュール30にアクセスしてカード用メモリ40に記録されている制御データを取得する(S122)。
【0072】
次に、表示用CPU54は、制御データのビット列を参照して新しい表示要求データが書込まれているか否かを判定する(S124)。ここで、新しい表示要求データが書込まれていなければ、後続のS126〜S128の処理はスキップされる。一方、新しい表示要求データが書込まれていれば、表示用CPU54は、ICカードモジュール30にアクセスしてカード用メモリ40に記録されている表示要求データを取得する(S126)。
【0073】
そして、ステップS122において取得した制御データと、ステップS126において取得した表示要求データとに含まれる制御コマンドを比較して、データの整合性を検証する(S127)。ステップS127におけるデータの検証処理については、後で詳細に説明する。
【0074】
そして、表示用CPU54は、表示要求データの取得に成功すると、カード用メモリ40の制御データを、表示要求データの取得に成功したことを表す所定のビット列に更新する(S128)。
【0075】
そして、表示用CPU54は、表示用メモリ56から表示順テーブルを読み出し(S130)、表示順テーブルに従って表示用データ1〜Nを順次表示部60に表示させる(S132)。このとき、さらに操作部42を介して表示内容の切替えを指示する操作が行われたことを検知した場合には、表示用CPU54は、表示部60に表示させている表示用データを他の表示用データに切替える。
【0076】
なお、表示モジュール50によるS122からS128までの通信処理と比較して、S130以降の表示処理には高速な処理速度は求められない。例えば、通信処理の処理速度は数十MHz程度である一方、表示処理の処理速度は数十kHz程度でよい。そのため、表示モジュール50は、S122からS128の間にのみ処理クロックを一時的に高速化することで、電力消費を節約してもよい。ICカード20は、このようにして、外部装置から書込まれたデータをユーザに表示させることができる。
【0077】
〔5〕ICカードによる検証処理
以上、ICカード20による表示処理について説明した。次に、ICカードによる検証処理について説明する。上記したように、該検証処理は、検証部の一例である表示用CPU54によって実行される処理である。図6は、ICカードによる検証処理について説明する説明図である。上記したように、リーダ/ライタ等の外部装置(以下リーダ/ライタと称する)は、ICカードモジュール内のメモリを読み込んだり、該メモリにデータを書き込んだりする。すなわち、リーダ/ライタがアクセスできるのはICカードモジュールだけであり、表示モジュールのメモリを直接書き換えることができない構造となっている。
【0078】
図6に示したように、リーダ/ライタ10は、ICカードモジュール30の不揮発性メモリ部分を読み書きする。また、表示モジュール50は、ICカードモジュール30から必要な情報を読み込み、表示モジュール50内部の不揮発性メモリにデータを保存する。そして、表示モジュール50は、保存した表示イメージデータをディスプレイに転送して表示動作をさせたり、太陽電池スイッチの入力に応じて表示を切り替えたりする。
【0079】
ところで、リーダ/ライタ10とICカード20との間の非接触通信システムにおいては、1つのファイルに対して、複数のアクセス方法を定義することができる。例えば、ICカード20においては、表示要求データ管理領域は書き込み時に認証が必要であり、読み込み時には認証が不要となっている。
【0080】
一方、リーダ/ライタ10に直接アクセスされない表示モジュール50にセキュリティ機能を搭載していない場合には、表示モジュール50にアクセスされる制御データは認証不要なノンセキュアなデータとなっている。一般的に、ICカードに搭載するLSI(Large Scale Integration)にセキュリティ機能を搭載すると、ICカードを製造するためのコストが嵩んでしまう。そこで、外部からアクセスされない表示用のLSI(表示モジュール)にセキュリティ機能を搭載しない場合がある。
【0081】
ICカードモジュールの制御データがノンセキュアなデータとなっている場合、悪意の第三者により、制御データが破壊され不正な状態とされてしまったり、本来の情報とは異なるコマンドに書き換えられたりする危険性がある。制御データが破壊されてしまった場合には、不正な状態を検出して処理を中断する等の対処をすることができる。しかしながら、制御データ自体は不正な状態であるが、本来の情報とは異なる別の情報に書き換えられてしまった場合には、正しい情報であると判断して本来の処理とは異なる処理を実行してしまう可能性がある。
【0082】
制御データに書き込まれるコマンドとしては、例えば以下のコマンドが挙げられる。
(1)表示データの設定
(2)表示データの削除
(3)表示テーブルの設定
(4)アクセス領域アドレスの設定
以下、それぞれのコマンドについて、悪意の第三者によりコマンドが書き換えられる場合について説明する。
【0083】
(1)表示データの設定
悪意の第三者により表示データ設定コマンドが制御データに書き込まれた場合、表示モジュール50はICカードモジュール30内の表示要求データを取り込んで、表示モジュール50内のメモリに書き込んでしまう。そうすると、以前に表示モジュール内のメモリに書き込まれたデータは、上書きされ消えてしまう。
【0084】
また、表示要求データを確実に表示モジュール50内のメモリに書き込むためには、表示モジュール50に安定した電力を供給する必要がある。例えば、悪意の第三者が、制御データを取り込み済みから表示要求データが存在するとの情報に書き換え、さらに、表示モジュールが表示要求データを取り込む過程で表示モジュールの電力を遮断することが考えられる。一般に、不揮発性メモリを書き換える途中で電力が不足してしまうと、データの書き損じなどが生じる。したがって、上記のような悪意の第三者による不正な行為が発生すると、表示要求データを書き込めなかったり、書き込み中のデータが不正なデータとなってしまったりする可能性がある。
【0085】
(2)表示データの削除
悪意の第三者により表示データ削除要求コマンドが制御データに書き込まれると、表示モジュール50は表示モジュール50内のメモリから表示要求データを削除してしまう。
【0086】
(3)表示テーブルの設定
悪意の第三者により表示テーブルを書き換えるコマンドが制御データに書き込まれると、表示順が期待しない順番に書き換えられてしまう。
【0087】
(4)アクセス領域のアドレス設定
悪意の第三者により、残高や表示データ、制御データ等のアクセスするデータ領域の保存アドレスを書き換えられると、次にアクセスしたときに、書き換えられたアドレスに該当するデータ領域にアクセスしてしまう。この結果、悪意の第三者が自由にアクセスできる領域に、データアドレスが移し替えられてしまうこととなる。本来、カード内のデータ領域はすべてアクセス権限のある者に管理されており、悪意の第三者が自由に使える領域は作れないこととなっている。しかし、正当な権限者が他者に領域を付与したりした場合、付与した領域が踏み台となって攻撃される可能性も考えられる。
【0088】
上記のような悪意の第三者による不正なデータの改ざんを防止するために、表示モジュール50内の表示用CPU54は、カード用メモリに記録された表示要求データと制御データに含まれる所定のコマンドを比較することにより、データの整合性を検証する。カード用メモリに記録された表示要求データは権限者しか書き換えることができないため、データの整合性を検証することにより、悪意の第三者により制御データが書き換えられたか否かを検証して不正なデータの改ざんを防止することが可能となる。
【0089】
データの整合性を検証する方法としては、制御データに含まれるレスポンスコードと表示要求データに含まれるコマンドコードに所定の関連性を持たせておくことが考えられる。制御データに含まれるレスポンスコードは、通常、表示モジュール50が制御データを取り込んだ際に書き換えられるデータである。また、表示要求データに含まれるコマンドコードは、通常、リーダ/ライタによりデータが書き込まれた後は変動しないコードである。
【0090】
リーダ/ライタによりデータが書き込まれる際には、制御データのレスポンスコードと表示要求データのコマンドコードとを同一の値としておく。そして、表示モジュールが表示要求データを取り込んだ際には、制御データのレスポンスコードを、表示要求データのコマンドコードと所定の関係となるように書き換える。
【0091】
例えば、表示モジュールが表示要求データを取り込んだ際には、制御データのレスポンスコードに「1」を加算する。これにより、制御データのレスポンスコードと表示要求データのコマンドコードとの関係は、同一の場合か、差が「1」の場合かのいずれかとなる。よって、表示用CPU54が、両者のコードが特定の関係(同一)となっているか、所定の関係(「1」加算されている)となっているかを検証することにより、悪意の第三者により制御データが書き換えられたか否かを判断することが可能となる。
【0092】
しかし、悪意の第三者により表示用CPU54が処理済みとした制御データのレスポンスコードを、未処理状態を表すレスポンスコードに戻してしまう可能性がある。この場合、表示用CPU54は、一度表示要求データを取り込んでいるにも関わらず、再度同じ表示要求データを取り込もうとしてしまう。特に、表示モジュール50内のメモリにデータを書き込んでいる際に電力(光)が遮断されてしまうと、上記したように表示モジュール50内のデータが破壊されてしまう恐れがある。
【0093】
上記したようなデータの改ざんを防止するために、カードモジュール30内の制御データを読み出し、データを取り込んでいない(未処理状態)場合に表示要求データを読み出す。そして、上記したように、表示要求データに含まれるコマンドコードと、制御データのレスポンスコードを比較して整合性を検証する。検証の結果、コマンドコードとレスポンスコードとが同一である等データの整合性があると判断された場合には、さらに、表示要求データと、表示モジュール50内のメモリに書き込まれている表示データとを比較する。表示要求データと表示モジュール50内の表示データとが同一であった場合には、既にデータが取り込まれていることとなる。この場合には、表示用CPU54は、データの書き込み処理は実行せずにレスポンスコードを未処理状態から処理状態に書き換える。
【0094】
また、制御データに含まれるコマンドが、表示イメージデータ削除コマンドであった場合に、既に表示データが削除されていた場合には削除処理を実行しない。また、表示テーブル書き換え指示のコマンドであった場合には、書き換え要求のあった表示テーブルが既に書き込まれている場合には、表示テーブルのデータ書き換えを行わない。アクセス領域アドレス設定コマンドであった場合にも、既にアクセス領域が設定されている場合には設定処理を実行しない。
【0095】
書き込み中に電力不足となってメモリが破壊される危険性があるため、データの変更を伴う処理が指示された場合には、変更後のデータと要求されているデータとを比較する。そして、要求された処理を実行してもデータの変更がなされないと判定された場合には、処理を実行しない。
【0096】
次に、図7および図8を参照して、上記したデータの検証処理について具体的に説明する。図7は、データの検証処理を示すフローチャートである。図7に示した検証処理を説明するにあたり、適宜図8を参照する。
【0097】
図7に示したように、まず、表示用CPU54は、ICカードモジュール30内の制御データを取得する(S122)。次に、表示用CPU54は、ICカードモジュール30内の表示要求データを取得する(126)。
【0098】
そして、制御データの制御コマンド(レスポンスデータ)が表示要求取得指示データか否かを判定する(S202)。ステップS202において、制御データのレスポンスデータが表示要求取得指示データであると判定された場合には、ステップS126において取得した表示要求データの制御コード(コマンドコード)と、ステップS122において取得した制御データの制御コード(レスポンスデータ)とが一致しているか否かを判定する(S204)。
【0099】
図8に示したように、リーダ/ライタ(R/W)によりデータがかきこまれた場合には、制御データのレスポンスデータは「000」であり、表示要求データのコマンドコードは「000」で同一の値となっている。また、表示要求データに含まれる表示データは「ABC」であったとする。
【0100】
図7に戻り、ステップS204において、表示要求データと制御データの制御コマンドが一致していると判定された場合には、さらに、表示要求データに含まれる表示データと、表示モジュール50内に書込み済の表示データが一致しているか否かを判定する(S206)。ステップS206において、表示データが一致していないと判定された場合には、表示要求データを表示モジュール50内に書き込む(S208)。そして、制御データのレスポンスコードを更新する(S210)。
【0101】
図8に示したように、表示用CPU54は、表示要求データを取得した後に制御データを更新する。このとき、表示用CPU54は、制御データのレスポンスコードを、表示要求データのコマンドコードに「1」を加算した値に書き換える。さらに、表示データを表示モジュール50内のメモリに書き込む。
【0102】
したがって、ステップS204において、表示要求データのコマンドコードが「000」であり、制御データのレスポンスコードが「001」であった場合には、表示要求データが表示モジュール内のメモリに書き込まれたことを表す。
【0103】
図7に戻り、ステップS206において、表示データが一致していないと判定された場合には、表示要求データの書込みはせずに、制御データのレスポンスコードを更新する(S210)。
【0104】
図8に示したように、通常、表示用モジュール50内のメモリに表示データが書き込まれた場合には、制御データのレスポンスコードは更新されて、表示要求データのコマンドコード「000」に1を加算した値「001」となっている。しかし、悪意の第三者により、既に表示データが書き込まれているにも関わらず、制御データのレスポンスコードが「000」に書き換えられてしまう可能性がある。
【0105】
この場合、表示要求データのコマンドコード「000」と制御データのレスポンスコード「000」は同一であるため、表示用CPU54はデータ未処理と判断して表示データを表示用モジュール50内のメモリに書き込もうとしてしまう。しかし、ステップS206において、制御データが一致している場合でも、表示要求データの内容と表示モジュール50内の表示データとの整合性を判断する。これにより、既に表示要求データが書き込まれている場合には、ステップS208の書込み処理を実行せずに、制御データの更新のみ実行する。この場合、制御データのレスポンスコードは、未処理状態の「000」から処理完了状態の「001」となる。
【0106】
このように、本実施形態にかかるICカード20は、制御データがノンセキュアなデータとなっている場合に、制御データと表示要求データとに含まれる制御コマンドを比較することにより、データの整合性を検証する。これにより、悪意のある第三者による不正な改ざんを防止することが可能となる。
【0107】
〔6〕リーダ/ライタによる表示制御
次に、リーダ/ライタ10によるICカード20への表示制御について説明する。図9は、リーダ/ライタ10のICカード保持部12にICカード20が保持されている様子を示す模式図である。図9に示したように、リーダ/ライタ10は、例えば、その外観上に、ICカード保持部12、表示部14、及びキー入力部16を有している。
【0108】
図9では、リーダ/ライタ10のICカード保持部12にICカード20が挿入されている。このとき、ICカード20の位置は、リーダ/ライタ10を使用するユーザにより表示部60を視認可能であって、かつ操作部42に外部からの光が届かない位置に調整されている。
【0109】
ICカード保持部12は、例えば残高情報、電子チケット情報、又はクーポン情報などの任意の情報をリーダ/ライタ10がICカードへ書き込む際に当該ICカードを保持する。ICカード保持部12の深さは、後により詳しく説明するように、ICカード保持部12にICカードが保持されている状態で当該ICカードの表示部が情報処理措置10の外部から視認可能となるように調整されている。なお、ここでは一例として、ICカード保持部12の形状を上からICカードを挿入可能なポケット型の形状としているが、ICカード保持部12の形状はかかる例に限定されず、他の形状であってもよい。
【0110】
表示部14は、リーダ/ライタ10の制御に関する情報、ICカードから読み取った情報、又はICカードへ書き込まれる情報など、任意の情報をユーザに表示する。
【0111】
キー入力部16は、ユーザがリーダ/ライタ10を操作するためのボタン、スイッチ、レバー又はキーなどを含む。なお、例えばタッチパネルなどを用いて、表示部14とキー入力部16とが一体に構成されていてもよい。
【0112】
なお、リーダ/ライタ10には、必要に応じて、リーダ/ライタ10が外部の装置と通信するための外部通信用デバイス、及び任意の情報を紙媒体に印刷する印刷デバイス(共に図示せず)などが追加的に設けられていてもよい。
【0113】
また、図9では、リーダ/ライタ10の一例として携帯型の電子チケット発券機を示しているが、リーダ/ライタ10はかかる例に限定されない。例えば、リーダ/ライタ10は、据え置き型の電子チケット発券機、電子決済用端末、又は電子クーポン発券機など、ICカード用の任意のリーダ/ライタであってよい。
【0114】
また、リーダ/ライタ10は、図10に示したように、表示部14、キー入力部16、制御部110、メモリ112、変調/復調部114、無線通信部116、アンテナ118、発光部120、及び発光調整部122などを備える。
【0115】
制御部110は、CPUやMPUなどの演算装置を用いて、例えばメモリ112に記録されているプログラムを実行することにより、リーダ/ライタ10の動作全般を制御する。例えば、制御部110は、所定のデータ書込みコマンドを、変調/復調部114、無線通信部116及びアンテナ118を介してICカード20へ送信する。なお、本実施形態に係るリーダ/ライタ10の特徴に関連する制御部110の機能については、後にさらに具体的に説明する。メモリ112は、例えばROMやフラッシュメモリなどの半導体メモリを用いて、制御部110により実行されるプログラム、又は制御データなどを記録している。
【0116】
変調/復調部114、無線通信部116、及びアンテナ118は、リーダ/ライタ10がICカード20に所定のコマンドを送信し、及びリーダ/ライタ10がICカード20から応答を受信するための通信モジュールの役割を果たす。
【0117】
例えば、リーダ/ライタ10がICカード20にデータを書き込む場合、まず、制御部110から変調/復調部114へデータの書込みを指示するコマンドとデータとを含む出力信号が出力される。変調/復調部114は、例えば、出力信号をBPSKなどに従って変調し、さらにASK変調波を生成する。そして、変調/復調部114は、生成した変調波を無線通信部116へ出力する。無線通信部116は、変調/復調部114から入力された変調波をアンテナ118へ供給し、アンテナ118から出力信号が電磁波の輻射により送信される。
【0118】
また、リーダ/ライタ10がICカード20からデータを読み取る場合、上述したデータの書込みの場合と同様に、まず、データの読み取りを指示するコマンドがICカード20に送信される。そうすると、ICカード20から所定のデータを含む応答信号が返信され、アンテナ118により受信される。そして、アンテナ118により受信された応答信号(ASK変調波)は、無線通信部116により増幅され、変調/復調部114へ供給される。変調/復調部114は、例えば、無線通信部116から供給された変調波を包連線検波し、BPSKなどに従って復調する。そして、変調/復調部114は、復調された応答信号を制御部110へ出力する。
【0119】
発光部120は、図9に示したICカード保持部12に保持されるICカードに設けられた操作手段であって光電変換により生ずる電位差により当該ICカードの表示部の表示内容を切替可能な当該操作手段に、光を供給する。ここで、ICカードの操作手段とは、例えば図1を用いて説明したICカード20の操作部(第2電力生成部)42などに相当する。即ち、発光部120は、例えばICカード保持部12に保持されるICカード20の操作部42に光を照射可能な、例えばLED(Light Emitting Diode)などの発光素子、又は蛍光管若しくは電球などの発光器を有する。そして、発光部120は、後述する発光調整部122からの制御に応じて、ICカードの操作手段に光を照射し、ICカードの表示モジュールを駆動する。
【0120】
さらに、発光部120は、ICカードの表示部を駆動させる第1の発光パターン、及びICカードの表示部の表示内容を切替える第2の発光パターンにより、前記操作手段に光を供給可能である。
【0121】
図11は、図9の方向AからICカード保持部12の内部を見た状態を示す模式図である。図11を参照すると、リーダ/ライタ10のICカード保持部12に保持されているICカード20が、操作部42の配置された面(以下、操作面という)を上にして示されている。
【0122】
図11において、操作部42は、3つ操作区画42a、42b及び42cに分けられている。このうち、第1の操作区画42aは、例えば図1に示した操作部42のセル24g及びセル24hに対応する。第2の操作区画42bは、例えば図1に示した操作部42のセル24c〜セル24fに対応する。第3の操作区画42cは、例えば図1に示した操作部42のセル24a及びセル24bに対応する。
【0123】
一方、リーダ/ライタ10のICカード保持部12の内側の、ICカード20の操作面に相対する面には、発光部120の有する複数の発光素子が配置されている。これら発光素子は、仕切り18a及び18bによって、3つの発光区画120a、120b及び120cに分けられている。このうち、第1の発光区画120aは、ICカード20の第1の操作区画42aに相対している。第2の発光区画120bは、ICカード20の第2の操作区画42bに相対している。第3の発光区画120cは、ICカード20の第3の操作区画42cに相対している。
【0124】
発光部120は、このような3つの発光区画120a、120b及び120cを有することにより、ICカード20の操作部42に所定の発光パターンで光を照射して、ICカード20の表示部60に表示される内容を切替えることができる。
【0125】
なお、図11において、仕切り18aは、第1の発光区画120aからの光が第2の操作区画42bに、及び第2の発光区画120bからの光が第1の操作区画42aにそれぞれ届かないようにする役割を果たす。同様に、仕切り18bは、第2の発光区画120bからの光が第3の操作区画42cに、及び第3の発光区画120cからの光が第2の操作区画42bにそれぞれ届かないようにする役割を果たす。
【0126】
図12は、発光部120による発光パターンと、ICカード20の操作部42により検知される操作の内容の関係について示す説明図である。
【0127】
図12を参照すると、発光パターンA〜Dの4つの発光パターンが定義されている。そのうち、発光パターンAは、第1の発光区画120a、第2の発光区画120b及び第3の発光区画120cがいずれも点灯している状態を表す。このとき、ICカード20の操作部42の全ての操作区画42a〜cに光が照射されるため、ICカード20は、操作部42により生成された電力を使用して表示部60を駆動することができる。
【0128】
次に、発光パターンBは、第1の発光区画120aが消灯し、第2の発光区画120b及び第3の発光区画120cが点灯している状態を表す。このとき、ICカード20の操作部42の第1の操作区画42aには光が照射されず、第2の操作区画42b及び第3の操作区画42cに光が照射される。即ち、ICカード20の操作部42において、セル24g及びセル24hが覆い隠されたのと同じ状態となり、ICカード20は、表示部60の表示内容を、例えば「進む」方向へ切替える。
【0129】
次に、発光パターンCは、第1の発光区画120a及び第2の発光区画120bが点灯し、第3の発光区画120cが消灯している状態を表す。このとき、ICカード20の操作部42の第1の操作区画42a及び第2の操作区画42bに光が照射され、第3の操作区画42cには光が照射されない。即ち、ICカード20の操作部42において、セル24a及びセル24bが覆い隠されたのと同じ状態となり、ICカード20は、表示部60の表示内容を、例えば「戻る」方向へ切替える。
【0130】
次に、発光パターンDは、第1の発光区画120a、第2の発光区画120b及び第3の発光区画120cがいずれも消灯している状態を表す。このとき、ICカード20の操作部42の全ての操作区画42a〜cに光は照射されない。そのため、ICカード20は、例えば電力蓄積部44に蓄積された電力が残っていなければ、表示部60を駆動することができない。
【0131】
なお、図12では、発光部120の有する発光素子を発光区画ごとに点灯又は消灯することでICカード20への光の供給が制御される例について説明した。しかしながら、ICカード20への光の供給を制御する方法は、かかる例に限定されない。例えば、各発光区画の前面にシャッターを設け、当該シャッターを開閉することにより、ICカード20への光の供給が制御されてもよい。
【0132】
また、発光部120の発光区画の数、形状及び位置、並びに仕切りの数は、ICカード20の操作部42の操作区画の数、形状及び位置等の仕様に応じて定められ得る。例えば、操作部42において「進む」操作のみを認識可能である場合には、発光部120の発光区画の数を2つ、仕切りの数を1つとしてもよい。また、例えば、リーダ/ライタ10において、複数の異なるICカードの使用に対応するために、1つの操作について複数の発光パターンが用意されてもよい。
【0133】
図10へ戻り、発光調整部122は、制御部110が変調/復調部114、無線通信部116、及びアンテナ118を介してICカード20に記録させたデータを、発光部120による発光回数又は発光パターンを調整することによりICカード20の表示部60に表示させる。即ち、発光調整部122は、制御部110がICカード20に任意のデータを記録させた後、制御部110からICカード20のメモリ上での当該データの書込み位置(に関する情報)を取得する。
【0134】
次に、発光調整部122は、取得した当該書込み位置に応じて発光部120による発光回数又は発光パターンを決定する。そして、発光調整部122は、決定した発光回数又は発光パターンにより発光部120からICカード20へ光を供給させる。その結果、ICカード20の表示部60に表示される内容は、制御部110がICカード20に記録させたデータに切替えられる。それにより、ユーザは、ICカード20に書き込んだデータを、あらためてリーダ/ライタ10からICカード20を取り出して操作することなく、ICカード20の表示部60を見て確認することができる。なお、ここで述べた発光調整部122の機能を、制御部110が直接実行してもよい。
【0135】
また、発光調整部122は、制御部110が変調/復調部114、無線通信部116、及びアンテナ118を介してICカード20との間で通信している間、例えば図12の発光パターンDを適用し、発光部120からICカード20への光の供給を停止させる。同様に、制御部110は、発光調整部122により発光部120からICカード20へ光が供給されている間、ICカード20との間の通信を停止させる。それにより、ICカード20においてICカードモジュール30に表示モジュール50と外部装置(リーダ/ライタ10)が同時にアクセスしてICカード20内で処理のエラーやデータの不整合が生じることを防ぐことができる。
【0136】
ここで、リーダ/ライタ10によりデータの書き込みがなされ、ICカード20の表示モジュール50が表示要求データを未だ取り込んでいない状態で、悪意の第三者により制御データが書き換えられてしまった場合について検討する。この場合、制御データのレスポンスコードは未処理状態「000」であるが、悪意の第三者により制御データのレスポンスコードが処理済「001」に書き換えられてしまう可能性がある。
【0137】
書き込み指示のコマンドがICカードモジュール30内の制御データに書き込まれるのは、上記したようなリーダ/ライタ10を駅員が操作しているか、リーダ/ライタ10の機能を有する発券機により発券されている場合である。この場合には、リーダ/ライタ10により光制御が行われて、データが確実に書き込まれることとなる。したがって、データの書き込み途中で、悪意の第三者により制御データが書き換えられる可能性はほとんどないこととなる。
【0138】
以上、添付図面を参照しながら本発明の好適な実施形態について詳細に説明したが、本発明はかかる例に限定されない。本発明の属する技術の分野における通常の知識を有する者であれば、特許請求の範囲に記載された技術的思想の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本発明の技術的範囲に属するものと了解される。
【0139】
なお、本明細書では、主にリーダ/ライタ10が携帯型のリーダ/ライタである場合について説明したが、リーダ/ライタ10が携帯型と据え置き型のいずれかであるかは問わない。同様に、本明細書では、主にICカード20が非接触型のICカードである場合について説明したが、ICカード20が接触型と非接触型のいずれかであるかは問わない。
【0140】
また、本明細書において説明したリーダ/ライタ10又はICカード20による一連の処理は、ハードウェアで実現されてもよく、又はソフトウェアで実現されてもよい。一連の処理又はその一部をソフトウェアで実行させる場合には、例えば、ソフトウェアを構成するプログラムが予めROMに格納され、実行時にRAMに読み込まれてCPUにより実行される。
【図面の簡単な説明】
【0141】
【図1】本発明の一実施形態にかかるICカードの外観の一例を示す模式図である。
【図2】同実施形態にかかるICカードの構成の一例を示すブロック図である。
【図3】同実施形態にかかるカード用メモリに記録されるデータの部分的なデータ構成の一例を示す説明図である
【図4】同実施形態にかかる表示用メモリに記録されるデータのデータ構成の一例を示す説明図である。
【図5】同実施形態にかかるICカードによる表示処理の流れの一例を示すシーケンス図である。
【図6】同実施形態にかかるICカードによる検証処理について説明する説明図である。
【図7】同実施形態にかかるデータの検証処理を示すフローチャートである。
【図8】同実施形態にかかるICカードに書き込みされるデータの一例である。
【図9】同実施形態にかかるリーダ/ライタにICカードが保持されている様子を示す模式図である。
【図10】同実施形態にかかるリーダ/ライタの構成の一例を示すブロック図である。
【図11】同実施形態にかかるICカードが保持されている様子を図9の方向Aから見た模式図である。
【図12】同実施形態にかかる発光部の発光パターンについて説明するための説明図である。
【符号の説明】
【0142】
10 リーダ/ライタ
12 ICカード保持部
14 表示部(リーダ/ライタ)
16 キー入力部
18a,18b 仕切り
110 制御部
116 無線通信部
120 発光部
120a〜120c 発光区画
122 発光調整部
20 ICカード
24a〜24h セル
42 操作部
42a〜42c 操作区画
60 表示部(ICカード)
【特許請求の範囲】
【請求項1】
外部装置からの要求に応じて、表示部に表示させる表示要求データと、前記表示部への表示を制御する制御データを前記カード用メモリへ記録する記録部と、
前記カード用メモリに記録された前記表示要求データと前記制御データとに含まれる所定の制御コマンドを比較することによりデータの整合性を検証する検証部と、
を備えるICカード。
【請求項2】
前記検証部による検証結果に応じて、前記表示要求データを前記表示部に表示させ、前記制御データを更新する表示制御部を備える、請求項1に記載のICカード。
【請求項3】
前記外部装置からの要求に応じて、前記記録部に記録された前記表示要求データの制御コマンドと前記制御データの制御コマンドとは特定の関係を有し、
前記制御データの制御コマンドは、前記表示制御部に対して前記表示部への前記表示要求データの取得を指示するコマンドであり、
前記表示制御部は、前記表示要求データを前記カード用メモリから取得した場合に、前記制御データに含まれる制御コマンドを、前記表示要求データに含まれる制御コマンドと所定の関係になるように更新する、請求項1または2のいずれかに記載のICカード。
【請求項4】
前記検証部は、
前記制御データの制御コマンドが前記表示要求データの取得を指示するコマンドである場合に、
前記表示部の内容と、前記表示要求データの制御コマンドと前記制御データの制御コマンドとが特定の関係を有しているか否かを検証する、請求項1〜3のいずれかに記載のICカード。
【請求項5】
前記検証部は、
前記制御データの制御コマンドが前記表示要求データの取得を指示するコマンドである場合に、
前記表示部の内容と、前記表示要求データの制御コマンドと前記制御データの制御コマンドとが特定の関係を有しているか否かを検証し、
さらに、前記表示要求データの内容と、前記表示制御部に取得されている前記表示部に表示させるための表示データの内容とが一致しているか否かを検証する、請求項1〜4のいずれかに記載のICカード。
【請求項6】
前記表示要求データの更新は、認証処理を要するセキュアなデータであり、
前記制御データの更新は、認証処理が不要なノンセキュアなデータである、請求項1〜5のいずれかに記載のICカード。
【請求項7】
前記ICカードは、外部装置と非接触式に通信可能なICチップを搭載している、請求項1〜6のいずれかに記載の情報処理装置。
【請求項8】
外部装置からの要求に応じて、表示部に表示させる表示要求データと、前記表示部への表示を制御する制御データを前記カード用メモリへ記録するステップと、
前記カード用メモリに記録された前記表示要求データと前記制御データとに含まれる所定の制御コマンドを比較することによりデータの整合性を検証するステップと、
前記検証結果に応じて、前記表示要求データを前記表示部に表示させ、前記制御データを更新するステップと、
を含む、データ制御方法。
【請求項9】
コンピュータを、
外部装置からの要求に応じて、表示部に表示させる表示要求データと、前記表示部への表示を制御する制御データを前記カード用メモリへ記録する記録部と、
前記カード用メモリに記録された前記表示要求データと前記制御データとに含まれる所定の制御コマンドを比較することによりデータの整合性を検証する検証部と、
前記検証部の結果に応じて、前記表示要求データを前記表示部に表示させ、前記制御データを更新する表示制御部を備える、ICカードとして機能させるための、プログラム。
【請求項1】
外部装置からの要求に応じて、表示部に表示させる表示要求データと、前記表示部への表示を制御する制御データを前記カード用メモリへ記録する記録部と、
前記カード用メモリに記録された前記表示要求データと前記制御データとに含まれる所定の制御コマンドを比較することによりデータの整合性を検証する検証部と、
を備えるICカード。
【請求項2】
前記検証部による検証結果に応じて、前記表示要求データを前記表示部に表示させ、前記制御データを更新する表示制御部を備える、請求項1に記載のICカード。
【請求項3】
前記外部装置からの要求に応じて、前記記録部に記録された前記表示要求データの制御コマンドと前記制御データの制御コマンドとは特定の関係を有し、
前記制御データの制御コマンドは、前記表示制御部に対して前記表示部への前記表示要求データの取得を指示するコマンドであり、
前記表示制御部は、前記表示要求データを前記カード用メモリから取得した場合に、前記制御データに含まれる制御コマンドを、前記表示要求データに含まれる制御コマンドと所定の関係になるように更新する、請求項1または2のいずれかに記載のICカード。
【請求項4】
前記検証部は、
前記制御データの制御コマンドが前記表示要求データの取得を指示するコマンドである場合に、
前記表示部の内容と、前記表示要求データの制御コマンドと前記制御データの制御コマンドとが特定の関係を有しているか否かを検証する、請求項1〜3のいずれかに記載のICカード。
【請求項5】
前記検証部は、
前記制御データの制御コマンドが前記表示要求データの取得を指示するコマンドである場合に、
前記表示部の内容と、前記表示要求データの制御コマンドと前記制御データの制御コマンドとが特定の関係を有しているか否かを検証し、
さらに、前記表示要求データの内容と、前記表示制御部に取得されている前記表示部に表示させるための表示データの内容とが一致しているか否かを検証する、請求項1〜4のいずれかに記載のICカード。
【請求項6】
前記表示要求データの更新は、認証処理を要するセキュアなデータであり、
前記制御データの更新は、認証処理が不要なノンセキュアなデータである、請求項1〜5のいずれかに記載のICカード。
【請求項7】
前記ICカードは、外部装置と非接触式に通信可能なICチップを搭載している、請求項1〜6のいずれかに記載の情報処理装置。
【請求項8】
外部装置からの要求に応じて、表示部に表示させる表示要求データと、前記表示部への表示を制御する制御データを前記カード用メモリへ記録するステップと、
前記カード用メモリに記録された前記表示要求データと前記制御データとに含まれる所定の制御コマンドを比較することによりデータの整合性を検証するステップと、
前記検証結果に応じて、前記表示要求データを前記表示部に表示させ、前記制御データを更新するステップと、
を含む、データ制御方法。
【請求項9】
コンピュータを、
外部装置からの要求に応じて、表示部に表示させる表示要求データと、前記表示部への表示を制御する制御データを前記カード用メモリへ記録する記録部と、
前記カード用メモリに記録された前記表示要求データと前記制御データとに含まれる所定の制御コマンドを比較することによりデータの整合性を検証する検証部と、
前記検証部の結果に応じて、前記表示要求データを前記表示部に表示させ、前記制御データを更新する表示制御部を備える、ICカードとして機能させるための、プログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【公開番号】特開2010−157112(P2010−157112A)
【公開日】平成22年7月15日(2010.7.15)
【国際特許分類】
【出願番号】特願2008−335254(P2008−335254)
【出願日】平成20年12月26日(2008.12.26)
【出願人】(000002185)ソニー株式会社 (34,172)
【Fターム(参考)】
【公開日】平成22年7月15日(2010.7.15)
【国際特許分類】
【出願日】平成20年12月26日(2008.12.26)
【出願人】(000002185)ソニー株式会社 (34,172)
【Fターム(参考)】
[ Back to top ]