説明

セキュリティ試験支援装置、セキュリティ試験支援方法およびセキュリティ試験支援プログラム

【課題】プログラムを書き込んだICを製造することなくセキュリティ試験を行うための試験項目を生成することができる。
【解決手段】パラメータDB(バイパス)15と、パラメータDB(改ざん)16とは、ICカードに対する物理的な攻撃により当該ICカードで生じた結果に基づいた、ICカードに書き込む前のプログラムに対して実行する試験に用いるパラメータを記憶する。試験項目生成部17は、パラメータDB(バイパス)15と、パラメータDB(改ざん)16とが記憶するパラメータに基づいて、プログラムに対して実行する試験項目を生成する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、セキュリティ試験支援装置、セキュリティ試験支援方法およびセキュリティ試験支援プログラムに関する。
【背景技術】
【0002】
近年、入退室管理のための認証用デバイスや電子マネー等のサービスには、IC(集積回路)を組み込んだICカードが利用されている。しかしながら、これらのサービスでは、例えば他人へのなりすましや電子マネーの不正な増加といった脅威が存在している。ICカードには、これらの脅威に対抗して安全なサービスを提供するために、セキュリティ対策として認証機能や暗号化機能等のセキュリティ機能が実装されている。
【0003】
ICカード開発におけるセキュリティ試験では、サービス実行上の不正行為を防止するために実装されるセキュリティ機能が正しく提供されていることを確認するための試験と、脆弱性および攻撃に対する試験の2種類の試験が存在し、前者はセキュリティ機能試験、後者はセキュリティ特性試験と呼ばれる。これら双方の試験によりICカードの安全性を確認する必要がある。
【0004】
また、IC等の被測定デバイスに対して、DC(直流)特性試験、AC(交流)特性試験、機能試験等の各種試験を行う装置が知られている(例えば特許文献1参照)。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2004−85345号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、従来知られている、DC(直流)特性試験、AC(交流)特性試験、機能試験等の各種試験を行う装置でIC等の試験を行う場合には、プログラムを書き込んだICを製造した後でなければ試験を行うことができない。特に、ICカードに対して物理的な攻撃を行うサイドチャネル攻撃に対する試験については、ICを製造した後でなければ試験を行うことができない。従って、試験を行うためには、作成したプログラムを一度IC上に書き込み、ハードウェアとしてのICチップを生成しなければならない。また、試験の結果に応じてプログラムを改修する場合には、プログラムを改修した後、改修後のプログラムを書き込んだICを新たに製造する必要がある。そのため、大幅な手戻りが発生するという問題がある。
【0007】
本発明は上記課題を解決するためになされたものであり、プログラムを書き込んだICを製造することなくセキュリティ試験を行うための試験項目を生成することができるセキュリティ試験支援装置、セキュリティ試験支援方法およびセキュリティ試験支援プログラムを提供することを目的とする。
【課題を解決するための手段】
【0008】
本発明は、ICカードに対する物理的な攻撃により当該ICカードで生じた結果に基づいた、前記ICカードに書き込む前のプログラムに対して実行する試験に用いるパラメータを記憶するパラメータ記憶部と、前記パラメータ記憶部が記憶する前記パラメータに基づいて、前記プログラムに対して実行する試験項目を生成する試験項目生成部と、を備えることを特徴とするセキュリティ試験支援装置である。
【0009】
また、本発明のセキュリティ試験支援装置において、前記試験項目生成部は、サービス実行上の不正行為を防止するために実装されるセキュリティ機能が正しく提供されていることを確認するセキュリティ機能試験と、脆弱性および攻撃に対する試験であるセキュリティ特性試験とを行うための試験項目を生成することを特徴とする。
【0010】
また、本発明は、前記ICカードの種別毎に、前記ICカードに対する攻撃の対応方法を記憶するカード種別記憶部と、試験対象の前記ICカードの種別を入力する入力部と、を備え、前記試験項目生成部は、前記入力部が入力する前記種別と、前記カード種別記憶部が記憶する前記対応方法と、前記パラメータ記憶部が記憶する前記パラメータとに基づいて、前記入力部が入力する前記種別のICカードに書き込む前の前記プログラムに対して実行する前記試験項目を生成することを特徴とするセキュリティ試験支援装置である。
【0011】
また、本発明は、前記ICカードに対する物理的な攻撃により当該ICカードで生じた結果を含む攻撃実績を収集する攻撃実績収集部と、前記攻撃実績収集部が収集した前記攻撃実績に基づいて前記パラメータを生成し、前記パラメータ記憶部が記憶している前記パラメータを前記生成したパラメータに更新するパラメータ更新部と、を備えることを特徴とするセキュリティ試験支援装置である。
【0012】
また、本発明は、ICカードに対する物理的な攻撃により当該ICカードで生じた結果に基づいた、前記ICカードに書き込む前のプログラムに対して実行する試験に用いるパラメータを記憶するパラメータ記憶部が記憶する前記パラメータに基づいて、前記プログラムに対して実行する試験項目を生成する試験項目生成ステップを含むことを特徴とするセキュリティ試験支援方法である。
【0013】
また、本発明は、コンピュータに、ICカードに対する物理的な攻撃により当該ICカードで生じた結果に基づいた、前記ICカードに書き込む前のプログラムに対して実行する試験に用いるパラメータを記憶するパラメータ記憶部が記憶する前記パラメータに基づいて、前記プログラムに対して実行する試験項目を生成する試験項目生成ステップを実行させるためのセキュリティ試験支援プログラムである。
【発明の効果】
【0014】
本発明によれば、パラメータ記憶部は、ICカードに対する物理的な攻撃により当該ICカードで生じた結果に基づいた、ICカードに書き込む前のプログラムに対して実行する試験に用いるパラメータを記憶する。また、試験項目生成部は、パラメータ記憶部が記憶するパラメータに基づいて、プログラムに対して実行する試験項目を生成する。従って、セキュリティ試験支援装置は、プログラムを書き込んだICを製造することなくセキュリティ試験を行うための試験項目を生成することができる。
【図面の簡単な説明】
【0015】
【図1】本発明の実施形態におけるセキュリティ試験支援装置の構成を示したブロック図である。
【図2】本実施形態におけるICカードに書き込まれるプログラムの処理において、プログラムを構成する各ソフトウェアモジュール間の呼び出し関係および各ソフトウェアモジュールが呼び出すデータについて示した概念図である。
【図3】本実施形態におけるカード種別DBが記憶するデータのデータ構成を示した概念図である。
【図4】本実施形態における攻撃実績DBが記憶するデータのデータ構成を示した概念図である。
【図5】本実施形態におけるパラメータDB(バイパス)のデータ構成を示した概念図である。
【図6】本実施形態におけるパラメータDB(改ざん)のデータ構成を示した概念図である。
【図7】本実施形態におけるパラメータDB更新部の動作手順を示したフローチャートである。
【図8】本実施形態における試験項目生成部の動作手順を示したフローチャートである。
【発明を実施するための形態】
【0016】
以下、本発明の一実施形態について、図面を参照して説明する。図1は、本実施形態におけるセキュリティ試験支援装置の構成を示したブロック図である。図示する例では、セキュリティ試験支援装置1は、入力部10と、カード種別DB(データベース)11(カード種別記憶部)と、攻撃実績学習部12(攻撃実績収集部)と、攻撃実績DB13と、パラメータDB更新部14(パラメータ更新部)と、パラメータDB(バイパス)15(パラメータ記憶部)と、パラメータDB(改ざん)16(パラメータ記憶部)と、試験項目生成部17と、試験項目提示部18とを備えている。なお、本実施形態におけるセキュリティ試験支援装置1は、サービス実行上の不正行為を防止するために実装されるセキュリティ機能が正しく提供されていることを確認するセキュリティ機能試験と、脆弱性および攻撃に対する試験であるセキュリティ特性試験とを行うための試験項目を生成する。
【0017】
入力部10は、試験対象であるICを備えたカードの種別を特定するカード種別の入力を受け付け、入力を受け付けたカード種別を試験項目生成部17に対して入力する。カード種別DB11は、カード種別毎に、攻撃に対する対応方法を予め記憶している。カード種別DB11のデータ構成の詳細については後述する。攻撃実績学習部12は攻撃実績を収集し、収集した攻撃実績を攻撃実績DB13に記憶させる。攻撃実績の収集方法は、例えば、ユーザからの入力や、外部装置から送信されたものを取得する。なお、攻撃実績学習部12が収集する攻撃実績は、サイドチャネル攻撃などICカードに対して物理的に攻撃する物理的攻撃の攻撃実績を含む。攻撃実績DB13は、攻撃実績学習部12が収集した攻撃実績を記憶する。なお、攻撃実績DB13のデータ構成の詳細については後述する。
【0018】
パラメータDB更新部14は、攻撃実績DB13が記憶するデータ(過去の攻撃実績)に基づいて、セキュリティ特性試験で用いるパラメータを生成し、パラメータDB(バイパス)15及びパラメータDB(改ざん)16に記憶させる。なお、既にパラメータDB(バイパス)15及びパラメータDB(改ざん)16がパラメータを記憶している場合には、パラメータDB(バイパス)15及びパラメータDB(改ざん)16が記憶しているパラメータを更新する。なお、パラメータDB更新部14は、定期的または不定期に、あるいは、攻撃実績DB13が更新される度に、パラメータを生成し、パラメータDB(バイパス)15及びパラメータDB(改ざん)16が記憶するデータを更新する。
【0019】
パラメータDB(バイパス)15は、処理をバイパスする攻撃に対する試験、すなわちクリティカルプロセスに対する試験を行う際に用いるパラメータ(バイパス)を記憶する。パラメータDB(改ざん)16は、メモリ上に配置されるデータを改ざんする攻撃(メモリの改ざん攻撃)に対する試験、すなわちクリティカルデータに対する試験を行う際に用いるパラメータ(改ざん)を記憶する。なお、上述したように、パラメータDB(バイパス)15及びパラメータDB(改ざん)16が記憶するパラメータは、パラメータDB更新部14によって、定期的または不定期に、あるいは、攻撃実績DB13が更新される度に更新される。なお、パラメータDB(バイパス)15、パラメータDB(改ざん)16のデータ構成の詳細については後述する。
【0020】
試験項目生成部17は、入力部10から入力されたカード種別と、カード種別DB11が記憶するデータと、パラメータDB(バイパス)15が記憶するデータと、パラメータDB(改ざん)16が記憶するデータとに基づいて試験項目を生成する。試験項目提示部18は、試験項目生成部17が生成した試験項目を表示する。なお、試験項目提示部18は、試験項目生成部17が生成した試験項目をデータとして出力するようにしてもよい。
【0021】
次に、ICカードに書き込まれるプログラムの処理の概念について説明する。図2は、本実施形態におけるICカードに書き込まれるプログラムの処理において、プログラムを構成する各ソフトウェアモジュール間の呼び出し関係および各ソフトウェアモジュールが呼び出すデータについて示した概念図である。図示する例では、プログラムの処理の層として、レイヤ#1〜レイヤ#3の3つの層に分かれている。レイヤ#1に属するモジュールは、ICカードリーダライタなどとの通信により入出力I/Oから入力されるコマンドを実行する。また、レイヤ#2に属するモジュールは、上記コマンドをレイヤ#1に属するモジュールから受け取り、受け取ったコマンドに応じた処理を実行する。また、レイヤ#3に属するモジュールは、レイヤ#2に属するモジュールが処理を行うにあたって必要な機能(図中では「ファンクション」と示す)、例えば認証機能や暗号化機能を実行するモジュールであり、レイヤ#2に属するモジュールから関数コールを受けて処理を実行する。
【0022】
なお、レイヤ#1〜レイヤ#3の各層に属するモジュールのそれぞれに、クリティカルプロセスおよびクリティカルデータが存在する。クリティカルプロセスは、そのプロセスをバイパスされることにより本来出力すべき結果とは異なる結果を出力してしまうなど、各モジュールの中心となるプロセスのことである。また、クリティカルデータは、例えば暗号化処理における秘密鍵データのように、データが改ざんされることにより本来の機能を実現出来なくなるおそれがあるデータのことである。
【0023】
次に、カード種別DB11が記憶するデータの詳細について説明する。カード種別DB11は、ICカードの種類毎に、攻撃に対する対応方法を記憶している。図3は、本実施形態におけるカード種別DB11が記憶するデータのデータ構成を示した概念図である。図示する例では、カード種別として、金銭関連と、認証関連と、データ保護との3つの種別がある。また、金融関連のカード種別としては、クレジットカードと、キャッシュカードと、電子マネー(プリペイド等)と、ポイントサービス(換金性 高)と、ポイントサービス(換金性 低)とが示されている。また、認証関連のカード種別としては、本人認証と、属性認証1(メリット高)と、属性認証2(メリット低)とが示されている。また、データ保護のカード種別としては、機密性高(個人情報を含む)と、機密性中(個人情報を含まない)と、機密性情報無しとが示されている。
【0024】
また、図示する例では、各ICカードのリスクおよびそのリスクを解消できているか否かを確認するために必要となる試験の種別が示されている。なお、リスクを解消できているか否かを確認するために必要となる試験の種別のカラムには「○」が示されており、必要ではない試験の種別のカラムには「−」が示されている。
【0025】
例えば、クレジットカードのリスクは、PIN(Personal identification number、暗証番号)情報の不正取得による不正利用である。このリスクに対応するために、クレジットカードに対して実施するセキュリティ機能試験の試験項目は「ホワイトボックステスト」と「ブラックボックステスト」とであり、セキュリティ特性試験の試験項目は「処理のバイパス」と「メモリの改ざん」とであることが示されている。なお、ホワイトボックステストは、システム内部の構造が意図した通りに動作しているかを確認する試験である。また、ブラックボックステストは、内部構造とは関係なく、外部から見て仕様書通りの入出力になっているかを確認する試験である。
【0026】
また、例えば、ポイントサービス(換金性 高)のリスクは、ポイント情報の改ざんである。このリスクに対応するために、ポイントサービス(換金性 高)に対して実施するセキュリティ試験の試験項目は「ホワイトボックステスト」と「ブラックボックステスト」とであり、セキュリティ特性試験の試験項目は「メモリの改ざん」であることが示されている。
【0027】
また、ポイントサービス(換金性 低)のリスクは、ポイント情報の改ざん(※リスクを許容する)である。このリスクに対応するために、ポイントサービス(換金性 低)に対して実施するセキュリティ機能試験の試験項目は「ホワイトボックステスト」と「ブラックボックステスト」とであり、セキュリティ特性試験の試験項目は無いことが示されている。なお、他のカードリスクおよび試験項目については図示するとおりである。
【0028】
次に、攻撃実績DB13が記憶するデータの詳細について説明する。図4は、本実施形態における攻撃実績DB13が記憶するデータのデータ構成を示した概念図である。攻撃実績DB13は、発生した攻撃毎に、攻撃を一意に識別するためのIDと、攻撃内容が「処理のバイパス」であるか「メモリの改ざん」であるかを示すラベルと、攻撃対象レイヤと、攻撃対象と、攻撃種別と、攻撃回数と、攻撃結果とを関連付けて記憶している。なお、攻撃実績DB13が記憶する攻撃実績は、サイドチャネル攻撃など物理的な攻撃実績を含む。図示する例では、ID「1」で一意に特定される攻撃実績は、「処理のバイパス」を行う攻撃であり、攻撃対象レイヤが「レイヤ#3」であり、攻撃対象が「C/P(クリティカルプロセス)」であり、攻撃種別が「電力」であり、攻撃回数が「c回」であり、攻撃結果は「Estepの処理をバイパスする」攻撃であったことを示している。
【0029】
また、ID「2」で一意に特定される攻撃実績は、「メモリの改ざん」を行う攻撃であり、攻撃対象レイヤが「レイヤ#3」であり、攻撃対象が「C/D(クリティカルデータ)」であり、攻撃種別が「光」であり、攻撃回数が「d回」であり、攻撃結果は「メモリ領域のFbyteの値をall 0(全て0)に書き換える」攻撃であったことを示している。
【0030】
次に、パラメータDB(バイパス)15が記憶するデータの詳細について説明する。パラメータDB(バイパス)15は、クリティカルプロセスに対するテストを行う際に用いるパラメータを格納するデータベースである。図5は、本実施形態におけるパラメータDB(バイパス)15のデータ構成を示した概念図である。パラメータDB(バイパス)15は、レイヤ#1〜#3の各試験対象と、「処理をバイパスする」攻撃に対する試験を行う際に用いるパラメータ(バイパス)とを関連付けて記憶している。なお、図示する例は、カード種別が「クレジットカード」であるICカードに対する試験を行う際に用いるパラメータを示しているが、パラメータDB(バイパス)15は、カード種別が「クレジットカード」以外のカードについても、カード種別毎に、図5に示したデータと同様のデータを記憶している。
【0031】
例えば、カード種別が「クレジットカード」であるICカードに対する試験を行う際には、カード種別が「クレジットカード」であるICカードに実装されている機能を特定し、特定した機能に対して試験を行う。例えば、ICカードに実装されている機能は図示しないデータベースに記憶されており、このデータベースが記憶する情報に基づいてICカードに実装されている機能を特定する。そして、カード種別が「クレジットカード」であるICカードに「認証機能」が実装されている場合、「認証機能」を試験対象とする。図5に示す例では、試験対象が「認証機能」である試験を行う際に用いるパラメータは、バイパス回数「1回」とバイパス実行間隔「20step」であることを示している。なお、1ステップは、各ファンクションを実現するソースコード1行に対応する。また、試験対象が「暗号化機能」である試験を行う際に用いるパラメータは、バイパス回数「2回」とバイパス実行間隔は「20step」であることを示している。なお、他の試験対象の試験を行う際に用いるパラメータについては図示するとおりである。また、図示する例では、パラメータDB(バイパス)15は、バイパス回数「1回」、「2回」、「n回」等、パラメータ値を予め記憶しているが、新たなパラメータ値を設定する場合には、新たに列を追加することで対応することが可能である。
【0032】
次に、パラメータDB(改ざん)16が記憶するデータの詳細について説明する。パラメータDB(改ざん)16は、クリティカルデータに対するテストを行う際に用いるパラメータを格納するデータベースである。図6は、本実施形態におけるパラメータDB(改ざん)16のデータ構成を示した概念図である。パラメータDB(改ざん)16は、レイヤ#1〜#3の各試験対象と、「メモリの改ざん」攻撃に対する試験を行う際に用いるパラメータ(改ざん)とを関連付けて記憶している。なお、図示する例は、カード種別が「クレジットカード」であるICカードに対する試験を行う際に用いるパラメータを示しているが、パラメータDB(改ざん)16は、カード種別が「クレジットカード」以外のカードについても、カード種別毎に、図6に示したデータと同様のデータを記憶している。
【0033】
例えば、カード種別が「クレジットカード」であるICカードに対する試験を行う際には、上述した通り、カード種別が「クレジットカード」であるICカードに実装されている機能を特定し、特定した機能に対して試験を行う。例えば、ICカードに実装されている機能は図示しないデータベースに記憶されており、このデータベースが記憶する情報に基づいてICカードに実装されている機能を特定する。そして、カード種別が「クレジットカード」であるICカードに「暗号化機能」が実装されている場合、「暗号化機能」を試験対象とする。図6に示す例では、試験対象が「暗号化機能」である試験を行う際に用いるパラメータは、変更頻度「2回」と、変更可能データ長「1bit」、「1Byte」および「変数長」と、変更可能な値「(データ長 1bit):0 to 1,1 to 0」、「(データ長 1Byte):? to all 0,? to all 1,? to 乱数,? to 任意のデータ」および「(データ長 変数長):? to all 0,? to all 1,? to 乱数,? to 任意のデータ」であることを示している。
【0034】
なお、「(データ長 1bit):0 to 1」は、1bitのデータ0を1に書き換えることを示す。また、「(データ長 1bit):1 to 0」は、1bitのデータ1を0に書き換えることを示す。また、「(データ長 1Byte):? to all 0」は、1Byteのデータを全て0に書き換えることを示す。また、「(データ長 1Byte):? to all 1」は、1Byteのデータを全て1に書き換えることを示す。また、「(データ長 1Byte):? to 乱数」は、1Byteのデータを乱数に書き換えることを示す。また、「(データ長 1Byte):? to 任意のデータ」は、1Byteのデータを任意のデータに書き換えることを示す。また、「(データ長 変数長):? to all 0」は、変数を全て0に書き換えることを示す。また、「(データ長 変数長):? to all 1」は、変数を全て1に書き換えることを示す。また、「(データ長 変数長):? to 乱数」は、変数を乱数に書き換えることを示す。また、「(データ長 変数長):? to 任意のデータ」は、変数を任意のデータに書き換えることを示す。なお、本実施形態では「?」は変数に格納されている値を示す。
【0035】
なお、他の試験対象については図示するとおりである。また、パラメータDB(改ざん)16は、変更頻度や変更可能な値としてパラメータ値を予め記憶しているが、新たなパラメータ値を設定する場合には、新たに列を追加することで対応することが可能である。
【0036】
次に、セキュリティ試験支援装置1のパラメータDB更新部14の動作手順について説明する。図7は、本実施形態におけるパラメータDB更新部14の動作手順を示したフローチャートである。
【0037】
(ステップS1)パラメータDB更新部14は、攻撃実績DB13から各行の「ラベル」を読み出し、ラベル毎にデータを振り分ける。その後、ステップS2の処理に進む。
【0038】
(ステップS2)パラメータDB更新部14は、攻撃実績DB13から各行の「攻撃対象レイヤ」を読み出し、ステップS1の処理で振り分けたデータ毎に、攻撃対象レイヤが同種のデータを取りまとめる。これにより、パラメータDB更新部14は、攻撃実績DB13が記憶するデータ(攻撃実績)を、「ラベル」と「攻撃対象レイヤ」とが同じデータ毎に分類することができる。その後、ステップS3の処理に進む。
【0039】
(ステップS3)パラメータDB更新部14は、ステップS2の処理で分類したデータ毎に、攻撃回数および攻撃結果の内容に基づいて、「ラベル」と「攻撃対象レイヤ」とで一意に特定される攻撃での攻撃回数と、バイパスされたクリティカルプロセスのステップ数、または改ざんされたメモリのbyte数および改ざん内容とを決定する。なお、パラメータDB更新部14は、データの種類に応じて、分類したデータ毎の標準偏差、または平均値、または最大値、または最小値、または最頻出値を算出することで、攻撃回数や、バイパスされたクリティカルプロセスのステップ数や、改ざんされたメモリのbyte数および改ざん内容とを決定する。その後、ステップS4の処理に進む。
【0040】
(ステップS4)パラメータDB更新部14は、パラメータDB(バイパス)15とパラメータDB(改ざん)16とが記憶している値を、攻撃回数や、バイパスされたクリティカルプロセスのステップ数や、改ざんされたメモリのbyte数および改ざん内容に更新する。その後、処理を終了する。
【0041】
上述したステップS1〜ステップS4の処理の具体例を、図4に示した攻撃実績DB13の値を用いて説明する。ステップS1の処理では、パラメータDB更新部14は、ラベルが「バイパス」であるID「1」の攻撃実績と、ラベルが「メモリ改ざん」であるID「2」の攻撃実績とに振り分ける。続いて、ステップS2の処理では、パラメータDB更新部14は、ID「1」の攻撃実績を、ラベルが「バイパス」であるデータのうち、攻撃対象レイヤが「レイヤ#3」であるデータとして分類する。また、パラメータDB更新部14は、ID「2」の攻撃実績を、ラベルが「メモリ改ざん」であるデータのうち、攻撃対象レイヤが「レイヤ#3」であるデータとして分類する。
【0042】
続いて、ステップS3の処理では、パラメータDB更新部14は、ラベルが「バイパス」であり、攻撃対象レイヤが「レイヤ#3」であるデータに基づいて、攻撃回数とバイパス数とを決定する。図4に示した攻撃実績DB13では、ラベルが「バイパス」であり、攻撃対象レイヤが「レイヤ#3」であるデータはID「1」で特定されるデータだけである。そのため、パラメータDB更新部14は、ID「1」の攻撃実績の攻撃回数「c回」とバイパス数「Estep」とに基づいて、「レイヤ#3」の処理に対して「バイパス」する攻撃の攻撃回数を「c回」と決定し、バイパス数を「Estep」と決定する。
【0043】
また、パラメータDB更新部14は、ラベルが「メモリ改ざん」であり、攻撃対象レイヤが「レイヤ#3」であるデータに基づいて、攻撃回数と、改ざんされたメモリ容量と、改ざん内容とを決定する。図4に示した攻撃実績DB13では、ラベルが「メモリ改ざん」であり、攻撃対象レイヤが「レイヤ#3」であるデータはID「2」で特定されるデータだけである。そのため、パラメータDB更新部14は、ID「2」の攻撃実績の攻撃回数「d回」と、改ざんされたメモリのbyte数「Fbyte」と、改ざん内容「? to all 0」とに基づいて、「レイヤ#3」の処理に対して「メモリ改ざん」する攻撃の攻撃回数を「d回」と決定し、改ざんされたメモリのbyte数を「Fbyte」と決定し、改ざん内容を「? to all 0」と決定する。
【0044】
なお、図4に示した攻撃実績DB13では、ラベルと攻撃対象データとで分類した場合、各条件に当てはまるデータはそれぞれ1件であるため、上述した例では、条件に当てはまるデータの値をそのまま用いたが、各条件に当てはまるデータが複数存在する場合には、上述した通り、データの種類に応じて、分類したデータ毎の標準偏差、または平均値、または最大値、または最小値、または最頻出値を算出することで、攻撃回数や、バイパスされたクリティカルプロセスのステップ数や、改ざんされたメモリのbyte数および改ざん内容とを決定する。
【0045】
続いて、ステップS4の処理では、パラメータDB更新部14は、パラメータDB(バイパス)15が記憶するデータのうち、「レイヤ#3」の処理に対して「バイパス」する攻撃の攻撃回数を「c回」に書き換え、バイパス実行間隔(バイパス数)を「Estep」に書き換える。また、パラメータDB更新部14は、パラメータDB(改ざん)16が記憶するデータのうち、「レイヤ#3」の処理に対して「メモリ改ざん」する攻撃の攻撃回数を「d回」に書き換え、変更可能なデータ長(改ざんされたメモリのbyte数)を「Fbyte」に書き換え、変更可能な値(改ざん内容)を「? to all 0」に書き換える。
【0046】
上述したステップS1〜S4の処理を実行することで、パラメータDB更新部14は、攻撃実績DB13に記憶されるデータに基づいて、パラメータDB(バイパス)15と、パラメータDB(改ざん)16との値を更新することができる。なお、上述した例では、パラメータDB更新部14は、ラベル毎および攻撃レイヤ毎に攻撃データを分類してパラメータを算出しているが、これに加え、攻撃種別毎に攻撃データを分類してパラメータを算出してもよい。
【0047】
次に、セキュリティ試験支援装置1の試験項目生成部17の動作手順について説明する。図8は、本実施形態における試験項目生成部17の動作手順を示したフローチャートである。
【0048】
(ステップS10)ユーザは、試験を行うカードのカード種別を入力部10に入力する。入力部10は、ユーザから入力されたカード種別を試験項目生成部17に対して入力する。その後、ステップS11の処理に進む。
(ステップS11)試験項目生成部17は、ステップS10の処理で入力されたカード種別に対応する試験項目を、カード種別DB11から読み出す。また、試験項目生成部17は、ステップS10の処理で入力されたカード種別に対応するICカードに実装されている機能を特定する。その後、ステップS12の処理に進む。
【0049】
(ステップS12)試験項目生成部17は、ステップS11の処理で読み出した試験項目のうち、「セキュリティ特性試験」の試験項目それぞれについて、ICカードに実装されている機能に対する試験で用いるパラメータを、パラメータDB(バイパス)15と、パラメータDB(改ざん)16とから読み出す。続いて、試験項目生成部17は、ステップS11の処理で読み出した試験項目と、ステップS11の処理で特定したICカードに実装されている機能と、パラメータDB(バイパス)15およびパラメータDB(改ざん)16から読み出したパラメータを用いて、ステップS10で入力されたカード種別のICカードに書き込むプログラムに対して実行する試験項目を生成する。その後、ステップS13の処理に進む。
(ステップS13)試験項目提示部18は、ステップS12の処理で試験項目生成部17が生成した試験項目を表示もしくはデータとして出力する。その後、処理を終了する。
【0050】
上述したステップS11〜ステップS13の処理の具体例を、図3に示したカード種別DB11と、図5に示したパラメータDB(バイパス)15と、図6に示したパラメータDB(改ざん)16との値を用いて説明する。なお、以下の例では、ステップS10の処理で、入力部10にユーザから入力されたカード種別は「クレジットカード」であるとする。
【0051】
ステップS11の処理では、試験項目生成部17は、カード種別「クレジットカード」に対応する試験項目「ホワイトボックステスト」と、「ブラックボックステスト」と、「処理のバイパス」と、「メモリの改ざん」とをカード種別DB11から読み出す。また、試験項目生成部17は、カード種別が「クレジットカード」であるICカードに実装されている機能を特定する。例えば、ICカードに実装されている機能は図示しないデータベースに記憶されており、試験項目生成部17は、このデータベースが記憶する情報に基づいてICカードに実装されている機能を特定する。この例では、カード種別が「クレジットカード」であるICカードには、「認証機能」と、「暗号化機能」と、「アクセス制御機能」とが実装されているとする。
【0052】
続いて、ステップS12の処理では、試験項目生成部17は、「セキュリティ特性試験」である「処理のバイパス」試験のうち、認証機能に対して行う試験で用いるパラメータ「バイパス回数:1回、バイパス実行間隔:20step」と、暗号化機能に対して行う試験で用いるパラメータ「バイパス回数:2回、バイパス実行間隔20step」と、アクセス制御機能に対して行う試験で用いるパラメータ「バイパス回数:1回、バイパス実行間隔20step」とをパラメータDB(バイパス)15から読み出す。
【0053】
また、試験項目生成部17は、「セキュリティ特性試験」である「メモリの改ざん」試験のうち、認証機能に対して行う試験で用いるパラメータ「変更頻度:1回、変更可能データ長:1bit,変数長、変更可能な値(データ長 1bit):0 to 1,1 to 0、変更可能な値(データ長 変数長):? to all 0,? to all 1,? to 乱数」と、暗号化機能に対して行う試験で用いるパラメータ「変更頻度:2回、変更可能データ長:1bit,1Byte,変数長、変更可能な値(データ長 1bit):0 to 1,1 to 0、変更可能な値(データ長 1Byte):? to all 0,? to all 1,? to 乱数,? to 任意のデータ、変更可能な値(データ長 変数長):? to all 0,? to all 1,? to 乱数,? to 任意のデータ」と、アクセス制御機能に対して行う試験で用いるパラメータ「変更頻度:1回、変更可能データ長:1Byte,変数長、変更可能な値(データ長 1Byte):? to all 0,? to all 1,? to 乱数、変更可能な値(データ長 変数長):? to all 0,? to all 1,? to 乱数」とをパラメータDB(改ざん)16から読み出す。
【0054】
また、試験項目生成部17は、カード種別「クレジットカード」のICカードに書き込むプログラムに対して実行する試験項目を生成する。そして、ステップS13の処理では、試験項目提示部18は、ステップS12の処理で試験項目生成部17が生成した試験項目を表示もしくはデータとして出力する。
【0055】
なお、図3に示したカード種別DB11と、図5に示したパラメータDB(バイパス)15と、図6に示したパラメータDB(改ざん)16との値に基づいて、試験項目生成部17が生成する、カード種別「クレジットカード」のICカードに書き込むプログラムに対して実行する試験項目は以下のとおりとなる。
【0056】
(セキュリティ機能試験)
・ホワイトボックステスト
・ブラックボックステスト
(セキュリティ特性試験)
・認証機能に対する処理のバイパス試験:「バイパス回数:1回、バイパス実行間隔:20step」
・暗号化機能に対する処理のバイパス試験:「バイパス回数:2回、バイパス実行間隔20step」
・アクセス制御機能に対する処理のバイパス試験:「バイパス回数:1回、バイパス実行間隔20step」
・認証機能に対するメモリ改ざん試験:「変更頻度:1回、変更可能データ長:1bit,変数長、変更可能な値(データ長 1bit):0 to 1,1 to 0、変更可能な値(データ長 変数長):? to all 0,? to all 1,? to 乱数」
・暗号化機能に対するメモリ改ざん試験:「変更頻度:2回、変更可能データ長:1bit,1Byte,変数長、変更可能な値(データ長 1bit):0 to 1,1 to 0、変更可能な値(データ長 1Byte):? to all 0,? to all 1,? to 乱数,? to 任意のデータ、変更可能な値(データ長 変数長):? to all 0,? to all 1,? to 乱数,? to 任意のデータ」
・アクセス制御機能に対するメモリ改ざん試験:「変更頻度:1回、変更可能データ長:1Byte,変数長、変更可能な値(データ長 1Byte):? to all 0,? to all 1,? to 乱数、変更可能な値(データ長 変数長):? to all 0,? to all 1,? to 乱数」
【0057】
なお、これまでセキュリティ特性試験の試験項目を生成するまでの手順を説明したが、セキュリティ特性試験の試験項目の生成とあわせてセキュリティ機能試験の試験項目を生成することとしてもよい。具体的には、試験項目生成部17は、図8におけるステップS11の処理でカード種別DB11から読み込んだ試験項目のうち「セキュリティ機能試験」の試験項目(ホワイトボックステストまたはブラックボックステスト)も生成する。なお、ホワイトボックステストの試験項目の生成には、ICカードに書き込むプログラム(図示しない)における分岐処理および当該分岐処理を行うための変数の値を特定した上で、分岐を網羅するように設定した変数値の組み合わせを試験項目として生成することとしてもよい。また、ブラックボックステストの試験項目の生成には、ICカードに入力可能な値の上限および下限(以下限界値)をプログラムから抽出し、前記限界値および上限以上もしくは下限以下の値を入力値とし、この入力値を入力した場合に想定されるICカードの処理結果を出力値として、試験項目を生成してもよい。
【0058】
上述した通り、本実施形態によれば、カード種別DB11は、試験対象のICカードの種別毎に、攻撃に対する対応方法を予め記憶している。また、パラメータDB更新部14は、サイドチャネル攻撃など物理的な攻撃実績を含む過去の攻撃内容に基づいて、各攻撃内容に対応したセキュリティ特性試験を行う際に用いるパラメータを決定し、パラメータDB(バイパス)15とパラメータDB(改ざん)16とに記憶させる。また、試験項目生成部17は、カード種別DB11と、パラメータDB(バイパス)15と、パラメータDB(改ざん)16とが記憶するデータに基づいて、入力部10に入力されたカード種別に対する試験項目を生成する。
【0059】
また、パラメータDB更新部14は、サイドチャネル攻撃など物理的な攻撃実績を含む過去の攻撃実績に基づいて、各攻撃内容に対応したセキュリティ特性試験を行う際に用いるパラメータを決定する。そのため、パラメータDB更新部14が決定する、セキュリティ特性試験を行う際に用いるパラメータは、従来ICを製造しなければ試験をすることが出来なかった試験(例えば、サイドチャネル攻撃に対する試験)を、プログラムを実行する環境(例えば、コンピュータ上)で試験を行うことを可能にするパラメータである。従って、本実施形態によれば、プログラムを書き込んだICを製造することなくセキュリティ試験を行うための試験項目を生成することができる。
【0060】
なお、上述した実施形態におけるセキュリティ試験支援装置1が備える各部の機能全体あるいはその一部は、これらの機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することによって実現しても良い。なお、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものとする。
【0061】
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶部のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時刻の間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時刻プログラムを保持しているものも含んでも良い。また上記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであっても良い。
【0062】
以上、この発明の一実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。例えば、本実施形態に記載した試験項目は一例であり、試験対象のICおよびプログラムに応じて変更可能である。また、例えば、図4に示した攻撃DB13と、図5に示したパラメータDB(バイパス)15と、図6に示したパラメータDB(改ざん)16とのデータ構成は一例であり、試験対象のICおよびプログラムに応じて変更可能である。
【符号の説明】
【0063】
1・・セキュリティ試験支援装置、10・・・入力部、11・・・カード種別DB、12・・・攻撃実績学習部、13・・・攻撃実績DB、14・・・パラメータDB、15・・・パラメータDB(バイパス)、16・・・パラメータDB(改ざん)、17・・・試験項目生成部、18・・・試験項目提示部

【特許請求の範囲】
【請求項1】
ICカードに対する物理的な攻撃により当該ICカードで生じた結果に基づいた、前記ICカードに書き込む前のプログラムに対して実行する試験に用いるパラメータを記憶するパラメータ記憶部と、
前記パラメータ記憶部が記憶する前記パラメータに基づいて、前記プログラムに対して実行する試験項目を生成する試験項目生成部と、
を備えることを特徴とするセキュリティ試験支援装置。
【請求項2】
前記試験項目生成部は、サービス実行上の不正行為を防止するために実装されるセキュリティ機能が正しく提供されていることを確認するセキュリティ機能試験と、脆弱性および攻撃に対する試験であるセキュリティ特性試験とを行うための試験項目を生成する
ことを特徴とする請求項1に記載のセキュリティ試験支援装置。
【請求項3】
前記ICカードの種別毎に、前記ICカードに対する攻撃の対応方法を記憶するカード種別記憶部と、
試験対象の前記ICカードの種別を入力する入力部と、
を備え、
前記試験項目生成部は、前記入力部が入力する前記種別と、前記カード種別記憶部が記憶する前記対応方法と、前記パラメータ記憶部が記憶する前記パラメータとに基づいて、前記入力部が入力する前記種別のICカードに書き込む前の前記プログラムに対して実行する前記試験項目を生成する
ことを特徴とする請求項1または請求項2のいずれか1項に記載のセキュリティ試験支援装置。
【請求項4】
前記ICカードに対する物理的な攻撃により当該ICカードで生じた結果を含む攻撃実績を収集する攻撃実績収集部と、
前記攻撃実績収集部が収集した前記攻撃実績に基づいて前記パラメータを生成し、前記パラメータ記憶部が記憶している前記パラメータを前記生成したパラメータに更新するパラメータ更新部と、
を備えることを特徴とする請求項1から請求項3のいずれか1項に記載のセキュリティ試験支援装置。
【請求項5】
ICカードに対する物理的な攻撃により当該ICカードで生じた結果に基づいた、前記ICカードに書き込む前のプログラムに対して実行する試験に用いるパラメータを記憶するパラメータ記憶部が記憶する前記パラメータに基づいて、前記プログラムに対して実行する試験項目を生成する試験項目生成ステップ
を含むことを特徴とするセキュリティ試験支援方法。
【請求項6】
コンピュータに、
ICカードに対する物理的な攻撃により当該ICカードで生じた結果に基づいた、前記ICカードに書き込む前のプログラムに対して実行する試験に用いるパラメータを記憶するパラメータ記憶部が記憶する前記パラメータに基づいて、前記プログラムに対して実行する試験項目を生成する試験項目生成ステップ
を実行させるためのセキュリティ試験支援プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate


【公開番号】特開2012−185620(P2012−185620A)
【公開日】平成24年9月27日(2012.9.27)
【国際特許分類】
【出願番号】特願2011−47576(P2011−47576)
【出願日】平成23年3月4日(2011.3.4)
【出願人】(000102728)株式会社エヌ・ティ・ティ・データ (438)
【Fターム(参考)】