(57)【要約】      （修正有）【課題】ＮＡＴ（ネットワークアドレス変換）とＩＰｓｅｃの両方のプロトコルが利用される暗号化通信において、両方のプロトコルを利用した場合、すなわち、通信経路でＮＡＴが用いられていても、ＩＰｓｅｃを用いた暗号化通信を可能とする。【解決手段】ＮＡＴにおいて書換えが行われてもよいように、書き換えられるＩＰヘッダフィールドの値を記述する拡張ヘッダを作成し、ＩＰパケットにＩＰヘッダの情報を記述した拡張ヘッダを挿入することによって、ＮＡＴにおいて書換えが行われても、送信側の情報が受信側で受信することができる。【選択図】図１
2007005989.tif 000002
【特許請求の範囲】
【請求項１】
ネットワーク上を流れるデータのセキュリティを確保するプロトコルであるIPsecを利用した暗号化通信方式において、IPパケットの作成、及びネットワーク内外へ送信を行う送信手段と、ネットワーク内外から送信されてきたIPパケットの受信を行う受信手段と、送信時及び受信時のIPパケットに対して、セキュリティ処理を適用するかどうかについての情報が登録されているセキュリティポリシーデータベース(SPD)を管理するセキュリティポリシー(SP)管理手段と、送信時及び受信時のIPパケットに対して行うIPsec処理に関する情報が格納されているセキュリティアソシエーションデータベース(SAD)を管理するセキュリティアソシエーション(SA)管理手段と、送信時及び受信時のIPパケットがSPDに格納されているSPの情報と一致しているかどうかチェックし、SADに格納されているSAの情報によりIPsec処理を行うIPsec処理手段とを有し、送信時にNAT（ネットワークアドレス変換）において書換え（IPアドレス等）が行われても良いように、書き換えられるIPヘッダフィールドの値を記述する拡張ヘッダを作成する拡張ヘッダ作成手段と、拡張ヘッダ作成手段により作成された拡張ヘッダをIPパケットに組み込む拡張ヘッダ挿入手段と、受信時のIPパケットに拡張ヘッダが挿入されているかどうかを判別する拡張ヘッダ判別手段と、拡張ヘッダに記述されているデータにより、IPヘッダフィールドを書き換えるIPヘッダ書換え手段と、書換えられる前のIPヘッダフィールドの値を保持するデータ格納手段を持つことを特徴とする暗号化通信方式。
【請求項２】
請求項１の暗号化通信方式において、拡張ヘッダ作成手段で作成される送信側の情報（IPアドレス等）を、IPパケットの拡張ヘッダを利用して送信することで、通信経路にNATが存在しても、IPsec処理されたIPパケットを通信相手側が受信することができることを特徴とする暗号化通信方式。
【請求項３】
請求項１の暗号化通信方式において、拡張ヘッダをSP管理手段とSA管理手段に格納されている情報により暗号化することを特徴とする暗号化通信方式。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、インターネットやイントラネット等のネットワークを介したデータ送受信のセキュリティに関する。より詳細には、NATとIPsecの両方が利用されている場合における暗号化通信方式に関する。
【背景技術】
【０００２】
近年、ネットワーク上におけるセキュリティについて必要性が高まってきており、特に、暗号化通信によるセキュリティの必要性が高まってきている。
【０００３】
現在、セキュリティプロトコルとして幾つかのプロトコルが存在しているが、その中でIPsec(IP Security Protocol)は、通信データを暗号化する仕組み、通信相手を認証する仕組みをIPレベルで実現しているため、上位のプロトコルに依存することなく利用でき、また、VPN(Virtual Private Network)を実現するための方法としても利用され、非常に注目されている。IPsecは、RFC2401〜2412等で規定されている（RFC : Request For Comments）。
【０００４】
図10はIPsecを利用した通信において、従来技術の手動鍵管理方式を用いた場合の構成を簡単に示したブロック図である。
【０００５】
送信手段1001は、ネットワーク内外へ送信するIPパケットのデータを組み立て、そして送信する手段である。受信手段1002は、ネットワーク内外から送信されてくるIPパケットのデータを受信する手段である。SP管理手段1003は、実際にIPsecによるセキュリティ処理を適用するかどうかについての情報が登録されているSPDを管理する手段である。SA管理手段1004は、IPパケットに対して行うIPsec処理に関する情報が格納されているSADを管理する手段である。IPsec処理手段1005は、IPパケットデータに対して、SP管理手段1003に管理されているSPDと SA管理手段1004に管理されているSADの情報を元にIPsec処理を行う手段である。SA入力手段1006は、SA管理手段1004に管理されているSAを、手動で入力された暗号アルゴリズムや共有鍵等の情報により更新を行うための手段である。
【０００６】
また、IPアドレスの不足問題を緩和するために、IPアドレス空間をグローバルアドレスではなく、部分的にプライベートアドレスを利用するNATという方法が存在し、RFC1631等で規定されている。IPアドレスにプライベートアドレスを割り当てると、組織内のホストは、インターネットのホストと直接通信できないが、NATは直接の通信を可能とする。例えばNATは、外向きのパケットの送信元アドレスに関し、組織内の複数のプライベートアドレスを組織に割り当てられたグローバルアドレスに対応付けることができる。そのため、組織内のホストからはプライベートアドレスでIPパケットが生成されるが、NATで処理されることで、IPパケットのプライベートアドレスが、NATに割り当てされているグローバルアドレスに変換され、インターネットの送信先にIPパケットが送信され、通信できるようになる。
【０００７】
又、従来例としては、例えば特許文献１をあげることが出来る。
【特許文献１】特開2004-96178号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかしながら、IPsecとNATの両方のプロトコルを利用した場合、NATがIPヘッダを変換してしまうために、受信側のIPsec処理においてIPパケットを破棄してしまい、通信できなるという問題がある。例えば、送信側においてIPパケットの安全性を保護するAH（認証ヘッダ）を処理した後、NATによってIPヘッダを変換した場合、受信側は受信したIPパケットが書き換えられているため、IPパケットが改竄されていると認識してしまうので、IPパケットを破棄してしまい、通信ができなくなる。
【課題を解決するための手段】
【０００９】
本発明は、ネットワーク上を流れるデータのセキュリティを確保するプロトコルであるIPsecを利用した暗号化通信方式において、IPパケットの作成、及びネットワーク内外へ送信を行う送信手段と、ネットワーク内外から送信されてきたIPパケットの受信を行う受信手段と、送信時及び受信時のIPパケットに対して、セキュリティ処理を適用するかどうかについての情報が登録されているセキュリティポリシーデータベース(SPD)を管理するセキュリティポリシー(SP)管理手段と、送信時及び受信時のIPパケットに対して行うIPsec処理に関する情報が格納されているセキュリティアソシエーションデータベース(SAD)を管理するセキュリティアソシエーション(SA)管理手段と、送信時及び受信時のIPパケットがSPDに格納されているSPの情報と一致しているかどうかチェックし、SADに格納されているSAの情報によりIPsec処理を行うIPsec処理手段とを有し、送信時にNAT（ネットワークアドレス変換）において書換え（IPアドレス等）が行われても良いように、書き換えられるIPヘッダフィールドの値を記述する拡張ヘッダを作成する拡張ヘッダ作成手段と、拡張ヘッダ作成手段により作成された拡張ヘッダをIPパケットに組み込む拡張ヘッダ挿入手段と、受信時のIPパケットに拡張ヘッダが挿入されているかどうかを判別する拡張ヘッダ判別手段と、拡張ヘッダに記述されているデータにより、IPヘッダフィールドを書き換えるIPヘッダ書換え手段と、書換えられる前のIPヘッダフィールドの値を保持するデータ格納手段を設けた暗号化通信方式である。
【００１０】
また、上記暗号化通信方式において、拡張ヘッダ作成手段で作成される送信側の情報（IPアドレス等）を、IPパケットの拡張ヘッダを利用して送信することで、通信経路にNATが存在しても、IPsec処理されたIPパケットを通信相手側が受信することができることを設けた暗号化通信方式である。
【００１１】
また、上記暗号化通信方式において、拡張ヘッダをSP管理手段とSA管理手段に格納されている情報により暗号化することを暗号化することを設けた暗号化通信方式である。
【発明の効果】
【００１２】
以上述べたように、本発明の暗号化通信方式を用いることにより、送信側と受信側の間にNATが用いられてIPヘッダの書換えが行われても、IPパケットデータに拡張ヘッダを挿入することで、IPsecを利用した暗号化通信方式が実現できる。
【発明を実施するための最良の形態】
【００１３】
以下、本発明の実施の形態について図面に基づき説明する。
【００１４】
図１は、本実施の形態の係る暗号化通信方式の構成を示すブロック図である。
【００１５】
同図において、暗号化通信方式は、送信手段101、受信手段102、セキュリティポリシー（SP）管理手段103、セキュリティアソシエーション（SA）管理手段104、IPsec処理手段105、拡張ヘッダ作成手段106、拡張ヘッダ挿入手段107、拡張ヘッダ判別手段108、IPヘッダ書換え手段109、データ格納手段110を有している。
【００１６】
まず初めに、本発明を表しているブロック図である図１を基に、簡単に各手段の説明をする。
【００１７】
送信手段101は、ネットワーク内外へ送信するIPパケットのデータを組み立て、そして送信する手段である。受信手段102は、ネットワーク内外から送信されてくるIPパケットのデータを受信する手段である。SP管理手段103は、実際にIPsecによるセキュリティ処理を適用するかどうかについての情報が登録されているSPDを管理する手段である。SA管理手段104は、IPパケットに対して行うIPsec処理に関する情報が格納されているSADを管理する手段である。IPsec処理手段105は、IPパケットデータに対して、SP管理手段103に管理されているSPDとSA管理手段104に管理されているSADの情報を元にIPsec処理を行う手段である。拡張ヘッダ作成手段106は、NATにおいてIPヘッダの書換えが行われても、送信先においてNATに書き換えられる前のIPヘッダを生成できるように、送信時に書き換えられるIPヘッダフィールドの値を用いて拡張ヘッダを作成する手段である。また、作成された拡張ヘッダは、暗号化するか、暗号化しないかを選択することがでる。暗号化する場合は、SP管理手段103とSA管理手段104に管理されている情報により暗号化することが可能となる。拡張ヘッダ挿入手段107は、拡張ヘッダ作成手段106において作成された拡張ヘッダをIPパケットに組み込むための手段である。拡張ヘッダ判別手段108は、受信時に送信されてきたIPパケットに拡張ヘッダが挿入されているかどうか判別するための手段である。IPヘッダ書換え手段109は、受信したIPパケットの拡張ヘッダの情報をもとに、IPヘッダのフィールドを書き換える手段である。データ格納手段110は、受信したIPパケットのIPヘッダにおいて、IPヘッダ書換え手段109で書き換えられる前のIPヘッダフィールドの値を保持する手段である。
【００１８】
又、本発明である暗号化通信方式において用いられるIPパケットデータは、インターネット上で送受信されるデータの単位である。本発明では、発明の本質ではないので、このIPパケットデータの組み立て方法については省力してある。
【００１９】
本発明の暗号化通信方式で用いられる拡張ヘッダは、NATによって書き換えが行われるIPヘッダの情報が記述される。そのため、NATが送信側と受信側の間に入っていても、受信側はNATに書き換えられる前の送信側の情報を知ることができるため、受信側においてIPsec処理をすることが可能となる。また、拡張ヘッダは暗号化を行うことも可能なので、拡張ヘッダのセキュリティも守ることができる。暗号化は、拡張ヘッダ専用の暗号アルゴリズムと暗号鍵を利用し、暗号アルゴリズムと暗号鍵は、SP管理手段103に管理されているSPDとSA管理手段104に管理されているSADに登録されている。暗号化の方法は、IPsecのESP（暗号ペイロード）と同じ方法で行われる。
【００２０】
図2は、IPパケットデータに挿入される拡張ヘッダのフォーマットの概略図である。次ヘッダ番号フィールドには、拡張ヘッダの次にあるヘッダの番号が記述される。NATの書換え専用のポート番号には、NATがポート番号の書換えを行うための領域である。拡張ヘッダのサイズは、拡張ヘッダ全体のサイズがバイト数で記述される。拡張ヘッダの暗号化の種類をあらわすフィールドには、拡張ヘッダ専用の暗号を利用して暗号が行われるか、又は拡張ヘッダに対して暗号化を行わないかのフラグが記述される。暗号化が行われる場合は、SPI（セキュリティ・パラメータ・インデックス）フィールド、送信元アドレス、送信元ポート番号、拡張ヘッダで利用する暗号アルゴリズム、共有鍵の長さ、共有鍵が暗号化される。SPIフィールドには、SADに登録されているSAを識別するための値が記述される。送信元アドレスには、送信元のアドレスが記述され、送信元ポート番号には、送信元のポート番号が記述される。拡張ヘッダで利用する暗号アルゴリズム、拡張ヘッダで利用する暗号用の共有鍵の長さ、拡張ヘッダで利用する暗号用の共有鍵は、送信側において拡張ヘッダを暗号化する場合に用いられる暗号アルゴリズムと共有鍵を変更するときに、受信側に知らせるために利用される。
【００２１】
次に、暗号化通信方式の送信処理の流れについて、図１に基づき説明する。
【００２２】
送信手段101は、上位プロトコルからの情報によりIPパケットデータを組み立て、ネットワーク内外に送信するもので、拡張ヘッダ作成手段106に接続され、IPパケットデータをこの拡張ヘッダ作成手段106に受け渡す。拡張ヘッダ作成手段106は、図2で示したフォーマットで拡張ヘッダを作成し、拡張ヘッダ挿入手段107にIPパケットデータと作成した拡張ヘッダを受け渡す。このとき、SP管理手段103に管理されているSPDに拡張ヘッダを暗号化するように登録されている場合は、SA管理手段104に管理されているSADに登録されている情報を元に暗号化が行われる。拡張ヘッダ挿入手段107は、IPヘッダのヘッダ番号を、拡張ヘッダを指す番号に変更し、IPパケットデータに拡張ヘッダを挿入する。そして、IPsec処理手段105に接続され、拡張ヘッダを挿入したIPパケットデータをこのIPsec処理手段105に受け渡す。IPsec処理手段105は、受け取ったIPパケットデータの始点IPアドレス、終点IPアドレス、上位層プロトコル、ポート番号等をキーとして、SP管理手段103により管理されているSPDからSPを検索する。検索されたSPが「破棄（discard）」であった場合は、そのIPパケットを破棄する。また、「IPsecを適用しない（bypass IPsec）」であった場合には、IPsec処理を適用せずに送信手段101へIPパケットデータを受け渡す。そして、「IPsecを適用（apply IPsec）」の場合には、IPsec処理を行う。
【００２３】
IPsec処理を行う場合、SA管理手段104により管理されているSADから該当するSAの情報を検索し、SAの情報に基づき、ESPならば暗号化、AHならば認証を行う。そして、IPsecの処理がなされたIPパケットデータを送信処理101へ受け渡す。送信処理101は、受け取ったIPパケットデータの情報を上位プロトコルに受け渡す。
【００２４】
次に、暗号化通信方式の受信処理の流れについて、図１に基づき説明する。
【００２５】
受信手段102は、ネットワーク内外から送信されてきたIPパケットデータを受信するもので、拡張ヘッダ判別手段108に接続され、IPパケットデータをこの拡張ヘッダ判別手段108に受け渡す。拡張ヘッダ判別手段108は、受け取ったIPパケットデータに拡張ヘッダが挿入されているどうかをチェックする。拡張ヘッダが挿入されていない場合は、IPパケットデータをIPsec処理手段105へ受け渡す。拡張ヘッダが挿入されていた場合は、まず拡張ヘッダが暗号化されているかどうかを、拡張ヘッダの「拡張ヘッダの暗号化の種類フィールド」をチェックする。暗号化されていない場合は、IPパケットデータをIPヘッダ書換え手段109に受け渡す。暗号化されている場合は、SP管理手段103に管理されているSPDとSA管理手段104に管理されているSADに登録されている情報を元に復号化を行う。そして、IPパケットデータをIPヘッダ書換え手段109に受け渡す。IPヘッダ書換え手段109は、まず初めにIPヘッダの情報を取得し、データ格納手段110にその情報を受け渡す。次に、IPパケットデータの拡張ヘッダから情報を取得し、IPヘッダを書き換える。そして、IPパケットデータから拡張ヘッダを削除し、IPパケットデータをIPsec処理手段105に受け渡す。データ格納手段110は、IPヘッダ書換え手段109から受け取ったIPヘッダのデータを格納し、IPsec処理手段105にデータを受け渡す。IPsec処理手段105は、受け取ったIPパケットデータに対して、SP管理手段103に管理されているSPDとSA管理手段104に管理されているSADに登録されている情報とデータ格納手段110の情報によりIPsecの処理を実行する。そして、IPsecの処理がなされたIPパケットデータを受信処理102へ受け渡す。受信処理102は、受け取ったIPパケットデータの情報を上位プロトコルに受け渡す。
【００２６】
次に、IPsec処理手段105において処理されている送信処理動作の流れを、図3のフローチャートに基づき説明する。
【００２７】
最初に、送信のIPパケットデータを受け取ると、まず、ステップ301でIPパケットデータの情報をもとにSPDからSPを検索する。検索したSPが「discard」場合は、IPパケットを破棄し、処理を終了する。「bypass」の場合は、処理をなにもしないで終了する。「apply」の場合は、ステップ304に進む。ステップ304では、SADからSAを検索し、ステップ305へ進む。ステップ305では、SAが存在したかどうか判定する。SAが存在しない場合は、ステップ302へ進み、IPパケットを破棄し、処理を終了する。SAが存在した場合は、ステップ306へ進む。ステップ306では、SAの内容に応じてIPsec処理を実行し、処理を終了する。
【００２８】
次に、IPsec処理手段105において処理されている受信処理動作の流れを、図４のフローチャートに基づき説明する。
【００２９】
最初に、受信したIPパケットデータを受け取ると、まず、ステップ401でIPsecパケットかどうか判定する。IPsecパケットではない場合は、ステップ402へ進み、IPパケットデータの情報をもとにSPDからSPを検索する。検索したSPが「discard」、「apply」の場合、ステップ403へ進み、IPパケットを破棄し、処理を終了する。SPが「bypass」の場合は、ステップ404へ進み、IPsec処理をしないで処理を終了する。IPsecパケットの場合は、ステップ405へ進み、SADからSAを検索し、ステップ406へ進む。ステップ406では、SAが存在したかどうか判定する。SAが存在しない場合は、ステップ403へ進み、IPパケットを破棄し、処理を終了する。SAが存在した場合は、ステップ407へ進み、IPsec処理を実行し、ステップ408へ進む。ステップ408では、IPパケットデータの情報をもとにSPDからSPを検索する。検索したSPが「discard」、「bypass」の場合、ステップ403へ進み、IPパケットを破棄し、処理を終了する。SPが「apply」の場合は、そのまま処理を終了する。
【００３０】
次に、拡張ヘッダ作成手段106において処理されている動作の流れを、図５のフローチャートに基づき説明する。
【００３１】
最初に、ステップ501で送信するIPパケットデータを受け取り、ステップ502へ進む。ステップ502では、受け取ったIPパケットデータの情報をもとに拡張ヘッダを作成する。拡張ヘッダを作成後は、ステップ503に進み、拡張ヘッダを暗号化するかどうかを、SP管理手段103とSA管理手段104からの情報をもとに決定する。拡張ヘッダを暗号化しない場合は、ステップ505へ進み、拡張ヘッダ挿入手段へデータを送る。拡張ヘッダを暗号化する場合は、ステップ504へ進み、SAの情報をもとに暗号化を実行する。そして、ステップ505へ進み、拡張ヘッダ挿入手段にIPパケットデータと拡張ヘッダのデータを送り、処理を終了する。
【００３２】
次に、拡張ヘッダ挿入手段107において処理されている動作の流れを、図６のフローチャートに基づき説明する。
【００３３】
最初に、ステップ601でIPパケットデータと拡張ヘッダのデータを受け取り、ステップ602へ進む。ステップ602では、受け取ったIPパケットデータのIPヘッダに記述されている次ヘッダ番号やIPパケットデータのサイズ等を変更し、拡張ヘッダを挿入する。そして、ステップ603に進み、拡張ヘッダの挿入されたIPパケットデータをIPsec処理手段に送り、処理を終了する。
【００３４】
次に、拡張ヘッダ判別手段108において処理されている動作の流れを、図７のフローチャートに基づき説明する。
【００３５】
最初に、ステップ701で受信したIPパケットデータを受け取り、ステップ702へ進む。ステップ702では、受け取ったIPパケットデータに拡張ヘッダが挿入されているかどうかを判定する。拡張ヘッダが挿入されていない場合は、ステップ704へ進み、IPパケットデータをIPsec処理手段に送り、処理を終了する。拡張ヘッダが挿入されている場合は、ステップ703へ進む。ステップ703では、拡張ヘッダが暗号化されているかどうかが判定される。拡張ヘッダが暗号化されていない場合は、ステップ706へ進む。拡張ヘッダが暗号化されている場合は、ステップ705へ進む。ステップ705では、SP管理手段とSA管理手段に管理されている情報（暗号アルゴリズムと共有鍵）により、拡張ヘッダの復号化を実行する。そしてステップ706では、IPヘッダ書換え手段109にIPパケットデータを送り、処理を終了する。
【００３６】
次に、IPヘッダ書換え手段109において処理されている動作の流れを、図８のフローチャートに基づき説明する。
【００３７】
最初に、ステップ801でIPパケットデータを受け取り、ステップ802へ進む。ステップ802では、拡張ヘッダの情報により書換えが行われるIPヘッダのフィールドのデータを取得し、データ格納手段に取得したデータを送る。ステップ803では、拡張ヘッダの情報により、IPヘッダのフィールドの変更が実行され、ステップ804へ進む。ステップ804では、IPパケットデータから拡張ヘッダを削除する。そしてステップ805へ進み、IPパケットデータをIPsec処理手段105へ送り、処理を終了する。
【００３８】
次に、データ格納手段110において処理されている動作の流れを、図９のフローチャートに基づき説明する。
【００３９】
最初に、ステップ 901でIPヘッダ書換え手段109から送られたIPヘッダのデータを取得し、このデータを格納する。そしてステップ902では、格納したデータをIPsec処理手段105へ送り、処理を終了する。
【図面の簡単な説明】
【００４０】
【図１】本発明における実施の形態に係る暗号化通信方式の構成を示すブロック図である。
【図２】本発明の暗号化通信方式で利用する拡張ヘッダのフォーマットの概略図である。
【図３】本発明におけるIPsec処理手段の送信時における処理動作の流れを示すフローチャートである。
【図４】本発明におけるIPsec処理手段の受信時における処理動作の流れを示すフローチャートである。
【図５】本発明における拡張ヘッダ作成手段の処理動作の流れを示すフローチャートである。
【図６】本発明における拡張ヘッダ挿入手段の処理動作の流れを示すフローチャートである。
【図７】本発明における拡張ヘッダ判別手段の処理動作の流れを示すフローチャートである。
【図８】本発明におけるIPヘッダ書換え手段の処理動作の流れを示すフローチャートである。
【図９】本発明におけるデータ格納手段の処理動作の流れを示すフローチャートである。
【図１０】IPsecを利用した通信における従来技術を用いた場合の構成を簡単に示すブロック図である。
【符号の説明】
【００４１】
101  送信手段
102  受信手段
103  セキュリティポリシー（SP）管理手段
104  セキュリティアソシエーション（SA）管理手段
105  IPsec処理手段
106  拡張ヘッダ作成手段
107  拡張ヘッダ挿入手段
108  拡張ヘッダ判別手段
109  IPヘッダ書換え手段
110  データ格納手段
1001  送信手段
1002  受信手段
1003  セキュリティポリシー（SP）管理手段
1004  セキュリティアソシエーション（SA）管理手段
1005  IPsec処理手段
【図１】
2007005989.tif 000003
【図２】
2007005989.tif 000004
【図３】
2007005989.tif 000005
【図４】
2007005989.tif 000006
【図５】
2007005989.tif 000007
【図６】
2007005989.tif 000008
【図７】
2007005989.tif 000009
【図８】
2007005989.tif 000010
【図９】
2007005989.tif 000011
【図１０】
2007005989.tif 000012