(57)【特許請求の範囲】
【請求項１】
仮想的な暗号通信路の確立要求を受け付ける受信部と、
前記確立要求に基づく受信メッセージから、前記暗号通信路の確立要求元で利用可能な暗号方式に関する設定情報を抽出する抽出部と、
前記受信メッセージに対し、仮想的な暗号通信路の確立処理時のエラー応答を模擬した模擬エラー応答を行う応答部と、
前記抽出部および前記応答部の処理を繰り返し実行させる制御部と、
を有する設定情報収集装置。
【請求項２】
請求項１の設定情報収集装置であって、
複数の模擬エラー応答の内容が順序付けされており、
前記応答部は、前記順序付けに従って模擬エラー応答の内容を選択し、選択した内容の模擬エラー応答を行う、設定情報収集装置。
【請求項３】
請求項２の設定情報収集装置であって、
前記応答部は、前記受信メッセージに応じて前記複数の模擬エラー応答の内容の順序付けを変更し、変更した順序付けに従って前記模擬エラー応答の内容を選択する、設定情報収集装置。
【請求項４】
請求項１から３の何れかの設定情報収集装置であって、
前記抽出部および前記応答部の処理は同一の前記確立要求元について複数回実行される、設定情報収集装置。
【請求項５】
請求項４の設定情報収集装置であって、
前記抽出部で抽出された前記暗号方式に関する設定情報の順序に基づいて、前記暗号方式の優先順を推定する解析集計部を有する、設定情報収集装置。
【請求項６】
受信部が、仮想的な暗号通信路の確立要求を受け付ける受信ステップと、
抽出部が、前記確立要求に基づく受信メッセージから、前記暗号通信路の確立要求元で利用可能な暗号方式に関する設定情報を抽出する抽出ステップと、
応答部が、前記受信メッセージに対し、仮想的な暗号通信路の確立処理時のエラー応答を模擬した模擬エラー応答を行う応答ステップと、を有し、
前記抽出ステップおよび前記応答ステップを繰り返し実行する、設定情報収集方法。
【請求項７】
請求項１から５の何れかの設定情報収集装置としてコンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、仮想的な暗号通信路を確立して暗号通信を行う技術に関し、特に、暗号通信路の確立要求元の設定情報を収集する技術に関する。
【背景技術】
【０００２】
Ｗｅｂサーバ装置などの暗号通信を行うサーバ装置は、複数の異なる設定を持つクライアント装置からの接続要求を受け付け、クライアント装置との間で仮想的な暗号通信路（例えば、ＳＳＬ／ＴＬＳセッション）を確立して暗号通信を行う。仮想的な暗号通信路の確立処理では、その確立要求元のクライアント装置が、自らが使用可能な暗号方式のリストをサーバ装置に提示し、サーバ装置がそのリストから使用する暗号方式を選択する。このような暗号通信で使用される暗号方式を確認する方法として、特許文献１や非特許文献１の方法がある。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特許第５１１２４９８号公報
【非特許文献】
【０００４】
【非特許文献１】猪俣敦夫、大山義仁、岡本栄司、「暗号危殆化に対する暗号ＳＬＡの提案と支援ツールの実現」、情報処理学会論文誌、Ｖｏｌ．４８  Ｎｏ．１、Ｊａｎ．２００７．
【発明の概要】
【発明が解決しようとする課題】
【０００５】
暗号方式の安全性が低下した場合、その暗号方式の使用を停止し、安全性の高い暗号方式に移行する必要がある。一方、クライアント装置が使用可能な暗号方式は必ずしも同一ではなく、クライアント装置で使用可能な暗号方式を考慮することなく、暗号方式の使用を停止したのでは接続性が低下する。そのため、安全性と接続性とを維持するためには、クライアント装置が使用可能な暗号方式に関する設定情報を十分に収集する必要がある。
【０００６】
しかしながら、上述の確立処理でクライアント装置がサーバ装置に提示する暗号方式のリストは、そのクライアント装置で使用可能なすべての暗号方式を含むとは限らない。そのため、サーバ装置とクライアント装置との通信状態をモニタしただけでは、クライアント装置で使用可能な暗号方式に関する設定情報を十分に収集することはできない。特許文献１や非特許文献１に開示された方法でも、実際に使用された暗号方式に関する情報やサーバ装置側で対応可能な暗号方式に関する情報を得ることはできるが、クライアント装置で使用可能な暗号方式に関する設定情報を十分に収集することはできない。
【０００７】
本発明の課題は、仮想的な暗号通信路の確立要求元で利用可能な暗号方式に関する設定情報を十分に収集することである。
【課題を解決するための手段】
【０００８】
仮想的な暗号通信路の確立要求を受け付け、当該確立要求に基づく受信メッセージから、当該暗号通信路の確立要求元で利用可能な暗号方式に関する設定情報を抽出する抽出処理と、当該受信メッセージに対し、仮想的な暗号通信路の確立処理時のエラー応答を模擬した模擬エラー応答を行う応答処理と、を繰り返す。
【発明の効果】
【０００９】
これにより、暗号通信路の確立要求元で利用可能な暗号方式に関する設定情報を十分に収集できる。
【図面の簡単な説明】
【００１０】
【図１】図１は実施形態の通信システムの機能構成を例示したブロック図である。
【図２】図２は実施形態の設定情報収集装置の機能構成を例示したブロック図である。
【図３】図３Ａはエラーパターン（模擬エラー応答の内容）を例示するための図である。図３Ｂはエラーパタンのリストを例示するための図である。
【図４】図４は実施形態の設定情報収集装置の処理を説明するためのフロー図である。
【図５】図５は実施形態の処理を例示するためのシーケンス図である。
【図６】図６は実施形態の処理を例示するためのシーケンス図である。
【図７】図７は実施形態の処理を例示するためのシーケンス図である。
【図８】図８はメッセージのレコードデータ構造を例示するための図である。
【図９】図９はメッセージのレコードデータ構造を例示するための図である。
【図１０】図１０Ａはメッセージ解析によって抽出される設定情報を例示するための図である。図１０Ｂは抽出された設定情報に基づく集計結果を例示するための図である。図１０Ｃは暗号方式の安全性評価を表す評価情報リストを例示するための図である。
【図１１】図１１は検査結果を例示するための図である。
【発明を実施するための形態】
【００１１】
以下、図面を参照して本発明の実施形態を説明する。
＜構成＞
図１に例示するように、本形態の通信システム１は、サーバ装置として機能する設定情報収集装置１１、およびＮ個のクライアント装置１２−１〜１２−Ｎを有し、インターネット等のネットワーク１３を通じて通信可能に構成されている。Ｎは１以上の整数である。説明の便宜上、図１では１個の設定情報収集装置１１を記載しているが、複数個の設定情報収集装置１１が存在してもよい。
【００１２】
図２に例示するように、本形態の設定情報収集装置１１は、通信部１１１（受信部）、エラーパタンリスト記憶部１１２、応答部１１３、抽出部１１４、設定情報記憶部１１５、解析集計部１１６、評価情報リスト記憶部１１７、検査結果出力部１１８、および制御部１１９を有する。応答部１１３は、ネゴシエーション実行部１１３１、および模擬エラー応答管理部１１３２を有する。設定情報収集装置１１は、例えば、ＣＰＵ（central processing unit）等のプロセッサ（ハードウェア・プロセッサ）およびＲＡＭ（random-access memory）・ＲＯＭ（read-only memory）等のメモリ等を備える汎用または専用のコンピュータが所定のプログラムを実行することで構成される装置である。このコンピュータは１個のプロセッサやメモリを備えていてもよいし、複数個のプロセッサやメモリを備えていてもよい。このプログラムはコンピュータにインストールされてもよいし、予めＲＯＭ等に記録されていてもよい。また、ＣＰＵのようにプログラムが読み込まれることで機能構成を実現する電子回路（circuitry）ではなく、プログラムを用いることなく処理機能を実現する電子回路を用いて一部またはすべての処理部が構成されてもよい。また、１個の装置を構成する電子回路が複数のＣＰＵを含んでいてもよい。設定情報収集装置１１は、制御部１１９の制御に基づいて各処理を実行する。
【００１３】
＜事前設定＞
事前設定として、エラーパタンのリストがエラーパタンリスト記憶部１１２に格納される。「エラーパタン」とは、仮想的な暗号通信路の確立処理時のエラー応答を模擬した模擬エラー応答を表す情報を意味する。「仮想的な暗号通信路」とは、暗号通信を行うためにサーバ装置とクライアント装置との間で暗号方式が合意された通信環境を意味する。言い換えると、所定のプロトコルに基づいて暗号通信に用いる暗号方式が取り決められた環境を「仮想的な暗号通信路」と呼ぶ。「仮想的な暗号通信路」の例は、ＳＳＬ（Secure Sockets Layer）やＴＬＳ（Transport Layer Security）のＳＳＬ／ＴＬＳセッションである。「仮想的な暗号通信路の確立」とは、暗号通信を行うためにサーバ装置とクライアント装置との間で暗号方式を含む通信方式を合意することを意味する。「仮想的な暗号通信路の確立」の例は、ＳＳＬ／ＴＬＳセッションの確立である。「仮想的な暗号通信路の確立処理」とは、仮想的な暗号通信路の確立を行うためにサーバ装置とクライアント装置との間で実行される処理を意味する。「仮想的な暗号通信路の確立処理」の具体例は、ＳＳＬやＴＬＳでのハンドシェーク処理である。「確立処理時のエラー応答」とは、当該確立処理においてエラーが発生した場合にサーバ装置が返す応答である。「確立処理時のエラー応答」の具体例は、クライアント装置にアラートを返す処理、クライアント装置との接続を切断する処理などである。「模擬エラー応答」とは、このような「確立処理時のエラー応答」を模擬したものである。すなわち、本来「確立処理時のエラー応答」は、実際にエラーが発生したときにそのエラーに応じて返されるものであるが、「模擬エラー応答」はエラーの発生の有無とは無関係に返される応答である。言い換えると、「模擬エラー応答」は、エラーの発生の有無にかかわらず、エラーの発生を模擬して返される応答を意味する。「模擬エラー応答」の内容自体は、通常の「確立処理時のエラー応答」で返される応答と同じであってもよいし、同じでなくてもよい。「模擬エラー応答を表すエラーパタン」とは、このような「模擬エラー応答」の内容を表す情報である。図３ＡにＳＳＬ／ＴＬＳセッションの確立処理時にサーバ装置から返される「エラー応答（アラート）」を表すエラーパタンを例示する。この例のエラーパタンは「レコードタイプ」「バージョン」「データ長」「アラートレベル」「アラートデスクリプション」の「データ長」および「ＩＤ」を含む。例えば、このようなエラーパタンが「模擬エラー応答を表すエラーパタン」とされる。「エラーパタンのリスト」とは、このような「エラーパタン」の集合を意味する。「エラーパタンのリスト」は、複数の「エラーパタン」を含み、それらの「エラーパタン」は順序付けされ、これによって複数の「模擬エラー応答」の内容が順序付けされている。例えば、「エラーパタンのリスト」に含まれる複数の「エラーパタン」には互いに重複しない順位が対応付けられている。あるいは、一部の「エラーパタン」の順位が互いに同一であってもよい。図３Ｂに、「エラーパタンのリスト」の具体例を示す。この例では、「セッション断」や「アラート」などの模擬エラー応答である「エラー種別」とそれぞれの順位に対応する「番���」とが対応付けられている。
【００１４】
評価情報リスト記憶部１１７には、各暗号方式の安全性を表す評価情報リストが格納されている。この評価情報リストは、知られている各暗号方式の安全性の評価結果を表したリストである。図１０Ｃに評価情報リストの一例を示す。この例では、ＳＳＬまたはＴＬＳなどのプロトコルのバージョン（Version）と、そのプロトコルで利用可能な暗号方式を表す暗号スイーツの値（CS: Cipher suite）と、それらに対応する安全性の評価（「安全」「注意」「危険」）とが対応付けられている。この評価情報リストは、各暗号方式の安全性の評価に変動があるたびに更新される。
【００１５】
＜設定情報収集処理＞
次に、図４を用いて、実施形態の設定情報収集処理を例示する。
設定情報収集装置１１は、サーバ装置として何れかのクライアント装置１２−ｎ（ただし、ｎ＝１，…，Ｎ）からの「仮想的な暗号通信路の確立要求（リクエスト）」を待ち受ける。この確立要求は、クライアント装置１２−ｎから設定情報収集装置１１へのメッセージ（例えば、ClientHelloメッセージ）の送信によって行われる。このメッセージは、クライアント装置１２−ｎ（暗号通信路の確立要求元）で利用可能な暗号方式に関する設定情報を含む。このような設定情報の例は、暗号スイーツの値CS、プロトコルのバージョン、その他の補助情報である。図８はSSL2.0の場合のClientHelloメッセージのレコードデータ構造の例である。図８の例のClientHelloメッセージは、「レコードタイプ」「データ長」「メッセージタイプ」「バージョン」「暗号スイースデータの長さ」「セッションＩＤ」「乱数の長さ」「暗号スイーツの値」「乱数の値」の「データ長」「ＩＤ」を含む。この場合の「利用可能な暗号方式に関する設定情報」は、例えば、「バージョン」および「暗号スイーツの値」である。図９はSSL3.0/TLSの場合のClientHelloメッセージのレコードデータ構造の例である。図９の例のClientHelloメッセージは、「レコードタイプ」「バージョン」「レコードデータ長」「メッセージタイプ」「ハンドシェークメッセージ長」「バージョン」「乱数」「セッションＩＤの長さ」「セッションＩＤ」「暗号スイーツデータの長さ」「暗号スイーツの値」「データ圧縮形式」「拡張属性のデータ長」「拡張属性データ」の「データ長」「ＩＤ」を含む。この場合の「利用可能な暗号方式に関する設定情報」は、例えば、「バージョン」「暗号スイーツの値」「拡張属性データ」である。
【００１６】
設定情報収集装置１１（図２）のネゴシエーション実行部１１３１は、メッセージの送信を待ち受け（ステップＳ１）、メッセージが通信部１１１に送信されたかを判定する（ステップＳ２）。なお、このメッセージは、クライアント装置１２−ｎからの確立要求時に送られるメッセージ（例えば、SSLまたはTLSのClientHelloメッセージ）であってもよいし、それ以降のハンドシェークでクライアント装置１２−ｎから送られるメッセージであってもよい。ここで、メッセージが通信部１１１に送信されていない場合、ネゴシエーション実行部１１３１は、メッセージの待ち受けの終了条件を満たしたかを判定する。メッセージの待ち受けの終了条件の例は、メッセージの待ち受け時間が所定の時間を経過したこと（タイムアウト）、試行終了の指示がなされたことなどである（ステップＳ３）。ここで、メッセージの待ち受けの終了条件を満たしていない場合にはステップＳ１に戻る。一方、メッセージの待ち受けの終了条件を満たした場合には、クライアント装置１２−ｎに対する応答処理を終了し、後述するステップＳ９に進む。一方、メッセージが通信部１１１に送信された場合、通信部１１１はこのメッセージ（確立要求に基づく受信メッセージ）を受信し（仮想的な暗号通信路の確立要求を受け付け）、ネゴシエーション実行部１１３１に送る（ステップＳ４）。
【００１７】
ネゴシエーション実行部１１３１は、送られた受信メッセージを抽出部１１４に送る。抽出部１１４は、この受信メッセージ（確立要求に基づく受信メッセージ）を解析し、そこから暗号通信路の確立要求元であるクライアント装置１２−ｎで利用可能な暗号方式に関する設定情報を抽出する。図１０Ａの例では、「クライアントアドレス：ポート番号」とともに「バージョン（レコードレベル／プロトコルレベル）」「暗号スイーツの値（CS）」「拡張属性データ」を設定情報として抽出する。抽出された設定情報は設定情報記憶部１１５に格納（蓄積）される（ステップＳ５）。
【００１８】
また、模擬エラー応答管理部１１３２は、受信メッセージに対し、エラーパタンリスト記憶部１１２からエラーパタンを選択する。エラーパタンの選択は、前述の順序付けに従って行われる。すなわち、原則、エラーパタンは受信メッセージの内容に応じて選択されるのではなく、前述の順序付けに従って順番に選択される。例えば、同一のクライアント装置１２−ｎから設定情報収集装置１１にメッセージが送信されるたびに、前述の順序付けに従って順番にエラーパタンが選択される。図３Ｂの例の場合、クライアント装置１２−ｎから最初にメッセージが送信された場合には、番号「１」に対応するエラーパタン「セッション断」が選択され、２回目にメッセージが送信された場合には、番号「２」に対応するエラーパタン「アラート（Level=warning, Description=CLOSE NOTIFY）」が選択され、２回目にメッセージが送信された場合には、番号「２」に対応するエラーパタン「アラート（Level=warning, Description=INSUFFICIENT SECURITY）」が選択される。これにより、上述の順序付けに従って模擬エラー応答の内容が選択される。あるいは、模擬エラー応答管理部１１３２は、受信メッセージに応じ、エラーパタンの順序付けを変更し（複数の模擬エラー応答の内容の順序付けを変更し）、受信メッセージに対するエラーパタンを選択（変更した順序付けに従って模擬エラー応答の内容を選択）してもよい。例えば、受信メッセージの種別やステップＳ５で抽出された設定情報の種別に応じ、どのように順序付けを変更するかが予め定められており、模擬エラー応答管理部１１３２は、それに従ってエラーパタンの順序付けを変更し、受信メッセージに対するエラーパタンを選択する。また、一部のエラーパタンの順位が同一である場合、受信メッセージに応じ、何れかのエラーパタンが選択されてもよい。例えば、受信メッセージの種別やステップＳ５で抽出された設定情報の種別に応じ、何れのエラーパタンを選択するのかが予め定められており、模擬エラー応答管理部１１３２は、それに従って何れかのエラーパタンを選択する。なお、どのエラーパタンまで選択されたか、エラーパタンの順序付けの変更内容等は、エラーパタンリスト記憶部１１２に格納され、次回のエラーパタンの選択時に利用される（ステップＳ６）。模擬エラー応答管理部１１３２は、選択したエラーパタンが表す内容の模擬エラー応答をネゴシエーション実行部１１３１に指示する。例えば、この模擬エラー応答が「クライアント装置にアラートを返す処理」であった場合、模擬エラー応答管理部１１３２は選択したエラーパタンが表すアラートの返信をネゴシエーション実行部１１３１に指示する。例えば、この模擬エラー応答が「クライアント装置との接続を切断する処理」であった場合、模擬エラー応答管理部１１３２は、クライアント装置１２−ｎとの接続の切断をネゴシエーション実行部１１３１に指示する。ネゴシエーション実行部１１３１は、模擬エラー応答管理部１１３２からの指示に応じた模擬エラー応答を行う。例えば、ネゴシエーション実行部１１３１は、エラーパタンが表すアラートを通信部１１１に送り、通信部１１１が当該アラートを送信するか、クライアント装置１２−ｎとの接続の切断を行う（ステップＳ７）。
【００１９】
模擬エラー応答管理部１１３２は、所定の終了条件を満たしたかを判定する。この終了条件に限定はなく、どのような終了条件が定められてもよい。終了条件の例は、「同一のクライアント装置１２−ｎまたは同一の確立処理でのステップＳ１〜Ｓ８の繰り返し回数（試行回数）が所定の最大値Ｍａｘ（Ｍａｘ≧２）に達したこと、所定の試行回数を実施するのに必要な時間（最大試行時間）に達したこと、エラーパタンリスト記憶部１１２に格納されているすべてのエラーパタンまたは順序関係が変更されたエラーパタンが選択されたこと、試行終了の指示がなされたことなどである（ステップＳ８）。ここで、所定の終了条件を満たしていない場合、ステップＳ１に戻る。一方、所定の終了条件を満たした場合、クライアント装置１２−ｎに対する応答処理が終了し、ステップＳ９に進む。
【００２０】
ステップＳ９では、ネゴシエーション実行部１１３１が、クライアント装置１２−ｎが設定情報収集装置１１と接続状態にあるかを判定する（ステップＳ９）。ここで、接続状態にある場合には、クライアント装置１２−ｎを切断した後にステップＳ１１に進む。一方、接続状態にない場合には、そのままステップＳ１１に進む。
【００２１】
ステップＳ１１では、解析集計部１１６が設定情報記憶部１１５に格納されている設定情報を集計した集計情報を生成し、さらに評価情報リスト記憶部１１７に格納されている評価情報リストを参照して、集計情報内の暗号方式の安全性を評価し、検査結果を生成して出力する。集計情報は、蓄積された設定情報の暗号方式を表す情報（例えば、暗号スイーツの値）を含む。その他、集計情報が、プロトコルのバージョン、クライアント装置１２−ｎで選択可能な暗号方式であるか否か（対応の有無（ON/OFF））、暗号方式の優先順などの情報を含んでもよい。なお、「暗号方式の優先順」とは、クライアント装置１２−ｎがサーバ装置に「確立処理」を要求するときに、クライアント装置１２−ｎが選択する「暗号方式の優先順」を意味する。例えば、クライアント装置１２−ｎが最初にサーバ装置に「確立処理」を要求する場合には、クライアント装置１２−ｎに格納されている暗号方式またはその集合のうち、優先順が最も高い暗号方式またはその集合を選択してこの要求を行い、サーバ装置でその暗号方式が拒絶された場合にはそれよりも優先順の低い暗号方式またはその集合を選択してこの要求を行う。このような「暗号方式の優先順」の推定は、例えば抽出部１１４で抽出された「暗号方式に関する設定情報」の順序に基づいて行われる。すなわち、解析集計部１１６が、抽出部１１４で抽出された「暗号方式に関する設定情報」に基づいて「暗号方式の優先順」の推定値を得る。例えば、同一のクライアント装置１２−ｎに対してステップＳ１〜Ｓ８の処理を複数回行い、解析集計部１１６が、各設定情報が何回目の試行のステップＳ５で抽出されたものであるかを特定し、それに基づいて各設定情報の暗号方式の優先順を推定する。例えば、試行回数が小さいステップＳ５で抽出された設定情報の暗号方式ほど「暗号方式の優先順」が高いものとする。図１０Ｂの例の集計情報は、プロトコルのバージョン、対応の有無（ON/OFF）、暗号スイーツの値ＣＳ、および暗号方式の優先順を含む。また、本形態の検査結果は、集計情報によって特定される情報と、集計情報によって特定される暗号方式の安全性を表す情報とを含む。図１１の例の検査結果では、プロトコルのバージョン、暗号方式を表す情報（ＩＤ、ラベル、別名）、対応の有無（ON/OFF）、および暗号方式の優先順からなるリストを含み、それぞれの暗号方式の安全性（「安全」「注意」「危険」）が色分けされている。例えば、「安全」な暗号方式に対応する情報には緑色が付され、「注意」の暗号方式に対応する情報には黄色が付され、「危険」な暗号方式に対応する情報には「赤色」が付される。得られた検査結果は、検査結果出力部１１８に送られ、そこから出力される（ステップＳ１１）。以上の処理を複数のクライアント装置１２−１〜１２−Ｎに対して実行することにより、これらに対する検査結果を得ることができる。
【００２２】
＜模擬エラー応答の具体例＞
図５〜図７を用い、前述した模擬エラー応答の具体例を示す。
図５の例は、「模擬エラー応答」として「クライアント装置との接続を切断する処理」が繰り返される例である。この例では、ステップＳ４でメッセージが受信され、ステップＳ５でメッセージ解析・設定情報の抽出が行われた後、ステップＳ６で「クライアント装置との接続を切断する処理」を表すエラーパタンが選択され、ステップＳ７でクライアント装置１２−ｎとの接続が切断される。ネゴシエーション実行部１１３１は、その後、クライアント装置１２−ｎが再びメッセージを送信してくるのを待つ（ステップＳ１）。接続が切断されたクライアント装置１２−ｎは、設定情報収集装置１１に対し、先ほどと異なる設定情報のメッセージで確立要求を行う。このメッセージはステップＳ４で受信され、ステップＳ５でメッセージ解析・設定情報の抽出が行われた後、再び、ステップＳ６で「クライアント装置との接続を切断する処理」を表すエラーパタンが選択され、ステップＳ７でクライアント装置１２−ｎとの接続が切断される。これにより、１回目の試行とは異なる設定情報が抽出される。さらにもう一度、同様な処理が実行され、さらに別の設定情報が抽出される。その後、ステップＳ３の終了条件（例えば、メッセージの待ち受け時間が所定の時間を経過したこと）が満たされ、ステップＳ１１に進む。
【００２３】
図６の例は、「模擬エラー応答」として「クライアント装置にアラートを返す処理」が繰り返される例である。この例では、ステップＳ４でメッセージが受信され、ステップＳ５でメッセージ解析・設定情報の抽出が行われた後、ステップＳ６で「クライアント装置にアラートを返す処理」を表すエラーパタンが選択され、ステップＳ７でクライアント装置１２−ｎに対してアラートが返信される。ネゴシエーション実行部１１３１は、接続を切断することなく、クライアント装置１２−ｎが再びメッセージを送信してくるのを待つ（ステップＳ１）。アラートを受け取ったクライアント装置１２−ｎは、設定情報収集装置１１に対し、先ほどと異なる設定情報のメッセージを送信する。このメッセージはステップＳ４で受信され、ステップＳ５でメッセージ解析・設定情報の抽出が行われた後、再び、ステップＳ６で「クライアント装置にアラートを返す処理」を表すエラーパタンが選択され、ステップＳ７でクライアント装置１２−ｎに対してアラートが返信される。これにより、１回目の試行とは異なる設定情報が抽出される。その後、ステップＳ８の終了条件（例えば、試行終了の指示がなされたこと）が満たされ、ステップＳ１０で接続が切断された後、ステップＳ１１に進む。
【００２４】
図７の例も、「模擬エラー応答」として「クライアント装置にアラートを返す処理」が繰り返される例である。この例では、ステップＳ４でメッセージが受信され、ステップＳ５でメッセージ解析・設定情報の抽出が行われた後、ステップＳ６で「クライアント装置にアラートを返す処理」を表すエラーパタンが選択され、ステップＳ７でクライアント装置１２−ｎに対してアラートが返信される。アラートを受け取ったクライアント装置１２−ｎは、接続を切断する。その後、ネゴシエーション実行部１１３１は、クライアント装置１２−ｎが再びメッセージを送信してくるのを待つ（ステップＳ１）。切断を行ったクライアント装置１２−ｎは、設定情報収集装置１１に対し、先ほどと異なる設定情報のメッセージを送信する。このメッセージはステップＳ４で受信され、ステップＳ５でメッセージ解析・設定情報の抽出が行われた後、再び、ステップＳ６で「クライアント装置にアラートを返す処理」を表すエラーパタンが選択され、ステップＳ７でクライアント装置１２−ｎに対してアラートが返信される。これにより、１回目の試行とは異なる設定情報が抽出される。アラートを受け取ったクライアント装置１２−ｎは、接続を切断する。その後、ステップＳ８の終了条件（例えば、試行終了の指示がなされたこと）が満たされ、ステップＳ１１に進む。
【００２５】
＜本形態の特徴＞
本形態では、サーバ装置として機能する設定情報収集装置１１が、クライアント装置１２−ｎから送信された「仮想的な暗号通信路の確立要求」を受け付ける。これを契機とし、設定情報収集装置１１は、「確立要求」に基づく受信メッセージから、「暗号通信路の確立要求元」であるクライアント装置１２−ｎで利用可能な暗号方式に関する設定情報を抽出する抽出処理と、当該受信メッセージに対し、仮想的な暗号通信路の確立処理時のエラー応答を模擬した模擬エラー応答を行う応答処理と、を繰り返し実行する。ここで、模擬エラー応答がなされたクライアント装置１２−ｎは、設定情報収集装置１１との接続を再試行するため、前回と異なる設定情報でメッセージを送信する可能性が高い。そのため、抽出処理と応答処理とを同一のクライアント装置１２−ｎについて複数回繰り返すことにより、当該クライアント装置１２−ｎで利用可能な暗号方式に関する設定情報を十分に引き出すことができる。
【００２６】
また本形態では、エラーパタンリストのエラーパタンが順序付けされることで、それらに対応する複数の模擬エラー応答の内容が順序付けされ、この順序付けに従って模擬エラー応答の内容が選択される。これにより、設定情報を効率よく収集できる模擬エラー応答の応答順序が分かっていれば、その順序付けに従って模擬エラー応答を行い、設定情報を効率よく収集することができる。
【００２７】
また、受信メッセージに応じて複数の模擬エラー応答の内容の順序付けを変更し、変更した順序付けに従って模擬エラー応答の内容を選択することで、受信メッセージの内容を考慮して設定情報を効率よく収集できる模擬エラー応答の順序を選択することができる。
【００２８】
また、抽出された暗号方式に関する設定情報の順序に基づいて当該暗号方式の優先順を推定することができる。暗号方式の優先順は安全性に大きく関与する。すなわち、優先順が高い暗号方式は使用される頻度が高く、その暗号方式の安全性に問題がある場合には早急な対応が必要である。一方、優先順が低い暗号方式は使用される頻度が低いため、その暗号方式の安全性に問題があっても、対応の必要性は低い。このような優先順を効率よく抽出することにより、安全性と接続性とを考慮した対処が容易となる。
【００２９】
［変形例等］
なお、本発明は上述の実施の形態に限定されるものではない。例えば、各装置がネットワークを通じて情報をやり取りするのではなく、少なくとも一部の組の装置が可搬型記録媒体を介して情報をやり取りしてもよい。或いは、少なくとも一部の組の装置が非可搬型の記録媒体を介して情報をやり取りしてもよい。これらの装置の一部からなる組み合わせが、同一の装置であってもよい。例えば上述の実施形態では、「エラーパタンのリスト」が順序付けされた複数の「エラーパタン」を含み、この順序付けに従って「エラーパタン」が選択された。しかしながら、毎回同一の「エラーパタン」が選択されてもよい。収集された設定情報に応じてエラーパタンリストが更新されてもよい。すなわち、模擬エラー応答の内容と模擬エラー応答の後に設定情報収集装置１１に入力された受信メッセージから抽出された設定情報との関係に基づいて、複数の模擬エラー応答の内容および順序付けの少なくとも一方が更新されてもよい。例えば、模擬エラー応答の内容と抽出された設定情報が表す暗号方式の個数または種類との関係を集計し、より多くの暗号方式に関する設定情報を取得できる模擬エラー応答の組み合わせを算出し、それに基づいて「エラーパタンのリスト」またはその「エラーパタン」の順序関係が更新されてもよい。また、上述の実施形態ではメッセージを受信するたびに模擬エラー応答を行った。しかしながら、確立要求のためのメッセージ（例えば、ClientHelloメッセージ）を受け取った後、しばらくは通常の確立処理（例えば、ハンドシェーク）を実行し、その途中で送信されたメッセージに対して模擬エラー応答を行ってもよい。このような確立処理の途中で送信されたメッセージも「確立要求に基づく受信メッセージ」に相当する。
【００３０】
上述の各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。例えば、ステップＳ４とＳ５との間でステップＳ６，７が実行されてもよい。例えば、設定情報取得装置が複数のクライアント装置と並列に上述の処理を実行してもよい。その他、本発明の趣旨を逸脱しない範囲で適宜変更が可能であることはいうまでもない。
【００３１】
上述の構成をコンピュータによって実現する場合、各装置が有すべき機能の処理内容はプログラムによって記述される。このプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体の例は、非一時的な（non-transitory）記録媒体である。このような記録媒体の例は、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等である。
【００３２】
このプログラムの流通は、例えば、そのプログラムを記録したＤＶＤ、ＣＤ−ＲＯＭ等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。
【００３３】
このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶装置に格納する。処理の実行時、このコンピュータは、自己の記録装置に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。このプログラムの別の実行形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよく、さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるＡＳＰ（Application Service Provider）型のサービスによって、上述の処理を実行する構成としてもよい。
【００３４】
上記実施形態では、コンピュータ上で所定のプログラムを実行させて本装置の処理機能が実現されたが、これらの処理機能の少なくとも一部がハードウェアで実現されてもよい。
【産業上の利用可能性】
【００３５】
上述の技術は、ＳＳＬやＴＬＳなどの仮想的な暗号通信路を確立して暗号通信を行うプロトコルに則って通信を行う分野に利用できる。
【符号の説明】
【００３６】
１  通信システム
１１  設定情報収集装置
１２−１〜１２−Ｎ  クライアント装置
【図１】
0005987076.tif 000002
【図２】
0005987076.tif 000003
【図３】
0005987076.tif 000004
【図４】
0005987076.tif 000005
【図５】
0005987076.tif 000006
【図６】
0005987076.tif 000007
【図７】
0005987076.tif 000008
【図８】
0005987076.tif 000009
【図９】
0005987076.tif 000010
【図１０】
0005987076.tif 000011
【図１１】
0005987076.tif 000012