(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-09-24
(45)【発行日】2024-10-02
(54)【発明の名称】ICカード、ICカードのロギング情報処理方法、及びプログラム
(51)【国際特許分類】
G06K 19/073 20060101AFI20240925BHJP
【FI】
G06K19/073 072
(21)【出願番号】P 2020176456
(22)【出願日】2020-10-21
【審査請求日】2023-09-20
(73)【特許権者】
【識別番号】000003193
【氏名又は名称】TOPPANホールディングス株式会社
(74)【代理人】
【識別番号】100149548
【氏名又は名称】松沼 泰史
(74)【代理人】
【識別番号】100139686
【氏名又は名称】鈴木 史朗
(74)【代理人】
【識別番号】100169764
【氏名又は名称】清水 雄一郎
(74)【代理人】
【識別番号】100147267
【氏名又は名称】大槻 真紀子
(72)【発明者】
【氏名】陳 美廉
(72)【発明者】
【氏名】荒井 和重
(72)【発明者】
【氏名】武藤 祐貴
【審査官】田名網 忠雄
(56)【参考文献】
【文献】特開2003-263615(JP,A)
【文献】特開2012-043208(JP,A)
【文献】特開2004-110087(JP,A)
【文献】特開2018-136835(JP,A)
【文献】国際公開第2019/193786(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06K 19/073
(57)【特許請求の範囲】
【請求項1】
ライフサイクルステータスとして運用状態とロック状態と廃止状態とを有するICカードであって、
外部からの攻撃による異常を検知する検知部と、
前記異常に関する情報をロギング情報として記憶する記憶部と、
前記ICカードの現在の前記ライフサイクルステータスを判定する判定部と、
前記判定部による判定の結果が前記廃止状態である場合は前記記憶部に記憶された前記ロギング情報を更新しない第1の処理を選択し、前記判定の結果が前記廃止状態でない場合は前記異常を示す情報に基づき前記記憶部に記憶された前記ロギング情報を更新する第2の処理を選択する選択部と、
前記検知部によって前記異常が検知された際に、前記選択部によって予め選択された前記第1の処理又は前記第2の処理のいずれか一方の処理を実行する処理部と、
を備える、ICカード。
【請求項2】
前記判定部は、前記ICカードの電源がオンになってからコマンドの受信を開始するまでの間に、前記ICカードの前記ライフサイクルステータスを判定する、
請求項1に記載のICカード。
【請求項3】
前記処理部は、コマンドの受信中またはコマンド処理の実行中に前記検知部によって前記異常が検知された場合、前記第1の処理又は前記第2の処理のいずれか一方の処理を割り込み処理として実行する、
請求項1又は請求項2に記載のICカード。
【請求項4】
前記第1の処理又は前記第2の処理のいずれの処理を前記処理部が実行するかを示す処理情報が書き込まれるレジスタと、
前記選択部による選択の結果に基づき、前記処理情報を前記レジスタに書き込む書き込み部と、
をさらに備え、
前記処理部は、前記検知部によって前記異常が検知された際に、前記レジスタに書き込まれている前記処理情報に基づき、前記第1の処理又は前記第2の処理のいずれか一方の処理を実行する、
請求項1から請求項3のいずれか1項に記載のICカード。
【請求項5】
ライフサイクルステータスとして運用状態とロック状態と廃止状態とを有するICカードのロギング情報処理方法であって、
検知部が、外部からの攻撃による異常を検知する過程と
、
判定部が、前記ICカードの現在の前記ライフサイクルステータスを判定する過程と、
選択部が、前記判定部による判定の結果が前記廃止状態である場合
は記憶部に記憶された前記
異常に関する情報であるロギング情報を更新しない第1の処理を選択し、前記判定の結果が前記廃止状態でない場合は前記異常を示す情報に基づき前記記憶部に記憶された前記ロギング情報を更新する第2の処理を選択する過程と、
処理部が、前記検知部によって前記異常が検知された際に、前記選択部によって予め選択された前記第1の処理又は前記第2の処理のいずれか一方の処理を実行する過程と、
を含む、ICカードのロギング情報処理方法。
【請求項6】
ライフサイクルステータスとして運用状態とロック状態と廃止状態とを有するICカードとしてコンピュータを機能させるプログラムであって前記コンピュータを、
外部からの攻撃による異常を検知する検知手段と
、
前記ICカードの現在の前記ライフサイクルステータスを判定する判定手段と、
前記判定手段による判定の結果が前記廃止状態である場合は
記憶部に記憶された前記
異常に関する情報であるロギング情報を更新しない第1の処理を選択し、前記判定の結果が前記廃止状態でない場合は前記異常を示す情報に基づき前記
記憶部に記憶された前記ロギング情報を更新する第2の処理を選択する選択手段と、
前記検知手段によって前記異常が検知された際に、前記選択手段によって予め選択された前記第1の処理又は前記第2の処理のいずれか一方の処理を実行する処理手段と、
として機能させる、プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ICカード、ICカードのロギング情報処理方法、及びプログラムに関する。
【背景技術】
【0002】
従来から、IC(Integrated Circuit)カードのライフサイクルにおけるICカードの特定の状態を示すライフサイクルステータスを、可視的に示すICカードおよびICカードの状態管理方法が知られている。
【0003】
ICカードのオープンな規格を策定する国際的な団体であるGlobal Platformにおいて、業界標準のカード仕様として、5つのライフサイクルステータスおよび遷移条件が定義されている。5つのライフサイクルステータスは、ICカードの製造工場にて初期化された状態(OP READY)、ICカードの発行者によって初期化された状態(INITIALIZED)、安全に使用できる状態である運用状態(SECURED)、一時的に使用できない状態であるロック状態(CARD LOCKED)、及び恒久的に使用できない状態である廃止状態(TERMINATED)である。Global Platformでは、これら5つのライフサイクルステータスをICカードに書き込むことによるライフサイクル管理が提案されている。
【0004】
例えば、下記特許文献1には、ICカードのライフサイクルステータスの遷移が生じた場合に、ICカードのライフサイクルステータスが、ICカードの印字部に印字され、ICカード用リーダライタの状態表示部に表示される技術が開示されている。
下記特許文献1に記載された技術では、ICカードのライフサイクルステータスを遷移すべき事象が発生した場合に、ICカードのライフサイクルステータスおよび日時が状態記録部に記録される。しかし、特許文献1には、ICカードのライフサイクルステータスを遷移すべき事象自体が状態記録部に記録されるか否かについて記載されていない。
このため、ICカードのライフサイクルステータスを遷移すべき事象が状態記録部に適切に記録されない場合には、ICカードのライフサイクルステータスを遷移すべき事象の解析を適切に行うことができない。
【0005】
一方、ICカードに対する不正な操作やセキュリティ攻撃を検知し、その履歴をユーザや管理者に把握させるセキュリティ管理システムが知られている。
例えば、下記の特許文献2には、ICカードのEEPROM(Electrically Erasable Programmable Read Only Memory)が、ICカードに対して行われた操作の履歴(例えばPIN認証要求コマンドなど)をログとして記録(保持)する技術が開示されている。当該技術では、EEPROMに記録されたログが、ICカードが不正に使用されていないかの分析に用いられる。
下記特許文献2に記載された技術では、攻撃者が他人のICカードを持ち出してPINコードを推測して入力すると、ICカードのCPU(Central Processing Unit)がPIN照合処理を実行する。詳細には、特許文献2に記載された技術では、PIN照合処理において、ICカードのCPUは、ICカードに格納された認証情報と入力されたPINコードとが一致するか判断し、一致しない場合は照合失敗として、認証要求があったことを示すログを生成して、EEPROMに記憶する(書き込む)。
【先行技術文献】
【特許文献】
【0006】
【文献】特開2004-110087号公報
【文献】特開2012-043208号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
しかしながら、特許文献2に記載された技術では、ICカードに対する不正な操作やセキュリティ攻撃を検知すると、ICカードのライフサイクルステータスに関わらず、既にEEPROMに記録されているログが新たに生成されたログで上書きされてしまう。例えば、ICカードのライフサイクルステータスが廃止状態に遷移した際のログがEEPROMに記録された状態で、不正な操作やセキュリティ攻撃が検知されると、廃止状態に遷移した際のログが新たに生成されるログで上書きされてしまう。そのため、外部からの攻撃によってICカードのライフサイクルステータスが廃止状態となった原因の解析が困難になってしまう。
【0008】
上述の課題を鑑み、本発明の目的は、ICカードのライフサイクルステータスが廃止状態になった原因の解析を確実に行うことが可能なICカード、ICカードのロギング情報処理方法、及びプログラムを提供することにある。
【課題を解決するための手段】
【0009】
上述の課題を解決するために、本発明の一態様に係るICカードは、ライフサイクルステータスとして運用状態とロック状態と廃止状態とを有するICカードであって、外部からの攻撃による異常を検知する検知部と、前記異常に関する情報をロギング情報として記憶する記憶部と、前記ICカードの現在の前記ライフサイクルステータスを判定する判定部と、前記判定部による判定の結果が前記廃止状態である場合は前記記憶部に記憶された前記ロギング情報を更新しない第1の処理を選択し、前記判定の結果が前記廃止状態でない場合は前記異常を示す情報に基づき前記記憶部に記憶された前記ロギング情報を更新する第2の処理を選択する選択部と、前記検知部によって前記異常が検知された際に、前記選択部によって予め選択された前記第1の処理又は前記第2の処理のいずれか一方の処理を実行する処理部と、を備える。
【0010】
本発明の一態様に係るICカードのロギング情報処理方法は、ライフサイクルステータスとして運用状態とロック状態と廃止状態とを有するICカードのロギング情報処理方法であって、検知部が、外部からの攻撃による異常を検知する過程と、判定部が、前記ICカードの現在の前記ライフサイクルステータスを判定する過程と、選択部が、前記判定部による判定の結果が前記廃止状態である場合は記憶部に記憶された前記異常に関する情報であるロギング情報を更新しない第1の処理を選択し、前記判定の結果が前記廃止状態でない場合は前記異常を示す情報に基づき前記記憶部に記憶された前記ロギング情報を更新する第2の処理を選択する過程と、処理部が、前記検知部によって前記異常が検知された際に、前記選択部によって予め選択された前記第1の処理又は前記第2の処理のいずれか一方の処理を実行する過程と、を含む。
【0011】
本発明の一態様に係るプログラムは、ライフサイクルステータスとして運用状態とロック状態と廃止状態とを有するICカードとしてコンピュータを機能させるプログラムであって前記コンピュータを、外部からの攻撃による異常を検知する検知手段と、前記ICカードの現在の前記ライフサイクルステータスを判定する判定手段と、前記判定手段による判定の結果が前記廃止状態である場合は記憶部に記憶された前記異常に関する情報であるロギング情報を更新しない第1の処理を選択し、前記判定の結果が前記廃止状態でない場合は前記異常を示す情報に基づき前記記憶部に記憶された前記ロギング情報を更新する第2の処理を選択する選択手段と、前記検知手段によって前記異常が検知された際に、前記選択手段によって予め選択された前記第1の処理又は前記第2の処理のいずれか一方の処理を実行する処理手段と、として機能させる。
【発明の効果】
【0012】
本発明によれば、ICカードのライフサイクルステータスが廃止状態になった原因の解析を確実に行うことができる。
【図面の簡単な説明】
【0013】
【
図1】本実施形態に係るICカードのハードウェア構成の一例を示す図である。
【
図2】本実施形態に係るICカードのライフサイクルステータスの一例を示す図である。
【
図3】本実施形態に係るICカードの機能構成の一例を示すブロック図である。
【
図4】本実施形態に係るICカードにおいて実行される処理の流れの一例を示すフローチャートである。
【
図5】本実施形態に係る割り込み処理方式の選択処理の流れの一例を示すフローチャートである。
【
図6】本実施形態に係る割り込み処理の流れの一例を示すフローチャートである。
【
図7】本実施形態に係るICカードのVERIFYコマンド実行中における処理の流れの一例を示すフローチャートである。
【
図8】本実施形態に係るVERIFYコマンド実行中の割り込み処理において実行される処理の流れの一例を示すフローチャートである。
【
図9】本実施形態に係るVERIFYコマンド実行中の割り込み処理において実行される処理の流れの一例を示すフローチャートである。
【発明を実施するための形態】
【0014】
以下、図面を参照しながら本発明の実施形態について詳しく説明する。
【0015】
<1.ICカードのハードウェア構成>
図1を参照して、本実施形態に係るICカードのハードウェア構成について説明する。
図1は、本実施形態に係るICカードのハードウェア構成の一例を示す図である。
図1に示すICカード1は、例えば、キャッシュカード、クレジットカード、定期券、乗車券、学生証、ポイントカード、運転免許証等である。
【0016】
図1に示すように、ICカード1は、I/O10、CPU11(Central Processing Unit)、ROM12(Read Only Memory)、RAM13(Random Access Memory)、及びEEPROM14(Electrically Erasable Programmable Read Only Memory)を備える。
【0017】
(1)I/O10
I/O10は、リーダライタ等の外部装置(不図示)と通信を行う。例えば、I/O10は、外部装置からコマンドを受信する。I/O10による外部装置との通信は、接触式であってもよいし非接触式であってもよい。つまり、I/O10は、物理層の構成として、接触式に対応する構成のみを有していてもよいし、非接触式に対応する構成のみを有していてもよい。また、I/O10は、物理層の構成として、接触式に対応する構成と非接触式に対応する構成の両方の構成を有していてもよい。
【0018】
(2)CPU11
CPU11は、ROM12やEEPROM14に記憶されているプログラムを実行し、ICカード1における各種処理を行う。例えば、CPU11は、I/O10を介して外部装置から受信したコマンドに応じたコマンド処理を実行する。
【0019】
(3)レジスタ15
図1に示すように、CPU11は、レジスタ15を備える。レジスタ15は、CPUに内蔵されている記憶装置である。レジスタ15は、例えば、CPU11の処理に関するデータを一時的に記憶する。一例として、CPU11が実行する割り込み処理を指定する情報(以下、「処理情報」とも称される)がレジスタ15に書き込まれる。処理情報の詳細については後述する。
【0020】
(4)ROM12
ROM12は、例えば書き込み不可の不揮発性メモリであり、ICカード1における各種処理を実行するためのプログラムやデータなどを記憶する。ROM12は、製造段階でプログラムやデータなどを記憶した状態でICカード1内に組み込まれる。
【0021】
(5)RAM13
RAM13は、例えば書き込み不可の揮発性メモリであり、ICカード1における各種処理を行う際に利用されるデータなどを一時記憶する。
【0022】
(6)EEPROM14
EEPROM14は、例えば電気的に書き換え可能な不揮発性メモリである。EEPROM14は、例えば、制御用のプログラム、制御データ、アプリケーション、個人情報、暗号鍵などのセキュリティ情報、アプリケーションに用いられるデータなどを記憶する。
【0023】
(ライフサイクルステータス)
ここで、
図2を参照して、本実施形態に係るICカードのライフサイクルステータスについて説明する。
図2は、本実施形態に係るICカードのライフサイクルステータスの一例を示す図である。
【0024】
ICカードのオープンな規格を策定する国際的な団体であるGlobal Platformにおいて、業界標準のカード仕様として、5つのライフサイクルステータスおよび遷移条件が定義されている。5つのライフサイクルステータスは、ICカードの製造工場にて初期化された状態(OP READY)、ICカードの発行者によって初期化された状態(INITIALIZED)、安全に使用できる状態である運用状態(SECURED)、一時的に使用できない状態であるロック状態(CARD LOCKED)、及び恒久的に使用できない状態である廃止状態(TERMINATED)である。Global Platformでは、これら5つのライフサイクルステータスをICカードに書き込むことによるライフサイクル管理が提案されている。
【0025】
図2に示す例では、ICカード1が、例えば初期化された状態を経た後におけるライフサイクルステータスとして、運用状態と、ロック状態と、廃止状態とを有する。運用状態は、ICカード1の通常の状態(ICカード1の使用者がICカード1を使用可能な状態)に相当する。ロック状態は、ICカード1の使用者がICカード1を一時的に使用できない状態に相当する。廃止状態は、ICカード1の使用者がICカード1を恒久的に使用できない状態に相当する。
【0026】
図2に矢印で示すように、運用状態は、ロック状態又は廃止状態に遷移し得る状態である。ロック状態は、運用状態又は廃止状態に遷移し得る状態である。廃止状態は、運用状態及びロック状態のいずれにも遷移し得ない状態である。
運用状態から廃止状態への遷移は、例えば、重大な異常がICカード1に発生し、その異常が検知された場合に行われる。また、運用状態はからロック状態への遷移は、例えば、外部からICカード1に対して不正なアクセスがあったと検知された場合に行われる。
ロック状態から運用状態への遷移は、例えば、ロック状態を解除するために必要な認証処理が正常に終了したときに行われる。また、ロック状態から廃止状態への遷移は、例えば、重大な異常がICカード1に発生し、その異常が検知された場合に行われる。
【0027】
他の例では、ICカード1が、最低限の機能が活性化された状態、初期化された状態、運用状態、ロック状態、及び廃止状態の5つのライフサイクルステータスを有してもよい。
【0028】
<2.ICカードの機能構成>
図3を参照して、本実施形態に係るICカード1の機能構成について説明する。
図3は、本実施形態に係るICカード1の機能構成の一例を示すブロック図である。ICカード1は、通信部100、制御部110、及び記憶部120を備える。
【0029】
(1)通信部100
通信部100は、各種情報を送受信する機能を有する。通信部100の機能は、例えば、ICカード1がハードウェアとして備えるI/O10によって実現される。具体的に、通信部100は、外部装置からコマンドを受信する。通信部100は、受信したコマンドを制御部110へ出力する。
【0030】
(2)制御部110
制御部110は、ICカード1の動作全般を制御する機能を有する。制御部110の機能は、例えば、ICカードがハードウェアとして備えるCPU11にプログラムを実行させることによって実現される。
図3に示すように制御部110は、判定部111、選択部112、書き込み部113、検知部114、及び処理部115を備える。
【0031】
(2-1)判定部111
判定部111は、ICカード1のライフサイクルステータスを判定する。具体的に、判定部111は、ICカード1のライフサイクルステータスが、運用状態、ロック状態、及び廃止状態のいずれの種別であるかの判定を行う。判定部111は、判定の結果の種別を選択部112へ出力する。
【0032】
なお、本実施形態では、判定部111は、ICカード1の電源がオンになってからコマンドの受信を開始するまでの間に、ICカード1のライフサイクルステータスを判定する。判定部111がICカード1のライフサイクルステータスを判定するタイミングは、ICカード1の電源がオンになってからコマンドの受信を開始するまでの間以外にも考えられる。
【0033】
例えば、処理部115(後述)が実行する割り込み処理にて、判定部111がICカード1のライフサイクルステータスを判定することも考えられる。しかしながら、例えば処理部115が割り込み処理を複数回実行する場合、割り込み処理が実行される度に判定部111がICカード1のライフサイクルステータスを判定することになる。即ち、割り込み処理の実行回数が増え、判定処理の実行回数も増え、処理時間が増加する。また、割り込み処理の実行時間の増加は、割り込み処理の実行中に外部から攻撃を受ける可能性が高くなるため、セキュリティ面のリスクになり得る。
【0034】
一方、本実施形態の場合、割り込み処理が実行される前に判定部111による判定処理が行われる。そのため、処理部115は、判定部111が事前に実行した判定処理の結果を割り込み処理において利用できる。処理部115が割り込み処理を複数回実行する場合も同様である。
【0035】
以上より、本実施形態の判定部111は、ICカード1の電源がオンになってからコマンドの受信を開始するまでの間にICカード1のライフサイクルステータスを判定することで、判定処理の実行回数を減らすことができる。これにより、判定部111は、処理時間を削減し、処理速度を上げることができる。また、割り込み処理におけるセキュリティを強化することもできる。
【0036】
(2-2)選択部112
選択部112は、外部からの攻撃による異常が検知された際に処理部115(後述)が実行する割り込み処理方式を選択する。選択部112は、選択した割り込み処理方式を書き込み部113へ出力する。
【0037】
本実施形態に係る割り込み処理方式は、例えば、記憶部120に記憶されたロギング情報を更新しない割り込み処理A(第1の処理)と、記憶部120に記憶されたロギング情報を更新する割り込み処理B(第2の処理)である。選択部112は、例えば、判定部111に判定されたライフサイクルステータスの種別に基づき、割り込み処理A又は割り込み処理Bのいずれか一方の処理を選択する。
【0038】
具体的に、判定部111による判定の結果が廃止状態である場合、選択部112は、割り込み処理Aを選択する。一方、判定部111による判定の結果が廃止状態でない場合(即ち運用状態又はロック状態である場合)、選択部112は、割り込み処理Bを選択する。なお、割り込み処理Bでは、外部からの攻撃による異常を示す情報(以下、「異常情報」とも称される)に基づき、記憶部120に記憶されたロギング情報が更新される。
【0039】
なお、選択部112は、ICカード1の電源がオンになってからコマンドの受信を開始するまでの間に、判定部111による判定の結果の種別に基づき、割り込み処理A又は割り込み処理Bのいずれか一方を選択する。割り込み処理にて実行される処理(割り込み処理方式)を選択部112が選択するタイミングは、ICカード1の電源がオンになってからコマンドの受信を開始するまでの間以外にも考えられる。
【0040】
例えば、処理部115(後述)が実行する割り込み処理内で、当該割り込み処理にて実行される処理を選択部112が選択することも考えられる。しかしながら、例えば処理部115が割り込み処理を複数回実行する場合、割り込み処理が実行される度に選択部112が当該割り込み処理にて実行される処理を選択することになる。即ち、割り込み処理の実行回数が増え、選択処理の実行回数も増え、処理時間が増加する。また、割り込み処理の実行時間の増加は、割り込み処理の実行中に外部から攻撃を受ける可能性が高くなるため、セキュリティ面のリスクになり得る。
【0041】
一方、本実施形態の場合、割り込み処理が実行される前に選択部112による選択処理が行われる。そのため、処理部115は、選択部112が事前に実行した選択処理の結果を割り込み処理にて利用することができる。処理部115が割り込み処理を複数回実行する場合も同様である。
【0042】
以上より、本実施形態の選択部112は、ICカード1の電源がオンになってからコマンドの受信を開始するまでの間に割り込み処理にて実行される処理(割り込み処理方式)を選択することで、判定処理の実行回数を減らすことができる。これにより、選択部112は、処理時間を削減し、処理速度を上げることができる。また、割り込み処理におけるセキュリティを強化することもできる。
【0043】
(2-3)書き込み部113
書き込み部113は、選択部112による選択の結果に基づき、割り込み処理A又は割り込み処理Bのいずれの処理を処理部115が実行するかを示す処理情報を記憶部120に書き込む。
【0044】
なお、本実施形態では、書き込み部113は、処理情報をレジスタ15に書き込む。例えば、レジスタ15には処理部115が実行する処理を設定するためのフラグビットがある。書き込み部113は、当該フラグビットに書き込む情報によって、処理部115が割り込み処理A又は割り込み処理Bのどちらを実行するかを設定する。
一例として、選択部112が割り込み処理Aを選択した場合、書き込み部113は、当該フラグビットに対して1を書き込む。一方、選択部112が割り込み処理Bを選択した場合、書き込み部113は、当該フラグビットに対して0を書き込む。なお、割り込み処理の種類と書き込み部113がフラグビットに書き込む数字の組み合わせはかかる例に限定されず、逆の組み合わせであってもよい。また、書き込み部113がレジスタ15のフラグビットに書き込む情報は、かかる例に限定されない。
【0045】
(2-4)検知部114
検知部114は、外部からの攻撃による異常を検知する。ICカード1に対する外部からの攻撃は、例えば、物理攻撃、サイドチャネル攻撃、故障利用攻撃等である。検知部114は、外部からの攻撃による異常の検知結果を処理部115へ出力する。
【0046】
(2-5)処理部115
処理部115は、各種処理を実行する。例えば、処理部115は、外部(例えば外部装置)から送信されるコマンドに従って予め設定された処理を実行する。外部から送信されるコマンドは、例えば、読出コマンドである。処理部115は、読出コマンドを実行することにより、例えば記憶部120からデータを読み出し、外部装置へ送信する。
【0047】
コマンドの受信中またはコマンド処理の実行中に検知部114によって外部からの攻撃による異常が検知された場合、処理部115は、選択部112によって予め選択された割り込み処理A又は割り込み処理Bのいずれか一方の処理を割り込み処理として実行する。これにより、処理部115は、割り込み処理の実行時に割り込み処理内で実行する処理の内容を選択するための処理を実行しなくてよいため、割り込み処理における処理時間を削減し、処理速度を上げることができる。また、割り込み処理における処理時間の削減により、割り込み処理におけるセキュリティを強化することもできる。
【0048】
なお、処理部115は、検知部114によって異常が検知された際に、レジスタ15に書き込まれている処理情報に基づき、割り込み処理A又は割り込み処理Bのいずれか一方の処理を実行する。例えば、処理部115は、レジスタ15のフラグビットに書き込まれた情報を読み込み、当該情報に応じた割り込み処理を選択する。一例として、レジスタ15のフラグビットに1が書き込まれている場合、処理部115は、割り込み処理Aを実行する。一方、レジスタ15のフラグビットに0が書き込まれている場合、処理部115は、割り込み処理Bを実行する。なお、処理部115が実行する割り込み処理の種類とレジスタ15のフラグビットに書き込まれている数字の組み合わせはかかる例に限定されず、逆の組み合わせであってもよい。
【0049】
異常を検知した際の割り込み処理は、ICカード1の内部の資産(パスワード、暗号鍵など)を改ざん、暴露などの被害から守るための処理である。処理部115によって実行される割り込み処理は、ソフトウェアによるものであっても、ハードウェアによるものであってもよい。
【0050】
割り込み処理A及び割り込み処理Bにおいて、処理部115は、例えば、エラー処理を実行する。エラー処理は、例えば、コマンド処理を正常に実行できないことを示すエラーレスポンスを送信する処理や、ICカード1自体を恒久的に使用不可能とする処理等である。
【0051】
割り込み処理Bにおいて、処理部115は、例えば、異常情報を記憶部120にロギングする処理を実行する。記憶部120にロギングされた異常情報は、エラー解析などに用いられる。
【0052】
処理部115は、割り込み処理を実行した後に、後処理(例えば特開平7-271926号公報の
図6に記載されているようなリセット処理)を実行する。
【0053】
更に、処理部115は、例えば、コマンドの実行エラーが生じた場合、検知部114によって外部からの攻撃による異常が検知された場合などに、目的とする処理が行われない異常処理の結果に応じて、ICカード1のライフサイクルステータスを例えば運用状態からロック状態又は廃止状態に遷移させる処理などを実行する。異常処理の一例として、ICカードリーダ/ライタから受信したコマンドに応じたプログラムではなく、他のコマンドに応じたプログラムが実行されてしまうものが挙げられる。
なお、検知部114によって外部からの攻撃による異常が検知された場合におけるライフサイクルステータスの状態遷移のパターンは複数存在する。本実施形態では、複数存在する状態遷移のパターンの内、ロック状態に遷移させるパターンと廃止状態に遷移させるパターンについて説明する。
【0054】
(3)記憶部120
記憶部120は、各種情報を記憶する機能を有する。記憶部120の機能は、例えば、ICカード1がハードウェアとして備えるROM12、RAM13、EEPROM14、レジスタ15等によって実現される。記憶部120は、例えば、ロギング情報、処理情報等を記憶する。
【0055】
<3.処理の流れ>
図4から
図9を参照して、本実施形態に係るICカード1における処理の流れについて説明する。
【0056】
(1)ICカード1における処理の流れ
まず、
図4から
図6を参照して、本実施形態に係るICカード1における処理の流れについて説明する。
図4は、本実施形態に係るICカードにおいて実行される処理の流れの一例を示すフローチャートである。
【0057】
図4に示すように、まず、外部から供給される電力によってICカード1の電源(不図示)がオンになることで、ICカード1の動作が開始する(ステップS1)。
次いで、ICカード1の制御部110が、割り込み処理方式選択処理を実行する(ステップS2)。割り込み処理方式選択処理の詳細は、後述する。
【0058】
割り込み処理方式選択処理後、ICカード1の通信部100が、外部からコマンドを受信する(ステップS3)。
コマンド受信中(通信部100が外部からのコマンドの受信を待っている状態も含む)に、制御部110の検知部114が外部からの攻撃による異常を検知しなかった場合(攻撃非検知の場合)、ステップS4に進む。
一方、コマンド受信中に、制御部110の検知部114が外部からの攻撃による異常を検知した場合(攻撃検知の場合)、ステップS5に進む。
【0059】
ステップS4では、制御部110の処理部115が、コマンド処理を実行する。コマンド処理中に、検知部114が外部からの攻撃による異常を検知した場合(攻撃検知の場合)、ステップS5に進む。
一方、コマンド処理中に、検知部114が外部からの攻撃による異常を検知しなかった場合(攻撃非検知の場合)、ステップS7に進む。
【0060】
ステップS5では、処理部115が、割り込み処理関数を呼び出して(処理を割り込み処理関数に遷移させて)割り込み処理を実行する。つまり、
図4に示す例では、コマンドの受信中またはコマンド処理の実行中に検知部114が外部からの攻撃による異常を検知した場合、処理部115が、割り込み処理を実行する。割り込み処理の詳細は、後述する。
【0061】
割り込み処理後、処理部115は、後処理を実行する(ステップS6)。後処理の実行後、ステップS7に進む。
【0062】
ステップS7では、例えば処理部115が、ステップS3からステップS6の処理を継続するか否かを判定する。
ステップS3からステップS6の処理を継続する場合(ステップS7/YES)、ステップS2に戻る。
一方、ステップS3からステップS6の処理を継続しない場合(ステップS7/NO)、ステップS8に進む。
ステップS8では、外部から電力が供給されなくなることによってICカード1の電源(不図示)がオフになることで、ICカード1の動作が終了する。
【0063】
ここで、
図5を参照して、本実施形態に係る割り込み処理方式選択処理(ステップS2)の詳細について説明する。
図5は、本実施形態に係る割り込み処理方式選択処理の流れの一例を示すフローチャートである。
【0064】
図5に示すように、まず、制御部110の判定部111が、ICカード1のライフサイクルステータスを判定する(ステップS21)。
ICカード1のライフサイクルステータスが廃止状態である場合(ステップS21/YES)、制御部110の選択部112は、ロギング情報を更新しない割り込み処理Aを選択する(ステップS22)。
一方、ICカード1のライフサイクルステータスが廃止状態でない場合、即ち運用状態またはロック状態である場合(ステップS21/NO)、制御部110の選択部112は、ロギング情報を更新する割り込み処理Bを選択する(ステップS23)。
【0065】
ステップS22又はステップS23の処理後、制御部110の書き込み部113が、選択部112によって選択された割り込み処理を示す処理情報をレジスタ15に書き込む(ステップS24)。書き込み後、制御部110は、割り込み処理方式選択処理を終了する。
【0066】
ここで、
図6を参照して、本実施形態に係る割り込み処理(ステップS5)の詳細について説明する。
図6は、本実施形態に係る割り込み処理の流れの一例を示すフローチャートである。
【0067】
図6に示すように、まず、制御部110の処理部115が、レジスタ15に書き込まれている処理情報に基づき、選択部112によって選択された割り込み処理を確認する(ステップS51)。
選択部112によって選択された割り込み処理が割り込み処理Aである場合、ステップS52に進む。
一方、選択部112によって選択された割り込み処理が割り込み処理Bである場合、ステップS53に進む。
【0068】
ステップS52では、処理部115が、エラー処理(エラー解析)を実行する。エラー処理後、処理部115は、割り込み処理Aを終了する。
ステップS53では、処理部115が、エラー処理(エラー解析)を実行する。エラー処理後、処理部115は、ロギング情報を更新する(ステップS54)。ロギング情報の更新後、処理部115は、割り込み処理Bを終了する。
即ち、割り込み処理Aでは、エラー処理のみが行われ、ロギング情報の更新は行われない。また、割り込み処理Bでは、エラー処理及びロギング情報の更新が行われる。
【0069】
なお、
図6には示していないが、ICカード1が外部から受けた攻撃によって、処理部115がコマンド処理を正常に実行できない異常が生じ、その異常が検知部114によって検知された場合には、処理部115が、エラー処理の実行中に、異常情報に基づいて、ライフサイクルステータスをロック状態または廃止状態に遷移させる。
【0070】
仮に、従来のICカードにおいて、外部から攻撃を受けてICカードのライフサイクルステータスが廃止状態になった後に、ICカードが外部から攻撃を再び受けた場合に、記憶部に記憶されているロギング情報が更新されたとする。この場合、ライフサイクルステータスが廃止状態になった原因を示すロギング情報が新しい情報(つまり、外部からの2回目の攻撃による異常を示す情報)によって上書きされてしまう。その結果、従来のICカードのライフサイクルステータスが廃止状態になった原因(詳細には、外部からの1回目の攻撃によってICカードのライフサイクルステータスが廃止状態になった原因)の解析が困難になってしまう恐れがあった。
【0071】
そこで、本実施形態のICカード1では、上述したように、検知部114が外部からの攻撃による異常を検知した場合に処理部115が実行する割り込み処理を、割り込み処理方式選択処理にて予め選択する。具体的に、ICカード1のライフサイクルステータスが廃止状態であると判定部111によって判定された場合、選択部112は、ロギング情報を更新しない割り込み処理Aを選択する。書き込み部113は、割り込み処理Aが選択されたことを示す処理情報をレジスタ15へ書き込む。一方、ICカード1のライフサイクルステータスが運用状態又はロック状態であると判定部111によって判定された場合、選択部112は、ロギング情報を更新する割り込み処理Bを選択する。書き込み部113は、割り込み処理Bが選択されたことを示す処理情報をレジスタ15へ書き込む。
そして、検知部114が外部からの攻撃による異常を検知し、かつ処理情報が割り込み処理Aを示す場合、処理部115は、ロギング情報を更新しない割り込み処理Aを実行する。一方、検知部114が外部からの攻撃による異常を検知し、かつ処理情報が割り込み処理Bを示す場合、処理部115は、ロギング情報を更新する割り込み処理Bを実行する。
【0072】
即ち、ICカード1のライフサイクルステータスを廃止状態に遷移させる重大なエラー(外部からの1回目の攻撃による異常)が検知部114によって検知された場合には、ICカード1が外部から2回目以降の攻撃を受けても、処理部115がロギング情報を更新せず、外部からの1回目の攻撃によってICカード1のライフサイクルステータスが廃止状態になった原因を示すロギング情報が、上書きされることなく、記憶部120に残される。
【0073】
そのため、本実施形態に係るICカード1では、ICカード1のライフサイクルステータスが廃止状態になった後、ICカード1が外部から攻撃を受けることによってロギング情報が更新されないため、ICカード1のライフサイクルステータスが廃止状態になった原因の解析が困難になってしまう恐れを抑制することができる。
つまり、本実施形態のICカード1では、ICカード1のライフサイクルステータスが廃止状態になった原因の解析が困難になってしまう恐れを抑制することができる。
また、本実施形態のICカード1では、ICカード1のライフサイクルステータスが廃止状態になった原因を示すロギング情報が外部の攻撃者によって改ざんされる恐れを抑制することができる。
【0074】
(2)VERIFYコマンド実行中における処理の流れ
続いて、
図7から
図9を参照して、ICカード1のVERIFY(書き込み検証)コマンド実行中における処理の流れについて説明する。
図7は、本実施形態に係るICカードのVERIFYコマンド実行中における処理の流れの一例を示すフローチャートである。
【0075】
図7に示すように、まず、処理部115は、VERIFYコマンド処理を開始する(ステップS101)。VERIFYコマンドは、パスワード認証を実施するコマンドである。
次いで、処理部115は、処理1:func1()を実行する(ステップS102)。
処理1の実行中に、検知部114が外部からの攻撃による異常を検知しなかった場合、ステップS103に進む。
一方、処理1の実行中に、検知部114が外部からの攻撃による異常を検知した場合、ステップS105に進む。
【0076】
ステップS103では、処理部115が処理2:func2()を実行する。
処理2の実行中に、検知部114が外部からの攻撃による異常を検知しなかった場合には、ステップS104に進む。
一方、処理2の実行中に、検知部114が外部からの攻撃による異常を検知した場合には、ステップS106に進む。
【0077】
ステップS104では、処理部115が処理3:func3()を実行する。
処理3の実行中に、検知部114が外部からの攻撃による異常を検知しなかった場合には、
図7に示すVERIFYコマンドが正常に終了し、コマンド受信待ちの状態に戻る。
一方、処理3の実行中に、検知部114が外部からの攻撃による異常を検知した場合には、ステップS107に進む。
【0078】
ステップS105では、処理部115が、処理1の実行を中止し、レジスタ15に記憶されている処理情報を確認し、処理情報が示す割り込み処理の割り込み処理関数を呼び出し(処理を割り込み処理関数に遷移させて)、割り込み処理を実行する。割り込み処理の詳細は、後述する。
【0079】
ステップS106では、処理部115が、処理2の実行を中止し、レジスタ15に記憶されている処理情報を確認し、処理情報が示す割り込み処理の割り込み処理関数を呼び出し(処理を割り込み処理関数に遷移させて)、割り込み処理を実行する。割り込み処理の詳細は、後述する。
【0080】
ステップS107では、処理部115が、処理3の実行を中止し、レジスタ15に記憶されている処理情報を確認し、処理情報が示す割り込み処理の割り込み処理関数を呼び出し(処理を割り込み処理関数に遷移させて)、割り込み処理を実行する。割り込み処理の詳細は、後述する。
【0081】
ここで、
図8及び
図9を参照して、VERIFYコマンド実行中の割り込み処理の流れについて説明する。
図8及び
図9は、本実施形態に係るVERIFYコマンド実行中の割り込み処理において実行される処理の流れの一例を示すフローチャートである。
図8は、割り込み処理Aにおける処理の流れの一例を示す。
図9は、割り込み処理Bにおける処理の流れの一例を示す。なお、
図8及び
図9には、
図7のステップS102における割り込み処理の一例が示されている。
【0082】
処理1の実行中に検知部114が外部からの攻撃による異常を検知した場合、処理部115は、処理を割り込み処理(ステップS105)に遷移させる。処理情報が割り込み処理Aを示す場合、処理部115は、ステップS105にて割り込み処理A:funcA()を実行する。
図8に示すように、処理部115は、割り込み処理A:funcA()にてエラー処理を実行する(ステップS1050)。
次いで、処理部115は、図示しないステップにおいて、後処理(詳細には、ICカード1が受けた攻撃に対応する後処理)を実行する。
なお、割り込み処理Aでは、処理部115が、記憶部120に記憶されているロギング情報を更新しないため、記憶部120がロギング情報を保存し続ける。
【0083】
処理情報が割り込み処理Bを示す場合、処理部115は、ステップS105にて割り込み処理B:funcB()を実行する。
図9に示すように、処理部115は、割り込み処理B:funcB()にてエラー処理を実行する(ステップS1051)。
次いで、処理部115は、検知部114が検知した外部からの攻撃による異常を示す異常情報に基づき、記憶部120に記憶されているロギング情報を更新する(ステップS1052)。
次いで、処理部115は、図示しないステップにおいて、後処理を実行する。
【0084】
なお、
図8及び
図9を参照してステップS102における割り込み処理の一例について説明したが、ステップS103及びステップS104における割り込み処理も同様である。また、
図7に示す例では、処理1、処理2、及び処理3の実行中に実施エラーが生じた場合にも、
図8及び
図9に示す割り込み処理が実行される。
【0085】
以上説明したように、本実施形態に係るICカード1では、外部からの攻撃による異常が検知部114によって検知された際に、処理部115が、選択部112によって予め選択された割り込み処理を実行する。当該割り込み処理は、記憶部120に記憶されたロギング情報を更新しない割り込み処理A、又は記憶部120に記憶されたロギング情報を更新する割り込み処理Bのいずれか一方である。選択部112は、ICカード1のライフサイクルステータスを判定する判定部111による判定の結果が廃止状態である場合は割り込み処理Aを選択し、判定の結果が廃止状態でない場合は外部からの攻撃による異常を示す情報に基づき記憶部120に記憶されたロギング情報を更新する割り込み処理Bを選択する。
【0086】
かかる構成により、ICカード1のライフサイクルステータスが廃止状態である場合には、処理部115が、記憶部120に記憶されているロギング情報を更新せず、記憶部120に記憶されているロギング情報は、上書きされることなく、そのまま保存される。上書きされることなくそのまま保存されるロギング情報は、ライフサイクルステータスが廃止状態になった原因を示す情報である。
【0087】
そのため、本実施形態のICカード1では、セキュリティ強度を低下させることなく、記憶部120に保存されているロギング情報に基づいて、ICカード1が廃止状態に遷移した原因の解析を容易に行うことができる。
また、本実施形態のICカード1では、ICカード1が廃止状態に遷移した後、記憶部120に保存されているロギング情報が更新されないため、ICカード1が廃止状態に遷移した原因を示すロギング情報が、外部の攻撃者によって改ざんされる恐れを抑制することができる。
【0088】
つまり、本実施形態のICカード1では、ICカード1が廃止状態に遷移した後、ICカード1が廃止状態に遷移した原因を隠蔽するために、攻撃者が新たな攻撃を行っても、ICカード1が廃止状態に遷移した原因を示すロギング情報は、改ざんされることなく保存され続ける。
【0089】
よって、本実施形態に係るICカード1は、ICカードのライフサイクルステータスが廃止状態になった原因の解析を確実に行うことを可能とする。
【0090】
以上、本発明の実施形態について説明した。なお、上述した実施形態におけるICカード1が備える各部の機能の一部又は全部をコンピュータで実現するようにしてもよい。その場合、この機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することによって実現してもよい。なお、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD-ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間の間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含んでもよい。また上記プログラムは、前述した機能の一部を実現するためのものであってもよく、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであってもよく、FPGA(Field Programmable Gate Array)等のプログラマブルロジックデバイスを用いて実現されるものであってもよい。
【0091】
以上、図面を参照してこの発明の実施形態について詳しく説明してきたが、具体的な構成は上述のものに限られることはなく、この発明の要旨を逸脱しない範囲内において様々な設計変更等をすることが可能である。
【符号の説明】
【0092】
1 ICカード
10 I/O
11 CPU
12 ROM
13 RAM
14 EEPROM
15 レジスタ
100 通信部
110 制御部
111 判定部
112 選択部
113 書き込み部
114 検知部
115 処理部
120 記憶部