(57)【要約】【課題】順序性を確保しながら、高速に検索可能なセキュリティポリシデータベースを提供する。【解決手段】第１のＩＰ網と、第２のＩＰ網との間で交換されるＩＰパケットを暗号化して通信するＩＰＳｅｃ処理装置であって、ＩＰＳｅｃ処理装置は、セキュリティポリシを格納するセキュリティポリシデータベースを備え、セキュリティポリシデータベースは、第１、第２、第３のセキュリティポリシデータベースを含み、第１及び第３のセキュリティポリシデータベースは、線形リスト構造を有し、第２のセキュリティポリシデータベースは、ハッシュリスト構造を有し、ＩＰＳｅｃ処理装置は、ＩＰパケットを送信及び受信の少なくとも一方をするとき、第１、第２、第３のセキュリティポリシデータベースの順にセキュリティポリシを検索する。【選択図】図４
2008053818.tif 000002
【特許請求の範囲】
【請求項１】
第１のＩＰ網と、第２のＩＰ網との間で交換されるＩＰパケットを暗号化して通信するＩＰＳｅｃ処理装置であって、
前記ＩＰＳｅｃ処理装置は、セキュリティポリシを格納するセキュリティポリシデータベースを備え、
前記セキュリティポリシデータベースは、第１のセキュリティポリシデータベース、第２のセキュリティポリシデータベース、及び第３のセキュリティポリシデータベースを含み、
前記第１のセキュリティポリシデータベース及び第３のセキュリティポリシデータベースは、線形リスト構造を有し、
前記第２のセキュリティポリシデータベースは、ハッシュリスト構造を有し、
前記ＩＰＳｅｃ処理装置は、前記ＩＰパケットを送信及び受信の少なくとも一方をするとき、第１のセキュリティポリシデータベース、第２のセキュリティポリシデータベース、第３のセキュリティポリシデータベースの順に、前記ＩＰパケットに適用されるセキュリティポリシを検索することを特徴とするＩＰＳｅｃ処理装置。
【請求項２】
前記セキュリティポリシは、検索で照合される順序に従って分類され、
前記ＩＰＳｅｃ処理装置は、第１のセキュリティポリシデータベース、第２のセキュリティポリシデータベース、又は第３のセキュリティポリシデータベースに、前記分類されたセキュリティポリシを格納することを特徴とする請求項１に記載のＩＰＳｅｃ処理装置。
【請求項３】
前記セキュリティポリシは、検索で照合される優先順位を含み、
前記ＩＰＳｅｃ処理装置は、前記優先順位に従って、検索することを特徴とする請求項１に記載のＩＰＳｅｃ処理装置。
【請求項４】
前記第２のセキュリティポリシデータベースは、前記ＩＰパケットに含まれるＩＰアドレスのプレフィックス長ごとに分割されていることを特徴とする請求項１に記載のＩＰＳｅｃ処理装置。
【請求項５】
前記ＩＰＳｅｃ処理装置は、
前記セキュリティポリシが適用されるユーザの情報と対応付けて、前記セキュリティポリシを前記セキュリティポリシデータベースに格納し、
前記セキュリティポリシが適用されるユーザの指定を受け付けて、前記指定されたユーザに対応付けられたセキュリティポリシを検索することを特徴とする請求項１に記載のＩＰＳｅｃ処理装置。
【請求項６】
前記ＩＰＳｅｃ処理装置は、前記セキュリティポリシを前記指定されたユーザごとに一括して検索することを特徴とする請求項５に記載のＩＰＳｅｃ処理装置。
【請求項７】
前記ＩＰＳｅｃ処理装置は、
前記セキュリティポリシデータベースに、システムによる通信であって、ユーザ間の通信よりも優先される通信に適用されるセキュリティポリシをシステム用のセキュリティポリシとして格納し、
前記システム用のセキュリティポリシを優先して検索される位置に配置することを特徴とする請求項５に記載のＩＰＳｅｃ処理装置。
【請求項８】
前記ＩＰＳｅｃ処理装置は、通信先のＩＰＳｅｃ処理装置との間で、暗号鍵を交換し、
前記暗号鍵を交換するときに受信したパケットに含まれるＩＰアドレス及びユーザの情報に基づいて、前記セキュリティポリシを生成することを特徴とする請求項５に記載のＩＰＳｅｃ処理装置。
【請求項９】
第１のＩＰ網と、第２のＩＰ網との間で交換されるＩＰパケットを暗号化して通信するＩＰＳｅｃ処理装置を備えるネットワークシステムであって、
前記ＩＰＳｅｃ処理装置は、
通信先のＩＰＳｅｃ処理装置との間で、暗号鍵を交換し、
前記暗号鍵を交換するときに受信したパケットに含まれるＩＰアドレス及びユーザの情報に基づいて、前記セキュリティポリシを生成し、
前記セキュリティポリシを格納するセキュリティポリシデータベースを備え、
前記セキュリティポリシデータベースは、第１のセキュリティポリシデータベース、第２のセキュリティポリシデータベース、及び第３のセキュリティポリシデータベースを含み、
前記第１のセキュリティポリシデータベース及び第３のセキュリティポリシデータベースは、線形リスト構造を有し、
前記第２のセキュリティポリシデータベースは、ハッシュリスト構造を有し、
前記ＩＰＳｅｃ処理装置は、前記ＩＰパケットを送信及び受信の少なくとも一方をするとき、第１のセキュリティポリシデータベース、第２のセキュリティポリシデータベース、第３のセキュリティポリシデータベースの順に、前記ＩＰパケットに適用されるセキュリティポリシを検索することを特徴とするネットワークシステム。
【請求項１０】
前記セキュリティポリシは、検索で照合される順序に従って分類され、
前記ＩＰＳｅｃ処理装置は、第１のセキュリティポリシデータベース、第２のセキュリティポリシデータベース、又は第３のセキュリティポリシデータベースに、前記分類されたセキュリティポリシを格納することを特徴とする請求項９に記載のネットワークシステム。
【請求項１１】
前記セキュリティポリシは、検索で照合される優先順位を含み、
前記ＩＰＳｅｃ処理装置は、前記優先順位に従って、前記セキュリティポリシを検索することを特徴とする請求項９に記載のネットワークシステム。
【請求項１２】
前記第２のセキュリティポリシデータベースは、前記ＩＰパケットに含まれるＩＰアドレスのプレフィックス長ごとに分割されていることを特徴とする請求項９に記載のネットワークシステム。
【請求項１３】
前記ＩＰＳｅｃ処理装置は、
前記セキュリティポリシが適用されるユーザの情報と対応付けて、前記セキュリティポリシを前記セキュリティポリシデータベースに格納し、
前記セキュリティポリシが適用されるユーザの指定を受け付けて、
前記指定されたユーザに対応付けられたセキュリティポリシを検索することを特徴とする請求項９に記載のネットワークシステム。
【請求項１４】
前記ＩＰＳｅｃ処理装置は、前記セキュリティポリシを前記指定されたユーザごとに一括して検索することを特徴とする請求項１３に記載のネットワークシステム。
【請求項１５】
前記ＩＰＳｅｃ処理装置は、
前記セキュリティポリシデータベースに、システムによる通信であって、ユーザ間の通信よりも優先される通信に適用されるセキュリティポリシをシステム用のセキュリティポリシとして格納し、
前記システム用のセキュリティポリシを優先して検索される位置に配置することを特徴とする請求項１３に記載のネットワークシステム。
【請求項１６】
暗号化されたＩＰパケットを送受信するＩＰＳｅｃ処理プログラムであって、
前記ＩＰパケットを送信及び受信する手順と、
前記ＩＰパケットを送信及び受信の少なくとも一方をするとき、線形リスト構造を有する、第１のセキュリティポリシデータベース及び第３のセキュリティポリシデータベースと、ハッシュリスト構造を有する前記第２のセキュリティポリシデータベースと、を含むセキュリティポリシデータベースを、前記ＩＰパケットに含まれるＩＰアドレス及びユーザ情報に基づいて、前記第１のセキュリティポリシデータベース、前記第２のセキュリティポリシデータベース、前記第３のセキュリティポリシデータベースの順に、前記ＩＰパケットに適用されるセキュリティポリシを検索する手順と、を計算機に実行させることを特徴とするＩＰＳｅｃ処理プログラム。
【請求項１７】
前記ＩＰパケットに適用されるセキュリティポリシを検索する手順は、前記セキュリティポリシに含まれる優先順位に従って、前記セキュリティポリシデータベースを検索することを特徴とする請求項１６に記載のＩＰＳｅｃ処理プログラム。
【請求項１８】
前記セキュリティポリシが適用されるユーザの情報と対応付けて、前記セキュリティポリシを前記セキュリティポリシデータベースに格納する手順と、
前記セキュリティポリシが適用されるユーザの指定を受け付ける手順と、をさらに計算機に実行させ、
前記ＩＰパケットに適用されるセキュリティポリシを検索する手順は、前記指定されたユーザに対応付けられたセキュリティポリシを検索することを特徴とする請求項１６に記載のＩＰＳｅｃ処理プログラム。
【請求項１９】
前記ＩＰパケットに適用されるセキュリティポリシを検索する手順は、前記指定されたユーザに対応付けられたセキュリティポリシを一括して検索することを特徴とする請求項１８に記載のＩＰＳｅｃ処理プログラム。
【請求項２０】
通信先のＩＰＳｅｃ処理装置との間で、暗号鍵を交換する手順と、
前記暗号鍵を交換するときに受信したパケットに含まれるＩＰアドレス及びユーザの情報に基づいて、前記セキュリティポリシを生成する手順と、をさらに計算機に実行させることを特徴とする請求項１８に記載のＩＰＳｅｃ処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＩＰパケットにＩＰＳｅｃを適用するＩＰＳｅｃ処理装置に関し、特に、セキュリティポリシを格納する技術に関する。
【背景技術】
【０００２】
近年、通信ネットワークのＩＰ化が進み、インターネットを中心にＩＰ通信ネットワークは、広く社会基盤として利用されている。そのため、インターネットにおける個人情報及び商取引情報等を含むパケット通信では、盗聴及び改竄を防御するために、通信経路のセキュリティを確保することが必要不可欠となっている。
【０００３】
そこで、インターネットの通信セキュリティに関する技術として、インターネット標準化委員会ＩＥＴＦ（Ｔｈｅ  Ｉｎｔｅｒｎｅｔ  Ｅｎｇｉｎｅｅｒｉｎｇ  Ｔａｓｋ  Ｆｏｒｃｅ）において議論されている、Ｓｅｃｕｒｉｔｙ  Ａｒｃｈｉｔｅｃｔｕｒｅ  ｆｏｒ  ｔｈｅ  Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ（インターネットプロトコルのためのセキュリティアーキテクチャ）が広く知られている（非特許文献１参照）。
【０００４】
また、今後広く普及が見込まれるＩＰｖ６では、ＩＰＳｅｃ（ＩＰ  Ｓｅｃｕｒｉｔｙ  Ｐｒｏｔｏｃｏｌ）が標準装備される。さらに、通信ネットワークのＩＰ化が進むにしたがって、接続端末数及び利用者数が増加し、アクセス形態が複雑化することが予測される。
【０００５】
ＩＰＳｅｃでは、通常、送信者と受信者との間で送受信パケットに対して共通鍵による認証及び暗号化処理を実行することによって安全な通信を実現する。このため、送信者と受信者との間でＩＰＳｅｃを適用するために必要な鍵情報、認証アルゴリズム情報、暗号アルゴリズム情報、及びアルゴリズムに必要なパラメータ情報などをあらかじめ決めておく必要がある。これらの取り決めは、セキュリティアソシエーション（ＳＡ：Ｓｅｃｕｒｉｔｙ  Ａｓｓｏｃｉａｔｉｏｎ）と呼ばれ、セキュリティアソシエーションデータベース（ＳＡＤＢ：Ｓｅｃｕｒｉｔｙ  Ａｓｓｏｃｉａｔｉｏｎ  ＤａｔａＢａｓｅ）に格納される。
【０００６】
さらに、ＩＰＳｅｃ処理装置は、入出力されたＩＰパケットに含まれるＩＰアドレスなどの情報に応じて、適用するＩＰＳｅｃ処理を規定するセキュリティポリシ（ＳＰ：Ｓｅｃｕｒｉｔｙ  Ｐｏｌｉｃｙ）を格納する。ＳＰは、セキュリティポリシデータベース（ＳＰＤ：Ｓｅｃｕｒｉｔｙ  Ｐｏｌｉｃｙ  Ｄａｔａｂａｓｅ）に格納される。
【０００７】
ＩＰＳｅｃ処理装置は、ＳＰに規定された条件と入出力されたＩＰパケットのＩＰアドレスなどの情報とを比較し、条件が適合したＳＰに対応するＳＡを抽出する。そして、ＩＰＳｅｃ処理装置は、抽出されたＳＡに基づいて、入出力されたＩＰパケットを認証又は暗号化する。
【０００８】
また、ＩＰＳｅｃ処理装置間で通信開始前に折衝し、前述したＳＰ及びＳＡを自動的に生成する技術に関して、ＩＫＥ（Ｉｎｔｅｒｎｅｔ  Ｋｅｙ  Ｅｘｃｈａｎｇｅ）が知られている（非特許文献２参照）。
【非特許文献１】S.Kent、他１名、「Security Architecture for the Internet Protocol」RFC2401、1998年11月
【非特許文献２】D. Harkins、他１名、「The Internet Key Exchange (IKE)」RFC2409、1998年11月
【発明の開示】
【発明が解決しようとする課題】
【０００９】
ＩＰＳｅｃ技術を適用した暗号化通信は、通信する装置間でＳＰＤ及びＳＡＤＢを共有することによって可能となる。ＩＰＳｅｃ処理装置は、送受信するＩＰパケットに含まれる情報に基づいて、ＳＰＤを参照してＩＰＳｅｃ処理を適用する。
【００１０】
また、ＳＰＤは、一般的に線形構造となっている。線形構造のＳＰＤは、一方向から順次検索するため、順序性を意識した設定が可能となる。しかし、ＩＰＳｅｃを適用して暗号化通信する対象機器が多い場合には、線形リストに追加されるエントリ数が増大するため、ＳＰＤとＩＰパケットのＩＰアドレス等の各種情報（セレクタ情報）との比較回数が増加する。したがって、検索速度に遅延が生じ、ＩＰパケットの転送速度の遅延を引き起こす課題があった。
【００１１】
一方、ハッシュ構造のＳＰＤは、ＳＰエントリの検索数を削減させることによって、検索速度を向上させることができる。しかし、ＩＰパケットをフィルタリングする場合、ハッシュリストに格納されたＳＰの順序性を確保することが不可能であった。
【００１２】
したがって、管理者の意図するセキュリティポリシを適用するためには、管理者が順序性を意識してＳＰＤを追加する方法と、順序性を意識せずに追加する方法とを提供し、それぞれのＳＰＤに対して適切な検索方法を適用しなければならなかった。
【００１３】
さらに、ＳＰＤの検索には、通常、対象端末のＩＰアドレスが使用されるが、ＳＰＤの設定項目が多く、ＳＰＤの参照、追加及び削除等の管理が煩雑となっていた。
【課題を解決するための手段】
【００１４】
本発明の代表的な一形態によると、第１のＩＰ網と、第２のＩＰ網との間で交換されるＩＰパケットを暗号化して通信するＩＰＳｅｃ処理装置であって、前記ＩＰＳｅｃ処理装置は、セキュリティポリシを格納するセキュリティポリシデータベースを備え、前記セキュリティポリシデータベースは、第１のセキュリティポリシデータベース、第２のセキュリティポリシデータベース、及び第３のセキュリティポリシデータベースを含み、前記第１のセキュリティポリシデータベース及び第３のセキュリティポリシデータベースは、線形リスト構造を有し、前記第２のセキュリティポリシデータベースは、ハッシュリスト構造を有し、前記ＩＰＳｅｃ処理装置は、前記ＩＰパケットを送信及び受信の少なくとも一方をするとき、第１のセキュリティポリシデータベース、第２のセキュリティポリシデータベース、第３のセキュリティポリシデータベースの順に、前記ＩＰパケットに適用するセキュリティポリシを検索する。
【発明の効果】
【００１５】
本発明の一形態によれば、セキュリティポリシデータベースからセキュリティポリシを検索するとき、セキュリティポリシの件数が多い場合であっても、順序性を確保しながら高速に検索することができる。
【発明を実施するための最良の形態】
【００１６】
本発明の実施の形態について図面を用いて説明する。
【００１７】
（第１の実施の形態）
図１Ａは、第１の実施の形態のインターネットＶＰＮにおけるＩＰＳｅｃ処理装置のネットワーク接続構成を示す図である。図１Ａに示すネットワーク接続構成では、ＩＰネットワーク１Ａ及びＩＰネットワーク１Ｂは、インターネットなどのＩＰネットワーク１Ｃを経由して相互に通信する。ＩＰネットワーク１Ａは、ＰＣ（２Ａ〜２Ｃ）等によって構成され、セキュリティゲートウェイ（以下、「ＳＧＷ」）３Ａを介して、外部のネットワークに接続する。同じく、ＩＰネットワーク１Ｂは、ＰＣ（２Ｄ〜２Ｆ）等によって構成され、ＳＧＷ３Ｂを介して、外部のネットワークに接続する。
【００１８】
図１Ａに示すネットワーク構成では、ＰＣ（２Ａ〜２Ｆ）及びＳＧＷ（３Ａ、３Ｂ）がＩＰＳｅｃ処理装置に該当する場合がある。例えば、ＩＰネットワーク１Ａに含まれるＰＣ２Ａと、ＩＰネットワーク１Ｂに含まれるＰＣ２Ｄとの間で、直接通信するようにＶＰＮを設定する場合、ＰＣ２Ａ及びＰＣ２ＤがＩＰＳｅｃ処理装置に該当する。一方、ＩＰネットワーク１ＡとＩＰネットワーク１Ｂとの間のＩＰネットワーク１Ｃの通信路のみにＶＰＮを設定する場合には、ＳＧＷ３ＡとＳＧＷ３ＢがＩＰＳｅｃ処理装置となる。このとき、ＳＧＷ３Ａ及びＳＧＷ３Ｂは、管理端末１０によって、ＳＰの登録及び削除などのＳＰＤの管理が実行される。
【００１９】
図１Ｂは、第１の実施の形態のＭｏｂｉｌｅＩＰを適用した移動体ＩＰ通信網の構成を示す図である。図１Ｂに示すネットワークは、ホーム網１Ｄ、パケット中継網１Ｅ、及び在圏網（５Ａ、５Ｂ、５Ｃ）によって構成される。
【００２０】
ホーム網１Ｄは、移動端末（以下、「ＭＮ」）４にパケットを転送するホームエージェント（以下、「ＨＡ」）９及び、ＭＮ４の通信相手となるコレスポンデントノード（以下、「ＣＮ」）８を含む。在圏網（５Ａ、５Ｂ、５Ｃ）は、ＭＮ４が移動先で接続するネットワークである。パケット中継網１Ｅは、在圏網（５Ａ、５Ｂ、５Ｃ）とホーム網１Ｄとの間に位置する。
【００２１】
ホーム網１Ｄとパケット中継網１Ｅの境界には、ルータ７が設置される。また、パケット中継網１Ｅと在圏網（５Ａ、５Ｂ、５Ｃ）の境界には、アクセスルータ（６Ａ、６Ｂ、６Ｃ）が設置される。
【００２２】
ＭＮ４は、ＡＲ（６Ａ、６Ｂ、６Ｃ）に接続されるアクセスポイント（以下、「ＡＰ」）を経由して在圏網（５Ａ、５Ｂ、５Ｃ）にＩＰ接続する。なお、在圏網（５Ａ、５Ｂ、５Ｃ）は無線ネットワークであり、ＭＮ４は、ＡＲ（６Ａ、６Ｂ、６Ｃ）に接続するＡＰを経由してＡＲ（６Ａ、６Ｂ、６Ｃ）にＰＰＰ（Ｐｏｉｎｔ  ｔｏ  Ｐｏｉｎｔ  Ｐｒｏｔｏｃｏｌ）によって接続する。
【００２３】
図１Ｂに示すネットワーク構成では、ＭＮ４、ＨＡ９、ＣＮ８及びＡＲ（６Ａ、６Ｂ、６Ｃ）がＩＰＳｅｃ処理装置に該当する。このとき、接続形態としては、ＨＡ９とＭＮ４との間を接続する通信路、又は、ＣＮ８とＭＮ４との間を接続する通信路においてＩＰＳｅｃ通信を適用する。また、アクセスルータ（６Ａ、６Ｂ、６Ｃ）が設置されるＩＰネットワークが家庭である場合には、アクセスルータ（６Ａ、６Ｂ、６Ｃ）は、ホームルータに該当し、アクセスルータ（６Ａ、６Ｂ、６Ｃ）と、ＨＡ９又はＣＮ８との間を接続する通信路でＩＰＳｅｃ通信を適用する。
【００２４】
図２Ａ及び図２Ｂは、第１の実施の形態のＩＰＳｅｃ処理装置のハードウェア構成図である。第１の実施の形態では、前述のように、ＰＣ２、ＳＧＷ３、ＭＮ４、ＡＲ６、ＣＮ８、及びＨＡ９がＩＰＳｅｃ処理装置となる場合がある。
【００２５】
図２Ａは、第１の実施の形態のＩＰＳｅｃ処理装置のハードウェア構成図である。図２Ａに示すＩＰＳｅｃ処理装置には、ＳＧＷ３、ＡＲ６、及びＨＡ９が該当する。ＩＰＳｅｃ処理装置の操作は、管理者によって、図１Ａに示した管理端末１０から指示される。
【００２６】
図２Ａに示すＩＰＳｅｃ処理装置は、ＣＰＵ２０１、メモリ２０３、ハードディスク２００、ＩＰインタフェース（２０６Ａ、２０６Ｂ）、及びスイッチ２０５を備え、バス２０４によって接続される。
【００２７】
ＣＰＵ２０１は、メモリ２０３に記憶されたプログラムを実行する。メモリ２０３は、ＣＰＵ２０１によって実行されるプログラム及び処理に必要なデータを格納する。メモリ２０３は、例えば、ＳＰＤ、ＳＡＤＢ、及びユーザ管理情報を格納する。
【００２８】
ハードディスク２００は、ソフトウェア及びＩＰＳｅｃ処理装置の設定ファイルなどの情報を格納する。なお、ハードディスク２００は、ＩＰＳｅｃ処理装置の内部に備えている必要はなく、例えば、ネットワーク上に接続される他の装置のハードディスクに接続してもよい。
【００２９】
ＩＰインタフェース（２０６Ａ、２０６Ｂ）は、ＩＰパケットを送受信し、ＩＰＳｅｃ処理装置に少なくとも１つ以上備える。なお、ＩＰインタフェース（２０６Ａ、２０６Ｂ）は、無線インタフェースであってもよい。スイッチ２０５は、ＩＰインタフェース（２０６Ａ、２０６Ｂ）を集約する。
【００３０】
図２Ｂは、第１の実施の形態のＩＰＳｅｃ処理装置のハードウェア構成図である。図２Ｂに示すＩＰＳｅｃ処理装置は、汎用的なパーソナルコンピュータなどで代用可能な機器であり、ＰＣ２、ＭＮ４、及びＣＮ８が該当する。
【００３１】
図２Ｂに示されるＩＰＳｅｃ処理装置は、ＣＰＵ２０８、メモリ２０９、ハードディスク２０７、ＩＰインタフェース２１１、及びキーボード２１２を備え、バス２１０によって接続される。
【００３２】
ＣＰＵ２０８は、メモリ２０９に記憶されたプログラムを実行する。メモリ２０９は、ＣＰＵ２０８によって実行されるプログラム、及び処理に必要なデータを格納する。
【００３３】
ハードディスク２０７は、ソフトウェア及びＩＰＳｅｃ処理装置の設定ファイルなどの情報を格納する。なお、ハードディスク２０７は、ＩＰＳｅｃ処理装置の内部に備えている必要はなく、例えば、ネットワークによって接続される他の装置のハードディスクに接続してもよい。
【００３４】
ＩＰインタフェース２１１は、ＩＰパケットを送受信し、少なくとも１つ以上備えられる。なお、ＩＰインタフェース２１１は、無線インタフェースであってもよい。キーボード２１２は、ＩＰＳｅｃ処理装置を操作するための入力装置である。入力装置は、キーボードに限らず、マウスなどであってもよい。
【００３５】
図３は、第１の実施の形態のセキュリティポリシデータベースに格納されるセキュリティポリシ５００の構成を示す図である。
【００３６】
ＳＰＤは、ＩＰＳｅｃ処理装置に入出力されるＩＰパケットに適用するＳＰを格納する。ＳＰは、入出力されるＩＰパケットの処理方法を記述したものである。ＳＰには、入出力されるＩＰパケットの情報に応じた、ＩＰＳｅｃ処理の適用の有無、及び適用されるＩＰＳｅｃ処理のパラメータなどが記述される。ＳＰは、大きく分けて、セレクタ情報５０９、ポリシ情報５１６、及びＳＰ識別情報５２２によって構成される。
【００３７】
セレクタ情報５０９は、入出力ＩＰパケットに含まれる各種情報と比較され、適用するＳＰを選択するための情報である。セレクタ情報５０９は、ＩＰアドレス（５０１、５０４）、ポート番号（５０３、５０４）、及びプロトコル番号（５０６、５０７）などを含む。
【００３８】
ポリシ情報５１６は、セレクタ情報５０９と一致するＩＰパケットに適用するＩＰＳｅｃ処理のパラメータが格納される。ポリシ情報５１６は、ポリシ５１０、セキュリティプロトコル５１１、カプセル化モード５１２、外側送信元ＩＰ  Ａｄｄｒｅｓｓ５１３、外側送信先ＩＰ  Ａｄｄｒｅｓｓ５１４、及びＳＰＩ値５１５を含む。
【００３９】
ポリシ５１０は、セレクタ情報に一致したＩＰパケットを、透過（Ｂｙｐａｓｓ）、破棄（ＤＲＯＰ）、又はＩＰＳｅｃ処理を適用するかを指定する。なお、図３には、ポリシ５１０の値に応じた例を示している。
【００４０】
ポリシ情報５１６を構成する他の項目は、ＩＰＳｅｃ処理を適用する際に使用される。セキュリティプロトコル５１１は、暗号化通信の手順であり、例えば、暗号化してデータを転送するプロトコルの一つである「ＥＳＰ」などを設定する。カプセル化モード５１２は、送信するパケットのカプセル化の方法を格納し、例えば、「Ｔｕｎｎｅｌ」又は「Ｔｒａｎｓｐｏｒｔ」が格納される。外側送信元ＩＰアドレス５１３及び外側送信先ＩＰアドレス５１４は、送信するパケットをＴｕｎｎｅｌモードでカプセル化する際に使用され、暗号化されたパケットに付加される。ＳＰＩ値５１５は、パケットの送信先で暗号化アルゴリズム及び暗号鍵を特定するために使用される。
【００４１】
ＳＰ識別情報５２２は、ＳＰの参照及び削除、さらに、検索順序及び検索方法の設定を柔軟かつ容易に実行するための情報である。ＳＰ識別情報５２２は、検索種別５１７、優先度５１８、ユーザ管理識別子５１９、ユーザ管理用次ＳＰポインタ５２０、及びパケット転送用次ＳＰポインタ５２１を含む。
【００４２】
以下、ＳＰ識別情報５２２の各要素について、詳しく説明する。まず、ＳＰＤの構成とともに、検索種別５１７、優先度５１８、及びパケット転送用次ＳＰポインタ５２１について説明する。
【００４３】
図４は、第１の実施の形態のＳＰＤの構成、及びＳＰＤの検索順序を説明する図である。第１の実施の形態では、事前検索用ＳＰＤ３００、高速検索用ＳＰＤ３２０、及び事後検索用ＳＰＤ３４０の３種類のＳＰＤによって構成される。図３に示した検索種別５１７は、３種類のＳＰＤのうち、どのＳＰＤにＳＰが格納されているかを指定する。ＳＰＤは、事前検索用ＳＰＤ３００、高速検索用ＳＰＤ３２０、事後検索用ＳＰＤ３４０の順に検索される。
【００４４】
事前検索用ＳＰＤ３００は、線形リスト形式でＳＰ（３１０、３１１、３１２）を格納する。線形リストの連結には、パケット転送用次ＳＰポインタ５２１を使用する。優先度５１８は、ＳＰの優先度を表し、値が小さいほど優先度が高い。また、ＳＰは、優先度の高い順に線形リストの先頭寄りに格納される。リストの先頭から検索してＳＰを抽出するため、順序性を確保することができる。
【００４５】
事前検索用ＳＰＤ３００は、最初に検索されるＳＰＤであるため、管理者が最も優先して処理させるＳＰを格納するために有用である。例えば、端末に依存しないシステムポリシなどを格納するとよい。
【００４６】
高速検索用ＳＰＤ３２０は、ハッシュリスト形式でＳＰ（３３１、３３２、３３３）を格納する。高速検索用ＳＰＤ３２０では、ＩＰアドレスなどの情報を用いてハッシュ値を算出し、ハッシュ値に該当する領域にＳＰを格納する。ハッシュ値は、ハッシュリスト３３０の配列番号に該当する。また、ハッシュ値が同一であるＳＰは、線形リスト形式で格納され、先頭のＳＰがハッシュリストに格納される。高速検索用ＳＰＤ３２０は、リストの先頭から一致するＳＰが見つかるまで検索しなければならない線形検索と比較すると、ハッシュリスト３３０を利用することで、ＳＰの検索速度を向上させることができる。
【００４７】
さらに、高速検索用ＳＰＤ３２０は、ＩＰアドレスのプレフィックス長５０２ごとに分割されて構成される。このように構成することによって、ＳＰの検索数をさらに削減するとともに、セレクタ情報５０９に含まれるＩＰアドレス（５０１、５０４）が一致するパケットであっても、ネットワーク単位でＳＰを設定することが可能である。
【００４８】
事後検索用ＳＰＤ３４０は、事前検索用ＳＰＤ３００と同様に、線形リスト形式でＳＰ（３４１、３４２、３４３）を格納する。事後検索用ＳＰＤ３４０は、事前検索用ＳＰＤ３００及び高速検索用ＳＰＤ３２０に一致しないＩＰパケットに対して適用するＳＰを設定する。したがって、事後検索用ＳＰＤ３４０は、ＩＰＳｅｃ処理装置のシステムデフォルト設定などに用いることができる。
【００４９】
次に、ＳＰ識別情報５２２のユーザ管理識別子５１９及びユーザ管理用次ＳＰポインタ５２０に関し、図５を用いて説明する。
【００５０】
図５は、第１の実施の形態のＳＰとユーザ情報を関連付けて設定及び格納するユーザ管理テーブルの構成を示す図である。ユーザ管理テーブル４１０は、ユーザ情報とＳＰとの対応を格納する。ユーザ管理テーブル４１０に格納されるレコードは、ユーザ情報用のハッシュリスト４００によって管理され、高速に検索することができる。
【００５１】
ユーザ管理テーブル４１０は、ユーザ管理識別子４１１、ユーザＩＤ４１２、ＩＰアドレス４１３、氏名４１４、ＳＰＤポインタ４１５、及び有効期間４１６を含む。
【００５２】
ユーザ管理識別子４１１は、ユーザを一意に識別する識別子である。ユーザ管理識別子４１１は、ユーザ情報の設定時に、固有のＦＱＤＮ（Ｆｕｌｌｙ  Ｑｕａｌｉｆｉｅｄ  Ｄｏｍａｉｎ  Ｎａｍｅ）を用いて生成される。また、ユーザ管理識別子４１１は、ＳＰＤの設定時には、図３に示したＳＰのユーザ管理識別子５１９に格納される。なお、ユーザ管理識別子４１１が“０ｘ００００”であるとき、ＩＰＳｅｃ処理装置のシステム用の情報として管理する。
【００５３】
ＳＰＤポインタ４１５は、該当するユーザに適用されるＳＰに対するポインタが格納される。ＳＰＤポインタ４１５は、該当するユーザに対し、最初に設定されたＳＰに対するポインタが格納される。そして、図３に示したＳＰに含まれるユーザ管理用次ＳＰポインタ５２０によって連結される線形リスト形式で格納される。したがって、ユーザ管理識別子４１１を特定することによって、該当するユーザに適用するすべてのＳＰを取得することができる。
【００５４】
以上のようにユーザ情報を構成することによって、管理者は、ユーザ単位でＳＰの検索、設定、及び一括削除処理が可能となる。
【００５５】
図６は、第１の実施の形態のセキュリティポリシデータベースにセキュリティポリシを追加する手順を示すフローチャートである。第１の実施の形態では、セキュリティポリシは、管理者によって手動で設定される。セキュリティポリシの追加は、まず、適用する対象のユーザを登録し、続いて、セキュリティポリシの内容を入力する。
【００５６】
具体的な手順を説明すると、管理者は、まず、図５に示したユーザ管理テーブル４１０の項目を入力する（６００）。ユーザ情報の入力方法は特に限定しないが、例えば、ＷＥＢインタフェース上にユーザ管理テーブル４１０の雛形を表示し、表示項目に従って入力する方法であってもよい。また、ＳＰＤを設定するためのコマンドラインインタフェースを提供して入力する方法、設定ファイルを管理者が生成してコマンドラインインタフェースから読み込ませる方法であってもよい。なお、入力されたユーザ情報が既に登録されている場合には、ＩＰＳｅｃ処理装置は、該当するユーザ情報を取得し、６０８の処理から処理を開始する。
【００５７】
次に、管理者によって入力されたユーザ管理情報の解析処理について説明する。まず、ＩＰＳｅｃ処理装置は、入力されたＩＰアドレス４１３が全て“０”、又は、ユーザＩＤ４１２が“Ｓｙｓｔｅｍ”と一致するか否かを判定する（６０１）。一致する場合には（６０１の結果が「Ｙｅｓ」）、ユーザ管理識別子４１１にＩＰＳｅｃ処理装置のシステム固有の値であることを示す“０ｘ００００”を固定で登録し（６０２）、ユーザ情報用のハッシュ値を“０”固定とする（６０３）。
【００５８】
一方、ＩＰＳｅｃ処理装置は、管理者によって入力されたＩＰアドレス４１３及びユーザＩＤ４１２がシステムに該当しない場合には（６０１の結果が「Ｎｏ」）、ユーザ管理識別子４１１をランダムに自動的に生成する（６０４）。さらに、入力されたＩＰアドレス４１３及びユーザＩＤ４１２に基づいて、ハッシュ値を算出する（６０５）。
【００５９】
その後、ＩＰＳｅｃ処理装置は、得られたハッシュ値に基づいて、図５に示したユーザ情報用のハッシュリスト４００を参照する（６０６）。そして、入力されたユーザ情報をハッシュリスト４００に登録し（６０７）、ユーザ管理情報の設定処理を終了する。
【００６０】
続いて、ＩＰＳｅｃ処理装置は、該当ユーザ用のＳＰを図３に示したＳＰの雛形を表示する（６０８）。そして、管理者は、表示された雛形にＳＰを入力する（６０９）。ＳＰは、ユーザ管理テーブル４１０に対する入力と同じく、ＷＥＢインタフェース、又はコマンドラインインタフェースなどによって入力される。
【００６１】
ＩＰＳｅｃ処理装置は、ＳＰの入力が完了すると、ユーザ管理情報とＳＰとを関連付けるため、６０９の処理で生成されたユーザ管理識別子４１１の値をＳＰのユーザ管理識別子５１９に設定する（６１０）。また、ユーザ管理テーブル４１０に含まれるＳＰＤポインタ４１５に、新たに入力されたＳＰのポインタを格納する（６１１）。
【００６２】
次に、ＩＰＳｅｃ処理装置は、入力されたＳＰＤ検索種別が高速であるか否かを判定する（６１２）。入力された検索種別が“高速”であるとき（６１２の結果が「Ｙｅｓ」）、ハッシュリストを利用した高速検索用ＳＰＤに設定する。一方、入力された検索種別が“高速”でないとき（６１２の結果が「Ｎｏ」）、すなわち、“事前”又は“事後”であるとき、線形リストを利用した事前検索用ＳＰＤ又は事後検索用ＳＰＤに設定する。事前検索用ＳＰＤ又は事後検索用ＳＰＤにＳＰを追加する手順を図７に、高速検索用ＳＰＤにＳＰＳＰを追加する手順を図８に示す。
【００６３】
図７は、第１の実施の形態の線形リストを利用したＳＰＤの設定手順を示すフローチャートである。線形リストを利用したＳＰＤには、前述のように、事前検索用ＳＰＤ又は事後検索用ＳＰＤが該当する。
【００６４】
事前検索用ＳＰＤ又は事後検索用ＳＰＤにＳＰを設定する規則として、以下の３つの特徴がある。第１に、システム用のＳＰは、一般ユーザ用のＳＰよりも優先して設定される。第２に、優先度の値が小さいＳＰを優先して設定する。第３に、優先度が一致する場合には、先に設定されたＳＰを優先して設定する。なお、システム用のＳＰには、例えば、端末に依存しないシステムポリシなどがあげられる。
【００６５】
図７を用いてＳＰを設定する手順を具体的に説明すると、まず、ＩＰＳｅｃ処理装置は、線形リストの先頭を参照し、比較対象のＳＰとする（６２０）。
【００６６】
ＩＰＳｅｃ処理装置は、比較対象のＳＰが存在するか否かを判定する（６２１）。比較対象のＳＰが存在しない場合には（６２１の結果が「Ｎｏ」）、線形リストの参照位置に入力されたＳＰを登録し、処理を終了する（６２６）。
【００６７】
一方、ＩＰＳｅｃ処理装置は、比較対象となるＳＰが存在する場合には（６２１の結果が「Ｙｅｓ」）、入力されたＳＰのユーザ管理識別子５１９が“０ｘ００００”であるか否かを判定する（６２２）。
【００６８】
ＩＰＳｅｃ処理装置は、ユーザ管理識別子５１９が“０ｘ００００”である場合には（６２２の結果が「Ｙｅｓ」）、入力されたＳＰがシステム用のＳＰであるため、優先してＳＰを登録する。具体的には、ＩＰＳｅｃ処理装置は、比較対象のＳＰのユーザ管理識別子５１９が“０ｘ００００”であるか否かを判定する（６２７）。
【００６９】
ＩＰＳｅｃ処理装置は、比較対象のＳＰがシステム用である場合には（６２７の結果が「Ｎｏ」）、ＳＰに含まれる優先度５１８の値を比較する（６２８）。そして、管理者が入力したＳＰの優先度の値が比較対象のＳＰの優先度の値よりも小さい場合には（６２８の結果が「Ｙｅｓ」）、線形リスト上で比較対象のＳＰの前に位置するように、入力されたＳＰを登録し、処理を終了する（６２６）。また、優先度の値が大きい場合には（６２８の結果が「Ｎｏ」）、現在の比較対象のＳＰのパケット転送用次ＳＰポインタによって特定されるＳＰを新たな比較対象のＳＰとし、６２１の処理に戻る。
【００７０】
一方、ＩＰＳｅｃ処理装置は、比較対象のＳＰがシステム用のＳＰでない場合には（６２７の結果が「Ｎｏ」）、比較対象のＳＰの前に位置するように、入力されたＳＰを登録し、処理を終了する（６２６）。
【００７１】
また、ＩＰＳｅｃ処理装置は、入力されたＳＰのユーザ管理識別子５１９が“０ｘ００００”でない場合には（６２２の結果が「Ｎｏ」）、すなわち、ユーザ用のＳＰであった場合には、比較対象のＳＰのユーザ管理識別子５１９が“０ｘ００００”であるか否かを判定する（６２３）。
【００７２】
ＩＰＳｅｃ処理装置は、比較対象のＳＰがシステム用である場合には（６２３の結果が「Ｙｅｓ」）、現在の比較対象のＳＰのパケット転送用次ＳＰポインタによって特定されるＳＰを新たな比較対象のＳＰとし、６２１の処理に戻る。
【００７３】
一方、ＩＰＳｅｃ処理装置は、比較対象のＳＰがユーザ用である場合には（６２３の結果が「Ｎｏ」）、ユーザ管理識別子５１９が一致するか否かを判定する（６２４）。一致する場合には（６２４の結果が「Ｙｅｓ」）、ＳＰに含まれる優先度の値を比較する（６２５）。そして、管理者が入力したＳＰの優先度の値が比較対象のＳＰの優先度の値よりも小さい場合には（６２５の結果が「Ｙｅｓ」）、入力されたＳＰを優先して検索させるため、比較対象のＳＰの前に位置するようにＳＰを登録し、処理を終了する（６２６）。
【００７４】
また、ＩＰＳｅｃ処理装置は、ユーザ管理識別子５１９が一致しない場合には（６２４の結果が「Ｎｏ」）、現在の比較対象のＳＰのパケット転送用次ＳＰポインタによって特定されるＳＰを新たな比較対象のＳＰとし、６２１の処理に戻る。同じく、ユーザ管理識別子５１９が一致しても、管理者が入力したＳＰの優先度の値が比較対象のＳＰの優先度の値よりも大きい場合には（６２５の結果が「Ｎｏ」）、現在の比較対象のＳＰを更新して６２１の処理に戻る。
【００７５】
図８は、第１の実施の形態のハッシュリストを利用した高速検索用ＳＰＤの設定手順を示すフローチャートである。
【００７６】
高速検索用ＳＰＤにＳＰを設定する規則として、以下の２つの特徴がある。第１に、ハッシュ値の算出に使用するＩＰアドレスは、ＩＰｓｅｃ処理装置以外のＩＰアドレスを使用することによって、ハッシュ値の重複を抑制し、ＳＰの分散効率を向上させる。第２に、プレフィックス長ごとにハッシュリストを備えることによって、ネットワーク単位でのＳＰ設定とＩＰＳｅｃ処理装置単位でのＳＰ設定を分離して管理することができる。
【００７７】
図８を用いてＳＰを設定する手順を具体的に説明すると、まず、ＩＰＳｅｃ処理装置は、管理者が入力したＳＰに含まれる、送信元ＩＰアドレス５０１及び送信先ＩＰアドレス５０４を抽出する（６４０）。
【００７８】
次に、ＩＰＳｅｃ処理装置は、抽出したＩＰアドレスの中で、本処理を実行しているＩＰＳｅｃ処理装置に付与されているＩＰアドレスと異なるＩＰアドレスを選択する（６４１）。第１の実施の形態では、ＩＰアドレスを用いてハッシュ値を算出するため、本処理を実行するＩＰＳｅｃ処理装置のＩＰアドレスを用いてハッシュ値を算出すると、ハッシュ値が特定の値に偏ってしまうからである。  そして、ＩＰＳｅｃ処理装置は、選択したＩＰアドレスを用いてハッシュ値を算出する（６４２）。
【００７９】
次に、ＩＰＳｅｃ処理装置は、管理者が入力したＳＰから選択したＩＰアドレスに対応したプレフィックス長を抽出する（６４３）。そして、プレフィックス長と一致するハッシュリスト３３０を取得する（６４４）。さらに、算出したハッシュ値と一致するハッシュリスト３３０の配列番号を参照する（６４５）。また、ハッシュ値が重複するＳＰが存在する場合には、ハッシュ値が一致するＳＰを線形リスト形式で保持し、リストの先頭に位置するＳＰをハッシュリスト３３０に格納する。したがって、ハッシュリスト３３０にＳＰを追加する手順は、図７に示した線形リスト形式のＳＰＤ設定手順と同じであり、ハッシュ値に対応するハッシュリスト３３０に格納されたＳＰを比較対象のＳＰとして、図７の結合子Ａから処理を実行する。
【００８０】
続いて、以上のようにしてＳＰが設定されたＳＰＤに対し、ユーザ単位で参照及び削除する処理の手順を説明する。
【００８１】
図９は、第１の実施の形態のＳＰＤに格納されたＳＰをユーザ単位で参照又は削除する手順を示すフローチャートである。
【００８２】
管理者は、まず、参照又は削除する対象のユーザ管理テーブル４１０の項目及びＳＰの項目を入力する（７００）。入力方法は、例えば、ＷＥＢインタフェース又はコマンドラインインタフェースによって入力画面を表示して、管理者が入力する。
【００８３】
ＩＰＳｅｃ処理装置は、入力されたユーザ管理情報の項目として、ＩＰアドレス及びユーザＩＤがともに入力されたか否かを判定する（７０１）。入力された項目がＩＰアドレス又はユーザＩＤのみの場合には（７０１の結果が「Ｎｏ」）、ユーザ情報用のハッシュリスト４００に登録されている全てのユーザ情報を検索する（７０４）。そして、ユーザ情報４１０に格納されたユーザ情報と、管理者が入力したＩＰアドレス又はユーザＩＤと比較し、一致するユーザ情報４１０を抽出する（７０５）。
【００８４】
一方、ＩＰＳｅｃ処理装置は、管理者がＩＰアドレス及びユーザＩＤの両方を入力した場合には（７０１の結果が「Ｙｅｓ」）、入力された情報に基づいて、ユーザ情報用のハッシュリスト４００に対応するハッシュ値を算出する（７０２）。そして、ハッシュリスト４００の算出したハッシュ値に対応する領域に格納されたユーザ情報を検索する（７０３）。さらに、管理者が入力したＩＰアドレス又はユーザＩＤと比較し、一致するユーザ情報４１０を抽出する（７０５）。
【００８５】
次に、ＩＰＳｅｃ処理装置は、抽出したユーザ情報４１０に登録されているＳＰＤポインタ４１５を取得する（７０６）。そして、抽出したユーザに適用するＳＰが存在するか否かを判定する（７０７）。ＳＰが存在しない場合には（７０７の結果が「Ｎｏ」）、存在しない旨のメッセージを表示し、本処理を終了する。
【００８６】
ＩＰＳｅｃ処理装置は、抽出したユーザに適用するＳＰが存在する場合には（７０７の結果が「Ｙｅｓ」）、該当するＳＰを抽出する（７０８）。さらに、ＩＰＳｅｃ処理装置は、管理者によって参照又は削除する対象のＳＰが指定されているか否かを確認する（７０９）。指定されている場合には（７０９の結果が「Ｙｅｓ」）、抽出したＳＰと入力したＳＰとが一致するか否かを判定する（７１０）。一致しない場合には（７１０の結果が「Ｎｏ」）、抽出したＳＰのユーザ管理用次ＳＰポインタ５２０を参照し、線形リストに登録されている次のＳＰを、新たに抽出したＳＰとして、７０７の処理に移る。
【００８７】
ＩＰＳｅｃ処理装置は、管理者が入力したＳＰと一致した場合（７１０の結果が「Ｙｅｓ」）、又は、管理者がＳＰを指定していない場合には（７０９の結果が「Ｎｏ」）、管理者が指定した操作内容に応じた処理を実行する（７１１）。管理者が指定した操作内容が“参照”である場合には（７１１の結果が「Ｙｅｓ」）、抽出したＳＰをディスプレイに表示する（７１２）。また、指定した操作内容が“削除”である場合には（７１１の結果が「Ｎｏ」）、抽出したＳＰを削除する。
【００８８】
以上の処理を実行することによって、管理者はユーザ単位でＳＰの参照が可能となり、ユーザごとの設定状況確認及び設定漏れの防止が可能となる。また、ＳＰを削除する場合においても、誤操作によって他のユーザのＳＰを削除することを防止することができる。
【００８９】
図１０は、第１の実施の形態のＩＰＳｅｃ処理装置がＩＰパケットを送信又は転送する処理の手順を説明するフローチャートである。
【００９０】
ＩＰＳｅｃ処理装置の基本的な送信又は転送処理では、ＳＰを事前検索用ＳＰＤ３００、高速検索用ＳＰＤ３２０、事後検索用ＳＰＤ３４０の順に検索する。そして、送信するＩＰパケットの情報と一致するＳＰを抽出すると、ＳＰに含まれるポリシ情報５１６に基づいて、ＩＰパケットに対してＩＰＳｅｃ処理を実行する。
【００９１】
具体的には、ＩＰＳｅｃ処理装置は、送信対象又は転送対象となるＩＰパケットの入力を受け付けると（８００）、まず、事前検索用ＳＰＤ３００を参照する（８０１）。そして、線形リストである事前検索用ＳＰＤ３００の先頭に格納されたＳＰを抽出し、比較対象とする。
【００９２】
ＩＰＳｅｃ処理装置は、比較対象のＳＰが存在するか否かを判定する（８０２）。比較対象のＳＰが存在する場合には（８０２の結果が「Ｙｅｓ」）、入力されたＩＰパケットに含まれるＩＰアドレスなどの情報と比較対象のＳＰのセレクタ情報とが一致するか否かを判定する（８０３）。
【００９３】
ＩＰＳｅｃ処理装置は、入力されたＩＰパケットに含まれる情報が比較対象のＳＰのセレクタ情報と一致しない場合には（８０３の結果が「Ｎｏ」）、パケット転送用次ＳＰポインタ５２１が示すＳＰを新たな比較対象のＳＰとする。そして、入力されたＩＰパケットに含まれる情報と一致するセレクタ情報を有するＳＰが抽出されるまで（８０３の結果が「Ｙｅｓ」）、又は、比較対象のＳＰが存在しなくなるまで（８０２の結果が「Ｎｏ」）、８０２及び８０３の処理を繰り返す。
【００９４】
一方、ＩＰＳｅｃ処理装置は、入力されたＩＰパケットに含まれる情報と比較対象のＳＰのセレクタ情報とが一致した場合には（８０３の結果が「Ｙｅｓ」）、８０４Ａから８１０までのＩＰＳｅｃ処理を実行する。なお、ＩＰＳｅｃ処理の具体的な手順については、後述する。
【００９５】
ＩＰＳｅｃ処理装置は、事前検索用ＳＰＤ３００に一致するＳＰが存在しない場合には（８０２の結果が「Ｎｏ」）、引き続き、高速検索用ＳＰＤ３２０から一致するＳＰを検索する。
【００９６】
ＩＰＳｅｃ処理装置は、まず、入力されたＩＰパケットに含まれるあて先ＩＰアドレスに基づいて、ハッシュ値を算出する（８１１）。次に、プレフィックス長が最大である高速検索用ＳＰＤ３２０Ａを最初の検索対象とし（８１２）、対応するハッシュリスト３３０Ａに基づいて、算出したハッシュ値に該当するＳＰを検索する（８１３）。そして、取得されたＳＰを比較対象とする。
【００９７】
続いて、ＩＰＳｅｃ処理装置は、比較対象のＳＰが存在するか否かを判定する（８１４）。比較対象のＳＰが存在する場合には（８１４の結果が「Ｙｅｓ」）、入力されたＩＰパケットに含まれるＩＰアドレスなどの情報と比較対象のＳＰのセレクタ情報とが一致するか否かを判定する（８１５）。
【００９８】
ＩＰＳｅｃ処理装置は、入力されたＩＰパケットに含まれる情報と比較対象のＳＰのセレクタ情報とが一致しない場合には（８１５の結果が「Ｎｏ」）、パケット転送用次ＳＰポインタ５２１が示すＳＰを新たな比較対象のＳＰとする。そして、入力されたＩＰパケットに含まれる情報と一致するセレクタ情報を有するＳＰが抽出されるまで（８１５の結果が「Ｙｅｓ」）、又は、比較対象のＳＰが存在しなくなるまで（８１４の結果が「Ｎｏ」）、８１４及び８１５の処理を繰り返す。
【００９９】
一方、ＩＰＳｅｃ処理装置は、入力されたＩＰパケットに含まれる情報と比較対象のＳＰのセレクタ情報とが一致した場合には（８１５の結果が「Ｙｅｓ」）、８０４Ａから８１０までのＩＰＳｅｃ処理を実行する。
【０１００】
ＩＰＳｅｃ処理装置は、入力されたＩＰパケットに含まれる情報とセレクタ情報が一致するＳＰが存在しなかった場合には（８１５の結果が「Ｎｏ」）、検索対象のプレフィックス長を減算し、値が“０”となるか否かを判定する（８１６）。プレフィックス長が０以上の場合には（８１６の結果が「Ｎｏ」）、減算したプレフィックス長に対応する高速検索用ＳＰＤを検索対象とし（８１２）、ＳＰの検索を続行する。
【０１０１】
ＩＰＳｅｃ処理装置は、プレフィックス長が０となり（８１６の結果が「Ｙｅｓ」）、高速検索用ＳＰＤ３２０を検索した結果、該当するＳＰを抽出できなかった場合には、引き続き、事後検索用ＳＰＤ３４０から一致するＳＰを検索する。
【０１０２】
ＩＰＳｅｃ処理装置は、まず、事後検索用ＳＰＤ３４０を参照し（８１７）、先頭に格納されたＳＰを抽出し、比較対象のＳＰとする。続いて、ＩＰＳｅｃ処理装置は、比較対象のＳＰが存在するか否かを判定する（８１８）。比較対象のＳＰが存在する場合には（８１８の結果が「Ｙｅｓ」）、入力されたＩＰパケットに含まれるＩＰアドレスなどの情報と比較対象のＳＰのセレクタ情報とが一致するか否かを判定する（８１９）。
【０１０３】
ＩＰＳｅｃ処理装置は、入力されたＩＰパケットに含まれる情報と比較対象のＳＰのセレクタ情報とが一致しない場合には（８１９の結果が「Ｎｏ」）、パケット転送用次ＳＰポインタ５２１が示すＳＰを新たな比較対象のＳＰとする。そして、入力されたＩＰパケットに含まれる情報と一致するセレクタ情報を有するＳＰが抽出されるまで（８１９の結果が「Ｙｅｓ」）、又は、比較対象のＳＰが存在しなくなるまで（８１８の結果が「Ｎｏ」）、８１８及び８１９の処理を繰り返す。
【０１０４】
一方、ＩＰＳｅｃ処理装置は、入力されたＩＰパケットに含まれる情報と比較対象のＳＰのセレクタ情報とが一致した場合には（８１９の結果が「Ｙｅｓ」）、８０４Ａから８１０までのＩＰＳｅｃ処理を実行する。また、ＩＰＳｅｃ処理装置は、入力されたＩＰパケットに含まれる情報とセレクタ情報が一致するＳＰが存在しなかった場合には（８１８の結果が「Ｎｏ」）、入力されたＩＰパケットを廃棄する（８１０）。
【０１０５】
ＩＰＳｅｃ処理装置は、入力されたＩＰパケットのＩＰアドレス情報等とセレクタ情報が一致するＳＰが抽出された場合には（８０３、８１５、８１９の結果が「Ｙｅｓ」）、ＳＰに含まれるポリシ情報５１６に基づいて、ＩＰＳｅｃ処理を実行する。以下、ＩＰＳｅｃ処理について説明する。
【０１０６】
ＩＰＳｅｃ処理装置は、まず、抽出されたＳＰに含まれるポリシ５１０を取得する。ポリシ５１０には、適用するＩＰＳｅｃ処理の内容が格納される。ＩＰＳｅｃ処理装置は、ポリシ５１０が“Ｄｒｏｐ”の場合には（８０４Ａの結果が「Ｙｅｓ」）、入力されたＩＰパケットを破棄する（８１０）。また、ポリシ５１０が“ＢｙＰａｓｓ”の場合には（８０４Ｂの結果が「Ｎｏ」）、入力されたＩＰパケットをそのまま転送する（８０９）。
【０１０７】
ＩＰＳｅｃ処理装置は、ポリシ５１０が“ＩＰＳｅｃ”の場合には（８０４Ｂの結果が「Ｙｅｓ」）、ＩＰＳｅｃ処理として、８０５から８０８までの処理を実行する。ＩＰＳｅｃ処理装置は、まず、カプセル化モード５１２を参照する。カプセル化モード５１２の内容にトンネモードが設定されている場合には、外側送信元ＩＰアドレス５１３及び外側送信先ＩＰアドレス５１４を使用して、入力したＩＰパケットにＩＰヘッダを付加するカプセル化処理を実行する（８０５）。
【０１０８】
次に、ＩＰＳｅｃ処理装置は、ＳＰＩ値５１５に基づいて、ＩＰＳｅｃを適用するために必要な鍵情報と認証及び暗号アルゴリズムの情報とを含むＳＡをＳＡＤＢから取得する（８０６）。そして、ＳＡに基づいて、入力されたＩＰパケットを暗号化する（８０７）。最後に、ＩＰＳｅｃ処理を施したＩＰパケットの送信経路を決定し（８０８）、経路に基づいて送信する（８０９）。
【０１０９】
図１１は、第１の実施の形態のＩＰＳｅｃ処理装置がＩＰＳｅｃが適用されたＩＰパケットを受信する処理の手順を説明するフローチャートである。
【０１１０】
ＩＰＳｅｃ処理装置は、まず、受信したＩＰＳｅｃ適用ＩＰパケットに含まれるＳＰＩ値と送信元ＩＰアドレスに基づいてＳＡを抽出し（９００）、ＩＰパケットを復号化する（９０１）。次に、ＩＰパケットに２つのＩＰヘッダ情報が存在する場合は、トンネルモードでのＩＰＳｅｃ処理であるため、ＩＰパケットをデカプセル化する（９０２）。以上の処理によって、受信したＩＰパケットの復元が完了する。そして、復元したＩＰパケットに対し、送信処理と同様に、事前検索用ＳＰＤ３００、高速検索用ＳＰＤ３２０、事後検索用ＳＰＤ３４０の順に検索し、ＳＰを取得する。
【０１１１】
ＩＰＳｅｃ処理装置は、まず、事前検索用ＳＰＤ３００を参照する（９０３）。そして、線形リストである事前検索用ＳＰＤ３００の先頭に格納されたＳＰを抽出し、比較対象とする。
【０１１２】
続いて、ＩＰＳｅｃ処理装置は、比較対象のＳＰが存在するか否かを判定する（９０４）。比較対象のＳＰが存在する場合には（９０４の結果が「Ｙｅｓ」）、復元したＩＰパケットに含まれるＩＰアドレスなどの情報と比較対象のＳＰのセレクタ情報とが一致するか否かを判定する（９０５）。
【０１１３】
ＩＰＳｅｃ処理装置は、復元したＩＰパケットに含まれる情報が比較対象のＳＰのセレクタ情報と一致しない場合には（９０５の結果が「Ｎｏ」）、パケット転送用次ＳＰポインタ５２１が示すＳＰを新たな比較対象のＳＰとする。そして、復元したＩＰパケットに含まれる情報と一致するセレクタ情報を有するＳＰが抽出されるまで（９０５の結果が「Ｙｅｓ」）、又は、比較対象のＳＰが存在しなくなるまで（９０４の結果が「Ｎｏ」）、９０４及び９０５の処理を繰り返す。
【０１１４】
一方、ＩＰＳｅｃ処理装置は、復元したＩＰパケットに含まれる情報と比較対象のＳＰのセレクタ情報とが一致した場合には（９０５の結果が「Ｙｅｓ」）、復元したＩＰパケットに対し、９０６以降のＩＰＳｅｃ処理を実行する。なお、ＩＰＳｅｃ処理の具体的な手順については、後述する。
【０１１５】
ＩＰＳｅｃ処理装置は、事前検索用ＳＰＤ３００に一致するＳＰが存在しない場合には（９０４の結果が「Ｎｏ」）、引き続き、高速検索用ＳＰＤ３２０から一致するＳＰを検索する。
【０１１６】
ＩＰＳｅｃ処理装置は、まず、復元したＩＰパケットに含まれるあて先ＩＰアドレスに基づいて、ハッシュ値を算出する（９０９）。次に、プレフィックス長が最大である高速検索用ＳＰＤ３２０Ａを最初の検索対象とし（９１０）、対応するハッシュリスト３３０Ａに基づいて、算出したハッシュ値に該当するＳＰを検索する（９１１）。そして、取得されたＳＰを比較対象とする。
【０１１７】
続いて、ＩＰＳｅｃ処理装置は、比較対象のＳＰが存在するか否かを判定する（９１２）。比較対象のＳＰが存在する場合には（９１２の結果が「Ｙｅｓ」）、復元したＩＰパケットに含まれるＩＰアドレスなどの情報と比較対象のＳＰのセレクタ情報とが一致するか否かを判定する（９１３）。
【０１１８】
ＩＰＳｅｃ処理装置は、復元したＩＰパケットに含まれる情報と比較対象のＳＰのセレクタ情報とが一致しない場合には（９１３の結果が「Ｎｏ」）、パケット転送用次ＳＰポインタ５２１が示すＳＰを新たな比較対象のＳＰとする。そして、復元したＩＰパケットに含まれる情報と一致するセレクタ情報を有するＳＰが抽出されるまで（９１３の結果が「Ｙｅｓ」）、又は、比較対象のＳＰが存在しなくなるまで（９１２の結果が「Ｎｏ」）、９１２及び９１３の処理を繰り返す。
【０１１９】
一方、ＩＰＳｅｃ処理装置は、復元したＩＰパケットに含まれる情報と比較対象のＳＰのセレクタ情報とが一致した場合には（９１３の結果が「Ｙｅｓ」）、復元したＩＰパケットに対し、９０６以降のＩＰＳｅｃ処理を実行する。
【０１２０】
ＩＰＳｅｃ処理装置は、復元したＩＰパケットに含まれる情報とセレクタ情報が一致するＳＰが存在しなかった場合には（９１３の結果が「Ｎｏ」）、検索対象のプレフィックス長を減算し、値が“０”となるか否かを判定する（９１４）。プレフィックス長が０以上の場合には（９１４の結果が「Ｎｏ」）、減算したプレフィックス長に対応する高速検索用ＳＰＤを検索対象とし（９１０）、ＳＰの検索を続行する。
【０１２１】
ＩＰＳｅｃ処理装置は、プレフィックス長が０である高速検索用ＳＰＤ３２０を検索しでも（９１４の結果が「Ｙｅｓ」）、該当するＳＰを抽出できなかった場合には、引き続き、事後検索用ＳＰＤ３４０から一致するＳＰを検索する。
【０１２２】
ＩＰＳｅｃ処理装置は、まず、事後検索用ＳＰＤ３４０を参照し（９１５）、先頭に格納されたＳＰを抽出し、比較対象のＳＰとする。続いて、ＩＰＳｅｃ処理装置は、比較対象のＳＰが存在するか否かを判定する（９１６）。比較対象のＳＰが存在する場合には（９１６の結果が「Ｙｅｓ」）、復元したＩＰパケットに含まれるＩＰアドレスなどの情報と比較対象のＳＰのセレクタ情報とが一致するか否かを判定する（９１７）。
【０１２３】
ＩＰＳｅｃ処理装置は、復元したＩＰパケットに含まれる情報と比較対象のＳＰのセレクタ情報とが一致しない場合には（９１７の結果が「Ｎｏ」）、パケット転送用次ＳＰポインタ５２１が示すＳＰを新たな比較対象のＳＰとする。そして、復元したＩＰパケットに含まれる情報と一致するセレクタ情報を有するＳＰが抽出されるまで（９１７の結果が「Ｙｅｓ」）、又は、比較対象のＳＰが存在しなくなるまで（９１６の結果が「Ｎｏ」）、９１６及び９１７の処理を繰り返す。
【０１２４】
一方、ＩＰＳｅｃ処理装置は、復元したＩＰパケットに含まれる情報と比較対象のＳＰのセレクタ情報とが一致した場合には（９１７の結果が「Ｙｅｓ」）、復元したＩＰパケットに対し、９０６以降のＩＰＳｅｃ処理を実行する。また、ＩＰＳｅｃ処理装置は、復元したＩＰパケットに含まれる情報とセレクタ情報が一致するＳＰが存在しなかった場合には（９１６の結果が「Ｎｏ」）、復元したＩＰパケットを廃棄する（９０８）。
【０１２５】
ＩＰＳｅｃ処理装置は、復元したＩＰパケットのＩＰアドレス情報等とセレクタ情報が一致するＳＰが抽出された場合には（９０５、９１３、９１７の結果が「Ｙｅｓ」）、ＳＰに含まれるポリシ情報５１６に基づいて、ＩＰＳｅｃ処理を実行する。以下、ＩＰＳｅｃ処理について説明する。
【０１２６】
ＩＰＳｅｃ処理装置は、抽出されたＳＰに含まれるポリシ５１０を取得する。そして、ポリシ５１０が“Ｄｒｏｐ”の場合には（９０６の結果が「Ｙｅｓ」）、受信したＩＰパケットを破棄する（９０８）。また、ポリシ５１０が“Ｄｒｏｐ”でない場合には（９０６の結果が「Ｎｏ」）、ＩＰパケットの受信を確定する（９０７）。
【０１２７】
第１の実施の形態によれば、ＳＰＤを事前、高速、事後の３種類に分類して指定することができるため、ＳＰの順序性を明確に設定することができる。また、複数のＳＰを分散して格納するため、ＩＰＳｅｃ処理を実行する際に、ＳＰとＩＰパケットとの比較回数を大幅に削減することができる。したがって、ＩＰＳｅｃを適用した暗号化通信をするときに転送速度の遅延を減少させることができる。
【０１２８】
さらに、第１の実施の形態によれば、ＳＰＤ管理作業を簡素化することができる。具体的には、ユーザごとにＳＰの設定、参照及び一括削除が可能となるため、ＳＰの設定状況の確認、ＳＰの設定漏れ防止、矛盾するＳＰの設定の発見、及び誤操作による他ユーザのＳＰの削除防止などを実現することができる。
【０１２９】
なお、第１の実施の形態のＳＰＤ及びユーザ管理情報は、ＩＰアドレス及びユーザＩＤを検索キーとして使用するデータベースを構築するファイヤウォール装置、又はパケットフィルタリング装置に対して適用してもよい。ファイヤウォール装置又はパケットフィルタリング装置に適用することによって、データベースの検索速度の向上、ユーザ単位の操作性を向上させることができる。
【０１３０】
（第２の実施の形態）
第１の実施の形態では、管理者が手動でＳＰを設定する手順を説明したが、第２の実施の形態では、通信相手と自動的に暗号鍵を交換する際に、受信したパケットの情報に基づいて、ＳＰ及びユーザ管理情報のエントリを作成する。システム構成などについては、第１の実施の形態と同じである。
【０１３１】
第２の実施の形態では、鍵交換プロトコルであるＩＫＥ（Ｉｎｔｅｒｎｅｔ  Ｋｅｙ  Ｅｘｃｈａｎｇｅ）の手順に従って暗号鍵を交換する例を説明する。
【０１３２】
通常のＩＫＥ処理では、ＳＰＤ及びＳＡを動的に設定するのみである。第２の実施の形態では、ＩＫＥネゴシエーション処理中にユーザ管理情報を自動生成し、ＳＰＤと関連付けて格納する。以下、詳細に説明する。
【０１３３】
図１２は、第２の実施の形態のＩＫＥネゴシエーション処理の際にＳＰＤを設定する手順のフローチャートである。本処理は、通信相手となるＩＰＳｅｃ処理装置からのＩＫＥネゴシエーション要求を契機に開始される。
【０１３４】
まず、ＩＰＳｅｃ処理装置は、ユーザ管理テーブル４１０の生成に必要な情報として、ＩＫＥメッセージに含まれる送信元のＩＰアドレスを抽出する（６５０）。次に、ＩＫＥネゴシエーションで実行される認証処理で使用するユーザＩＤ（ＦＱＤＮ情報）を抽出する（６５１）。
【０１３５】
ＩＰＳｅｃ処理装置は、抽出した送信元のＩＰアドレス及びユーザＩＤに基づいて、ユーザ情報用のハッシュ値を算出する（６５２）。そして、ハッシュリスト４００を検索し（６５３）、抽出した送信元のＩＰアドレス及びユーザＩＤと比較し、同一ユーザ情報が存在するか否かを判定する（６５４）。同一ユーザ情報が存在する場合には（６５４の結果が「Ｙｅｓ」）、登録済のユーザ管理識別子４１１を抽出し（６５６）、ＩＫＥネゴシエーションによるＳＰ及びＳＡの折衝処理が完了するまで待機する（６５８）。
【０１３６】
一方、ＩＰＳｅｃ処理装置は、同一ユーザ情報が存在しない場合には（６５４の結果が「Ｎｏ」）、ユーザ管理識別子４１１を自動生成し（６５５）、ユーザ管理テーブル４１０に新たにレコードを登録する（６５７）。そして、ＩＫＥネゴシエーションによるＳＰ及びＳＡの折衝処理が完了するまで待機する（６５８）。
【０１３７】
ＩＰＳｅｃ処理装置は、ＩＫＥネゴシエーションによるＳＰ及びＳＡの折衝処理が完了すると、ＳＰの設定を開始する（６５９）。そして、送信元のプレフィックス長５０２及び送信先のプレフィックス長５０５に最長の値を設定し、さらに、ＳＰＤの検索種別５１７の値に“高速”を設定する。さらに、ＳＰの他の項目の設定は、第１の実施の形態で説明した手順と同じである。具体的には、図６に示した管理者のＳＰ入力処理６０９が終了した時点（図６の結合子Ｂ）から、処理を開始すればよい。
【０１３８】
第２の実施の形態によれば、ＩＫＥによってＳＰＤを動的に設定するときに、高速検索用ＳＰＤ３２０に自動的にＳＰを設定し、同時にユーザ情報管理テーブル４１０のレコードを生成することができる。したがって、管理者が随時ＳＰを設定する必要なく、ユーザ管理情報とともに、ＳＰを生成することができる。また、ユーザ管理情報が同時に生成されているため、管理者が設定していないＳＰについても、ユーザ単位にＳＰＤの管理が可能となる。
【０１３９】
また、第２の実施の形態は、図１Ｂに示した移動体ＩＰ通信に適用すると好適である。特に、ＨＡ９は、複数のＭＮ４とＩＰＳｅｃ通信を行うため、ＳＰの設定数が膨大となる。このとき、管理者が手動でＳＰＤを設定することは困難であるが、第２の実施の形態を適用することによって、ＳＰＤの管理を簡素化することができる。
【図面の簡単な説明】
【０１４０】
【図１Ａ】第１の実施の形態のネットワーク構成を示す図である。
【図１Ｂ】第１の実施の形態のネットワーク構成の変形例を示す図である。
【図２Ａ】第１の実施の形態のＩＰＳｅｃ処理装置のハードウェア構成図である。
【図２Ｂ】第１の実施の形態のＩＰＳｅｃ処理装置のハードウェア構成図である。
【図３】第１の実施の形態のセキュリティポリシデータベースの構成及び検索順序を示した説明図である。
【図４】第１の実施の形態のユーザ情報管理テーブルの構成図である。
【図５】第１の実施の形態のセキュリティポリシの構成を示す図である。
【図６】第１の実施の形態のセキュリティポリシを管理者によって手動で設定する手順を示すフローチャートである。
【図７】第１の実施の形態の線形リスト形式のセキュリティポリシデータベースにセキュリティポリシを格納する手順を示すフローチャートである。
【図８】第１の実施の形態のハッシュリスト形式のセキュリティポリシデータベースにセキュリティポリシを格納する手順を示すフローチャートである。
【図９】第１の実施の形態のセキュリティポリシデータベースに格納されたセキュリティポリシを参照又は削除する手順を示すフローチャートである。
【図１０】第１の実施の形態のＩＰパケットの送信処理の手順を示すフローチャートである。
【図１１】第１の実施の形態のＩＰパケットの受信処理の手順を示すフローチャートである。
【図１２】第２の実施の形態のインターネット鍵交換プロトコルを用いてセキュリティポリシデータベース及びユーザ情報を自動生成し、格納する手順を示すフローチャートである。
【符号の説明】
【０１４１】
１  ＩＰ網
２  パーソナルコンピュータ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ：ＰＣ）
３  セキュリティゲートウェイ（Ｓｅｃｕｒｉｔｙ  Ｇａｔｅｗａｙ：ＳＧＷ）
４  移動端末（Ｍｏｂｉｌｅ  Ｎｏｄｅ：ＭＮ）
８  通信相手端末（Ｃｏｒｒｅｓｐｏｎｄｉｎｇ  Ｎｏｄｅ：ＣＮ）
９  ホームエージェント（Ｈｏｍｅ  Ａｇｅｎｔ：ＨＡ）
３００  事前検索用セキュリティポリシデータベース
３２０  高速検索用セキュリティポリシデータベース
３４０  事後検索用セキュリティポリシデータベース
４１０  ユーザ情報管理テーブル
５００  セキュリティポリシ
【図１Ａ】
2008053818.tif 000003
【図１Ｂ】
2008053818.tif 000004
【図２Ａ】
2008053818.tif 000005
【図２Ｂ】
2008053818.tif 000006
【図３】
2008053818.tif 000007
【図４】
2008053818.tif 000008
【図５】
2008053818.tif 000009
【図６】
2008053818.tif 000010
【図７】
2008053818.tif 000011
【図８】
2008053818.tif 000012
【図９】
2008053818.tif 000013
【図１０】
2008053818.tif 000014
【図１１】
2008053818.tif 000015
【図１２】
2008053818.tif 000016