説明

情報処理装置、情報処理方法及びプログラム

【課題】通信相手がリブート等でIPsec SAの情報が失われても、リブート後も途絶えることなく通信を行うことを目的とする。
【解決手段】IPsec SAが格納されているデータを管理する管理手段と、通信相手と鍵交換を実施し、管理手段において管理されているデータに、生成されたIPsec SAの登録を行う鍵交換手段と、受け取ったIPパケットデータが、通信相手の起動を表わすIPパケットであった場合、鍵交換手段に対して、通信相手のIPsec SAの削除を実行するためのメッセージを通信相手に送信するよう命令を出し、管理手段において管理されているデータより通信相手とのIPsec SAの削除を実行する起動判定手段と、を有することによって課題を解決する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置、情報処理方法及びプログラムに関する。
【背景技術】
【0002】
近年、ネットワーク上におけるセキュリティについて必要性が高まってきており、特に、暗号化通信によるセキュリティの必要性が高まってきている。
現在、セキュリティプロトコルとして幾つかのプロトコルが存在している。その中でIPsec(IP Security Protocol)は、通信データを暗号化する仕組み、通信相手を認証する仕組みをIPレベルで実現しているため、上位のプロトコルに依存することなく利用できる。また、IPsecは、VPN(Virtual Private Network)を実現するための方法としても利用され、非常に注目されている。また、IPsecでは、データの暗号化及びメッセージ認証にIPsec SAを利用する。IPsec SAは通信する二者間において事前に共有しておく必要がある。しかしながら、利用者等が手動でIPsec SAを設定するのは容易ではないため、自動でIPsec SAを設定する便利なプロトコルとしてIKE(Internet Key Exchange)が広く利用されている。
IPsecを利用した暗号化通信は、お互いに同じIPsec SAをもっている必要があるため、どちらか一方でもIPsec SAを消去してしまうと通信が途絶えてしまう。IKEには通信相手がIPsec SAを保持しているかどうか検出する機能としてIKE KeepAliveがいくつか提案されている。例えばRFCになっている非特許文献1がある。この機能を利用することで通信相手がシャットダウン若しくはその他の理由でIPsec SAを消去した場合でも新たに鍵交換を実施し、暗号化通信が途絶えることなく行うことができる。
【先行技術文献】
【非特許文献】
【0003】
【非特許文献1】G. Huang、外2名、"RFC 3706− A Traffic−Based Method of Detecting Dead Internet Key Exchange (IKE) Peers"[online]、2004年2月、[平成22年12月24日検索]、インターネット<URL:http://tools.ietf.org/html/rfc3706>
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、従来技術の場合、端末Aと端末Bとが暗号化通信中、突然、端末Bがリブートしてしまった場合、端末Bは、IPsec SAの削除メッセージを端末Aに送ることができない。そのため、復旧後、端末Aは、IPパケットにIPsec処理を行い端末Bに送信するが、端末Bは、IPsec SAが存在しないためIPパケットを破棄してしまい、暗号化通信ができない。
【0005】
本発明はこのような問題点に鑑みなされたもので、通信相手がリブート等でIPsec SAの情報が失われても、リブート後も途絶えることなく通信を行うことを目的とする。
【課題を解決するための手段】
【0006】
そこで、本発明の情報処理装置は、IPsec SAが格納されているデータを管理する管理手段と、通信相手と鍵交換を実施し、前記管理手段において管理されているデータに、生成されたIPsec SAの登録を行う鍵交換手段と、受け取ったIPパケットデータが、通信相手の起動を表わすIPパケットであった場合、前記鍵交換手段に対して、前記通信相手のIPsec SAの削除を実行するためのメッセージを前記通信相手に送信するよう命令を出し、前記管理手段において管理されているデータより通信相手とのIPsec SAの削除を実行する起動判定手段と、を有することを特徴とする。
【発明の効果】
【0007】
本発明によれば、通信相手がリブート等でIPsec SAの情報が失われても、リブート後も途絶えることなく通信を行うことができる。
【図面の簡単な説明】
【0008】
【図1】情報処理装置のハードウェア構成の一例を示す図である。
【図2】情報処理装置のソフトウェア構成の一例を示す図である。
【図3】起動判定処理の一例を示すフローチャートである。
【図4】受信処理の一例を示すフローチャートである。
【図5】送信処理の一例を示すフローチャートである。
【図6】パケット処理の一例を示すフローチャートである。
【図7】ソフトウェア処理の一例を示すフローチャートである。
【図8】パケット生成処理の一例を示すフローチャートである。
【図9】鍵交換処理の一例を示すフローチャートである。
【発明を実施するための形態】
【0009】
以下、本発明の実施形態について図面に基づいて説明する。
【0010】
<実施形態1>
図1は、情報処理装置(コンピュータ)100のハードウェア構成の一例を示す図である。
制御装置10は、CPU等であって、情報処理装置100の全体を制御する。記憶装置11は、RAM及び/又はROM及び/又はHDD等の記憶装置であって、例えば、画像やプログラム等を記憶する。通信装置12は、情報処理装置100をネットワーク等に接続する装置である。
制御装置10が、記憶装置11に記憶されているプログラムに基づき処理を実行することによって、後述する情報処理装置100の機能及びフローチャートに係る処理が実現される。
【0011】
図2は、情報処理装置100のソフトウェア構成の一例を示す図である。
図2において、情報処理装置100は、ソフトウェア構成として、受信部101、IPsec受信部102、復号化部103、セキュリティポリシー(SP)管理部104、セキュリティアソシエーション(SA)管理部105、鍵交換部106を有している。また、情報処理装置100は、ソフトウェア構成として、起動判定部107、パケット処理部108、ソフトウェア処理部109、ソフトウェア記憶部110、パケット生成部111、IPsec送信部112、暗号化部113、送信部114を有している。
セキュリティポリシーを変更する場合の処理を、図2を基に、簡単に説明をする。
受信部101は、ネットワーク内外から送信されてくるIPパケットのデータを受信する。IPsec受信部102は、受信したIPパケットに対してIPsecが適用されているかどうかを判定する。IPsec受信部102は、IPsecが適用されていない場合は、SPDからSPを検索し、検索されたSPが「破棄」の場合は、IPパケットを破棄する。また、IPsec受信部102は、「IPsecを適用」の場合は、このIPパケットにIPsecが適用されていないためにこのIPパケットを破棄する。また、IPsec受信部102は、「IPsecを適用しない」の場合は、受信したIPパケットと条件が一致するので次の部にIPパケットを受け渡す。IPsec受信部102は、IPsecが適用されている場合は、まず始めにSADからSAを検索する。復号化部103は、検索されたSAに記載されているアルゴリズムや鍵を利用して復号化処理を行う。次に、復号化処理が行われた後にSPDからSPを検索し、SPの内容と受信したIPパケットに適用されている内容と一致しているかどうかを判定する。
【0012】
IPsec受信部102は、一致していない場合は、IPパケットを破棄し、一致している場合は、次の部にIPパケットを受け渡す。復号化部103は、受信したIPパケットデータに対して、SP管理部104に管理されているSPDとSA管理部105に管理されているSADとの情報を基に復号化を行う。SP管理部104は、実際にIPsecによるセキュリティ処理を適用するかどうかについての情報が登録されているSPDを管理する。SA管理部105は、IPパケットに対して行うIPsec処理に関する情報(IPsec SA)が格納されているSADを管理する。
鍵交換部106は、通信相手と鍵交換を実施し、SA管理部105において管理されているSADに生成されたSAの登録を行う。起動判定部107は、通信相手が起動時に送信するIPパケットかどうかを判定する。起動判定部107は、起動時に送信するIPパケットの場合は、SA管理部105が管理しているSADに一致するIPsec SAが存在するかどうかをチェックする。起動判定部107は、存在するときは、鍵交換部106によりInformationalメッセージで通信相手のIPsec SAを削除する。次に起動判定部107は、SA 管理部105が管理しているSADより一致するIPsec SAを消去する。
【0013】
パケット処理部108は、復号化部103によって復号化されたIPパケットをIPヘッダやその他のヘッダ、そしてペイロードと呼ばれるデータに分ける。ソフトウェア処理部109は、ソフトウェア記憶部110に記憶されているソフトウェアを実行する。ソフトウェア記憶部110は、通信を実行するのに必要なネットワークソフトウェアを記憶する。パケット生成部111は、送信時におけるIPパケットのデータを生成する。IPsec送信部112は、送信するIPパケットに対してIPsecを適用するかどうかを判定する。IPsec送信部112は、IPパケットの始点IPアドレス、終点IPアドレス、プロトコル、ポート番号の情報からSP管理部104に管理されているSPDよりSPを検索する。IPsec送信部112は、SPが「破棄」の場合には、IPパケットを破棄する。また、IPsec送信部112は、「IPsecを適用しない」の場合は、IPsecを適用せずに送信部114にIPパケットを送る。IPsec送信部112は、「IPsecを適用する」の場合は、SA管理部105に管理されているSADよりSAを検索する。暗号化部113は、検索されたSAに記載されているアルゴリズムや鍵を利用し、暗号化を実行する。SADにSAが存在しない場合は、鍵交換部106は、通信相手と鍵交換を実施する。暗号化部113は、IPパケットデータに対して、SP管理部104に管理されているSPDとSA管理部105に管理されているSADとの情報を基に暗号化を行う。送信部114は、ネットワーク内外へIPパケットのデータを送信する。
【0014】
IPパケットデータは、インターネット上で送受信されるデータの単位である。本実施形態では、このIPパケットデータの組み立て方法については、説明を省力してある。また、SP管理部104とSA管理部105とは、通常のIPsecを利用した暗号化通信において利用されており、本実施形態ではその詳細な説明を省略してある。また、暗号化通信を始める前に必要となる鍵交換は、IKE又はSSL等の方法を利用し行うことを前提としており、本実施形態ではその詳細を、省略してある。
【0015】
次に、IPパケットの受信処理と送信処理とについて、図2に基づき説明する。
受信部101は、受信したIPパケットのデータをIPsec受信部102に受け渡す。そして、IPsec受信部102は、受け取ったIPパケットにIPsecが適用されている場合はデータに対してIPsecの受信処理を実行する。IPsecの受信処理では、IPsec受信部102は、IPパケットデータの情報を基にSPDからSPを検索する。IPsec受信部102は、IPsec処理がされていないIPパケットの場合は、SPの情報により起動判定部107にIPパケットを受け渡す。また、IPsec受信部102は、IPsec処理がされている場合は、SA管理部105により管理されているSADから該当するSAの情報に基づき、復号化部103にIPパケットデータを渡す。復号化部103は、IPパケットデータの復号化を実行し、起動判定部107にIPパケットを受け渡す。
起動判定部107は、通信相手が起動時に送信するIPパケットかどうかを判定する。起動判定部107は、起動時に送信するIPパケットの場合は、鍵交換部106を介して通信相手のIPsec SAを削除するInformationalメッセージを送信する。また、起動判定部107は、SA管理部105に管理されているSADより通信相手とのIPsec SAを削除する。起動判定部107は、起動時に送信しないIPパケットの場合は、パケット処理部108にIPパケットを受け渡す。パケット処理部108は、受け取ったIPパケットをIPヘッダやその他のヘッダ、そしてペイロードと呼ばれるデータに分割をし、鍵交換に利用されるIPパケットの場合は鍵交換部106にデータを受け渡す。パケット処理部108は、その他はソフトウェア処理部109へデータを受け渡す。
【0016】
鍵交換部106は、受信した鍵交換のデータを処理後、IPsec SAをSADに登録し、通信相手に対して鍵交換のデータを送信する。また、鍵交換部106は、IPsec送信部112においてIPsec処理が必要な場合でもSADにIPsec SAが存在しない場合は、通信相手に対して鍵交換のデータを送信し、IPsec SAを生成する。ソフトウェア処理部109は、ソフトウェア記憶部110から実行するネットワークソフトウェアの情報を取得し、処理を実行する。そして、ソフトウェア処理部109は、送信時には、パケット処理部108から送信データを受け取り、IPパケットデータを生成し、IPsec送信部112へIPパケットデータを受け渡す。IPsec送信部112は、受け取ったIPパケットデータに対して、SP管理部104に管理されているSPDのSP情報とSA管理部に管理されているSADのSA情報とによりIPsec送信処理を行う。次に暗号化部113は、暗号化を行う。そして、暗号化部113は、暗号化したIPパケットデータを送信部114に受け渡す。送信部114は、受け取ったIPパケットデータを送信する。
【0017】
次に、起動判定部107において処理されている起動判定処理動作の流れを、図3のフローチャートに基づき説明する。図3は、起動判定処理の一例を示すフローチャートである。
最初に、起動判定部107は、IPパケットデータを受け取ると、まず、ステップ201で通信相手の起動を表すIPパケットかどうかを判定する。起動判定部107は、通信相手の起動を表すIPパケットの場合はステップ202へ進む。ステップ202では、起動判定部107は、鍵交換部106に対して通信相手のIPsec SAの削除を実行するためのInformationalメッセージを送信する命令を出し、ステップ203へ進む。ステップ203では、起動判定部107は、SA管理部105が管理しているSADに登録されている通信相手とのIPsec SAの削除を実行し、図3に示す処理を終了する。起動判定部107は、通信相手の起動を表すIPパケットでない場合は、ステップ204へ進み、IPパケットをパケット処理部108に渡し、図3に示す処理を終了する。
【0018】
通信相手の起動を表すIPパケットの例としては、IPv6で利用されるRS(Router Solicitation)や家電機器やプリンタで利用されるWSD(web services on devices)のHelloがある。
ステップ201で通信相手の起動を表すIPパケットの判定方法を示す。
起動判定部107は、IPv6のRSの場合、IPパケットがICMPv6プロトコルで、ICMPv6のTypeが133の場合、通信相手が起動したと判定する。
起動判定部107は、WSDのHelloの場合、IPパケットがUDPプロトコルで、ペイロード部分にあるXMLのタグのwsdiscoにHelloと記載されている場合、通信相手が起動したと判定する。
起動判定部107は、通信相手の起動を表すIPパケットがどのような判定条件を持つかを追加することができる。
【0019】
次に、IPsec受信部102において処理されている受信処理動作の流れを、図4のフローチャートに基づき説明する。図4は、受信処理の一例を示すフローチャートである。
最初に、受信部から受信したIPパケットデータを受け取ると、まず、IPsec受信部102は、ステップ301で暗号化パケットかどうか判定する。IPsec受信部102は、暗号化パケットではない場合は、ステップ302へ進み、IPパケットデータの情報を基にSPDからSPを検索する。IPsec受信部102は、検索したSPが「discard」、「apply」の場合、ステップ303へ進み、IPパケットを破棄し、図4に示す処理を終了する。IPsec受信部102は、SPが「bypass」の場合は、ステップ304へ進み、復号化処理をしないで図4に示す処理を終了する。IPsec受信部102は、暗号化パケットの場合は、ステップ305へ進み、SADからSAを検索し、ステップ306へ進む。IPsec受信部102は、ステップ306では、SAが存在したかどうか判定する。IPsec受信部102は、SAが存在しない場合は、ステップ303へ進み、IPパケットを破棄し、図4に示す処理を終了する。IPsec受信部102は、SAが存在した場合は、ステップ307へ進み、IPsec受信処理を実行し、ステップ308へ進む。IPsec受信部102は、ステップ308では、IPパケットデータの情報を基にSPDからSPを検索する。IPsec受信部102は、検索したSPが「discard」、「bypass」の場合、ステップ303へ進み、IPパケットを破棄し、図4に示す処理を終了する。IPsec受信部102は、SPが「apply」の場合は、そのまま図4に示す処理を終了する。
【0020】
次に、IPsec送信部112において処理されている送信処理動作の流れを、図5のフローチャートに基づき説明する。図5は、送信処理の一例を示すフローチャートである。
最初に、送信のIPパケットデータを受け取ると、まず、IPsec送信部112は、ステップ401でIPパケットデータの情報を基にSPDからSPを検索する。IPsec送信部112は、検索したSPが「discard」場合は、ステップ402へ進み、IPパケットを破棄し、図5に示す処理を終了する。IPsec送信部112は、「bypass」の場合は、ステップ403へ進み、処理をなにもしないで図5に示す処理を終了する。IPsec送信部112は、「apply」の場合は、ステップ404に進む。IPsec送信部112は、ステップ404では、SADからSAを検索し、ステップ405に進む。IPsec送信部112は、ステップ405では、SAが存在するかどうかを判定する。IPsec送信部112は、SAが存在しない場合は、ステップ407へ進み、鍵交換を実行し、図5に示す処理を終了する。IPsec送信部112は、SAが存在した場合は、ステップ406へ進む。IPsec送信部112は、ステップ406では、SAの内容に応じて暗号化処理を実行し、図5に示す処理を終了する。
【0021】
次に、パケット処理部108において処理されている動作の流れを、図6のフローチャートに基づき説明する。図6は、パケット処理の一例を示すフローチャートである。
最初に、ステップ501において、パケット処理部108は、起動判定部107からIPパケットデータを受け取り、ステップ502へ進む。ステップ502では、パケット処理部108は、受け取ったIPパケットをIPヘッダやその他のヘッダ、そしてペイロードと呼ばれるデータに分割をし、ステップ503へ進む。ステップ503では、パケット処理部108は、データが鍵交換であれば鍵交換部106に送り、その他はソフトウェア処理部109へ送り、処理を終了する。
【0022】
次に、ソフトウェア処理部109において処理されている動作の流れを、図7のフローチャートに基づき説明する。図7は、ソフトウェア処理の一例を示すフローチャートである。
最初に、ステップ601では、ソフトウェア処理部109は、ソフトウェア記憶部110から実行するネットワークソフトウェアの情報を取得し、ステップ602へ進む。ステップ602では、ソフトウェア処理部109は、処理が送信処理か受信処理かを判定する。ソフトウェア処理部109は、送信処理の場合は、ステップ603へ進み、パケット生成部111へ送信データを送り、図7に示す処理を終了する。ソフトウェア処理部109は、受信処理の場合は、ステップ604へ進み、パケット処理部108から受信データを取得し、処理を終了する。
【0023】
次に、パケット生成部111において処理されている動作の流れを、図8のフローチャートに基づき説明する。図8は、パケット生成処理の一例を示すフローチャートである。
最初に、ステップ701において、パケット生成部111は、ソフトウェア処理部109から送信データを受け取り、ステップ702へ進む。ステップ702では、パケット生成部111は、受け取った送信データを基にIPパケットデータを生成し、ステップ703へ進む。ステップ703では、パケット生成部111は、生成したIPパケットデータをIPsec送信部112へ送り、処理を終了する。
【0024】
次に、鍵交換部106において処理されている動作の流れを、図9のフローチャートに基づき説明する。図9は、鍵交換処理の一例を示すフローチャートである。
最初に、ステップ801において、鍵交換部106は、IPsec送信部112からの鍵交換開始命令かどうかを判定する。鍵交換部106は、鍵交換開始命令の場合は、ステップ802へ進み、鍵交換を開始し、そしてステップ803で鍵交換処理を実施後に図9に示す処理を終了する。鍵交換部106は、鍵交換開始命令ではない場合は、パケット処理部108からのデータなのでステップ804へ進み、鍵交換のデータかどうかを判定する。鍵交換部106は、鍵交換のデータの場合は、ステップ803へ進み、鍵交換処理を実施後に、図9に示す処理を終了する。鍵交換部106は、鍵交換データでない場合は、ステップ805へ進み、起動判定部107からのIPsec SAの削除命令かどうかを判定する。鍵交換部106は、IPsec SAの削除命令の場合は、ステップ806へ進み、IPsec SAの削除処理を実行し、図9に示す処理を終了する。鍵交換部106は、IPsec SAの削除命令でない場合は、図9に示す処理を終了する。
【0025】
<その他の実施形態>
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(又はCPUやMPU等)がプログラムを読み出して実行する処理である。
【0026】
以上、上述した各実施形態によれば、通信相手がリブート等でIPsec SAの情報が失われても、通信相手とのIPsec SAの状態を一致させることができるので、リブート後も途絶えることなく通信を行うことができる。
【0027】
以上、本発明の好ましい実施形態について詳述したが、本発明は係る特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【符号の説明】
【0028】
107 起動判定部

【特許請求の範囲】
【請求項1】
IPsec SAが格納されているデータを管理する管理手段と、
通信相手と鍵交換を実施し、前記管理手段において管理されているデータに、生成されたIPsec SAの登録を行う鍵交換手段と、
受け取ったIPパケットデータが、通信相手の起動を表わすIPパケットであった場合、前記鍵交換手段に対して、前記通信相手のIPsec SAの削除を実行するためのメッセージを前記通信相手に送信するよう命令を出し、前記管理手段において管理されているデータより通信相手とのIPsec SAの削除を実行する起動判定手段と、
を有することを特徴とする情報処理装置。
【請求項2】
前記IPsec SAが格納されているデータはSADであることを特徴とする請求項1に記載の情報処理装置。
【請求項3】
IPsec SAが格納されているデータを管理する管理手段と、
通信相手と鍵交換を実施し、前記管理手段において管理されているデータに、生成されたIPsec SAの登録を行う鍵交換手段と、
を有する情報処理装置が実行する情報処理方法であって、
受け取ったIPパケットデータが、通信相手の起動を表わすIPパケットであった場合、前記鍵交換手段に対して、前記通信相手のIPsec SAの削除を実行するためのメッセージを前記通信相手に送信するよう命令を出すステップと、
前記管理手段において管理されているデータより通信相手とのIPsec SAの削除を実行するステップと、
を含むことを特徴とする情報処理方法。
【請求項4】
コンピュータを、
IPsec SAが格納されているデータを管理する管理手段と、
通信相手と鍵交換を実施し、前記管理手段において管理されているデータに、生成されたIPsec SAの登録を行う鍵交換手段と、
受け取ったIPパケットデータが、通信相手の起動を表わすIPパケットであった場合、前記鍵交換手段に対して、前記通信相手のIPsec SAの削除を実行するためのメッセージを前記通信相手に送信するよう命令を出し、前記管理手段において管理されているデータより通信相手とのIPsec SAの削除を実行する起動判定手段と、
して機能させることを特徴とするプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate


【公開番号】特開2012−160941(P2012−160941A)
【公開日】平成24年8月23日(2012.8.23)
【国際特許分類】
【出願番号】特願2011−19762(P2011−19762)
【出願日】平成23年2月1日(2011.2.1)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】