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

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

▶ 大日本印刷株式会社の特許一覧

特開2025-91715電子情報記憶媒体、ICチップ、ICカード、エラーコード応答方法、及びプログラム
<>
  • 特開-電子情報記憶媒体、ICチップ、ICカード、エラーコード応答方法、及びプログラム 図1
  • 特開-電子情報記憶媒体、ICチップ、ICカード、エラーコード応答方法、及びプログラム 図2
  • 特開-電子情報記憶媒体、ICチップ、ICカード、エラーコード応答方法、及びプログラム 図3
  • 特開-電子情報記憶媒体、ICチップ、ICカード、エラーコード応答方法、及びプログラム 図4
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2025091715
(43)【公開日】2025-06-19
(54)【発明の名称】電子情報記憶媒体、ICチップ、ICカード、エラーコード応答方法、及びプログラム
(51)【国際特許分類】
   G06K 19/073 20060101AFI20250612BHJP
   G06F 21/55 20130101ALI20250612BHJP
【FI】
G06K19/073 009
G06F21/55 320
【審査請求】未請求
【請求項の数】8
【出願形態】OL
(21)【出願番号】P 2023207136
(22)【出願日】2023-12-07
(71)【出願人】
【識別番号】000002897
【氏名又は名称】大日本印刷株式会社
(74)【代理人】
【識別番号】110000958
【氏名又は名称】弁理士法人インテクト国際特許事務所
(74)【代理人】
【識別番号】100120189
【弁理士】
【氏名又は名称】奥 和幸
(72)【発明者】
【氏名】小島 祥平
(57)【要約】
【課題】エラーの発生原因の特定を容易にすることが可能な電子情報記憶媒体、ICチップ、ICカード、エラーコード応答方法、及びプログラムを提供する。
【解決手段】ICチップ1は、外部からの所定のコマンドにAPDU応じた処理においてエラーが発生した場合に、当該エラーに対応するエラーコードをメモリに保存し、当該所定のコマンドAPDUに対するステータスワードSW1SW2の応答後に外部からの読み出しコマンドAPDUに応じて、当該エラーコードをメモリから読み出し、当該エラーコードを応答する。
【選択図】図4
【特許請求の範囲】
【請求項1】
外部からの所定のコマンドに応じた処理においてエラーが発生した場合に、コマンド種別が異なる複数のコマンド間で共通に用いられ且つ当該エラーの概要を示すステータスワードを応答する電子情報記憶媒体において、
前記エラーが発生した場合に、どのような処理においてどのようなエラーが発生したかを示すエラーコードをメモリに保存する保存手段と、
前記コマンドに対する前記ステータスワードの応答後に外部からの読み出しコマンドに応じて、前記エラーコードを前記メモリから読み出し、当該エラーコードを応答する応答手段と、
を備えることを特徴とする電子情報記憶媒体。
【請求項2】
前記電子情報記憶媒体は、どのような処理においてどのようなエラーが発生したかを示すエラーコードと当該エラーを回避するためのコマンドのコマンド識別情報との対応関係を規定する対応関係情報を予め記憶しており、
前記保存手段は、前記エラーが発生した場合に、前記対応関係情報を参照して、前記エラーコードに対応付けられた前記コマンド識別情報を特定し、当該エラーコードと当該特定されたコマンド識別情報とを対応付けてメモリに保存し、
前記応答手段は、前記読み出しコマンドに応じて、前記エラーコード及び前記コマンド識別情報を前記メモリから読み出し、当該エラーコード及び当該コマンド識別情報を応答することを特徴とする請求項1に記載の電子情報記憶媒体。
【請求項3】
前記保存手段は、前記ステータスワードの応答後に前記エラーコードをメモリに保存することを特徴とする請求項1に記載の電子情報記憶媒体。
【請求項4】
前記保存手段は、前記ステータスワードの応答後に前記エラーコード及び前記コマンド識別情報をメモリに保存することを特徴とする請求項2に記載の電子情報記憶媒体。
【請求項5】
外部からの所定のコマンドに応じた処理においてエラーが発生した場合に、コマンド種別が異なる複数のコマンド間で共通に用いられ且つ当該エラーの概要を示すステータスワードを応答するICチップにおいて、
前記エラーが発生した場合に、どのような処理においてどのようなエラーが発生したかを示すエラーコードをメモリに保存する保存手段と、
前記コマンドに対する前記ステータスワードの応答後に外部からの読み出しコマンドに応じて、前記エラーコードを前記メモリから読み出し、当該エラーコードを応答する応答手段と、
を備えることを特徴とするICチップ。
【請求項6】
外部からの所定のコマンドに応じた処理においてエラーが発生した場合に、コマンド種別が異なる複数のコマンド間で共通に用いられ且つ当該エラーの概要を示すステータスワードを応答するICカードにおいて、
前記エラーが発生した場合に、どのような処理においてどのようなエラーが発生したかを示すエラーコードをメモリに保存する保存手段と、
前記コマンドに対する前記ステータスワードの応答後に外部からの読み出しコマンドに応じて、前記エラーコードを前記メモリから読み出し、当該エラーコードを応答する応答手段と、
を備えることを特徴とするICカード。
【請求項7】
外部からの所定のコマンドに応じた処理においてエラーが発生した場合に、コマンド種別が異なる複数のコマンド間で共通に用いられ且つ当該エラーの概要を示すステータスワードを応答する電子情報記憶媒体により実行されるエラーコード応答方法であって、
前記エラーが発生した場合に、どのような処理においてどのようなエラーが発生したかを示すエラーコードをメモリに保存するステップと、
前記コマンドに対する前記ステータスワードの応答後に外部からの読み出しコマンドに応じて、前記エラーコードを前記メモリから読み出し、当該エラーコードを応答するステップと、
を含むことを特徴とするエラーコード応答方法。
【請求項8】
外部からの所定のコマンドに応じた処理においてエラーが発生した場合に、コマンド種別が異なる複数のコマンド間で共通に用いられ且つ当該エラーの概要を示すステータスワードを応答する電子情報記憶媒体に含まれるコンピュータを、
前記エラーが発生した場合に、どのような処理においてどのようなエラーが発生したかを示すエラーコードをメモリに保存する保存手段と、
前記コマンドに対する前記ステータスワードの応答後に外部からの読み出しコマンドに応じて、前記エラーコードを前記メモリから読み出し、当該エラーコードを応答する応答手段として機能させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、外部端末からのコマンドに応じてコマンド処理を実行し、当該コマンド処理を実行可能なIC(Integrated Circuit)チップ等の技術分野に関する。
【背景技術】
【0002】
近年、情報資産への脅威が増大しており機微な情報を扱う場合はセキュリティ対策を実施することを求められるようになっている。このようなセキュリティ対策には、暗号演算を実施可能なICチップからなるセキュアエレメントが利用されることが増えている。セキュアエレメントとそれを利用するシステムとの間との通信は、国際標準規格であるISO/IEC 7816-4で規定されているコマンドAPDU(Application Protocol Data Unit)、及びレスポンスAPDUを使用して実施されることが多い。ISO/IEC 7816-4では、セキュアエレメントで利用される一般的な機能のコマンドAPDUとレスポンスAPDUが定義されており、ISO/IEC 7816-4に則って作成されたセキュアエレメントでは共通のコマンドとして製造者等に依存せず利用可能である。
【0003】
また、ISO/IEC 7816-4には、セキュアエレメント内でエラーが発生した場合に、当該エラーの概要を示すステータスワードを含むレスポンスが外部端末へ返信されることが規定されている。このため、外部端末側では、セキュアエレメントからのステータスワードに従ってエラーに対する対応を図ることができる。関連技術として、特許文献1には、実行されたコマンドの種別を示す種別コードとレスポンスに対応する実行結果コードを含むコマンド履歴を格納することで事前に定められた内容のコマンド履歴の数が最大許容数を超えると、通常のユースケースから外れた使い方をされたと判定するICカードが開示されている。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2022-69184号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、ISO/IEC 7816-4によれば、エラーの概要を示すステータスワードは、大まかなくくりでしか用意されておらず、コマンド種別が異なる複数のコマンドAPDU間で共通に用いられるため、セキュアエレメントを利用するシステム開発者またはシステム利用者は、かかるステータスワードから、エラーの発生原因を厳密に特定できない(換言すると、どのような処理の実行においてどのようなエラーが発生したかを特定できない)という問題がある。そのため、システム開発者またはシステム利用者は発生したエラーの回避方法を推察することが困難である。
【0006】
そこで、本発明は、このような問題などに鑑みてなされたものであり、エラーの発生原因の特定を容易にすることが可能な電子情報記憶媒体、ICチップ、ICカード、エラーコード応答方法、及びプログラムを提供することを課題の一例とする。
【課題を解決するための手段】
【0007】
上記課題を解決するために、請求項1に記載の発明は、外部からの所定のコマンドに応じた処理においてエラーが発生した場合に、コマンド種別が異なる複数のコマンド間で共通に用いられ且つ当該エラーの概要を示すステータスワードを応答する電子情報記憶媒体において、前記エラーが発生した場合に、どのような処理においてどのようなエラーが発生したかを示すエラーコードをメモリに保存する保存手段と、前記コマンドに対する前記ステータスワードの応答後に外部からの読み出しコマンドに応じて、前記エラーコードを前記メモリから読み出し、当該エラーコードを応答する応答手段と、を備えることを特徴とする。
【0008】
請求項2に記載の発明は、請求項1に記載の電子情報記憶媒体において、前記電子情報記憶媒体は、どのような処理においてどのようなエラーが発生したかを示すエラーコードと当該エラーを回避するためのコマンドのコマンド識別情報との対応関係を規定する対応関係情報を予め記憶しており、前記保存手段は、前記エラーが発生した場合に、前記対応関係情報を参照して、前記エラーコードに対応付けられた前記コマンド識別情報を特定し、当該エラーコードと当該特定されたコマンド識別情報とを対応付けてメモリに保存し、前記応答手段は、前記読み出しコマンドに応じて、前記エラーコード及び前記コマンド識別情報を前記メモリから読み出し、当該エラーコード及び当該コマンド識別情報を応答することを特徴とする。
【0009】
請求項3に記載の発明は、請求項1に記載の電子情報記憶媒体において、前記保存手段は、前記ステータスワードの応答後に前記エラーコードをメモリに保存することを特徴とする。
【0010】
請求項4に記載の発明は、請求項2に記載の電子情報記憶媒体において、前記保存手段は、前記ステータスワードの応答後に前記エラーコード及び前記コマンド識別情報をメモリに保存することを特徴とする。
【0011】
請求項5に記載の発明は、外部からの所定のコマンドに応じた処理においてエラーが発生した場合に、コマンド種別が異なる複数のコマンド間で共通に用いられ且つ当該エラーの概要を示すステータスワードを応答するICチップにおいて、前記エラーが発生した場合に、どのような処理においてどのようなエラーが発生したかを示すエラーコードをメモリに保存する保存手段と、前記コマンドに対する前記ステータスワードの応答後に外部からの読み出しコマンドに応じて、前記エラーコードを前記メモリから読み出し、当該エラーコードを応答する応答手段と、を備えることを特徴とする。
【0012】
請求項6に記載の発明は、外部からの所定のコマンドに応じた処理においてエラーが発生した場合に、コマンド種別が異なる複数のコマンド間で共通に用いられ且つ当該エラーの概要を示すステータスワードを応答するICカードにおいて、前記エラーが発生した場合に、どのような処理においてどのようなエラーが発生したかを示すエラーコードをメモリに保存する保存手段と、前記コマンドに対する前記ステータスワードの応答後に外部からの読み出しコマンドに応じて、前記エラーコードを前記メモリから読み出し、当該エラーコードを応答する応答手段と、を備えることを特徴とする。
【0013】
請求項7に記載の発明は、外部からの所定のコマンドに応じた処理においてエラーが発生した場合に、コマンド種別が異なる複数のコマンド間で共通に用いられ且つ当該エラーの概要を示すステータスワードを応答する電子情報記憶媒体により実行されるエラーコード応答方法であって、前記エラーが発生した場合に、どのような処理においてどのようなエラーが発生したかを示すエラーコードをメモリに保存するステップと、前記コマンドに対する前記ステータスワードの応答後に外部からの読み出しコマンドに応じて、前記エラーコードを前記メモリから読み出し、当該エラーコードを応答するステップと、を含むことを特徴とする。
【0014】
請求項8に記載の発明は、外部からの所定のコマンドに応じた処理においてエラーが発生した場合に、コマンド種別が異なる複数のコマンド間で共通に用いられ且つ当該エラーの概要を示すステータスワードを応答する電子情報記憶媒体に含まれるコンピュータを、前記エラーが発生した場合に、どのような処理においてどのようなエラーが発生したかを示すエラーコードをメモリに保存する保存手段と、前記コマンドに対する前記ステータスワードの応答後に外部からの読み出しコマンドに応じて、前記エラーコードを前記メモリから読み出し、当該エラーコードを応答する応答手段として機能させることを特徴とする。
【発明の効果】
【0015】
本発明によれば、エラーの発生原因の特定を容易にすることができる。
【図面の簡単な説明】
【0016】
図1】ICチップ1のハードウェア構成例を示す図である。
図2】エラーコードと回避用INSとの対応関係を示す対応関係テーブルの一例を示す図である。
図3】メモリに対応付けられて保存されたエラーコードと回避用INSとの組の一例を示す図である。
図4】(A)は、所定のコマンドAPDUが受信された場合におけるICチップ1のCPU15により実行される処理の一例を示すフローチャートであり、(B)は、エラーが発生した後に読み出しコマンドAPDUが受信された場合におけるICチップ1のCPU15により実行される処理の一例を示すフローチャートである。
【発明を実施するための形態】
【0017】
以下、図面を参照して本発明の実施形態について詳細に説明する。
【0018】
[1.ICチップ1の構成及び機能]
先ず、図1を参照して、本実施形態に係るICチップ1の構成及び機能について説明する。ICチップ1は、例えば耐タンパ性を有するセキュアエレメントであり、本発明の電子情報記憶媒体の一例である。ICチップ1は、例えば、クレジットカード、キャッシュカード、またはマイナンバーカードなどのICカード、または、スマートフォンなどのモバイルデバイスに搭載される。スマートフォンなどのモバイルデバイスの場合、ICチップ1は、モバイルデバイスに着脱可能な小型ICカードに搭載されてもよいし、eUICC(Embedded Universal Integrated Circuit Card)としてモバイルデバイスから容易に取り外しや取り換えができないように組み込み基板上に搭載されてもよい。
【0019】
図1は、ICチップ1のハードウェア構成例を示す図である。ICチップ1は、図1に示すように、I/O回路11、RAM(Random Access Memory)12、NVM(Nonvolatile Memory)13、ROM(Read Only Memory)14、CPU(Central Processing Unit)15(コンピュータの一例)、及び暗号演算等を行うコプロセッサ16等を備える。I/O回路11は、外部端末2との間のインターフェースを担う。なお、ICチップ1と外部端末2との間の通信は、非接触通信であってもよいし、接触通信であってもよい。非接触通信の場合、例えばICカードまたはモバイルデバイスに搭載されたアンテナ(図示せず)を介してICチップ1と外部端末2との通信が行われる。なお、外部端末2の例として、店舗等に設置された取引端末(例えば、決済端末)、及び工場等の施設に設置された調査用端末が挙げられる。調査用端末は、ICチップ1と取引端末との間の通信において何らかのエラーが発生した場合に、当該エラーの原因調査を行うための端末である。
【0020】
ICチップ1と外部端末2との通信において、ISO/IEC 7816-4等に規定されるコマンドAPDU及びレスポンスAPDUのやり取りが行われる。ここで、コマンドAPDUは、コマンドクラスを示すCLA、コマンドコード(コマンド種別)を示すINS、コマンドパラメータを示すP1及びP2からなるヘッダ部を少なくとも含み、PIN(暗証番号)や書き込みデータ等を格納するボディ部を含む場合もある。一方、レスポンスAPDUは、処理結果(正常終了、または、エラーの概要(異常終了))を示すステータスワードSW1SW2を少なくとも含み、読み出しデータ等を含む場合もある。エラーの概要を示すステータスワードSW1SW2は、例えば、ISO/IEC 7816-4等に規定されるように、“62XX h”,“63XX h”,“64XX h”,“65XX h”,“66XX h”,“68XX h”,“69XX h”,“6AXX h”及び“6CXX h”で表現され、コマンド種別(つまり、INS)が異なる複数のコマンドAPDU間で共通に用いられる。ここで、“h”は16進数であることを示し、“X”は“0”~“F”のうちの何れかの値を示す。一例として、“6985 h”は、使用条件が満たされていないことを表すステータスワードSW1SW2である。
【0021】
NVM13には、例えばフラッシュメモリが適用される。なお、NVM13は、「Electrically Erasable Programmable Read-Only Memory」であってもよい。NVM13またはROM14には、OS(Operating System)、及び1または複数のアプリケーション等の各種プログラム(本発明のプログラムを含む)等が記憶される。さらに、NVM13には、どのような処理においてどのようなエラーが発生したかを示すエラーコードと、当該エラーを回避するためのコマンドAPDUのINS(コマンド識別情報の一例、以下、「回避用INS」という)との対応関係を規定する対応関係テーブル(対応関係情報の一例)が予め記憶される。かかる対応関係テーブルは、例えばICチップ1の製造工場におけるデータ発行処理においてICチップ1に書き込まれるとよい。なお、対応関係テーブルには、回避用INSが対応付けられていないエラーコードが登録されてもよい。
【0022】
図2は、エラーコードと回避用INSとの対応関係を示す対応関係テーブルの一例を示す図である。図2の例では、エラーコード“01 h”は、PIN認証(PIN照合)処理(例えば、VERIFYコマンドAPDUに応じた処理)においてPIN認証されなかったことを示す(つまり、意味付けられる)。かかるエラーコード“01 h”には、回避用INSとして、VERIFYコマンドAPDUのINS“20 h”が対応付けられている。また、エラーコード“02 h”は、セキュアチャネル(セキュア通信チャネル)確立処理(例えば、INITIALIZE UPDATEコマンドAPDU及びEXTERNAL AUTHENTICATEコマンドAPDUに応じた処理)においてICチップ1と外部端末2との間のセキュアチャネルが確立されなかったことを示す。かかるエラーコード“02 h”には、回避用INSとして、INITIALIZE UPDATEコマンドAPDUのINS“50 h”及びEXTERNAL AUTHENTICATEコマンドのINS“82 h”が対応付けられている。また、エラーコード“03 h”は、公開鍵証明書の署名検証処理(例えば、PERFORM SECURITY OPERATIONコマンドAPDUに応じた処理)において署名検証されなかったことを示す。かかるエラーコード“03 h”には、回避用INSとして、MANAGE SECURITY ENVIRONMENTコマンドAPDUのINS“22 h”が対応付けられている。
【0023】
なお、図2の例において、エラーコード“04 h”は、データ書き込み処理において書き込まれるデータの構造が予め定められている形式とは異なることを示すが、かかるエラーコード“04 h”には、回避用INSが対応付けられていない。同様に、エラーコード“05 h”は、暗号演算処理において暗号演算(例えば、データの暗号化または復号)されなかったことを示すが、かかるエラーコード“05 h”にも、回避用INSが対応付けられていない。また、エラーコードと回避用INSとの対応関係は、プログラムに記述されてもよい。
【0024】
CPU15(コンピュータの一例)は、NVM13に記憶されたOS及びアプリケーションを実行することで、本発明における保存手段及び応答手段等として機能する。CPU15は、外部端末2から送信された所定のコマンドAPDUをI/O回路11を介して受信すると、当該コマンドAPDUに応じた処理を実行し、当該処理結果を示すステータスワードSW1,SW2を含むレスポンスAPDUを外部端末2へ送信するようになっている。つまり、少なくともステータスワードSW1SW2が応答される。ここで、コマンドAPDUに応じた処理が正常に実行された場合、正常終了を示すステータスワードSW1SW2(“9000 h”)が応答される。一方、コマンドAPDUに応じた処理においてエラーが発生した場合(異常終了した場合)に、当該エラーの概要を示すステータスワードSW1SW2が応答される。
【0025】
このようなコマンドAPDU及びレスポンスAPDUのやり取りにおいて、CPU15は、エラーが発生した場合に、どのような処理においてどのようなエラーが発生したかを示すエラーコードをメモリ(例えば、RAM12またはNVM13)の専用領域(レコード)に書き込んで保存する。例えば、コマンドAPDUに応じた処理の種別(例えば、PIN認証処理、セキュアチャネル確立処理、署名検証処理など)ごとにエラーが発生した場合のエラーコードを予め定めておき(例えば、プログラムに記述しておき)、何れかの種別の処理においてエラーが発生した場合に当該定められたエラーコードが特定されて専用領域に書き込まれる。そして、CPU15は、当該発生したエラーの概要を示すステータスワードSW1SW2を含むレスポンスAPDUを外部端末2へ送信する。より好適には、CPU15は、上記エラーが発生した場合(つまり、何れかの種別の処理においてエラーが発生した場合)に、図2に示すような対応関係テーブルを参照して、当該エラーに対応するエラーコードに対応付けられた回避用INSを特定し、当該エラーコードと当該特定された回避用INSとを対応付けてメモリ(例えば、RAM12またはNVM13)の専用領域に書き込んで保存し、当該エラーの概要を示すステータスワードSW1SW2を含むレスポンスAPDUを外部端末2へ送信するとよい。
【0026】
図3は、メモリに対応付けられて保存されたエラーコードと回避用INSとの組の一例を示す図である。図3(A)の保存例1では、エラーコード“01 h”と回避用INS“20 h”との組が保存されている。なお、エラーコードと回避用INSとの組は、例えばTLV形式で所定のレコードに保存されるとよい。図3(A)の保存例1では、メモリに保存されたエラーコードと回避用INSとの組は後から読み出される度に消去されるか、或いは、読み出し後に発生したエラーに対応するエラーコードと回避用INSとの組により上書きされる。一方、図3(B)の保存例2では、エラーコード“01 h”と回避用INS“20 h”との組と、エラーコード“02 h”と回避用INS“50 h”及び回避用INS“82 h”との組とが保存(つまり、複数の組が保存)されている。図3(B)の保存例2では、メモリに保存されたエラーコードと回避用INSとの組は読み出された後であっても消去されない。ただし、所定数(例えば、5つ)の組が保存された後に、さらにエラーが発生した場合、最も古いエラーコードと回避用INSとの組が消去されるとよい。
【0027】
そして、CPU15は、上記エラーの概要を示すステータスワード(つまり、上記所定のコマンドに対するステータスワード)SW1SW2の応答後に外部端末2から送信された読み出しコマンドAPDUをI/O回路11を介して受信すると、当該読み出しコマンドAPDUに応じて、上記保存されているエラーコードをメモリの専用領域から読み出し、当該読み出されたエラーコード、及び正常終了を示すステータスワードSW1SW2を含むレスポンスAPDUを外部端末2へ送信する。つまり、読み出しコマンドAPDUの実行によりメモリから読み出されたエラーコードが応答される。これにより、応答されたエラーコードに基づいて外部端末2側でエラーを回避するためのコマンドAPDUを推察することができ、迅速にエラー対応を図ることができる。
【0028】
或いは、CPU15は、上記エラーの概要を示すステータスワードSW1SW2の応答後に外部端末2から送信された読み出しコマンドAPDUをI/O回路11を介して受信すると、当該読み出しコマンドAPDUに応じて、上記保存されているエラーコードと回避用INSとの組をメモリの専用領域から読み出し、当該読み出されたエラーコードと回避用INSとの組、及び正常終了を示すステータスワードSW1SW2を含むレスポンスAPDUを外部端末2へ送信する。つまり、読み出しコマンドAPDUの実行によりメモリから読み出されたエラーコードと回避用INSとの組が応答される。これにより、応答されたエラーコード及び回避用INSに基づいて外部端末2がエラーを回避するためのコマンドAPDUを迅速に特定することができ、より迅速にエラー対応を図ることができる。
【0029】
なお、読み出しコマンドAPDUの例として、GET DATAコマンドAPDUやREAD RECORDコマンドAPDUが挙げられる。読み出しコマンドAPDUのヘッダ部には、保存されているエラーコード(または、エラーコードと回避用INSとの組)を特定可能なタグ、または保存先である専用領域のレコード番号が含まれてもよい。エラーの発生原因となった上記所定のコマンドAPDUを送信した外部端末2と、読み出しコマンドAPDUを送信する外部端末2とが同一の取引端末である場合、より迅速にエラー対応を図ることができる。ただし、エラーの発生原因となった上記所定のコマンドAPDUを送信した外部端末2と、読み出しコマンドAPDUを送信する外部端末2とは互いに異なってもよい。例えば、上記所定のコマンドAPDUを送信した外部端末2が取引端末であり、読み出しコマンドAPDUを送信する外部端末2が調査用端末であることが想定される。
【0030】
[2.ICチップ1の動作]
次に、図4を参照して、本実施形態に係るICチップ1の動作について説明する。図4(A)は、所定のコマンドAPDUが受信された場合におけるICチップ1のCPU15により実行される処理の一例を示すフローチャートである。図4(B)は、エラーが発生した後に読み出しコマンドAPDUが受信された場合におけるICチップ1のCPU15により実行される処理の一例を示すフローチャートである。なお、以下に説明する動作例においては、エラーコードと回避用INSとの組がメモリに保存される場合を例にとり、所定のコマンドAPDUと読み出しコマンドAPDUとは同じ外部端末2(例えば、取引端末)から送信される場合を例にとるものとする。
【0031】
図4(A)に示す処理は、所定のコマンドAPDUが受信された場合に開始される。図4(A)に示す処理が開始されると、CPU15は、当該所定のコマンドAPDUに応じた処理を実行し(ステップS1)、当該処理が正常に終了したか否かを判定する(ステップS2)。なお、エラーが発生したか否かが判定されてもよい。当該処理が正常に終了したと判定された場合(ステップS2:YES)、処理はステップS3へ進む。一方、当該処理が正常に終了しない(換言すると、エラーが発生した)と判定された場合(ステップS2:NO)、処理はステップS4へ進む。
【0032】
ステップS3では、CPU15は、正常終了を示すステータスワードSW1,SW2を含むレスポンスAPDUを外部端末2へ送信し、処理を終了する。一方、ステップS4では、CPU15は、発生したエラーに対応するエラーコードを特定し、当該特定したエラーコードに対応付けられた回避用INSを特定し、当該エラーコードと当該特定された回避用INSとを対応付けてメモリの専用領域に書き込んで保存する。次いで、CPU15は、当該エラーの概要を示すステータスワードSW1SW2を含むレスポンスAPDUを外部端末2へ送信し(ステップS5)、処理を終了する。なお、CPU15は、当該エラーの概要を示すステータスワードSW1SW2を含むレスポンスAPDUを外部端末2へ送信した後(つまり、所定のコマンドAPDUに対するステータスワードSW1SW2の応答後)に、上記エラーコードをメモリの専用領域に書き込んで保存してもよい。これにより、レスポンスAPDU送信後にエラーコードを保存することで、エラーコードを保存しない従来の実装とレスポンスAPDUの送信までの時間を同等にし、遅延なく処理を進めることができる。
【0033】
図4(B)に示す処理は、エラーコードのタグまたは保存先を指定する読み出しコマンドAPDUが受信された場合に開始される。図4(B)に示す処理が開始されると、CPU15は、当該読み出しコマンドAPDUに応じて、上記ステップS4で保存されたエラーコードと回避用INSとの組をメモリの専用領域から読み出す(ステップS11)。次いで、CPU15は、ステップS11で読み出されたエラーコードと回避用INSとの組、及び正常終了を示すステータスワードSW1SW2を含むレスポンスAPDUを外部端末2へ送信し(ステップS12)、処理を終了する。これにより、外部端末2は、受信された回避用INSに基づいて次に送信すべきコマンドAPDUを特定し、当該コマンドAPDUをICチップ1へ送信することになる。
【0034】
例えば、回避用INSに基づいてVERIFYコマンドAPDUが特定された場合、PINを含むVERIFYコマンドAPDUがICチップ1へ送信される(PIN認証処理のリトライ)。或いは、回避用INSに基づいてINITIALIZE UPDATEコマンドAPDU及びEXTERNAL AUTHENTICATEコマンドAPDUが特定された場合、INITIALIZE UPDATEコマンドAPDUがICチップ1へ送信され、INITIALIZE UPDATEコマンドAPDUに対して正常終了を示すステータスワードSW1SW2を含むレスポンスAPDUが返信された場合、EXTERNAL AUTHENTICATEコマンドAPDUがICチップ1へ送信される(セキュアチャネル確立処理のリトライ)。或いは、回避用INSに基づいてMANAGE SECURITY ENVIRONMENTコマンドAPDUが特定された場合、制御参照テンプレート(CRT)を含むMANAGE SECURITY ENVIRONMENTコマンドAPDUがICチップ1へ送信され、INITIALIZE UPDATEコマンドAPDUに対して正常終了を示すステータスワードSW1SW2を含むレスポンスAPDUが返信された場合、PERFORM SECURITY OPERATIONコマンドAPDUがICチップ1へ送信される(公開鍵証明書の署名検証処理のリトライ)。
【0035】
以上説明したように、上記実施形態によれば、ICチップ1は、外部からの所定のコマンドにAPDU応じた処理においてエラーが発生した場合に、当該エラーに対応するエラーコードをメモリに保存し、当該所定のコマンドAPDUに対するステータスワードSW1SW2の応答後に外部からの読み出しコマンドAPDUに応じて、当該エラーコードをメモリから読み出し、当該エラーコードを応答するように構成したので、エラーの発生原因の特定(つまり、どのような処理の実行においてどのようなエラーが発生したかの特定を容易にすることができ、エラー対応の迅速化を図ることができる。
【0036】
さらに、上記実施形態によれば、ICチップ1は、外部からの所定のコマンドにAPDU応じた処理においてエラーが発生した場合に、当該エラーに対応するエラーコードと回避用INSとの組をメモリに保存し、当該所定のコマンドAPDUに対するステータスワードSW1SW2の応答後に外部からの読み出しコマンドAPDUに応じて、当該エラーコードと回避用INSとの組をメモリから読み出し、当該エラーコードと回避用INSとの組を応答するように構成したので、エラー回避用のコマンドAPDUを迅速に特定し、より迅速にエラー対応を図ることができる。
【符号の説明】
【0037】
1 ICチップ
2 外部端末
11 I/O回路
12 RAM(
13 NVM
14 ROM
15 CPU
16 コプロセッサ
図1
図2
図3
図4