JP4018701B2 - テンプレートを使用したインターネットプロトコルトンネリング - Google Patents

テンプレートを使用したインターネットプロトコルトンネリング Download PDF

Info

Publication number
JP4018701B2
JP4018701B2 JP2005088964A JP2005088964A JP4018701B2 JP 4018701 B2 JP4018701 B2 JP 4018701B2 JP 2005088964 A JP2005088964 A JP 2005088964A JP 2005088964 A JP2005088964 A JP 2005088964A JP 4018701 B2 JP4018701 B2 JP 4018701B2
Authority
JP
Japan
Prior art keywords
packet
extension header
current
header
stored
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2005088964A
Other languages
English (en)
Other versions
JP2005287034A (ja
JP2005287034A5 (ja
Inventor
ケンジ シー デイビッド
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from AU2004901658A external-priority patent/AU2004901658A0/en
Application filed by Canon Inc filed Critical Canon Inc
Publication of JP2005287034A publication Critical patent/JP2005287034A/ja
Publication of JP2005287034A5 publication Critical patent/JP2005287034A5/ja
Application granted granted Critical
Publication of JP4018701B2 publication Critical patent/JP4018701B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/16Implementing security features at a particular protocol layer
    • H04L63/164Implementing security features at a particular protocol layer at the network layer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/12Protocol engines
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/161Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers

Description

本発明は、コンピュータネットワークに関し、特に、インターネットプロトコル(IP)パケットを処理するためのアーキテクチャに関する。
IPは、ネットワークを介したデータ交換のために、コンピュータシステムにより使用される代表的なデータ標準である。IP標準により、データはパケット中で送信元コンピュータシステムから宛先コンピュータシステムへ転送される。データは、2つのコンピュータの間で直接転送されることも可能であるし、宛先コンピュータシステムに到着する前に、他のコンピュータシステムを経由して間接的に転送されることも可能である。IPバージョン4(IPv4)及びIPバージョン6(IPv6)は、IP通信標準の2つのよく知られたバージョンである。IPv4及びIPv6は、その用語及び実装において異なるが、多くの等価な機能を共有する。本明細書において開示されるIPトンネリング技術は、IPv4及びIPv6に適用されるため、IPv4標準及びIPv6標準の両方の用語が、適宜使用される。インターネットプロトコルセキュリティ標準(IPsec)は、暗号処理を使用してIPデータに対する認証機能及び機密保持機能を取り扱うIP標準である。IPパケット用の処理システムは、IPsec処理だけでなく、パケットカプセル化(すなわち、パケットトンネリング)をサポートすることが好ましい。
IPパケットは、ヘッダとそれに続くペイロードとを含む。IPv4では、「オプション("options")」が存在する場合、「オプション」は、IPヘッダの一部として発生する。IPv6では、IPヘッダに続いてIP拡張ヘッダが存在する可能性がある。本明細書では、IPv4のオプションと、IPv6のIP拡張ヘッダは、機能的に等価であるとみなすことができる。
いくつかの状況において、IPパケットは、カプセル化IPパケットのペイロードとして輸送されうる。カプセル化パケットを、「トンネルパケット」と呼び、トンネルパケットの送信元と宛先との間の転送経路を、トンネルと呼ぶ。また、パケットをカプセル化し、送信元から宛先へ送信する技術を、トンネリングと呼ぶ。パケットがトンネリングされる(形成される)際、トンネルパケットには、新規のIPヘッダ及び新規のIP拡張ヘッダが与えられ、これらはそれぞれ、外側IPヘッダ、外側IP拡張ヘッダと呼ばれる。また、カプセル化された(元の)パケットのヘッダ及び拡張ヘッダは、内部IPヘッダ及び内部IP拡張ヘッダと呼ばれる。外側IPヘッダは、内部IPヘッダのいくつかのフィールドをコピーして形成されてもよいが、外側IP拡張ヘッダの形成は、必ずしも内部IP拡張ヘッダに直接関連するとは限らない。
通常のIP処理システムは、ソフトウェアで実現される。IPデータの転送速度の上昇に伴い、このソフトウェアによる実現は、いくつかのアプリケーションについては遅すぎる場合がある。ソフトウェアシステムにおいて通常使用される処理方法を、直接ハードウェアに対応付けて実現した場合、得られるハードウェアシステムの速度は、通常、対応するソフトウェアシステムよりもずっと高速である。しかしながら、このようなハードウェアによる実現は、複雑であり、かつ柔軟性に欠けるであろう。
本発明の目的は、既存の構成の1つ以上の欠点を実質的に解決するか、少なくとも改善することである。
本発明は、IPパケット処理時に使用可能なパケットフィールドの組(「テンプレート」と呼ぶ)を予め規定する構成を開示する。これを本明細書においては、IPトンネリングアプローチと呼ぶ。このアプローチは、特にパケット処理がトンネリング及び認証を含む場合に有用である。拡張ヘッダ等のこれらの予め規定されたテンプレートは、後でIPパケット処理時に使用するために構築及び格納される。テンプレートはカプセル化処理及び/又は認証処理の少なくとも一部を高速で実行するために用いられ、「拡張パケット(augmented packet)」と呼ばれるパケットが形成される。カプセル化処理及び/又は認証処理の残る処理が必要な場合、所望であれば、従来の方法を使用するか、あるいはトンネリングアプローチをさらに適用して、それらの処理を実行できる。
トンネリングアプローチは、以前の技術よりも多くのメモリ資源を要求する反面、IPパケット処理に必要な処理負荷を低減させる。このため、このトンネリングアプローチは、ソフトウェア、ハードウェアのどちらで実現しても、IP処理速度を増大させる。IPトンネリングアプローチ及び予め規定されたパケットフィールドを使用するIP処理システムにおけるハードウェアの使用率を増加させることにより、処理をより高速化することが可能となる。
本発明の第1の見地によれば、IPパケットを処理する方法であって、
パケットフィールドの複数の組を規定するステップと、
規定されたパケットフィールドの組を記憶装置に格納するステップと、
現在のIPパケットが処理対象であるか否かを判定するステップと、
現在のIPパケットに適用されるべき処理を特定するステップと、
特定された処理の属性に応じて、格納されている、規定されたパケットフィールドの組のうちの少なくとも1つを選択するステップと、
選択されたパケットフィールドの組のうちの少なくとも1つを使用して、現在のIPパケットを操作し、処理済みIPパケットを形成するステップとを有することを特徴とする方法を提供する。
本発明の別の見地によれば、IPパケットを処理する装置であって、
パケットフィールドの複数の組を規定する手段と、
規定されたパケットフィールドの組を記憶装置に格納する手段と、
現在のIPパケットが処理対象であるか否かを判定する手段と、
現在のIPパケットに適用されるべき処理を特定する手段と、
特定された処理の属性に応じて、格納されている、規定されたパケットフィールドの組のうちの少なくとも1つを選択する手段と、
選択されたパケットフィールドの組のうちの少なくとも1つを使用して、現在のIPパケットを操作し、処理済みIPパケットを形成する手段とを有することを特徴とする装置を提供する。
本発明の別の見地によれば、プロセッサにIPパケットの処理を指示するためのコンピュータプログラムが記録されたコンピュータ可読媒体を有するコンピュータプログラムプロダクトであって、コンピュータプログラムが、
パケットフィールドの複数の組を規定するコードと、
規定されたパケットフィールドの組を記憶装置に格納するコードと、
現在のIPパケットが処理対象であるか否かを判定するコードと、
現在のIPパケットに適用されるべき処理を特定するコードと、
特定された処理の属性に応じて、格納されている、規定されたパケットフィールドの組のうちの少なくとも1つを選択するコードと、
選択されたパケットフィールドの組のうちの少なくとも1つを使用して、現在のIPパケットを操作し、処理済みIPパケットを形成するコードとを有することを特徴とするコンピュータプログラムプロダクトを提供する。
本発明の別の見地によれば、プロセッサにIPパケットの処理を指示するためのコンピュータプログラムであって、
パケットフィールドの複数の組を規定するコードと、
規定されたパケットフィールドの組を記憶装置に格納するコードと、
現在のIPパケットが処理対象であるか否かを判定するコードと、
現在のIPパケットに適用されるべき処理を特定するコードと、
特定された処理の属性に応じて、格納されている、規定されたパケットフィールドの組のうちの少なくとも1つを選択するコードと、
選択されたパケットフィールドの組のうちの少なくとも1つを使用して、現在のIPパケットを操作し、処理済みIPパケットを形成するコードとを有することを特徴とするコンピュータプログラムを提供する。
本発明の他の見地もまた開示される。
以下、本発明の1つ以上の実施の形態を、図面と関連して説明する。本発明は、1つ以上の添付の図面のステップ及び/又は機能と関連させて説明される。1つ以上の添付の図面において、同一符号で示すステップ及び/又は機能は、反対の意図が示されない限り、同一の1つ以上の機能又は動作を表す。
尚、「背景技術」での記載及び従来技術の構成に関する以上の記載は、それぞれ刊行物及び/又は実施を通して公知技術を形成する処理又は装置の記載に関するものであることに留意されたい。当該記載は、これらの方法や装置が多少なりとも当該技術分野における周知技術の一部を形成するものとして本発明者又は出願人が説明したものと解釈するべきではない。
図1は、開示されたIPトンネリングアプローチが実現可能なシステムのブロック図である。送信元コンピュータ801は、矢印802で示すように、IPハードウェアモジュール803に接続される。図2を参照して説明するように、IPハードウェアモジュール803は、ハードウェア要素及びソフトウェア要素の両方を具備する。破線811で示すように、ソフトウェア810は、コンピュータ801上で稼動する。送信元コンピュータ801は、矢印806で示すように、ネットワーク807に接続される。宛先コンピュータ809は、矢印808で示すように、ネットワーク807に接続される。ソフトウェア812は、破線813で示すように、宛先コンピュータ809上で稼動する。
本発明によるトンネリングアプローチは、ネットワーク807を介して宛先コンピュータ809へIPパケットを送信するために、送信元コンピュータ801によってソフトウェア810及びIPハードウェアモジュール803とともに用いられ、ソフトウェア810により生成されたIPパケットを処理する。
図1は、汎用コンピュータ801、809及び個別IPハードウェアモジュール803を示すが、トンネリングアプローチは、組み込み型コンピュータシステムにおいても使用できる。多機能オフィス機器(プリンタ、スキャナ、コピー機及びファックスの能力を統合した装置等)を含むことが可能なシステム(不図示)及びネットワークルータにおいて、IP及びIPsecの取り扱いが必要な処理は、ソフトウェア(組み込み型プロセッサ及び組み込み型ソフトウェアを使用)内、又はハードウェア内で行われてもよい。このようなシステムにおいて、IPを介して送信されるべきデータは、(ハードウェア)スキャナ等の別の組み込み型コンピュータシステムから入力されてもよい。
図2は、図1の送信元コンピュータ801及びIP処理モジュール803の機能要素を示す図である。送信元コンピュータのソフトウェア810は、矢印208で示すように、アプリケーションソフトウェア202と対話するドライバソフトウェアモジュール201を具備する。ドライバソフトウェアモジュール201は、矢印206で示すように、IPハードウェアモジュール803と対話する。この説明では、図1の送信元コンピュータ801とIPハードウェアモジュール803との間の特定の機能配分を仮定する。しかしながら、この仮定は例証のために過ぎず、他の機能配分も使用できる。IPハードウェアモジュール803は、矢印207で示すように、IPsecエンジン204と対話するIPエンジン203を具備する。IPsecエンジン204は、矢印209で示すように、拡張ヘッダテンプレートメモリ205と対話する。また、コンピュータのソフトウェア810は、トンネリングアプリケーションソフトウェアモジュール210を有する。トンネリングアプリケーションソフトウェアモジュール210は、図4Aを参照してより詳細に説明する。
アプリケーションソフトウェア202は、ネットワーク807を介して送信元コンピュータ801から宛先コンピュータ809へ転送すべきデータの発信元である。アプリケーションソフトウェア202は、このデータをドライバソフトウェア201へ転送する。ドライバソフトウェア201は、IPハードウェアモジュール803と通信する。
IPエンジン203は、ネットワーク807を介して送信するためのデータをパッケージ化するために、アプリケーションソフトウェア202により生成されたデータからIPパケットを形成する。ネットワーク807を介したパケット送信の前に、IPエンジン203は、IPsec処理のために、各パケットをIPsecエンジン204に渡す。IPsecエンジン204は、対象とされている特定のパケットに対するIPsec処理が必要である場合、どのIPsec処理が必要であるかを判定する。IPトンネリングが適用され、且つ外側IP拡張ヘッダが必要である場合、適切な外側IP拡張ヘッダは、IP拡張ヘッダテンプレートメモリ205から読み出される。尚、IPv4が使用される場合、外側IPヘッダに後続して必要な外側IP拡張ヘッダの代わりに、IPヘッダ内でのオプションが必要となる。しかし、これらは本システム全体から見れば、同等の必要性である。
IPsecエンジン204は、メモリ205から読み出されたIP拡張ヘッダのコピーを、IPパケット内に挿入する。IP拡張ヘッダのコピーのいくつかの部分は、IPパケットに挿入される前に、修正される可能性がある。次に、IPsecエンジン204は、認証ヘッダの生成等により、パケットを処理する。IPsecエンジン204が、パケット処理を終了した後、ネットワーク807を介したパケット送信のために、パケットは、IPエンジン203に戻される。
IP拡張ヘッダテンプレートは、ドライバソフトウェア201により、例えばアプリケーションソフトウェア202及び/又はトンネリングソフトウェアアプリケーション210からの情報を使用して、事前にIP拡張ヘッダテンプレートメモリ205内に格納される。アプリケーションがテンプレート内で使用される情報を供給しうるので、IP拡張ヘッダテンプレートは、通常、アプリケーション202(図2を参照)が開始された際に生成される。
図3は、図2のIPsecエンジン204及び拡張ヘッダテンプレートメモリ205の機能要素を示す図である。IPsecエンジン204は、セキュリティポリシーデータベース300、セキュリティアソシエーションデータベース301、テンプレートインデックスデータベース302及びプロセッサ303を具備する。IPsecエンジン204は、矢印209で示すように、拡張ヘッダテンプレートメモリ205と対話する。拡張ヘッダテンプレートメモリ205は、2つのメモリ領域、すなわち、拡張ヘッダ領域304及び予測拡張ヘッダ領域305に分割される。
ネットワーク807を介した送信に先立ってIPsec処理用のIPパケットを受信すると、IPsecエンジン204は、パケットに対するIPsec処理が必要であれば、どのIPsec処理が必要であるかを判定するために、セキュリティポリシーデータベース300に問い合わせる。IPsec処理が必要である場合、IPsecエンジン204は、IPsec処理の実行に必要な鍵及びアルゴリズム等の複数の暗号パラメータを決定するために、プロセッサ303を介して、セキュリティアソシエーションデータベース301に問い合わせる。
このため、例えば、IPsecエンジン204によりセキュリティアソシエーションデータベース301から読み出されたIPsecパラメータは、トンネルモードを指定してもよい。このトンネルモードの場合には、当該パケット用に形成すべき新規のIPヘッダを必要とする。この場合、新規のIPパケットは、1つ以上の外側IP拡張ヘッダを必要としてもよく、この外側IP拡張ヘッダは、本構成においてはIP拡張ヘッダテンプレートメモリ205内に格納されたテンプレートに基づいて形成される。どの1つ以上のIP拡張ヘッダテンプレートを使用すべきかを判定するために、必要な1つ以上のIP拡張ヘッダテンプレート用のIP拡張ヘッダテンプレートメモリ205への複数のインデックスを、セキュリティアソシエーションデータベース301内に格納してもよい。これらのインデックスは、拡張ヘッダテンプレートメモリ205から読み出されるべきIP拡張ヘッダテンプレートを指定する。また、これらのインデックスは、複数のIP拡張ヘッダテンプレートから導出された複数のIP拡張ヘッダの、最終トンネルパケット内での発生順序を指定する。あるいは、必要な1つ以上のIP拡張ヘッダテンプレートのインデックスを、別個のテンプレートインデックスデータベース302内に格納してもよい。
IP拡張ヘッダテンプレートメモリ205は、IP拡張ヘッダ用のテンプレートを収容する。2つ以上のIPsecセキュリティアソシエーションが、1つのIP拡張ヘッダテンプレートを使用してもよい。また、各IPsecセキュリティアソシエーションが、2つ以上のIP拡張ヘッダテンプレートを使用してもよい。
「セキュリティアソシエーション」は(インターネット・エンジニアリング・タスク・フォースからのRFC2408で規定されるように)、2つ以上のエンティティ間の関係であり、安全に通信を行うために、エンティティがセキュリティサービスをどのように利用するかを記述する。セキュリティアソシエーションは、送信元コンピュータシステムから宛先コンピュータシステムへのデータの一方向の流れに対して適用される。2つのコンピュータシステムの間の双方向データフローに対しては、各方向についてのセキュリティアソシエーションが必要である。セキュリティアソシエーションの一部を構成するセレクタは、データフローから、セキュリティアソシエーションが適用される特定のIPデータグラムのみを選択するために使用されてもよい。各セキュリティアソシエーションは、データフローに適用されるべき単一の暗号処理動作を指定する。データフロー上で複数の暗号処理操作を実行するために、一連のセキュリティアソシエーションを、そのデータフローに適用してもよい。暗号処理ステップの指定は、
・適用されるべきセキュリティプロトコル(認証ヘッダ(AH)又はカプセル化セキュリティペイロード(ESP)等)と;
・動作モード(トランスポートモード又はトンネルモード)と;
・使用すべき暗号アルゴリズム(MD5を用いるHMAC、SHA−1を用いるHMAC、AES、DES等)と;
・暗号アルゴリズムの鍵値と;
・暗号アルゴリズムの初期値と;
・シーケンス番号(以前に送信されたデータグラムの、潜在的に悪意のある「再利用(replay)」を検知するために使用可能な単調増加番号)と;
・新規のセキュリティアソシエーションへの置き換えが必要となるまでに、セキュリティアソシエーションを適用可能な最大バイト数のカウントと;
・セキュリティアソシエーションが失効する時間(この時間を過ぎると新規のセキュリティアソシエーションで置き換えねばならない)を含むことができる。
セキュリティアソシエーションの使用は、
・シーケンス番号のインクリメントと;
・バイトカウントの更新とを含む、更新されるべき複数のパラメータを必要としてもよい。
通常、アプリケーションが最初に宛先コンピュータシステムへのパケット送信を試みた際にセキュリティアソシエーションが作成され、その接続のためのセキュリティポリシーが、IPsec処理の必要性を指定する。
セキュリティアソシエーションの確立処理は、暗号鍵生成及び交換のために複雑であり、時間を要する。従って、セキュリティアソシエーション確立処理の一部は、送信元コンピュータ内及び宛先コンピュータシステム内のソフトウェアにより実行されてもよい。
拡張ヘッダテンプレートは、通常、対応するセキュリティアソシエーションが作成される際に作成される。この拡張ヘッダテンプレートの作成は、セキュリティアソシエーション確立のために使用された、送信元コンピュータ内のソフトウェアと同じソフトウェアにより実行されてもよい。
例えば、セキュリティポリシーが、特定の接続用のパケットに対して、認証及び一連の既知のIPアドレスを介したトンネリングを指定した場合、ルーティング拡張ヘッダテンプレートは、対応する認証セキュリティアソシエーションを作成する際に作成されるであろう。そのセキュリティアソシエーションがパケット上で呼び出された場合、そのテンプレートを常に使用できるよう、セキュリティアソシエーションをヘッダテンプレートにリンクする。
既存のセキュリティアソシエーションと同一の拡張ヘッダを使用して拡張すべきパケットを必要とする後続のセキュリティアソシエーションが確立された場合、これらのセキュリティアソシエーションは、既存の拡張ヘッダテンプレートを使用できる。この場合、これらの後続のセキュリティアソシエーションは、同一のヘッダテンプレートにリンクされるであろう。代わりに、後続のセキュリティアソシエーションの各々に対する新規の拡張ヘッダテンプレートを作成してもよい。
この例では、次に、セキュリティアソシエーションは、IPv4パケットが、IPv6ネットワークを介してトンネリングされるべきであることを指定してもよい。この場合、IPv6「タイプ0」のルーティング拡張ヘッダが、トンネリングされたパケットのルートの指定のために使用される。拡張ヘッダテンプレートは、指定されたルートの既知のIPアドレスを使用して作成される。通常、このルートはセキュリティアソシエーションが作成された際に、通知又は決定される。従って、セキュリティアソシエーションの有効期間中、拡張ヘッダテンプレートは、不変である。
元のIPv4パケットは、IPv6ネットワークを介してトンネリングされるため、IPv6ベースヘッダ、(拡張ヘッダテンプレートメモリからの)「タイプ0」ルーティング拡張ヘッダ及びIPsec認証ヘッダが、元のIPv4パケットの先頭に付加(prepend)される。
IPsec認証ヘッダ内の認証データは、IPv6ベースヘッダの一部、「タイプ0」ルーティング拡張ヘッダ、IPsec認証ヘッダの一部、及びオリジナルIPv4パケットを使用して算出される。しかしながら、認証データは送信元コンピュータシステムではなく、宛先コンピュータで現れるヘッダを使用して算出される。特に、「タイプ0」ルーティング拡張ヘッダは、トンネリングされたパケットがIPv6ネットワークを介して転送されるに連れて変更される。従って、IPsec認証ヘッダ内の認証データは、宛先コンピュータシステムで現れる状態を予測した「タイプ0」ルーティング拡張ヘッダを使用して算出される。
通常、セキュリティアソシエーションが作成される際に、宛先コンピュータにおいて検出されるような「タイプ0」ルーティング拡張ヘッダの予測も可能となる。従って、セキュリティアソシエーションが作成される際に、予測拡張ヘッダを拡張ヘッダテンプレートメモリ内に格納でき、予測拡張ヘッダはセキュリティアソシエーションの有効期間中不変である。
「タイプ0」ルーティング拡張ヘッダが使用される場合、予測ヘッダは、図16Aに示す形式(1002)を有してもよい。この予測ヘッダは、図15Aに示す形式(902)でもよい非予測(送信元)ヘッダと異なる。「タイプ0」ルーティング拡張ヘッダが使用される場合、予測ヘッダと非予測ヘッダの相違は、ヘッダに含まれるIPアドレス及び「残りセグメント(segments left)」フィールドである。
セキュリティアソシエーションをパケット処理のために使用する際に、拡張ヘッダ及び予測拡張ヘッダの両方が、テンプレートメモリから読み出される。
この例では、予測拡張ヘッダは、認証データの算出に使用され、一方、非予測(送信元)拡張ヘッダは、IPv6パケットの形成に使用されるであろう。
拡張ヘッダテンプレートは、1つ以上のセキュリティアソシエーションにより使用されている間、テンプレートメモリ内に残存するであろう。通常、セキュリティアソシエーションは、特定の期間の経過後、あるいは、特定の数のバイト又はパケットの処理に使用された後、終了する。通常、セキュリティアソシエーションの有効期間は、セキュリティアソシエーションの作成のために使用されたセキュリティポリシーにより決定される。
拡張ヘッダテンプレートが、セキュリティアソシエーションのいずれにも使用されない状態となった場合、その拡張ヘッダテンプレートは、新規の拡張ヘッダテンプレートにより上書きされてもよい。通常、テンプレートメモリの管理は、送信元コンピュータシステム内のソフトウェアにより行われる。このソフトウェアは、セキュリティアソシエーションの確立、及び拡張ヘッダテンプレートの作成においても使用される。
図4Aは、図1の汎用コンピュータをより詳細に示す図である。IPトンネリングの方法は、図4Aに示すような汎用コンピュータシステム1800と、図1〜図3及び図4Bに示す特定用途ハードウェアモジュール803との組み合わせの使用により実現できる。コンピュータ801とIPハードウェアモジュール803との間の機能配分は、可変であり、本明細書において説明される構成に限定されない。図7〜図13のプロセスは、コンピュータシステム1800内部で実行するトンネリングアプリケーションソフトウェアプログラム210等のソフトウェアとして実現されてもよい。
特に、IPトンネリング方法のステップは、トンネリングソフトウェア210内の命令により達成される。命令は、コンピュータ801及びモジュール803により実行される。命令は、1つ以上の特定のタスクを実行する1つ以上の各コードモジュールとして構成されてもよい。また、トンネリングソフトウェア210は、IPトンネリング方法を実行する第1の部分と、第1の部分とユーザとの間のユーザインタフェースを管理する第2の部分の2つの部分に分割されてもよい。ソフトウェア210は、例えば、以下に説明する記憶装置を含むコンピュータ可読媒体内に格納されてもよい。ソフトウェア210は、コンピュータ可読媒体からコンピュータ801内に読み込まれ、その後、コンピュータ801及びハードウェアモジュール803により実行される。このようなソフトウェア又はコンピュータプログラムが記録されたコンピュータ可読媒体は、コンピュータプログラムプロダクトである。コンピュータ内のコンピュータプログラムプロダクトの使用は、IPトンネリングを行うのに有用な装置を好ましく実現する。
コンピュータシステム1800は、コンピュータモジュール801と、キーボード1802及びマウス1803等の入力装置と、ディスプレイ1814及びスピーカ1817を含む出力装置とにより構成される。変調器−復調器(モデム)トランシーバ装置1816は、例えば、電話回線802又は他の機能媒体を介して接続可能な通信ネットワーク807との通信のために、コンピュータモジュール801により使用される。モデム1816は、インターネットへのアクセス、及びローカルエリアネットワーク(LAN)又は広域ネットワーク(WAN)等の他のネットワークシステムへのアクセスの獲得のために使用できる。モデム1816は、いくつかの実現例において、コンピュータモジュール801に内蔵されてもよい。
本例において、IP処理モジュール803は、専用の接続802を介してコンピュータ801に接続される。あるいは、IP処理モジュールが、ネットワークルータ又はネットワークスイッチ等の装置において実現された場合、ネットワーク807を介して、モジュール803をコンピュータ801に接続することも可能である。
コンピュータモジュール801は、通常、少なくとも1つのプロセッサユニット1805及びメモリユニット1806を含む。メモリユニット1806は、例えば、半導体ランダムアクセスメモリ(RAM)及び半導体読み出し専用メモリ(ROM)から構成される。また、モジュール801は、複数の入力/出力(I/O)インタフェースを含む。複数の入力/出力(I/O)インタフェースは、ビデオディスプレイ1814及びスピーカ1817に接続されるオーディオ/ビデオインタフェース1807と、キーボード1802、マウス1803及び必要に応じて設けられるジョイスティック(不図示)用のI/Oインタフェース1813と,モデム1816用に使用され、且つIP処理モジュール803と通信を行うインタフェース1808とを含む。
いくつかの実現例において、モデム1816は、インタフェース1808内等、コンピュータモジュール801に内蔵されていてもよい。記憶装置1809は、コンピュータモジュール801内に設けられ、通常、ハードディスクドライブ1810と、フロッピディスク1836を受け付けるフロッピディスクドライブ1811とを含む。更に、コンピュータモジュール801は、磁気テープドライブ(不図示)を使用してもよい。CD−ROM1835を受け付けるCD−ROMドライブ1812は、通常、データの不揮発性供給元として設けられる。コンピュータモジュール801の構成要素1805から構成要素1813は、通常、関連技術の当業者に知られるコンピュータシステム1800の従来の動作モードが得られるように、相互接続バス1804を介して通信を行う。上述の構成を実現可能なコンピュータの例は、複数のIBM−PCとその互換機と、Sun Sparcstations又はSun Sparcstationsから派生した類似のコンピュータシステムとを含む。
通常、トンネリングアプリケーションプログラム210は、ハードディスクドライブ1810上に常駐する。トンネリングアプリケーションプログラム210は、(コンピュータ801内の)プロセッサ1805及び(IP処理モジュール803内の)プロセッサ1831による実行時に読み出され、制御される。プログラム210及びネットワーク807から取り込まれた任意のデータの中間記憶は、半導体メモリ1806及び1832を使用して、或いはこれらメモリとハードディスクドライブ1810との協働により行うことができる。いくつかの例において、トンネリングアプリケーションプログラム210は、CD−ROM1835上又はフロッピディスク1836上に符号化され、対応するドライブ1812又はドライブ1811を介して読み取られた状態でユーザに提供されてもよい。あるいは、アプリケーションプログラム210は、モデム装置1816を介してネットワーク807からユーザにより読み取られてもよい。更に、ソフトウェアは、他のコンピュータ可読媒体からコンピュータシステム1800内に読み込むことも可能である。
本明細書で用いられる「コンピュータ可読媒体」とは、実行及び/又は処理のための命令及び/又はデータを、コンピュータシステム1800及びIPモジュール803へ供給する任意の記憶媒体又は伝送媒体である。記憶媒体の例には、フロッピディスク、磁気テープ、CD−ROM、ハードディスクドライブ、ROM又は集積回路、光磁気ディスク、又はPCMCIAカード等のコンピュータ可読カードが含まれる。これらの装置は、コンピュータモジュール801及びIPモジュール803の内部又は外部のいずれに設けられてもよい。伝送媒体の例は、無線送信チャネル又は赤外線送信チャネルと、別のコンピュータ又はネットワーク装置へのネットワーク接続と、電子メール送信及びウェブサイト等に記録された情報を含む、インターネット又はイントラネットとを含む。
図4Bは、図1のIPハードウェアモジュール803をより詳細に示す図である。IPハードウェアモジュール803は、プロセッサ1831と、メモリ1832とを有し、さらに、IPモジュール803を介してトンネリングアプリケーションソフトウェアを読み込むことが望ましい場合には、トンネリングアプリケーションソフトウェアを含むCD−ROM(不図示)を受け付けるためCD−ROMドライブ1833とを具備する。I/Oインタフェース1830は、矢印802で示すように,図1に示す送信元コンピュータ801との対話を提供する。
IPハードウェアモジュール803が、組み込み型コンピュータシステムであるか、又は組み込み型コンピュータシステムの一部を構成する場合、トンネリングアプリケーションソフトウェアは、メモリ1832内のROM内に組み込み可能であり、CD−ROMドライブ1833は存在しないであろう。
図5は、100として、IPパケット101及びIPパケット101がカプセル化されたトンネルパケット105を表す図である。IPパケット101は、IPヘッダ102、複数のIP拡張ヘッダ103及びペイロード104から構成される。トンネリング後、新規の(トンネル)IPパケット105が形成される。トンネルパケット105は、新規のIPヘッダ106と、複数の新規のIP拡張ヘッダ107と、IP拡張ヘッダ107に続くオリジナルIPパケット101のコピーであるペイロード102’+103’+104’とを有する。IPヘッダ102’は、IPヘッダ102のコピーである。IP拡張ヘッダ103’は、IP拡張ヘッダ103のコピーである。ペイロード104’は、ペイロード104のコピーである。
トンネルパケット105において、新規のIPヘッダ106を、外側IPヘッダと呼ぶ。IP拡張ヘッダ107を、外側IP拡張ヘッダと呼ぶ。これに対して、オリジナルIPヘッダ102のコピー102’を、内部IPヘッダと呼ぶ。また、オリジナルIP拡張ヘッダ103のコピー103’を、内部IP拡張ヘッダと呼ぶ。
尚、上述したように、外側IPヘッダ106は、通常、内部IPヘッダ102’からいくつかのフィールドをコピーすることにより形成できる。しかしながら、外側IP拡張ヘッダ107は、必ずしもオリジナルIPパケット101と関連付けされる必要はないので、外側IP拡張ヘッダ107の形成は、より複雑である。
図6は、トンネルパケットがIPsecヘッダを含む場合のパケットカプセル化の別の例400を示す図である。オリジナルIPパケット101は、IPヘッダ102とペイロード104とを含む。また、本例において、オリジナルIPパケット101は、IP拡張ヘッダ103を含む。パケット101のカプセル化により、新規のIPトンネルパケット401が形成される。このパケット401は、新規の外側IPヘッダ402と、オリジナルIPヘッダ102のコピー102’と、オリジナルIP拡張ヘッダ103のコピー103’とを含む。また、新規のパケット401は、さらにオリジナルペイロード104のコピー104’を含む。また、新規のパケット401は、認証ヘッダ等のIPsecヘッダ404を含む。IPsecヘッダ404は、IPsec処理の一部としてパケット401に追加される。また、新規のパケット401は、複数の新規(外側)のIP拡張ヘッダ403を含む。ヘッダ403は、開示されたIPトンネリングアプローチに従って、拡張ヘッダメモリ領域304(図3を参照)内に格納されたIP拡張ヘッダテンプレートから作成される。IPsec処理が、認証ヘッダ及びトンネルモードをパケット401に追加することを含む場合、図4のIPsecヘッダ404は、新規のIP拡張ヘッダ403を含むIPパケット401全体に適用される認証ヘッダである。この処理を、図9及び図10を参照してより詳細に説明する。
図7は、開示されたトンネリング技術に従って、予め規定されたテンプレートを生成し、これらのテンプレートを使用してIPパケットを処理するプロセスを示す図である。図示された2つの各プロセス1100及びプロセス1100’は、コンピュータ801上及びIPモジュール803上で稼動している、個別の、しかし相互に関連するプロセスモジュールとして実現できる。プロセス1100は、(i)メモリ領域304内に格納するための拡張ヘッダテンプレート及び(ii)拡張ヘッダテンプレートメモリ205のメモリ領域305(図2を参照)内に格納するための予測拡張ヘッダテンプレートの生成に関する。プロセス1100’では、開示されたトンネリング技術に従って、プロセス1100により生成された予め規定された複数のテンプレートを使用してパケット処理を行う。
プロセス1100の第1のステップ1101において、アプリケーションソフトウェア202及びトンネリングアプリケーションソフトウェア210のいずれか又は両方は、メモリ領域304内に格納するための拡張ヘッダテンプレートを生成する。続くステップ1113では、メモリ領域305内に格納するための対応する予測拡張ヘッダテンプレートを生成する。一般に、ステップ1101で生成された各拡張ヘッダテンプレートに対して、ステップ1113で、1つの対応する予測拡張ヘッダテンプレートが生成される。しかしながら、各拡張ヘッダテンプレートに対して、2つ以上の対応する予測拡張ヘッダテンプレートを生成することも可能である。ドライバソフトウェア201により実行されるステップ1102では、これらのテンプレートを、拡張ヘッダテンプレートメモリ205のメモリ領域304及びメモリ領域305内に格納する。プロセス1100は、テンプレート生成とメモリ領域304及びメモリ領域305内へのテンプレートの格納とを行う事前の(a priori)処理を表す。しかしながら、この処理は、開示された技法により使用可能な拡張ヘッダテンプレート又は他のテンプレートを、どのように生成しうるかの一例に過ぎない。
プロセス1100の例を考察するため、304として参照される拡張ヘッダテンプレートは、図15A及び図15Bを参照して説明するように、特定のタイプ0ルーティングオプションを内蔵している。対応する予測拡張ヘッダテンプレート305は、第1の拡張ヘッダテンプレート304のヘッダフィールドから導出された予測ヘッダフィールドを内蔵している。上述の予測動作は、認証ヘッダ要求に基づく。従って、予測拡張ヘッダテンプレート305は、拡張ヘッダテンプレート304との使用に最適な認証ヘッダ(図15Aの903等)が、その後、そのような認証ヘッダが要求されるような場合に判定されることを可能とする。
図7のプロセス1100’へ戻ると、アプリケーションソフトウェア202及びドライバソフトウェア201により実行される第1のステップ1103は、パケットAの受信及び/又は生成を行う。これにより、例えば、アプリケーションソフトウェア202は、パケットAを生成できる。あるいは、パケットAは、別のソフトウェア処理(不図示)から受信され、ドライバソフトウェア201に提供されることが可能である。その後、プロセッサ303により実行される決定ステップ1104では、IPsec処理又はトンネリング処理が必要か判定する。この判定は、セキュリティポリシーデータベース内のセキュリティポリシーにより確立されるであろう。もし必要であれば、矢印YESに従って、ステップ1107へ進む。
IPハードウェアモジュール803により実現されるステップ1107では、モジュール803がパケットAを操作し、拡張ヘッダテンプレートメモリ205内のテンプレートを使用して、それぞれ、A(非認証IPsec処理のみが実行される場合)、A(トンネリングのみが必要である場合)、A(トンネリング及びIPsec認証処理が実行される場合)、又はA(IPsec認証処理のみが実行される場合)と呼ばれるパケットを形成する。パケットA及びAは、それぞれ、図14のパケット700並びに図15A及び図15Bのパケット900/900’により示される。形態Aから形態A、A、A又はAへのパケット変換は、図9と関連してより詳細に説明する。
図7へ戻ると、ステップ1107の後、IPハードウェアモジュール803により実行されるステップ1105では、パケットA、A、A又はAをネットワーク807へ送信し、ネットワーク807によってパケットは宛先コンピュータ809へ送信される。ステップ1105の後、矢印1106に従って、ステップ1103へ戻る。検査ステップ1104へ戻り、IPsec処理及びトンネル処理のいずれも不要な場合、矢印NOに従って、ステップ1105へ進む。
要約すると、図7は、プロセス1100に従った、予め規定された複数のパケットフィールド(すなわち、メモリ領域304及び305内に格納されるテンプレート)の生成、及びプロセス1100’に従ったIPパケット処理時の、メモリ領域304及び305内に格納されたこれらのテンプレートの使用を表す図である。
図8は、図7のA等のパケットが生成されるプロセス1103(図7を参照)を示す図である。処理は、矢印1106に従って、図7から第1のステップ1501へ進む。プロセス1103は、送信用データを生成するステップ1501によって開始する。ステップ1501は、通常、アプリケーションソフトウェア202により実行される。その後、再び、アプリケーションソフトウェア202により実行されるステップ1502では、上記のデータをドライバソフトウェア201へ送信する。ドライバソフトウェア201により実行される、続くステップ1503では、上記のデータを、ハードウェアモジュール803内のIPエンジン203へ送信する。その後、IPエンジン203により実行されるステップ1504では、上記のデータからパケットAを形成する。次のステップ1505では、上記のパケットAをIPsecエンジン204に渡す。ステップ1505の後、矢印1112に従って、図7の検査ステップ1104へ戻る。
図9は、開示されたトンネリング技術に従って図7のパケットAを処理する、プロセス1107を示す図である。
IPsec処理において、通常、複数のIPデータグラムは、まず、セキュリティポリシーデータベース300と照合される。送信元IPアドレス、宛先IPアドレス、トランスポートプロトコル(例えばTCP(Transmission Control Protocol)又はUDP(User Datagram Protocol))、転送元(transport source)アドレス及び転送先(transport destination)アドレス等のIPパケットからの複数のフィールドは、データベース300内のセキュリティポリシーにおける複数のセレクタと比較される。
通常、各セキュリティポリシーは、一致ポリシー(matching policy)が発見されるまで順に照合される。個人ベース、サイトベース、機関ベース又は会社ベースでのセキュリティポリシー強化のために、セキュリティポリシーデータベース300は、通常、システム又はネットワーク管理者によりセットアップされる。一致ポリシーが、IPデータグラムが送信可能となる前に、IPsec処理が必要であることを示す場合、セキュリティアソシエーションデータベース301を検索する。一致ポリシーは、通常、チェックすべき最初のセキュリティアソシエーションを示す、セキュリティアソシエーションデータベース301へのインデックスを含む。通常、引き続くセキュリティアソシエーションは、最初のセキュリティアソシエーションから、リンクされたリストの形式によりリンクされる。また、各セキュリティアソシエーションは、通常、セキュリティポリシーデータベース300において使用される複数のセレクタと同一の複数のセレクタを有する。セレクタは、IPデータグラムに対する特定のセキュリティアソシエーションのよりきめ細かな選択を可能とする。
一致アソシエーションが発見されない場合、新規のセキュリティアソシエーションを、それぞれ、送信元コンピュータシステム801と宛先コンピュータシステム809との間でネゴシエートする必要がある。通常、このネゴシエーションは、インターネット鍵交換(IKE)等の複数の鍵交換プロトコルを使用して行われる。鍵生成及び鍵交換は、通常、複雑な手順であり、たいがいはソフトウェアドライバ201により処理されるであろうが、計算コストのかかる演算について、何らかの形でハードウェアを用いた高速化を用いることも可能である。どの型のセキュリティアソシエーションをネゴシエートするべきかを判定する複数のパラメータ(例えば、暗号アルゴリズム制限、鍵長さ制限、バイト制限及び/又は時間満了制限)は、通常、セキュリティポリシー内のフィールドからもたらされる。
セキュリティアソシエーションは一般に、オフされた機器を起動させることはなく、また、バイトカウント制限及び/又は時間満了により失効するため、通常、動的な性質を有する。セキュリティアソシエーションが失効すると、新規のアソシエーションを、その置き換えとしてネゴシエートする必要がある。この置き換えは、通常、新規の暗号鍵の生成を含む。一方で、セキュリティポリシーは通常、セキュリティに関するサイトポリシー、会社ポリシー又は機関ポリシーを反映するものであるため、より静的な傾向がある。
セキュリティアソシエーションは、セレクタに加え、実行されるべき特定の暗号演算の詳細を指定する。動作の指定に使用される典型的なパラメータは、AH/ESP、アルゴリズム、鍵、初期値、シーケンス番号、トランスポート/トンネルモード、バイトカウント及び時間満了を含む。
セキュリティアソシエーションと1つ以上のヘッダテンプレートとの間の関係が、有用であることは明らかである。トンネルモードにおいて、セキュリティアソシエーションが検出され、且つセキュリティアソシエーションが認証ヘッダの必要性を明示した場合、IPsecエンジン204は、暗号演算1201の実行前に、1つ以上の拡張ヘッダをデータグラムに追加する必要があるだろう。
セキュリティアソシエーションは、暗号パラメータに加え、ヘッダテンプレートメモリ205内の1つ以上のヘッダテンプレートへの1つ以上のインデックスを格納してもよい。あるいは、個別のヘッダインデックスデータベース302を、ヘッダテンプレートメモリへのインデックスを格納するために使用してもよい。後者の場合、セキュリティアソシエーションは、ヘッダインデックスデータベース302への単一のインデックスを格納し、ヘッダインデックスデータベース302は、ヘッダテンプレートメモリ205内への1つ以上のインデックスを格納する。
ヘッダテンプレートに対するこれらのインデックスの値は、通常、新規のセキュリティアソシエーションの作成処理の一部として、ソフトウェアドライバ201により初期化されるであろう。どのヘッダが必要であるかの詳細及びこれらのヘッダの内容は、通常、セキュリティについてのサイトポリシー、会社ポリシー又は全機関にわたるポリシーの一部として規定されるであろう。
図9のプロセス1107は、図7の処理における矢印1110に従って、パケット「A」に対するプロセス1107が指示されることにより開始する。検査ステップ1200では、認証を含まないIPsec処理がパケットAに対して必要であるかを判定する。この判定は、セキュリティアソシエーションデータベース内のセキュリティアソシエーションにより確立されうる。判定の結果、必要なら、矢印YESに従って、ステップ1201へ進む。IPsecエンジン204により実行されるステップ1201では、非認証IPsec処理に必要な暗号パラメータを読み出し、且つこの処理を実行することにより、パケットAからパケットAを形成する。その後、検査ステップ1202へ進む。
プロセッサ303(図3を参照)により実行されるステップ1202では、セキュリティアソシエーション内に格納された情報に基づいて、考慮すべき現在のパケットに対してトンネリングが必要か判定される。この判定は、セキュリティアソシエーションデータベース内のセキュリティアソシエーションにより確立されうる。必要であれば、矢印YESに従って、ステップ1207へ進む。プロセッサ303により実行されるステップ1207では、拡張ヘッダインデックスを、テンプレートインデックスデータベース302から読み出す。次に、ステップ1207では、このインデックスを使用して、それぞれ、拡張ヘッダテンプレートメモリ304から対応する拡張ヘッダのコピーを得、予測拡張ヘッダテンプレートメモリ305から対応する予測拡張ヘッダテンプレートのコピーを得る。その後、ステップ1208では、修正中間パケットAを形成するために、読み出された拡張ヘッダテンプレートのコピーをパケットA又はパケットA内に挿入する。また、ステップ1208では、予測ヘッダテンプレートコピーの修正も実行できる。この修正は、認証ヘッダ中の空白の「シーケンス番号」フィールドと、現在のシーケンス番号(セキュリティアソシエーションと関連付けられた暗号パラメータのうちの1つ)との置き換え、及び、タイプ0ルーティングヘッダ内の空白の「次ヘッダ」フィールドと、続くヘッダ又はトランスポートプロトコルのIPプロトコル番号との置き換えとを含む。
ステップ1208の後、検査ステップ1209に進み、IPsec認証が必要であるか判定される。この判定は、セキュリティアソシエーションデータベース内のセキュリティアソシエーションにより確立されうる。必要である場合、矢印YESに従って、ステップ1210へ進む。ステップ1210では、認証パラメータを、セキュリティアソシエーションデータベース301から読み出す。その後、ステップ1213では、認証処理を実行することにより、認証フィールドF(完全性チェック値(ICV))を判定し、それにより、パケットAを形成する。ステップ1213により実行された認証処理の少なくとも一部は、図11を参照してより詳細に説明するように、ステップ1208により処理された予測ヘッダテンプレートに対して実行される。続いて、矢印1214に従って、矢印線1111に従った図7へ戻る。ステップ1209へ戻り、認証が必要でない場合、矢印NOに従って、矢印線1111に従った図7へ戻る。
図9を参照して説明したプロセス1107では、複数の拡張ヘッダインデックスを読み出すためのステップ1207、及び複数の認証パラメータを読み出すためのステップ1210の2つのステップを使用するが、別の構成において、これらの動作は、より効率的に、ステップ1207の実行と同時に読み出されてもよい。
ステップ1202へ戻ると、トンネリングが必要でない場合、矢印NOに従って、ステップ1203へ進む。ステップ1203では、IPsec認証が必要か判定される。この判定は、セキュリティアソシエーションデータベース内のセキュリティアソシエーションにより確立されうる。必要であれば、矢印YESに従って、ステップ1204へ進む。プロセッサ303により実行されるステップ1204では、拡張ヘッダインデックスをテンプレートインデックスデータベース302から読み出し、このインデックスを使用して、拡張ヘッダテンプレートメモリ304内に格納される拡張ヘッダテンプレートを取得する。また、ステップ1204では、認証パラメータをセキュリティアソシエーションデータベース301から読み出す。また、ステップ1204では、拡張ヘッダを修正する可能性があるが、その場合は予測ヘッダの読み出し又は処理を行わない。
拡張ヘッダに対して実行可能な修正の例は、認証ヘッダ内の空白の「認証データ」フィールドの、IPsecエンジン204内に含まれるハードウェアにより算出された認証データグラムの完全性チェック値による置き換えと、認証ヘッダテンプレート内の空白の「シーケンス番号」フィールドの、現在のシーケンス番号(セキュリティアソシエーションと関連付けられた暗号パラメータのうちの1つ)による置き換えと、タイプ0ルーティングヘッダ内の空白の「次ヘッダ」フィールドの、続くヘッダ又はトランスポートプロトコルのIPプロトコル番号による置き換えとを含む。
その後、ステップ1205では、(修正)拡張ヘッダをパケットA内又はパケットA内に挿入することにより、中間パケットを形成する。次に、ステップ1205では、中間パケットの形成を受けて認証処理を実行することにより、パケットAを形成する。続いて、矢印1111に従って、図7へ戻る。ステップ1203へ戻って、認証が必要でない場合、矢印NO及び矢印1111に従って図7へ戻る。
図10は、図3の予測拡張ヘッダ記憶装置305内に格納される予測拡張ヘッダテンプレートを生成する、図7のプロセス1113を示す図である。第1のステップ1800では、一時メモリ(不図示)へ、拡張ヘッダテンプレート304のコピーを格納する。その後、ステップ1801では、拡張ヘッダテンプレート304の予測可能フィールドを修正することにより、初期予測拡張ヘッダテンプレート3041Aを形成する。次のステップ1802では、図7に関連して述べたように、初期テンプレート3041Aの予測不可能なフィールドを修正することにより、予測拡張ヘッダテンプレート305を形成する。拡張ヘッダテンプレート304と関連予測拡張ヘッダテンプレート305は、それぞれ図3の拡張ヘッダメモリ304及び予測拡張ヘッダ記憶装置305内に格納される。
図10のプロセス1801の実行のために、IPv4パケット上の認証アルゴリズムの実行時に、次のIPv4オプションは、「予測可能フィールド」とみなされる。従って、認証アルゴリズムの実行のために、次のIPv4オプションは、処理ヘッダ内又はヘッダの一部に含まれる:
・オプションの終了(end of options)
・動作無し(no operation)
・ルータ警告(router alert)
・同報通信の送信(send a directed multi-destination delivery)。
上述の予測可能フィールドは、修正せずに使用される。換言すれば、これらのオプションに対するヘッダテンプレート及び予測ヘッダテンプレートは、同一である。
次のIPv4オプションは、図10のステップ1802における「予測不可能なフィールド」とみなされ、ステップ1802においてゼロで置き換えられる:
・ルーズソースルーティング(loose source routing)
・タイムスタンプ
・レコードルート(経路記録)
・ストリクトソースルーティング(strict source routing)
・トレースルート(経路確認)。
次のIPv6拡張ヘッダは、ステップ1801において、宛先における予測値によって置き換えられる:
・タイプ0ルーティング。
従って、上述の構成において、全ての拡張ヘッダテンプレートは、対応する予測拡張ヘッダテンプレートを有するが、これらの予測拡張ヘッダテンプレートは、仕様に応じて異なるか、又は同一であるかが決定される。
尚、IPv6は、「オプション」と呼ばれるより小さいエンティティによって構成される2つの拡張ヘッダを更に有する。尚、これらの「オプション」は、IP拡張ヘッダ及び/又はIPv4パケットヘッダ内のオプションに関連して先に述べたオプションとは異なる。これらの「IPv6拡張ヘッダ内のオプション」は、オプションが認証算出に含まれるべきか否か、あるいは、算出のためにゼロで置き換えられるべきか否かを示すビットを含む。IPv6拡張ヘッダのこのようなオプションには:
・ホップバイホップオプション
・宛先オプション
がある。
図11は、図9のパケット認証を実行するプロセス1213(図9を参照)を示す図である。プロセス1209は、ステップ1300へ進む矢印1216に従って、図9の処理から開始する。ステップ1300では、パケットA内の拡張ヘッダテンプレートコピーの代わりに(修正)予測拡張ヘッダテンプレートコピーを用いることにより、中間パケットを形成する。次に、ステップ1300では、認証手順を中間パケットに適用することにより、認証フィールドFを判定する。その後、ステップ1301では、フィールドFを中間パケット内に挿入する。また、ステップ1301では、予測拡張ヘッダテンプレートの代わりに中間パケット内の拡張ヘッダテンプレートを用いることにより、パケットAを形成する。その後、矢印1214に従って図9へ戻る。
図12は、図2のハードウェア要素とソフトウェア要素との間のデータフロー500を表す図である。ステップ「3」において、ドライバソフトウェア201は、図7のプロセス1100に従って、拡張ヘッダテンプレート及び予測拡張ヘッダテンプレートを生成する。この生成は、場合により、アプリケーションソフトウェア202及びトンネリングアプリケーションソフトウェア210からの情報を使用して行われる。次のステップ「4」において、ドライバソフトウェア201は、拡張ヘッダテンプレートを拡張ヘッダテンプレートメモリ205内のメモリ領域304内に格納し、予測拡張ヘッダテンプレートを拡張ヘッダテンプレートメモリ205内のメモリ領域305内に格納する。次のステップ「1」は、アプリケーションソフトウェア202により生成されている送信用データを表す。次のステップ「2」は、アプリケーションソフトウェア202が上述のデータを、IPハードウェアモジュール803と通信可能なドライバソフトウェア201に、どのようにして転送するかを表す。その後、ステップ「5」において、ドライバソフトウェア201は、ステップ「1」でアプリケーションソフトウェア202により生成されたデータをIPエンジン203へ送信する。次のステップ「6」において、IPエンジン203は、ネットワーク807を介した送信用データをカプセル化するために、図8のプロセス1103に従って、そのデータからIPパケットを形成する。
次のステップ「7」において、IPエンジン203は、IPsec処理のために、上記のパケットをIPsecエンジン204のプロセッサ303に渡す。その後、ステップ「8」において、IPsecエンジン204は、IPsec処理が必要である場合、どのIPsec処理が必要であるかを判定する。これは、セキュリティポリシーデータベース300の検索、及びそれに続くセキュリティアソシエーションデータベース301の検索により判定される。続くステップ「9」において、IPsecエンジンは、拡張ヘッダテンプレートメモリ305から適切なIP拡張ヘッダテンプレート及び予測拡張ヘッダテンプレートを読み出す。IPトンネリングが必要であり、且つIP外側ヘッダ(IPv6が使用される場合)の後にIP拡張ヘッダが必要である場合、このようなテンプレートは、必要である。あるいは、オプションがIPヘッダ内で必要である場合、IPv4環境下において、テンプレートは必要である。
ステップ「9」は、図13を参照して説明するような方法により検索される拡張ヘッダテンプレートメモリ205に対する参照を使用して実行される。次のステップ「10」において、IPsecエンジン204は、IP拡張ヘッダテンプレートコピーを、IPパケット内に挿入する。これにより、この挿入の前のIP拡張ヘッダテンプレートのいくつかの部分は、修正される可能性がある。その後、ステップ「11」において、IPsecエンジン204は、対応する予測拡張ヘッダテンプレートを使用した認証ヘッダ生成により、更にパケットを処理する。続くステップ「12」において、IPsecエンジン204は、送信用の処理済みパケットをIPエンジン203に戻す。最後に、ステップ「13」において、IPエンジン203は、パケットをネットワーク807を介して送信する。
図13は、図12のデータフローをより詳細に示す図である。データフロー処理は、ステップ「7」によって開始する。ステップ「7」において、IPエンジン203は、IPsec処理のためのIPsecエンジン204のプロセッサ303にパケットを渡す。その後、ステップ「8A」において、IPsecエンジン204は、セキュリティポリシーデータベース300に照会し、IPsec処理が必要である場合、対象パケットに対してどのIPsec処理が必要であるかを判定する。その後、ステップ「8B」において、IPsecエンジン204は、セキュリティアソシエーションデータベース301からIPsec処理を実行するために必要な複数の暗号パラメータ(鍵、アルゴリズム等)を検索する。これは、ステップ「8A」に従ったIPsec処理が必要であることを前提とする。その後、ステップ「8C」において、IPsecエンジン204は、メモリ205内のIP拡張ヘッダテンプレート及び対応する予測拡張ヘッダテンプレートのアドレス位置と、テンプレートコピーが最終パケット内に現れるべき順序とを特定するリファレンスを、セキュリティアソシエーションデータベース301から読み出す。これは、ステップ「8A」によって、トンネルモード処理が必要である場合であり、そうでなければ、ステップ「8C’」において、IPsecエンジン204は、テンプレートインデックスデータベース302からの上記のリファレンスを読み出す。
宛先コンピュータ809は、パケット(あるいは、データグラムと称される)を受信すると、まず、データグラムがIPsecヘッダを含むか判定する。そして、IPsecヘッダがデータグラムに存在しない場合、データグラムの分配を決定するため、セキュリティポリシーデータベース(不図示)を調べる。分配は、データグラムの受け入れ又は破棄のいずれであってもよい。データグラムがIPsecヘッダを含む場合、適切なIPsec処理ステップが試行される。各IPsec処理ステップは、宛先コンピュータ809のセキュリティアソシエーションデータベース(不図示)内に、対応するセキュリティアソシエーションを必要とする。対応するセキュリティアソシエーションが存在しない場合、データグラムは破棄される。ある認証ヘッダについて、対応するセキュリティアソシエーションが存在する場合、その認証算出のための暗号パラメータはセキュリティアソシエーションから読み出され、データグラムに対する完全性チェック値(ICV)の算出のために使用される。データグラム内のいくつかのフィールドは算出から除外される。認証ヘッダ内の(ICVを格納する)認証データフィールドは、そのような除外フィールドの1つである。算出されたICVがデータグラム内のICVと一致し、且つ有効性に関する全ての他の条件が満足された場合(例えば、シーケンス番号が妥当である、バイトカウントが超過していない、又は満了時間を超過していない)、データグラムは、認証されたとみなされる。
受信データグラムについてのIPsec処理が全て終了した後、宛先コンピュータ809は、そのようなデータグラム内にどのIPsec処理の存在が予期されていたかを判定するため、セキュリティポリシーデータベース(不図示)を調べる。必要なIPsec処理が存在した場合、そのパケットは受入れられる。必要なIPsec処理が存在しない場合、パケットは破棄される。
図14は、IPv4パケット700を示す図である。IPv4パケット700は、2つの部分、すなわち、IPv4ヘッダ701及びTCPペイロード702から構成される。図1のネットワーク807のようなIPv6ネットワークを介してIPv4パケット700を送信するために、IPv4パケット700をトンネリング(すなわち、カプセル化)することができる。このトンネリングは、IPv4パケット700を新規のIPv6パケットのペイロードとして取り扱う場合、IPv6ヘッダの追加を必要とする。更に、本例において、生成されたIPv6パケットを、指定された方法でルーティングすることが望ましい。そのために、「タイプ0」ルーティング拡張ヘッダが組み込まれている。最後に、この特定の例において、IPv6パケットを認証することにより、「認証ヘッダ」をペイロードの前に追加することが望ましい。
図15A及び図15Bは、ルーティングオプション及び認証を含むIPv6トンネルパケット内にカプセル化された後の、図14のIPv4パケットを表す図である。図15A及び図15BのIPv6パケットは、符号900(図15A)及び符号900’(図15B)で参照される2つの部分により示されている。IPv6パケット部900は、ベースヘッダ901、IPv6タイプ0ルーティングヘッダ902及びIPsec認証ヘッダ903を有する。この特定の例は、パケットに指定された3つの中間IPv6アドレスを有する。このため、図15Aは、第1のIPv6中間アドレス904、第2のIPv6中間アドレス905、第3のIPv6中間アドレス906、及び最終のIPv6宛先アドレス907を示している。図15Bにおいて、IPv6パケットの第2の部分900’は、IPv4ヘッダ701’及びTCPペイロード702’を有する、元のIPv4パケット700のコピーを有している。
IPv6パケット(900及び900’)が、(807のような)ネットワークを介して送信される際、パケットは、まず、フィールド904に従って、第1の中間アドレスで指定される宛先へ送信される。パケットがこの宛先に到着すると、IPv6タイプ0ルーティングヘッダ902内の第2の中間アドレス905は、IPv6ベースヘッダ901の宛先アドレスフィールド内にある第1のIPv6中間アドレス904と交換される。そして、「残りセグメント」フィールド908が、デクリメントされる。
同様に、このIPv6パケットが、フィールド905に従って第2の中間アドレスで指定された宛先に到着すると、IPv6タイプ0ルーティングヘッダ902内の第3の中間アドレス906が、この時点でIPv6ベースヘッダ901の宛先アドレスフィールド内にある第2の中間アドレスと交換される。更に、「残りセグメント」フィールド908が再びデクリメントされる。最後に、IPv6パケットが、第3の中間アドレスで指定された宛先に到着すると、IPv6タイプ0ルーティングヘッダ902内の最終の宛先アドレス907が、この時点でIPv6ベースヘッダ901の宛先アドレスフィールド904内にある第3の中間アドレス906と交換され、「残りセグメント」フィールド908が、再度デクリメントされる。
このように、IPv6パケットがネットワーク807を介して最終の宛先へ向かうにつれ、タイプ0ルーティングヘッダ902が変化することがわかる。パケットが最終宛先で受信された際、図16A及び図16Bに示す形態を有する。この時点において、最終のIPv6宛先アドレスは、IPv6ベースヘッダ1001内にある。更に、第1〜第3の中間アドレスは、IPv6タイプ0ルーティングヘッダ1002内にある。最後に、「残りセグメント」フィールドは、0の値にデクリメントされている。従って、図16A及び図16Bは、パケットが図1の宛先コンピュータ809に到着した時の図15A及び図15Bのトンネルパケットを示す図である。
送信元コンピュータシステム801が、コンピュータ801から送信されるべきIPv6パケットに対する認証値を算出する場合、宛先コンピュータシステム809で受信されるであろうタイプ0ルーティングヘッダ値を予測する必要がある。そのため、タイプ0ルーティングヘッダを発信IPv6パケットに追加する場合、送信元コンピュータシステム801は、図17に示すタイプ0ルーティングヘッダを使用してIPv6パケットを作成する。これは、図15Aに示す902と同一であり、図3のメモリ領域304内に格納される「拡張ヘッダ」と呼ばれる。しかしながら、コンピュータシステム801により送信されるIPv6パケットに対する認証値903の算出には、図18に示すタイプ0ルーティングヘッダが使用される。これは、図3のメモリ領域305内に格納される「予測拡張ヘッダ」と呼ばれる。
このようにして、図17のルーティングヘッダ1601及び図18のルーティングヘッダ1701の両方が、拡張ヘッダテンプレートメモリ205内に格納される。より具体的には、ルーティングヘッダ1601は拡張ヘッダメモリ部分304内に格納され、ルーティングヘッダ1701は予測拡張ヘッダメモリ部分305内に格納される。
上述の構成が、コンピュータ産業及びデータ処理産業に適用できることは、上述の説明により明らかである。
先の説明は、本発明のごく一部の実施形態を説明したものであり、本発明の範囲及び精神を逸脱せずに、本発明の変形及び/又は変更を行うことができる。実施形態は、例証であって、限定的ではない。
開示されたIPトンネリングアプローチを実施可能なシステムのブロック図である。 図1の送信元コンピュータ及びIP処理モジュールの機能要素を示す図である。 図2のIPsecエンジン及び拡張ヘッダテンプレートメモリの機能要素を示す図である。 図1の汎用コンピュータをより詳細に示す図である。 図1のIPハードウェアモジュールをより詳細に示す図である。 IPパケット及び、IPパケットをカプセル化して得られるトンネルパケットを示す図である。 IPsecヘッダを含むパケットカプセル化の別の例を示す図である。 予め規定されたテンプレートを生成するプロセス、及びこれらのテンプレートを使用してIPパケットを処理するプロセスを示す図である。 図7のパケットの生成方法を示す図である。 開示されたトンネリング技術に従って図7のパケットの処理する方法を示す図である。 図7の予測拡張ヘッダテンプレートの包括的な生成プロセスを示す図である。 パケット認証を実行する図9のプロセスを示す図である。 図1のハードウェア要素とソフトウェア要素との間のデータフローを表す図である。 図12のセキュリティポリシーデータベース要素のデータフローをより詳細に示す図である。 IPv4パケットの例を示す図である。 ルーティングオプション及び認証ヘッダを含む、典型的なIPv6トンネルパケット内にカプセル化された図14のIPv4パケットを表す図である。 図1の宛先コンピュータへ図15A及び図15Bのトンネルパケットが到着した際の状態を示す図である。 図15A及び図15BのIPv6トンネルパケットの作成に使用された(タイプ0ルーティング)拡張ヘッダを示す図である。 上記トンネルパケットの認証値の算出に使用された(タイプ0ルーティング)拡張ヘッダを示す図。

Claims (11)

  1. IPパケットを処理する方法であって、
    パケットフィールドの複数の組を規定するステップと、
    規定されたパケットフィールドの組を記憶装置に格納するステップと、
    現在のIPパケットが処理対象であるか否かを判定するステップと、
    前記現在のIPパケットに適用されるべき処理を特定するステップと、
    前記特定された処理に応じて、前記格納されている、規定されたパケットフィールドの組のうちの少なくとも1つを選択するステップと、
    前記選択されたパケットフィールドの組のうちの少なくとも1つを使用して、前記現在のIPパケットを操作し、処理済みIPパケットを形成するステップとを有し、
    前記規定されたパケットフィールドの組の各々は、拡張ヘッダと、該拡張ヘッダと関連付けられ、かつ、前記IPパケットが宛先に到着した時の前記拡張ヘッダの状態を予測した予測拡張ヘッダとを有し、
    前記現在のIPパケットに対してトンネリング及び認証が施される場合、前記形成するステップは、
    前記格納された拡張ヘッダのコピー及び前記格納された予測拡張ヘッダのコピーを取得するステップと、
    前記格納された予測拡張ヘッダのコピーを使用して、中間IPパケットを形成するステップと、
    前記中間IPパケットの認証フィールドを生成するステップと、
    前記認証フィールド及び前記格納された拡張ヘッダのコピーを、前記現在のIPパケットに組み込んで、前記処理済みIPパケットを形成するステップとを有することを特徴とする方法。
  2. 前記予測拡張ヘッダは、
    前記拡張ヘッダの予測可能フィールドを修正して、初期予測拡張ヘッダを形成するステップと、
    前記初期予測拡張ヘッダの予測不可能なフィールドを変更して、前記予測拡張ヘッダを形成するステップにより形成されることを特徴とする請求項記載の方法。
  3. 前記判定するステップ及び前記特定するステップは、前記IPパケットに対するセキュリティポリシーを参照して実行され、
    さらに、前記現在のIPパケットに対するセキュリティアソシエーションを作成するステップを含み、前記選択するステップ及び前記形成するステップは、前記セキュリティアソシエーションに依存することを特徴とする請求項1記載の方法。
  4. 前記現在のIPパケットが認証される場合、前記形成するステップが、
    前記格納された拡張ヘッダのコピーを取得するステップと、
    前記格納された拡張ヘッダのコピーを前記現在のIPパケットに組み込んで、中間IPパケットを形成するステップと、
    前記中間IPパケットの認証フィールドを判定するステップと、
    前記認証フィールドを前記中間IPパケットに組み込み、前記処理済みIPパケットを形成するステップとを有することを特徴とする請求項記載の方法。
  5. IPパケットを処理する装置であって、
    パケットフィールドの複数の組を規定する手段と、
    前記規定されたパケットフィールドの組を記憶装置に格納する手段と、
    現在のIPパケットが処理対象であるか否かを判定する手段と、
    前記現在のIPパケットに適用されるべき処理を特定する手段と、
    前記特定された処理に応じて、前記格納されている、規定されたパケットフィールドの組のうちの少なくとも1つを選択する手段と、
    前記選択されたパケットフィールドの組のうちの少なくとも1つを使用して、前記現在のIPパケットを操作し、処理済みIPパケットを形成する手段とを有し、
    前記規定されたパケットフィールドの組の各々は、拡張ヘッダと、該拡張ヘッダと関連付けられ、かつ、前記IPパケットが宛先に到着した時の前記拡張ヘッダの状態を予測した予測拡張ヘッダとを有し、
    前記現在のIPパケットに対してトンネリング及び認証が施される場合、前記形成する手段は、
    前記格納された拡張ヘッダのコピー及び前記格納された予測拡張ヘッダのコピーを取得し、
    前記格納された予測拡張ヘッダのコピーを使用して、中間IPパケットを形成し、
    前記中間IPパケットの認証フィールドを生成し、
    前記認証フィールド及び前記格納された拡張ヘッダのコピーを、前記現在のIPパケットに組み込んで、前記処理済みIPパケットを形成することを特徴とする装置。
  6. 記拡張ヘッダの予測可能フィールドを修正して、初期予測拡張ヘッダを形成する手段と、
    前記初期予測拡張ヘッダの予測不可能なフィールドを変更して、前記予測拡張ヘッダを形成する手段とを更に有することを特徴とする請求項記載の装置。
  7. 記現在のIPパケットが認証される場合、前記形成する手段は、
    前記格納された拡張ヘッダのコピーを取得し、
    前記格納された拡張ヘッダのコピーを、前記現在のIPパケットに組み込んで、中間IPパケットを形成し、
    前記中間IPパケットの認証フィールドを判定し、
    前記認証フィールドを前記中間IPパケットに組み込み、前記処理済みIPパケットを形成することを特徴とする請求項記載の装置。
  8. コンピュータに、
    IPパケットを処理する方法であって、
    パケットフィールドの複数の組を規定するステップと、
    規定されたパケットフィールドの組を記憶装置に格納するステップと、
    現在のIPパケットが処理対象であるか否かを判定するステップと、
    前記現在のIPパケットに適用されるべき処理を特定するステップと、
    前記特定された処理に応じて、前記格納されている、規定されたパケットフィールドの組のうちの少なくとも1つを選択するステップと、
    前記選択されたパケットフィールドの組のうちの少なくとも1つを使用して、前記現在のIPパケットを操作し、処理済みIPパケットを形成するステップとを有し、
    前記規定されたパケットフィールドの組の各々は、拡張ヘッダと、該拡張ヘッダと関連付けられ、かつ、前記IPパケットが宛先に到着した時の前記拡張ヘッダの状態を予測した予測拡張ヘッダとを有し、
    前記現在のIPパケットに対してトンネリング及び認証が施される場合、前記形成するステップは、
    前記格納された拡張ヘッダのコピー及び前記格納された予測拡張ヘッダのコピーを取得するステップと、
    前記格納された予測拡張ヘッダのコピーを使用して、中間IPパケットを形成するステップと、
    前記中間IPパケットの認証フィールドを生成するステップと、
    前記認証フィールド及び前記格納された拡張ヘッダのコピーを、前記現在のIPパケットに組み込んで、前記処理済みIPパケットを形成するステップとを有する方法の各ステップを実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体。
  9. らに、前記方法は、
    前記拡張ヘッダの予測可能フィールドを修正して、初期予測拡張ヘッダを形成するステップと、
    前記初期予測拡張ヘッダの予測不可能なフィールドを変更して、前記予測拡張ヘッダを形成するステップとを更に有することを特徴とする請求項記載のコンピュータ読み取り可能な記録媒体。
  10. さらに、
    記現在のIPパケットが認証される場合、前記形成するステップは、
    前記格納された拡張ヘッダのコピーを取得するステップと、
    前記格納された拡張ヘッダのコピーを、前記現在のIPパケットに組み込んで、中間IPパケットを形成するステップと、
    前記中間IPパケットの認証フィールドを判定するステップと、
    前記認証フィールドを前記中間IPパケットに組み込み、前記処理済みIPパケットを形成するステップとを有することを特徴とする請求項記載のコンピュータ読み取り可能な記録媒体。
  11. コンピュータに、
    IPパケットを処理する方法であって、
    パケットフィールドの複数の組を規定するステップと、
    規定されたパケットフィールドの組を記憶装置に格納するステップと、
    現在のIPパケットが処理対象であるか否かを判定するステップと、
    前記現在のIPパケットに適用されるべき処理を特定するステップと、
    前記特定された処理に応じて、前記格納されている、規定されたパケットフィールドの組のうちの少なくとも1つを選択するステップと、
    前記選択されたパケットフィールドの組のうちの少なくとも1つを使用して、前記現在のIPパケットを操作し、処理済みIPパケットを形成するステップとを有し、
    前記規定されたパケットフィールドの組の各々は、拡張ヘッダと、該拡張ヘッダと関連付けられ、かつ、前記IPパケットが宛先に到着した時の前記拡張ヘッダの状態を予測した予測拡張ヘッダとを有し、
    前記現在のIPパケットに対してトンネリング及び認証が施される場合、前記形成するステップは、
    前記格納された拡張ヘッダのコピー及び前記格納された予測拡張ヘッダのコピーを取得するステップと、
    前記格納された予測拡張ヘッダのコピーを使用して、中間IPパケットを形成するステップと、
    前記中間IPパケットの認証フィールドを生成するステップと、
    前記認証フィールド及び前記格納された拡張ヘッダのコピーを、前記現在のIPパケットに組み込んで、前記処理済みIPパケットを形成するステップとを有する方法の各ステップを実行させるためのプログラム。
JP2005088964A 2004-03-26 2005-03-25 テンプレートを使用したインターネットプロトコルトンネリング Expired - Fee Related JP4018701B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
AU2004901658A AU2004901658A0 (en) 2004-03-26 Internet Protocol Tunnelling Using Templates

Publications (3)

Publication Number Publication Date
JP2005287034A JP2005287034A (ja) 2005-10-13
JP2005287034A5 JP2005287034A5 (ja) 2006-12-28
JP4018701B2 true JP4018701B2 (ja) 2007-12-05

Family

ID=34842370

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005088964A Expired - Fee Related JP4018701B2 (ja) 2004-03-26 2005-03-25 テンプレートを使用したインターネットプロトコルトンネリング

Country Status (5)

Country Link
US (1) US7430204B2 (ja)
EP (1) EP1580958B1 (ja)
JP (1) JP4018701B2 (ja)
AT (1) ATE492109T1 (ja)
DE (1) DE602005025270D1 (ja)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4401864B2 (ja) * 2004-05-17 2010-01-20 パナソニック株式会社 パケット生成方法、通信方法、パケット処理方法及びデータ構造
US7409550B2 (en) * 2004-08-16 2008-08-05 Mitsubishi Electric Research Laboratories, Inc. Method for binding networked devices
KR100715679B1 (ko) * 2005-12-05 2007-05-09 한국전자통신연구원 인증 암호화를 통해 보안 전송을 가능하게 하는 gpon시스템 및 그 인증 암호화 방법
FR2895624B1 (fr) * 2005-12-23 2008-05-02 Alcatel Sa Noeud de reseau de transport, a adjonction de donnees temporelles a des donnees d'ingenierie de trafic
US20070186281A1 (en) * 2006-01-06 2007-08-09 Mcalister Donald K Securing network traffic using distributed key generation and dissemination over secure tunnels
US8082574B2 (en) * 2006-08-11 2011-12-20 Certes Networks, Inc. Enforcing security groups in network of data processors
US20080072281A1 (en) * 2006-09-14 2008-03-20 Willis Ronald B Enterprise data protection management for providing secure communication in a network
US8284943B2 (en) * 2006-09-27 2012-10-09 Certes Networks, Inc. IP encryption over resilient BGP/MPLS IP VPN
WO2008064719A1 (en) 2006-11-30 2008-06-05 Telefonaktiebolaget Lm Ericsson (Publ) Packet handling in a mobile ip architecture
US7864762B2 (en) * 2007-02-14 2011-01-04 Cipheroptics, Inc. Ethernet encryption over resilient virtual private LAN services
US20090073971A1 (en) * 2007-09-19 2009-03-19 Pouya Taaghol Per-packet quality of service support for encrypted ipsec tunnels
JP5288470B2 (ja) * 2009-02-27 2013-09-11 日本電気通信システム株式会社 通信装置およびその処理方法ならびにそのプログラム
JP5601251B2 (ja) 2011-03-10 2014-10-08 富士通株式会社 通信方法および通信システム
CN103067199B (zh) * 2012-12-19 2015-11-25 华为技术有限公司 深度报文检测结果扩散方法及装置
US9866339B1 (en) * 2013-10-24 2018-01-09 Marvell Israel (M.I.S.L) Ltd. Method and apparatus for securing clock synchronization in a network
US9762683B2 (en) * 2014-09-30 2017-09-12 A 10 Networks, Incorporated Use of packet header extension for geolocation/geotargeting
US10257099B2 (en) 2014-09-30 2019-04-09 A 10 Networks, Incorporated Applications of processing packets which contain geographic location information of the packet sender
US10256992B2 (en) * 2014-10-30 2019-04-09 Hewlett Packard Enterprise Development Lp Tunnel encapsulation
EP3410665B1 (en) * 2017-05-30 2020-01-01 Mastercard International Incorporated System and method to route data in networks
US10778578B2 (en) * 2017-08-31 2020-09-15 Konica Minolta Laboratory U.S.A., Inc. Method and system having an application for IPv6 extension headers and destination options
CA3086895A1 (en) * 2017-11-20 2019-05-23 Mako Networks NZ Limited Method and system for transmitting data
CN114827019B (zh) * 2018-07-13 2023-08-22 华为技术有限公司 用于在网业务的mpls扩展头

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7167927B2 (en) * 1997-10-14 2007-01-23 Alacritech, Inc. TCP/IP offload device with fast-path TCP ACK generating and transmitting mechanism
US6226680B1 (en) * 1997-10-14 2001-05-01 Alacritech, Inc. Intelligent network interface system method for protocol processing
US5937169A (en) * 1997-10-29 1999-08-10 3Com Corporation Offload of TCP segmentation to a smart adapter
US7333484B2 (en) * 1998-08-07 2008-02-19 Intel Corporation Services processor having a packet editing unit
US6526446B1 (en) * 1999-04-27 2003-02-25 3Com Corporation Hardware only transmission control protocol segmentation for a high performance network interface card
US7478427B2 (en) * 2003-05-05 2009-01-13 Alcatel-Lucent Usa Inc. Method and apparatus for providing adaptive VPN to enable different security levels in virtual private networks (VPNs)

Also Published As

Publication number Publication date
US20050232277A1 (en) 2005-10-20
US7430204B2 (en) 2008-09-30
EP1580958A1 (en) 2005-09-28
ATE492109T1 (de) 2011-01-15
EP1580958B1 (en) 2010-12-15
JP2005287034A (ja) 2005-10-13
DE602005025270D1 (de) 2011-01-27

Similar Documents

Publication Publication Date Title
JP4018701B2 (ja) テンプレートを使用したインターネットプロトコルトンネリング
US7346770B2 (en) Method and apparatus for traversing a translation device with a security protocol
EP1203477B1 (en) Protection of communications
US6751728B1 (en) System and method of transmitting encrypted packets through a network access point
US20080126796A1 (en) Node device and communication control method for improving security of packet communications
US7036010B2 (en) Method and apparatus for a secure communications session with a remote system via an access-controlling intermediate system
EP1435582A2 (en) Hash algorithm and policy management
US7797741B2 (en) System and method for coping with encrypted harmful traffic in hybrid IPv4/IPv6 networks
GB2357229A (en) Security protocol with messages formatted according to a self describing markup language
JP2004364305A (ja) ネットワークフィルタベースのポリシーを管理するための方法
JP2016025658A (ja) インタレストリターン制御メッセージ
EP1639780B1 (en) Security for protocol traversal
KR100839941B1 (ko) IPSec 설정정보와 세션정보를 이용한 비정상IPSec 트래픽 제어 시스템 및 그 제어 방법
US20040088536A1 (en) Method and apparatus for providing trusted channel among secure operating systems adopting mandatory access control policy
US9467471B2 (en) Encrypted communication apparatus and control method therefor
JP2008311939A (ja) ネットワーク通信機器
AU2005201275B2 (en) Internet protocol tunnelling using templates
Tange et al. rTLS: Lightweight TLS session resumption for constrained IoT devices
US20100275008A1 (en) Method and apparatus for secure packet transmission
EP2499799B1 (en) Security association management
JP2009060245A (ja) 通信制御方法、プログラム及び通信装置
JP2001111612A (ja) 情報漏洩防止方法およびシステム並びに情報漏洩防止プログラムを記録した記録媒体
JP2005167870A (ja) データ処理方法およびデータ処理装置
AU2005220270A1 (en) A method of efficiently identifying security association information for IPsec processing
JP2004157164A (ja) メッセージダイジェスト生成回路およびパディング回路

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20061114

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20070315

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070508

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070706

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20070910

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20070920

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100928

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100928

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110928

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110928

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120928

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120928

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130928

Year of fee payment: 6

LAPS Cancellation because of no payment of annual fees