(57)【要約】 【課題】SPとSAの関連付けの方式が異なる通信装置間においてIPsec通信を可能にする。【解決手段】パケット処理情報と鍵情報を用いてIPsec通信を行うことが可能な通信装置は、送信パケットに含まれる情報を用いて第１のパケット処理情報を検索し、該第１のパケット処理情報に関連付けられた第１の鍵情報を用いて該送信パケットを暗号化して相手装置に送信し、該相手装置から受信したパケットに含まれる情報に基づいて第２の鍵情報を検索し、該第２の鍵情報を用いて、該受信したパケットに対して復号もしくは認証処理を行い、該受信したパケットに含まれる情報を用いて第２のパケット処理情報を探索し、該処理が行われたパケットに対して所定のプロトコルに基づいた受信処理を行う。通信装置は、該第１の鍵情報が該第１のパケット処理情報に一意に関連付けられているか否かに応じて、該送信パケットを暗号化して該相手装置に送信し、該第２の鍵情報が該第２のパケット処理情報に一意に関連付けられているか否かに関わらず該受信処理を行う。【選択図】図１
2017188800.tif 000002
【特許請求の範囲】
【請求項１】
パケット処理情報と鍵情報を用いてIPsec通信を行うことが可能な通信装置であって、
送信パケットに含まれる情報を用いて第１のパケット処理情報を検索する第１の検索手段と、
前記第１のパケット処理情報に関連付けられた第１の鍵情報を用いて前記送信パケットを暗号化して相手装置に送信する送信手段と、
前記相手装置から受信したパケットに含まれる情報に基づいて第２の鍵情報を検索する第２の検索手段と、
前記第２の鍵情報を用いて、前記受信したパケットに対して復号もしくは認証処理を行う処理手段と、
前記受信したパケットに含まれる情報を用いて第２のパケット処理情報を探索する第３の検索手段と、
前記処理手段による処理が行われたパケットに対して所定のプロトコルに基づいた受信処理を行うプロトコル処理手段と、
を有し、
前記送信手段は、前記第１の鍵情報が前記第１のパケット処理情報に一意に関連付けられているか否かに応じて、前記送信パケットを暗号化して前記相手装置に送信し、
前記プロトコル処理手段は、前記第２の鍵情報が前記第２のパケット処理情報に一意に関連付けられているか否かに関わらず前記受信処理を行うことを特徴とする通信装置。
【請求項２】
前記第１の鍵情報が前記第１のパケット処理情報に一意に関連付けられているか否かを判定する第１の判定手段をさらに有することを特徴とする請求項１に記載の通信装置。
【請求項３】
前記第１のパケット処理情報と前記第２のパケット処理情報はそれぞれ識別情報を伴って登録されており、前記第１の鍵情報と前記第２の鍵情報はそれぞれパケット処理情報の識別情報が付与されて登録されており、
前記送信手段は、前記第１の鍵情報に付与されたパケット処理情報の識別情報と、前記第１のパケット処理情報の識別情報とが一致するか否かに応じて、前記送信パケットを暗号化して前記相手装置に送信することを特徴とする請求項１または２に記載の通信装置。
【請求項４】
前記相手装置におけるパケット処理情報と鍵情報の関連付けの方式を判定する第２の判定手段と、
前記第２の判定手段により前記パケット処理情報と鍵情報の関連付けの方式が特定の仕様に準拠した方式と判定された場合、前記第１のパケット処理情報と前記第２のパケット処理情報のそれぞれについて識別情報を付与して登録すると共に、前記第１の鍵情報と前記第２の鍵情報のそれぞれについてパケット処理情報の識別情報を付与して登録する登録手段と、
を更に有することを特徴とする請求項３に記載の通信装置。
【請求項５】
前記第２の判定手段により前記パケット処理情報と鍵情報の関連付けの方式が特定の仕様に準拠した方式でないと判定された場合、前記登録手段は、前記前記第１のパケット処理情報と前記第２のパケット処理情報のそれぞれについて識別情報を付与して登録し、前記第１の鍵情報と前記第２の鍵情報のそれぞれについてはパケット処理情報の識別情報を付与することなく登録することを特徴とする請求項３に記載の通信装置。
【請求項６】
前記送信手段は、前記第１の鍵情報にパケット処理情報の識別情報が付与されていない場合であっても、前記送信パケットを暗号化して前記相手装置に送信することを特徴とする請求項４または５に記載の通信装置。
【請求項７】
前記プロトコル処理手段は、前記第２の鍵情報にパケット処理情報の識別情報が付与されていない場合であっても、前記受信処理を行うことを特徴とする請求項４または５に記載の通信装置。
【請求項８】
前記特定の仕様は、IETF（Internet Engineering Task Force）による技術仕様であるRFCであることを特徴とする請求項４から７のいずれか１項に記載の通信装置。
【請求項９】
前記パケット処理情報と前記鍵情報はそれぞれ、IPsec通信におけるSP（Security Policy）とSA（Security Association）であることを特徴とする請求項１から８のいずれか１項に記載の通信装置。
【請求項１０】
メモリに登録されたパケット処理情報と鍵情報を用いてIPsec通信を行うことが可能な通信装置の制御方法であって、
送信パケットに含まれる情報を用いて第１のパケット処理情報を検索する第１の検索工程と、
前記第１のパケット処理情報に関連付けられた第１の鍵情報を用いて前記送信パケットを暗号化して相手装置に送信する送信工程と、
前記相手装置から受信したパケットに含まれる情報に基づいて、第２の鍵情報を検索する第２の検索工程と、
前記第２の鍵情報を用いて、前記受信したパケットに対して復号もしくは認証処理を行う処理工程と、
前記受信したパケットに含まれる情報を用いて第２のパケット処理情報を探索する第３の検索工程と、
前記処理工程における処理が行われたパケットに対して所定のプロトコルに基づいた受信処理を行うプロトコル処理工程と、
を有し、
前記送信工程では、前記第１の鍵情報が前記第１のパケット処理情報に一意に関連付けられているか否かに応じて、前記送信パケットが暗号化さして前記相手装置に送信され、
前記プロトコル処理工程では、前記第２の鍵情報が前記第２のパケット処理情報に一意に関連付けられているか否かに関わらず前記受信処理が行われることを特徴とする通信装置の制御方法。
【請求項１１】
コンピュータを、請求項１から９のいずれか１項に記載の通信装置として機能させるためのプログラム。
【請求項１２】
メモリに登録されたSP（Security Policy）とSA（Security Association）を用いてIPsec通信を行うことが可能な通信装置であって、
送信パケットに含まれる情報から特定される第１のSPの識別情報と同じ識別情報を有する第１のSAを用いて前記送信パケットを暗号化して相手装置に送信する送信手段と、
前記相手装置から受信したパケットに含まれる情報から特定される第２のSAを用いて前記受信したパケットに対して復号もしくは認証処理を行う処理手段と、
前記受信したパケットに含まれる情報から特定される第２のSPの識別情報が、前記第２のSAに付与されたSPの識別情報と異なるか否かに関わらず、前記処理が行われたパケットに対して所定のプロトコルに基づいた受信処理を行うプロトコル処理手段と、
を有ることを特徴とする通信装置。
【請求項１３】
メモリに登録されたSP（Security Policy）とSA（Security Association）を用いて、IPsec通信を行うことが可能な通信装置であって、
相手装置がIETF（Internet Engineering Task Force）による技術仕様であるRFCに準拠した仕様である場合に、送信パケットに含まれる情報から特定される第１のSPの識別情報と同じ識別情報を有する第１のSAを用いて前記送信パケットを暗号化して送信する送信手段と、
前記相手装置から受信したパケットに含まれる情報から特定される第２のSAを用いて前記受信したパケットに対して復号もしくは認証処理を行う処理手段と、
前記受信したパケットに含まれる情報から特定される第２のSPの識別情報が、前記第２のSAに付与されたSPの識別情報が同じ場合に、前記処理が行われたパケットに対して所定のプロトコルに基づいた受信処理を行うプロトコル処理手段と、
を有することを特徴とする通信装置。
【請求項１４】
メモリに登録されたSP（Security Policy）とSA（Security Association）を用いてIPsec通信を行うことが可能な通信装置であって、
相手装置がIETF（Internet Engineering Task Force）による技術仕様であるRFCに準拠した仕様でない場合に、送信パケットに含まれる情報から特定される第１のSPの識別情報と同じ識別情報を有するか否かに関わらず、前記第１のSPに関連付けられた第１のSAを用いて前記送信パケットを暗号化して送信する送信手段と、
前記相手装置から受信したパケットに含まれる情報から特定される第２のSAを用いて前記受信したパケットに対して復号もしくは認証処理を行う処理手段と、
前記処理が行われたパケットに対して所定のプロトコルに基づいた受信処理を行うプロトコル処理手段と、
を有することを特徴とする通信装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、セキュリティ通信技術に関連する。具体的には、相互接続性を向上することができるIPsecによるセキュリティ通信技術に関する。
【背景技術】
【０００２】
近年、ネットワークを介してデータを送受信する際のセキュリティ確保の必要性が高まっている。IPsec（Security Architecture for Internet Protocol）は、IPネットワーク上を流れるデータのセキュリティを確保するプロトコルで、IPパケット単位でデータの機密性の確保や、データの完全性、送信元の認証を行うことが可能である。
【０００３】
IPsecによる暗号・認証機能を内蔵した通信装置は、論理的なコネクションにより暗号通信を行うことができる。この論理的なコネクションは、SA（Security Association）と呼ばれる。SAでは、鍵情報として、暗号通信で用いる暗号鍵情報や暗号化アルゴリズム、及び認証鍵や認証アルゴリズムなどの暗号化通信パラメータが管理される。また、このSAを管理・保持するデータベースは、SAD（Security Association Database）と呼ばれる。
【０００４】
IPsecを用いて暗号通信を行う通信装置は、IP（Internet Protocol）パケットを送信する場合、当該IPパケットのIPアドレスや通信プロトコル等により、SPD（Security Policy Database）から、通信を行うためのパケット処理の方法を記述したパケット処理情報であるSP（Security Policy）を特定する。通信装置は、この特定されたSPに基づいてIPsec処理に必要となるSAを特定する。続いて、通信装置は、この特定したSAを用いて暗号・認証処理を施したパケットを送信する。また、通信装置がIPパケットを受信する場合は、IPパケットのヘッダ情報により、SADからSAを特定する。通信装置は、特定したSAを用いて暗号（復号）・認証処理を行う。通信装置は、暗号（復号）・認証処理の結果得られたIPパケットのIPアドレスや通信プロトコル等により、SPDからSPを特定し、SPに指定されたポリシーに従って受信処理を行う。
【０００５】
IPsecを用いて暗号通信を行う送信側と受信側の２つ通信装置は、IPsec通信を行う前にSAを確立しておく必要がある。SAを確立する方式としては、それぞれの通信装置において手動でSAの各種情報を設定する手動鍵設定方式がある。このほか、IKE（Internet Key Exchange Protocol）の折衝を用いる自動鍵交換方式がある。
【０００６】
暗号アルゴリズムや共有鍵は、通信に先立ち交換される必要があり、また、共有鍵は、セキュリティのレベルを保つためにも、頻繁に変更する必要がある。そのため、これらの２つの方式のうち、手動鍵管理方式は、頻繁に鍵交換をするには手間が掛かり過ぎるため現実的ではないという問題点がある。それに対し、自動鍵管理方式は、頻繁に行う必要ある鍵交換を自動で行うため、手間が掛からず実用的と言える。
【０００７】
自動鍵管理方式で共通鍵を生成する場合には、相手装置の認証のためにSPDにおける各SPに、事前共有鍵を設定する必要がある。しかし、SPDにおいて、同一の相手装置のアドレスが含まれるSPが複数存在する場合、当該相手装置と正常に通信できない場合があった。例えば、SPDにおいて、相手装置のIPアドレスだけが含まれるSPと、相手装置のIPを含む複数のアドレスが含まれるSPが混在する場合がある。各SPには使用の優先順位と事前共通鍵が設定されている。このような状況において、通信装置と相手装置それぞれにおいて、送信するパケットのIPアドレスと使用の優先順位を考慮して特定したSPに設定された事前共有鍵が異なる場合がある。この場合、IKEの折衝が失敗してしまうという問題があった。
【０００８】
この問題に対して、通信装置が新規に登録するSPに含まれるIPアドレスと、SPDに既存のSPに含まれる相手装置のIPアドレスが重複する場合、既存SPに含まれる事前共有鍵をコピーし、どちらのSPが使われても同一の事前共有鍵を使用する手法が提案されている（特許文献１参照）。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開２００９−２３９６９２号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
しかし、特許文献１に記載の手法では、通信相手の実装方法によっては、通信装置は、同一の相手装置に対して複数SP設定時にIPsec通信ができない場合がある。すなわち、当該手法によれば、通信装置が相手装置に対して、複数のSPを設定した場合、SPの事前共有鍵は同一となり、それぞれのSPのIKE折衝は成功する。しかし、それぞれのSPから生成されるSAの鍵情報は、事前共有鍵に加えて乱数から生成されるため、SP毎に異なる。
【００１１】
一方で、SPとSAの関連付けがRFCに準拠している通信機器と、準拠していない通信機器がそれぞれ市場に存在する。なお、RFCは、IETF（Internet Engineering Task Force）による技術仕様である。RFCに準拠しない機器は、同一の相手装置に対して複数のSPが設定されている場合においても、セキュリティプロトコル、IPsecモード、宛先IPアドレスが一致すれば一つのSAを複数のSPで共有する。RFCに準拠する機器は、同一相手装置に対して複数のSPが設定されている場合、SP毎にSAを作成し、使用する。そのため、RFCに準拠する機器と準拠しない機器との間でIPsec通信が行われた場合、IKE折衝に成功するものの、使用するSAの違いによりIPsec通信に失敗し得るという課題があった。
【課題を解決するための手段】
【００１２】
上記課題を鑑み、本発明は、SPとSAの関連付けの方式が異なる通信装置間においてIPsec通信を可能にすることを目的とする。
【００１３】
上記目的を達成するための一手段として、本発明の通信装置は以下の構成を有する。すなわち、パケット処理情報と鍵情報を用いてIPsec通信を行うことが可能な通信装置であって、送信パケットに含まれる情報を用いて第１のパケット処理情報を検索する第１の検索手段と、前記第１のパケット処理情報に関連付けられた第１の鍵情報を用いて前記送信パケットを暗号化して相手装置に送信する送信手段と、前記相手装置から受信したパケットに含まれる情報に基づいて第２の鍵情報を検索する第２の検索手段と、前記第２の鍵情報を用いて、前記受信したパケットに対して復号もしくは認証処理を行う処理手段と、前記受信したパケットに含まれる情報を用いて第２のパケット処理情報を探索する第３の検索手段と、前記処理手段による処理が行われたパケットに対して所定のプロトコルに基づいた受信処理を行うプロトコル処理手段と、を有し、前記送信手段は、前記第１の鍵情報が前記第１のパケット処理情報に一意に関連付けられているか否かに応じて、前記送信パケットを暗号化して前記相手装置に送信し、前記プロトコル処理手段は、前記第２の鍵情報が前記第２のパケット処理情報に一意に関連付けられているか否かに関わらず前記受信処理を行うことを特徴とする。
【発明の効果】
【００１４】
本発明によれば、SPとSAの関連付けの方式が異なる通信装置間においてIPsec通信が可能となる。
【図面の簡単な説明】
【００１５】
【図１】第１及び第２実施形態における通信装置の構成を示した図。
【図２】第１実施形態における通信装置のパケット送信処理フローを示した図。
【図３】第１実施形態における通信装置のパケット受信処理フローを示した図。
【図４】第１及び第２実施形態におけるSA折衝要求処理フローを示した図。
【図５】第１及び第２実施形態におけるSP登録処理フローを示した図。
【図６】第１実施形態におけるSA登録処理フローを示した図。
【図７】第２実施形態における通信装置のパケット送信処理フローを示した図。
【図８】第２実施形態における通信装置のパケット受信処理フローを示した図。
【図９】第２実施形態におけるSA登録処理フローを示した図。
【発明を実施するための形態】
【００１６】
以下、添付の図面を参照して、本発明をその実施形態に基づいて詳細に説明する。なお、以下の実施形態において示す構成は一例に過ぎず、本発明は図示された構成に限定されるものではない。
【００１７】
［第１実施形態］
図１は、第１実施形態における通信装置１０１の構成例を示す図である。通信装置１０１は、アプリケーション処理部１０５、IKE（Internet Key Exchange Protocol）処理部１０６、ネットワークプロトコル処理部１０４、ネットワークインタフェース部１０３、IPsec処理部１０７を有する。また、IPsec処理部１０７は、IPsecプロトコル処理部１１２、暗号・認証処理部１０８、SA管理部１１０、SP管理部１０９、タイマー部１１３、SP/SA更新管理部１１１を有する。
【００１８】
通信装置１０１は、ネットワークインタフェース部１０３を介してネットワーク１０２に接続され、データパケットの送受信を行うことにより、他の通信装置と通信が可能である。ネットワークプロトコル処理部１０４は、TCP（Transmission Control Protocol）、UDP（User Datagram Protocol）、IP等のネットワークプロトコルに基づいた処理を行う。ネットワークインタフェース部１０３を介して受信したパケットはネットワークプロトコル処理部１０４でMAC、IPプロトコル処理が行われ、IPsec処理部１０７でIPsec受信処理が行われる。IPsec受信処理が行われたパケットは、アプリケーション処理部１０５でアプリケーション処理が行われる。また、受信したパケットがIKEパケットであった場合は、IKE処理部１０６でIKE処理が行われる。
【００１９】
アプリケーション処理部１０５及びIKE処理部１０６は、通信相手となる相手装置へパケットを送信する場合、ネットワークプロトコル処理部１０４に送信要求を行う。これに応じて、ネットワークプロトコル処理部１０４は、TCP、UDP、IP等のプロトコル処理を行う。IPsec処理部１０７は、プロトコル処理が行われたパケットに対してIPsec処理を行い、ネットワークインタフェース部１０３を介してIPsec処理が行われたパケットを送信する。
【００２０】
IPsecプロトコル処理部１１２は、ESP、AHといったIPsecプロトコルに基づいた処理を行う。また、IPsecプロトコル処理部１１２は、送受信パケットのポリシーを特定するために、SP管理部１０９に対してSPの検索要求を行う。また、IPsecプロトコル処理部１１２は、暗号・認証処理で必要となるSAを特定するために、SA管理部１１０に対してSAの検索要求を行う。また、IPsecプロトコル処理部１１２は、バイト数による有効期限のカウントを行い、SA管理部１１０に対して有効期限カウントの更新要求を行う。
【００２１】
暗号・認証処理部１０８は、SAの暗号アルゴリズム、暗号鍵、認証アルゴリズム、認証鍵等に基づいて暗号、復号、認証処理を行う。SP/SA更新管理部１１１は、IKE処理部からの不図示のメモリにおけるSP、SAの登録、更新、削除、参照処理を制御し、SA管理部１１０、SP管理部１０９に対して必要な要求を行う。また、パケット送信時にIPsecプロトコル処理部１１２がSA管理部１１０にSA検索要求を行った結果、所望のSAが無かった場合は、SP/SA更新管理部１１１は、IPsecプロトコル処理部１１２からSA折衝要求を受付、IKE処理部１０６に対して当該要求を通知する。また、SP/SA更新管理部１１１は、SA管理部１１０からソフト有効期限切れの通知を受けた場合も、IKE処理部１０６に対してSA折衝要求を行う。タイマー部１１３は、SA管理部１１０、SP/SA更新管理部１１１からの設定により指定された時間が経過したことをSP/SA更新管理部１１１に通知する。SA管理部１１０は、SADを保持し、要求された処理に基づいてSADに対する操作を行い、処理結果を返す。また、SP管理部１０９は、SPDを保持し、要求された処理に基づいて操作を行い、処理結果を返す。
【００２２】
なお、図１に示す各機能ブロックは、それぞれハードウェア又はソフトウェアによって構成される。ソフトウェアとして構成される場合には、各機能を実現するためのコンピュータプログラムが記憶部（不図示）に記憶され、通信装置１０１が備えるＣＰＵ（Central Processing Unit、不図示）が当該プログラムを実行することによって該機能が実現される。
【００２３】
次に、本実施形態におけるパケット送信処理について図２を参照して説明する。図２は、本実施形態における通信装置１０１のパケット送信処理フローを示した図である。ステップS２０１において、アプリケーション処理部１０５は、送信対象のデータに対してアプリケーション送信処理を行う。続いて、アプリケーション処理部１０５は、ネットワークプロトコル処理部１０４に対してデータの送信要求を行う。なお、IKE処理部１０６がIKEパケットを送信する際は、IKE処理部１０６は、ネットワークプロトコル処理部１０４に対して送信要求を行う。
【００２４】
ステップS２０２において、ネットワークプロトコル処理部１０４は、アプリケーション処理部１０５よりデータの送信要求を受け付ける。続いて、ネットワークプロトコル処理部１０４は、アプリケーション処理部１０５によりアプリケーション送信処理が施されたデータに対して、TCPまたはUDPのトランスポート層プロトコル処理およびIPプロトコル処理を行い、IPパケットを作成する。ネットワークプロトコル処理部１０４は、作成したIPパケットをIPsec処理部１０７へ通知する。
【００２５】
ステップS２０３において、IPsec処理部１０７のIPsecプロトコル処理部１１２は、ネットワークプロトコル処理部１０４からIPパケットを受け取る。IPsecプロトコル処理部１１２は、受け取ったIPパケットのIPアドレスやトランスポート層プロトコル種別、ポート番号等のパケット情報を指定したSP検索処理要求を、SP管理部１０９に対して行う。SP検索処理要求を受け付けたSP管理部１０９は、SPDに、指定されたパケット情報に対応するSPが登録されているかを検索し、検索結果をIPsecプロトコル処理部１１２に通知する。
【００２６】
ステップS２０４において、IPsecプロトコル処理部１１２は、SP管理部１０９から通知された検索結果を判定する。指定されたパケット情報に対応する（所望の）SPがあり、かつ、該SPに指定されたポリシーがIPsec適用(Apply IPsec)であった場合は（ステップS２０４のYes）、IPsecプロトコル処理部１１２は、当該SPを特定し、処理はステップS２０５へ進む。指定されたパケット情報に対応するSPがなかった場合、もしくは、指定されたパケット情報に対応するSPに指定されたポリシーがIPsec適用外であった場合は（ステップS２０４のNo）、処理はステップS２１９へ進む。
【００２７】
ステップS２１９において、IPsecプロトコル処理部１１２は、通信装置１０１における、SPが見つからなかった場合のポリシーを確認する。当該ポリシーが破棄(Discard)であれば（ステップS２１９のYes）、IPsecプロトコル処理部１１２は、パケットを破棄して処理は終了する。当該ポリシーが通過(Bypass IPsec)であった場合は（ステップS２１９のYes）、処理はステップS２１３へ進む。
【００２８】
ステップS２０５において、IPsecプロトコル処理部１１２は、SPに関連付けられたSAの情報と上述のパケット情報に対応するSAが登録されているかを検索し、検索結果をIPsecプロトコル処理部１１２に通知する。ステップS２０６において、IPsecプロトコル処理部１１２は、SA管理部１１０から通知された結果を判定する。SAの情報とパケット情報に対応する（所望の）SAが有った場合は（ステップS２０６のYes）、当該SAを特定し、処理はステップS２０７へ進む。そのようなSAが無かった場合は（ステップS２０５のNo）、処理はステップS２１７へ進む。ステップS２１７において、IPsec処理部１０７はSA要求処理を行う。ステップS２１７の処理の後、ステップS２１８において、IPsecプロトコル処理部１１２は、送信パケットを破棄して終了する。
【００２９】
ここで、図４を用いてステップS２１７のSA折衝要求処理について説明する。図４は、本実施形態におけるSA折衝要求処理フローを示した図である。IPsecプロトコル処理部１１２は、SA折衝要求をSP/SA更新管理部１１１に対して行う。SP/SA更新管理部１１１は、SA折衝要求を受け付けると、ステップS４０１において、すでにSA要求を行っているかを確認するため仮SAを検索する。なお、SP/SA更新管理部１１１は、仮SAを、SA要求を行う際に作成して保持し、SA折衝が完了した際に削除する。また、一定時間経過してもSA要求が完了しない場合は、SP/SA更新管理部１１１は、タイムアウトしたと判断して、仮SAを削除する。ステップS４０２において、仮SAと同じSAが既に登録されていた場合は（ステップS４０２のYes）、SP/SA更新管理部１１１は、SA要求がすでに行われていると判断し、SA要求を破棄して終了する。仮SAと同じSAが既に登録されていなかった場合は（ステップS４０２のNo）、処理はステップS４０３へ進む。
【００３０】
ステップS４０３において、SP/SA更新管理部１１１は、IKE処理部１０６に対してSA要求を通知する。ここで、SP/SA更新管理部１１１は、SP（ステップS２０４で特定されたSP）が持つSPの識別情報であるSP識別子を付したSA要求を通知する。SA要求を受け取ったIKE処理部１０６は、IKEプロトコルに基づいてSA折衝を相手装置と行う。具体的には、IKE処理部１０６は、IKEパケットの送受信を介して、相手装置とSA折衝を行う。ステップS４０４において、SP/SA更新管理部１１１は、SA要求をした仮SAのタイマーとなるタイマー処理要求をタイマー部１１３に対して行い処理を終了する。なお、タイマー部１１３は仮SAタイマーがタイムアウトするとSP/SA更新管理部１１１に対して通知する。通知を受けたSP/SA更新管理部１１１は、仮SAを削除する。
【００３１】
図２に戻って、パケット送信処理の説明を続ける。ステップS２０７において、IPsecプロトコル処理部１１２は、ステップS２０４で特定されたSPが持つSP識別子と、ステップS２０６で特定されたSAが持つSP識別子とが一致するか判定する。すなわち、IPsecプロトコル処理部１１２は、SPとSAとが一意に（すなわち、一対一のみに）関連付けれているか否かを判定する。両者が一致する場合は（ステップS２０７のYes）、処理はステップS２０８へ進む。両者が一致しない場合は（ステップS２０７のNo）、処理はステップS２１７へ進む。
【００３２】
ステップS２０８において、IPsecプロトコル処理部１１２は、ステップS２０４で特定されたSAに指定されたESPまたはAHのIPsecプロトコル処理を行う。ステップS２０９において、IPsecプロトコル処理部１１２は、IPsecプロトコル処理の中での暗号、認証処理を暗号・認証処理部１０８へ要求する。暗号・認証処理部１０８は、要求を受け付けると、暗号鍵、暗号アルゴリズム及び認証鍵、認証アルゴリズム等のSA情報に基づいて、暗号、認証処理を行う。ステップS２１０において、IPsecプロトコル処理部１１２は、使用したSAのバイト数による有効期限のカウント値を更新し、SA管理部１１０にカウント値の更新要求を行う。SA管理部１１０は、カウント値の更新要求を受け付けると、当該SAのバイト数カウンタを更新する。
【００３３】
ステップS２１１において、SA管理部１１０は、ソフト有効期限（SAを更新するための期限）が切れたかを確認する。ソフト有効期限が切れた場合は（ステップS２１１のYes）、処理はステップS２１５に進む。それ以外の場合（ソフト有効期限が切れていないかもしくは、すでに切れていた場合）は（ステップS２１１のNo）、処理はS２１２へ進む。ステップS２１５において、IPsec処理部１０７は、SA折衝要求処理行う。ステップS１５におけるSA要求処理はステップS２１７のSA折衝要求処理と共通の処理であるため、説明を省略する。ステップS２１２において、SA管理部１１０は、ハード有効期限（SAを無効とするための期限）が切れたかを確認する。ハード有効期限が切れた場合は（ステップS２１２のYes）、処理はステップS２１６に進む。ハード有効期限が切れていない場合は（ステップS２１２のNo）、処理はステップS２１３へ進む。
【００３４】
ステップS２１６において、IPsecプロトコル処理部１１２は、ハード有効期限が切れたことをSP/SA更新管理部１１１に対し通知する。ハード有効期限切れの通知を受けたSP/SA更新管理部１１１は、IKE処理部１０６にハード有効期限切れを通知する。また、SP/SA更新管理部１１１は、SA管理部１１０に対してハード有効期限切れのSAの削除要求を行い、SA管理部１１０はSADから当該SAを削除する。ステップS２１３において、ネットワークプロトコル処理部１０４は、パケットに対して、フラグメント処理等のIPプロトコル処理、MACヘッダ処理を行う。その後、ネットワークプロトコル処理部１０４は、ネットワークインタフェース部１０３にパケットの送信要求を行う。ステップS２１４において、ネットワークインタフェース部１０３は、ネットワークへパケットを送信して処理を終了する。
【００３５】
次に、本実施形態におけるパケット受信処理について図３を参照して説明する。図３は、本実施形態における通信装置１０１のパケット受信処理フローを示した図である。ステップS３０１において、ネットワークインタフェース部１０３は、ネットワーク１０２から受信すべきパケットを検知すると、当該パケットを受信してネットワークプロトコル処理部１０４へ通知する。ステップS３０２において、ネットワークプロトコル処理部１０４は、受信パケットのヘッダ解析を行い、MAC、IPプロトコル処理を行う。ステップS３０３において、ネットワークプロトコル処理部１０４は、受信パケットをIPsec処理部１０７へと通知する。IPsec処理部１０７のIPsecプロトコル処理部１１２は、受信パケットのヘッダ解析を行い、IPsecパケットであるか判断する。受信パケットがIPsecパケットであった場合は（ステップS３０３のYes）、処理はステップS３０４へ進む。受信パケットがIPsecパケットでなかった場合は（ステップS３０３のNo）、処理はステップS３１１へ進む。
【００３６】
ステップS３０４において、IPsecプロトコル処理部１１２は、受信したIPsecパケットのIPアドレスやIPsecプロトコル種別、IPsecヘッダ等のパケット情報を指定したSA検索処理要求を、SA管理部１１０に対して行う。SA検索処理要求を受け付けたSA管理部１１０は、SADに指定したパケット情報に対応するSAが登録されているかを検索し、検索結果をIPsecプロトコル処理部１１２に通知する。ステップS３０５において、IPsecプロトコル処理部１１２は、検索結果を判定する。パケット情報に対応する（所望の）SA見つからなかった場合（ステップS３０５のNo）、処理はステップS３２１へ進み、そのようなSAが見つかった場合は（ステップS３０５のYes）処理はステップS３０６へ進む。
【００３７】
ステップS３０６において、IPsecプロトコル処理部１１２は、検索の結果得られたSAを用いてESPまたはAHのIPsecプロトコル処理を行う。ステップS３０７において、IPsecプロトコル処理部１１２は、IPsecプロトコル処理の中で復号・認証処理を暗号・認証処理部１０８に要求する。暗号・認証処理部１０８は、要求を受け付けると、暗号鍵、暗号アルゴリズム及び認証鍵、認証アルゴリズム等のSA情報に基づいて、復号・認証処理を行う。ここで、暗号・認証処理部１０８は、要求に従って、復号処理のみを行ってもよい。ステップS３０８において、IPsecプロトコル処理部１１２は、使用したSAのバイト数による有効期限のカウント値を更新し、SA管理部１１０にカウント値の更新要求を行う。SA管理部１１０は、カウント値の更新要求を受け付けると、使用したSAのバイト数カウンタを更新する。ステップS３０９において、SA管理部１１０は、ソフト有効期限が切れたかを確認する。ソフト有効期限が切れた場合は（ステップS３０９のNo）、処理はステップS３１８へ進む。それ以外の場合（ソフト有効期限が切れていないかもしくは、すでに切れていた場合）は（ステップS３０９のYes）、処理はステップS３１０へ進む。
【００３８】
ステップS３１８において、IPsec処理部１０７は、SA折衝要求処理を行う。ステップS３１８におけるSA折衝要求処理は、ステップS２１７のSA折衝要求処理と共通の処理であるため、説明を省略する。ステップS３１０において、SA管理部１１０は、ハード有効期限が切れたかを確認する。ハード有効期限が切れた場合は（ステップS３１０のYes）ステップS３１９へ進む。ハード有効期限が切れていない場合は（ステップS３１０のNo）、処理はステップS３１１へ進む。
【００３９】
ステップS３１９において、IPsecプロトコル処理部１１２は、ハード有効期限が切れたことをSP/SA更新管理部１１１に対して通知する。ハード有効期限切れの通知を受けたSP/SA更新管理部１１１は、IKE処理部１０６にハード有効期限切れを通知する。また、SP/SA更新管理部１１１は、SA管理部１１０に対してハード有効期限切れのSAの削除要求を行い、SA管理部１１０はSADから当該SAを削除する。ステップS３１１において、IPsecプロトコル処理部１１２は、受信したIPパケットのIPアドレスやトランスポート層プロトコル種別、ポート番号等のパケット情報を指定したSP検索要求を、SP管理部１０９に対して行う。SP検索処理要求を受け付けたSP管理部１０９は、SPDに、指定されたパケット情報に対応する（所望の）SPが登録されているかを検索し、検索結果をIPsecプロトコル処理部１１２に通知する。
【００４０】
ステップS３１２において、IPsecプロトコル処理部１１２は、SP管理部１０９から通知された検索結果を判定する。パケット情報に対応するSPがあり、かつ、当該SPに指定されたポリシーがIPsec適用であった場合は（ステップS３１２のYes）、処理はステップS３１３へ進む。パケット情報に対応するSPが無かった場合もしくは、パケット情報に対応するSPに指定されたポリシーがIPsec適用以外であった場合は（ステップS３１２のNo）、処理はステップS３１８へ進む。
【００４１】
ステップS３１８において、IPsecプロトコル処理部１１２は、通信装置における、SPが見つからなかった場合のポリシーを確認する。当該ポリシーが破棄（Discard）であれば（ステップS３１８のYes）、処理はステップS３１９へ進み、IPsecプロトコル処理部１１２は、パケットを破棄して処理は終了する。当該ポリシーが通過(BypassIPsec)であった場合は（ステップS３１８のNo）、処理はステップS３１４へ進む。
【００４２】
ステップS３１３において、IPsecプロトコル処理部１１２は、ステップS３０４の探索の結果得られたSAで示されるIPSecのポリシー（トンネルモードかトランスポートモードか、および、セキュリティプロトコルがAHであるかESPであるか）が、ステップS３１１の探索の結果得られたSPで示されるIPSecのポリシーと一致するかを確認する。両ポリシーが一致しない場合（ステップS３１３のNo）、処理はステップS３１９へ進み、IPsecプロトコル処理部１１２は、パケットを破棄して終了する。両ポリシーが一致する場合（ステップS３１３のYes）、処理はステップS３１４へ進む。ステップS３１４において、IPsecプロトコル処理部１１２は、IPsec処理が完了したIPパケットのヘッダ解析を行い、IPプロトコル処理を行う。その後、IPsecプロトコル処理部１１２は、IP上位プロトコルヘッダを解析してTCPやUDPといったトランスポート層プロトコル処理を行う。IPsecプロトコル処理部１１２は、トランスポート層プロトコル処理を終えたパケットデータを、アプリケーション処理部１０５へ通知する。
【００４３】
ステップS３１５において、アプリケーション処理部１０５は、受信したデータに対してアプリケーション受信処理を行う。なお、受信したパケットがIKEパケットであった場合、ネットワークプロトコル処理部１０４はIKE処理部１０６へと通知を行い、IKE処理部１０６はIKEプロトコル処理を行う。
【００４４】
このように、本実施形態におけるパケット送信処理では、SPとSAとが一意に関連付けられている場合に送信処理が実施されるのに対し、パケット受信処理では、SPとSAとが一意に関連付けられていない場合であっても受信処理が実施される。
【００４５】
次に、SP登録処理とSA登録処理について、図５と図６を参照して説明する。図５は、本実施形態におけるSP登録処理フローを示した図である。ステップS５０１において、SP/SA更新管理部１１１は、SP管理部１０９に対して登録しようとするSPのセレクタ（IPアドレスやプロトコル等）と同一セレクタを有するSPが既にSPDに存在しないか検索するための要求を行う。SP管理部１０９は、SPDにセレクタが一致するSPが登録されているかを検索し、検索結果をSP/SA更新管理部１１１に通知する。ステップS５０２において、SP/SA更新管理部１１１は、SP管理部１０９から通知された結果を判定する。セレクタが同一のSPがSPDに存在している場合は（S５０２のYes）、処理は終了する。セレクタが同一のSPDが存在しない場合は（S５０２のNo）、処理はステップS５０３へ進む。
【００４６】
ステップS５０３において、SP/SA更新管理部１１１は、新規追加するSPに対してSPD内で一意となるSP識別子を付与する。ステップS５０４において、SP/SA更新管理部１１１はSP管理部１０９に対して新規SPの追加要求を行う。SP管理部１０９は、新規SP追加要求を受け付けるとSPDに新規SPを登録して処理を終了する。
【００４７】
図６は、本実施形態におけるSA登録処理フローを示した図である。ステップS６０１において、IKE処理部１０６は、新規に登録するSAに対してSA要求時にSP/SA更新管理部１１１から通知されたSP識別子（図４のステップS４０３）を付与する。ステップS６０２において、SP/SA更新管理部１１１は、登録を行うSAに対応する仮SAがあるかを検索する。登録を行うSAに対応する仮SAがあった場合は、当該仮SAのタイマーを停止する要求をタイマー部１１３に対して行う。その後、SP/SA更新管理部１１１は、該当仮SAを削除する。登録を行うSAに対応する仮SAがなかった場合は、SP/SA更新管理部１１１は、特段の処理を行わない。ステップS６０３において、SP/SA更新管理部１１１は、SA管理部１１０に対して新規SAの追加要求を行う。SA管理部１１０は、新規SA追加要求を受け付けるとSADに新規SAを登録して処理を終了する。
【００４８】
本実施形態によれば、通信装置が、同一の相手装置に対して複数のSPを設定して通信を行う際に、送信時は、SPDを検索してヒットしたSPから生成されたSAのみを使用して送信する。一方で、通信装置は、受信時は、SPから生成されたSAのみを使用するか否かを選択できる。これにより、相手装置に対して複数のSPが設定された場合であっても、通信装置は、SPとSAの関連付け方式が異なる相手装置と、ユーザによる特別な設定を必要とせずに、IPsec通信を行うことが可能となる。
【００４９】
［第２実施形態］
第１実施形態では、複数のSPの設定時に、相手装置におけるSPとSAの関連付け方式の差異に関わらずIPsec通信可能となる方法を示した。以下に示す第２実施形態では、IKEのベンダIDペイロードによって相手装置毎にSPとSAの関連付けを変更する手法である。本実施形態における通信装置１０１の構成（図１）、SA折衝要求処理（図４）、SP登録処理フロー（図５）は、それぞれ第１実施形態において説明したものと共通するため、説明を省略する。
【００５０】
本実施形態におけるパケット送信処理について図７を参照して説明する。図７は、本実施形態における通信装置１０１のパケット送信処理フローを示した図である。ステップS７０１からS７０６、S７０８からS７２０の処理は、図２におけるステップS２０１からステップS２１９までの処理と共通であるため、説明を省略し、ステップS７０７の処理について説明する。
【００５１】
ステップS７０７において、IPsecプロトコル処理部１１２は、該当するSAにSP識別子が付与されているか判定する。SAにSP識別子が付与されていない場合は（ステップS７０７のNo）処理はステップS７０９に進み、IPsecプロトコル処理部１１２は、IPsecプロトコル処理を行う。SAにSP識別子が付与されている場合は（ステップS７０７のYes）、処理はステップS７０８に進み、IPsecプロトコル処理部１１２は、SPとSAのSP識別子判定を行う。
【００５２】
次に、本実施形態におけるパケット受信処理について図８を参照して説明する。図８は、本実施形態における通信装置１０１のパケット受信処理フローを示した図である。ステップS８０１からS８１２、S８１４からS８２１の処理は、図３におけるステップS３０１からS３１２、S３１４からS３２１までの処理と共通であるため、説明を省略し、ステップS８１３の処理について説明する。
【００５３】
ステップS８１３において、IPsecプロトコル処理部１１２は、SAにSP識別子が付与されているか判定する。SAにSP識別子が付与されていない場合は（ステップS８１３のNo）、処理はステップS８１５に進み、IPsecプロトコル処理部１１２は、SAマッチング処理を行う。SAにSP識別子が付与されている場合は（ステップS８１３のYes）、処理はステップS８１４に進み、IPsecプロトコル処理部１１２は、SPとSAのSP識別子判定を行う。
【００５４】
図９は、本実施形態におけるSA登録処理を示した図である。ステップS９０７およびステップS９０８の処理は、図６におけるステップS６０２およびステップS６０３と共通であるため、説明を省略する。
【００５５】
ステップS９０１において、IKE処理部１０６は、SA折衝時に通信相手から受信したIKEパケット中にベンダIDペイロードが１つのみ付与されているか判定する。なお、ベンダIDペイロードには、一意となるベンダIDの値が含まれている。受信したIKEパケット中にベンダIDペイロードが１つも付与されていない場合（ステップS９０１のNo）、処理はステップS９０６に進む。また、受信したIKEパケット中にベンダIDペイロードが２つ以上付与されている場合も、IKE処理部１０６はどのベンダIDの値を判定すべきかがわからないため、処理はステップS９０６に進む。一方、受信したIKEパケット中にベンダIDペイロードが１のみ付与されている場合は（ステップS９０１のYes）、処理はステップS９０２に進む。
【００５６】
ステップS９０２において、IKE処理部１０６は、ベンダIDペイロードからSPとSAの関連付け方式を判定可能か判定する。具体的には、IKE処理部１０６は、ベンダIDペイロードに含まれるベンダIDの値を用いて、SPとSAの関連付け方式が所定の仕様に準拠した方式か否かを判定可能か、を判定する。なお、本実施形態では、当該所定の仕様とは、IETF（Internet Engineering Task Force）による技術仕様であるRFCとする。IKE処理部１０６は、ベンダIDの値とRFCへの準拠／非準拠との対応を示すリストを保持しており、ベンダIDペイロードで示されるベンダIDの値が当該リストに存在するか否かを判定する。ベンダIDペイロードで示されるベンダIDの値が当該リストに存在しない場合は、IKE処理部１０６は、SPとSAの関連付け方式を判定不可能であり、（ステップS９０２のNo）、処理はステップS９０６に進む。ベンダIDペイロードで示されるベンダIDの値が当該リストに存在する場合は、IKE処理部１０６は、SPとSAの関連付け方式を判定可能であり、（ステップS９０２のYes）、処理はステップS９０３へ進む。
【００５７】
ステップS９０６において、IKE処理部１０６は、新規に登録する送信用SAに対して、SA要求時にSP/SA更新管理部１１１から通知されたSP識別子を付与する。しかし、IKE処理部１０６は、新規に登録する受信用SAにはSPの識別子を付与しない。ステップS９０３において、IKE処理部１０６は、上述のリストにおいてベンダIDペイロードで示されるベンダIDの値を参照し、SPとSAの関連付け方式がRFCに準拠した方式か否かを判定する。RFCに準拠したSPとSAの関連付け方式の場合は（ステップS９０３のYes）、ステップS９０４に進む。RFCに準拠しない関連方式の場合は（ステップS９０３のNo）、ステップS９０５に進む。
【００５８】
ステップS９０４において、IKE処理部１０６は、新規に登録する送信用SA及び受信用SA対してSA要求時にSP/SA更新管理部１１１から通知されたSP識別子を付与する。ステップS９０５において、IKE処理部１０６は、新規に登録する送信用SA及び受信用SAに対してSPの識別子を付与しない。これらの所定により、SPとSAの関連付けの方式がRFCに準拠した方式である場合には、SAに当該SAに関連付けられたSPの識別子が付与され、SPとSAの関連付けの方式がRFCに準拠した方式でない場合には、SAに当該SAに関連付けられたSPの識別子が付与されないこととなる。
【００５９】
本実施形態によれば、相手装置におけるSPとSAの対応付け方式がRFC準拠かRFC非準拠かに応じて、通信装置１０１のSPとSA対応付け方式を切り替えることが可能となる。これにより、第１実施形態に示した効果に加えて、RFC非準拠の相手装置に対して複数のSPを設定して通信行う際に、通信装置は、必要最小限のSAのみを折衝すればよく、通信に使われないSAの登録によるリソース消費を抑制することができる。
【００６０】
以上、本発明の実施形態について説明した。本発明は、SPとSAを用いるIPSec通信を例として説明したが、SPに替えて、通信を行うための他のパケット処理の方法を記述したパケット処理情報、SAに替えて、他の鍵情報を用いることも可能である。すなわち、そのような通信を行うための他のパケット処理の方法を記述したパケット処理情報と他の鍵情報を用いた通信にたいしても、本実施形態を適用可能である。
【００６１】
［その他の実施形態］
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【００６２】
１０１  通信装置、１０２  ネットワーク、１０３  ネットワークインタフェース部、１０４  ネットワークプロトコル処理部、１０５  アプリケーション処理部１０５、１０６IKE処理部、１０７  IPsec処理部、１０８  暗号・認証部、１０９  SP管理部、１１０  SA管理部、１１１  SP/SA更新管理部、１１２  IPsecプロトコル処理部、１１３  タイマ部
【図１】
2017188800.tif 000003
【図２】
2017188800.tif 000004
【図３】
2017188800.tif 000005
【図４】
2017188800.tif 000006
【図５】
2017188800.tif 000007
【図６】
2017188800.tif 000008
【図７】
2017188800.tif 000009
【図８】
2017188800.tif 000010
【図９】
2017188800.tif 000011