説明

暗号化パケット処理システム

【課題】暗号化フラグメントパケットを簡易に送受信する。
【解決手段】装置は、平文パケットに暗号・認証・カプセル処理を施した暗号化パケットをトンネルモードで送信するとき、暗号化パケットの暗号対象領域及び認証対象領域を複数に分割して複数の暗号化フラグメントパケットを作成し、複数の暗号化フラグメントパケットに順番を識別するための識別子を含むトンネル用ヘッダをそれぞれ付加するとともに、先の暗号化フラグメントパケットにおけるペイロードデータの後部所定数を次の暗号化フラグメントパケットにおけるペイロードデータの前に重複して付加する処理部と、トンネルモードで受信した複数の暗号化フラグメントパケットに復号・認証・デカプセル処理を施し、トンネル用ヘッダからそれぞれ抽出した上記識別子を書き込んだ平文パケット対応のペイロードデータをそれぞれ有する複数の平文フラグメントパケットを生成して受信端に向けて送信させる制御部とを備える。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、暗号化パケット処理システムに関し、特にトンネルモードで送受信される複数分割の暗号化フラグメントパケットの処理技術に関する。
【背景技術】
【0002】
インターネットなどのIP(Internet Protocol)ネットワークを通して、第1及び第
2のローカルネットワーク間でパケットを送受信するパケット通信システムにおいては、セキュリティ保証のために、トンネルモードで暗号化パケットを送受信する。
【0003】
トンネルモードで暗号化パケットを送受信する場合、暗号(認証を含む)処理及びカプセル処理に起因し、暗号化パケットのパケット長が平文パケットと比較して増大するので、IPネットワークで規定された最大転送バイト長(最大伝送単位MTU:Maximum Transfer Unit)を超えることがある。
【0004】
これに対処するために、IPネットワークの送信側に存在するパケット処理装置(例えば、ゲートウェイ装置)は、暗号化パケットをMTU値内に収まるようにフラグメント処理(分割または断片化処理)して送信する。一方、IPネットワークの受信側に存在するパケット処理装置は、フラグメント処理された複数の暗号化パケット(暗号化フラグメントパケット)をリアセンブルした後、デカプセル処理及び復号(認証を含む)処理を施した平文パケットを第2のローカルネットワークに転送している。
【0005】
しかし、この対処方法では、受信側パケット処理装置は、フラグメントパケットをリアセンブルした後に暗号化パケットを復号化するので、全ての複数のフラグメントパケットを受信するまで各パケットをバッファメモリに蓄積して待機する必要があり、パケット伝送遅延の増大を招くことを避けられない。
【0006】
このような受信側パケット処理装置における問題を回避する関連技術が、例えば特開2002−44135号公報(特許文献1)に開示されている。
【0007】
この特許文献1記載の技術においては、送信側の暗号装置は、受信した平文パケットを暗号処理する前に暗号処理後のパケット長を計算・判断し、MTU値を超えるパケットについて暗号処理する前に平文のままフラグメントし、フラグメントしたパケット毎に暗号処理して送信する。一方、受信側の復号装置は、暗号化フラグメントパケット毎に復号処理し、暗号処理前の平文フラグメントパケットを得た後、受信側端末に送信している。
【0008】
しかし、このように暗号処理の前に平文パケットをフラグメント処理してから暗号処理する技術では、IPsec(IP Security Protocol)のプロトコル種別、暗号アルゴリズム、及び認証アルゴリズムだけでなく、暗号ブロック単位及び認証ブロック単位にペイロードデータを合わせるためのパディング長によってもパケット長の増加分が異なり、フラグメント判断処理が煩雑になる。また、簡易にフラグメント判断を行うと、不必要なパケットまでもフラグメント処理する可能性がある。さらに、フラグメント処理後に暗号処理すると、暗号処理後にフラグメント処理する場合に比較して、オーバヘッドの増大を免れない。
【特許文献1】特開2002−44135号公報
【発明の開示】
【発明が解決しようとする課題】
【0009】
課題は、伝送遅延を招くことなく、かつ簡易な処理により、トンネルモードで複数分割の暗号化フラグメントパケットを送受信可能にする技術を提供することにある。
【課題を解決するための手段】
【0010】
上記課題を解決するために、パケット処理装置は、ペイロードデータを含む平文パケットに暗号・認証・カプセル処理を施した暗号化パケットをトンネルモードで送信するとき、前記暗号化パケットの暗号対象領域及び認証対象領域を複数に分割して複数の暗号化フラグメントパケットを作成し、前記複数の暗号化フラグメントパケットに順番を識別するための識別子を含むトンネル用ヘッダをそれぞれ付加するとともに、先の暗号化フラグメントパケットにおけるペイロードデータの後部所定数を次の暗号化フラグメントパケットにおけるペイロードデータの前に重複して付加するフラグメント処理部と、前記トンネルモードで受信した前記複数の暗号化フラグメントパケットに復号・認証・デカプセル処理を施し、前記トンネル用ヘッダからそれぞれ抽出した前記識別子を書き込んだ前記平文パケット対応のペイロードデータをそれぞれ有する複数の平文フラグメントパケットを生成して受信端に向けて送信させる制御部とを備える。ここで、前記ペイロードデータの後部所定数は、前記暗号対象領域の開始位置と前記認証対象領域の開始位置との差分のバイト数に対応する。
【発明の効果】
【0011】
開示したパケット処理装置によれば、暗号処理前にフラグメント要否判断を行ってフラグメント処理を行うことなく、通常に認証及び暗号処理した後、フラグメント要否判断を行い、かつフラグメント処理された全ての暗号化フラグメントパケットが受信されるまで待機しておくことなく、複数の平文フラグメントパケットの状態で受信端に向けて送信することができる。
【0012】
他の課題、特徴及び利点は、図面及び特許請求の範囲とともに取り上げられる際に、以下に記載される発明を実施するための最良の形態を読むことにより明らかになるであろう。
【発明を実施するための最良の形態】
【0013】
以下、添付図面を参照して、さらに詳細に説明する。図面には好ましい実施形態が示されている。しかし、多くの異なる形態で実施されることが可能であり、本明細書に記載される実施形態に限定されると解釈されてはならない。
【0014】
[システム構成]
一実施の形態における暗号化パケット処理システムの構成を示す図1を参照すると、この暗号化パケット処理システムSYSにおいては、インターネットなどのIP(Internet
Protocol)ネットワーク1を通して、対向する第1のローカルネットワーク2及び第2
のローカルネットワーク3間で(厳密には、これらのローカルネットワークにそれぞれ収容されている端末などの通信装置間で)IPパケットを送受信する場合、セキュリティ保証のために、IPトンネル4を通してトンネルモードで暗号化パケットを送受信する。
【0015】
トンネルモードで暗号化パケットを送受信する場合、暗号(認証を含む)処理及びカプセル処理に起因し、暗号化パケットのパケット長が元のIPパケット(平文パケット)と比較して増大するので、IPネットワーク1のIPトンネル4で規定された最大転送バイト長(最大伝送単位MTU:Maximum Transfer Unit)を超えることがある。
【0016】
このために、IPネットワーク1の送信側に存在するパケット処理装置(例えば、ゲートウェイ装置)10は、暗号化パケットをMTU値内に収まるようにフラグメント処理(分割または断片化処理)して送信する。一方、IPネットワーク1の受信側に存在するパ
ケット処理装置20は、フラグメント処理された暗号化パケット(暗号化フラグメントパケット)にデカプセル処理及び復号(認証を含む)処理を施した複数の(少なくとも2つの)平文フラグメントパケットを第2のローカルネットワーク3に転送する。
【0017】
[パケット処理装置の構成]
図2は、図1に示す一実施の形態の暗号化パケット処理システムSYSにおける送信側及び受信側パケット処理装置10,20の構成を示すブロック図である。
【0018】
送信側パケット処理装置10においては、暗号(認証を含む)処理及びカプセル処理後の暗号化パケットに対してMTU値オーバによるフラグメント処理の必要が発生した場合、各フラグメントパケット内で暗号ブロック単位及び認証ブロック単位がクローズ(完結)するように、つまり暗号及び認証処理が各フラグメント内で実行できるように、フラグメント処理を実行する。
【0019】
そのために、各フラグメントパケットのデータ長が暗号ブロック単位及び認証ブロック単位のバイト数の公倍数となるように、及び認証範囲(認証対象領域)の開始位置と暗号範囲(暗号対象領域)の開始位置とのずれによる認証ブロックと暗号ブロックとの差分を次のフラグメントパケットの先頭に(ペイロードデータの前に)重複して挿入するように、並びにトレイラ全体を認証データと共に最終フラグメントパケット内に収めるように、フラグメント処理を実行する。
【0020】
また、受信側パケット処理装置20においては、受信した暗号化フラグメントパケット毎にデカプセル処理、復号処理、及び認証処理を行い、全ての暗号化フラグメントパケットの受信を待つことなく、各平文フラグメントパケットとしてそのまま第2のローカルネットワーク3に送信する。
【0021】
一層詳述すると、送信側パケット処理装置10においては、受信部11で受信した第1のローカルネットワーク1からの平文のIPパケット(平文パケット)に対して、暗号・認証・カプセル処理部12は暗号処理、認証処理及びカプセル処理を施して、暗号化パケットを生成する。フラグメント判定部13は、生成された暗号化パケットのパケット長とMTU値との比較を行い、MTU値を超えているときは(フラグメント要のときは)、フラグメント処理部14に暗号化パケットを入力する。また、フラグメント判定部13は、暗号化パケットのパケット長がMTU値を超えていないときは(フラグメント不要のときは)、暗号化パケットをそのまま送信部15に入力する。
【0022】
フラグメント処理部14は、暗号化パケットに対して、フラグメント処理を行う。フラグメント処理を施された複数の暗号化フラグメントパケット及びフラグメント判定部13からの暗号化パケットは、送信部15からIPネットワーク1のIPトンネル4を通して、受信側パケット処理装置20に送信される。
【0023】
受信側パケット処理装置20において、受信部21は送信側パケット処理装置10から送信された暗号化パケット(暗号化フラグメントパケットを含む)をIPネットワーク1のIPトンネル4を通して受信する。フラグメント判定部22は受信された暗号化パケットのフラグメント有無をトンネル用IPヘッダ内のフラグメント制御情報に基づいて判定する。
【0024】
順序補正部23は、複数の暗号化フラグメントパケットの受信順が逆転していた場合、対象のフラグメントパケットを一時的にバッファメモリに待機して順序を補正するが、順序逆転の確率は非常に小さい。送信側パケット処理装置10における送信制御により、フラグメントパケットの順序逆転が発生しない場合は、順序補正部23は不必要となる。第
1の復号・認証・デカプセル制御部24は、フラグメント処理されていない暗号化パケットに対して、通常の復号処理、認証処理、及びデカプセル処理を施すための制御を行う。
【0025】
クラシファイテーブル25A及びSADB(Security Association Data Base)テーブル25Bは、IPsec処理すべきパケットの処理アルゴリズム及びキー情報などを確定するために使用される。クラシファイテーブル25Aは、トンネル用IPヘッダ内の送信元(ソース)アドレス(Source Address)及び宛先アドレス(Destination Address)と
、暗号ヘッダとしてのESP(Encapsulating Security Payload)ヘッダ内のSPI(Security Parameters Index)情報などにより、SADBテーブル25Bのエントリー番号
SA−IDを抽出する。このエントリー番号SA−IDに基づき、SADBテーブル25B内からそのパケットに適用すべきIPsecのアルゴリズム及びキー情報などが選択できる。
【0026】
ここで、SPI情報は、ESPトンネルモードで接続される第1及び第2のローカルネットワーク2,3間の安全なIPトンネル4に対応するSA(Security Association)を識別するための識別情報である。
【0027】
復号・認証アルゴリズム実行部26は、暗号アルゴリズム及び認証アルゴリズムに従って、復号ブロック単位及び認証ブロック単位に復号処理及び認証処理(認証演算処理と記載することもある)を行う。第2の復号・認証・デカプセル制御部27は、フラグメント処理された暗号化フラグメントパケットに対して、後に詳述する復号処理、認証処理、及びデカプセル処理を施すための制御を行う。
【0028】
継続制御用テーブル28は、複数の暗号化フラグメントパケットについて、デカプセル処理及び復号処理を施して複数の平文フラグメントパケットを作成するための継続(引継)情報を格納するテーブルである。この継続制御用テーブル28には、受信中の暗号化フラグメントパケットのフラグメント識別子FID及び送信元IPアドレスに基づいて他の暗号化フラグメントパケットと区別された番号毎にエントリー番号SA−IDなどの各種情報が格納される(図3参照)。
【0029】
送信部29は、第1及び第2の復号・認証・デカプセル制御部24,27からの平文パケット及び平文フラグメントパケットを第2のローカルネットワーク3に送信する。
【0030】
上述した暗号化パケット処理システムSYSにおけるパケット処理装置10,20は、送信側及び受信側のパケット処理機能だけをそれぞれ有する構成として説明したが、実際の運用では、各パケット処理装置10,20が双方のパケット処理機能を有する構成であることは、当業者が容易に理解できることである。
【0031】
[送信側パケット処理装置における処理]
次に、図1、図2及び図3に示す送信側パケット処理装置10におけるパケット処理について、図4及び図6を併せ参照して説明する。
【0032】
図4は暗号化プロトコルをESP(暗号ペイロード)トンネルモードとした場合の送信側パケット処理装置10における暗号化フラグメントパケットの生成処理例を説明するための図である。また、図6は送信側パケット処理装置10におけるパケット生成処理の概要手順を示すフローチャートである。
【0033】
送信側パケット処理装置10においてESPトンネルモードで暗号化パケットを送信するとき、図4に示すように、IPv4(Internet Protocol Version 4)の暗号化パケッ
トは、元のIPパケット(平文パケット)に対して、暗号範囲(暗号対象領域)を暗号単
位(例えば、8/16/32バイト)に合わせ、かつ認証範囲(認証対象領域)を4バイトアライメントに合わせるために、パディング、パディング長、及び次ヘッダからなるESPトレイラを平文パケットのペイロードデータの最後に付加した全領域に対応するESPペイロードが暗号処理される。
【0034】
また、暗号化パケットには、ESPペイロードの前に、暗号アルゴリズム及び認証アルゴリズムの判定のためのSPI情報を含むESPヘッダ(8バイト)が付加されると共に、ESPペイロードの後に、ESP認証データが付加される。さらに、暗号化パケットには、ESPヘッダ、ESPペイロード、及びESP認証データをカプセル処理するためのトンネル用IPヘッダ(20バイトのOut_IPヘッダ)が付加される。
【0035】
ここで、暗号範囲はESPペイロードの領域に対応し、認証範囲はESPヘッダ及びESPペイロードの双方の領域に対応する。
【0036】
上述したような平文パケットから暗号化パケットを生成する処理は、送信側パケット処理装置10における暗号・認証・カプセル処理部12によって実施される(図6中のT11)。
【0037】
この暗号化パケットの生成処理において、オリジナルIPヘッダ(20バイトのOri_IPヘッダ)及び複数のペイロードa,b,cから構成される平文パケットに付加された領域部分に応じて、暗号化パケットのパケット長がMTU値を超えたことをフラグメント判定部13が判定した場合(図6中のT12)、フラグメント処理部14は次の条件でフラグメント処理を実行する(図6中のT13)。
【0038】
条件1:各フラグメントパケットにおいては、暗号ブロック単位及び認証ブロック単位で暗号範囲及び認証範囲が分割できるので、暗号化パケットのL1及びL2の値を暗号単位及び暗号ブロック単位に合わせる。例えば、暗号単位として、8/16/32バイトが用いられ、かつ認証単位として64バイトが用いられる場合は、8,16,32,64の最小公倍数である64の倍数を暗号ブロック単位及び認証ブロック単位に選ぶことができる。
【0039】
条件2:暗号化パケットにおいて、認証範囲の開始位置と暗号範囲の開始位置とが異なるので、先の(先頭または中間の)フラグメントパケットの最終データ(ペイロードデータ)を認証範囲の開始位置と暗号範囲の開始位置とのずれ分(つまり、ESPトンネルモードでは8バイト分)を、次の(中間または最終の)フラグメントパケットの先頭データとして重複して挿入する。
【0040】
条件3:「パディング長」のデータが「パディング」のデータの後に送信され、「パディング長」を受信しないときは、「パディング」の削除ができないので、ESPトレイラをESP認証データと共に一つのフラグメントパケット(最終フラグメントパケット)に取り込む。ここで、パディング長は1−255バイトの範囲と規定されている(RFC2406)。また、ESP認証データは、暗号化し終わったパケットと暗号鍵とから算出したハッシュ値であり、12/16/20バイト(HMAC−SHA−1=20バイト、HMAC−MD5=16バイト、AES−XCBC−MAC−96=12バイト)が用いられるとすると、最終フラグメントパケットのデータ長L3を、パディング(1−255バイト)+パディグ長(1バイト)+次ヘッダ(1バイト)+ESP認証データ(20バイト)に基づいて、277バイトまたは278バイト以上とすればよい。
【0041】
上述した条件1−3に従ってフラグメント処理された先頭、中間、及び最終の暗号化フラグメントパケットの各フラグメントオフセット値は、「0,L1,及びL1+L2」で
あり、フラグメント処理部14によって各トンネル用IPヘッダ内に格納されて送信される。
【0042】
[受信側パケット処理装置における処理]
次に、図1、図2及び図3に示す受信側パケット処理装置20におけるパケット処理について、図5、図7A、図7B及び図7Cを併せ参照して説明する。
【0043】
図5は暗号化プロトコルをESPトンネルモードとした場合の受信側パケット処理装置20における暗号化フラグメントパケット処理例を説明するための図である。また、図7A、図7B及び図7Cは受信側パケット処理装置20におけるパケット処理手順を示すフローチャートである。
【0044】
なお、以下に説明するパケット処理において、受信した暗号化パケットが暗号化フラグメントパケットであることは、トンネル用IPヘッダ内のプロトコル及びフラグメント制御情報(IPv4の場合、D=Don’t Fragment、M=More Fragment、Fragment Offset、FID=フラグメント識別子)に基づいて識別できる。例えば、Protocol=50の場合がESP暗号化パケットである。また、D=1の場合、フラグメントパケットであり、同一パケットからフラグメントされたパケットは、同一FIDが付与される。D=1,M=1,Fragment Offset=0の場合、先頭フラグメントパケット、D=1,M=1,Fragment Offset≠0の場合、中間フラグメントパケット、またD=1,M=0の場合、最終フラグメントパケットと識別できる(図7A,図7B中のR1,R2,R3)。
【0045】
まず、受信側パケット処理装置20においては、復号・認証アルゴリズム実行部26及び復号・認証・デカプセル制御部27は、受信部21で受信した先頭のフラグメント処理された暗号化パケット(先頭の暗号化フラグメントパケット)に対して、次の処理を実施した後、ローカルネットワーク3へ先頭の平文フラグメントパケットとして送信する。
【0046】
R11:制御部27は、トンネル用IPヘッダ(Out_IPヘッダ_F1)内のフラグメント識別子FID、送信元IPアドレス及び宛先IPアドレスと、ESPヘッダ内のSPI情報などとにより、クラシファイテーブル25Aを検索して、SADBテーブル25B内の対応のエントリー番号SA−IDを得て、フラグメント識別子FID及び送信元IPアドレスで区別された(縮退して付与された)番号対応に継続制御用テーブル28にそのエントリー番号SA−IDを格納する。
【0047】
R12:実行部26は、エントリー番号SA−ID対応のSADBテーブル25B内に格納された認証アルゴリズム及び認証用キー情報などに従い、認証ブロック単位に認証演算を行う。また、制御部27は、最終ブロックの認証演算引継情報を上記処理R11と同様に継続制御用テーブル28に格納する。
【0048】
R13:さらに、実行部26は、エントリー番号SA−ID対応のSADBテーブル25B内に格納された暗号アルゴリズム及び暗号キー情報などに従って、暗号ブロック単位に復号処理を実行する。また、制御部27は、最終ブロックの復号演算引継情報を上記処理R11と同様に継続制御用テーブル25Bに格納する。
【0049】
R14:制御部27は、実行部26によって復号化されたデータからオリジナルIPヘッダ(Ori_IPヘッダ)を抽出すると共に、ペイロードを作成する。
【0050】
R15:制御部27は、抽出したオリジナルIPヘッダに対して、トンネル用IPヘッダ(Out_IPヘッダ_F1)よりフラグメント情報としてのオフセット値「0」を抽
出して挿入する。また、制御部27は、TTL(Time to Live)、パケット長、及びヘッダチェックサムを算出して挿入し、先頭の平文フラグメントパケットのオリジナルIPヘッダ(Ori_IPヘッダ_F1)を作成し、後の処理R17において上記処理R11と同様に継続制御用テーブル28に格納する。
【0051】
R16:制御部27は、上記処理R14及びR15で作成したオリジナルIPヘッダ(Ori_IPヘッダ_F1)及び復号データ(ペイロードa)より、先頭の平文フラグメントパケットを作成し、送信部29を通してローカルネットワーク3に送信する。
【0052】
また、受信側パケット処理装置20においては、復号・認証アルゴリズム実行部26及び復号・認証・デカプセル制御部27は、受信部21で受信した中間(ここでは、1つ)のフラグメント処理された暗号化パケット(中間の暗号化フラグメントパケット)に対して、次の処理を実施した後、ローカルネットワーク3へ中間の平文フラグメントパケットとして送信する。
【0053】
R21:制御部27は、先頭の暗号化フラグメントパケットの受信時に格納されたフラグメント識別子FID及び送信元IPアドレスで区別された番号対応のエントリー番号SA−IDを継続制御用テーブル28から取り出す。
【0054】
R22:制御部27は、継続制御用テーブル28に格納された認証演算引継情報を認証演算初期情報に設定後、エントリー番号SA−ID対応のSADBテーブル25B内に格納されている認証アルゴリズム及び認証キー情報などに従い、実行部26よって認証ブロック単位に認証演算を行わせる。また、制御部27は、最終ブロックの認証演算引継情報を継続制御用テーブル28の同一領域に上書きして格納する。
【0055】
R23:さらに、制御部27は、継続制御用テーブル28に格納された復号演算引継情報を復号演算初期情報に設定後、エントリー番号SA−ID対応のSADBテーブル25B内に格納されている暗号アルゴリズム及び暗号キー情報などに従って、実行部26によって暗号ブロック単位(先頭8バイトを除く)に復号処理を実行させる。制御部27は、最終ブロックの復号演算引継情報を継続制御用テーブル28の同一領域に上書きして格納する。制御部27は、実行部26によって復号化されたデータからオリジナルIPヘッダ(Ori_IPヘッダ)を抽出すると共に、ペイロードを作成する。
【0056】
R24:制御部27は、継続制御用テーブル28に格納された先頭の平文フラグメントパケットのオリジナルIPヘッダ(Ori_IPヘッダ_F1)を取り出し、トンネル用IPヘッダ(Out_IPヘッダ_F2)よりオフセット値「L1」を抽出して挿入する。また、制御部27は、TTL、パケット長、及びヘッダチェックサムを算出して挿入し、中間の平文フラグメントパケットのオリジナルIPヘッダ(Ori_IPヘッダ_F2)を作成する。
【0057】
R25:制御部27は、上記処理R23及びR24で作成したオリジナルIPヘッダ(Ori_IPヘッダ_F2)及び復号データ(ペイロードb)に基づいて、中間の平文フラグメントパケットを作成し、送信部29を通してローカルネットワーク3に送信する。
【0058】
さらに、受信側パケット処理装置20においては、復号・認証アルゴリズム実行部26及び復号・認証・デカプセル制御部27は、受信部21で受信した最終のフラグメント処理された暗号化パケット(最終の暗号化フラグメントパケット)に対して、次の処理を実施した後、ローカルネットワーク3へ最終の平文フラグメントパケットとして送信する。
【0059】
R31:制御部27は、先頭の平文フラグメントパケットの受信時に格納されたフラグ
メント識別子FID及び送信元IPアドレスで区別された番号対応のエントリー番号SA−IDを継続制御用テーブル28から取り出す。
【0060】
R32:制御部27は、継続制御用テーブル28に格納された認証演算引継情報を認証演算初期情報に設定後、エントリー番号SA−ID対応のSADBテーブル25B内に格納されている認証アルゴリズム及び認証キー情報などに従い、実行部26によって認証ブロック単位に認証演算を行わせ、最後のデータのESP認証データと演算照合して認証判定を行う。
【0061】
R33:さらに、制御部27は、継続制御用テーブル28に格納された復号演算引継情報を復号演算初期情報に設定後、エントリー番号SA−ID対応のSADBテーブル25B内に格納されている暗号アルゴリズム及び暗号キー情報などに従って、実行部26によって暗号ブロック単位(先頭8バイトを除く)に復号処理を実行させる。
【0062】
R34:制御部27は、復号処理後のデータからペイロードを作成すると共に、トレイラ及び認証データを削除する。
【0063】
R35:制御部27は、継続制御用テーブル28に格納された先頭の平文フラグメントパケットのオリジナルIPヘッダ(Ori_IPヘッダ_F1)を取り出し、トンネル用IPヘッダ(Out_IPヘッダ_F3)よりオフセット値「L1+L2」を抽出して挿入する。また、制御部27は、TTL、パケット長、及びヘッダチェックサムを算出して挿入し、最終の平文フラグメントパケットのオリジナルIPヘッダ(Ori_IPヘッダ_F3)を作成する。
【0064】
R36:制御部27は、上記処理R34及びR35で作成したオリジナルIPヘッダ(Ori_IPヘッダ_F3)及び復号データ(ペイロードc)に基づいて、最終の平文フラグメントパケットを作成し、送信部29を通してローカルネットワーク3に送信する。
【0065】
R37:ただし、上記処理R32に続く認証判定が異常「NG」となった場合は、オリジナルIPヘッダ(Ori_IPヘッダ_F3)の情報、例えばオフセット値「L1+L2」を「0」に改ざんして送信することにより、受信先でフラグメントエラーとして廃棄させる。
【0066】
上述した受信側パケット処理装置20のパケット処理において、受信した先頭、中間、及び最終の暗号化フラグメントパケットに順序逆転が発生した場合は、順序補正部23によって、受信したパケットをバッファメモリに一時的に待機して順序を補正した後、上記各処理を実行すればよい。ただし、現状のネットワーク構成装置としてのゲートウェイ装置などは、パケットの順序保証を行っているものが多く存在し、また送信側のフラグメント処理で各フラグメントパケット長を操作(ほぼ同等または後のフラグメント長を大きくになるようにフラグメント処理)すれば、順序逆転の確率は非常に小さくなる。したがって、受信するパケットの順序逆転が発生しないことを前提すれば、順序補正部23は不要となる。
【0067】
[一実施の形態の効果]
上述した一実施の形態によれば、暗号・認証・カプセル処理に起因するパケット長の増大によりMTU値超えが発生した暗号化パケットを簡易にフラグメント処理し、トンネルモードで送信した場合、受信側パケット処理装置においてリアセンブル処理のためにフラグメント処理された全ての暗号化パケットが受信されるまで待機する必要がなく、パケット処理装置内の伝送遅延の削減が図れ、ネットワークの伝送性能を向上させることができる。
【0068】
[変形例]
上述した一実施の形態における処理はコンピュータで実行可能なプログラムとして提供され、CD−ROMやフレキシブルディスクなどの記録媒体、さらには通信回線を経て提供可能である。
【0069】
また、上述した一実施の形態における各処理はその任意の複数または全てを選択し組合せて実施することもできる。
【図面の簡単な説明】
【0070】
【図1】一実施の形態の暗号化パケット処理システムの構成を示すブロック図である。
【図2】図1におけるパケット処理装置の構成を示すブロック図である。
【図3】継続制御用テーブルの構成を示す図である。
【図4】送信側パケット処理装置におけるパケット生成処理を説明するための図である。
【図5】受信側パケット処理装置におけるパケット処理を説明するための図である。
【図6】送信側パケット処理装置におけるパケット生成処理手順を説明するためのフローチャート図である。
【図7A】受信側パケット処理装置におけるパケット処理手順を説明するためのフローチャートである。
【図7B】受信側パケット処理装置におけるパケット処理手順を説明するためのフローチャートである。
【図7C】受信側パケット処理装置におけるパケット処理手順を説明するためのフローチャートである。
【符号の説明】
【0071】
SYS 暗号化パケット処理システム
1 IPネットワーク
2 ローカルネットワーク
3 ローカルネットワーク
4 IPトンネル
10 送信側パケット処理装置
20 受信側パケット処理装置
11 受信部
12 暗号・認証・カプセル処理部
13 フラグメント判定部
14 フラグメント処理部
15 送信部
21 受信部
22 フラグメント判定部
23 順序補正部
24 第1の復号・認証・デカプセル制御部
25A クラシファイテーブル
25B SADBテーブル
26 復号・認証アルゴリズム実行部
27 第2の復号・認証・デカプセル制御部
28 継続制御用テーブル
29 送信部

【特許請求の範囲】
【請求項1】
ペイロードデータを含む平文パケットに暗号・認証・カプセル処理を施した暗号化パケットをトンネルモードで送信するとき、前記暗号化パケットの暗号対象領域及び認証対象領域を複数に分割して複数の暗号化フラグメントパケットを作成し、前記複数の暗号化フラグメントパケットに順番を識別するための識別子を含むトンネル用ヘッダをそれぞれ付加するとともに、先の暗号化フラグメントパケットにおけるペイロードデータの後部所定数を次の暗号化フラグメントパケットにおけるペイロードデータの前に重複して付加するフラグメント処理部と、
前記トンネルモードで受信した前記複数の暗号化フラグメントパケットに復号・認証・デカプセル処理を施し、前記トンネル用ヘッダからそれぞれ抽出した前記識別子を書き込んだ前記平文パケット対応のペイロードデータをそれぞれ有する複数の平文フラグメントパケットを生成して受信端に向けて送信させる制御部と、
を備えるパケット処理装置。
【請求項2】
前記ペイロードデータの後部所定数は、前記暗号対象領域の開始位置と前記認証対象領域の開始位置との差分のバイト数に対応する請求項1記載のパケット処理装置。
【請求項3】
前記複数の暗号化フラグメントパケット数がn(2<n、nは自然数)であるとき、
1番目(先頭)の暗号化フラグメントパケットは、暗号ヘッダ、オリジナルヘッダ、及び第1ペイロードデータを有し、前記暗号ヘッダは暗号アルゴリズム及び認証アルゴリズムの判定のための識別情報を含み、
m番目(1<m<n、mは自然数)の暗号化フラグメントパケットは、第(m−1)重複付加データを有し、前記第(m−1)重複付加データは(m−1)番目の暗号化フラグメントパケットにおけるペイロードデータの後部所定数に対応し、
n番目(最終)の暗号化フラグメントパケットは、第(n−1)重複付加データ、第nペイロードデータ、及び認証データを有し、前記第(n−1)重複付加データは(n−1)番目の暗号化フラグメントパケットにおけるペイロードデータの後部所定数に対応する請求項1記載のパケット処理装置。
【請求項4】
前記複数の暗号化フラグメントパケットが少なくとも2つであるとき、
先頭の暗号化フラグメントパケットは、暗号ヘッダ、オリジナルヘッダ、及び第1ペイロードデータを有し、前記暗号ヘッダは暗号アルゴリズム及び認証アルゴリズムの判定のための識別情報を含み、
最終の暗号化フラグメントパケットは、重複付加データ、第2ペイロードデータ、及び認証データを有し、前記重複付加データは前記先頭の暗号化フラグメントパケットにおけるペイロードデータの後部所定数に対応する請求項1記載のパケット処理装置。
【請求項5】
前記制御部は、前記最終の暗号化フラグメントパケットの前記認証データを用いて認証演算結果を判定し、判定結果が異常であるときは、最終の平文フラグメントパケットにおけるオリジナルヘッダを改ざんする請求項3または4記載のパケット処理装置。
【請求項6】
ペイロードデータを含む平文パケットに暗号・認証・カプセル処理を施した暗号化パケットをトンネルモードで送信するとき、前記暗号化パケットの暗号対象領域及び認証対象領域を複数に分割して複数の暗号化フラグメントパケットを作成し、前記複数の暗号化フラグメントパケットに順番を識別するための識別子を含むトンネル用ヘッダをそれぞれ付加するとともに、先の暗号化フラグメントパケットにおけるペイロードデータの後部所定数を次の暗号化フラグメントパケットにおけるペイロードデータの前に重複して付加するステップと、
前記トンネルモードで受信した前記複数の暗号化フラグメントパケットに復号・認証・
デカプセル処理を施し、前記トンネル用ヘッダからそれぞれ抽出した前記識別子を書き込んだ前記平文パケット対応のペイロードデータをそれぞれ有する複数の平文フラグメントパケットを生成して受信端に向けて送信させるステップと、
を備えるパケット処理方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7A】
image rotate

【図7B】
image rotate

【図7C】
image rotate


【公開番号】特開2010−11122(P2010−11122A)
【公開日】平成22年1月14日(2010.1.14)
【国際特許分類】
【出願番号】特願2008−168456(P2008−168456)
【出願日】平成20年6月27日(2008.6.27)
【出願人】(000005223)富士通株式会社 (25,993)
【Fターム(参考)】