(57)【特許請求の範囲】
【請求項１】
ＩＣカードに対する物理的な攻撃により当該ＩＣカードで生じた結果に基づいた、前記ＩＣカードに書き込む前のプログラムに対して実行する試験に用いるパラメータを記憶するパラメータ記憶部と、
前記パラメータ記憶部が記憶する前記パラメータに基づいて、前記プログラムに対して実行する試験項目を生成する試験項目生成部と、
を備えることを特徴とするセキュリティ試験支援装置。
【請求項２】
前記試験項目生成部は、サービス実行上の不正行為を防止するために実装されるセキュリティ機能が正しく提供されていることを確認するセキュリティ機能試験と、脆弱性および攻撃に対する試験であるセキュリティ特性試験とを行うための試験項目を生成する
ことを特徴とする請求項１に記載のセキュリティ試験支援装置。
【請求項３】
前記ＩＣカードの種別毎に、前記ＩＣカードに対する攻撃の対応方法を記憶するカード種別記憶部と、
試験対象の前記ＩＣカードの種別を入力する入力部と、
を備え、
前記試験項目生成部は、前記入力部が入力する前記種別と、前記カード種別記憶部が記憶する前記対応方法と、前記パラメータ記憶部が記憶する前記パラメータとに基づいて、前記入力部が入力する前記種別のＩＣカードに書き込む前の前記プログラムに対して実行する前記試験項目を生成する
ことを特徴とする請求項１または請求項２のいずれか１項に記載のセキュリティ試験支援装置。
【請求項４】
前記ＩＣカードに対する物理的な攻撃により当該ＩＣカードで生じた結果を含む攻撃実績を収集する攻撃実績収集部と、
前記攻撃実績収集部が収集した前記攻撃実績に基づいて前記パラメータを生成し、前記パラメータ記憶部が記憶している前記パラメータを前記生成したパラメータに更新するパラメータ更新部と、
を備えることを特徴とする請求項１から請求項３のいずれか１項に記載のセキュリティ試験支援装置。
【請求項５】
ＩＣカードに対する物理的な攻撃により当該ＩＣカードで生じた結果に基づいた、前記ＩＣカードに書き込む前のプログラムに対して実行する試験に用いるパラメータを記憶するパラメータ記憶部が記憶する前記パラメータに基づいて、前記プログラムに対して実行する試験項目を生成する試験項目生成ステップ
を含むことを特徴とするセキュリティ試験支援方法。
【請求項６】
コンピュータに、
ＩＣカードに対する物理的な攻撃により当該ＩＣカードで生じた結果に基づいた、前記ＩＣカードに書き込む前のプログラムに対して実行する試験に用いるパラメータを記憶するパラメータ記憶部が記憶する前記パラメータに基づいて、前記プログラムに対して実行する試験項目を生成する試験項目生成ステップ
を実行させるためのセキュリティ試験支援プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、セキュリティ試験支援装置、セキュリティ試験支援方法およびセキュリティ試験支援プログラムに関する。
【背景技術】
【０００２】
近年、入退室管理のための認証用デバイスや電子マネー等のサービスには、ＩＣ（集積回路）を組み込んだＩＣカードが利用されている。しかしながら、これらのサービスでは、例えば他人へのなりすましや電子マネーの不正な増加といった脅威が存在している。ＩＣカードには、これらの脅威に対抗して安全なサービスを提供するために、セキュリティ対策として認証機能や暗号化機能等のセキュリティ機能が実装されている。
【０００３】
ＩＣカード開発におけるセキュリティ試験では、サービス実行上の不正行為を防止するために実装されるセキュリティ機能が正しく提供されていることを確認するための試験と、脆弱性および攻撃に対する試験の２種類の試験が存在し、前者はセキュリティ機能試験、後者はセキュリティ特性試験と呼ばれる。これら双方の試験によりＩＣカードの安全性を確認する必要がある。
【０００４】
また、ＩＣ等の被測定デバイスに対して、ＤＣ（直流）特性試験、ＡＣ（交流）特性試験、機能試験等の各種試験を行う装置が知られている（例えば特許文献１参照）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００４−８５３４５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、従来知られている、ＤＣ（直流）特性試験、ＡＣ（交流）特性試験、機能試験等の各種試験を行う装置でＩＣ等の試験を行う場合には、プログラムを書き込んだＩＣを製造した後でなければ試験を行うことができない。特に、ＩＣカードに対して物理的な攻撃を行うサイドチャネル攻撃に対する試験については、ＩＣを製造した後でなければ試験を行うことができない。従って、試験を行うためには、作成したプログラムを一度ＩＣ上に書き込み、ハードウェアとしてのＩＣチップを生成しなければならない。また、試験の結果に応じてプログラムを改修する場合には、プログラムを改修した後、改修後のプログラムを書き込んだＩＣを新たに製造する必要がある。そのため、大幅な手戻りが発生するという問題がある。
【０００７】
本発明は上記課題を解決するためになされたものであり、プログラムを書き込んだＩＣを製造することなくセキュリティ試験を行うための試験項目を生成することができるセキュリティ試験支援装置、セキュリティ試験支援方法およびセキュリティ試験支援プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明は、ＩＣカードに対する物理的な攻撃により当該ＩＣカードで生じた結果に基づいた、前記ＩＣカードに書き込む前のプログラムに対して実行する試験に用いるパラメータを記憶するパラメータ記憶部と、前記パラメータ記憶部が記憶する前記パラメータに基づいて、前記プログラムに対して実行する試験項目を生成する試験項目生成部と、を備えることを特徴とするセキュリティ試験支援装置である。
【０００９】
また、本発明のセキュリティ試験支援装置において、前記試験項目生成部は、サービス実行上の不正行為を防止するために実装されるセキュリティ機能が正しく提供されていることを確認するセキュリティ機能試験と、脆弱性および攻撃に対する試験であるセキュリティ特性試験とを行うための試験項目を生成することを特徴とする。
【００１０】
また、本発明は、前記ＩＣカードの種別毎に、前記ＩＣカードに対する攻撃の対応方法を記憶するカード種別記憶部と、試験対象の前記ＩＣカードの種別を入力する入力部と、を備え、前記試験項目生成部は、前記入力部が入力する前記種別と、前記カード種別記憶部が記憶する前記対応方法と、前記パラメータ記憶部が記憶する前記パラメータとに基づいて、前記入力部が入力する前記種別のＩＣカードに書き込む前の前記プログラムに対して実行する前記試験項目を生成することを特徴とするセキュリティ試験支援装置である。
【００１１】
また、本発明は、前記ＩＣカードに対する物理的な攻撃により当該ＩＣカードで生じた結果を含む攻撃実績を収集する攻撃実績収集部と、前記攻撃実績収集部が収集した前記攻撃実績に基づいて前記パラメータを生成し、前記パラメータ記憶部が記憶している前記パラメータを前記生成したパラメータに更新するパラメータ更新部と、を備えることを特徴とするセキュリティ試験支援装置である。
【００１２】
また、本発明は、ＩＣカードに対する物理的な攻撃により当該ＩＣカードで生じた結果に基づいた、前記ＩＣカードに書き込む前のプログラムに対して実行する試験に用いるパラメータを記憶するパラメータ記憶部が記憶する前記パラメータに基づいて、前記プログラムに対して実行する試験項目を生成する試験項目生成ステップを含むことを特徴とするセキュリティ試験支援方法である。
【００１３】
また、本発明は、コンピュータに、ＩＣカードに対する物理的な攻撃により当該ＩＣカードで生じた結果に基づいた、前記ＩＣカードに書き込む前のプログラムに対して実行する試験に用いるパラメータを記憶するパラメータ記憶部が記憶する前記パラメータに基づいて、前記プログラムに対して実行する試験項目を生成する試験項目生成ステップを実行させるためのセキュリティ試験支援プログラムである。
【発明の効果】
【００１４】
本発明によれば、パラメータ記憶部は、ＩＣカードに対する物理的な攻撃により当該ＩＣカードで生じた結果に基づいた、ＩＣカードに書き込む前のプログラムに対して実行する試験に用いるパラメータを記憶する。また、試験項目生成部は、パラメータ記憶部が記憶するパラメータに基づいて、プログラムに対して実行する試験項目を生成する。従って、セキュリティ試験支援装置は、プログラムを書き込んだＩＣを製造することなくセキュリティ試験を行うための試験項目を生成することができる。
【図面の簡単な説明】
【００１５】
【図１】本発明の実施形態におけるセキュリティ試験支援装置の構成を示したブロック図である。
【図２】本実施形態におけるＩＣカードに書き込まれるプログラムの処理において、プログラムを構成する各ソフトウェアモジュール間の呼び出し関係および各ソフトウェアモジュールが呼び出すデータについて示した概念図である。
【図３】本実施形態におけるカード種別ＤＢが記憶するデータのデータ構成を示した概念図である。
【図４】本実施形態における攻撃実績ＤＢが記憶するデータのデータ構成を示した概念図である。
【図５】本実施形態におけるパラメータＤＢ（バイパス）のデータ構成を示した概念図である。
【図６】本実施形態におけるパラメータＤＢ（改ざん）のデータ構成を示した概念図である。
【図７】本実施形態におけるパラメータＤＢ更新部の動作手順を示したフローチャートである。
【図８】本実施形態における試験項目生成部の動作手順を示したフローチャートである。
【発明を実施するための形態】
【００１６】
以下、本発明の一実施形態について、図面を参照して説明する。図１は、本実施形態におけるセキュリティ試験支援装置の構成を示したブロック図である。図示する例では、セキュリティ試験支援装置１は、入力部１０と、カード種別ＤＢ（データベース）１１（カード種別記憶部）と、攻撃実績学習部１２（攻撃実績収集部）と、攻撃実績ＤＢ１３と、パラメータＤＢ更新部１４（パラメータ更新部）と、パラメータＤＢ（バイパス）１５（パラメータ記憶部）と、パラメータＤＢ（改ざん）１６（パラメータ記憶部）と、試験項目生成部１７と、試験項目提示部１８とを備えている。なお、本実施形態におけるセキュリティ試験支援装置１は、サービス実行上の不正行為を防止するために実装されるセキュリティ機能が正しく提供されていることを確認するセキュリティ機能試験と、脆弱性および攻撃に対する試験であるセキュリティ特性試験とを行うための試験項目を生成する。
【００１７】
入力部１０は、試験対象であるＩＣを備えたカードの種別を特定するカード種別の入力を受け付け、入力を受け付けたカード種別を試験項目生成部１７に対して入力する。カード種別ＤＢ１１は、カード種別毎に、攻撃に対する対応方法を予め記憶している。カード種別ＤＢ１１のデータ構成の詳細については後述する。攻撃実績学習部１２は攻撃実績を収集し、収集した攻撃実績を攻撃実績ＤＢ１３に記憶させる。攻撃実績の収集方法は、例えば、ユーザからの入力や、外部装置から送信されたものを取得する。なお、攻撃実績学習部１２が収集する攻撃実績は、サイドチャネル攻撃などＩＣカードに対して物理的に攻撃する物理的攻撃の攻撃実績を含む。攻撃実績ＤＢ１３は、攻撃実績学習部１２が収集した攻撃実績を記憶する。なお、攻撃実績ＤＢ１３のデータ構成の詳細については後述する。
【００１８】
パラメータＤＢ更新部１４は、攻撃実績ＤＢ１３が記憶するデータ（過去の攻撃実績）に基づいて、セキュリティ特性試験で用いるパラメータを生成し、パラメータＤＢ（バイパス）１５及びパラメータＤＢ（改ざん）１６に記憶させる。なお、既にパラメータＤＢ（バイパス）１５及びパラメータＤＢ（改ざん）１６がパラメータを記憶している場合には、パラメータＤＢ（バイパス）１５及びパラメータＤＢ（改ざん）１６が記憶しているパラメータを更新する。なお、パラメータＤＢ更新部１４は、定期的または不定期に、あるいは、攻撃実績ＤＢ１３が更新される度に、パラメータを生成し、パラメータＤＢ（バイパス）１５及びパラメータＤＢ（改ざん）１６が記憶するデータを更新する。
【００１９】
パラメータＤＢ（バイパス）１５は、処理をバイパスする攻撃に対する試験、すなわちクリティカルプロセスに対する試験を行う際に用いるパラメータ（バイパス）を記憶する。パラメータＤＢ（改ざん）１６は、メモリ上に配置されるデータを改ざんする攻撃（メモリの改ざん攻撃）に対する試験、すなわちクリティカルデータに対する試験を行う際に用いるパラメータ（改ざん）を記憶する。なお、上述したように、パラメータＤＢ（バイパス）１５及びパラメータＤＢ（改ざん）１６が記憶するパラメータは、パラメータＤＢ更新部１４によって、定期的または不定期に、あるいは、攻撃実績ＤＢ１３が更新される度に更新される。なお、パラメータＤＢ（バイパス）１５、パラメータＤＢ（改ざん）１６のデータ構成の詳細については後述する。
【００２０】
試験項目生成部１７は、入力部１０から入力されたカード種別と、カード種別ＤＢ１１が記憶するデータと、パラメータＤＢ（バイパス）１５が記憶するデータと、パラメータＤＢ（改ざん）１６が記憶するデータとに基づいて試験項目を生成する。試験項目提示部１８は、試験項目生成部１７が生成した試験項目を表示する。なお、試験項目提示部１８は、試験項目生成部１７が生成した試験項目をデータとして出力するようにしてもよい。
【００２１】
次に、ＩＣカードに書き込まれるプログラムの処理の概念について説明する。図２は、本実施形態におけるＩＣカードに書き込まれるプログラムの処理において、プログラムを構成する各ソフトウェアモジュール間の呼び出し関係および各ソフトウェアモジュールが呼び出すデータについて示した概念図である。図示する例では、プログラムの処理の層として、レイヤ＃１〜レイヤ＃３の３つの層に分かれている。レイヤ＃１に属するモジュールは、ＩＣカードリーダライタなどとの通信により入出力Ｉ／Ｏから入力されるコマンドを実行する。また、レイヤ＃２に属するモジュールは、上記コマンドをレイヤ＃１に属するモジュールから受け取り、受け取ったコマンドに応じた処理を実行する。また、レイヤ＃３に属するモジュールは、レイヤ＃２に属するモジュールが処理を行うにあたって必要な機能（図中では「ファンクション」と示す）、例えば認証機能や暗号化機能を実行するモジュールであり、レイヤ＃２に属するモジュールから関数コールを受けて処理を実行する。
【００２２】
なお、レイヤ＃１〜レイヤ＃３の各層に属するモジュールのそれぞれに、クリティカルプロセスおよびクリティカルデータが存在する。クリティカルプロセスは、そのプロセスをバイパスされることにより本来出力すべき結果とは異なる結果を出力してしまうなど、各モジュールの中心となるプロセスのことである。また、クリティカルデータは、例えば暗号化処理における秘密鍵データのように、データが改ざんされることにより本来の機能を実現出来なくなるおそれがあるデータのことである。
【００２３】
次に、カード種別ＤＢ１１が記憶するデータの詳細について説明する。カード種別ＤＢ１１は、ＩＣカードの種類毎に、攻撃に対する対応方法を記憶している。図３は、本実施形態におけるカード種別ＤＢ１１が記憶するデータのデータ構成を示した概念図である。図示する例では、カード種別として、金銭関連と、認証関連と、データ保護との３つの種別がある。また、金融関連のカード種別としては、クレジットカードと、キャッシュカードと、電子マネー（プリペイド等）と、ポイントサービス（換金性  高）と、ポイントサービス（換金性  低）とが示されている。また、認証関連のカード種別としては、本人認証と、属性認証１（メリット高）と、属性認証２（メリット低）とが示されている。また、データ保護のカード種別としては、機密性高（個人情報を含む）と、機密性中（個人情報を含まない）と、機密性情報無しとが示されている。
【００２４】
また、図示する例では、各ＩＣカードのリスクおよびそのリスクを解消できているか否かを確認するために必要となる試験の種別が示されている。なお、リスクを解消できているか否かを確認するために必要となる試験の種別のカラムには「○」が示されており、必要ではない試験の種別のカラムには「−」が示されている。
【００２５】
例えば、クレジットカードのリスクは、ＰＩＮ（Ｐｅｒｓｏｎａｌ  ｉｄｅｎｔｉｆｉｃａｔｉｏｎ  ｎｕｍｂｅｒ、暗証番号）情報の不正取得による不正利用である。このリスクに対応するために、クレジットカードに対して実施するセキュリティ機能試験の試験項目は「ホワイトボックステスト」と「ブラックボックステスト」とであり、セキュリティ特性試験の試験項目は「処理のバイパス」と「メモリの改ざん」とであることが示されている。なお、ホワイトボックステストは、システム内部の構造が意図した通りに動作しているかを確認する試験である。また、ブラックボックステストは、内部構造とは関係なく、外部から見て仕様書通りの入出力になっているかを確認する試験である。
【００２６】
また、例えば、ポイントサービス(換金性  高）のリスクは、ポイント情報の改ざんである。このリスクに対応するために、ポイントサービス(換金性  高）に対して実施するセキュリティ試験の試験項目は「ホワイトボックステスト」と「ブラックボックステスト」とであり、セキュリティ特性試験の試験項目は「メモリの改ざん」であることが示されている。
【００２７】
また、ポイントサービス(換金性  低）のリスクは、ポイント情報の改ざん（※リスクを許容する）である。このリスクに対応するために、ポイントサービス(換金性  低）に対して実施するセキュリティ機能試験の試験項目は「ホワイトボックステスト」と「ブラックボックステスト」とであり、セキュリティ特性試験の試験項目は無いことが示されている。なお、他のカードリスクおよび試験項目については図示するとおりである。
【００２８】
次に、攻撃実績ＤＢ１３が記憶するデータの詳細について説明する。図４は、本実施形態における攻撃実績ＤＢ１３が記憶するデータのデータ構成を示した概念図である。攻撃実績ＤＢ１３は、発生した攻撃毎に、攻撃を一意に識別するためのＩＤと、攻撃内容が「処理のバイパス」であるか「メモリの改ざん」であるかを示すラベルと、攻撃対象レイヤと、攻撃対象と、攻撃種別と、攻撃回数と、攻撃結果とを関連付けて記憶している。なお、攻撃実績ＤＢ１３が記憶する攻撃実績は、サイドチャネル攻撃など物理的な攻撃実績を含む。図示する例では、ＩＤ「１」で一意に特定される攻撃実績は、「処理のバイパス」を行う攻撃であり、攻撃対象レイヤが「レイヤ＃３」であり、攻撃対象が「Ｃ／Ｐ（クリティカルプロセス）」であり、攻撃種別が「電力」であり、攻撃回数が「ｃ回」であり、攻撃結果は「Ｅｓｔｅｐの処理をバイパスする」攻撃であったことを示している。
【００２９】
また、ＩＤ「２」で一意に特定される攻撃実績は、「メモリの改ざん」を行う攻撃であり、攻撃対象レイヤが「レイヤ＃３」であり、攻撃対象が「Ｃ／Ｄ（クリティカルデータ）」であり、攻撃種別が「光」であり、攻撃回数が「ｄ回」であり、攻撃結果は「メモリ領域のＦｂｙｔｅの値をａｌｌ  ０（全て０）に書き換える」攻撃であったことを示している。
【００３０】
次に、パラメータＤＢ（バイパス）１５が記憶するデータの詳細について説明する。パラメータＤＢ（バイパス）１５は、クリティカルプロセスに対するテストを行う際に用いるパラメータを格納するデータベースである。図５は、本実施形態におけるパラメータＤＢ（バイパス）１５のデータ構成を示した概念図である。パラメータＤＢ（バイパス）１５は、レイヤ＃１〜＃３の各試験対象と、「処理をバイパスする」攻撃に対する試験を行う際に用いるパラメータ（バイパス）とを関連付けて記憶している。なお、図示する例は、カード種別が「クレジットカード」であるＩＣカードに対する試験を行う際に用いるパラメータを示しているが、パラメータＤＢ（バイパス）１５は、カード種別が「クレジットカード」以外のカードについても、カード種別毎に、図５に示したデータと同様のデータを記憶している。
【００３１】
例えば、カード種別が「クレジットカード」であるＩＣカードに対する試験を行う際には、カード種別が「クレジットカード」であるＩＣカードに実装されている機能を特定し、特定した機能に対して試験を行う。例えば、ＩＣカードに実装されている機能は図示しないデータベースに記憶されており、このデータベースが記憶する情報に基づいてＩＣカードに実装されている機能を特定する。そして、カード種別が「クレジットカード」であるＩＣカードに「認証機能」が実装されている場合、「認証機能」を試験対象とする。図５に示す例では、試験対象が「認証機能」である試験を行う際に用いるパラメータは、バイパス回数「１回」とバイパス実行間隔「２０ｓｔｅｐ」であることを示している。なお、１ステップは、各ファンクションを実現するソースコード１行に対応する。また、試験対象が「暗号化機能」である試験を行う際に用いるパラメータは、バイパス回数「２回」とバイパス実行間隔は「２０ｓｔｅｐ」であることを示している。なお、他の試験対象の試験を行う際に用いるパラメータについては図示するとおりである。また、図示する例では、パラメータＤＢ（バイパス）１５は、バイパス回数「１回」、「２回」、「ｎ回」等、パラメータ値を予め記憶しているが、新たなパラメータ値を設定する場合には、新たに列を追加することで対応することが可能である。
【００３２】
次に、パラメータＤＢ（改ざん）１６が記憶するデータの詳細について説明する。パラメータＤＢ（改ざん）１６は、クリティカルデータに対するテストを行う際に用いるパラメータを格納するデータベースである。図６は、本実施形態におけるパラメータＤＢ（改ざん）１６のデータ構成を示した概念図である。パラメータＤＢ（改ざん）１６は、レイヤ＃１〜＃３の各試験対象と、「メモリの改ざん」攻撃に対する試験を行う際に用いるパラメータ（改ざん）とを関連付けて記憶している。なお、図示する例は、カード種別が「クレジットカード」であるＩＣカードに対する試験を行う際に用いるパラメータを示しているが、パラメータＤＢ（改ざん）１６は、カード種別が「クレジットカード」以外のカードについても、カード種別毎に、図６に示したデータと同様のデータを記憶している。
【００３３】
例えば、カード種別が「クレジットカード」であるＩＣカードに対する試験を行う際には、上述した通り、カード種別が「クレジットカード」であるＩＣカードに実装されている機能を特定し、特定した機能に対して試験を行う。例えば、ＩＣカードに実装されている機能は図示しないデータベースに記憶されており、このデータベースが記憶する情報に基づいてＩＣカードに実装されている機能を特定する。そして、カード種別が「クレジットカード」であるＩＣカードに「暗号化機能」が実装されている場合、「暗号化機能」を試験対象とする。図６に示す例では、試験対象が「暗号化機能」である試験を行う際に用いるパラメータは、変更頻度「２回」と、変更可能データ長「１ｂｉｔ」、「１Ｂｙｔｅ」および「変数長」と、変更可能な値「（データ長  １ｂｉｔ）：０  ｔｏ  １，１  ｔｏ  ０」、「（データ長  １Ｂｙｔｅ）：？  ｔｏ  ａｌｌ  ０，？  ｔｏ  ａｌｌ  １，？  ｔｏ  乱数，？  ｔｏ  任意のデータ」および「（データ長  変数長）：？  ｔｏ  ａｌｌ  ０，？  ｔｏ  ａｌｌ  １，？  ｔｏ  乱数，？  ｔｏ  任意のデータ」であることを示している。
【００３４】
なお、「（データ長  １ｂｉｔ）：０  ｔｏ  １」は、１ｂｉｔのデータ０を１に書き換えることを示す。また、「（データ長  １ｂｉｔ）：１  ｔｏ  ０」は、１ｂｉｔのデータ１を０に書き換えることを示す。また、「（データ長  １Ｂｙｔｅ）：？  ｔｏ  ａｌｌ  ０」は、１Ｂｙｔｅのデータを全て０に書き換えることを示す。また、「（データ長  １Ｂｙｔｅ）：？  ｔｏ  ａｌｌ  １」は、１Ｂｙｔｅのデータを全て１に書き換えることを示す。また、「（データ長  １Ｂｙｔｅ）：？  ｔｏ  乱数」は、１Ｂｙｔｅのデータを乱数に書き換えることを示す。また、「（データ長  １Ｂｙｔｅ）：？  ｔｏ  任意のデータ」は、１Ｂｙｔｅのデータを任意のデータに書き換えることを示す。また、「（データ長  変数長）：？  ｔｏ  ａｌｌ  ０」は、変数を全て０に書き換えることを示す。また、「（データ長  変数長）：？  ｔｏ  ａｌｌ  １」は、変数を全て１に書き換えることを示す。また、「（データ長  変数長）：？  ｔｏ  乱数」は、変数を乱数に書き換えることを示す。また、「（データ長  変数長）：？  ｔｏ  任意のデータ」は、変数を任意のデータに書き換えることを示す。なお、本実施形態では「？」は変数に格納されている値を示す。
【００３５】
なお、他の試験対象については図示するとおりである。また、パラメータＤＢ（改ざん）１６は、変更頻度や変更可能な値としてパラメータ値を予め記憶しているが、新たなパラメータ値を設定する場合には、新たに列を追加することで対応することが可能である。
【００３６】
次に、セキュリティ試験支援装置１のパラメータＤＢ更新部１４の動作手順について説明する。図７は、本実施形態におけるパラメータＤＢ更新部１４の動作手順を示したフローチャートである。
【００３７】
（ステップＳ１）パラメータＤＢ更新部１４は、攻撃実績ＤＢ１３から各行の「ラベル」を読み出し、ラベル毎にデータを振り分ける。その後、ステップＳ２の処理に進む。
【００３８】
（ステップＳ２）パラメータＤＢ更新部１４は、攻撃実績ＤＢ１３から各行の「攻撃対象レイヤ」を読み出し、ステップＳ１の処理で振り分けたデータ毎に、攻撃対象レイヤが同種のデータを取りまとめる。これにより、パラメータＤＢ更新部１４は、攻撃実績ＤＢ１３が記憶するデータ（攻撃実績）を、「ラベル」と「攻撃対象レイヤ」とが同じデータ毎に分類することができる。その後、ステップＳ３の処理に進む。
【００３９】
（ステップＳ３）パラメータＤＢ更新部１４は、ステップＳ２の処理で分類したデータ毎に、攻撃回数および攻撃結果の内容に基づいて、「ラベル」と「攻撃対象レイヤ」とで一意に特定される攻撃での攻撃回数と、バイパスされたクリティカルプロセスのステップ数、または改ざんされたメモリのｂｙｔｅ数および改ざん内容とを決定する。なお、パラメータＤＢ更新部１４は、データの種類に応じて、分類したデータ毎の標準偏差、または平均値、または最大値、または最小値、または最頻出値を算出することで、攻撃回数や、バイパスされたクリティカルプロセスのステップ数や、改ざんされたメモリのｂｙｔｅ数および改ざん内容とを決定する。その後、ステップＳ４の処理に進む。
【００４０】
（ステップＳ４）パラメータＤＢ更新部１４は、パラメータＤＢ（バイパス）１５とパラメータＤＢ（改ざん）１６とが記憶している値を、攻撃回数や、バイパスされたクリティカルプロセスのステップ数や、改ざんされたメモリのｂｙｔｅ数および改ざん内容に更新する。その後、処理を終了する。
【００４１】
上述したステップＳ１〜ステップＳ４の処理の具体例を、図４に示した攻撃実績ＤＢ１３の値を用いて説明する。ステップＳ１の処理では、パラメータＤＢ更新部１４は、ラベルが「バイパス」であるＩＤ「１」の攻撃実績と、ラベルが「メモリ改ざん」であるＩＤ「２」の攻撃実績とに振り分ける。続いて、ステップＳ２の処理では、パラメータＤＢ更新部１４は、ＩＤ「１」の攻撃実績を、ラベルが「バイパス」であるデータのうち、攻撃対象レイヤが「レイヤ＃３」であるデータとして分類する。また、パラメータＤＢ更新部１４は、ＩＤ「２」の攻撃実績を、ラベルが「メモリ改ざん」であるデータのうち、攻撃対象レイヤが「レイヤ＃３」であるデータとして分類する。
【００４２】
続いて、ステップＳ３の処理では、パラメータＤＢ更新部１４は、ラベルが「バイパス」であり、攻撃対象レイヤが「レイヤ＃３」であるデータに基づいて、攻撃回数とバイパス数とを決定する。図４に示した攻撃実績ＤＢ１３では、ラベルが「バイパス」であり、攻撃対象レイヤが「レイヤ＃３」であるデータはＩＤ「１」で特定されるデータだけである。そのため、パラメータＤＢ更新部１４は、ＩＤ「１」の攻撃実績の攻撃回数「ｃ回」とバイパス数「Ｅｓｔｅｐ」とに基づいて、「レイヤ＃３」の処理に対して「バイパス」する攻撃の攻撃回数を「ｃ回」と決定し、バイパス数を「Ｅｓｔｅｐ」と決定する。
【００４３】
また、パラメータＤＢ更新部１４は、ラベルが「メモリ改ざん」であり、攻撃対象レイヤが「レイヤ＃３」であるデータに基づいて、攻撃回数と、改ざんされたメモリ容量と、改ざん内容とを決定する。図４に示した攻撃実績ＤＢ１３では、ラベルが「メモリ改ざん」であり、攻撃対象レイヤが「レイヤ＃３」であるデータはＩＤ「２」で特定されるデータだけである。そのため、パラメータＤＢ更新部１４は、ＩＤ「２」の攻撃実績の攻撃回数「ｄ回」と、改ざんされたメモリのｂｙｔｅ数「Ｆｂｙｔｅ」と、改ざん内容「？  ｔｏ  ａｌｌ  ０」とに基づいて、「レイヤ＃３」の処理に対して「メモリ改ざん」する攻撃の攻撃回数を「ｄ回」と決定し、改ざんされたメモリのｂｙｔｅ数を「Ｆｂｙｔｅ」と決定し、改ざん内容を「？  ｔｏ  ａｌｌ  ０」と決定する。
【００４４】
なお、図４に示した攻撃実績ＤＢ１３では、ラベルと攻撃対象データとで分類した場合、各条件に当てはまるデータはそれぞれ１件であるため、上述した例では、条件に当てはまるデータの値をそのまま用いたが、各条件に当てはまるデータが複数存在する場合には、上述した通り、データの種類に応じて、分類したデータ毎の標準偏差、または平均値、または最大値、または最小値、または最頻出値を算出することで、攻撃回数や、バイパスされたクリティカルプロセスのステップ数や、改ざんされたメモリのｂｙｔｅ数および改ざん内容とを決定する。
【００４５】
続いて、ステップＳ４の処理では、パラメータＤＢ更新部１４は、パラメータＤＢ（バイパス）１５が記憶するデータのうち、「レイヤ＃３」の処理に対して「バイパス」する攻撃の攻撃回数を「ｃ回」に書き換え、バイパス実行間隔（バイパス数）を「Ｅｓｔｅｐ」に書き換える。また、パラメータＤＢ更新部１４は、パラメータＤＢ（改ざん）１６が記憶するデータのうち、「レイヤ＃３」の処理に対して「メモリ改ざん」する攻撃の攻撃回数を「ｄ回」に書き換え、変更可能なデータ長（改ざんされたメモリのｂｙｔｅ数）を「Ｆｂｙｔｅ」に書き換え、変更可能な値（改ざん内容）を「？  ｔｏ  ａｌｌ  ０」に書き換える。
【００４６】
上述したステップＳ１〜Ｓ４の処理を実行することで、パラメータＤＢ更新部１４は、攻撃実績ＤＢ１３に記憶されるデータに基づいて、パラメータＤＢ（バイパス）１５と、パラメータＤＢ（改ざん）１６との値を更新することができる。なお、上述した例では、パラメータＤＢ更新部１４は、ラベル毎および攻撃レイヤ毎に攻撃データを分類してパラメータを算出しているが、これに加え、攻撃種別毎に攻撃データを分類してパラメータを算出してもよい。
【００４７】
次に、セキュリティ試験支援装置１の試験項目生成部１７の動作手順について説明する。図８は、本実施形態における試験項目生成部１７の動作手順を示したフローチャートである。
【００４８】
（ステップＳ１０）ユーザは、試験を行うカードのカード種別を入力部１０に入力する。入力部１０は、ユーザから入力されたカード種別を試験項目生成部１７に対して入力する。その後、ステップＳ１１の処理に進む。
（ステップＳ１１）試験項目生成部１７は、ステップＳ１０の処理で入力されたカード種別に対応する試験項目を、カード種別ＤＢ１１から読み出す。また、試験項目生成部１７は、ステップＳ１０の処理で入力されたカード種別に対応するＩＣカードに実装されている機能を特定する。その後、ステップＳ１２の処理に進む。
【００４９】
（ステップＳ１２）試験項目生成部１７は、ステップＳ１１の処理で読み出した試験項目のうち、「セキュリティ特性試験」の試験項目それぞれについて、ＩＣカードに実装されている機能に対する試験で用いるパラメータを、パラメータＤＢ（バイパス）１５と、パラメータＤＢ（改ざん）１６とから読み出す。続いて、試験項目生成部１７は、ステップＳ１１の処理で読み出した試験項目と、ステップＳ１１の処理で特定したＩＣカードに実装されている機能と、パラメータＤＢ（バイパス）１５およびパラメータＤＢ（改ざん）１６から読み出したパラメータを用いて、ステップＳ１０で入力されたカード種別のＩＣカードに書き込むプログラムに対して実行する試験項目を生成する。その後、ステップＳ１３の処理に進む。
（ステップＳ１３）試験項目提示部１８は、ステップＳ１２の処理で試験項目生成部１７が生成した試験項目を表示もしくはデータとして出力する。その後、処理を終了する。
【００５０】
上述したステップＳ１１〜ステップＳ１３の処理の具体例を、図３に示したカード種別ＤＢ１１と、図５に示したパラメータＤＢ（バイパス）１５と、図６に示したパラメータＤＢ（改ざん）１６との値を用いて説明する。なお、以下の例では、ステップＳ１０の処理で、入力部１０にユーザから入力されたカード種別は「クレジットカード」であるとする。
【００５１】
ステップＳ１１の処理では、試験項目生成部１７は、カード種別「クレジットカード」に対応する試験項目「ホワイトボックステスト」と、「ブラックボックステスト」と、「処理のバイパス」と、「メモリの改ざん」とをカード種別ＤＢ１１から読み出す。また、試験項目生成部１７は、カード種別が「クレジットカード」であるＩＣカードに実装されている機能を特定する。例えば、ＩＣカードに実装されている機能は図示しないデータベースに記憶されており、試験項目生成部１７は、このデータベースが記憶する情報に基づいてＩＣカードに実装されている機能を特定する。この例では、カード種別が「クレジットカード」であるＩＣカードには、「認証機能」と、「暗号化機能」と、「アクセス制御機能」とが実装されているとする。
【００５２】
続いて、ステップＳ１２の処理では、試験項目生成部１７は、「セキュリティ特性試験」である「処理のバイパス」試験のうち、認証機能に対して行う試験で用いるパラメータ「バイパス回数：１回、バイパス実行間隔：２０ｓｔｅｐ」と、暗号化機能に対して行う試験で用いるパラメータ「バイパス回数：２回、バイパス実行間隔２０ｓｔｅｐ」と、アクセス制御機能に対して行う試験で用いるパラメータ「バイパス回数：１回、バイパス実行間隔２０ｓｔｅｐ」とをパラメータＤＢ（バイパス）１５から読み出す。
【００５３】
また、試験項目生成部１７は、「セキュリティ特性試験」である「メモリの改ざん」試験のうち、認証機能に対して行う試験で用いるパラメータ「変更頻度：１回、変更可能データ長：１ｂｉｔ，変数長、変更可能な値（データ長  １ｂｉｔ）：０  ｔｏ  １，１  ｔｏ  ０、変更可能な値（データ長  変数長）：？  ｔｏ  ａｌｌ  ０，？  ｔｏ  ａｌｌ  １，？  ｔｏ  乱数」と、暗号化機能に対して行う試験で用いるパラメータ「変更頻度：２回、変更可能データ長：１ｂｉｔ，１Ｂｙｔｅ，変数長、変更可能な値（データ長  １ｂｉｔ）：０  ｔｏ  １，１  ｔｏ  ０、変更可能な値（データ長  １Ｂｙｔｅ）：？  ｔｏ  ａｌｌ  ０，？  ｔｏ  ａｌｌ  １，？  ｔｏ  乱数，？  ｔｏ  任意のデータ、変更可能な値（データ長  変数長）：？  ｔｏ  ａｌｌ  ０，？  ｔｏ  ａｌｌ  １，？  ｔｏ  乱数，？  ｔｏ  任意のデータ」と、アクセス制御機能に対して行う試験で用いるパラメータ「変更頻度：１回、変更可能データ長：１Ｂｙｔｅ，変数長、変更可能な値（データ長  １Ｂｙｔｅ）：？  ｔｏ  ａｌｌ  ０，？  ｔｏ  ａｌｌ  １，？  ｔｏ  乱数、変更可能な値（データ長  変数長）：？  ｔｏ  ａｌｌ  ０，？  ｔｏ  ａｌｌ  １，？  ｔｏ  乱数」とをパラメータＤＢ（改ざん）１６から読み出す。
【００５４】
また、試験項目生成部１７は、カード種別「クレジットカード」のＩＣカードに書き込むプログラムに対して実行する試験項目を生成する。そして、ステップＳ１３の処理では、試験項目提示部１８は、ステップＳ１２の処理で試験項目生成部１７が生成した試験項目を表示もしくはデータとして出力する。
【００５５】
なお、図３に示したカード種別ＤＢ１１と、図５に示したパラメータＤＢ（バイパス）１５と、図６に示したパラメータＤＢ（改ざん）１６との値に基づいて、試験項目生成部１７が生成する、カード種別「クレジットカード」のＩＣカードに書き込むプログラムに対して実行する試験項目は以下のとおりとなる。
【００５６】
（セキュリティ機能試験）
・ホワイトボックステスト
・ブラックボックステスト
（セキュリティ特性試験）
・認証機能に対する処理のバイパス試験：「バイパス回数：１回、バイパス実行間隔：２０ｓｔｅｐ」
・暗号化機能に対する処理のバイパス試験：「バイパス回数：２回、バイパス実行間隔２０ｓｔｅｐ」
・アクセス制御機能に対する処理のバイパス試験：「バイパス回数：１回、バイパス実行間隔２０ｓｔｅｐ」
・認証機能に対するメモリ改ざん試験：「変更頻度：１回、変更可能データ長：１ｂｉｔ，変数長、変更可能な値（データ長  １ｂｉｔ）：０  ｔｏ  １，１  ｔｏ  ０、変更可能な値（データ長  変数長）：？  ｔｏ  ａｌｌ  ０，？  ｔｏ  ａｌｌ  １，？  ｔｏ  乱数」
・暗号化機能に対するメモリ改ざん試験：「変更頻度：２回、変更可能データ長：１ｂｉｔ，１Ｂｙｔｅ，変数長、変更可能な値（データ長  １ｂｉｔ）：０  ｔｏ  １，１  ｔｏ  ０、変更可能な値（データ長  １Ｂｙｔｅ）：？  ｔｏ  ａｌｌ  ０，？  ｔｏ  ａｌｌ  １，？  ｔｏ  乱数，？  ｔｏ  任意のデータ、変更可能な値（データ長  変数長）：？  ｔｏ  ａｌｌ  ０，？  ｔｏ  ａｌｌ  １，？  ｔｏ  乱数，？  ｔｏ  任意のデータ」
・アクセス制御機能に対するメモリ改ざん試験：「変更頻度：１回、変更可能データ長：１Ｂｙｔｅ，変数長、変更可能な値（データ長  １Ｂｙｔｅ）：？  ｔｏ  ａｌｌ  ０，？  ｔｏ  ａｌｌ  １，？  ｔｏ  乱数、変更可能な値（データ長  変数長）：？  ｔｏ  ａｌｌ  ０，？  ｔｏ  ａｌｌ  １，？  ｔｏ  乱数」
【００５７】
なお、これまでセキュリティ特性試験の試験項目を生成するまでの手順を説明したが、セキュリティ特性試験の試験項目の生成とあわせてセキュリティ機能試験の試験項目を生成することとしてもよい。具体的には、試験項目生成部１７は、図８におけるステップＳ１１の処理でカード種別ＤＢ１１から読み込んだ試験項目のうち「セキュリティ機能試験」の試験項目（ホワイトボックステストまたはブラックボックステスト）も生成する。なお、ホワイトボックステストの試験項目の生成には、ＩＣカードに書き込むプログラム（図示しない）における分岐処理および当該分岐処理を行うための変数の値を特定した上で、分岐を網羅するように設定した変数値の組み合わせを試験項目として生成することとしてもよい。また、ブラックボックステストの試験項目の生成には、ＩＣカードに入力可能な値の上限および下限（以下限界値）をプログラムから抽出し、前記限界値および上限以上もしくは下限以下の値を入力値とし、この入力値を入力した場合に想定されるＩＣカードの処理結果を出力値として、試験項目を生成してもよい。
【００５８】
上述した通り、本実施形態によれば、カード種別ＤＢ１１は、試験対象のＩＣカードの種別毎に、攻撃に対する対応方法を予め記憶している。また、パラメータＤＢ更新部１４は、サイドチャネル攻撃など物理的な攻撃実績を含む過去の攻撃内容に基づいて、各攻撃内容に対応したセキュリティ特性試験を行う際に用いるパラメータを決定し、パラメータＤＢ（バイパス）１５とパラメータＤＢ（改ざん）１６とに記憶させる。また、試験項目生成部１７は、カード種別ＤＢ１１と、パラメータＤＢ（バイパス）１５と、パラメータＤＢ（改ざん）１６とが記憶するデータに基づいて、入力部１０に入力されたカード種別に対する試験項目を生成する。
【００５９】
また、パラメータＤＢ更新部１４は、サイドチャネル攻撃など物理的な攻撃実績を含む過去の攻撃実績に基づいて、各攻撃内容に対応したセキュリティ特性試験を行う際に用いるパラメータを決定する。そのため、パラメータＤＢ更新部１４が決定する、セキュリティ特性試験を行う際に用いるパラメータは、従来ＩＣを製造しなければ試験をすることが出来なかった試験（例えば、サイドチャネル攻撃に対する試験）を、プログラムを実行する環境（例えば、コンピュータ上）で試験を行うことを可能にするパラメータである。従って、本実施形態によれば、プログラムを書き込んだＩＣを製造することなくセキュリティ試験を行うための試験項目を生成することができる。
【００６０】
なお、上述した実施形態におけるセキュリティ試験支援装置１が備える各部の機能全体あるいはその一部は、これらの機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することによって実現しても良い。なお、ここでいう「コンピュータシステム」とは、ＯＳや周辺機器等のハードウェアを含むものとする。
【００６１】
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ−ＲＯＭ等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶部のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時刻の間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時刻プログラムを保持しているものも含んでも良い。また上記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであっても良い。
【００６２】
以上、この発明の一実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。例えば、本実施形態に記載した試験項目は一例であり、試験対象のＩＣおよびプログラムに応じて変更可能である。また、例えば、図４に示した攻撃ＤＢ１３と、図５に示したパラメータＤＢ（バイパス）１５と、図６に示したパラメータＤＢ（改ざん）１６とのデータ構成は一例であり、試験対象のＩＣおよびプログラムに応じて変更可能である。
【符号の説明】
【００６３】
１・・セキュリティ試験支援装置、１０・・・入力部、１１・・・カード種別ＤＢ、１２・・・攻撃実績学習部、１３・・・攻撃実績ＤＢ、１４・・・パラメータＤＢ、１５・・・パラメータＤＢ（バイパス）、１６・・・パラメータＤＢ（改ざん）、１７・・・試験項目生成部、１８・・・試験項目提示部
【図１】
0005470305.tif 000002
【図２】
0005470305.tif 000003
【図３】
0005470305.tif 000004
【図４】
0005470305.tif 000005
【図５】
0005470305.tif 000006
【図６】
0005470305.tif 000007
【図７】
0005470305.tif 000008
【図８】
0005470305.tif 000009