以下、本発明に係る実施形態について、図面を参照して説明する。
[システム構成]
まず、本発明の一実施形態に係る情報処理装置100を備えるシステム1の構成について図1を参照して説明する。システム1は、第1の端末装置10と、スイッチ20と、アクセラレータ30と、サーバ40と、記憶部60と、情報処理装置100と、第2の端末装置200と、を備える。
第1の端末装置10は、例えばデスクトップ型もしくはラップトップ型のパーソナルコンピュータである。第1の端末装置10は、システム1のユーザ(利用者)によって使用される。ユーザは、例えばサーバ40が提供するサービスを利用するために第1の端末装置10を用いる。このとき、第1の端末装置10とサーバ40とは、ネットワーク50を介してSSL/TLS通信を行う。第1の端末装置10は、サーバ40との間でSSL/TLS接続を確立させる際にClient Helloと呼ばれるパケットをサーバ40に送信する。Client Helloは、第1の端末装置10が利用可能な暗号スイートの一覧情報を含む。なお、システム1のユーザは一般に複数であり、第1の端末装置10も複数である。図1では簡便のため、第1の端末装置10を1つだけ示している。
サーバ40は、例えばユーザの要求に応じて各種情報をユーザに提供するサービスを実行する。サーバ40は、第1の端末装置10からClient Helloを受信すると、第1の端末装置10が利用可能な暗号スイートの一覧から、第1の端末装置10との間の暗号化通信で使用する暗号スイートを選択する。そして、サーバ40は、Server Helloと呼ばれるパケットを第1の端末装置10に送信する。Server Helloは、サーバ40が選択した暗号スイートの情報を含む。
また、サーバ40は、第1の端末装置10からアクセスされた際に、第1の端末装置10のアクセス情報を取得する。このアクセス情報には、ユーザエージェント(User Agent)情報が含まれる。ユーザエージェント情報とは、Webブラウザ情報、OS(Operating System)情報を含む情報である。サーバ40は、取得したアクセス情報をミラーリングして情報処理装置100に出力する。
アクセラレータ30は、例えばSSLアクセラレータである。アクセラレータ30は、第1の端末装置10とサーバ40との間のSSL/TLS通信において、暗号化処理および復号処理を行う。
スイッチ20は、ネットワーク50を介して第1の端末装置10とアクセラレータ30との間で送受信されるパケット等を、ミラーリングして情報処理装置100に転送する。スイッチ20は、例えばClient HelloおよびServer Helloを情報処理装置100に転送する。
第2の端末装置200は、例えばデスクトップ型もしくはラップトップ型のパーソナルコンピュータである。第2の端末装置200は、第1の端末装置10とサーバ40との間の暗号化通信の管理者によって用いられる。また、第2の端末装置200は、情報処理装置100との間でデータの送受信が可能である。管理者は、例えば情報処理装置100に廃止を検討する対象の暗号スイートの情報を伝える場合、情報処理装置100から検討に必要な情報を取得する場合等に第2の端末装置200を用いる。
記憶部60は、暗号スイートの廃止を検討する際に必要となるデータの集合である廃止検討用データベース130を記憶する。記憶部60は、例えばネットワーク経由で情報処理装置100からアクセス可能なファイルサーバーのハードディスクやメモリ等であってもよい。また、例えば記憶部60は情報処理装置100に含まれる構成であってもよい。また、記憶部60は、廃止検討用データベース130だけでなく、暗号スイートの廃止を検討するためのプログラムを記憶していてもよい。
情報処理装置100は、暗号スイートの廃止検討に必要な情報を生成して第2の端末装置200に出力する。図1に示されるように、情報処理装置100は、情報解析部110、データベース管理部120、廃止検討部140を備える。本実施形態に係る情報処理装置100は、例えば特定のプログラムを読み込むことにより特定の機能を実現するプロセッサである。暗号スイートの廃止を検討するためのプログラムを読み込んで実行することにより、情報処理装置100は、情報解析部110、データベース管理部120、廃止検討部140としての機能を実現する。なお、情報処理装置100は、これらの一部または全部の機能をハードウェアで実現してもよい。なお、プログラムは、例えば記憶部60から情報処理装置100が有するメモリ等にダウンロードされて実行されてもよい。
情報処理装置100は、情報処理装置100を利用する管理者の第2の端末装置200から、第1の端末装置10とサーバ40との間のSSL/TLS通信において廃止を検討する対象の暗号スイートの情報を取得する。情報処理装置100が取得する暗号スイートの情報は、1つの暗号スイートを特定できるものであればよい。本実施形態において、暗号スイートの情報は暗号スイート名であるが、例えば暗号スイートのそれぞれを区別可能な識別番号等が用いられてもよい。続いて、情報処理装置100が備える機能ブロックについて説明する。
情報解析部110は、スイッチ20からパケットを取得する。この取得したパケットには、Client HelloおよびServer Helloが含まれる。また、情報解析部110は、サーバ40から、アクセス情報を取得する。そして、情報解析部110は、取得したClient Hello,Server Helloおよびアクセス情報を解析して、その解析結果をデータベース管理部120に出力する。情報解析部110が実行する解析の詳細については後述する。
データベース管理部120は、廃止検討用データベース130を管理する。データベース管理部120は、例えば、情報解析部110から取得したClient Hello等の解析結果に基づき、廃止検討用データベース130に格納されているデータを更新する。また、データベース管理部120は、例えば、管理者の第2の端末装置200から更新情報を取得した場合、取得した更新情報に基づき、廃止検討用データベース130に格納されているデータを更新する。廃止検討用データベース130は、後述するように、例えば暗号スイート利用状況管理表、アクセス回数一覧表および暗号スイート廃止対策表等のテーブルを格納する。
廃止検討部140は、第2の端末装置200から廃止を検討する対象の暗号スイート名を取得する。廃止検討部140は、取得した暗号スイート名により特定される「所定の暗号スイート」の廃止検討に必要な情報を生成し、第2の端末装置200に出力する。廃止検討部140は、必要な情報を生成するために、廃止検討用データベース130にアクセスして必要な情報を取得する。
また、廃止検討部140は、所定の期間(例えば、一週間、一か月等)毎に、廃止検討用データベース130に格納されているデータに基づき、使用されていない暗号スイートや利用回数の低い暗号スイートを検出する。そして、このような暗号スイートについて、廃止を推奨する警告を第2の端末装置200に通知する。
ここで、図2(A)〜図3(B)を参照して、廃止検討用データベース130が格納するテーブルについて説明する。
図2(A)の「暗号スイート利用状況管理表」は、第1の端末装置10とサーバ40との間のSSL/TLS通信で用いられた暗号スイート毎の利用回数、提示回数および危殆化度を示す。利用回数は、暗号スイートがSSL/TLS通信に用いる暗号スイートとして使用された回数、つまり、サーバ40によって選択された回数を示す。サーバ40が選択した暗号スイートの情報はServer Helloに含まれる。そのため、サーバ40から第1の端末装置10へServer Helloとして送信された回数によって、暗号スイートが選択された回数が把握される。
また、提示回数は、暗号スイートが第1の端末装置10によって利用可能な暗号スイートとして提示された回数を示す。第1の端末装置10が利用可能な暗号スイートの一覧はClient Helloに含まれる。そのため、第1の端末装置10からサーバ40へClient Helloとして送信された回数によって、暗号スイートが提示された回数が把握される。
また、危殆化度は、暗号スイート毎の危殆化の大きさを示す。本実施形態において、危殆化度は大、中、小の三段階に区分されている。危殆化度「小」が最も安全度の高い状態であることを示し、危殆化度「大」が最も安全度の低い状態であることを示している。例えば、危殆化度「大」は、その暗号スイートが「既に危殆化しており、使用が推奨されない」ことを意味する(図2(A)の暗号スイートD参照)。また、例えば、危殆化度「中」は、その暗号スイートが「現状は危殆化していないが、将来的に危殆化する可能性がある」ことを意味する(図2(A)の暗号スイートA参照)。また、例えば、危殆化度「小」は、その暗号スイートが「危殆化しておらず、安全に使用できる」ことを意味する(図2(A)の暗号スイートC参照)。
ここで、暗号スイート利用状況管理表の暗号スイート名および危殆化度は、システム1の運用開始までに管理者によって登録される。また、管理者の第2の端末装置200からの更新情報によって、暗号スイート名および危殆化度の追加、変更および削除が可能である。また、利用回数および提示回数は、システム1の運用開始前は管理者によって初期値0に設定される。そして、システム1の運用開始後に、利用回数および提示回数は、例えば1週間、1カ月等の所定の時間が経過する毎にデータベース管理部120によって更新される。つまり、上記の所定の時間を1周期として、その間の利用回数および提示回数が測定されて、測定値(回数)が暗号スイート利用状況管理表に記憶される。図2(A)の例では、過去の5周期分(周期1〜周期5)の利用回数および提示回数が記憶されるが、それより多くまたは少ない周期の利用回数および提示回数が記憶されてもよい。
図2(B)の「アクセス回数一覧表」は、第1の端末装置10がサーバ40にアクセスした際に用いられたユーザエージェント毎のアクセス回数を示す。ユーザエージェント名は例えば、ブラウザの種類とOSの種類との組み合わせで示される。このアクセス回数は、システム1の運用開始前は初期値0に設定され、システム1の運用開始後、図2(A)と同じ周期毎にデータベース管理部120によって更新される。周期1〜周期5は、図2(A)と同じように過去の5周期分のアクセス回数を記憶していることを示す。ここで、アクセス回数一覧表のユーザエージェント名は、システム1の運用開始までに管理者によって登録される。また、管理者の第2の端末装置200からの更新情報によって、ユーザエージェント名の追加、変更および削除が可能である。
図2(C)の「暗号スイート廃止対策表」は、暗号スイートを廃止する際の対策内容を示す。対策内容は、暗号スイートを廃止時に実行する作業を示すものであり、例えばサーバの設定を検討すること(設定検討(サーバ))、スイッチを検証すること(検証(スイッチ))、スイッチの設定を変更すること(設定変更(スイッチ))等が挙げられる。図2(C)の暗号スイート廃止対策表は、対策内容毎の対策対象、必要期間、想定費用および通信影響等を示す。これらは、システム1の運用開始までに管理者によって登録される。また、管理者の第2の端末装置200からの更新情報によって、各項目の追加、変更および削除が可能である。
図3(A)の「サーバが使用可能な暗号スイート一覧」は、サーバ40が使用可能な暗号スイートを示すものである。また、図3(A)と同様のテーブル形式で、第1の端末装置10が使用可能な暗号スイートの一覧も廃止検討用データベース130に記憶される。つまり、サーバ40を含めて暗号化通信を行う各装置について、「各装置が使用可能な暗号スイート一覧」が廃止検討用データベース130に記憶される。各装置が使用可能な暗号スイート一覧は、装置名、項番、暗号スイート名の情報を保持している。なお、図3(A)の例では、装置名はテーブルのタイトル部分に含まれている。各装置が使用可能な暗号スイートの情報は、Client HelloおよびServer Helloに含まれる。情報解析部110は、取得したClient Hello,Server Helloおよびアクセス情報を解析して、その解析結果である暗号スイート一覧をデータベース管理部120に出力する。そして、データベース管理部120は、その解析結果に基づいて、各装置が使用可能な暗号スイート一覧を廃止検討用データベース130に記憶する。
図3(B)の「危殆化していない設定可能な暗号スイート候補」は、ある暗号スイートを廃止する際に、代わりに設定可能な暗号スイートの候補を示すものである。具体的には、システム1で使用される第1の端末装置10およびサーバ40(全ての装置)に設定可能かつ危殆化していない暗号スイートの候補の一覧である。危殆化していない設定可能な暗号スイート候補は、項番、暗号スイート名、危殆化度の情報を保持している。詳細な処理フローについては後述するが、廃止検討部140は、各装置が使用可能な暗号スイート一覧を取得して、各装置に共通の暗号スイートを抽出可能である。また、廃止検討部140は、暗号スイート利用状況管理表を取得して、抽出した暗号スイートの危殆化度を把握可能である。そして、廃止検討部140は、図3(B)に示されるような危殆化していない設定可能な暗号スイート候補を廃止検討用データベース130に記憶して、必要に応じて暗号スイート候補の並び替え等を実行して「推奨暗号スイートリスト」として、第2の端末装置200に出力する。管理者は、サーバ40、アクセラレータ30で使用する暗号スイートが、推奨暗号スイートリストに従うように設定変更(例えば暗号スイートの選択の優先順位の設定変更等)を行う。
<パケット解析機能>
以下、パケットを解析する情報解析部110の機能について、より詳細に説明する。
情報解析部110は、スイッチ20またはサーバ40からパケットを取得すると、取得したパケットが、SSL/TLS接続確立の際のハンドシェイクパケットであるか否か判定する。図4にClient Helloパケットによるハンドシェイクパケットの構成の一例を示し、図5にServer Helloパケットによるハンドシェイクパケットの構成の一例を示す。情報解析部110は、レコード層(Record Layer)のタイプ(type)の値が0x16である場合、取得したパケットはハンドシェイクパケットであると判定する(Client HelloパケットおよびServer Helloパケットで共通)。
情報解析部110は、取得したパケットがサーバ40からのアクセス情報によるパケットであるか否か判定する。情報解析部110は、取得したパケットがサーバ40からのアクセス情報によるパケットであると判定した場合、ユーザエージェント情報を抽出する。そして、情報解析部110は、抽出したユーザエージェント情報を、解析結果としてデータベース管理部120に出力する。
一方、情報解析部110は、取得したパケットがSSL/TLS接続確立の際のハンドシェイクパケットであると判定した場合、取得したパケットがClient Helloパケットであるか否か判定する。情報解析部110は、例えば、図4に示されるように、メッセージタイプ(msg_type)の値が0x01である場合、取得したパケットはClient Helloパケットであると判定する。情報解析部110は、取得したパケットがClient Helloパケットであると判定した場合、そのClient Helloパケットから暗号スイートの一覧情報を抽出する。そして、情報解析部110は、抽出した暗号スイートの一覧情報を、解析結果としてデータベース管理部120に出力する。図4の例では、暗号スイートの一覧の「TLS_NULL_WITH_NULL_NULL」、「TLS_RSA_WITH_NULL_MD5」等が、解析結果としてデータベース管理部120に出力される。
さらに、情報解析部110は、取得したパケットがClient Helloパケットではないと判定した場合、取得したパケットがServer Helloパケットであるか否か判定する。情報解析部110は、例えば、図5に示されるように、メッセージタイプ(msg_type)の値が0x02である場合、取得したパケットはServer Helloパケットであると判定する。情報解析部110は、取得したパケットがServer Helloパケットであると判定した場合、そのServer Helloパケットから、サーバ40が選択した暗号スイートの情報(以下、「選択暗号スイートの情報」という)を抽出する。そして、情報解析部110は、選択暗号スイートの情報を、解析結果としてデータベース管理部120に出力する。図5の例では、選択暗号スイートである「TLS_RSA_WITH_RC4_128_MD5」が、解析結果としてデータベース管理部120に出力される。
以下、Client Hello等の解析結果または管理者の更新情報に基づき、廃止検討用データベース130を更新するデータベース管理部120の機能の詳細について説明する。
<解析結果に基づく廃止検討用データベースの更新>
データベース管理部120は、情報解析部110から解析結果を取得して、解析結果を廃止検討用データベース130に反映する。例えば、データベース管理部120は、情報解析部110からユーザエージェント情報を取得した場合には、アクセス回数一覧表のアクセス回数を更新する(図2(B)参照)。また、例えば、データベース管理部120は、情報解析部110から選択暗号スイートの情報を取得した場合には、暗号スイート利用状況管理表の利用回数を更新する(図2(A)参照)。また、例えば、データベース管理部120は、情報解析部110から暗号スイートの一覧情報を取得した場合には、暗号スイート利用状況管理表の提示回数を更新する(図2(A)参照)。
本実施形態において、データベース管理部120は、例えば1週間、1カ月等の所定の時間(すなわち周期)が経過する毎に、暗号スイート利用状況管理表の利用回数、提示回数、およびアクセス回数一覧表のアクセス回数を更新する。暗号スイート利用状況管理表およびアクセス回数一覧表は、過去の5周期分の利用回数、提示回数、およびアクセス回数を記憶する。データベース管理部120は、例えば前回に周期(N)を使用した場合、周期(N+1)に切り替える。
<管理者の更新情報に基づく廃止検討用データベースの更新>
また、データベース管理部120は、管理者の第2の端末装置200から取得した更新情報に基づき、廃止検討用データベース130を更新する機能を有する。例えば、データベース管理部120は、管理者の第2の端末装置200からの更新情報によって、暗号スイート利用状況管理表の暗号スイート名および危殆化度の、追加、変更および削除が可能である。特に、データベース管理部120は、危殆化度の追加、変更および削除が可能であり、複数の暗号スイートと危殆化度とを対応付けたテーブル(暗号スイート利用状況管理表)を記憶部60に記憶させることができる。また、データベース管理部120は、管理者の第2の端末装置200からの更新情報によって、ユーザエージェント名の追加、変更および削除が可能である。本実施形態において、データベース管理部120は、管理者の第2の端末装置200から取得した更新情報に基づく廃止検討用データベース130の更新をいつでも実行可能である。
<廃止検討機能>
以下、廃止検討部140の機能について、より詳細に説明する。廃止検討部140は、管理者の第2の端末装置200から、廃止を検討する暗号スイート(本発明の「指定された暗号スイート」に対応)の名称を取得する。廃止検討部140は、暗号スイート利用状況管理表(図2(A)参照)の複数の暗号スイートのそれぞれの危殆化度に基づいて、廃止を検討する暗号スイートに代わって使用が推奨される推奨暗号スイートを選択する。廃止検討部140は、各装置が使用可能な暗号スイート一覧から各装置に共通の暗号スイートを抽出する。廃止検討部140は、暗号スイート利用状況管理表から抽出した共通の暗号スイートの危殆化度に基づいて(具体的には、共通の暗号スイートの危殆化度を比較することで)推奨暗号スイートを選択できる。このとき、廃止検討部140は、推奨暗号スイートリスト(図3(B)参照)を廃止検討用データベース130に生成して、推奨暗号スイートリストから条件(例えば上位2つ等)に合致した暗号スイートを推奨暗号スイートとする処理を実行してもよい。そして、廃止検討部140は、廃止を検討する暗号スイートの利用回数、提示回数、ユーザエージェント毎のアクセス回数、および推奨暗号スイートの情報を廃止検討用データとして第2の端末装置200に出力する。ここで、利用回数、提示回数、ユーザエージェント毎のアクセス回数は、暗号スイート利用状況管理表およびアクセス回数一覧表(図2(A)および図2(B)参照)から抽出可能である。
また、廃止検討部140は、暗号スイート廃止対策表の対策内容に応じた想定費用、必要期間等(図2(C)参照)を第2の端末装置200に出力してもよい。図6は、廃止検討部140が第2の端末装置200から、廃止を検討する暗号スイートの名称(この例では「暗号スイートD」)を取得した場合に、廃止検討に必要な情報を生成して第2の端末装置200に出力する一例を示すものである。廃止検討部140は、廃止検討用データベース130にアクセスして、暗号スイート利用状況管理表、アクセス回数一覧表、暗号スイート廃止対策表、およびサーバが使用可能な暗号スイート一覧を取得して、危殆化していない設定可能な暗号スイート候補を生成する。そして、廃止検討部140は、取得したデータ、および生成したデータから必要な情報を抽出して、第2の端末装置200に出力する。図6の例では、廃止検討部140は、第2の端末装置200から取得した暗号スイートDの利用回数等を示した上で、危殆化していない設定可能な暗号スイート候補を出力する。管理者は、特に危殆化していない設定可能な暗号スイート候補を参照することで、暗号スイートDの廃止後にサーバ40によって新たに選択される暗号スイートが適切か(上記の候補に含まれるか)否かを容易に判断でき、必要な場合にはサーバ40等の設定を変更することができる。
また、廃止検討部140は、利用回数および提示回数が第1の期間(例えば5周期)において所定の回数(例えば0回)以下である暗号スイートの削除(廃止)を促す通知を、推奨暗号スイートとともに第2の端末装置200に出力してもよい。また、廃止検討部140は、利用回数が第1の期間(例えば5周期)よりも短い第2の期間(例えば3周期)において所定の回数(例えば0回)以下である暗号スイートの削除を促す通知(警告通知)を、推奨暗号スイートとともに第2の端末装置200に出力してもよい。このように利用されない、または、利用されるとしても利用回数の少ない暗号スイートを第2の端末装置200に通知することによって、管理者の暗号スイートの廃止の検討に役立つことができる。また、廃止検討部140は、このような警告通知を、周期に関連付けて定期的に行うことができる。例えば、新たに利用回数、提示回数を取得した際に、廃止検討部140は、利用されない、または、利用されるとしても利用回数の少ない暗号スイートを第2の端末装置200に通知してもよい。
図7に、第2の端末装置200に表示される警告通知の一例を示す。図7の例では、「暗号スイートD」の利用頻度が低い(利用回数が少ない)ことが表示されるとともに、暗号スイートDに代わる推奨暗号スイートとして、暗号スイートE、暗号スイートFが表示されている。暗号スイートDの廃止後の候補(推奨暗号スイート)が表示されており、警告通知だけの場合よりも廃止の検討に役立つ情報を管理者に提供できる。
また、廃止検討部140は、第2の端末装置200から取得した廃止を検討する暗号スイートが、第1の端末装置10とサーバ40との間の暗号化通信で利用可能な暗号スイートに含まれない場合に、指定された暗号スイートは使用されていないことを示す通知を、第2の端末装置200に出力してもよい。廃止検討部140は、推奨暗号スイートを選択する際に各装置に共通の暗号スイートを抽出するため、指定された暗号スイートが使用されているか否かを容易に判定可能である。このような通知を第2の端末装置200に通知することによって、管理者が効率的に暗号スイートの廃止を検討できるようにする。
<パケット解析処理>
以下に、情報処理装置100が実行する情報処理方法について説明する。図8は、本発明の一実施形態に係る情報解析部110の動作の一例を示すフローチャートである。
まず、情報解析部110は、スイッチ20またはサーバ40からパケットを取得すると(ステップS101)、取得したパケットが、SSL/TLS接続確立の際のハンドシェイクパケットであるか否か判定する(ステップS102)。情報解析部110は、取得したパケットが、SSL/TLS接続確立の際のハンドシェイクパケットではないと判定した場合(ステップS102:No)、ステップS103の処理に進む。一方、情報解析部110は、取得したパケットが、SSL/TLS接続確立の際のハンドシェイクパケットであると判定した場合(ステップS102:Yes)、ステップS107の処理に進む。
ステップS103の処理では、情報解析部110は、取得したパケットが、サーバ40からのアクセス情報によるパケットであるか否か判定する。情報解析部110は、取得したパケットがサーバ40からのアクセス情報によるパケットではないと判定した場合(ステップS103:No)、取得したパケットを破棄し(ステップS104)、処理を終了する。一方、情報解析部110は、取得したパケットがサーバ40からのアクセス情報によるパケットであると判定した場合(ステップS103:Yes)、ステップS105の処理に進む。
ステップS105の処理では、情報解析部110は、アクセス情報によるパケットから、ユーザエージェント情報を抽出する。そして、情報解析部110は、抽出したユーザエージェント情報を、解析結果としてデータベース管理部120に出力する(ステップS106)。
このようにステップS106,S107の処理によって、アクセス情報によるパケットの解析結果として、ユーザエージェント情報が得られる。
ステップS107の処理では、情報解析部110は、取得したパケットが、Client Helloパケットであるか否か判定する。情報解析部110は、取得したパケットがClient Helloパケットであると判定した場合(ステップS107:Yes)、ステップS108の処理に進む。一方、情報解析部110は、取得したパケットがClient Helloパケットではないと判定した場合(ステップS107:No)、ステップS110の処理に進む。
ステップS108の処理では、情報解析部110は、Client Helloパケットから暗号スイートの一覧情報を抽出する。そして、情報解析部110は、抽出した暗号スイートの一覧情報を、解析結果としてデータベース管理部120に出力する(ステップS109)。
このようにステップS108,S109の処理によって、Client Helloパケットの解析結果として、暗号スイートの一覧情報が得られる。
ステップS110の処理では、情報解析部110は、取得したパケットが、Server Helloパケットであるか否か判定する。情報解析部110は、取得したパケットがServer Helloパケットではないと判定した場合(ステップS110:No)、取得したパケットを破棄し(ステップS111)、処理を終了する。一方、情報解析部110は、取得したパケットがServer Helloパケットであると判定した場合(ステップS110:Yes)、ステップS112の処理に進む。
ステップS112の処理では、情報解析部110は、Server Helloパケットから、選択暗号スイートの情報を抽出する。そして、情報解析部110は、選択暗号スイートの情報を、解析結果としてデータベース管理部120に出力する(ステップS113)。
このようにステップS112,S113の処理によって、Server Helloパケットからは、解析結果として、選択暗号スイートの情報が得られる。また、情報解析部110は、取得したClient Hello,Server Helloおよびアクセス情報を解析して、各装置が使用可能な暗号スイートの情報を取得する。
<解析結果に基づく廃止検討用データベースの更新処理>
図9は、本発明の一実施形態に係るデータベース管理部120の動作の一例を示すフローチャートである。
まず、データベース管理部120は、情報解析部110から、Client Hello等の解析結果を取得する(ステップS201)。すると、データベース管理部120は、取得した解析結果が、Client HelloまたはServer Helloの解析結果であるか否か判定する(ステップS202)。データベース管理部120は、取得した解析結果が、Client HelloまたはServer Helloの解析結果ではない(つまり、ユーザエージェント情報である)と判定した場合(ステップS202:No)、ステップS203の処理に進む。一方、データベース管理部120は、取得した解析結果が、Client HelloまたはServer Helloの解析結果であると判定した場合(ステップS202:Yes)、ステップS204の処理に進む。
ステップS203の処理では、データベース管理部120は、廃止検討用データベース130の更新対象を、アクセス回数一覧表のアクセス回数に決定する(図2(B)参照)。
ステップS204の処理では、データベース管理部120は、取得した解析結果が、Client Helloの解析結果であるか否か判定する。データベース管理部120は、取得した解析結果がClient Helloの解析結果ではない(つまり、選択暗号スイートの情報である)と判定した場合(ステップS204:No)、ステップS205の処理に進む。一方、データベース管理部120は、取得した解析結果がClient Helloの解析結果である(つまり、暗号スイートの一覧情報)と判定した場合(ステップS204:Yes)、ステップS206の処理に進む。
ステップS205の処理では、データベース管理部120は、廃止検討用データベース130の更新対象を、暗号スイート利用状況管理表の利用回数に決定する(図2(A)参照)。一方、ステップS206の処理では、データベース管理部120は、廃止検討用データベース130の更新対象を、暗号スイート利用状況管理表の提示回数に決定する(図2(A)参照)。
次に、データベース管理部120は、現在の周期の開始時刻から、所定の時間が経過したか否か判定する(ステップS207)。データベース管理部120は、現在の周期の開始時刻から、所定の時間が経過したと判定した場合(ステップS207:Yes)、ステップS208の処理に進む。一方、データベース管理部120は、現在の周期の開始時刻から、所定の時間が経過していないと判定した場合(ステップS207:No)、ステップS209の処理に進む。
ステップS208の処理では、データベース管理部120は、現在の周期から次の周期に切り替える。データベース管理部120は、例えば、現在の周期が周期(N)である場合、周期(N+1)に切り替える。
ステップS209の処理では、データベース管理部120は、廃止検討用データベース130において、現在の周期における、ステップS203,S205,S206の処理により決定した更新対象(アクセス回数、利用回数、提示回数)を更新する。
<管理者の廃止検討用データベースの設定、更新処理>
図10(A)および図10(B)は、管理者が第2の端末装置200を用いて実行する廃止検討用データベース130の設定、更新処理の一例を示すフローチャートである。
図10(A)は、暗号スイート利用状況管理表(図2(A)参照)に、危殆化度の情報を設定する処理フローを示す。管理者は、第2の端末装置200を用いて、危殆化度の情報をデータベース管理部120に出力することで暗号スイート利用状況管理表に危殆化度を設定する。まず、全ての暗号スイートについて危殆化度が設定されているか否かが判定される(ステップS220)。危殆化度が設定されていない暗号スイートがある場合(ステップS220:No)、第2の端末装置200を介してデータベース管理部120に危殆化度の情報が伝えられ、データベース管理部120がその暗号スイートの危殆化度を設定する(ステップS221)。その後、再びステップS220の処理が実行される。全ての暗号スイートについて危殆化度が設定されている場合(ステップS220:Yes)、処理は終了する。
ここで、全ての暗号スイートについて危殆化度が設定されているか否かは、本実施形態のようにデータベース管理部120が判定してもよいが、第2の端末装置200が実行してもよい。第2の端末装置200は、例えば廃止検討部140を介して暗号スイート利用状況管理表を取得し、危殆化度が設定されていない暗号スイートがあるか否かを把握可能である。また、図10(A)に示される処理フローは、危殆化度の情報を設定する場合だけでなく、危殆化度の情報を更新する場合にも使用される。ただし、危殆化度の情報を更新する場合には、ステップS220は「更新が必要な全ての暗号スイートの危殆化度を設定したか?」と読み替える。
図10(B)は、各装置が使用可能な暗号リスト(例えば、図3(A)のサーバが使用可能な暗号リスト)を作成する処理フローを示す。管理者は、第2の端末装置200を用いて、データベース管理部120に各装置が使用可能な暗号リストを作成させることができる。まず、全ての装置について、使用可能な暗号リストが作成されているか否かが判定される(ステップS240)。暗号リストが作成されていない装置が存在する場合(ステップS240:No)、第2の端末装置200を介してデータベース管理部120に作成指示が伝えられ、データベース管理部120がその装置の暗号リストを作成する(ステップS241)。このとき、データベース管理部120は、情報解析部110から取得した情報に基づいて暗号リストを作成する。その後、再びステップS240の処理が実行される。全対象装置について暗号リストを作成した場合(ステップS240:Yes)、処理は終了する。
ここで、全ての装置について使用可能な暗号リストが作成されているか否かは、本実施形態のようにデータベース管理部120が判定してもよいが、第2の端末装置200が実行してもよい。第2の端末装置200は、例えば廃止検討部140を介して各装置が使用可能な暗号スイート一覧を取得して作成状況を把握可能である。
<暗号スイート候補生成処理>
図11は、廃止検討部140が、危殆化していない設定可能な暗号スイート候補(図3(B)参照)を生成する処理を例示するフローチャートである。なお、以下では、廃止検討用データベース130には、5周期分の利用回数等のデータが格納されているものとして説明する。
廃止検討部140は、危殆化していない設定可能な暗号スイート候補(以下、単に「暗号スイート候補」ともいう)を生成するために、暗号スイート利用状況管理表を取得する。廃止検討部140は、暗号スイート利用状況管理表の全チェック、つまり全ての暗号スイートの危殆化度等の確認が完了した場合には処理を完了するが(ステップS260:Yes)、そうでない場合には以下の処理を実行して暗号スイート候補を生成する(ステップS260:No)。廃止検討部140は、チェック対象の暗号スイートが5周期中、3周期以上でユーザ提示回数が閾値を超えるか否かを確認する(ステップS261)。チェック対象の暗号スイートが5周期中、3周期以上でユーザ提示回数が閾値を超える場合(ステップS261:Yes)、廃止検討部140は、その危殆化度が基準を満たすか否かを確認する(ステップS262)。この例において、危殆化度は中または小である場合に基準を満たす。チェック対象の暗号スイートの危殆化度が基準を満たす場合(ステップS262:Yes)、廃止検討部140は、全装置で設定可能な暗号スイートであるか否かを確認する(ステップS263)。チェック対象の暗号スイートが全装置で設定可能、すなわちシステム1で使用可能である場合(ステップS263:Yes)、廃止検討部140は、チェック対象の暗号スイートを暗号スイート候補に追加する(ステップS264)。その後、再びステップS260の処理が実行される。なお、チェック対象の暗号スイートが、5周期中、3周期以上でユーザ提示回数が閾値を超えるものでない場合(ステップS261:No)、その危殆化度が基準を満たさない場合(ステップS262:No)、全装置で設定可能でない場合(ステップS263:No)にも、再びステップS260の処理が実行される。このとき、廃止検討部140は、ステップS260の処理の前にチェック対象の暗号スイートを変更する。図11に示される処理により、廃止検討部140は、装置に設定可能かつ危殆化していない暗号スイートを選択できる。
<廃止検討処理>
図12は、管理者が第2の端末装置200を用いて暗号スイート名を指定した場合の廃止検討部140の処理を例示するフローチャートである。
管理者は、廃止を検討する暗号スイート名を、第2の端末装置200を使用して、情報処理装置100に送信する。廃止検討部140は、暗号スイート名を取得し(ステップS401)、取得した暗号スイート名が廃止検討用データベース130内に格納されているか否か判定する(ステップS402)。廃止検討部140は、取得した暗号スイート名が廃止検討用データベース130内に格納されていないと判定した場合(ステップS402:No)、ステップS403の処理に進む。一方、廃止検討部140は、取得した暗号スイート名が廃止検討用データベース130内に格納されていると判定した場合(ステップS402:Yes)、ステップS404の処理に進む。
ステップS403の処理では、廃止検討部140は、第2の端末装置200から取得した暗号スイートに「該当するものがない旨」を、第2の端末装置200に通知する。つまり、廃止検討部140は、指定された暗号スイートは使用されていないことを示す通知を、第2の端末装置に出力する。
ステップS404の処理では、廃止検討部140は、廃止検討用データベース130内の暗号スイート利用状況管理表にて、取得した暗号スイートの利用回数および提示回数が、5周期(周期1〜5)全てにおいて0であるか否か判定する。廃止検討部140は、取得した暗号スイートの利用回数および提示回数が、5周期(周期1〜5)の全てにおいて0であると判定した場合(ステップS404:Yes)、ステップS405の処理に進む。一方、廃止検討部140は、取得した暗号スイートの利用回数および提示回数が、5周期(周期1〜5)全てにおいて0ではないと判定した場合(ステップS404:No)、ステップS406の処理に進む。
ステップS405の処理では、廃止検討部140は、第2の端末装置200から取得した暗号スイートについて、「使用されていない暗号スイートであり、削除を推奨する旨」を、第2の端末装置200に通知する。そして、ステップS408の処理では、廃止検討部140は推奨暗号スイートを出力する。つまり、廃止検討部140は、使用が推奨される暗号スイートの情報を第2の端末装置200に表示させる。
このようにステップS404,S405の処理により、廃止を検討する暗号スイートの利用回数および提示回数が5周期全てにおいて0である場合、暗号スイートについて、「使用されていない暗号スイートであり、削除を推奨する旨」が第2の端末装置200に通知される。この通知により、第2の端末装置200の管理者は、廃止を検討する暗号スイートの利用状況を速やかに把握することができる。また、ステップS408の処理により、第2の端末装置200の管理者は、推奨される暗号スイートについても速やかに把握することができる。
ステップS406の処理では、廃止検討部140は、廃止検討用データベース130内の暗号スイート利用状況管理表にて、取得した暗号スイートの利用回数が、(上記の所定の割合を6割として)5周期のうち3周期以上で0であるか否か判定する。廃止検討部140は、取得した暗号スイートの利用回数が、5周期のうち3周期以上で0であると判定した場合(ステップS406:Yes)、ステップS407の処理に進む。一方、廃止検討部140は、取得した暗号スイートの利用回数が、5周期のうち3周期以上で0ではないと判定した場合(ステップS406:No)、ステップS409に進む。
ステップS407の処理では、廃止検討部140は、第2の端末装置200から取得した暗号スイートについて、「利用回数が低い暗号スイートであり、削除を推奨する旨」を、第2の端末装置200に通知する。そして、ステップS408の処理(推奨暗号スイートの第2の端末装置200への出力)も実行される。
このようにステップS406,S407の処理により、廃止を検討する暗号スイートの利用回数が(上記の所定の割合を6割として)5周期のうち3周期以上で0である場合、暗号スイートについて、「利用回数が低い暗号スイートであり、削除を推奨する旨」が第2の端末装置200に通知される。この通知により、第2の端末装置200の管理者は、廃止を検討する暗号スイートの利用状況を速やかに把握することができる。また、ステップS408の処理により、第2の端末装置200の管理者は、推奨される暗号スイートについても速やかに把握することができる。
ステップS409の処理では、廃止検討部140は、廃止検討用データベース130を参照し、第2の端末装置200から取得した暗号スイートの廃止を検討する際に必要な情報を、第2の端末装置200に送信する。廃止検討部140は、例えば、廃止検討用データベース130内の暗号スイート利用状況管理表の利用回数および提示回数、アクセス回数一覧表のアクセス回数並びに暗号スイート廃止対策表の対策内容、想定費用および必要期間等を、第2の端末装置200に送信する。
このようにステップS409の処理により、暗号スイートの廃止を検討する際に必要な情報が、第2の端末装置200に送信される。これにより、第2の端末装置200の管理者は、利用回数等によって廃止を検討する暗号スイートが実際にどの程度使用されているかを把握することができ、さらに、対策内容等によって暗号スイートを廃止する際に必要になるコストや期間を把握することができる。
なお、ステップS406の処理において、上記の所定の割合を6割とし、判定基準を5周期のうち3周期以上としたが、異なる判定基準(所定の割合)を用いてもよい。ここで、5周期は本発明の第1の期間に対応し、5周期に所定の割合を乗じた期間が本発明の第2の期間に対応する。また、図12のフローチャートにおいて、利用回数および提示回数の閾値(本発明の「所定の回数」に対応)として0を用いたが、0以外の回数を用いてもよい。また、図12のフローチャートにおいて、閾値が0であるため0であるか否かを判定しているが、閾値「以下」であるか否か、または閾値「未満」であるか否かを判定してもよい。
<警告通知処理>
図13は、本発明の一実施形態に係る廃止検討部140の警告通知の一例を示すフローチャートである。
まず、廃止検討部140は、所定の期間が経過したか否か判定する(ステップS501)。所定の期間は、例えば、一週間単位、一か月単位で設定することができる。廃止検討部140は、所定の期間が経過していないと判定した場合(ステップS501:No)、ステップS501の処理を繰り返し行う。一方、廃止検討部140は、所定の期間が経過したと判定した場合(ステップS501:Yes)、ステップS502の処理に進む。
ステップS502の処理では、廃止検討部140は、廃止検討用データベース130内の暗号スイート利用状況管理表にて、利用回数および提示回数が5周期(周期1〜5)全てにおいて0である暗号スイートが存在するか否か判定する。廃止検討部140は、利用回数および提示回数が5周期(周期1〜5)全てにおいて0である暗号スイートが存在すると判定した場合(ステップS502:Yes)、ステップS503の処理に進む。一方、廃止検討部140は、利用回数および提示回数が5周期(周期1〜5)全てにおいて0である暗号スイートが存在しないと判定した場合(ステップS502:No)、ステップS504の処理に進む。
ステップS503の処理では、廃止検討部140は、ステップS502の処理に該当する暗号スイートについて、「使用されていない暗号スイートであり、削除を推奨する旨」を、警告通知として第2の端末装置200に通知する。これにより、第2の端末装置200の管理者は、定期的に、暗号スイートの利用状況を把握することができる。そして、ステップS506の処理では、廃止検討部140は推奨暗号スイートを出力する。つまり、廃止検討部140は、使用が推奨される暗号スイートの情報を第2の端末装置200に表示させる。
このようにS502,S503の処理により、利用回数および提示回数が5周期全てにおいて0である暗号スイートが存在する場合、暗号スイートについて、「使用されていない暗号スイートであり、削除を推奨する旨」が警告通知として第2の端末装置200に通知される。この通知により、第2の端末装置200の管理者は、定期的に、暗号スイートの利用状況を把握することができる。また、ステップS506の処理により、第2の端末装置200の管理者は、推奨される暗号スイートについても速やかに把握することができる。
ステップS504の処理では、廃止検討部140は、廃止検討用データベース130内の暗号スイート利用状況管理表にて、利用回数が(上記の所定の割合を6割として)5周期のうち3周期以上で0である暗号スイートが存在するか否か判定する。廃止検討部140は、利用回数が5周期のうち3周期以上で0である暗号スイートが存在しないと判定した場合(ステップS504:No)、処理を終了する。一方、廃止検討部140は、利用回数が5周期のうち3周期以上で0である暗号スイートが存在すると判定した場合(ステップS504:Yes)、ステップS505の処理に進む。
ステップS505の処理では、廃止検討部140は、ステップS504の処理に該当する暗号スイートについて、「利用回数が低い暗号スイートであり、削除を推奨する旨」を、警告通知として第2の端末装置200に通知する。そして、ステップS506の処理(推奨暗号スイートの第2の端末装置200への出力)も実行される。
このようにステップS504,S505の処理により、利用回数が(上記の所定の割合を6割として)5周期のうち3周期以上で0である暗号スイートが存在する場合、暗号スイートについて、「利用回数が低い暗号スイートであり、削除を推奨する旨」が警告通知として第2の端末装置200に通知される。この通知により、第2の端末装置200の管理者は、定期的に、暗号スイートの利用状況を把握することができる。また、ステップS506の処理により、第2の端末装置200の管理者は、推奨される暗号スイートについても速やかに把握することができる。
なお、ステップS504の処理において、上記の所定の割合を6割とし、判定基準を5周期のうち3周期以上としたが、異なる判定基準(所定の割合)を用いてもよい。また、ステップS502およびステップS504の処理において、閾値として0以外の回数を用いてもよい。
以上のように、本発明の一実施形態に係る情報処理装置100では、第1の端末装置10とサーバ40との間で送受信されるパケットから暗号スイートの利用回数および提示回数を解析し、さらに、サーバ40から情報処理装置100に送信されるアクセス情報から第1の端末装置10のサーバ40へのアクセス回数を取得する。そして、廃止検討用データベース130は、これらの利用回数、提示回数およびアクセス回数を周期毎に格納し、さらに、暗号スイートを廃止する際の対策内容等を格納する。そして、情報処理装置100では、第2の端末装置200から廃止を検討する暗号スイート名を取得すると、廃止検討用データベース130に格納されている暗号スイートの利用回数および提示回数、アクセス回数並びに対策内容等を第2の端末装置200に送信する。これにより、暗号スイートの廃止を検討する際に、その暗号スイートが実際に使用されていた回数や、必要になるコストおよび期間等を把握することができるため、暗号スイートの廃止を効率よく検討することができる。また、情報処理装置100は、危殆化していない設定可能な暗号スイート候補を第2の端末装置200に送信する。そのため、システムの管理者は、推奨される暗号スイートを把握でき、例えば新たな暗号スイートが使用される前にサーバ等の設定を事前に変更することも可能である。そのため、情報処理装置100は、システム1における安全性が低下した暗号スイートの使用を回避可能にする。
さらに、情報処理装置100では、第2の端末装置200から廃止を検討する暗号スイート名を取得すると、取得した暗号スイートの廃止検討用データベース130内の利用回数等に基づき、「使用されていない暗号スイートであり、削除を推奨する旨」または「利用回数が低い暗号スイートであり、削除を推奨する旨」を、第2の端末装置200に通知する。これにより、廃止を検討する暗号スイートの利用状況を速やかに把握することができる。
また、情報処理装置100では、所定の期間毎に、廃止検討用データベース130内の利用回数等に基づき、使用されていない暗号スイートまたは利用回数の低い暗号スイートを検出し、暗号スイートについて、「使用されていない暗号スイートであり、削除を推奨する旨」または「利用回数が低い暗号スイートであり、削除を推奨する旨」を、警告通知として第2の端末装置200に通知する。これにより、定期的に、暗号スイートの利用状況を把握することができる。
なお、本発明に係る情報処理装置100は、上記の形式に限定されない。以下に、本発明に係る情報処理装置100の変形例を示す。
(変形例)
図14は、本発明の変形例に係るシステム1aを示す図である。システム1aは、2つのサーバ40,41を備える。なお、図14に示す要素で図1に示す要素と同一のものは、同一符号を付しその説明を省略する。
第1の端末装置10は、例えばサーバ40が提供するサービスを利用するために、ネットワーク50を介してサーバ40とSSL/TLS通信を行う。第1の端末装置10は、サーバ40との間でSSL/TLS接続を確立させる際に、第1の端末装置10が利用可能な暗号スイートの一覧情報を含むClient Helloを、パケットとしてサーバ40に送信する。
また、第1の端末装置10は、例えばサーバ41が提供するサービスを利用するために、ネットワーク50を介してサーバ41とSSL/TLS通信を行う。第1の端末装置10は、サーバ41との間でSSL/TLS接続を確立させる際に、第1の端末装置10が利用可能な暗号スイートの一覧情報を含むClient Helloを、パケットとしてサーバ41に送信する。
サーバ40は、第1の端末装置10からClient Helloをパケットとして受信すると、Client Helloに含まれる暗号スイートの一覧情報から、使用する暗号スイートを選択する。そして、サーバ40は、選択した暗号スイートを含むServer Helloを、パケットとして第1の端末装置10に送信する。
サーバ41は、第1の端末装置10がサーバ41にアクセスしてきた際に、アクセス情報を取得する。このアクセス情報には、ユーザエージェント(User Agent)情報が含まれる。ユーザエージェント情報とは、Webブラウザ情報、OS(Operating System)情報を含む情報である。そして、サーバ41は、取得したアクセス情報をミラーリングした後、パケットとして情報処理装置100に送信する。
このような2台のサーバ(サーバ40,41)を備えるシステム1aであっても、情報処理装置100aは、上述の情報処理装置100と同様の効果を得ることができる。
本発明を諸図面や実施例に基づき説明してきたが、当業者であれば本開示に基づき種々の変形や修正を行うことが容易であることに注意されたい。従って、これらの変形や修正は本発明の範囲に含まれることに留意されたい。例えば、各構成部、各ステップ等に含まれる機能等は論理的に矛盾しないように再配置可能であり、複数の構成部やステップ等を1つに組み合わせたり、或いは分割したりすることが可能である。また、本発明について装置を中心に説明してきたが、本発明は装置が備えるプロセッサにより実行される方法、プログラム、またはプログラムを記録した記憶媒体としても実現し得るものであり、本発明の範囲にはこれらも包含されるものと理解されたい。