以下、本発明の実施例について、図面を参照して説明する。
図1は、本発明の鍵交換プロトコル変換装置101が適用される通信網の一例を示す。公衆網201は、L2スイッチ104およびL2スイッチ104に接続されるIPsecGW102、ホストPC108、ホストPC109、ホストPC110、ルータ105より構成される。IPsecGW102は、ローカルネットワークであるイントラネット203と公衆網201を接続している。イントラネット203は、IPsecGW102、ホストPC114、ホストPC115、Webサーバ116、DNSサーバ117、Mailサーバ118から構成される。
ホストPC108、ホストPC109、ホストPC110は、それぞれIPsecに対応しており、他IPsec対応装置とIPsecによる通信をすることが可能である。IPsecGW102もIPsec機能を有しており、他IPsec対応装置とイントラネット203の内部の機器との間でのIPsecによる通信をすることが可能である。尚、ホストPC108、ホストPC109、ホストPC110およびIPsecGW102でIPsecの鍵交換プロトコルとして利用できるのはIKEv1のみであり、その他の鍵交換プロトコルを使用することはできない。
公衆網202は、L2スイッチ107およびL2スイッチ107に接続されるIPsecGW103、ホストPC111、ホストPC112、ホストPC113、ルータ106より構成される。IPsecGW103は、ローカルネットワークであるイントラネット204と公衆網202を接続している。イントラネット204は、IPsecGW103、ホストPC119、ホストPC120、Webサーバ121、DNSサーバ122、Mailサーバ123から構成される。ホストPC111、ホストPC112、ホストPC113は、それぞれIPsec機能を有しており、他IPsec対応装置とIPsecによる通信をすることが可能である。
IPsecGW103もIPsec機能を有しており、他IPsec対応装置とイントラネット204の内部の機器との間でIPsecによる通信することが可能である。但し、ホストPC111、ホストPC112、ホストPC113およびIPsecGW103でIPsecの鍵交換プロトコルとして利用できるのはIKEv2のみであり、その他の鍵交換プロトコルを使用することはできない。
本発明の鍵交換プロトコル変換装置101は、通信回線301を介して公衆網201のルータ105と接続されており、通信回線302を介して公衆網202のルータ106と接続されている。また、ルータ105とルータ106は、通信回線303で接続されている。
図2は、本発明の鍵交換プロトコル変換装置101の適用により、IPsecトンネルを構築したネットワークの一例を示す。鍵交換プロトコル変換装置101は通信回線304を介する形で、IPsecGW102と接続される。また、鍵交換プロトコル変換装置101は通信回線305を介する形で、IPsecGW103とも接続される。また、IPsecGW102とIPsecGW103は、通信回線306で接続されている。
鍵交換プロトコル変換装置101は192.168.1.1、IPsecGW102は192.168.2.1、IPsecGW103は192.168.3.1というIPアドレスを持つとする。また、イントラネット203内部のホストPC114は192.168.2.2、イントラネット204内部のホストPC119は192.168.3.3というIPアドレスを持つとする。鍵交換プロトコル変換装置101、IPsecGW102、IPsecGW103、ホストPC114、ホストPC119は、それぞれ全ての機器のIPアドレスを認識しているものとする。
ホストPC114がホストPC119に対してIPパケットを送信する際、ホストPC114とIPSecGW102の間で使用するIPパケットをパケット401、IPsecGW102とIPsecGW103の間で使用するIPパケットをパケット402、IPsecGW103とホストPC119の間で使用するパケットをパケット403とする。
ホストPC114がIPsecGW102へIPパケット401を送信したとする。この場合、IPsecGW102はパケット401を受信し、パケットのヘッダ情報を元に、内部のセキリュティポリシーデータベース(SPD:Security Policy Database)を検索する。
図22は、本発明の鍵交換プロトコル変換装置101の適用により、IPsecトンネルを構築するまでの動作の概要を示した図である。初めに図22(a)し示すように、ホストPC114からホストPC119への接続要求があるとする。
次に図22(b)に示すように、IPsecGW102はトンネルを生成するためのSAパラメータを折衝するため、鍵交換プロトコル変換装置101にIKEv1メッセージ404を送信する。鍵交換プロトコル変換装置101は、内部の変換テーブル601を使用して、受信したIKEv1メッセージ404をIKEv2メッセージ405に変換して、IPsecGW103に送信する。また、IPsecGW103はレスポンスとして鍵交換プロトコル変換装置101にIKEv2メッセージ405を送信する。鍵交換プロトコル変換装置101は、内部の変換テーブル601を使用して、受信したIKEv2メッセージ405をIKEv1メッセージ404に変換して、IPsecGW102に送信する。以上のメッセージ交換を繰り返すことにより、IPsecGW102とIPsecGW103との間でのSAパラメータを一致させる。
尚、IPsecGW102、および、IPsecGW103は、鍵交換プロトコルの変換が必要ない場合は変換装置101を介さずに、通信相手と直接SAを確立する。例えば、ホストPC108から、ホストPC114へ通信するような場合である。両ホストPCは互いにIKEv1に対応するので変換装置101を介する必要がない。
鍵交換プロトコルの変換が必要な場合、すなわち、ホストPC114からホストPC119に通信するような場合、IPsecGW102、および、IPsecGW103は、送信先を固定的に変換装置101として、変換装置101へSAパラメータを送信する。
IKEv1とIKEv2は互いに対応するパラメータを多く含むが、中には対応しないパラメータも存在する。そのような片方の鍵交換プロトコルにしか対応しないパラメータがある場合は、鍵交換プロトコル変換装置101は対応するパラメータのみを変換する。
IKEv1やIKEv2で、SAパラメータを折衝する際、複数の暗号化方式の候補を含むことがある。例えば、IKEv2にA,B,Cの3つの暗号化方式のパラメータが含まれていたとする。CのパラメータはIKEv1の鍵交換プロトコルに対応していない場合、IKEv1に変換できない。この場合は、鍵交換プロトコル変換装置101はA,BのみをIKEv1メッセージに格納できるように変換する。
最後に図22(c)に示すように、IPsecGW102はホストPC114から受信したパケット401に、図22(b)で決定したSAパラメータを使用して暗号化を行い、新たにヘッダを付与したパケット402をIPsecGW103に送信する。IPsecGW103は受信しパケットの付与されたヘッダを削除し、図22(b)で決定したSAパラメータを使用して復号化を行い、取り出したパケット403をホストPC119に送信する。この時、第三者はカプセル化されたパケット402よりデータを復号化することはできないため、仮想的なトンネル307を生成していると言える。
図3にIPsecGW102のSPDのテーブル501およびIPsecGW102のセキリュティアソシエーションデータベース(SAD:Security Association Database)のテーブル502を示す。また、図4にIPsecGW103のSPDテーブル503およびIPsecGW103のSADテーブル504を示す。SPDテーブル501、503は、適用するセキュリティポリシーを決定するために使用する。SADテーブル502、504は、SPDで決定したセキュリティポリシーに従ったSAを確立する時に使用するパラメータ(使用するアルゴリズムや、変数の値等)を決定するために使用する。
SPDテーブル501の評価順序5011の数字が小さい方から順番(501−1→501−2→501−3)に、IPパケットのヘッダ情報とリモートアドレス5012、ローカルアドレス5013、次レイヤプロトコル5014、ポート番号5015の全ての項目で一致する行を検索する。検索した結果、全ての項目で一致した行が存在した場合、その行の適用処理5016の内容に基づき、IPsecを適用するか、IPsecを適用しないか、もしくはパケットを破棄するかを決定する。ホストPC109からホストPC114への通信では、リモートアドレスが192.168.3.2、ローカルアドレスが192.168.2.2となるため、IPsecを適用することになり、行501−1に示されるセキリュティポリシー(トンネルモード適用、ESP使用、3DES使用、HMAC−SHA使用)が適用される。
次に適用するセキリュティポリシーと合致するSAパラメータをSADテーブル502より決定する。これは、適用するセキリュティポリシーと合致するSAパラメータをSADテーブル502の内部を検索することで、実施するセキュリティポリシーに合致するSAパラメータがSADテーブル502に存在しなかった場合、IPsecGW102は鍵交換プロトコルを使用して、IPsecGW103の間でSAパラメータの折衝を行う。つまり、SADテーブル502に含まれる値は、事前に通信相手とSAパラメータの折衝を行ったパラメータが格納されており、SA有効期間5028内なら再度SAパラメータの折衝をせずとも、格納された値を利用して通信することができる。SAパラメータの折衝は、SADテーブル502に通信相手との間で利用するSAパラメータがない場合のみ行われることになる。
但し、IPsecGW102の使用する鍵交換プロトコルはIKEv1であるのに対し、IPsecGW103の使用する鍵交換プロトコルはIKEv2であり、両者に互換性が無いため、直接折衝することはできない。
同様にIPsecGW103からIPsecGW102へ直接折衝することもできない。本発明の鍵交換プロトコル変換装置101は、IPsecGW102とIPsecGW103の間でIKEv1とIKEv2の変換を行うことで、IPsecGW102とIPsecGW103のSA折衝を可能とする。具体的方法は後述する。折衝の結果、IPsecGW102のSADテーブル502内部に適用するセキュリティポリシーに対応する項目が新規に作成される。
尚、実装においてはSAパラメータの検索に成功した場合もしくはSA折衝によりSAパラメータを新規に生成した場合は、セキュリティポリシーとそれに合致するSAパラメータをキャッシュとしてメモリ等に格納することも可能である。SA決定の際、SPDテーブルに先行してキャッシュを検索することにより、検索時間を短縮化することができる。
SPDテーブル501の行501−1のセキュリティポリシーが、SADテーブルの行502−1と対応しているとする。この場合、SPI値5021として0x1564、暗号化アルゴリズム5022として3DES、暗号化鍵5023として0x7e85、認証アルゴリズム5024としてHMAC−SHA、認証鍵5025として0x5746、トンネルヘッダ始点IPアドレス5026として192.168.2.1、トンネルヘッダ終点IPアドレス5027として192.168.3.1、SA有効期間5028として3600秒を適用する。
IPsecGW102は、テーブル502のSAパラメータを参照し、パケット401の暗号化を行い、1.1.1.3を宛先としたIPヘッダを付与する。この際、ESPヘッダにSPI値0x1564を記述する。そして、作成したパケット402をIPsecGW103に送信する。
IPsecGW103は、受信したパケット402のSPI値0x1564を元に自身のSADテーブル504検索し、適用する処理を決定する。この時、キャッシュもしくはIPsecGW102とのSA折衝により、SADテーブル504にSPI0x1564に対応する項目が作成済みである。
受信したパケット402のSPI値5041が0x1564であるため、SADテーブル504の行504−1が該当し、暗号化アルゴリズム5042として3DES、暗号化鍵5043として0x7e85、認証アルゴリズム5044としてHMAC−SHA、認証鍵5045として0x5746、トンネルヘッダ始点IPアドレス5046として192.168.2.1、トンネルヘッダ終点IPアドレス5047として192.168.3.1、SA有効期間5048は3600秒を適用する。
この時、IPsecGW103で使用するSAパラメータの各項目の内容が、IPsecGW102で使用するSAパラメータの内容と全て一致する場合のみ、IPsecGW103でパケット402を復号化することができる。他の装置でパケット402を受信しても、IPsecGW102で使用されたSAパラメータを全て把握していない限り、復号化することができない。これにより、IPsecGW102とIPsecGW103との間で、仮想的なIPsecトンネル307が確立されたといえる。
問題なく復号化できた場合、SADテーブル504の該当行504−1にリンクしたSPDテーブル503の行503−1のセキュリティポリシー(評価順序5031、リモートアドレス5032、ローカルアドレス5033、次レイヤプロトコル5034、ポート番号5035、適用処理5036)の全てで矛盾がないことを確認した後、IPsecGW103は複合化したパケット403をホストPC119に送信する。最後にホストPC119は、IPsecGW102からのパケット403を受信する。
尚、確立したSAには有効期間5028、5048(この場合は3600秒)が定められており、SA確立時点から有効期間が経過した場合、有効期限の過ぎたSAの使用を中止し、別の新しいSAを確立する。有効期限になる直前にSA折衝を実施し、生成されたSAパラメータをSADテーブル502に新規に追加する。有効期限が過ぎたら、使用するSAパラメータをこれまで使用していたものから、新規に追加したものに変更する。尚、これまで使用していたSAパラメータをテーブルから削除するかどうかは実装に依存する。
ホストPC119からホストPC114に向けてパケットを送信する場合、IPsecGW103にてIPsecによる暗号化を行い、IPsecGW102にて復号化を行う。
図5は、鍵交換プロトコル変換装置101の内部構成図である。当該鍵交換プロトコル変換装置101は、IKEv1にのみ対応するIPsecGW102とIKEv2にのみ対応するIPsecGW103の間のSAパラメータの折衝において、暗号化プロトコルの変換を行うための装置である。鍵交換プロトコル変換装置101は、回線IF101a、回線IF101b、パラメータ管理テーブル101g、プロトコル変換処理部101j、アドレス保管部101kと、SAパラメータ優先度管理テーブル601より構成される。プロトコル変換処理部101jは、パラメータ抽出部101dと、対応パラメータ取得部101hと、パケット作成部101iからなる。回線IFはEthenet機能等を有し、受信したデータを電気信号に変換し、通信回線304もしくは通信回線305へ送信する。
回線IF101aは、主にIKEv1メッセージもしくはIKEv2メッセージを含んだパケットを送受信するために使用される。回線IF101bはEthenet機能等を有し、パラメータ処理部101dからバス線101e経由で来たデータを電気信号に変換し、通信回線308に送信する。
また、通信回線308より来た電気信号をデータに変換し、バス線101e経由でパラメータ処理部101dへ送信する。回線IF101bは、鍵交換プロトコル変換装置101を制御するための信号を送受信するために使用される。
プロトコル変換処理部101jは、IKEv1メッセージとIKEv2メッセージの変換処理を行う。具体的には、パラメータ処理部101dにより、IKEv1メッセージのトランスフォームIDと、属性タイプと、属性を、又は、IKEv2メッセージのトランスフォームタイプと、トランスフォームIDをSAパラメータ優先度管理テーブル601に格納する。対応パラメータ取得部101hは、パラメータ処理部101dによりSAパラメータ優先度管理テーブル601に格納されたパラメータから対応する変換先のプロトコルのパラメータを取得する。例えば、IKEv1メッセージのトランスフォームIDと、属性タイプと、属性値が格納された場合、対応するIKEv2メッセージのトランスフォームタイプと、トランスフォームIDを求める。
パケット作成部101iは、対応パラメータ取得部101hにより取得された変換先のプロトコルのパラメータから、受信側IPsecGWに送信するパケットを作成する。尚、アドレス保管部101kは、IKEv1,2メッセージの送信元、送信先のアドレスを記憶しており、鍵交換プロトコル変換装置101は、アドレス保管部101kを参照することにより、送信元装置と、送信先装置との鍵交換の仲介を行う。
図23は、鍵交換プロトコル変換装置101のハードウェア構成図である。鍵交換プロトコル変換装置101は、PHY101A、PHY101B、MPU101D、バス線101E、メモリ101Fより構成される。回線IF101aは、PHY101AのコネクタおよびPHYチップにて実現する。
また、回線IF101bは、PHY101BのコネクタおよびPHYチップにて実現する。プロトコル変換処理部101jの処理は、MPU101Dを使用して、メモリ101Fとアクセスすることで実行する。SA優先度管理テーブル601はメモリ101F上に展開される。PHY101A、PHY101B、MPU101D、メモリ101Eはバス線101Eを介して接続されている。
図6は、IPsecによるSAを確立する時に使用するIKEv1メッセージ404およびIKEv2メッセージ405の内部構成図である。IKEv1メッセージ404は、IPヘッダ404−1、UDPヘッダ404−2、IKEv1ヘッダ404−3、SAペイロード404−4、鍵情報ペイロード404−5a−0、認証ペイロード404−5−1、IDペイロード404−5−2、その他のペイロード404−5−3より構成される。
IKEv2メッセージ405は、IPヘッダ405−1、UDPヘッダ405−2、IKEv1ヘッダ405−3、SAペイロード405−4、鍵情報ペイロード405−5−0、認証ペイロード405−5−1、IDペイロード405−5−2、その他のペイロード405−5−3より構成される。
後述する図7のIKEv1用SAペイロードと図8のIKEv2用SAペイロードを比較すれば分かるように、IKEv1メッセージ404とIKEv2メッセージ405では、ペイロードの記述方法が異なる。そのため、IKEv1専用IPsec端末でIKEv2メッセージ405を使用すること、逆にIKEv2専用IPsec端末でIKEv1メッセージ404を使用することは不可能である。
図7は、IKEv1用SAペイロード404−4の内部構成図である。SAペイロード404−4は、次ペイロード番号404−7、クリティカルビット404−8、予約領域404−9、ペイロード長404−10、プロポーザルフィールド404−11から構成される。SAペイロード404−4は一つ以上のプロポーザルフィールド404−11を持つ。
プロポーザルフィールド404−11は、0または2が入る先頭領域404−13、予約領域404−14、プロポーザル長404−15、プロポーザル番号404−16、プロトコルID404−17、SPI長404−18、トランスフォーム数404−19、SPI404−20、トランスフォームフィールド404−21から構成される。プロポーザル番号404−16は、プロポーザルの優先順位が記述されており、値が小さいほど優先順位が高い。プロトコルID404−17は、使用するIPsecプロトコルを示すためのもので、IPsecプロトコル毎に異なる値が入る。プロポーザルフィールド404−11は、一つ以上のトランスフォームフィールド404−21を含む。
トランスフォームフィールド404−21は、0または3が入る先頭領域404−23、予約領域404−24、トランスフォーム長404−25、トランスフォーム番号404−26、トランスフォームID404−27、予約領域404−28、トランスフォーム属性404−29から構成される。
トランスフォームID404−27は、DESや3DESといった使用するアルゴリズムを示すためのもので、アルゴリズム毎に異なる値が入る。また、この値はプロトコルID404−17の値によって、持つ意味が異なる。例としてプロトコルID404−17が2(AH使用)の時、トランスフォームID404−27の2はMD5の使用を意味するのに対し、プロトコルID404−17が3(ESP使用)の時、トランスフォームID404−27の2はDESの使用を意味する。
トランスフォーム属性404−29は、トランスフォームID404−27で指定されたアルゴリズムの具体的な内容を指定するために使用される。可変長の属性の場合、クリティカルビット409−30、属性タイプ404−31、属性長303−32、属性値404−33により構成される。また、固定長の属性の場合、クリティカルビット404−34、属性タイプ404−35、属性値404−36により構成される。属性タイプ404−31は、アルゴリズムのライフタイプ、ライフタイム等のパラメータの種類を示し、種類毎に異なる値が入る。属性値404−32は、属性タイプ404−31で指定したパラメータの種類によって、値の持つ意味が異なっている。
図8は、IKEv2用SAペイロード405−4の内部構成図である。SAペイロード405−4は、次ペイロード番号405−7、クリティカルビット405−8、予約領域405−9、ペイロード長405−10、プロポーザルフィールド405−11、405−12から構成される。SAペイロード405−4は、一つ以上のプロポーザルフィールド405−11を含む。
プロポーザルフィールド405−11は、0または2が入る先頭領域405−13、予約領域405−14、プロポーザル長405−15、プロポーザル番号405−16、プロトコルID405−17、SPI長405−18、トランスフォーム数405−19、SPI405−20、トランスフォームフィールド405−21から構成される。プロポーザル番号405−16は、プロポーザルの優先順位が記述されており、値が小さいほど優先順位が高い。プロトコルID405−17は、使用するIPsecプロトコルを示すためのもので、IPsecプロトコル毎に異なる値が入る。プロポーザルフィールド405−11は、一つ以上のトランスフォームフィールド405−21を含む。
トランスフォームフィールド405−21は、0または3が入る先頭領域405−23、予約領域405−24、トランスフォーム長405−25、トランスフォームタイプ405−26、予約領域405−27、トランスフォームID405−28、トランスフォーム属性405−29から構成される。トランスフォームタイプ405−26は、暗号化アルゴリズムや完全性アルゴリズム等の使用するアルゴリズムの種類を示すためのもので、アルゴリズムの種類毎に異なる値が入る。トランスフォームID405−28は、トランスフォームタイプ405−26で指定したアルゴリズムの種類の中で、DESや3DESなどの使用するアルゴリズムを示すためのものである。
この値はトランスフォームタイプ405−26の値によって、それぞれ持つ意味が異なる。例としてトランスフォームタイプ405−26が1(暗号化アルゴリズム)の時、トランスフォームID405−28の2はDESの使用を意味するのに対し、トランスフォームタイプ405−16が3(完全性アルゴリズム)の時、トランスフォームID405−28の2はHMAC_SHA_1の使用を意味する。
トランスフォーム属性405−29は、IKEv2では鍵長を示す以外に使用されない。可変長の属性の場合、クリティカルビット405−30、属性タイプ405−31、属性長303−32、属性値405−33により構成される。
また、固定長の属性の場合、クリティカルビット405−34、属性タイプ405−35、属性値405−36により構成される。属性タイプ405−31には鍵長のみが定義されており、属性値405−32は、属性タイプ405−31には鍵の長さが入力される。
図9は、鍵交換プロトコル変換装置101内部のメモリ101f内に存在するSAパラメータ優先度管理テーブル601の内部構成図である。IKEv1専用機器とIKEv2専用機器との間でSAを確立するためには、SAパラメータを折衝する必要がある。折衝に使用するSAパラメータはIKEv1、IKEv2共にSAペイロード中に記述されているが、それぞれ記述方法が異なる。
SAパラメータ優先度管理テーブル601は、受信したIKEv1メッセージ内部のSAペイロードに記述されている全てのSAパラメータを示すパラメータ(例:トランスフォームID)を、一時的に保存するための記憶領域である。パラメータの保存が全て完了次第、保存したパラメータを元にIKEv2メッセージのSAパラメータを示すパラメータを算出し、この結果も記憶する。
そして、算出したパラメータをSAペイロードに記述することで、他方のIKEv2メッセージを生成する。また、逆にIKEv2メッセージからパラメータを保存し、IKEv1メッセージを生成する。尚、IKEメッセージを受信する際、SAパラメータ優先度管理テーブル601がこれまで記憶した内容は一度全て消去される。
SAパラメータ優先度管理テーブル601は、使用優先度6011、SPI6012、プロトコルID6013、IKEv1メッセージ用のトランスフォームID6014、属性タイプ6015、属性値6016およびIKEv2用のトランスフォームタイプ6017、トランスフォームID6018の各データをまとめて一つの行とし、複数行(601−1〜601−5)を記憶する。
通常、IKEv1、IKEv2共にSAパラメータの送信側IPsec装置は、複数の暗号化方式や認証方式のパラメータを含むSAメッセージを送信する。これは、IPsecプロトコルでは暗号化や認証処理の大枠は定められているが、実際のIPsec装置がどの暗号化方式、認証方式を利用するかは管理者の定めたポリシーなどによるためである。送信側IPsec装置は自身が利用可能な複数の暗号化方式と認証方式を送信し、受信側IPsec装置はその中から自身が利用できるものを選択して返信する。つまり、送信側IPsec装置は暗号化方式などを定めた複数の提案を送信し、受信側IPsec装置はその提案の中から使用する提案を選んで返信しているのである。
ここで、図9のSAパラメータ優先度管理テーブル601の各レコードはSAパラメータに含まれる提案の一つを現している。例えば、レコード601−1とレコード601−2は、SPI6012が同じ「0x2345」であり、一つのIKEv1メッセージ、又は、IKEv2メッセージに含まれる提案である。つまり、送信された提案ごとにIKEv1の場合は、トランスフォームID、属性タイプ、属性値を格納し、IKEv2の場合は、トランスフォームタイプ、トランスフォームIDを格納しているのである。
IKEv1は、トランスフォームID、属性タイプ、属性値が一意に決まると、IKEv1メッセージに格納される提案が一意に決まり、IKEv2は、トランスフォームタイプ、トランスフォームIDが一意に決まると、IKEv2メッセージに格納される提案が一意に決まるため、これらの対応を求めているのである。
例えば、鍵交換プロトコル変換装置101が、IKEv1メッセージを受信したとする。受信したIKEv1メッセージにはトランスフォームID「2」、属性タイプ「4」、属性値「1」で一意に特定される提案が含まれている。この場合、パラメータ抽出部101dは、図9のレコード601−1のように、トランスフォームID6014に「2」を、属性タイプ6015に「4」を、属性値6016に「1」を格納する。
次に、IKEv2に変換するために、対応するIKEv2のトランスフォームタイプとトランスフォームIDを求める。図9では、トランスフォームタイプ6017に「2」を、トランスフォームID6018に「2」を格納している。
尚、前述したパラメータ管理テーブル101gは、IKEv1のトランスフォームID、属性タイプ、属性値の組み合わせで決まる提案の具体的なパラメータと、IKEv2のトランスフォームタイプ、トランスフォームIDの組み合わせで決まる提案の具体的なパラメータの一覧表を管理しており、対応パラメータ取得部101hは、SAパラメータ優先度管理テーブル601と、パラメータ管理テーブル101gを参照することにより、IKEv1メッセージから対応するIKEv2メッセージ、もしくはIKEv2メッセージから対応するIKEv1メッセージを作成することができる。
また、本実施例では、受信したIKEv1、又は、IKEv2メッセージのトランスフォームIDなどをSAパラメータ優先度管理テーブル601に格納しているが、SAパラメータ優先度管理テーブル601に格納することなく、直接IKEv1メッセージとIKEv2メッセージ間で変換を行ってもよい。
図24に、変換装置101におけるIKEv1メッセージを受信した場合のフローを示す。まず、回線IF101aはIPsecGW102からIKEv1メッセージを受信する(2401)。次に、パラメータ抽出部101dは、受信したIKEv1メッセージに含まれるトランスフォームID、属性タイプ、属性値をSAパラメータ優先度管理テーブル601に格納する(2402)。
次に、対応パラメータ取得部101hは、レコードごとに、IKEv1のトランスフォームID、属性タイプ、属性値から対応するIKEv2のトランスフォームタイプと、トランスフォームIDを求める(2403)。ステップ(2403)において、対応パラメータ取得部101hはパラメータ管理テーブル101gを参照する。次に、パケット作成部101jは、ステップ(2403)で求めたIKEv2のトランスフォームタイプと、トランスフォームIDを基に、パラメータ管理テーブル101gを参照し、受信したIKEv1メッセージに対応するIKEv2メッセージを作成する(2404)。
次に、回線IF101aは、ステップ(2404)で作成されたIKEv2メッセージをIPsecGW103に送信する。次に、変換装置101は、IPsecGW103から返答を受信すると、ステップ(2401−2405)と同様の処理で、IKEv1メッセージを作成し、当該作成したIKEv1メッセージをIPsecGW102に送信する(2406)。尚、鍵交換プロトコル変換装置101はIKEv1,2メッセージをIPsecGW2,3に転送する際、アドレス保管部101kに、送信元アドレス、送信先アドレスの対応を記憶しておき、ステップ(2406)の返答を受信した際は、アドレス保管部101kを参照することにより、送信元IPsecGWに対し、返答を転送する。
鍵交換プロトコル変換装置101は、通信回線304もしくは通信回線305からパケットを受信した場合、回線IF101aで電気信号からデータに変換した後、パラメータ抽出部101dにて、IPパケットからデータを取り出され、メモリ101fに送信される。この際、受信したデータにIKEv1のSAペイロード404−4かIKEv2のSAペイロード405−4のどちらかが含まれていた場合、メモリ101fにてSAパラメータ優先度管理テーブル601上にSAペイロード内部のSAパラメータが保存される。
逆に必要に応じて、SAパラメータ優先度管理テーブル601に格納されているSAパラメータをIKEv1メッセージ404のSAペイロード404−4もしくはIKEv2メッセージ405のSAペイロード405−4に記入する。作成したIKEv1メッセージ404もしくIKEv2メッセージ405は、パケット作成部101iにてIPパケットとして組み立て、回線IF101aより、通信回線304もしくは通信回線305に送信することが可能である。
SAペイロードよりSAパラメータをSAパラメータ優先度管理テーブルに入力する方法、およびSAパラメータ優先度管理テーブルよりSAパラメータをSAペイロードに入力する方法については、後述する。
図10は、図3でホストPC114からホストPC119への通信要求があった場合に、IPsecGW102が送信者として鍵変換プロトコル変換装置101経由で受信者であるIPsecGW103とSAパラメータの折衝を行い、IPsecGW102とIPsecGW103との間でIPsecトンネル307を作るまでのシーケンスを示す。本シーケンスはホストPC114からホストPC119へのIPsec通信に先行して行われるものであり、ホストPC114からホストPC119へのIPsec通信に、本シーケンスで確立したSAによるトンネル307が使用される。
IPsec通信自体には、鍵変換プロトコル変換装置101は関与せず、IPsecGW102とIPsecGW103との間で直接行われる。尚、本シーケンスで確立されるSAは単方向であり、ホストPC114からホストPC119への通信のみ保護される。ホストPC119からホストPC114への通信でのSAは後述するシーケンスで確立する。
IPsecGW102のSPDテーブル501内でリモートアドレス192.168.3.2、ローカルアドレス192.168.2.2に対応する行501−1にてIPsec通信をするように設定されているが、行501−1とリンクするSAパラメータが、SADテーブル502に存在しない。同様にIPsecGW103のSPDテーブル503内でリモートアドレス192.168.2.2、ローカルアドレス192.168.3.2に対応する行503−1にてIPsec通信をするように設定されているが、行503−1とリンクするSAパラメータが、SADテーブル504に存在しない。
つまり、IPsecGW102およびIPsecGW103は、それぞれホストPC114とホストPC119が通信する際、IPsecを適用するように設定されているが、IPsecに使用するSAパラメータは持っていない。IPsecGW102とIPsecGW103それぞれにSAパラメータを設定するため、鍵交換プロトコルによるメッセージ交換を実施する。
まず、ホストPC114よりIPsecGW102にホストPC119宛のパケットが送信される(F1−0)。この時、IPsecGW102は、自身のSPDテーブル501内でリモートアドレス192.168.3.2、ローカルアドレス192.168.2.2となる行を検索し、該当した行501−1とリンクするSAパラメータが、SADテーブル502に存在しないことを確認する。
IPsecGW102とIPsecGW103との間でSAを作成するのに必要なパラメータを安全に交換するためのトンネルを生成するために、まずIPsecGW102は鍵交換プロトコル変換装置101との間でSAを確立する。(以後、IPsecGW102とIPsecGW103との間のSAをIPsec_SA、IPsecGW102と鍵交換プロトコル変換装置101との間のSAをISAKMP_SAと呼ぶ。)ISAKMP−SAの確立には、IKEv1プロトコルを使用したIKEフェーズ1と呼ばれるメッセージ交換手法を使用する。IPsecGW102と鍵交換プロトコル変換装置101との間で、SAパラメータ、認証情報、鍵情報等のパラメータを交換する。
初めにIPsecGW102は、ISAKMP_SAで使用するパラメータを記述したSAペイロードを含むIKEv1メッセージを鍵交換プロトコル変換装置101へ送信する(F1−1)。F1−1のIKEv1メッセージを受信した鍵交換プロトコル変換装置101は、SAペイロードに記述されたISAKEMP_SAパラメータの中から使用するものを選択し、選択結果を記述したSAペイロードを含むIKEv1メッセージをIPsecGW102へ送信する(F1−3)。
F1−1のIKEv1メッセージを受信したIPsecGW102は、鍵情報ペイロードを含むIKEv1メッセージを鍵交換プロトコル変換装置101へ送信する(F1−4)。F1−4のIKEv1メッセージを受信した鍵交換プロトコル変換装置101は、鍵情報ペイロードを含むIKEv1メッセージをIPsecGW102へ送信する(F1−5)。F1−5のIKEv1メッセージを受信したIPsecGW102は、認証ペイロードを含んだIKEv1メッセージを鍵交換プロトコル変換装置101へ送信する(F1−6)。
F1−6のIKEv1メッセージを受信した鍵交換プロトコル変換装置101は、認証ペイロードを含んだIKEv1メッセージをIPsecGW102へ送信する(F1−8)。F1―1、F1−3〜F1―8により、IPsecGW102と鍵交換プロトコル変換装置101のそれぞれに、ISAKMP_SAを確立するのに必要なパラメータが設定される。
また、IPsecGW102とIPsecGW103との間でSAを作成するのに必要なパラメータを安全に交換するために、鍵交換プロトコル変換装置101はIPsecGW103との間でSAを確立する。(以後、鍵交換プロトコル変換装置101とIPsecGW103との間のSAをIKE_SAと呼ぶ。)IKE_SAの確立には、IKEv2プロトコルを使用したIKE_SA_INIT交換と呼ばれるメッセージ交換手法を使用する。IPsecGW103と鍵交換プロトコル変換装置101との間で、SAパラメータ、認証情報、鍵情報等のパラメータを交換する。
F1−1のIKEv1メッセージを受信した鍵交換プロトコル変換装置101は、IKE_SAで使用するパラメータを記述したSAペイロードおよび鍵情報ペイロードを含むIKEv2メッセージをIPsecGW103へ送信する(F1−2)。F1−2のIKEv2メッセージを受信したIPsecGW103は、IKE_SAパラメータの中から使用するものを選択し、選択結果を記述したSAペイロードおよび鍵情報ペイロードを含むIKEv2メッセージを鍵交換プロトコル変換装置101へ送信する(F1−7)。F1―2およびF1―7により、鍵交換プロトコル変換装置101とIPsecGW103にIKE_SAを確立するのに必要なパラメータが全て設定される。
尚、IPsecGW102と鍵交換プロトコル変換装置101の間のメッセージ交換と、IPsecGW103と鍵交換プロトコル変換装置101の間のメッセージ交換は直接関係がない。そのため、F1−1〜F1−6、F1−8までとF1−2,F1−7の間で前後が入れ替わる可能性がある。但し、F1−1はF1−2開始の契機になるため、必ずF1−1がF1−2の前になる。
次にIPsecSAを確立するためのメッセージ交換を行う。IKEv1メッセージについてはIKEフェーズ2と呼ばれるメッセージ交換手法を使用する。また、IKEv2メッセージについてはIKE_AUTH交換と呼ばれるメッセージ交換手法を使用する。
図6で説明したとおり、IKEv1メッセージ404とIKEv2メッセージ405の間には互換性が無い。そのため、直接通信することができないIPsecGW102とIPsecGW103の間でパラメータ交換を可能とするために、間に鍵交換プロトコル変換装置101が存在する。鍵交換プロトコル変換装置101は、IPsecGW102より受信したIKEv1メッセージ404をIKEv2メッセージ405に変換して、IPsecGW103に送信する。また、鍵交換プロトコル変換装置101は、IPsecGW103より受信したIKEv2メッセージをIKv1メッセージに変換して、IPsecGW102に送信する。
F1−8のメッセージを受信した後、IPsecGW102はIKEv1メッセージ404を鍵交換プロトコル変換装置101へ送信する(F1−9)。尚、F1−9および後述するF1−12の通信は、ISAKMP_SAによって保護される。
F1−9のIKEv1メッセージ404を受信した鍵交換プロトコル変換装置101は、IKEv1メッセージ404をIKEv2メッセージ405に変換する。フローチャートAによりIKEv1のSAペイロード404−4の示すSAパラメータを解釈し、同一の内容になるようにIKEv2のSAペイロード405−4に記述する(F10)。
フローチャートAの詳細は後述する。鍵交換プロトコル変換装置101は、作成したIKEv2のSAペイロード405−4をIKEv2メッセージ405に格納し、IPsecGW103へ送信する(F1−10)。
尚、F1−10および後述するF1−11の通信は、IKE_SAによって保護される。F1−10のIKEv2メッセージ405を受信したIPsecGW103は、IKEv2メッセージ405内のSAペイロード405−4から使用するSAパラメータを選択し、自身のSADテーブル504を更新する。そして、追加した行をSPDテーブル503の該当行にリンクさせる(F12)。これにより、IPsecGW103が使用するSAパラメータが決定する。そして、選択結果を記述したSAペイロード405−4を格納したIKEv2メッセージ405を鍵交換プロトコル変換装置101へ送信する(F1−11)。
F1−10のIKEv2メッセージ405を受信した鍵交換プロトコル変換装置101は、IKEv2メッセージ405をIKEv1メッセージ404に変換する。フローチャートBによりIKEv2のSAペイロード405−4の示すSAパラメータを解釈し、同一の内容になるようにIKEv1のSAペイロード404−4に記述する(F11)。フローチャートBの詳細は後述する。鍵交換プロトコル変換装置101は、作成したIKEv1のSAペイロード404−4を格納したIKEv1メッセージ404をIPsecGW103へ送信する(F1−12)。
F1−12のIKE1メッセージ404を受信したIPsecGW103は、IKEv1メッセージ内のSAペイロード404−4から自身のSADテーブル502を更新する。そして、追加した行をSPDテーブル501の該当行にリンクさせる(F13)。これにより、IPsecGW102が使用するSAパラメータが決定する。IPsecGW102で使用するSAパラメータとIPsecGW103で使用するSAパラメータは同一となる。
以後、ホストPC114よりホストPC119宛のパケットが送信された場合は、IPsecGW102とIPsecGW103の間ではIPsec_SAが確立され、仮想的なトンネル307ができる(F1−13)。以後、ホストPC114からホストPC119にパケットを送信する際にはトンネル307が使用され、IPsecで通信することが可能になる。また、このIPsec通信には鍵交換プロトコル変換装置101は関与しない。
図11は、図2とは逆にホストPC119からホストPC114への通信要求があった場合に、IPsecGW103が送信者として鍵変換プロトコル変換装置101経由で受信者であるIPsecGW102とSAパラメータの折衝を行い、IPsecGW103とIPsecGW102との間でIPsecトンネル307を作るまでのシーケンスを示す。本シーケンスはホストPC119からホストPC114へのIPsec通信に先行して行われるものであり、ホストPC119からホストPC114へのIPsec通信には、本シーケンスで確立したSAによるトンネル307が使用される。
IPsec通信自体には、鍵変換プロトコル変換装置101は関与せず、IPsecGW102とIPsecGW103との間で直接行われる。尚、本シーケンスで確立されるSAは単方向であり、ホストPC119からホストPC114への通信のみ保護される。ホストPC114からホストPC119への通信でのSAは前述したシーケンスで確立する。
IPsecGW103のSPDテーブル503内でリモートアドレス192.168.2.2、ローカルアドレス192.168.3.2に対応する行503−1にてIPsec通信をするように設定されているが、行503−1とリンクするSAパラメータが、SADテーブル504に存在しない。同様に、IPsecGW103のSPDテーブル501内でリモートアドレス192.168.3.2、ローカルアドレス192.168.2.2に対応する行501−1にてIPsec通信をするように設定されているが、行501−1とリンクするSAパラメータが、SADテーブル502に存在しない。
つまり、IPsecGW102およびIPsecGW103は、それぞれホストPC114とホストPC119が通信する際、IPsecを適用するように設定されているが、IPsecに使用するSAパラメータは持っていない。IPsecGW102とIPsecGW103それぞれにSAパラメータを設定するため、鍵交換プロトコルによるメッセージ交換を実施する。
IPsecGW103とIPsecGW102との間でSAを作成するのに必要なパラメータを安全に交換するためのトンネルを生成するために、IPsecGW103は鍵交換プロトコル変換装置101との間でIKE_SAを確立する。IKE_SAの確立には、IKEv2プロトコルを使用したIKE_SA_INIT交換と呼ばれるメッセージ交換手法を使用する。IPsecGW103と鍵交換プロトコル変換装置101との間で、SAパラメータ、認証情報、鍵情報等のパラメータを交換する。
まず、ホストPC119よりIPsecGW103にホストPC114宛のパケットが送信される(F2−0)。この時IPsecGW103は、自身のSPDテーブル503内でリモートアドレス192.168.2.2、ローカルアドレス192.168.3.2となる行を検索し、該当した行503−1とリンクするSAパラメータが、SADテーブル504に存在しないことを確認する。
初めにIPsecGW103は、IKE_SAで使用するパラメータを記述したSAペイロードおよび鍵情報ペイロードを含むIKEv2メッセージを鍵交換プロトコル変換装置101へ送信する(F2−2)。F2−2のIKEv2メッセージを受信した鍵交換プロトコル変換装置101は、IKE_SAパラメータの中から使用するものを選択し、選択結果を記述したSAペイロードおよび鍵情報ペイロードを含むIKEv2メッセージをIPsecGW103へ送信する(F2−7)。F2―2およびF2―7により、IPsecGW103と鍵交換プロトコル変換装置101にIKE_SAを確立するのに必要なパラメータが全て設定される。
また、IPsecGW102とIPsecGW103との間でSAを作成するのに必要なパラメータを安全に交換するために、鍵交換プロトコル変換装置101はIPsecGW102との間でISAKMP_SAを確立する。ISAKMP−SAの確立には、IKEv1プロトコルを使用したIKEフェーズ1と呼ばれるメッセージ交換手法を使用する。IPsecGW102と鍵交換プロトコル変換装置101との間で、SAパラメータ、認証情報、鍵情報等のパラメータを交換する。
F2−2のIKEv2メッセージを受信した鍵交換プロトコル変換装置101は、ISAKMP_SAで使用するパラメータを記述したSAペイロードを含むIKEv1メッセージをIPsecGW102へ送信する(F2−3)。F2−1のIKEv1メッセージを受信したIPsecGW102は、SAペイロードに記述されたISAKEMP_SAパラメータの中から使用するものを選択し、選択結果を記述したSAペイロードを含むIKEv1メッセージを鍵交換プロトコル変換装置101へ送信する(F2−3)。
F2−1のIKEv1メッセージを受信した鍵交換プロトコル変換装置101は、鍵情報ペイロードを含むIKEv1メッセージをIPsecGW102へ送信する(F2−4)。F2−4のIKEv1メッセージを受信したIPsecGW102は、鍵情報ペイロードを含むIKEv1メッセージを鍵交換プロトコル変換装置101へ送信する(F2−5)。F2−5のIKEv1メッセージを受信したIPsecGW102は、認証ペイロードを含んだIKEv1メッセージをIPsecGW102へ送信する(F2−6)。
F2−6のIKEv1メッセージを受信したIPsecGW102は、認証ペイロードを含んだIKEv1メッセージを鍵交換プロトコル変換装置101へ送信する(F2−8)。F2―1、F2−3〜F2―8により、鍵交換プロトコル変換装置101とIPsecGW102のそれぞれに、ISAKMP_SAを確立するのに必要なパラメータが設定される。
尚、IPsecGW103と鍵交換プロトコル変換装置101の間のメッセージ交換と、IPsecGW102と鍵交換プロトコル変換装置101の間のメッセージ交換は直接関係がない。そのため、F2−2、F2−7とF2−1、F2−3〜F2−6、F2−8までの間で前後が入れ替わる可能性がある。但し、F2−2はF2−1の開始の契機になるため、必ずF2−2がF2−1の前になる。
次にIPsecSAを確立するためのメッセージ交換を行う。IKEv2メッセージについてはIKE_AUTH交換と呼ばれるメッセージ交換手法を使用する。また、IKEv1メッセージについてはIKEフェーズ2と呼ばれるメッセージ交換手法を使用する。図6で説明したとおり、IKEv1メッセージ404とIKEv2メッセージ405の間には互換性が無い。そのため、直接通信することができないIPsecGW102とIPsecGW103の間でパラメータ交換を可能とするために、間に鍵交換プロトコル変換装置101が存在する。
鍵交換プロトコル変換装置101は、IPsecGW102より受信したIKEv1メッセージ404をIKEv2メッセージ405に変換して、IPsecGW103に送信する。また、鍵交換プロトコル変換装置101は、IPsecGW103より受信したIKEv2メッセージをIKv1メッセージに変換して、IPsecGW102に送信する。
F2−7のメッセージを受信した後、IPsecGW103はIPsec_SAで使用するパラメータを記述したSAペイロード405−4を含んだIKEv2メッセージ405を鍵交換プロトコル変換装置101へ送信する(F2−10)。尚、F2−10および後述するF2−11の通信は、IKE_SAによって保護される。
F2−10のIKEv2メッセージ405を受信した鍵交換プロトコル変換装置101は、IKEv2メッセージ405をIKEv1メッセージ404に変換する。フローチャートBによりIKEv2のSAペイロード405−4の示すSAパラメータを解釈し、同一の内容になるようにIKEv1のSAペイロード404−4に記述する(F20)。鍵交換プロトコル変換装置101は、作成したIKEv1のSAペイロード404−4を格納したIKEv1メッセージ404をIPsecGW102へ送信する(F2−9)。尚、F2−9および後述するF2−12の通信は、ISAKMP_SAによって保護される。
F2−9のIKEv1メッセージ404を受信したIPsecGW102は、IKEv1メッセージ404内のSAペイロード404−4から使用するSAパラメータを選択し、自身のSADテーブル502を更新する。そして、追加した行をSPDテーブル501の該当行にリンクさせる(F22)。これにより、IPsecGW102が使用するSAパラメータが決定する。そして、選択結果を記述したSAペイロード404−4を格納したIKEv1メッセージを鍵交換プロトコル変換装置101へ送信する(F2−12)。
F2−12のIKEv1メッセージ404を受信した鍵交換プロトコル変換装置101は、IKEv1メッセージ404をIKEv2メッセージ405に変換する。フローチャートAによりIKEv1のSAペイロードの示すSAパラメータを解釈し、同一の内容になるようにIKEv2のSAペイロードに記述する(F21)。鍵交換プロトコル変換装置101は、作成したIKEv2のSAペイロード405−4を格納したIKEv2メッセージ405をIPsecGW103へ送信する(F2−11)。
F2−11のIKEv2メッセージ405を受信したIPsecGW103は、IKEv2メッセージ405内のSAペイロード405−4から自身のSADテーブル504を更新する。そして、追加した行をSPDテーブル503の該当行にリンクさせる(F23)。これにより、IPsecGW103が使用するSAパラメータが決定する。IPsecGW102で使用するSAパラメータとIPsecGW103で使用するSAパラメータは同一となる。
以後、ホストPC119よりホストPC114宛のパケットが送信された場合は、IPsecGW103とIPsecGW102の間ではIPsec_SAが確立され、仮想的なトンネル307ができる(F2−14)。以後、ホストPC119からホストPC114にパケットを送信する際にはトンネル307が使用され、IPsecで通信することが可能になる。また、このIPsec通信には鍵交換プロトコル変換装置101は関与しない。
図18に図10の処理F10および図11の処理F20で使用するIKEv1のSAペイロード404の一例であるSAペイロード404aの内部構成図を示す。SAペイロードヘッダ404−37a、プロポーザルフィールド404−11a−1およびプロポーザルフィールド404−11a−2、トランスフォームフィールド404−21a−1とトランスフォームフィールド404−21a−2およびトランスフォームフィールド404−21a−3より構成される。尚、処理F11および処理F21で使用するSAペイロードは選択結果を表すためペイロード数およびトランスフォーム数が、図18の例より減少する。
図19に図10の処理F10および図11の処理F20で使用するIKEv2のSAペイロード405の一例であるSAペイロード405aの内部構成図を示す。SAペイロードヘッダ405−37a、プロポーザルフィールド405−11a−1およびプロポーザルフィールド405−11a−2、トランスフォームフィールド405−21a−1とトランスフォームフィールド405−21a−2およびトランスフォームフィールド405−21a−3より構成される。尚、処理F11および処理F21で使用するSAペイロードは選択結果を表すためペイロード数およびトランスフォーム数が、図19の例より減少する。
以下、図11および図12のフローチャートAの説明として、鍵交換プロトコル変換装置101内でIKEv1メッセージのSAパラメータをIKEv2のSAパラメータに変換するまでの処理を示す。処理F10にてIKEv1メッセージのSAペイロード404aのトランスフォームID、属性タイプ、属性値の組み合わせにより指定されているSAパラメータ(使用するアルゴリズム名等)を元に、同じ意味を示すIKEv2のSAペイロード405aのトランスフォームタイプ、トランスフォームIDの組み合わせを決定し、IKEv2メッセージを構築するまでを説明する。尚、IKEv1メッセージを受信した段階で、SA優先度管理テーブル601がこれまでに記憶していた内容を全て消去する。
図12は、図11および図12のフローチャートAのうち、IKEv1のSAペイロード404からSAパラメータをSA優先度管理テーブル601に格納するまでを示す。
まずSAペイロード404aを認識したら(701)、最初のプロポーザル、トランスフォームに着目する(702、703)。そして、着目したプロポーザルのプロポーザル番号をテーブルの優先度欄6011に、プロトコルIDをテーブルのプロトコルID欄6013に、SPI値をテーブルのSPI欄6012にそれぞれ格納する(704〜706)。そして、着目したトランスフォームのトランスフォームIDをテーブルのトランスフォームID(IKEv1)欄6014に、属性タイプをテーブルの属性タイプ欄6015に、属性値をテーブルの属性値欄6016にそれぞれ格納する(707〜709)。
着目するトランスフォームがプロポーザル中で最後のトランスフォームではない場合(710)、着目するトランスフォームを次に移動させて(713)、704〜709の処理を繰り返す。プロポーザル中で最後のトランスフォームである場合(710)、着目するプロポーザルが最後のプロポーザルでなければ(711)、着目するプロポーザルとトランスフォームを次に移動させて(712)、704〜709の処理を繰り返す。最後のプロポーザルの場合(711)、Aに移動する(714)。
IKEv1メッセージ404aのSAペイロード404−4aに対して上記の処理を行うことで、図20のSA優先度管理テーブル601のIKEv2の項目以外が埋まった状態[A]になる。図13は、フローチャートAのうち、SAパラメータ優先度管理テーブル601内のIKEv1のSAパラメータをIKEv2のSAパラメータに変換して、格納するまでを示す。SAパラメータ優先度管理テーブルの先頭行に着目し(716)、トランスフォームID(IKEv1)欄6014、属性タイプ欄6015、属性値欄6016の値より、トランスフォームタイプとトランスフォームID(IKEv2)の値を算出する(717)。
IKEv1では、SAペイロード中のトランスフォームIDと属性タイプと属性値の組み合わせで、暗号化プロトコルや認証プロトコルなどで使用する3DES,SHAといった具体的なプロトコル名や変数値を指定することができる。また、IKEv2では、SAペイロード中のトランスフォームタイプとトランスフォームIDの組み合わせで、具体的なプロトコル名や変数値を指定することができる。IKEv1、IKEv2それぞれ、値の組み合わせで何のプロトコルを指定しているかは、ICANN(The Internet Corporation for Assigned Names and Numbers)によって規定されている。記述方法こそ異なるがIKEv2とIKEv1は、どちらも鍵交換プロトコルであるため、使用可能なプロトコルは共通のものが多い。
そこで、IKEv1のトランスフォームIDと属性タイプと属性値の組み合わせより使用するプロトコルを検出し、そのプロトコルを示すIKEv2のトランスフォームタイプとトランスフォームIDの値を決定する。これを実現するために、IKEv1のトランスフォームIDと属性値と属性タイプの組み合わせの全通りに対し、対応するIKEv2のトランスフォームタイプとトランスフォームIDの値を示した一覧表を前もって作成しておく。この一覧表を検索することにより、IKEv2のトランスフォームタイプとトランスフォームIDの値を決定する。
決定できた場合(718)、トランスフォームタイプをトランスフォームタイプ欄6017に格納する(719)。また、トランスフォームIDをトランスフォームID欄6018に格納する(720)。決定できなかった場合(718)、トランスフォームタイプ欄6017とトランスフォームID欄6018にはそれぞれ0を入れる(721)。
テーブル内の最後の行かを確認し(722)、最後の行でない場合、次の行に移動し(723)、処理717以降を繰り返す。最後の行の場合、Bに移動する(724)。上記の処理を行うことで、図21のSA優先度管理テーブル601の全てが埋まった状態[C]になる。
図14は、図11および図12のフローチャートAのうち、格納されたIKEv2のSAパラメータをSAペイロード405として構成するまでを示す。初めにテーブルの先頭行に着目し(725)、SAペイロードのヘッダを作成する(726)。次にヘッダの後ろにプロポーザルフィールドを作成し(727)、テーブル内の優先度欄6011の値を作成したプロポーザルのプロポーザル番号に、テーブル内のプロトコルID欄6013の値を作成したプロポーザルのプロトコルIDに、テーブル内のSPI欄6012の値を作成したプロポーザルのSPIにそれぞれ格納する(728〜730)。
次に作成したプロポーザルの後ろにトランスフォームフィールドを作成し(731)、テーブルのトランスフォームタイプ欄6017の値を作成したトランスフォームのトランスフォームタイプに、テーブルのトランスフォームID(IKEv2)欄6018の値を作成したトランスフォームのトランスフォームIDにそれぞれ格納する(732、733)。着目している行がテーブル中の最後の行かを確認し(734)、最後の行でなければ次の行に移動する(735)。
この場合、前の行とプロポーザルが変化したかを確認し(736)、変化している場合は処理727でプロポーザルを作成し、変化していない場合は処理731でトランスフォームを作成する。最後の行であった場合、未記入領域に任意の値を入力し(737)、処理を終了する(738)。
図21の状態[C]のSA優先度管理テーブル601に上記の処理を行うことで、IKEv2メッセージ405aのSAペイロード405−4aを作成することができる。上記により、図11および図12のフローチャートAにてIKEv1のSAペイロード404−4をIKEv2のSAペイロード405−4に変換することが可能である。これにより、鍵交換プロトコル変換装置101を介する形で、IPsecGW102とIPsecGW103でSA折衝を行うことが可能となる。
以下、図11および図12のフローチャートBの説明として、鍵交換プロトコル変換装置101内でIKEv2メッセージのSAパラメータをIKEv1のSAパラメータに変換するまでの処理を示す。処理F20にてIKEv2メッセージのSAペイロード405aのトランスフォームタイプ、トランスフォームIDの組み合わせにより指定されているSAパラメータ(使用するアルゴリズム名等)を元に、同じ意味を示すIKEv1のSAペイロード404aのトランスフォームID、属性タイプ、属性値の組み合わせを決定し、IKEv1メッセージを構築するまでを説明する。尚、IKEv2メッセージを受信した段階で、SA優先度管理テーブル601がこれまでに記憶していた内容を全て消去する。
図15は、図11および図12のフローチャートBのうち、IKEv2のSAペイロード405からSAパラメータをSA優先度管理テーブル601に格納するまでを示す。まずSAペイロード405aを認識したら(801)、最初のプロポーザル、トランスフォームに着目する(802、803)。そして、着目したプロポーザルのプロポーザル番号をテーブルの優先度欄6011に、プロトコルIDをテーブルのプロトコルID欄6013に、SPI値をテーブルのSPI欄6012にそれぞれ格納する(804〜806)。
そして、着目したトランスフォームのトランスフォームタイプをテーブルのトランスフォームタイプ欄6017に、トランスフォームID(IKEv2)をテーブルのトランスフォームID(IKEv2)欄6018にそれぞれ格納する(807〜808)。着目するトランスフォームがプロポーザル中で最後のトランスフォームではない場合(809)、着目するトランスフォームを次に移動させて(812)、704〜709の処理を繰り返す。プロポーザル中で最後のトランスフォームである場合(809)、着目するプロポーザルが最後のプロポーザルでなければ(810)、着目するプロポーザルとトランスフォームを次に移動させて(811)、804〜808の処理を繰り返す。最後のプロポーザルの場合(810)、Dに移動する(813)。
IKEv2メッセージ405aのSAペイロード405−4aに対して上記の処理を行うことで、図20でSA優先度管理テーブル601のIKEv1の項目以外が埋まった状態[B]になる。図16は、フローチャートBのうち、SAパラメータ優先度管理テーブル601内のIKEv2のSAパラメータをIKEv1のSAパラメータに変換して、格納するまでを示す。SAパラメータ優先度管理テーブルの先頭行に着目し(815)、トランスフォームタイプ欄6017、トランスフォームID(IKEv2)欄6014の値より、トランスフォームID(IKEv1)、属性タイプ、属性値値の値を算出する(816)。
記述方法こそ異なるがIKEv2とIKEv1は、どちらも鍵交換プロトコルであるため、使用可能なプロトコルは共通のものが多い。そこで、IKEv2のトランスフォームタイプとトランスフォームIDの組み合わせより使用するプロトコルを検出し、そのプロトコルを示すIKEv1のトランスフォームIDと属性タイプと属性値の値を決定する。
これを実現するために、IKEv2のトランスフォームタイプとトランスフォームIDの組み合わせの全通りに対し、対応するIKEv1のトランスフォームIDと属性タイプと属性値の値を示した一覧表を前もって作成しておく。この一覧表を検索することにより、IKEv1のトランスフォームIDと属性タイプと属性値を決定する。
決定できた場合(817)、トランスフォームIDをトランスフォームID(IKEv1)欄6014に格納する(818)。また、属性タイプを属性タイプ欄6015に格納する(819)。そして、属性値を属性値欄6016に格納する(820)。決定できなかった場合(817)、トランスフォームID(IKEv1)欄、属性タイプ欄6015、属性値欄6016にはそれぞれ0を入れる(821)。
テーブル内の最後の行かを確認し(822)、最後の行でない場合、次の行に移動し(823)、処理816以降を繰り返す。最後の行の場合、Dに移動する(823)。上記の処理を行うことで、図21でSA優先度管理テーブル601の全てが埋まった状態[C]になる。
図17は、図11および図12のフローチャートBのうち、格納されたIKEv1のSAパラメータをSAペイロード404aとして構成するまでを示す。初めにテーブルの先頭行に着目し(825)、SAペイロードのヘッダを作成する(826)。次にヘッダの後ろにプロポーザルフィールドを作成し(827)、テーブル内の優先度欄6011の値を作成したプロポーザルのプロポーザル番号に、テーブル内のプロトコルID欄6013の値を作成したプロポーザルのプロトコルIDに、テーブル内のSPI欄6012の値を作成したプロポーザルのSPIにそれぞれ格納する(828〜830)。
次に作成したプロポーザルの後ろにトランスフォームフィールドを作成し(831)、テーブルのトランスフォームID(IKEv1)欄6014の値を作成したトランスフォームのトランスフォームIDに、テーブルの属性タイプ欄6015の値を作成したトランスフォームの属性タイプに、テーブルの属性値欄6016の値を作成したトランスフォームの属性値にそれぞれ格納する(832〜834)。
着目している行がテーブル中の最後の行かを確認し(835)、最後の行でなければ次の行に移動する(836)。この場合、前の行とプロポーザルが変化したかを確認し(837)、変化している場合は処理827にてプロポーザルを作成し、変化していない場合は処理831にてトランスフォームを作成する。最後の行であった場合、未記入領域に任意の値を入力し(838)、処理を終了する(839)。
図21の状態[C]のSA優先度管理テーブル601に上記の処理を行うことで、IKEv1メッセージ404aのSAペイロード404−4aを作成することができる。上記により、図11および図12のフローチャートBにてIKEv2のSAペイロード405−4をIKEv2のSAペイロード404−4に変換することが可能である。これにより、鍵交換プロトコル変換装置101を介する形で、IPsecGW102とIPsecGW103でSA折衝を行うことが可能となる。
尚、本実施例中で説明したSAパラメータ優先度管理テーブル601、パラメータ管理テーブル101gは記憶部と表現してもよい。プロトコル変換処理部101jは、変換処理部と表現してもよい。回線IFは通信部と表現してもよい。SPDテーブル501を記憶部と表現してもよい。また、IPsecGWは通信部またはネットワークインタフェースを有しており、当該通信部またはネットワークインタフェースにより鍵交換プロトコル変換装置101と通信している。