IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社東芝の特許一覧 ▶ 東芝電機サービス株式会社の特許一覧

特許7433886ICカード及びICカードの制御プログラム
<>
  • 特許-ICカード及びICカードの制御プログラム 図1
  • 特許-ICカード及びICカードの制御プログラム 図2
  • 特許-ICカード及びICカードの制御プログラム 図3
  • 特許-ICカード及びICカードの制御プログラム 図4
  • 特許-ICカード及びICカードの制御プログラム 図5
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-02-09
(45)【発行日】2024-02-20
(54)【発明の名称】ICカード及びICカードの制御プログラム
(51)【国際特許分類】
   G06K 19/077 20060101AFI20240213BHJP
   G06F 13/38 20060101ALI20240213BHJP
【FI】
G06K19/077 244
G06F13/38 320Z
【請求項の数】 2
(21)【出願番号】P 2019230798
(22)【出願日】2019-12-20
(65)【公開番号】P2021099632
(43)【公開日】2021-07-01
【審査請求日】2022-07-13
(73)【特許権者】
【識別番号】000003078
【氏名又は名称】株式会社東芝
(73)【特許権者】
【識別番号】598076591
【氏名又は名称】東芝インフラシステムズ株式会社
(74)【代理人】
【識別番号】110003708
【氏名又は名称】弁理士法人鈴榮特許綜合事務所
(72)【発明者】
【氏名】丹下 大輔
【審査官】宮司 卓佳
(56)【参考文献】
【文献】特開2003-288561(JP,A)
【文献】特開2011-243027(JP,A)
【文献】特開2001-101362(JP,A)
【文献】特開2003-168092(JP,A)
【文献】米国特許出願公開第2006/0095598(US,A1)
【文献】特開平09-231331(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06K 19/00
G06K 19/07
G06K 19/077
G06F 13/38
(57)【特許請求の範囲】
【請求項1】
リーダライタと接触通信を行う接触通信インタフェースと、
前記リーダライタと非接触通信を行う非接触通信インタフェースと、
所定のコマンドに含まれているヒストリカルバイトに基づいて、前記接触通信におけるATR(Answer To Reset)と、前記非接触通信におけるATS(Answer To Select)とを設定するプロセッサと、
前記ATRに付加されるヒストリカルバイトが記憶される第1の記憶領域と、前記ATSに付加されるヒストリカルバイトが記憶される第2の記憶領域と、を有する不揮発性メモリと、を具備し、
前記プロセッサは、
前記第1の記憶領域又は前記第2の記憶領域に記憶されるヒストリカルバイトを書き換える所定のコマンドに含まれている書換用のヒストリカルバイトを、前記第1の記憶領域と前記第2の記憶領域との両方に上書きし、
前記第1の記憶領域に記憶するヒストリカルバイトを、前記ATRに付加し、
前記第2の記憶領域に記憶するヒストリカルバイトを、前記ATSに付加する、
ICカード。
【請求項2】
リーダライタと接触通信を行う接触通信インタフェースと、前記リーダライタと非接触通信を行う非接触通信インタフェースと、プロセッサと、前記接触通信におけるATR(Answer To Reset)に付加されるヒストリカルバイトが記憶される第1の記憶領域と前記非接触通信におけるATS(Answer To Select)に付加されるヒストリカルバイトが記憶される第2の記憶領域とを有する不揮発性メモリと、を具備するICカードにおいて実行されるICカードの制御プログラムであって、
前記プロセッサに、
前記第1の記憶領域又は前記第2の記憶領域に記憶される前記ヒストリカルバイトを書き換える所定のコマンドに含まれている書換用のヒストリカルバイトを前記不揮発性メモリの前記第1の記憶領域と前記第2の記憶領域との両方に上書きさせ
前記接触通信インタフェースを介して前記リーダライタと接触通信する場合に前記不揮発性メモリの前記第1の記憶領域に記憶するヒストリカルバイトを前記ATRに付加させ、
前記非接触通信インタフェースを介して前記リーダライタと非接触通信する場合に前記不揮発性メモリの前記第2の記憶領域に記憶するヒストリカルバイトを前記ATSに付加させる、
ICカードの制御プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、ICカード及びICカードの制御プログラムに関する。
【背景技術】
【0002】
プロセッサ、不揮発性メモリ、及びRAM(Random Access Memory)を有するICチップと、通信インタフェースと、を備えるICカード(携帯可能電子装置)が実用化されている。また、接触通信を行う為の接触通信インタフェースと、非接触通信を行う為の非接触通信インタフェースとを有するICカードであるデュアルインタフェースカードが一般的に実用化されている。
【0003】
ICカードは、メーカー、チップに関する情報、書き換え可能回数、拡張されたレングスを用いたフォーマット(拡張フォーマットと称する)のサポートの有無などの、カードの特徴を示す情報を上位装置に送信する。カードの特徴を示す情報は、例えば、ISO/IEC7816で規定されたヒストリカルバイト(Historical bytes)である。ICカードは、上位装置と接触通信を行う場合、ヒストリカルバイトを含むATR(Answer To Reset)を上位装置に送信する。また、ICカードは、上位装置と非接触通信を行う場合、ヒストリカルバイトを含むATS(Answer To Select)を上位装置に送信する。
【0004】
ATRに含まれるヒストリカルバイトを書き換える為の方法は、例えば「globalplatform」の「GPSystem」で定められた「setATRHistBytes」など、種々の方法がある。しかし、上記の方法では、ATSに含まれるヒストリカルバイトを書き換えることができないという課題がある。
【先行技術文献】
【特許文献】
【0005】
【文献】特開2003-288561号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
本発明は、利便性の高いICカード及びICカードの制御プログラムを提供することを目的とする。
【課題を解決するための手段】
【0007】
一実施形態に係るICカードは、接触通信インタフェースと、非接触通信インタフェースと、プロセッサと、不揮発性メモリと、を具備する。接触通信インタフェースは、リーダライタと接触通信を行う。非接触通信インタフェースは、前記リーダライタと非接触通信を行う。プロセッサは、ヒストリカルバイトを含む所定のコマンドに基づいて、前記接触通信におけるATR(Answer To Reset)と、前記非接触通信におけるATS(Answer To Select)とを設定する。不揮発性メモリは、前記ATRに付加されるヒストリカルバイトが記憶される第1の記憶領域と、前記ATSに付加されるヒストリカルバイトが記憶される第2の記憶領域と、を有する。前記プロセッサは、前記第1の記憶領域又は前記第2の記憶領域に記憶される前記ヒストリカルバイトを書き換える所定のコマンドに含まれている書換用のヒストリカルバイトを、前記第1の記憶領域と前記第2の記憶領域との両方に上書きし、前記第1の記憶領域に記憶するヒストリカルバイトを、前記ATRに付加し、前記第2の記憶領域に記憶するヒストリカルバイトを、前記ATSに付加する
【図面の簡単な説明】
【0008】
図1図1は、一実施形態に係るICカード処理システムの構成例について説明するための説明図である。
図2図2は、第1の実施形態に係るICカードの動作の例について説明する為の説明図である。
図3図3は、第1の実施形態に係るICカードの動作の例について説明する為の説明図である。
図4図4は、第2の実施形態に係るICカードの動作の例について説明する為の説明図である。
図5図5は、第2の実施形態に係るICカードの動作の例について説明する為の説明図である。
【発明を実施するための形態】
【0009】
以下、実施形態について、図面を参照して説明する。
図1は、ICカード処理システム1の例について説明する為の説明図である。
ICカード処理システム1は、上位装置11及びICカード12(携帯可能電子装置)などを備える。上位装置11と、ICカード12とは、互いに接触または非接触で通信可能に構成されている。なお、ICカード処理システム1は、図1で示された構成の他に必要に応じた構成を具備したり、ICカード処理システム1から特定の構成が除外されたりしてもよい。
【0010】
まず、上位装置11の構成について説明する。
上位装置11は、ICカード12を処理するICカード処理装置である。上位装置11は、ICカード処理システム1全体を制御する。上位装置11は、ICカード12に対して電力を供給することでICカード12を活性化させる。また、上位装置11は、ICカード12に種々のコマンドを送信することで、ICカード12に種々の動作を実行させる。
【0011】
上位装置11は、コントローラ21、第1のカードリーダライタ22、第2のカードリーダライタ23、ディスプレイ24、及び操作インタフェース25などを備える。
【0012】
コントローラ21は、上位装置11の種々の動作を制御する。コントローラ21は、プロセッサ26及びメモリ27を備える。
【0013】
プロセッサ26は、演算処理を実行する演算素子(例えばCPU)を備える。プロセッサ26は、メモリ27に格納されているプログラムを実行することにより、種々の動作を実行する。
【0014】
メモリ27は、プログラム及びプログラムで用いられるデータなどを記憶する。メモリ27は、例えば、第1のカードリーダライタ22のドライバ、第2のカードリーダライタ23のドライバ、ディスプレイ24に表示させる画像の生成を行う為のプログラム、及び操作インタフェース25による操作入力の解釈を行う為のプログラムを備える。また、メモリ27は、ICカード12との間でコマンドの送信、及びレスポンスの受信を行う為のプログラムを備える。即ち、メモリ27は、ICカード12を処理するICカード処理装置用の制御プログラムを記憶する。
【0015】
第1のカードリーダライタ22は、ICカード12と接触通信を行う為のインタフェースである。第1のカードリーダライタ22は、ICカード12のコンタクトパターンと物理的且つ電気的に接続される複数の接触端子とICカード12が挿入されるスロットとを備える。第1のカードリーダライタ22は、接触端子及びコンタクトパターンを介して、ICカード12との間でデータの送受信を行う。また、第1のカードリーダライタ22は、接触端子及びコンタクトパターンを介して、ICカード12に電力及びクロックの供給を行う。
【0016】
第2のカードリーダライタ23は、ICカード12と非接触通信を行う為のインタフェースである。第2のカードリーダライタ23は、アンテナ(コイル)と、変復調回路とを備える。第2のカードリーダライタ23は、送信するデータに応じた信号を変復調回路により変調し、アンテナに流すことにより、アンテナからデータに応じた電波を出力させる。また、第2のカードリーダライタ23は、ICカードからの電波をアンテナにより受信し、受信した信号を変復調回路により復調し、元のデータを取得する。また、第1のカードリーダライタ22は、アンテナからの電波によって、ICカード12に電力を供給する。
【0017】
ディスプレイ24は、コントローラ21または図示されないグラフィックコントローラから供給される表示用のデータ(画面データ)に基づいて画面を表示する。
【0018】
操作インタフェース25は、操作に基づき操作信号を生成する構成である。操作インタフェース25は、例えば、マウス、トラックボール、キーボード、トラックパッド、タッチセンサなどの操作部材の操作に基づく操作信号を受信または生成し、コントローラ21に供給する。
【0019】
なお、図1の例では、上位装置11が第1のカードリーダライタ22及び第2のカードリーダライタ23の両方を備える構成として説明したが、上位装置11は、少なくとも第1のカードリーダライタ22と第2のカードリーダライタ23とのいずれかを備えていればよい。また、上位装置11は、第1のカードリーダライタ22または第2のカードリーダライタ23が接続される通信インタフェースを備える構成であってもよい。
【0020】
次に、ICカード12の構成について説明する。
ICカード12は、上位装置11から供給された電力により活性化する。ICカード12は、上位装置11からコマンドを受信し、受信したコマンドに応じて種々の処理を実行する。また、ICカード12は、処理に応じてレスポンスを生成し、レスポンスを上位装置11に送信する。
【0021】
ICカード12は、プラスチックなどで形成されたカード状の本体31を有する。ICカード12は、本体31内にICモジュール32を備える。ICモジュール32は、ICチップ33、接触通信インタフェース34、及び非接触通信インタフェース35を備える。即ち、ICカード12は、上位装置11と接触通信を行う為の接触通信インタフェース34と、非接触通信を行う為の非接触通信インタフェース35とを有するデュアルインタフェースカードである。また、ICチップ33は、プロセッサ36、不揮発性メモリ37、及びRAM38を備える。なお、ICカード12は、図1で示された構成の他に必要な追加されてもよいし、ICカード12は、図1で示された構成の一部が除外されてもよい。
【0022】
プロセッサ36は、演算処理を実行する演算素子(例えばCPU)を備える。プロセッサ36は、不揮発性メモリ37に格納されているプログラムを実行することにより、種々の動作を実行する。
【0023】
不揮発性メモリ37は、プログラム及びプログラムで用いられるデータなどを記憶する不揮発性のメモリ(Non-Volatile Memory)である。不揮発性メモリ37に記憶されているプログラムは、例えば、OS(オペレーティングシステム)、及び、ICカード12の運用形態に応じた種々の処理を行う為のアプリケーションなどである。アプリケーションは、例えば、カードissuer(カードの発行者)が管理するICカード用のアプリケーションである。OSは、プロセッサ36にICカード12内の各部の制御及び情報処理を実現させるためのICカードの制御プログラムである。不揮発性メモリ37のプログラム及び制御データは、予めICカード12の仕様などに応じて組み込まれる。なお、ICカード12は、OS及びアプリケーションなどのICカードの制御プログラムを記憶したROMを備える構成であってもよい。
【0024】
不揮発性メモリ37内には、ISO/IEC7816により規定されているファイル構造が構成されている。例えば、不揮発性メモリ37内には、Master File(MF)、Dedicated File(DF)、及びElementary File(EF)などが記憶されている。
【0025】
MFは、ファイル構造の根幹となるファイルである。
【0026】
DFは、MFの下位に創成される。DFは、アプリケーション及びアプリケーションに用いられるデータなどをグループ化して格納するファイルである。
【0027】
EFは、DFの下位に創成される。EFは、様々なデータを格納するためのファイルである。また、MFの直下にEFが置かれる場合もある。
【0028】
RAM38は、データを一時的に格納する揮発性のメモリである。RAM38には、プロセッサ36が処理中のデータ、不揮発性メモリ37から読み出されたプログラムなどが一時的に格納される。例えば、RAM38は、計算用バッファ、受信用バッファ、及び送信用バッファとして機能する。計算用バッファは、プロセッサ36が実行する種々の演算処理の結果などを一時的に保持する為の領域である。受信用バッファは、上位装置11から受信したコマンド(コマンドデータ)などを一時的に保持する為の領域である。送信用バッファは、上位装置11に送信するレスポンス(レスポンスデータ)などを一時的に保持する為の領域である。
【0029】
なお、プロセッサ36がプログラムを実行することにより実現する各種の機能のうちの一部は、ハードウエア回路としてICチップ33に組みこまれていてもよい。この場合、プロセッサ36は、ハードウエア回路により実行される機能を制御する。
【0030】
接触通信インタフェース34は、上位装置11と接触通信を行う為の接触通信手段である。例えば、接触通信インタフェース34は、ICチップ33の端子と接続され、ICカード12の表面に露出したコンタクトパターンを備える。コンタクトパターンは、第1のカードリーダライタ22のスロットにICカード12が挿入された場合に、接触端子と物理的且つ電気的に接続されるように構成されている。接触通信インタフェース34は、上位装置11とICチップ33との間における電力供給、データの送受信を中継する。
【0031】
非接触通信インタフェース35は、上位装置11と非接触通信を行う為の非接触通信手段である。例えば、非接触通信インタフェース35は、アンテナ(コイル)と、変復調回路と、電源回路とを備える。非接触通信インタフェース35は、送信するデータに応じた信号を変復調回路により変調し、アンテナに流すことにより、アンテナからデータに応じた電波を出力させる。また、非接触通信インタフェース35は、上位装置11の第2のカードリーダライタ23からの電波をアンテナにより受信し、受信した信号を変復調回路により復調し、元のデータを取得する。また、非接触通信インタフェース35は、上位装置11の第2のカードリーダライタ23からの電波によってアンテナに生じた誘起電流を電源回路により整流及び平滑し、所定の電源電圧をICチップ33に供給する。
【0032】
(第1の実施形態)
次に、第1の実施形態におけるICカード12の活性化及び初期応答などの動作について説明する。
【0033】
図2は、ICカード12からの初期応答について説明する為の説明図である。
ICカード12の不揮発性メモリ37は、ICカード12のカード操作方法を主体としたカードの特徴を示す情報(以下特徴情報と称する)を記憶する記憶領域を備える。特徴情報は、例えば、「メーカーの識別情報」、「ICチップの識別情報」、「書き換え可能回数」、及び「拡張フォーマットのサポートの有無」などを含むヒストリカルバイトとして構成される。即ち、不揮発性メモリ37は、ヒストリカルバイトが記憶された記憶領域を有する。
【0034】
図2の例では、ヒストリカルバイトは、例えば、MFの下位の所定のEF41に予め格納されている。なお、ヒストリカルバイトは、例えば、DFの下位のEFに格納されていてもよい。ヒストリカルバイトは、EF以外の形態で不揮発性メモリ37に記憶されていてもよい。例えば、ヒストリカルバイトは、ヒストリカルバイトであることを示すタグが付加された状態で不揮発性メモリ37のいずれかの記憶領域に記憶されていればよい。
【0035】
ICカード12は、活性化すると、初期応答を行う。初期応答では、ICカード12は、上位装置11とICカード12間の通信に関する設定を行う為の情報を上位装置11に送信する。
【0036】
まず、接触通信について説明する。
接触通信では、ICカード12は、接触通信インタフェース34を介して上位装置11から供給された直流電源電圧により活性化する。ICカード12は、活性化すると、ISO/IEC7816の規定に基づき、初期応答を行う。具体的には、ICカード12は、不揮発性メモリ37から必要な情報を読み出し、例えばISO/IEC7816-3によりフレームフォーマットが規定されたATR(Answer-to-Reset)を上位装置11に送信する。
【0037】
図2に示されるように、ATRは、「TS」、「T0」、「Interface byte(インターフェースバイト)」、「Historical Characters(ヒストリカルキャラクタ)」、及び「TSK」などを有する。なお、「インターフェースバイト」及び「ヒストリカルキャラクタ」は、オプションの情報である。
【0038】
「TS(Initial Character TS)」は、信号の論理レベルとビット転送順を示す情報である。
【0039】
「T0(Format byte T0)」は、「インターフェースバイト」の1セット目の「TA1」、「TB1」、「TC1」、及び「TD1」の存在の有無と、「ヒストリカルキャラクタ」の長さとを示す情報である。
【0040】
「インターフェースバイト」は、データ転送プロトコル上の各種のパラメータを示す。「インターフェースバイト」は、例えば、データ転送速度などを示す情報である。
【0041】
「ヒストリカルキャラクタ」は、ICカード12のカード操作方法を主体としたカードの特徴を示す情報(特徴情報)である。例えば、ICカード12のプロセッサ36は、不揮発性メモリ37のヒストリカルバイトが記憶されたEF41からヒストリカルバイトを読み出し、ヒストリカルバイトを「ヒストリカルキャラクタ」のフィールドにセットする。「ヒストリカルキャラクタ」は、最大で15bytesのデータであり、ISO/IEC7816-4で規定されている。
【0042】
「TCK」は、「T0」から「TCK」までの各キャラクタの排他的論理和を示す情報である。「TCK」は、最大で32bytesのデータである。
【0043】
ICカード12は、上記のATRを上位装置11に送信することにより、上位装置11との間で接触通信が可能な状態になる。
【0044】
次に、非接触通信について説明する。
非接触通信では、上位装置11は、第2のカードリーダライタ23のアンテナからICカード12の活性化用の電波を出力しつつ、定期的にポーリング(初期応答要求コマンドの送信)を行う。
【0045】
初期応答要求コマンドは、例えば、ISO/IEC14443で規定されたREQB(REQuest command typeB)、またはREQA(REQuest command typeA)などである。
【0046】
ICカード12は、第2のカードリーダライタ23のアンテナからの電波によって、非接触通信インタフェース35のアンテナに生じた誘起電流を整流及び平滑し、直流電源電圧を得る。ICカード12は、直流電源電圧により活性化する。ICカード12は、活性化し、上位装置11から初期応答要求コマンドを受信すると、初期応答を上位装置11に送信する。
【0047】
具体的には、ICカード12は、例えばISO/IEC14443で規定されたATQB(Answer To REQuest command typeB)、またはATQA(Answer To REQuest command typeA)などを初期応答として上位装置11に送信する。初期応答には、初期応答要求コマンドに対するレスポンス(初期応答)であることを示すパラメータ、擬似固有ICカード(PICC)識別子、応用データは、どのようなアプリケーションが書き込まれているかを示す応用データ、サポートしているプロトコルを示すプロトコル情報、及び巡回冗長検査符号などが含まれている。
【0048】
上位装置11は、初期応答を受信すると、カードの特徴を示す情報(特徴情報)をICカード12に要求する為のコマンドをICカード12に送信する。具体的には、上位装置11は、ATS(Answer-to-Select)の送信をICカード12に要求するRATS(Request for Answer To Select)をICカード12に送信する。なお、ATS及びRATSは、ISO/IEC14443によりフレームフォーマットが規定されている。
【0049】
ICカード12は、特徴情報の送信が要求されると、不揮発性メモリ37から必要な情報を読み出し、特徴情報を上位装置11に送信する。具体的には、ICカード12は、RATSを受信すると、不揮発性メモリ37のEF41からヒストリカルバイトを読み出し、ヒストリカルバイトが付加されたATSを上位装置11に送信する。
【0050】
図2に示されるように、ATSは、「TL」、「T0」、「TA」、「TB」、「TC」、「ヒストリカルバイト」、及び「CRC(Cyclic Redundancy Check)」などを有する。
【0051】
「TL」は、ATSの長さを示す情報(長さバイト)である。なお、「TL」が示す長さには、「CRC」のバイトは含まれない。
【0052】
「T0」は、フォーマットバイトである。「T0」は、例えば、後続の「TA」、「TB」、「TC」、及び「ヒストリカルバイト」の有無、受信可能な最大フレーム長などの情報を示す。
【0053】
「TA」、「TB」、及び「TC」は、インターフェースバイトである。「TA」は、通信速度に関する情報を示す。「TB」は、フレーム待ち時間、開始フレームガード時間などの情報を示す。「TC」は、「CID(Card IDentifier)」と「NAD(Node ADress)」のどちらをサポートしているかを示す。
【0054】
「ヒストリカルバイト」は、ICカード12のカード操作方法を主体としたカードの特徴を示す情報(特徴情報)である。例えば、ICカード12のプロセッサ36は、不揮発性メモリ37のヒストリカルバイトが記憶されたEF41からヒストリカルバイトを読み出し、ATSの「ヒストリカルバイト」にセットする。
【0055】
「CRC」は、誤り検出に用いられる符号である。
【0056】
ICカード12がISO/IEC14443で規定されたtypeAである場合、ICカード12が上記のATSを上位装置11に送信することにより、上位装置11との間で非接触通信による通常のコマンドの処理が可能な状態になる。この場合、上位装置11は、SELECTコマンドをICカード12に送信することにより、DFに格納された任意のアプリケーションを実行させることができる。
【0057】
また、ICカード12がISO/IEC14443で規定されたtypeBである場合、上位装置11は、ICカード12にATTRIBを送信する。ICカード12は、上位装置に対してATTRIBに対するレスポンスであるATA(Answer To ATTRIB)に、上記のATSまたはヒストリカルバイトを付加し、上位装置11に送信する。これにより、ICカード12と上位装置11との間で、非接触通信による通常のコマンドの処理が可能になる。
【0058】
上記したように、ICカード12のプロセッサ36は、接触通信インタフェース34により上位装置11にATRを送信する場合、ヒストリカルバイトが記憶されたEF41からヒストリカルバイトを読み出し、ATRに付加し、送信する。
【0059】
また、ICカード12のプロセッサ36は、非接触通信インタフェース35により上位装置11にATSを送信する場合、ヒストリカルバイトが記憶されたEF41からヒストリカルバイトを読み出し、ATSに付加し、送信する。
【0060】
このように、ICカード12のプロセッサ36は、不揮発性メモリ37の所定の記憶領域(EF41)上のヒストリカルバイトを、接触通信におけるATRと、非接触通信におけるATSと、に付加する。即ち、ICカード12のプロセッサ36は、ATRを送信する場合もATSを送信する場合も、不揮発性メモリ37上で同じ記憶領域に記憶されているヒストリカルバイトを用いて、ATRの生成及びATSの生成を行う。
【0061】
次に、第1の実施形態におけるヒストリカルバイトの書き換えについて説明する。
図3は、ICカード12の不揮発性メモリ37に記憶されているヒストリカルバイトの書き換えについて説明する為の説明図である。なお、図3では、ICカード12のプロセッサ36が実行したプログラム(OS及びアプリケーションなど)をブロック化して示している。
【0062】
上位装置11は、第1のカードリーダライタ22または第2のカードリーダライタ23により、書換用のヒストリカルバイトが付加された所定のコマンドを、ICカード12に対して送信する。これにより、上位装置11は、ICカード12の不揮発性メモリ37のヒストリカルバイトを書き換えさせる。なお、書換用のヒストリカルバイトが付加されるコマンドは、任意でありどのようなコマンドであってもよい。
【0063】
上位装置11からICカード12に送信されるコマンドは、ISO/IEC7816によりフォーマットが規定されており、「CLA」、「INS」、「P1」、「P2」、「Lc」、「Data」、及び「Le」などのフィールドを有する。
【0064】
「CLA」は、コマンドの種別を示す情報である。「INS」は、コマンドの種別を示す情報である。「CLA」及び「INS」により、当該コマンドの種類が示される。
【0065】
「P1」及び「P2」は、「INS」に応じたパラメータを示す情報である。「P1」及び「P2」は、例えばコマンドオプション指定を示す。例えば、「P1」及び「P2」は、処理対象のファイルのIDなどを示す。
【0066】
「Lc」は、「Data」のデータの長さ(バイト数)を示す情報である。
【0067】
「Data」は、当該コマンドのデータ本体を示す情報である。「Data」は、例えば、当該コマンドに基づくコマンド処理で使用されるデータなどを格納する。
【0068】
「Le」は、当該コマンドに対するレスポンスのデータ長(最大長)を示す情報である。
【0069】
上位装置11は、書換用のヒストリカルバイトを「Data」に付加する。即ち、上位装置11は、「Data」に書換用のヒストリカルバイトが付加されたコマンドを、ICカード12に送信する。
【0070】
ICカード12のOSは、受信したコマンドの「CLA」及び「INS」の値を解析することにより、受信したコマンドの種類を認識する。ICカード12のOSは、受信したコマンドに応じた処理を実行する。例えば、ICカード12のOSは、書換用のヒストリカルバイトが付加されたコマンドを受信した場合、カードissuerが管理するアプリケーションに、受信したコマンドを渡す。
【0071】
ICカード12のアプリケーションは、コマンドの「Data」に付加されていた書換用のヒストリカルバイトを例えばRAM38上のバッファ領域に設定する。また、アプリケーションは、不揮発性メモリ37上のヒストリカルバイトが記憶されている記憶領域のオフセット値、及び不揮発性メモリ37上のヒストリカルバイトの長さをそれぞれ算出する。即ち、アプリケーションは、不揮発性メモリ37上において、ATRの生成及びATSの生成に用いられるヒストリカルバイトが格納されているEF41の先頭までのオフセット値と、EF41内のヒストリカルバイトの長さ(またはEF41の長さ)とを算出する。
【0072】
ICカード12のアプリケーションは、API(Application Programming Interface)により、コマンドに付加されていた書換用のヒストリカルバイトを不揮発性メモリ37に設定(上書き)する。APIは、オフセット値の算出結果と、ヒストリカルバイトの長さの算出結果とに基づいて、上書きを行う記憶領域を認識し、認識した記憶領域に、コマンドに付加されていた書換用のヒストリカルバイトを上書きする。アプリケーションは、処理結果に応じて、OSに処理結果を示す戻り値(応答)を送信する。なお、APIは、アプリケーションの一部として構成されているものであってもよいし、OSの一部として構成されているものであってもよい。
【0073】
OSは、アプリケーションからの戻り値を確認し、結果に応じて上位装置11にレスポンスを送信する。ICカード12から上位装置11に送信されるレスポンスは、ISO/IEC7816によりフォーマットが規定されており、「SW1」及び「SW2」などのフィールドを有する。
【0074】
「SW1」及び「SW2」は、ICカード12における処理結果を示す情報(ステータスバイト)である。上位装置11は、「SW1」及び「SW2」が正常終了を示す値である場合、ICカード12においてヒストリカルバイトの書き換えが正常に行われたことを認識する。
【0075】
なお、ICカード12は、コマンドの「Data」に付加されていた書換用のヒストリカルバイトのバッファへの設定をOSが行う構成であってもよい。また、ICカード12は、不揮発性メモリ37上のヒストリカルバイトが記憶されている記憶領域のオフセット値の算出、及び不揮発性メモリ37上のヒストリカルバイトの長さの算出をOSが行う構成であってもよい。この場合、OSは、バッファ上のヒストリカルバイトを設定したアドレス、オフセット値の算出結果、ヒストリカルバイトの長さの算出結果をアプリケーションに渡す。
【0076】
上記したように、ICカード12の不揮発性メモリ37上には、ヒストリカルバイトが記憶される記憶領域が設けられている。ICカード12のプロセッサ36は、不揮発性メモリ37上のヒストリカルバイトに基づいて、ATR及びATSを設定する。即ち、プロセッサ36は、不揮発性メモリ37上のヒストリカルバイトが記憶されている記憶領域からヒストリカルバイトを読み出し、ATR及びATSに付加する。また、ICカード12のプロセッサ36は、書換用のヒストリカルバイトが付加された所定のコマンドを受信した場合、不揮発性メモリ37上のヒストリカルバイトが記憶されている記憶領域に書換用のヒストリカルバイトを上書きする。
【0077】
これにより、接触通信におけるATRに付加されるヒストリカルバイトと、非接触通信におけるATSに付加されるヒストリカルバイトとが、書換用のヒストリカルバイトを含む所定のコマンドに基づいて設定される。即ち、ATRに付加されるヒストリカルバイトと、ATSに付加されるヒストリカルバイトとの両方が、1つのコマンドによって変更される。これにより、ATRに付加されるヒストリカルバイトと、ATSに付加されるヒストリカルバイトとを個別に変更する必要がなくなる。この結果、ICカードの利便性を向上させることができる。
【0078】
(第2の実施形態)
次に、第2の実施形態におけるICカード12の活性化及び初期応答などの動作について説明する。第1の実施形態は、不揮発性メモリ37上のヒストリカルバイトが記憶される記憶領域からヒストリカルバイトを読み出し、ATRの生成及びATSの生成の両方に用いる構成であると説明した。これに対し、第2の実施形態は、不揮発性メモリ37上にATR用のヒストリカルバイトが記憶される記憶領域と、ATS用のヒストリカルバイトが記憶される記憶領域と、が設けられている点が異なる。なお、第1の実施形態と同じ構成には、同じ参照符号を付し、重複する説明を省略する。
【0079】
図4は、ICカード12からの初期応答について説明する為の説明図である。
図4に示されるように、第2の実施形態に係るICカード12の不揮発性メモリ37には、第1のEF42(第1の記憶領域)と第2のEF43(第2の記憶領域)とが設けられている。ATRの生成時に用いられるヒストリカルバイト(ATR用のヒストリカルバイト)は、例えば、DFの下位の第1のEF42に格納されている。また、ATSの生成時に用いられるヒストリカルバイト(ATS用のヒストリカルバイト)は、例えば、第1のEF42とは異なる第2のEF43に格納されている。なお、ATR用のヒストリカルバイトとATS用のヒストリカルバイトとは、内容が同じデータである。
【0080】
また、MFの下位に第1のEF42と第2のEF43とが設けられていてもよい。またさらに、ヒストリカルバイトは、EF以外の形態で不揮発性メモリ37に記憶されていてもよい。例えば、ヒストリカルバイトは、ATR用のヒストリカルバイトまたはATS用のヒストリカルバイトであることを示すタグが付加された状態で、不揮発性メモリ37のいずれかの記憶領域に記憶されていればよい。
【0081】
まず、接触通信について説明する。
例えば、接触通信では、ICカード12は、活性化すると、ISO/IEC7816の規定に基づき、初期応答を行う。具体的には、ICカード12は、不揮発性メモリ37の第1のEF42からATR用ヒストリカルバイトを読み出し、ATRにATR用ヒストリカルバイトを付加し、上位装置11に送信する。これにより、ICカード12は、上位装置11との間で接触通信が可能な状態になる。
【0082】
次に、非接触通信について説明する。
例えば、非接触通信では、ICカード12は、活性化すると、ISO/IEC14443の規定に基づき初期応答を上位装置11に送信する。
【0083】
上位装置11は、初期応答を受信すると、ICカード12に対して特徴情報を要求するコマンドを送信する。
【0084】
ICカード12は、特徴情報を要求するコマンドを受信すると、不揮発性メモリ37の第2のEF43からATS用ヒストリカルバイトを読み出し、ATSにATS用ヒストリカルバイトを付加し、ATSを上位装置11に送信する。これにより、上位装置11とICカード12との間で非接触通信による通常のコマンドの処理が可能な状態になる。
【0085】
特徴情報を要求するコマンドは、ICカード12がISO/IEC14443で規定されたtypeAである場合、RATSである。この場合、ICカード12は、RATSの受信に応じてATSを上位装置11に送信する。
【0086】
また、特徴情報を要求するコマンドは、ICカード12がISO/IEC14443で規定されたtypeBである場合、ATTRIBである。この場合、ICカード12は、ATTRIBの受信に応じてATAを生成し、ATSをATAに付加し、上位装置11に送信する。
【0087】
次に、第2の実施形態におけるヒストリカルバイトの書き換えについて説明する。
図5は、ICカード12の不揮発性メモリ37に記憶されているヒストリカルバイトの書き換えについて説明する為の説明図である。なお、図5では、ICカード12のプロセッサ36が実行したプログラム(OS及びアプリケーションなど)をブロック化して示している。
【0088】
上位装置11は、第1のカードリーダライタ22または第2のカードリーダライタ23により、書換用のヒストリカルバイトが付加された所定のコマンドを、ICカード12に対して送信する。
【0089】
ICカード12のOSは、受信したコマンドの「CLA」及び「INS」の値を解析することにより、受信したコマンドの種類を認識する。ICカード12のOSは、受信したコマンドに応じた処理を実行する。例えば、ICカード12のOSは、書換用のヒストリカルバイトが付加された所定のコマンドを受信した場合、カードissuerが管理するアプリケーションに、受信したコマンドを渡す。
【0090】
ICカード12のアプリケーションは、コマンドの「Data」に付加されていた書換用のヒストリカルバイトを、例えばRAM38上のバッファ領域に設定する。また、アプリケーションは、不揮発性メモリ37上のATR用のヒストリカルバイトが記憶されている記憶領域のオフセット値、及び不揮発性メモリ37上のATR用のヒストリカルバイトの長さをそれぞれ算出する。また、アプリケーションは、不揮発性メモリ37上のATS用のヒストリカルバイトが記憶されている記憶領域のオフセット値、及び不揮発性メモリ37上のATS用のヒストリカルバイトの長さをそれぞれ算出する。即ち、アプリケーションは、不揮発性メモリ37上において、ATR用のヒストリカルバイト及びATS用のヒストリカルバイトが格納されている第1のEF42及び第2のEF43のそれぞれの先頭までのオフセット値と、ヒストリカルバイトの長さとを算出する。
【0091】
ICカード12のアプリケーションは、コマンドの「Data」から書換用のヒストリカルバイトを取得し、取得した書換用のヒストリカルバイトを、第1のEF42のATR用のヒストリカルバイト及び第2のEF43のATS用のヒストリカルバイトに設定(上書き)する。アプリケーションは、処理結果に応じて、OSに処理結果を示す戻り値(応答)を送信する。
【0092】
OSは、アプリケーションからの戻り値を確認し、結果に応じて上位装置11にレスポンスを送信する。
【0093】
上記したように、第2の実施形態のICカード12の不揮発性メモリ37上には、ATR用のヒストリカルバイトを記憶する第1の記憶領域と、ATS用のヒストリカルバイトを記憶する第2の記憶領域と、が別に設けられている。ICカード12のプロセッサ36は、書換用のヒストリカルバイトを含む所定のコマンドに基づいて、第1の記憶領域と第2の記憶領域との両方を書き換える。即ち、プロセッサ36は、所定のコマンドに含まれている書換用のヒストリカルバイトを、第1の記憶領域上のATR用のヒストリカルバイトと、第2の記憶領域上のATS用のヒストリカルバイトとの両方に上書きする。プロセッサ36は、第1の記憶領域のATR用のヒストリカルバイトを、接触通信におけるATRに付加する。また、ICカード12のプロセッサ36は、第2の記憶領域のATS用のヒストリカルバイトを、非接触通信におけるATSに付加する。
【0094】
上記の構成によっても、接触通信におけるATRに付加されるヒストリカルバイトと、非接触通信におけるATSに付加されるヒストリカルバイトとが、書換用のヒストリカルバイトを含む所定のコマンドに基づいて変更される。即ち、ATRに付加されるヒストリカルバイトと、ATSに付加されるヒストリカルバイトとの両方が、1つのコマンドによって変更される。これにより、ATRに付加されるヒストリカルバイトと、ATSに付加されるヒストリカルバイトとを個別に変更する必要がなくなる。この結果、ICカードの利便性を向上させることができる。
【0095】
なお、上述の各実施の形態で説明した機能は、ハードウエアを用いて構成するに留まらず、ソフトウエアを用いて各機能を記載したプログラムをコンピュータに読み込ませて実現することもできる。また、各機能は、適宜ソフトウエア、ハードウエアのいずれかを選択して構成するものであっても良い。
【0096】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
以下、本願の出願当初の特許請求の範囲に記載した内容を付記する。
[1]
リーダライタと接触通信を行う接触通信インタフェースと、
前記リーダライタと非接触通信を行う非接触通信インタフェースと、
所定のコマンドに含まれているヒストリカルバイトに基づいて、前記接触通信におけるATR(Answer To Reset)と、前記非接触通信におけるATS(Answer To Select)とを設定するプロセッサと、
を具備するICカード。
[2]
前記ヒストリカルバイトが記憶された記憶領域を有する不揮発性メモリをさらに具備し、
前記プロセッサは、前記不揮発性メモリの前記記憶領域上の前記ヒストリカルバイトを、前記ATRと、前記ATSと、に付加する[1]に記載のICカード。
[3]
前記プロセッサは、前記ヒストリカルバイトを含む所定のコマンドに基づいて、前記不揮発性メモリの前記記憶領域上の前記ヒストリカルバイトを書き換える[2]に記載のICカード。
[4]
第1の記憶領域と、第2の記憶領域と、を有する不揮発性メモリをさらに具備し、
前記プロセッサは、
所定のコマンドに含まれている前記ヒストリカルバイトを、前記第1の記憶領域と前記第2の記憶領域に上書きし、
前記第1の記憶領域上の前記ヒストリカルバイトを、前記ATRに付加し、
前記第2の記憶領域上の前記ヒストリカルバイトを、前記ATSに付加する、
[1]に記載のICカード。
[5]
リーダライタと接触通信を行う接触通信インタフェースと、前記リーダライタと非接触通信を行う非接触通信インタフェースと、プロセッサと、を具備するICカードにおいて実行されるICカードの制御プログラムであって、
前記制御プログラムは、前記プロセッサに、所定のコマンドに含まれているヒストリカルバイトに基づいて、前記接触通信におけるATR(Answer To Reset)と、前記非接触通信におけるATS(Answer To Select)とを設定させる、
ICカードの制御プログラム。
【符号の説明】
【0097】
1…ICカード処理システム、11…上位装置、12…ICカード、21…コントローラ、22…第1のカードリーダライタ、23…第2のカードリーダライタ、24…ディスプレイ、25…操作インタフェース、26…プロセッサ、27…メモリ、31…本体、32…ICモジュール、33…ICチップ、34…接触通信インタフェース、35…非接触通信インタフェース、36…プロセッサ、37…不揮発性メモリ、38…RAM。
図1
図2
図3
図4
図5