JP2014041552A - Icカード、及び、携帯可能電子装置 - Google Patents

Icカード、及び、携帯可能電子装置 Download PDF

Info

Publication number
JP2014041552A
JP2014041552A JP2012184531A JP2012184531A JP2014041552A JP 2014041552 A JP2014041552 A JP 2014041552A JP 2012184531 A JP2012184531 A JP 2012184531A JP 2012184531 A JP2012184531 A JP 2012184531A JP 2014041552 A JP2014041552 A JP 2014041552A
Authority
JP
Japan
Prior art keywords
command
data
card
file
external terminal
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2012184531A
Other languages
English (en)
Other versions
JP5976458B2 (ja
Inventor
Kei Sugibuchi
慶 杉渕
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Original Assignee
Toshiba Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Toshiba Corp filed Critical Toshiba Corp
Priority to JP2012184531A priority Critical patent/JP5976458B2/ja
Priority to US13/799,770 priority patent/US9779347B2/en
Priority to EP13159147.1A priority patent/EP2701110A1/en
Publication of JP2014041552A publication Critical patent/JP2014041552A/ja
Application granted granted Critical
Publication of JP5976458B2 publication Critical patent/JP5976458B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/34Payment architectures, schemes or protocols characterised by the use of specific devices or networks using cards, e.g. integrated circuit [IC] cards or magnetic cards
    • G06Q20/341Active cards, i.e. cards including their own processing means, e.g. including an IC or chip
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K19/00Record carriers for use with machines and with at least a part designed to carry digital markings
    • G06K19/06Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code
    • G06K19/067Record carriers with conductive marks, printed circuits or semiconductor circuit elements, e.g. credit or identity cards also with resonating or responding marks without active components
    • G06K19/07Record carriers with conductive marks, printed circuits or semiconductor circuit elements, e.g. credit or identity cards also with resonating or responding marks without active components with integrated circuit chips
    • G06K19/073Special arrangements for circuits, e.g. for protecting identification code in memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/34Payment architectures, schemes or protocols characterised by the use of specific devices or networks using cards, e.g. integrated circuit [IC] cards or magnetic cards
    • G06Q20/357Cards having a plurality of specified features
    • G06Q20/3576Multiple memory zones on card

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Physics & Mathematics (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Accounting & Taxation (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Telephone Function (AREA)

Abstract

【課題】内部メモリのデータ保存容量を圧迫しないICカード及び携帯可能電子装置を提供する。
【解決手段】実施形態によれば、ICカードは、通信手段と、記録手段と、受信処理手段と、判定手段と、送信処理手段とを有する。通信手段は、外部端末とデータの送受信を行う。記録手段は、定義情報によって定義されるデータを記録する。受信処理手段は、通信手段により外部端末からコマンドを受信する。判定手段は、受信処理手段によりコマンドを受信した場合、コマンドの実行に必要なデータが記録手段内に存在するか判定する。送信処理手段は、判定手段によりデータが記録手段内に存在しないと判定した場合、外部端末からデータに関連する関連データを取得するセッションの開始を示すレスポンスを通信手段により外部端末へ送信する。
【選択図】図4

Description

本発明の実施形態は、ICカード、及び、携帯可能電子装置に関する。
ICカードは、ICカード内のメモリに記憶しているデータにアクセスして外部装置から与えられたコマンドに応じた処理を実行する。従来のICカードは、通常、コマンドの処理に必要なデータがICカード内のメモリに格納されている。しかしながら、ICカードは、物理的な制約などから大容量のメモリを搭載するのが難しいため、内部に記憶できるデータ量が制限される。
ISO/IEC 7816−4 ETSI TS 102.223
上記の課題を解決するため、内部メモリのデータ保存容量を圧迫することがないICカード及び携帯可能電子装置を提供することを目的とする。
実施形態によれば、ICカードは、通信手段と、記録手段と、受信処理手段と、判定手段と、送信処理手段とを有する。通信手段は、外部端末とデータの送受信を行う。記録手段は、定義情報によって定義されるデータを記録する。受信処理手段は、通信手段により外部端末からコマンドを受信する。判定手段は、受信処理手段によりコマンドを受信した場合、コマンドの実行に必要なデータが記録手段内に存在するか判定する。送信処理手段は、判定手段によりデータが記録手段内に存在しないと判定した場合、外部端末からデータに関連する関連データを取得するセッションの開始を示すレスポンスを通信手段により外部端末へ送信する。
本実施形態に係るICカードとICカード処理端末とを有するICカード処理システムの構成例を示す図である。 本実施形態に係るICカードのNVMに格納されているファイルテーブルの例を示す図である。 本実施形態に係るICカードの状態の例を示す図である。 本実施形態に係るICカードにおけるプロアクティブセッションの流れを概略的に説明するための図である。 本実施形態に係るプロアクティブコマンドの例を示す図である。 本実施形態に係るプロアクティブコマンドに対する端末応答コマンドのValue部の例を示す図である。 本実施形態に係るICカードにおけるコマンド処理の動作例を説明するためのフローチャートである。 本実施形態に係るICカードにおけるリードコマンド処理の動作例を説明するためのフローチャートである。 本実施形態に係るICカードにおけるプロアクティブコマンドの送信処理の動作例を説明するためのフローチャートである。 本実施形態に係るICカードにおける端末応答コマンド処理の動作例を説明するためのフローチャートである。
以下、本実施形態について、図面を参照して説明する。
図1は、本実施形態に係る携帯可能電子装置としてのICカード2と、ICカード2と通信を行う外部装置としてのICカード処理端末1とを有するICカード処理システムの構成例を示すブロック図である。
まず、ICカード処理端末1の構成について説明する。
ICカード処理端末1は、図1に示す構成例において、CPU11、メモリ12及び通信部13などを有する。これらの各部は、システムバス14を介して互いに電気的に接続されている。
CPU11は、ICカード処理端末1全体の動作を制御する制御部として機能する。CPU11は、メモリ12に記憶されている制御プログラム及び制御データに基づいて種々の処理を行う。CPU11は、プログラムを実行することにより、ICカード処理端末1の基本的な動作制御およびICカード処理端末1の運用形態に応じた種々の処理を行う。
CPU11は、通信部13によりICカード2へ命令(コマンド)を送信する機能、ICカード2から受信したデータを基に種々の処理を行う機能などを有する。たとえば、CPU11は、通信部13を介してICカード2にデータの書き込み命令を送信することによりICカード2内の不揮発性メモリにデータを書き込む制御を行う。また、CPU11は、ICカード2に読み取り命令(リードコマンド)を送信することによりICカード2からデータを読み出す制御を行う。
メモリ12は、ICカード処理端末1で利用される制御プログラム及び制御データなどを格納するメモリである。メモリ12は、不揮発性メモリ及び揮発性メモリなどを備える。メモリ12は、たとえば、RAM、ROM、EEPROM、又はフラッシュメモリなどで構成されてもよい。
メモリ12は、ICカード2で管理されるファイルに関連するデータ(関連データ)を記憶する記憶領域12aを有する。例えば、記憶領域12aに記憶する関連データは、ICカード処理端末1がファイルID(端末側ファイルID)を付与して管理するファイルとしてICカード処理端末1が保存する。また、記憶領域12aに記憶する関連データは、ICカード処理端末1からのコマンドに対するICカード2の処理でアクセス対象となるファイルに関連するデータであって良い。記憶領域12aに記憶するデータとしては、ICカード2の利用者の個人情報などが想定される。ただし、記憶領域12aに記憶するデータは、特定の内容に限定されるものではない。
本実施形態の説明では、記憶領域12aに記憶する関連データは、あらかじめメモリ12に格納されているものとする。記憶領域12aに関連データを書き込む手順及び時期などは、特定の構成に限定されるものではない。
なお、ICカード2で管理されるファイルに関連するデータ(関連データ)は、ICカード処理端末がアクセスできる状態で保存されるものであれば良く、メモリ12内に記憶領域12a以外に記憶されるようにしても良い。たとえば、関連データは、ICカード処理端末に接続した第3の装置に保存しても良い。この場合、ICカード処理端末は、ICカードからの関連データ読み出し命令を受けると、第3の装置から関連データを読み出してICカードに送信するようにする。
また、記憶領域12aに記憶する関連データは、ICカード2で復号化される暗号データである。記憶領域12aに関連データとして記憶する暗号データは、ICカード2が保持する鍵(鍵情報)などを用いて復号化され、ICカード処理端末1では復号化することができないデータである。つまり、ICカード処理端末1は、メモリ12の記憶領域12aに記憶した暗号データを復号化するための情報(鍵)を保持しない。これにより、本ICカードシステムとしては、ICカード処理端末1に不正にアクセスされた場合であっても、記憶領域12aに記憶した暗号データが復号化されることが防止できる。
通信部13は、ICカード2との通信を行うためのインターフェース装置である。通信部13は、ICカード2のコンタクト部と物理的かつ電気的に接続するための接触部などにより構成される。なお、ICカード2が非接触式のICカードである場合、通信部13は、非接触でICカード2との通信を行うインターフェース装置により構成する。
次に、ICカード2の構成について説明する。
ICカード2は、ICカード処理端末1などの外部装置から電力及び動作クロックなどの供給を受けて活性化される(動作可能な状態になる)。本実施形態の説明では、ICカード2は、接触型のインターフェースによりICカード処理端末1と接続される接触式のICカードであることを想定するものとする。ICカード2が接触式のICカードである場合、ICカード2は、通信インターフェースとしてのコンタクト部を介してICカード処理端末1からの動作電力及び動作クロックの供給を受けて活性化される。
次に、ICカード2の構成例について説明する。
ICカード2は、プラスチックなどで形成されたカード状の本体Cを有する。ICカード2は、本体C内にモジュールMが内蔵されている。モジュールMは、1つまたは複数のICチップCaと通信用の外部インターフェース(UART)とが接続された状態で一体的に形成され、ICカード2の本体C内に埋設されている。
また、ICカード2は、図1に示すように、CPU21、ROM22、RAM23、NVM24、及びUART25などを備えている。これらの各部は、システムバス26を介して互いに電気的に接続されている。1つ又は複数のICチップCaは、CPU21、ROM22、RAM23、及びNVM24により構成される。ICチップCaは、UART25に接続された状態でモジュールMを構成している。
CPU21は、ICカード2全体の制御を司る制御部として機能する。CPU21は、ROM22あるいはNVM24に記憶されている制御プログラム及び制御データに基づいて種々の処理を行う。CPU21は、プログラムを実行することにより、ICカード2の基本的な動作制御およびICカード2の運用形態に応じた種々の処理を行う。なお、ICカード2の動作制御および処理などの各種の機能のうちの一部は、ハードウエア回路により実現されるものであっても良い。
ROM22は、予め制御用のプログラム及び制御データなどを記憶する不揮発性のメモリである。ROM22は、製造段階で制御プログラム及び制御データなどを記憶した状態でICカード2に組み込まれる。即ち、ROM22に記憶される制御プログラム及び制御データは、予めICカード2の仕様に応じて組み込まれる。
RAM23は、揮発性のメモリである。RAM23は、CPU21の処理中のデータなどを一時的に格納する。たとえば、RAM23は、受信用バッファ、計算用バッファ、送信用バッファなどを備える。受信用バッファとしては、UART25を通じてICカード処理端末1から送信された命令を保持する。計算用バッファとしては、CPU21が種々の計算をするため一時的な結果を保持する。送信用バッファとしては、UART25を通じてICカード処理端末1に送信するためのデータを保持する。たとえば、CPU21は、受信用バッファに保持した命令を解釈し、命令に応じた処理を計算バッファを用いて実行し、実行した処理の結果を送信用バッファに格納する。また、RAM23には、当該ICカード2におけるプロアクティブセッション(後述する)の状態を示す情報を格納する状態テーブル23aが設けられる。
NVM24は、データの書き込み及び書き換えが可能な不揮発性のメモリである。NVM24は、例えば、EEPROMあるいはフラッシュメモリなどにより構成される。NVM24は、ICカード2の運用用途に応じて制御プログラム、アプリケーション、及び種々のデータを格納する。NVM24は、所定の管理形態により管理される種々のファイルによりデータを記憶する。たとえば、NVM24には、階層構造で管理される、MF(マスターファイル)、DF(デディケイテッドファイル)、および、EF(エレメンタリーファイル)などの各ファイルを記憶する。また、NVM24は、各ファイルの定義情報などを記憶するファイルテーブル24aを有する。また、NVM24は、外部装置としてのICカード処理端末1が保存する暗号データを復号化するための鍵情報(鍵)を記憶する記憶領域24bも有する。
UART25は、ICカード処理端末1の通信部13との通信を行うためのインターフェースである。たとえば、ICカード2が接触式ICカードである場合、UART25は、ICカード処理端末1の通信部13と物理的かつ電気的に接触して信号の送受信を行うための通信制御部とコンタクト部とにより構成される。
なお、ICカード2は、非接触型の通信方式によりICカード処理端末1と接続するものであっても良い。ICカード2が非接触式のICカードである場合、UART25は、ICカード処理端末1の通信部13と非接触でデータの送受信を行う通信制御部及びアンテナなどにより構成される。
次に、ICカード2のNVM24に記憶されるファイルについて説明する。
NVM24に記憶される各ファイルは、ファイルの定義情報と定義情報によって定義されるデータエリアのデータ(実データ)とにより構成される。NVM24は、システム領域とユーザ領域とを有する。ファイルの定義情報は、NVM24のシステム領域に記憶され、ファイルのデータエリアは、NVM24のユーザ領域に記憶される。すなわち、各ファイルは、NVM24において、システム領域内の定義情報と、定義情報によって定義されるユーザ領域内のデータエリアのデータとから構成される。
NVM24のシステム領域に記憶されるファイルの定義情報は、たとえば、ファイルを特定するための識別情報としてのファイルID、当該ファイルのデータエリアの先頭アドレスを示すアドレス情報、及び、データエリアのサイズを示すサイズ情報などを含む。また、NVM24のユーザ領域に設けられるデータエリアは、定義情報によって定義され、当該ファイルの実データが格納されるエリアである。また、NVM24のシステム領域は、複数のファイルに対する複数の定義情報を一括して管理するファイルテーブル24aを有する。
たとえば、ファイルIDにより指定されるファイルを読み出す場合、CPU21は、指定されたファイルIDに基づいてシステム領域にあるファイルテーブル24aを検索し、当該ファイルの定義情報を読み込み、読み込んだ定義情報に基づいてユーザ領域にある当該ファイルのデータエリア(例えば、先頭アドレスおよびデータサイズ)を特定し、特定したデータエリアからファイルの実データを読み出す。
図2は、本実施形態に係るICカード2のNVM24におけるシステム領域に格納されているファイルテーブル24aの構成例を示す図である。
ファイルテーブル24aは、ファイルの定義情報として、ファイルID、アドレス情報、サイズ情報、及び、端末側ファイルIDを格納する。
ファイルIDは、当該ファイルを特定するためのユニークな識別情報である。アドレス情報とサイズ情報とは、当該ファイルのデータエリアを特定するための情報である。アドレス情報は、ユーザ領域における当該ファイルのデータエリアの先頭アドレスを示す情報である。サイズ情報は、ユーザ領域における当該ファイルのデータエリアのサイズを示す情報である。端末側ファイルIDは、当該ファイルの実データをICカード処理端末1が保存している場合に設定される情報である。端末側ファイルIDは、ICカード処理端末1が保存している当該ファイルの実データを格納したファイルを特定するためのユニークな識別情報である。
ファイルテーブル24aは、データエリアがNVM24内のユーザ領域に存在しないファイル(実データがデータエリアに存在しないファイル)のアドレス情報としては、ファイルのアドレスに使用できない値を格納する。アドレスに使用できない値とは、たとえば、NVM24の最終アドレスの値よりも大きな値である。図2に示す例では、アドレスに使用できない値として、「0xFFFF」を格納する。つまり、図2に示すファイルテーブル24aの例では、NVM24の最終アドレスが「0xFFFF」よりも小さいことを前提として、データエリアがNVM24内のユーザ領域に存在しないファイルのアドレス情報は「0xFFFF」とする。
また、図2に示すファイルテーブル24aの例では、データエリアがNVM24内のユーザ領域に存在しないファイルについては、端末側ファイルIDとして、当該ファイルの実データに関連する関連データ(暗号データ)を格納したICカード処理端末1が保存しているファイルを特定する情報を格納する。なお、端末側ファイルIDは、ICカード処理端末1が管理するファイルを特定できる情報であれば良い。例えば、ICカード2内のファイルのファイルIDとそのファイルに対応するICカード処理端末1が保存するファイル(暗号データを記憶したファイル)のファイルID(端末側ファイルID)とは、同一であっても良い。
図2に示すファイルテーブル24aにおいて、ICカード処理端末1は、アドレス情報が「0xFFFF」に設定されたファイルの実データに関連する関連データとして、ICカード2が復号化できる暗号データを端末側ファイルIDが示すファイルに格納する。言い換えれば、ファイルテーブル24aにおける端末側ファイルIDは、ファイルIDが示すファイルの実データを暗号化した状態で格納するICカード処理端末1が保存するファイルのファイルIDである。
また、図2に示すファイルテーブル24aの例では、ファイルIDが「0x0001」であるファイル(即ち、「EF #1」)は、アドレス情報が「0x0123」、かつ、サイズ情報が「0x0045」であることが定義情報として定義されている。当該定義情報のファイル(ファイルIDが「0x0001」のファイル)は、データエリアがユーザ領域のアドレス「0x0123」から開始され、当該データのサイズが「0x0045」であることを示している。
また、ファイルIDが「0x0002」であるファイル(即ち、「EF #2」)は、アドレス情報が「0xFFFF」、かつ、ファイルサイズ「0x0065」であることが定義情報として定義されている。アドレス情報が「0xFFFF」(NVM24内のユーザ領域以外のアドレス)であるので、ファイルIDが「0x0002」のファイルのデータエリアは、NVM24内のユーザ領域には存在しない。また、ファイルIDが「0x0002」のファイルは、端末側ファイルIDが「0x0102」に設定されている。したがって、図2に示す例では、ファイルIDが「0x0002」であるファイル(即ち、「EF #2」)の実データを暗号化した暗号データはICカード処理端末1にファイルID(端末側ファイルID)が「0x0102」のファイル(即ち、「EF #102」)として保存されているものと判断できる。
また、NVM24は、ICカード処理端末1が保存している暗号データを復号化するための鍵を記憶する記憶領域24bを有する。記憶領域24bに記憶される鍵は、ICカード処理端末1が記憶領域12aに保存している暗号データ(図2に示す例では、端末側ファイルIDが「0x0102」のファイルに格納したデータ)を復号化するための鍵である。記憶領域24bに記憶される鍵は、ICカード2で定義されるファイルの実データを暗号化するのに利用した暗号化方法に対応する鍵である。また、ICカード処理端末1が保存する暗号データを復号化するための鍵は、ICカード処理端末1には保存されない。ICカード処理端末1が保存する暗号データを復号化するための鍵は、ICカード2内で暗号データを復号化できるものであれば良く、特定の構成に限定されるものではない。
次に、ICカード2におけるプロアクティブセッションの状態管理について説明する。
本実施形態に係るICカード処理システムでは、ICカード2がICカード処理端末1へ処理を要求し、ICカード処理端末1がICカード2からの要求に応じた処理を実行する機能として、プロアクティブセッションの機能を有する。プロアクティブセッションは、たとえば、ICカード2がICカード処理端末1へコマンド(プロアクティブコマンド)を送信し、ICカード処理端末1からのレスポンスを受信するまでの一連の処理である。プロアクティブコマンドについては、後に詳述する。
ICカード2は、プロアクティブセッション中であるか否か、プロアクティブセッション中のいかなる段階にあるかを示す情報をRAM23の状態テーブル23aに格納する。ICカード2は、プロアクティブの状態を示す情報をRAM23の状態テーブル23aに格納することにより、現在プロアクティブセッションのいかなる段階であるかを把握(管理)し、プロアクティブセッションの段階に応じた処理を行う。
図3は、ICカード2におけるプロアクティブセッションの状態を示す情報の設定例を示す図である。
状態「Q1」は、プロアクティブコマンドを生成していない状態である。即ち、状態Q1は、プロアクティブセッションが開始されていないことを示している。また、状態Q1では、ICカード2は、プロアクティブセッションの状態を示す値として「0x12」をRAM23に設けた状態テーブル23aに格納する。また、ICカード2は、活性化直後の初期状態では状態Q1となっているものとする。
状態「Q2」は、ICカード2がプロアクティブコマンドを生成し、生成したプロアクティブコマンドの取出し要求を外部装置(即ち、ICカード処理端末1)へ送信していない状態である。即ち、状態Q2は、プロアクティブセッションが開始され、ICカードがプロアクティブコマンドを生成したが、外部装置へ取出しの要求を送信していない状態である。また、状態Q2では、ICカード2は、プロアクティブセッションの状態を示す値として「0x24」をRAM23に設けた状態テーブル23aに格納する。
状態「Q3」は、プロアクティブコマンドを生成し、生成したプロアクティブコマンドの取出し要求を外部装置(ICカード処理端末1)へ送信した状態である。即ち、状態Q3は、プロアクティブセッションが開始された後、ICカード2がプロアクティブコマンドを生成し、生成したプロアクティブコマンドの取出しの要求を外部装置へ送信済みの状態である。また、状態Q3では、ICカード2は、プロアクティブセッションの状態を示す値として「0x48」をRAM23に設けた状態テーブル23aに格納する。
状態「Q4」は、外部装置からの取出し要求に応じたプロアクティブコマンドの送信が終了し、外部装置からプロアクティブコマンドに対する処理結果である応答(レスポンス)を待っている状態である。即ち、状態Q4は、プロアクティブセッションにおいて生成したプロアクティブコマンドを外部装置へ送信した後、送信したプロアクティブコマンドに対する応答を待っている状態である。また、状態Q4では、ICカード2は、プロアクティブセッションの状態を示す値として「0x81」をRAM23に設けた状態テーブル23aに格納する。
次に、ICカード処理システムにおけるプロアクティブセッションの処理の流れを説明する。
図4は、本実施形態に係るICカード処理システムにおけるプロアクティブセッションの処理の流れを概略的に説明するための図である。図4に示す処理例は、図2に示すファイルテーブル24aにおけるファイルID「0x0002(EF #2)」のファイルに対する読出処理の流れを想定したものである。このため、以下の説明も、図2に示すファイルテーブル24aにおけるファイルID「0x0002(EF #2)」のファイルに対する読取処理を想定しつつ説明するものとする。
まず、ICカード処理端末1のCPU11は、ファイルIDが「0x0002」(即ち、「EF #2」)のファイルの読取をICカード2に要求するリードコマンド(READ EF #2)を生成する。リードコマンドを生成すると、CPU11は、通信部13を通じて生成したリードコマンドをICカード2へ送信する(ステップS1)。
ICカード処理端末1からのリードコマンドをUART25により受信すると、ICカード2のCPU21は、リードコマンドで指定される読取対象ファイルのファイルIDを抽出する。図4に示す処理例では、リードコマンドが読取対象に指定するファイルのファイルIDは、「0x0002」である。
リードコマンドから読取対象ファイルのファイルIDを抽出すると、CPU21は、ファイルテーブル24aから抽出したファイルIDに対応する定義情報を取得する。図2に示すファイルテーブル24aの例では、ファイルID「0x0002」に対応する定義情報は、アドレス情報が「0xFFFF」、サイズ情報が「0x0067」、端末側ファイルIDが「0x0102」である。アドレス情報が「0xFFFF」である場合、CPU21は、読取対象ファイルのデータエリアがNVM24のユーザ領域にない(つまり、「EF #2」のファイルの実データはICカード2内に格納していない)と判定する。
読取対象ファイルのデータエリアがNVM24のユーザ領域にないと判定すると、CPU21は、「EF #2」のファイルをICカード処理端末1から取得するため、プロアクティブセッションを開始する。CPU21は、プロアクティブセッションによって、ICカード2の「EF #2」のファイルに対応するICカード処理端末1の「EF #102」のファイルから暗号データを取得する処理を行う。
すなわち、読取対象ファイルのデータエリアがNVM24のユーザ領域にないと判定すると、CPU21は、プロアクティブコマンドを生成する(ステップS2)。プロアクティブコマンドとは、ICカード2がICカード処理端末1へ処理を要求するコマンドである。たとえば、ICカード2は、プロアクティブコマンドをICカード処理端末1へ送信することにより、ICカード処理端末1から必要なファイルを取得することができる。ただし、ICカード2は、上位装置としてのICカード処理端末1からのコマンドを受けて動作するため、プロアクティブコマンドをICカード2から一方的に任意のタイミングで送信することはできない。このため、ICカード2は、リードコマンドに対するレスポンスとしてプロアクティブコマンドの取出しを要求した後、ICカード処理端末1からのプロアクティブコマンドの送信要求コマンドに応じて当該プロアクティブコマンドを送信する。
図4に示す処理例では、読取対象ファイルのファイルID「EF #2」に対応する端末側ファイルIDが「0x0102」であるため、CPU21は、「EF #102」(即ち、ファイルID「EF #2」の実データを暗号化した暗号データ)の取得(読取)をICカード処理端末1に要求するプロアクティブコマンド(READ EF #102)を生成する。
図5は、本実施形態に係るICカード2で生成されるプロアクティブコマンドの例を示す図である。
図5に示すように、プロアクティブコマンドは、識別子(Tag)、データ長(Length)、値(Value)により構成されるTLV形式のデータ(TLVデータ)である。また、図5に示す例では、プロアクティブコマンドは、入れ子構造(親のTLVデータの値(Value)の中に、1又は複数のTLVデータが含まれる構造)になっている。プロアクティブコマンドの値(Value)は、「Command detail TLV」、「Device identities TLV」及び「C−APDU TLV」を格納する。
「Command detail TLV」は、プロアクティブコマンドの種類がPERFORM CARD APDUであることを示している。「Device identities TLV」は、ICカード2からICカード処理端末1に向けてプロアクティブコマンドが送信されていることを示している。「C−APDU TLV」は、ICカード処理端末1から取得するファイルを示す情報が格納されている。
なお、プロアクティブコマンドの構成は、特定の構成に限定されるものではない。また、プロアクティブコマンドは、複数個生成されてもよい。たとえば、リードコマンドで指定されるファイルが複数個であり、それらのファイルがICカード2内に存在しない場合、CPU21は、それらの各ファイルを読み出すための複数のプロアクティブコマンドを生成しても良い。さらには、1つのプロアクティブコマンド中に複数の読み出し命令を格納するようにしても良い。これは、たとえば、図5に示す構成例において、C-APDU TLVを複数含め、その中に読み出し対象を格納することにより実現できる。
また、コマンドで指定された1つのファイルがICカード2内に存在しない場合であっても、当該ファイルの実データに関連する関連データ(暗号データ)が複数のファイルに分割されてICカード処理端末1に保存されていることもありうる。このような場合、ファイルテーブル24aは、1つのファイルに対して複数個の端末側ファイルIDを格納するようにすれば良い。この場合、CPU21は、ICカード処理端末1内の複数のファイルをそれぞれ読み出すためのプロアクティブコマンドを複数個生成するようにしても良い。
上記のようなプロアクティブコマンドを生成すると、CPU21は、生成したプロアクティブコマンドをRAM23に格納する。なお、CPU21は、生成したプロアクティブコマンドをNVM24に格納してもよい。
生成したプロアクティブコマンドをRAM23に格納すると、CPU21は、ICカード2が「Q2」の状態であることを示す情報(0x24)を状態テーブル23aにセットし、プロアクティブセッションを開始すること(あるいは、プロアクティブコマンドが存在すること)を示すレスポンスデータ(たとえば、ステータスワード(SW)=91xx(xxは、プロアクティブコマンドのバイト数))をICカード処理端末1へ送信する(ステップS3)。プロアクティブセッションを開始することを示すレスポンスデータをICカード処理端末1へ送信すると、CPU21は、ICカード2が「Q3」の状態であることを示す情報(0x48)をRAM23の状態テーブル23aにセットする。
なお、プロアクティブセッションを開始することを示すレスポンスデータは、ICカード処理端末1へのプロアクティブコマンドの取出し要求(FETCHコマンドの送信要求)でもある。即ち、プロアクティブセッションを開始することを示すレスポンスデータを送信すると、CPU21は、ICカード処理端末1へのプロアクティブコマンドの取出しを要求したこととなる。
ICカード処理端末1は、通信部13によりICカード2からのプロアクティブセッションを開始することを示すレスポンスデータを受信する。プロアクティブセッションを開始することを示すレスポンスデータを受信すると、CPU11は、当該ICカード2からのプロアクティブコマンドが受信(実行)可能な状態であるか否かを判断する。プロアクティブコマンドが受信(実行)可能な状態であれば、CPU11は、通信部13によりICカード2へプロアクティブコマンドの送信を要求する送信要求コマンド(FETCHコマンド)を送信する(ステップS4)。
ICカード2は、UART25を通じてコマンド送信要求コマンド(FETCHコマンド)を受信する。FETCHコマンドを受信すると、CPU21は、RAM23に格納されているプロアクティブコマンドをUART25によりICカード処理端末1へ送信する(ステップS5)。RAM23に格納されているプロアクティブコマンドをICカード処理端末1へ送信すると、CPU21は、ICカード2が「Q4」の状態であることを示す情報(0x81)をRAM23の状態テーブル23aにセットする。
通信部13によりICカード2からのプロアクティブコマンドを受信すると、ICカード処理端末1のCPU11は、プロアクティブコマンドに応じた処理を実行する(ステップS6)。ここでは、ICカード処理端末1は、ICカード処理端末1が保存しているファイルID(EF #102)のファイルのデータを読み出すことを要求するプロアクティブコマンドをICカード2から受信する。
このようなプロアクティブコマンドを受信すると、CPU11は、受信したプロアクティブコマンドからファイルIDを抽出し、抽出したファイルID(EF #102)のファイルのデータをメモリ12から読み出す。ここでは、ファイルID「EF #102」のデータは、ICカード2内のファイルID「EF #2」の実データを暗号化した暗号データである。ファイル(EF #102)に格納されている暗号データをメモリ12から読み出すと、CPU11は、当該暗号データを含む端末応答コマンドを生成し、生成した端末応答コマンドを通信部13によりICカード2へ送信する。
端末応答コマンドは、識別子(Tag)、データ長(Length)、値(Value)により構成されるTLV形式のデータ(TLVデータ)である。また、端末応答コマンドは、入れ子構造(親のTLVデータの値(Value)の中に、1又は複数のTLVデータが含まれる構造)になっている。
図6は、端末応答コマンドのValue部の例を示す図である。
端末応答コマンドのValue部は、「Command detail TLV」、「Device identities TLV」、「Result TLV」及び「R−APDU TLV」を格納する。
「Command detail TLV」は、プロアクティブコマンドの種類がPERFORM CARD APDUであることを示している。「Device identities TLV」は、ICカード処理端末1からICカード2に向けてレスポンスが送信されていることを示している。「Result TLV」は、プロアクティブコマンドの実行が正常に終了したことを示している。「R−APDU TLV」は、「EF #102」(即ち、暗号データ)を格納する。「R−APDU TLV」の末尾にある「9000」は、コマンドが正常に処理されたことを示すSWである。
端末応答コマンドを受信すると、ICカード2のCPU21は、端末応答コマンドから「EF #102」のデータ(即ち、リードコマンドで読取が要求された「EF #2」のデータを暗号化した暗号データ)を抽出する。端末応答コマンドから「EF #102」のデータ(即ち、暗号データ)を抽出すると、CPU21は、抽出した暗号データを、NVM24の記憶領域24bに格納されている鍵を使用して復号化する。復号化の方法は、特定の方法に限定されるものではない。
端末応答コマンドに含まれる暗号データを復号化すると、CPU21は、復号化したデータ(即ち、リードコマンドで読取を要求した「EF #2」のデータ)及びプロアクティブセッションが終了したことを示すステータスワード(SW)(たとえば、「SW=9000」)を含むレスポンスデータを生成する。当該レスポンスデータを生成すると、CPU21は、生成したレスポンスデータをUART25によりICカード処理端末1へ送信する。生成したレスポンスデータをICカード処理端末1へ送信すると、CPU21は、ICカード2が「Q1」の状態であることを示す情報(0x12)をRAM23の状態テーブル23aにセットする。
当該レスポンスデータを受信すると、ICカード処理端末1のCPU11は、当該レスポンスデータから復号化されたデータ(即ち、ステップS1で送信したリードコマンドで読取を要求した「EF #2」の実データ)を抽出する。当該レスポンスデータから復号化されたデータ(即ち、「EF #2」の実データ)を抽出すると、CPU21は、リードコマンド処理を終了する。
なお、プロアクティブコマンドが複数個ある場合、ICカード2のCPU21は、ICカード処理端末1から受信した暗号データを復号化し、復号化したデータとプロアクティブセッション中であることを示すステータスワード(たとえば、「SW=91XX」)とを含むレスポンスデータを生成する。ICカード2のCPU21は、プロアクティブセッション中であることを示すステータスワードを含むレスポンスデータをICカード処理端末1へ送信する。これにより、ICカード処理端末1は、再び送信要求コマンド(FETCHコマンド)をICカード2へ供給することが可能となる。
この場合、CPU21は、プロアクティブセッション中であることを示すステータスワードを含むレスポンスデータを送信するとともに、ICカード2がQ3の状態であることを示す情報(0x48)を状態テーブル23aにセットし、再度、送信要求コマンド(FETCHコマンド)待ちの状態となる。ICカード2のCPU21は、全てのプロアクティブコマンドを送信するまで、上記の動作を繰り返す。
以上の処理によって、ICカード2は、ICカード2の外部装置であるICカード処理端末1が保存している暗号データをICカード処理端末1から取得し、取得した暗号データを復号化し、復号化したデータをICカード処理端末1へ送信することができる。このように、データを外部装置に格納することにより、ICカード2は、内部メモリのデータ容量を節約することができる。また、ICカード2を紛失した場合であっても、データ本体は暗号化した状態でICカード処理端末が保存しているため、紛失したICカード2からデータが流出することが防止できる。
また、暗号データと鍵とをICカード処理端末1とICカード2とで別々に管理することにより、ICカード処理端末1又はICカード2のどちらか一方に不正にアクセスされた場合であっても、データを読み出すことがでないようにできる。また、ICカード2が元のデータと当該データを暗号化した暗号データとを紐づけるファイルテーブルを管理することにより、ICカード処理端末1に不正にアクセスされた場合であっても、ICカード処理端末1内に格納されている暗号データがいかなるデータを暗号化したデータかを知ることが困難であるため、セキュリティ性を向上できる。
次に、ICカード2におけるコマンド処理の動作について説明する。
図7は、ICカード2におけるコマンド処理の動作例について説明するためのフローチャートである。
まず、ICカード2のCPU21は、UART25によりICカード処理端末1からのコマンドを受信する(ステップ11)。UART25によりコマンドを受信すると、CPU21は、受信したコマンドの内容を解析し、コマンドに応じた処理を行う。
たとえば、CPU21は、受信したコマンドがリードコマンドであると判定した場合(ステップ12、YES)、CPU21は、指定されたファイルのデータを読み出すためのリードコマンド処理を行う(ステップ13)。また、受信したコマンドがプロアクティブコマンドの送信を要求する送信要求コマンド(FETCHコマンド)であるであると判定した場合(ステップ14、YES)、CPU21は、プロアクティブコマンドを送信するための処理(プロアクティブコマンドの送信処理)を行う(ステップ15)。また、受信したコマンドが端末応答コマンドであると判定した場合(ステップ16、YES)、CPU21は、端末応答コマンド処理を行う(ステップ17)。
なお、リードコマンド処理、プロアクティブコマンドの送信処理、および、端末応答コマンド処理については、後述する。
また、受信したコマンドがリードコマンド、FETCHコマンド或いは端末応答コマンドでないと判定した場合(ステップ16、NO)、CPU21は、受信したコマンドに応じた処理を実行し、実行した処理結果を含む当該コマンドに対するレスポンスデータをICカード処理端末1へ送信する(ステップ18)。
次に、ICカード2におけるリードコマンド処理について説明する。
図8は、ICカード2におけるリードコマンド処理の動作例を説明するためのフローチャートである。
リードコマンドを受信すると、ICカード2のCPU21は、リードコマンド内に格納されている読取対象とするファイルを指定するファイルIDを抽出する(ステップ21)。リードコマンド内に格納されている読取対象ファイルのファイルIDを抽出すると、CPU21は、ファイルテーブル24aから読取対象ファイルのファイルIDに対応するアドレス情報を取得する(ステップ22)。ファイルテーブル24aから当該ファイルIDに対応するアドレス情報を取得すると、CPU21は、取得したアドレス情報の値が「0xFFFF」であるか判定する(ステップ23)。
取得したアドレス情報が「0xFFFF」であると判定した場合(ステップ23、YES)、CPU21は、RAM23内の状態テーブル23aを参照して、ICカード2が「Q1」の状態であるか否かを判定する(ステップ24)。例えば、CPU21は、図3の設定例に従えば、状態テーブル23aにおけるICカードの状態を示す値が「0x12」であるか判定する。
ICカード2が「Q1」の状態であると判定すると(ステップ24、YES)、CPU21は、ファイルテーブル24aから読取対象ファイルに対応する端末側ファイルIDを取得する。ファイルテーブル24aから読取対象ファイルに対応する端末側ファイルIDを取得すると、CPU21は、当該端末側ファイルIDのファイルをICカード処理端末1から取得するためのプロアクティブコマンドを生成する(ステップ25)。当該プロアクティブコマンドを生成すると、CPU21は、生成したプロアクティブコマンドをRAM23(或いはNVM24でも良い)に格納する。
生成したプロアクティブコマンドをRAM23に格納すると、CPU21は、ICカード2を「Q2」の状態にセットする(ステップ26)。例えば、CPU21は、状態テーブル23aの値を「0x24」に書き換える。
ICカード2を「Q2」の状態にセットすると、CPU21は、プロアクティブセッションを開始することを示すレスポンスデータ(たとえば、ステータスワードとして「91xx」をセットしたレスポンスデータ)を生成し、生成したレスポンスデータをICカード処理端末1へ送信する(ステップ27)。
生成したレスポンスデータをICカード処理端末1へ送信すると、CPU21は、ICカード2を「Q3」の状態にセットする(ステップ28)。例えば、CPU21は、状態テーブル23aの値を「0x48」に書き換える。
ICカード2を「Q3」の状態にセットすると、CPU21は、リードコマンドの処理を終了し、ICカード処理端末1からのコマンドを受け付ける状態となる。
ICカード2が「Q1」の状態でないと判定した場合(ステップ24、NO)、CPU21は、ICカード2の状態が適切でないことを示すエラーレスポンスを生成し、生成したエラーレスポンスをICカード処理端末1へ送信する(ステップ29)。生成したエラーレスポンスをICカード処理端末1へ送信すると、CPU21は、ICカード2を「Q1」の状態にセットする(ステップ30)。例えば、CPU21は、状態テーブル23aの値を「0x12」に書き換える。ICカード2を「Q1」の状態にセットすると、CPU21は、リードコマンドの処理を終了し、ICカード処理端末1からのコマンドを受け付ける状態となる。
また、ファイルテーブル24aから取得したアドレス情報が「0xFFFF」でないと判定した場合(ステップ23、NO)、CPU21は、取得したアドレス情報とサイズ情報とが示すデータエリアに書き込まれているデータを読取る(ステップ31)。取得したアドレス情報が示すデータエリアに書き込まれているデータを読取ると、CPU21は、読み取ったデータを含むレスポンスデータを生成し、生成したレスポンスデータをICカード処理端末1へ送信する(ステップ32)。生成したレスポンスデータをICカード処理端末1へ送信すると、CPU21は、リードコマンドの処理を終了し、ICカード処理端末1からのコマンドを受け付ける状態となる。
次に、ICカード2におけるプロアクティブコマンドの送信要求コマンド(FETCHコマンド)に対応するプロアクティブコマンドの送信処理の例について説明する。
図9は、ICカード2における送信要求コマンド(FETCHコマンド)に対応する処理の動作例を説明するためのフローチャートである。
プロアクティブコマンドの送信要求コマンド(FETCHコマンド)を受信すると、CPU21は、ICカード2が「Q3」の状態であるか否かを判定する(ステップ41)。例えば、図3の設定例に従えば、CPU21は、状態テーブル23aにおけるICカード2の状態を示す値が「0x48」であるか否かを判定する。
ICカード2が「Q3」の状態であると判定した場合(ステップ41、YES)、CPU21は、RAM23に格納されているプロアクティブコマンドをICカード処理端末1へ送信する(ステップ42)。なお、プロアクティブコマンドがNVM24に格納されている場合、CPU21は、プロアクティブコマンドをNVM24から読み出し、読み出したプロアクティブコマンドをICカード処理端末1へ送信する。
プロアクティブコマンドをICカード処理端末1へ送信すると、CPU21は、ICカード2を「Q4」の状態にセットする(ステップ43)。例えば、CPU21は、状態テーブル23aの値を「0x81」に書き換える。ICカード2を「Q4」の状態にセットした場合、CPU21は、プロアクティブコマンドの送信処理を終了し、ICカード処理端末1からのコマンドを受け付ける状態となる。
また、ICカード2が「Q3」の状態でないと判定した場合(ステップ41、NO)、CPU21は、ICカード2の状態が適切でないことを示すエラーレスポンスを生成し、生成したエラーレスポンスをICカード処理端末1へ送信する(ステップ44)。生成したエラーレスポンスをICカード処理端末1へ返信すると、CPU21は、ICカード2の状態をQ1にセットする(ステップ45)。例えば、CPU21は、状態テーブル23aにおけるICカード2の状態を示す値を「0x12」に書き換える。ICカード2を「Q1」の状態にセットすると、CPU21は、コマンド送信要求コマンドの処理を終了し、ICカード処理端末1からのコマンドを受け付ける状態となる。
次に、端末応答コマンドに対応する処理について説明する。
図10は、ICカード2における端末応答コマンドに対応する処理の動作例を説明するためのフローチャートである。
端末応答コマンドを受信すると、CPU21は、当該ICカード2が「Q4」の状態であるか否かを判定する(ステップ51)。例えば、図3の設定例に従えば、CPU21は、状態テーブル23aにおけるICカード2の状態を示す値が「0x81」であるか判定する。
ICカード2が「Q4」の状態であると判定した場合(ステップ51、YES)、CPU21は、端末応答コマンドを確認する(ステップ52)。たとえば、CPU21は、端末応答コマンドのデータ部に「Result TLV」が存在するか、「Result TLV」がプロアクティブコマンドの正常終了を示しているか(たとえば、「Result TLV」のValue部の値が「00」であるか)、端末応答コマンドのデータ部に「R−APDU TLV」が存在するか、「R−APDU TLV」がコマンドの正常終了を示しているか(たとえば、「R−APDU TLV」の末尾が「9000」であるか)などを確認する。
端末応答コマンドの確認結果として端末応答コマンドが正常応答であると判定した場合(ステップ53、YES)、CPU21は、端末応答コマンドから暗号データ(たとえば、「R−APDU TLV」に格納されている暗号データ)を抽出する。端末応答コマンドから暗号データを抽出すると、CPU21は、NVM24の記憶領域24bに格納されている鍵を用いて抽出した暗号データを復号する(ステップ54)。
NVM24の記憶領域24bに格納されている鍵を用いて抽出した暗号データを復号すると、CPU21は、暗号データの復号化に成功したか判定する(ステップ55)。たとえば、CPU21は、復号化したデータが暗号ブロック長の倍数であるか、パッティング除去が正常に行われたかなどにより復号化の成否を判定する。
暗号データの復号化に成功したと判定すると(ステップ55、YES)、CPU21は、全てのプロアクティブコマンドが送信済みであるか否かを判定する(ステップ56)。例えば、CPU21が複数のプロアクティブコマンドを生成した場合、CPU21は、生成した複数のプロアクティブコマンドを全て送信したか判定する。
全てのプロアクティブコマンドが送信済みであると判定した場合(ステップ56、YES)、CPU21は、復号化したデータ及びプロアクティブセッションが終了したことを示すステータスワード(たとえば、「SW=9000」)を含むレスポンスデータを生成し、生成したレスポンスデータをICカード処理端末1へ送信する(ステップ57)。
生成したレスポンスデータをICカード処理端末1へ送信すると、CPU21は、ICカード2を「Q1」の状態にセットする(ステップ58)。例えば、CPU21は、状態テーブル23aにおけるICカード2の状態を示す値を「0x12」に書き換える。
ICカード2を「Q1」の状態にセットすると、CPU21は、端末応答コマンドに対する処理を終了し、ICカード処理端末1からのコマンドを受け付ける状態となる。
また、全てのプロアクティブコマンドを送信していないと判定した場合(ステップ56、NO)、CPU21は、復号化したデータ及びプロアクティブセッション中であることを示すステータスワード(たとえば、「SW=91xx」)を含むレスポンスデータを生成し、生成したレスポンスデータをICカード処理端末1へ送信する(ステップ59)。
生成したレスポンスデータをICカード処理端末1へ送信すると、CPU21は、ICカード2を「Q3」の状態にセットする(ステップ60)。例えば、CPU21は、状態テーブル23aにおけるICカード2の状態を示す値を「0x48」に書き換える。
ICカード2を「Q3」の状態にセットすると、CPU21は、端末応答コマンドに対する処理を終了し、ICカード処理端末1からのコマンドを受け付ける状態となる。
また、ICカード2が「Q4」の状態でないと判定した場合(ステップ51、NO)、CPU21は、ICカード2の状態が適切でないことを示すエラーレスポンスを生成し、生成したエラーレスポンスをICカード処理端末1へ送信する(ステップ61)。生成したエラーレスポンスをICカード処理端末1へ送信すると、CPU21は、ICカード2を「Q1」の状態にセットする(ステップ58)。例えば、CPU21は、状態テーブル23aにおけるICカード2の状態を示す値を「0x12」に書き換える。ICカード2を「Q1」の状態にセットすると、CPU21は、端末応答コマンドに対する処理を終了し、ICカード処理端末1からのコマンドを受け付ける状態となる。
また、端末応答コマンドの確認結果として端末応答コマンドが正常応答でないと判定した場合(ステップ53、NO)、CPU21は、端末応答コマンドが正常応答でないことを示すエラーレスポンスを生成し、生成したエラーレスポンスをICカード処理端末1へ送信する(ステップ61)。生成したエラーレスポンスをICカード処理端末1へ送信すると、CPU21は、ICカード2を「Q1」の状態にセットする(ステップ58)。例えば、CPU21は、状態テーブル23aにおけるICカード2の状態を示す値を「0x12」に書き換える。ICカード2を「Q1」の状態にセットすると、CPU21は、端末応答コマンドに対する処理を終了し、ICカード処理端末1からのコマンドを受け付ける状態となる。
また、暗号データの復号化に失敗したと判定した場合(ステップ55、NO)、CPU21は、暗号データの復号化に失敗したことを示すエラーレスポンスを生成し、生成したエラーレスポンスをICカード処理端末1へ送信する(ステップ61)。生成したエラーレスポンスをICカード処理端末1へ送信すると、CPU21は、ICカード2を「Q1」の状態にセットする(ステップ58)。例えば、CPU21は、状態テーブル23aにおけるICカード2の状態を示す値を「0x12」に書き換える。ICカード2を「Q1」の状態にセットすると、CPU21は、端末応答コマンドに対する処理を終了し、ICカード処理端末1からのコマンドを受け付ける状態となる。
以上の処理によれば、外部装置であるICカード処理端末が暗号化した状態でデータを格納しておき、ICカードは、必要に応じてプロアクティブセッションによりICカード処理端末から暗号化したデータを取得することができる。また、ICカードは、ICカード処理端末から取得した暗号データを復号化することができ、復号化したデータをICカード処理端末に送信することもできる。
なお、ICカード2の各動作例において、CPU21はエラーレスポンスを送信すると、ICカード2を「Q1」の状態にセットしたが、CPU21がエラーレスポンスを送信した後もICカード2の状態を変更しなくともよい。この場合、CPU21は、ICカード処理端末1からエラーが発生したコマンドが送信されるのを待ってもよい。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
1…ICカード処理端末(外部装置)、2…ICカード(携帯可能電子装置)、11…CPU、12…メモリ、13…通信部、14…システムバス、C…本体、Ca…ICチップ、M…モジュール、21…CPU、22…ROM、23…RAM、24…NVM、25…UART、26…システムバス。

Claims (7)

  1. 外部端末から与えられるコマンドに応じた処理を実行するICカードにおいて、
    前記外部端末とデータの送受信を行う通信手段と、
    定義情報によって定義されるデータを記録する記録手段と、
    前記通信手段により前記外部端末からコマンドを受信する受信処理手段と、
    前記受信処理手段により前記コマンドを受信した場合、前記コマンドの実行に必要なデータが前記記録手段内に存在するか判定する判定手段と、
    前記判定手段により前記データが前記記録手段内に存在しないと判定した場合、前記外部端末から前記データに関連する関連データを取得するセッションの開始を示すレスポンスを前記通信手段により前記外部端末へ送信する送信処理手段と、
    を備えるICカード。
  2. 前記送信処理手段が前記セッションの開始を示すレスポンスを前記外部装置に出力した後、前記データに関連する関連データを前記外部端末から取得するプロアクティブコマンドを前記外部端末へ送信する第2送信処理手段と、
    前記プロアクティブコマンドに対するレスポンスとして、前記関連データを含む端末応答コマンドを前記外部端末から受信する第2受信処理手段と、
    前記端末応答コマンドに対するレスポンスとして、前記コマンドの実行結果を出力する第3送信処理手段と、
    を備える前記請求項1に記載のICカード。
  3. 前記関連データは、前記データを暗号化した暗号データであり、
    さらに、前記暗号データを復号するための鍵を保存する保存手段と、
    前記保存手段に格納されている前記鍵を用いて前記端末応答コマンドに含まれる前記関連データとして暗号データを復号する復号手段と、
    を備える前記請求項1又は2に記載のICカード。
  4. さらに、前記送信処理手段が前記セッションの開始を示すレスポンスを出力した後、前記第2送信処理手段が前記プロアクティブコマンドを出力する前に、前記外部端末から前記プロアクティブコマンドの送信を要求するコマンド送信要求コマンドを受信する第3受信処理手段と、を備え、
    前記第2送信処理手段は、前記送信処理手段が前記セッションの開始を示すレスポンスを前記外部装置に出力した後、前記外部端末から前記プロアクティブコマンドの送信を要求する送信要求コマンドを受信したのに基づいて、前記プロアクティブコマンドを送信する、
    前記請求項2又は3に記載のICカード。
  5. 前記コマンドは、前記記録手段内のデータの読取を要求するリードコマンドである、
    前記請求項1乃至4のいずれか1項に記載のICカード。
  6. 外部端末から与えられるコマンドに応じた処理を実行するICカードにおいて、
    前記外部端末とデータの送受信を行う通信手段と、定義情報によって定義されるデータを記録する記録手段と、前記通信手段により前記外部端末からコマンドを受信する受信処理手段と、前記受信処理手段により前記コマンドを受信した場合、前記コマンドの実行に必要なデータが前記記録手段内に存在するか判定する判定手段と、前記判定手段により前記データが前記記録手段内に存在しないと判定した場合、前記外部端末から前記データに関連する関連データを取得するセッションの開始を示すレスポンスを前記通信手段により前記外部端末へ送信する送信処理手段と、を備えるモジュールと、
    前記モジュールを収納した本体と、
    を備えるICカード。
  7. 外部端末から与えられるコマンドに応じた処理を実行する携帯可能電子装置において、
    前記外部端末とデータの送受信を行う通信手段と、
    定義情報によって定義されるデータを記録する記録手段と、
    前記通信手段により前記外部端末からコマンドを受信する受信処理手段と、
    前記受信処理手段により前記コマンドを受信した場合、前記コマンドの実行に必要なデータが前記記録手段内に存在するか判定する判定手段と、
    前記判定手段により前記データが前記記録手段内に存在しないと判定した場合、前記外部端末から前記データに関連する関連データを取得するセッションの開始を示すレスポンスを前記通信手段により前記外部端末へ送信する送信処理手段と、
    を備える携帯可能電子装置。
JP2012184531A 2012-08-23 2012-08-23 Icカード、及び、携帯可能電子装置 Active JP5976458B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2012184531A JP5976458B2 (ja) 2012-08-23 2012-08-23 Icカード、及び、携帯可能電子装置
US13/799,770 US9779347B2 (en) 2012-08-23 2013-03-13 Smart card and portable electronic apparatus
EP13159147.1A EP2701110A1 (en) 2012-08-23 2013-03-14 Smart card with external memory

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012184531A JP5976458B2 (ja) 2012-08-23 2012-08-23 Icカード、及び、携帯可能電子装置

Publications (2)

Publication Number Publication Date
JP2014041552A true JP2014041552A (ja) 2014-03-06
JP5976458B2 JP5976458B2 (ja) 2016-08-23

Family

ID=48463684

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012184531A Active JP5976458B2 (ja) 2012-08-23 2012-08-23 Icカード、及び、携帯可能電子装置

Country Status (3)

Country Link
US (1) US9779347B2 (ja)
EP (1) EP2701110A1 (ja)
JP (1) JP5976458B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016001454A (ja) * 2014-05-20 2016-01-07 株式会社東芝 携帯可能電子装置、プログラム、端末および方法
JP2016206975A (ja) * 2015-04-23 2016-12-08 株式会社東芝 Icカード、携帯可能電子装置、icカード処理装置、及び、icカード処理システム

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104765999B (zh) * 2014-01-07 2020-06-30 腾讯科技(深圳)有限公司 一种对用户资源信息进行处理的方法、终端及服务器
CN111091379B (zh) * 2019-12-25 2023-04-18 飞天诚信科技股份有限公司 一种对智能卡分段操作的实现方法及系统
CN112698785B (zh) * 2020-12-10 2024-03-29 北京握奇智能科技有限公司 存储设备的数据更新方法

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2000026866A1 (en) * 1998-10-30 2000-05-11 Motus Technologies Inc. Secure memory expansion of an ic portable device
WO2002010889A2 (en) * 2000-07-28 2002-02-07 Sun Microsystems, Inc. Adding secure external virtual memory to smart cards
JP2003036424A (ja) * 2001-07-24 2003-02-07 Dainippon Printing Co Ltd マルチアプリケーションicカード
EP1643465A1 (en) * 2004-09-29 2006-04-05 Sony Corporation Information processing apparatus and method
JP2007066042A (ja) * 2005-08-31 2007-03-15 Felica Networks Inc アプリケーション提供システム,携帯端末装置,サーバ装置,アプリケーション提供方法およびコンピュータプログラム
JP2009152812A (ja) * 2007-12-20 2009-07-09 Hitachi Ltd 端末のユーザ識別情報転送による非携帯端末のネットワーク接続方法
JP2009528734A (ja) * 2006-03-03 2009-08-06 テレフオンアクチーボラゲット エル エム エリクソン(パブル) 加入者識別モジュール(sim)アプリケーション・ツールキットの改良されたテスト方法及びシステム

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001056848A (ja) * 1999-08-19 2001-02-27 Nec Corp Icコードのコマンド実行制御方法、icカード、icカードプログラムを記録した記録媒体
US6823417B2 (en) * 2001-10-01 2004-11-23 Hewlett-Packard Development Company, L.P. Memory controller for memory card manages file allocation table
JP4453238B2 (ja) * 2002-03-28 2010-04-21 日本電気株式会社 2重化プロセッサシステム
FR2842622B1 (fr) 2002-07-18 2004-09-24 Xiring Procede et equipement de transfert de donnees entre deux cartes a microcircuit
US20060169786A1 (en) * 2005-01-28 2006-08-03 Power Digital Card Co., Ltd. Manufacturing method of memory cards
JP2009223827A (ja) * 2008-03-18 2009-10-01 Toshiba Corp 情報記憶媒体及び情報記憶媒体処理装置
US8397084B2 (en) 2008-06-12 2013-03-12 Microsoft Corporation Single instance storage of encrypted data
JP5329884B2 (ja) 2008-09-18 2013-10-30 株式会社東芝 携帯可能電子装置および携帯可能電子装置におけるデータ処理方法
JP2010211516A (ja) 2009-03-10 2010-09-24 Toshiba Corp 携帯可能電子装置および携帯可能電子装置におけるアクセス制御方法
JP4834748B2 (ja) * 2009-03-10 2011-12-14 株式会社東芝 情報記憶媒体、媒体認証機器、媒体認証システム、及びicカード

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2000026866A1 (en) * 1998-10-30 2000-05-11 Motus Technologies Inc. Secure memory expansion of an ic portable device
WO2002010889A2 (en) * 2000-07-28 2002-02-07 Sun Microsystems, Inc. Adding secure external virtual memory to smart cards
JP2003036424A (ja) * 2001-07-24 2003-02-07 Dainippon Printing Co Ltd マルチアプリケーションicカード
EP1643465A1 (en) * 2004-09-29 2006-04-05 Sony Corporation Information processing apparatus and method
JP2007066042A (ja) * 2005-08-31 2007-03-15 Felica Networks Inc アプリケーション提供システム,携帯端末装置,サーバ装置,アプリケーション提供方法およびコンピュータプログラム
JP2009528734A (ja) * 2006-03-03 2009-08-06 テレフオンアクチーボラゲット エル エム エリクソン(パブル) 加入者識別モジュール(sim)アプリケーション・ツールキットの改良されたテスト方法及びシステム
JP2009152812A (ja) * 2007-12-20 2009-07-09 Hitachi Ltd 端末のユーザ識別情報転送による非携帯端末のネットワーク接続方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016001454A (ja) * 2014-05-20 2016-01-07 株式会社東芝 携帯可能電子装置、プログラム、端末および方法
JP2016206975A (ja) * 2015-04-23 2016-12-08 株式会社東芝 Icカード、携帯可能電子装置、icカード処理装置、及び、icカード処理システム

Also Published As

Publication number Publication date
JP5976458B2 (ja) 2016-08-23
US9779347B2 (en) 2017-10-03
EP2701110A1 (en) 2014-02-26
US20140054382A1 (en) 2014-02-27

Similar Documents

Publication Publication Date Title
US7469837B2 (en) Storage device
US7775423B2 (en) Portable electronic device and control method of portable electronic device
JP5976458B2 (ja) Icカード、及び、携帯可能電子装置
JP2004104539A (ja) メモリカード
US9183400B2 (en) IC card and IC card control method
KR101824249B1 (ko) 인증용 개인키를 내부적으로 생성하는 집적 회로 유형의 전자 소자 제어 방법
KR101783526B1 (ko) Ic 카드, 전자 장치 및 휴대 가능 전자 장치
JP5459845B2 (ja) 携帯可能電子装置、携帯可能電子装置の制御方法及びicカード
US8276188B2 (en) Systems and methods for managing storage devices
KR101530479B1 (ko) Ic 카드 및 휴대 가능 전자 장치
JP6499052B2 (ja) Icカード、icモジュール、及びプログラム
JP2011060136A (ja) 携帯可能電子装置、および、携帯可能電子装置におけるデータ管理方法
JP5932588B2 (ja) Icカード、携帯可能電子装置、及びicカード処理装置
JP4950730B2 (ja) 携帯可能電子装置、携帯可能電子装置におけるファイルアクセス方法およびicカード
JP5957347B2 (ja) Icカード、および携帯可能電子装置
JP7439847B2 (ja) 電子情報記憶媒体、鍵データ設定方法、及びプログラム
JP7438432B1 (ja) 電子情報記憶媒体、icチップ、icカード、レコード書き込み方法、及びプログラム
JP7452750B1 (ja) 電子情報記憶媒体、icチップ、icカード、公開鍵照合方法、及びプログラム
JP2008299416A (ja) 携帯可能電子装置、携帯可能電子装置におけるファイルアクセス方法およびicカード
US10068168B2 (en) IC card and IC module
JP6287284B2 (ja) Icチップ及びプログラム暗号化方法
JP2013191117A (ja) Icチップ、atr応答処理プログラム、及びatr応答方法
KR20120082778A (ko) 에스디 메모리 카드
JP2007206765A (ja) Icカード発行方法、icカード発行システムおよびicカード
JP2010170204A (ja) 携帯可能電子装置およびicカード

Legal Events

Date Code Title Description
RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20131219

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20131226

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20140109

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150306

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20151224

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160202

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160404

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20160621

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160720

R151 Written notification of patent or utility model registration

Ref document number: 5976458

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313114

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350