JP4367106B2 - ネットワーク、通信ノード及びそれらに用いるセキュリティ方法並びにそのプログラム - Google Patents

ネットワーク、通信ノード及びそれらに用いるセキュリティ方法並びにそのプログラム Download PDF

Info

Publication number
JP4367106B2
JP4367106B2 JP2003394852A JP2003394852A JP4367106B2 JP 4367106 B2 JP4367106 B2 JP 4367106B2 JP 2003394852 A JP2003394852 A JP 2003394852A JP 2003394852 A JP2003394852 A JP 2003394852A JP 4367106 B2 JP4367106 B2 JP 4367106B2
Authority
JP
Japan
Prior art keywords
mtu
packet
message
communication node
confirmation
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
JP2003394852A
Other languages
English (en)
Other versions
JP2005159688A (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.)
NEC Corp
Original Assignee
NEC Corp
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
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP2003394852A priority Critical patent/JP4367106B2/ja
Publication of JP2005159688A publication Critical patent/JP2005159688A/ja
Application granted granted Critical
Publication of JP4367106B2 publication Critical patent/JP4367106B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Description

本発明はネットワーク、通信ノード及びそれらに用いるセキュリティ方法並びにそのプログラムに関し、特にに関する。
従来、この種の通信ノードにおいては、IP(Internet Protocol)トンネリングによって構成した仮想リンクを複数終端し、それらの仮想リンクを通るIPパケットを中継する装置であり、公衆IPネットワーク上において仮想ネットワークを構成する等の目的で用いられている。
従来の通信ノードは、図19に示すように、入力IF(インタフェース)61と、IPパケット入力処理手段62と、セキュリティ処理手段63と、デカプセル化処理手段64と、IPパケット出力処理手段65と、出力IF66と、終端する仮想リンク数以上の数の仮想出力IF67−1〜67−nと、ICMP MTU(Internet Control Message Protocol Maximum Transmission Unit)処理手段68とを備えている。
入力IF61はリンクレイヤ以下の処理を担当するデータ入力インタフェースであり、すなわちネットワークから受信した電気的信号や電磁波的信号を解釈して得られたIPパケットをIPパケット入力処理手段62に渡す手段である。
IPパケット入力処理手段62はセキュリティ処理手段63以外からIPパケットが入力されると、そのパケットの終点アドレスが通信ノード6のIPアドレス以外である場合、そのパケットをIPパケット出力処理手段65に渡す。それ以外のパケットについては、フラグメント化されていればリアセンブリ処理を行い、そのIPパケットをセキュリティ処理手段63に渡す。
IPパケット入力処理手段62はセキュリティ処理手段63からIPパケットが渡されると、それをパケットの種類に応じて選択した次の機能ブロックに渡す。すなわち、IPパケット入力処理手段62はペイロードに別のIPパケットを格納するカプセル化パケットであればデカプセル化処理手段64に渡し、後述のICMP MTUメッセージを格納するパケットであればICMP MTU処理手段68に渡す。
セキュリティ処理手段63はIPsec(IP security protocol)形式のIPパケットが渡されると、IPsec SA(Security Association)を特定し、SAのパラメタに基づいてICV(Integrity Check Value)のチェックや復号化、セレクタのチェックを行い、これらを通ったIPパケットをIPパケット入力処理手段62に渡す。
デカプセル化処理手段64はIPパケットが渡されると、そのIPパケットに対してデカプセル化処理を行う。すなわち、デカプセル化処理手段64は渡されたIPパケットのペイロードからIPパケット(インナパケット)を取出し、そのインナパケットをIPパケット入力処理手段62に渡す。
IPパケット出力処理手段65はIPパケットが渡されると、セキュリティポリシに適うSAを選択し、そのSAの指定するパラメタにしたがってIPパケットへのIPsecのヘッダやトレイラ、認証データの付与及びペイロードの暗号化を行い、その結果のIPパケットの終点アドレスに基づいてそのIPパケットを渡す出力IFを決定し、その出力IFにそのIPパケットを渡す。
但し、IPパケット出力処理手段65はIPパケットを出力IFに渡す際に、そのIPパケットのパケット長(オクテット数)が、その出力IFのMTU値及びパケットの終点アドレスに応じて適用すべきMTU値を知り得た場合、その値のいずれかを超えると、適切にフラグメント処理をした上でその出力IFに渡す。
出力IF66はIPパケットが渡されると、そのパケットに対してリンクレイヤ以下の処理を行い、電気的信号や電磁波的信号としてネットワークに送信する。
仮想出力IF67−1〜67−nは仮想的な出力IFであり、IPパケット出力処理手段65から見て出力IF66と同等の出力IFとみなされるが、リンクレイヤ以下の処理を行う代わりにカプセル化処理を行う。すなわち、仮想出力IF67−1〜67−nはIPパケットを渡される毎に新しいIPパケット(アウタパケット)を作成し、渡されたIPパケットをアウタパケットのペイロードとして格納し、そのアウタパケットをIPパケット出力処理手段65に渡す処理を行う。
仮想出力IF67−1〜67−nはアウタパケットを作成する際にその終点アドレスとして仮想出力IF67−1〜67−n毎に予め設定されたアドレスを用いる。
ICMP MTU処理手段68はICMP MTUメッセージを格納するIPパケットが渡されると、そのICMP MTUメッセージの形式チェックと、当該メッセージの指定するMTU値が妥当であるかどうかのチェックを行う。
ICMP MTU処理手段68はそれらチェックに適う場合、そのメッセージの格納するIPパケットの終点アドレスと同じアドレスを終点アドレスとするパケットに適用するMTU値をそのメッセージの指定するMTU値にするようにIP出力処理手段65に指示する(例えば、非特許文献1参照)。
上記のセキュリティ処理手段63は図20に示すような動作を行う。図20においては、セキュリティ処理手段63がIPsec形式すなわちAH(Authentication Header)形式またはESP(Encapsulating Security Payload)形式のIPパケットが渡された時に行う処理を示している。
セキュリティ処理手段63は、まずパケットの終点アドレス、SPI(Security Parameter Index)値、パケットのIPsec形式(AH形式とESP形式とのどちらであるか)の3つの情報から、そのパケットに適用するSAを特定する(図20ステップS101)。
セキュリティ処理手段63はSAが特定できた場合、ICVのチェックを行い、パケットが改ざんされたものであるかどうかを判断する(図20ステップS103,S104)。セキュリティ処理手段63は改ざんされていないと判断された場合、パケットの復号化を行う(図20ステップS105)。但し、AH形式で暗号化されていないパケットの場合には復号化を行わない。
次に、セキュリティ処理手段63はパケットのセレクタのチェック、すなわち、パケットの始点アドレス、終点アドレス、トランスポートレイヤの情報等から特定されるセキュリティポリシを満足する改ざんチェックや暗号化がされていたかを判断し(図20ステップS107)、セキュリティポリシを満足する場合、受け入れ可能として、パケットをIPパケット入力処理手段62に渡し(図20ステップS108)、そのパケットについての処理を終了する。
一方、セキュリティ処理手段63はSAが特定できなかった場合(図20ステップS102)、改ざんされていると判断された場合(図20ステップS104)、セキュリティポリシを満足しない場合(図20ステップS107)、パケットを破棄し(図20ステップS109)、そのパケットについての処理を終了する(例えば、非特許文献2参照)。
次に、上記のICMP MTU処理手段68の動作について図21を参照して説明する。ここで、ICMP MTU処理手段68で処理されるICMP MTUメッセージとは、Destination Unreachableメッセージ(例えば、非特許文献3参照)及びPacket Too Bigメッセージ(例えば、非特許文献4参照)を総称したものである。また、図21はICMP MTU処理手段68がICMP MTUメッセージを受けた時に行う処理を示している。
ICMP MTU処理手段68は、まずICMP MTUメッセージが形式を満たしているかどうかをチェックし(図21ステップS111)、メッセージのチェックサムが整合した場合や、メッセージが格納するIPパケットに異常がない等、形式を満たしている時(図21ステップS112)、メッセージが格納するIPパケットの終点アドレスを変数Xに代入し、メッセージが指定するMTU値を変数Mに代入する(図21ステップS113)。
ICMP MTU処理手段68は、変数Mの値がMTU値として小さすぎず、かつ変数Mの値が終点アドレスXのIPパケットに対して現在適用されているMTU値以上でない場合、妥当な値であると見なし(図21ステップS114)、IP出力処理手段に対して変数Xを終点アドレスとするパケットに適用するMTU値を変数Mに設定し(図21ステップS115)、そのICMP MTUメッセージの処理を終了する。
また、ICMP MTU処理手段68は、メッセージのチェックサムが整合しなかった場合や、メッセージが格納するIPパケットに異常がある等の形式を満たしていない時(図21ステップS112)、変数Mの値がMTU値として小さすぎる場合や、変数Mの値が終点アドレスXのIPパケットに対して現在適用されているMTU値以上である場合に妥当な値ではないと見なした時(図21ステップS114)、メッセージについてそれ以上の処理をすることなく(図21ステップS116)、そのICMP MTUメッセージの処理を終了する。
小早川知昭著、「IPsec徹底入門」、翔泳社、2002年8月6日、pp.268−274 小早川知昭著、「IPsec徹底入門」、翔泳社、2002年8月6日、pp.61−63 J・モーガル(J.Mogul)他著、「Path MTU Discovery」、Internet RFC 1191、米国、Internet Engineering Task Force(IETF)、1990年11月、pp.6−7 A・コンタ(J.Conta)他著、「Internet Control Message Protocol(ICMPv6) for the Internet Protocol Version 6(IPv6) Specification」、Internet RFC 2463、米国、Internet Engineering Task Force(IETF)、1998年12月、p.8
上述した従来の通信ノードでは、セキュリティ処理手段にて仮想リンクを構成するアウタパケットの始点アドレスをチェックしているが、アウタパケットがペイロードとして格納されかつ仮想リンクを通るIPパケット(インナパケット)の始点アドレスがチェックされないため、インナパケットが始点アドレスの詐称を行うことが可能となっている。
仮想リンクを構成する手段としてトンネルモードのIPsecを用いた場合には、セキュリティ処理手段がインナパケットの始点アドレスをもチェックするが、そのチェックがSAのネゴシエーション時に定めたパラメタに基づいてのものであり、すなわちSAネゴシエーション時以降にインナパケットの始点アドレスの範囲が変化する場合には正しくチェックを行うことができない。
例えば、エンドホストが動的アドレスを用いている場合には、インナパケットの始点アドレスが変化するため、適切なチェックを行うことができない。また、通信ノードにおいて、IPsecのトンネルモードを用いずにトランスポートモードを用いる場合には、セキュリティ処理手段がインナパケットの始点アドレスを全くチェックしない。
また、従来の通信ノードでは、ICMP MTUメッセージが正当なものかを確認する手段を持たず、正当でないICMP MTUメッセージの提示するMTU値を適用したり、逆に正当であるICMP MTUメッセージを無視したりすることで、本来適用すべきMTU値と異なる値を適用してしまうため、IPパケットのパケット長が適切に制御されず、通信効率が悪くなる。
この背景としては、現実のIPネットワーク上においてICMP MTUメッセージの多くがIPsec非対応のルータが発することも多いことが挙げられる。そのため、ICMP MTUメッセージは現実的にその正当性を直接確認出来ない。図22に示す例では、通信ノード71,72がIPトンネリングによってネットワーク131上で仮想リンク111を設けており、この仮想リンク111の経路の途中に介在するルータ73がICMP MTUメッセージ122を通信ノード71に送っている例を示している。
しかしながら、ここに悪意を持つ者が攻撃端末74からICMP MTUメッセージ123をルータ73のIPアドレスを始点アドレスとして詐称したIPパケットに載せて通信ノード71に送った場合には、ルータ73がICMP MTUメッセージ122をIPsecパケットに載せて送らない限りにおいて、通信ノード71にとってICMP MTUメッセージ122とICMP MTUメッセージ123とのどちらが正当なものであるのか、すなわち通信ノード71から通信ノード72への経路上に実在するルータから送られたものであるのかどうかの判断ができない。よって、通信ノード71ができることは、ICMP MTUメッセージを全て受け入れるか、全て拒絶するかのいずれかである。
通信ノード71がICMP MTUメッセージを全て受け入れた場合には、攻撃端末74からのICMP MTUメッセージ123を受け入れることになり、必要以上に小さいMTU値が設定されてしまうことで仮想リンク111を構成するアウタパケットに対して不必要なフラグメント化処理が行われてしまい、通信ノード71から通信ノード72への通信の効率が悪くなる。
一方、通信ノード71がICMP MTUメッセージを全て拒絶する場合には、ルータ73からのICMP MTUメッセージ122をも拒絶することになり、通信ノード72に宛てたパケットには適切なMTUより大きな値が適用されるため、ルータ73等の経路上のルータにおいてアウタパケットが破棄されたり、アウタパケットがフラグメント化される処理にオーバヘッドが加わったりすることで、やはり通信ノード71から通信ノード72への通信の効率が悪くなる。
そこで、本発明の目的は上記の問題点を解消し、インナパケットによる始点アドレスの詐称を防止することができるネットワーク、通信ノード及びそれらに用いるセキュリティ方法並びにそのプログラムを提供することにある。
また、本発明の他の目的は、通信ノードが送信するIPパケットについて不必要なフラグメント化処理が行われる可能性やパケットが通信経路途上で破棄される可能性を小さくすることができ、通信効率を向上させることができるネットワーク、通信ノード及びそれらに用いるセキュリティ方法並びにそのプログラムを提供することにある。
本発明によるネットワークは、認証情報の付与を行ったパケットを用いて構成した仮想リンクを複数終端し、前記パケットを前記仮想リンク間で中継する通信ノードを含むネットワークであって、
前記仮想リンクを通るIPパケットの始点アドレスをチェックするセキュリティ処理手段と、前記始点アドレスチェックのために必要な情報を前記セキュリティ処理手段に提供するデータベースとを前記通信ノードに備え
ICMP MTU(Internet Control Message Protocol Maximum Transmission Unit)メッセージの正当性を確認するMTU(Maximum Transmission Unit)確認手段を前記通信ノードに含み、
前記MTU確認手段は、他の通信ノード宛てのパケットに適用すべきMTUを指示するICMP MTUメッセージを受け取った時に当該ICMP MTUメッセージが正当であればフラグメント化されるはずのパケット長となる長さのMTU確認要求メッセージを前記他の通信ノードに送信し、
前記MTU確認手段は、前記他の通信ノードから前記MTU確認要求メッセージを受信した時に当該MTU確認要求メッセージのIPパケットがフラグメント化されていたかどうかを示す情報を含むMTU確認応答メッセージを前記他の通信ノードに送信し、
前記MTU確認手段は、前記他の通信ノードから前記MTU確認応答メッセージを受信した時に当該MTU確認応答メッセージに基づいて前記ICMP MTUメッセージ通りに前記MTU確認要求メッセージのIPパケットがフラグメント化されていたかどうかを判定している。
本発明による他のネットワークは、認証情報の付与を行ったパケットを用いて構成した仮想リンクを複数終端し、前記パケットを前記仮想リンク間で中継する通信ノードを含むネットワークであって、
ICMP MTU(Internet Control Message Protocol Maximum Transmission Unit)メッセージの正当性を確認するMTU(Maximum Transmission Unit)確認手段を前記通信ノードに備え、
前記MTU確認手段は、他の通信ノード宛てのパケットに適用すべきMTUを指示するICMP MTUメッセージを受け取った時に当該ICMP MTUメッセージが正当であればフラグメント化されるはずのパケット長となる長さのMTU確認要求メッセージを前記他の通信ノードに送信し、
前記MTU確認手段は、前記他の通信ノードから前記MTU確認要求メッセージを受信した時に当該MTU確認要求メッセージのIPパケットがフラグメント化されていたかどうかを示す情報を含むMTU確認応答メッセージを前記他の通信ノードに送信し、
前記MTU確認手段は、前記他の通信ノードから前記MTU確認応答メッセージを受信した時に当該MTU確認応答メッセージに基づいて前記ICMP MTUメッセージ通りに前記MTU確認要求メッセージのIPパケットがフラグメント化されていたかどうかを判定している。
本発明による通信ノードは、認証情報の付与を行ったパケットを用いて構成した仮想リンクを複数終端し、前記パケットを前記仮想リンク間で中継する通信ノードであって、
前記仮想リンクを通るIPパケットの始点アドレスをチェックするセキュリティ処理手段と、前記始点アドレスチェックのために必要な情報を前記セキュリティ処理手段に提供するデータベースとを備え
ICMP MTU(Internet Control Message Protocol Maximum Transmission Unit)メッセージの正当性を確認するMTU(Maximum Transmission Unit)確認手段を含み、
前記MTU確認手段は、他の通信ノード宛てのパケットに適用すべきMTUを指示するICMP MTUメッセージを受け取った時に当該ICMP MTUメッセージが正当であればフラグメント化されるはずのパケット長となる長さのMTU確認要求メッセージを前記他の通信ノードに送信し、
前記MTU確認手段は、前記他の通信ノードから前記MTU確認要求メッセージを受信した時に当該MTU確認要求メッセージのIPパケットがフラグメント化されていたかどうかを示す情報を含むMTU確認応答メッセージを前記他の通信ノードに送信し、
前記MTU確認手段は、前記他の通信ノードから前記MTU確認応答メッセージを受信した時に当該MTU確認応答メッセージに基づいて前記ICMP MTUメッセージ通りに前記MTU確認要求メッセージのIPパケットがフラグメント化されていたかどうかを判定している。
本発明による他の通信ノードは、認証情報の付与を行ったパケットを用いて構成した仮想リンクを複数終端し、前記パケットを前記仮想リンク間で中継する通信ノードであって、
ICMP MTU(Internet Control Message Protocol Maximum Transmission Unit)メッセージの正当性を確認するMTU(Maximum Transmission Unit)確認手段を備え、
前記MTU確認手段は、他の通信ノード宛てのパケットに適用すべきMTUを指示するICMP MTUメッセージを受け取った時に当該ICMP MTUメッセージが正当であればフラグメント化されるはずのパケット長となる長さのMTU確認要求メッセージを前記他の通信ノードに送信し、
前記MTU確認手段は、前記他の通信ノードから前記MTU確認要求メッセージを受信した時に当該MTU確認要求メッセージのIPパケットがフラグメント化されていたかどうかを示す情報を含むMTU確認応答メッセージを前記他の通信ノードに送信し、
前記MTU確認手段は、前記他の通信ノードから前記MTU確認応答メッセージを受信した時に当該MTU確認応答メッセージに基づいて前記ICMP MTUメッセージ通りに前記MTU確認要求メッセージのIPパケットがフラグメント化されていたかどうかを判定している。
本発明によるセキュリティ方法は、認証情報の付与を行ったパケットを用いて構成した仮想リンクを複数終端し、前記パケットを前記仮想リンク間で中継する通信ノードを含むネットワークのキュリティ方法であって、
前記通信ノード側に、データベースから提供される前記仮想リンクを通るI(Internet Protocol)パケットの始点アドレスをチェックするために必要な情報を基に前記始点アドレスをチェックするステップを備え
前記通信ノード側に、ICMP MTU(Internet Control Message Protocol Maximum Transmission Unit)メッセージの正当性を確認するステップを含み、
前記正当性を確認するステップにおいて、他の通信ノード宛てのパケットに適用すべきMTUを指示するICMP MTUメッセージを受け取った時に当該ICMP MTUメッセージが正当であればフラグメント化されるはずのパケット長となる長さのMTU確認要求メッセージを前記他の通信ノードに送信し、
前記正当性を確認するステップにおいて、前記他の通信ノードから前記MTU確認要求メッセージを受信した時に当該MTU確認要求メッセージのIPパケットがフラグメント化されていたかどうかを示す情報を含むMTU確認応答メッセージを前記他の通信ノードに送信し、
前記正当性を確認するステップにおいて、前記他の通信ノードから前記MTU確認応答メッセージを受信した時に当該MTU確認応答メッセージに基づいて前記ICMP MTUメッセージ通りに前記MTU確認要求メッセージのIPパケットがフラグメント化されていたかどうかを判定している。
本発明による他のセキュリティ方法は、認証情報の付与を行ったパケットを用いて構成した仮想リンクを複数終端し、前記パケットを前記仮想リンク間で中継する通信ノードを含むネットワークのセキュリティ方法であって、前記通信ノード側に、ICMP MTU(Internet Control Message Protocol Maximum Transmission Unit)メッセージの正当性を確認するステップを備え、
前記正当性を確認するステップは、他の通信ノード宛てのパケットに適用すべきMTUを指示するICMP MTUメッセージを受け取った時に当該ICMP MTUメッセージが正当であればフラグメント化されるはずのパケット長となる長さのMTU確認要求メッセージを前記他の通信ノードに送信し、
前記正当性を確認するステップは、前記他の通信ノードから前記MTU確認要求メッセージを受信した時に当該MTU確認要求メッセージのIPパケットがフラグメント化されていたかどうかを示す情報を含むMTU確認応答メッセージを前記他の通信ノードに送信し、
前記正当性を確認するステップは、前記他の通信ノードから前記MTU確認応答メッセージを受信した時に当該MTU確認応答メッセージに基づいて前記ICMP MTUメッセージ通りに前記MTU確認要求メッセージのIPパケットがフラグメント化されていたかどうかを判定している。
本発明によるプログラムは、認証情報の付与を行ったパケットを用いて構成した仮想リンクを複数終端し、前記パケットを前記仮想リンク間で中継する通信ノード内のコンピュータに実行させるプログラムであって、
データベースから提供される前記仮想リンクを通るIP(Internet Protocol)パケットの始点アドレスをチェックするために必要な情報を基に前記始点アドレスをチェックする処理と、ICMP MTU(Internet Control Message Protocol Maximum Transmission Unit)メッセージの正当性を確認する処理とを含み、
前記正当性を確認する処理において、他の通信ノード宛てのパケットに適用すべきMTUを指示するICMP MTUメッセージを受け取った時に当該ICMP MTUメッセージが正当であればフラグメント化されるはずのパケット長となる長さのMTU確認要求メッセージを前記他の通信ノードに送信させ、
前記正当性を確認する処理において、前記他の通信ノードから前記MTU確認要求メッセージを受信した時に当該MTU確認要求メッセージのIPパケットがフラグメント化されていたかどうかを示す情報を含むMTU確認応答メッセージを前記他の通信ノードに送信させ、
前記正当性を確認する処理において、前記他の通信ノードから前記MTU確認応答メッセージを受信した時に当該MTU確認応答メッセージに基づいて前記ICMP MTUメッセージ通りに前記MTU確認要求メッセージのIPパケットがフラグメント化されていたかどうかを判定させることを特徴とする。
本発明による他のセキュリティ方法のプログラムは、認証情報の付与を行ったパケットを用いて構成した仮想リンクを複数終端し、前記パケットを前記仮想リンク間で中継する通信ノードを含むネットワークのセキュリティ方法のプログラムであって、コンピュータに、ICMP MTU(Internet Control Message Protocol Maximum Transmission Unit)メッセージの正当性を確認する処理を実行させ、
前記正当性を確認する処理が、他の通信ノード宛てのパケットに適用すべきMTUを指示するICMP MTUメッセージを受け取った時に当該ICMP MTUメッセージが正当であればフラグメント化されるはずのパケット長となる長さのMTU確認要求メッセージを前記他の通信ノードに送信し、
前記正当性を確認する処理が、前記他の通信ノードから前記MTU確認要求メッセージを受信した時に当該MTU確認要求メッセージのIPパケットがフラグメント化されていたかどうかを示す情報を含むMTU確認応答メッセージを前記他の通信ノードに送信し、
前記正当性を確認する処理が、前記他の通信ノードから前記MTU確認応答メッセージを受信した時に当該MTU確認応答メッセージに基づいて前記ICMP MTUメッセージ通りに前記MTU確認要求メッセージのIPパケットがフラグメント化されていたかどうかを判定させている。
すなわち、本発明の第1の通信ノードは、仮想リンクを通るIP(Internet Protocol)パケット(インナパケット)の始点アドレスをチェックする機能を有するセキュリティ処理手段と、その始点アドレスチェックのために必要な情報をセキュリティ処理手段に提供するインナヘッダアドレスDB(データベース)とを備えており、セキュリティ処理手段がインナパケットの始点アドレスをチェックすることによって、インナパケットによる始点アドレスの詐称を防止することが可能となる。
本発明の第2の通信ノードは、ICMP MTU(Internet Control Message Protocol Maximum Transmission Unit)メッセージの正当性を確認するMTU確認手段を備えている。
本発明の第2の通信ノードでは、通信ノードXが通信ノードY宛てのパケットに適用すべきMTUを指示するICMP MTUメッセージを受取った際に、通信ノードXのMTU確認手段が当該ICMP MTUメッセージが正当であればフラグメント化されるはずのパケット長となる長さのMTU確認要求メッセージを通信ノードYに送信する。
当該要求メッセージを受信した通信ノードYのMTU確認手段は、当該要求メッセージのIPパケットがフラグメント化されていたかどうかをMTU確認応答メッセージで通信ノードXに送信する。当該応答メッセージを受信した通信ノードXのMTU確認手段は、当該応答メッセージに基づいて上記のICMP MTUメッセージ通りに自らが発したMTU確認要求メッセージのIPパケットがフラグメント化されていたかどうかを知ることで、当該ICMP MTUメッセージが正当なものであるかどうかを確認することが可能となり、IPパケットのパケット長を適切に制御し、通信効率を向上させることが可能となる。
本発明の第3の通信ノードでは、ICMP MTUメッセージの正当性を確認するMTU確認手段と、暫定的MTU値を記憶しかつそれを指定時間後にMTU確認手段に通知するタイマ制御手段とを備えている。
通信ノードXが通信ノードY宛てのパケットに適用すべきMTUを指示するICMP MTUメッセージを受取った際、通信ノードXのMTU確認手段は当該ICMP MTUメッセージが正当であれば、メッセージが届かないはずのパケット長となる長さのMTU確認要求メッセージを通信ノードYに送信し、同時に当該MTU確認手段はタイマ制御手段に当該ICMP MTUメッセージの指示する暫定的MTU値を記憶させ、タイマを起動する。
上記の要求メッセージを受信した通信ノードYのMTU確認手段は、MTU確認応答メッセージを通信ノードXに送信する。当該応答メッセージを受信した通信ノードXのMTU確認手段は当該応答メッセージを受けたことで、上記のICMP MTUメッセージが正当ではないことを確認することが可能となる。
また、上記のICMP MTUメッセージが正当であった場合には、MTU確認応答メッセージを受信することなく、タイマ制御手段からMTU確認手段にタイムアウト通知があるので、そのことをもって通信ノードXは当該ICMP MTUメッセージが正当なものであるかどうかを確認することが可能となるため、IPパケットのパケット長を適切に制御し、通信効率を向上させることが可能となる。
これによって、本発明の通信ノードでは、セキュリティ処理手段がインナヘッダアドレスデータベースの提供する情報を基に、インナパケットの始点アドレスをチェックすることによって、インナパケットの始点アドレスが詐称されることを防止することが可能となる。
また、本発明の通信ノードでは、インナパケットの始点アドレスのチェックをSAネゴシエーション時に決まるパラメタに基づいて行うのではなく、SA(Security Association)ネゴシエーション時以降にも更新可能であるインナヘッダアドレスデータベースの記憶する情報に基づいてチェックを行うため、SAネゴシエーション時以降にインナパケットの始点アドレスの有効な範囲が変化する場合であってもインナパケットの始点アドレスのチェックが可能となる。
さらに、本発明の通信ノードでは、インナパケットの始点アドレスのチェックを処理負荷が比較的大きい処理であるIPsec ICV(Integrity Check Vector)のチェック及び復号化に先んじて、もしくは同時並行的に行うことによって、これら処理負荷の比較的大きい処理を全て行わずとも攻撃パケットを処理することが可能となるため、始点アドレスを詐称したインナパケットを格納するパケットが通信ノードに大量に送信される攻撃が発生した場合でも、通信ノードが小さい処理負荷でこれらのパケットを処理することが可能となる。
さらにまた、本発明の通信ノードでは、MTU確認手段がMTU確認要求メッセージ及びMTU確認応答メッセージを送受することで、ICMP MTUメッセージの正当性を確認し、正当性が確認された場合のみICMP MTUメッセージの提示するMTU値を適用するため、正当でないICMP MTUメッセージの提示するMTU値を適用したり、逆に正当であるICMP MTUメッセージを無視したりすることがないため、通信ノードが送信しようとするIPパケットに対して本来適用すべき値と異なるMTU値を適用してフラグメント化処理を行ってしまう可能性が小さくなるため、通信ノードが送信するIPパケットについて不必要なフラグメント化処理が行われる可能性やパケットが通信経路途上で破棄される可能性を小さくすることが可能となり、通信効率を向上させることが可能となる。
本発明は、以下に述べるような構成及び動作とすることで、インナパケットによる始点アドレスの詐称を防止することができるという効果が得られる。
また、本発明は、以下に述べるような構成及び動作とすることで、通信ノードが送信するIPパケットについて不必要なフラグメント化処理が行われる可能性やパケットが通信経路途上で破棄される可能性を小さくすることができ、通信効率を向上させることができるという効果が得られる。
次に、本発明の実施例について図面を参照して説明する。図1は本発明の第1の実施例による通信ノードの構成を示すブロック図である。図1において、通信ノード1は入力IF(インタフェース)11と、IP(Internet Protocol)パケット入力処理手段12と、セキュリティ処理手段13と、デカプセル化処理手段14と、IPパケット出力処理手段15と、出力IF16と、終端する仮想リンク数以上の数の仮想出力IF17−1〜17−nと、ICMP MTU(Internet Control Message Protocol Maximum Transmission Unit)処理手段18と、インナヘッダアドレスDB(データベース)19と、各部の処理を実現するためのプログラムを格納する記録媒体20とから構成されている。
入力IF11はリンクレイヤ以下の処理を担当するデータ入力インタフェースであり、すなわちネットワーク(図示せず)から受信した電気的信号や電磁波的信号を解釈して得られたIPパケットをIPパケット入力処理手段12に渡す手段である。
IPパケット入力処理手段12はセキュリティ処理手段13以外からIPパケットが入力されると、そのパケットの終点アドレスが通信ノード1のIPアドレス以外である場合にそのパケットをIPパケット出力処理手段15に渡し、それ以外のパケットについてフラグメント化されている場合にリアセンブリ処理を行い、そのIPパケットをセキュリティ処理手段13に渡す。
IPパケット入力処理手段12はセキュリティ処理手段13からIPパケットが渡されると、そのパケットをパケットの種類に応じて選択した次の機能ブロックに渡す。すなわち、IPパケット入力処理手段12はペイロードに別のIPパケットを格納するカプセル化パケットであればデカプセル化処理手段14に渡し、ICMP MTUメッセージを格納するパケットであればICMP MTU処理手段18に渡す。
デカプセル化処理手段14はIPパケットが渡されると、そのIPパケットに対してデカプセル化処理を行う。すなわち、デカプセル化処理手段14は渡されたIPパケットのペイロードからIPパケット(インナパケット)を取出し、そのインナパケットをIPパケット入力処理手段12に渡す。
IPパケット出力処理手段15はIPパケットが渡されると、セキュリティポリシに適うSA(Security Association)を選択し、そのSAの指定するパラメタでIPパケットへのICV(Integrity Check Value)の付与及びペイロードの暗号化を行い、その結果のIPパケットの終点アドレスに基づいてそのIPパケットを渡す出力IFを決定し、その出力IFにそのIPパケットを渡す。
但し、IPパケットを出力IFに渡す際に、そのIPパケットのパケット長(オクテット数)が、その出力IFのMTU(Maximum Transmission Unit)値及びパケットの終点アドレスに応じて適用すべきMTU値を知り得た場合には、その値のいずれかを超える時にIPパケット出力処理手段15が適切にフラグメント処理をした上でその出力IFに渡す。
出力IF16はIPパケットが渡されると、そのパケットに対してリンクレイヤ以下の処理を行い、電気的信号や電磁波的信号としてネットワークに送信する。仮想出力IF17−1〜17−nは仮想的な出力IFであり、IPパケット出力処理手段15から見て出力IF16と同等の出力IFとみなされるが、出力IF16のようにリンクレイヤ以下の処理を行う代わりに、カプセル化処理を行う。
すなわち、仮想出力IFIF17−1〜17−nはIPパケットを渡される毎に新しいIPパケット(アウタパケット)を作成し、渡されたIPパケットをアウタパケットのペイロードとして格納し、そのアウタパケットをIPパケット出力処理手段15に渡す処理を行う。仮想出力IF17−1〜17−nはアウターパケットを作成する際にその終点アドレスとして仮想出力IF17−1〜17−n毎に予め設定されたアドレスを用いる。
ICMP MTU処理手段18はICMP MTUメッセージを格納するIPパケットが渡されると、そのICMP MTUメッセージの形式チェックと、当該メッセージの指定するMTU値が妥当であるかどうかのチェックを行い、それらに適う場合にそのメッセージの格納するIPパケットの終点アドレスと同じアドレスを終点アドレスとするパケットに適用するMTU値をそのメッセージの指定するMTU値にするようにIP出力処理手段15に指示する。
セキュリティ処理手段13はIPsec(IP security protocol)形式のIPパケットが渡されると、IPsec SAを特定し、インナヘッダアドレスDB19の提供するデータに基づいてインナパケットの始点アドレスをチェックし、SAのパラメタに基づいてICVのチェックや復号化、セレクタのチェックを行い、これらを通ったIPパケットをIPパケット入力処理手段12に渡す。
インナヘッダアドレスDB19はセキュリティ処理手段13に対して、図2に示す例のような表形式のデータを提供する。すなわち、図2において、インナヘッダアドレスDB19は各行毎にアウタパケットの始点アドレス範囲(「10.0.0.8〜10.0.0.9」,「10.0.1.3」,「2001:0DB8:1::8/127」,・・・)を第1列として記述し、アウタパケットの始点アドレスが第1列の範囲の時にインナパケットの始点アドレスとして有効であるアドレス範囲(「192.168.0.0〜192.168.0.127,192.168.1.0〜192.168.1.31」,「192.168.1.128/26」,「2001:0DB8::38:0:0/96」,・・・)を第2列として記述した表形式のデータを提供する。
図3は図1のセキュリティ処理手段13がIPsec形式[AH(Authentication Header)またはESP(Encapsulating Security Payload)形式]のパケットを渡された時に行う処理を示すフローチャートである。尚、図1に示す入力IF11、IPパケット入力処理手段12、デカプセル化処理手段14、IPパケット出力処理手段15、出力IF16、仮想出力IF17−1〜17−n、ICMP MTU処理手段18各々は、上述した従来の技術と同様の動作を行うため、それらの動作についての説明は省略する。尚、図3に示す処理はセキュリティ処理手段13が記録媒体20のプログラムを実行することで実現される。
セキュリティ処理手段13はまずパケットの終点アドレス、SPI(Security Parameters Index)値、パケットのIPsec形式(AH形式またはESP形式)の3つの情報から、そのパケットに適用するSAを特定する(図3ステップS1)。
セキュリティ処理手段13はSAが特定できた場合(図3ステップS2)、パケットの始点アドレスからインナパケットの始点アドレスとして許されるアドレス範囲をインナヘッダアドレスDB19の提供する情報から入手し、インナパケットの始点アドレスが有効であるかを確認する(図3ステップS3)。
セキュリティ処理手段13はインナヘッダアドレスDB19の提供する表形式のデータにおいて、アウタパケットの始点アドレスがマッチする行を第1列で探し、その行の第2列のアドレス範囲にインナパケットの始点アドレスがマッチする場合に有効であると判断する(図3ステップS4)。例えば、パケットの始点アドレスが“10.0.0.9”、パケットがアウタパケットとして格納しているインナパケットの始点アドレスが“192.168.1.27”、かつインナヘッダアドレスDB19の提供する情報が図2に示す内容であったとすると、このインナパケットの始点アドレスは有効である。
セキュリティ処理手段13はインナパケットの始点アドレスは有効であると判断すると、ICVのチェックを行い(図3ステップS5)、パケットが改ざんされたものであるかどうかを判断する(図3ステップS6)。セキュリティ処理手段13はパケットが改ざんされていないと判断すると、パケットの復号化を行う(図3ステップS7)。但し、AH形式で暗号化されていないパケットの場合には復号化を行わない。
次に、セキュリティ処理手段13はパケットのセレクタのチェックを行う(図3ステップS8)。すなわち、セキュリティ処理手段13はパケットの始点アドレス、終点アドレス、トランスポートレイヤの情報等から特定されるセキュリティポリシを満足する改ざんチェックや暗号化がされていたかを判断する(図3ステップS9)。
セキュリティ処理手段13はセキュリティポリシを満足する場合に、受け入れ可能として、パケットをIPパケット入力処理手段12に渡し(図3ステップS10)、そのパケットについての処理を終了する。
一方、セキュリティ処理手段13はSAが特定できなかった場合(図3ステップS2)、インナパケットの始点アドレスが無効である場合(図3ステップS4)、パケットが改ざんされていると判断した場合(図3ステップS6)、セキュリティポリシを満足しない場合(図3ステップS9)に、それぞれパケットを破棄し(図3ステップS11)、そのパケットについての処理を終了する。
尚、図3においてはステップS3,S4と、ステップS5,S6と、ステップS7との3つの処理を逐次的に実行するよう記述しているが、これらの3つの処理、もしくはステップS3,S4及びステップS5,S6の2つの処理を同時並行的に進めることも可能である。この場合、ステップS3,S4の処理が終わり、S4にて「有効でない」との結果が出た時に、その他の2つの処理のいずれかまたは両方がまだ処理中であれば、それらの処理を中断する処理を行うことによって、余計な処理負荷を削減することができる。
また、セキュリティ処理手段13では暗号の復号化処理(図3ステップS7)が終了する以前にインナパケットの始点アドレスの有効性をチェックしている(図3ステップS3)。このため、アウタパケットに適用する暗号は復号化する以前の暗号状態であってもインナパケットの始点アドレスを参照できるような暗号化手法を用いなければならない。このような暗号化手法の例としては、例えばR.Glenn他著「The NULL Encryption Algorithm and Its Use With IPsec」(RFC2410、IETF、1998年11月)(文献1)で定義されるNull Encryption Algorithmや、インナパケットの始点アドレスを含む一部を暗号化せずに平文のまま残しておく手法がある。
このように、本実施例では、セキュリティ処理手段13にてインナヘッダアドレスDB19の提供する情報を基にインナパケットの始点アドレスをチェックすることによって、インナパケットの始点アドレスが詐称されることを防止することができる。
また、本実施例では、SAネゴシエーション時以降にインナパケットの始点アドレスの有効な範囲が変化する場合であっても、インナヘッダアドレスDB19の記憶する情報をその変化に併せて更新することによって、インナパケットの始点アドレスのチェックに即座に反映されるため、正しくチェックを行うことができる。
さらに、本実施例では、処理負荷が比較的大きい処理であるICVのチェック(図3ステップS5)及び復号化(図3ステップS6)の処理に先んじて、もしくは同時並行的にインナパケットの始点アドレスのチェックを行う。
この場合と、ICVのチェック(図3ステップS5)または復号化(図3ステップS6)の後にインナパケットの始点アドレスのチェックを行った場合とを比較すると、始点アドレスを詐称したインナパケットを格納するパケットが通信ノード1に大量に送信された場合において、より小さい処理負荷でこれらのパケットを処理することができる。
DoS(Denial of Service)攻撃(サービス不能攻撃)の攻撃パケットは始点アドレスの詐称を伴うことが多いが、仮想リンクを通るトラヒックに大量のDoS攻撃のトラヒックが混入した場合においても、通信ノード1のパケット転送性能の低下を最小限に抑えることができ、かつそのような始点アドレスの詐称が行われたDoS攻撃トラヒックの遮断を行うことができる。
図4は本発明の第2の実施例による通信ノードの構成を示すブロック図である。図4において、通信ノード2はインナヘッダアドレスDB19を外し、MTU確認手段21を設けた以外は図1に示す本発明の第1の実施例と同様の構成となっており、同一構成要素には同一符号を付してある。
つまり、通信ノード2は入力IF11と、IPパケット入力処理手段12と、セキュリティ処理手段13と、デカプセル化処理手段14と、IPパケット出力処理手段15と、出力IF16と、終端する仮想リンク数以上の数の仮想出力IF17−1〜17−nと、ICMP MTU処理手段18と、MTU確認手段21と、各部の処理を実現するためのプログラムを格納する記録媒体22とから構成されている。
入力IF11はリンクレイヤ以下の処理を担当するデータ入力インタフェースであり、すなわちネットワーク(図示せず)から受信した電気的信号や電磁波的信号を解釈して得られたIPパケットをIPパケット入力処理手段12に渡す手段である。
セキュリティ処理手段13はIPsec形式のIPパケットが渡されると、IPsec SAを特定し、SAのパラメタに基づいてICVのチェックや復号化、セレクタのチェックを行い、これらを通ったIPパケットをIPパケット入力処理手段12に渡す。
デカプセル化処理手段14はIPパケットが渡されると、そのIPパケットに対してデカプセル化処理を行う。すなわち、デカプセル化処理手段14は渡されたIPパケットのペイロードからIPパケット(インナパケット)を取出し、そのインナパケットをIPパケット入力処理手段12に渡す。
IPパケット出力処理手段15はIPパケットが渡されると、セキュリティポリシに適うSAを選択し、そのSAの指定するパラメタにしたがってIPパケットへのIPsecのヘッダやトレイラ、認証データの付与及びペイロードの暗号化を行い、その結果のIPパケットの終点アドレスに基づいてそのIPパケットを渡す出力IFを決定し、その出力IFにIPパケットを渡す。
但し、IPパケット出力処理手段15はIPパケットを出力IFに渡す際に、そのIPパケットのパケット長(オクテット数)が、その出力IFのMTU値及びパケットの終点アドレスに応じて適用すべきMTU値を知り得た場合、その値のいずれかを超える時に、適切にフラグメント処理をした上で、その出力IFにIPパケットを渡す。
出力IF16はIPパケットが渡されると、そのパケットに対してリンクレイヤ以下の処理を行い、電気的信号や電磁波的信号としてネットワークに送信する。
IPパケット入力処理手段12はセキュリティ処理手段13以外からIPパケットが入力されると、そのパケットの終点アドレスが通信ノード2のIPアドレス以外である場合にそのパケットをIPパケット出力処理手段15に渡し、それ以外のパケットについて、フラグメント化されている場合にリアセンブリ処理を行い、セキュリティ処理手段13にIPパケットを渡す。
IPパケット入力処理手段12はセキュリティ処理手段13からIPパケットが渡されると、そのIPパケットをパケットの種類に応じて選択した次の機能ブロックに渡す。すなわち、IPパケット入力処理手段12はペイロードに別のIPパケットを格納するカプセル化パケットであればデカプセル化処理手段14に渡し、ICMP MTUメッセージを格納するパケットであればICMP MTU処理手段18に渡し、後述するMTU確認要求メッセージを格納するパケットであればMTU確認手段21に対し、そのパケットが入力IF11またはデカプセル化処理手段14から渡された際にフラグメント化されていたかどうかの情報を付して渡し、MTU確認応答メッセージを格納するパケットであればMTU確認手段21に渡す。
仮想出力IF17−1〜17−nは仮想的な出力IFであり、IPパケット出力処理手段15から見て出力IF16と同等の出力IFとみなされるが、出力IF16のようなリンクレイヤ以下の処理を行う代わりに、カプセル化処理を行う。すなわち、仮想出力IF17−1〜17−nはIPパケットを渡される毎に新しいIPパケット(アウタパケット)を作成し、渡されたIPパケットをアウタパケットのペイロードとして格納し、そのアウタパケットをIPパケット出力処理手段15に渡す処理を行う。
仮想出力IF17−1〜17−nはアウタパケットを作成する際に、その終点アドレスとして仮想出力IF17−1〜17−n毎に予め設定されたアドレスを用いる。また、仮想出力IF17−1〜17−nはMTU確認手段21からMTU値が設定された場合、その値を自らのMTU値として採用する。
ICMP MTU処理手段18はICMP MTUメッセージの形式チェックを行い、そのメッセージの内容をMTU確認手段21に通知する。MTU確認手段21はICMP MTU処理手段18からの通知を受けると、そのMTUの値の正当性をMTU確認要求メッセージ及びMTU確認応答メッセージの送受によって確認し、その結果、MTUの値の正当性が確認された場合にそのMTUをIPパケット出力処理手段15に設定し、さらに仮想出力IF17−1〜17−nのMTUを設定する。
図5は図4のICMP MTU処理手段18がICMP MTUメッセージを受けた時に行う処理を示すフローチャートである。これら図4及び図5を参照して本発明の第2の実施例による通信ノード2の動作について説明する。尚、入力IF11、IPパケット入力処理手段12、セキュリティ処理手段13、デカプセル化処理手段14、IPパケット出力処理手段15、出力IF16、仮想出力IF17−1〜17−n各々は従来の技術と同様の動作を行うため、その動作についての説明は省略する。尚、図5に示す処理はICMP MTU処理手段18が記録媒体22のプログラムを実行することで実現される。
ICMP MTU処理手段18は、まずメッセージが形式を満たしているかどうかをチェックする(図5ステップS21)。ICMP MTU処理手段18は、メッセージのチェックサムが整合していたり、メッセージが格納するIPパケットに異常がない等、形式を満たしている場合(図5ステップS22)、メッセージが格納するIPパケットの終点アドレスを変数Xに代入し、メッセージが指定するMTU値を変数Mに代入する(図5ステップS23)。
ICMP MTU処理手段18は、変数Mの値がMTU値として小さすぎず、かつ変数Mの値が終点アドレスXのIPパケットに対して現在適用されているMTU値以上でない場合、妥当な値ではあるとみなし(図5ステップS24)、MTU確認手段21に対して変数X及び変数Mを通知し(図5ステップS25)、そのICMP MTUメッセージの処理を終了する。
一方、ICMP MTU処理手段18は、メッセージのチェックサムが整合しなかったり、メッセージが格納するIPパケットに異常がある等、形式を満たしていない場合(図5ステップS22)、変数Mの値がMTU値としては小さすぎる場合や変数Mの値が終点アドレスXのIPパケットに対して現在適用されているMTU値以上である場合に妥当な値ではないとみなし(図5ステップS24)、メッセージについてそれ以上の処理をすることなく(図5ステップS26)、そのICMP MTUメッセージの処理を終了する。
図6〜図8は図4のMTU確認手段21の動作を示すフローチャートであり、図9(a),(b)は本発明の第2の実施例で用いるメッセージの構造を示す図である。これら図4と図6〜図9とを参照してMTU確認手段21の動作について説明する。尚、図6〜図8に示す処理はMTU確認手段21が記録媒体22のプログラムを実行することで実現される。
図9(a)はMTU確認要求メッセージ(形式1)A1を示しており、MTU確認要求メッセージ(形式1)A1はメッセージタイプ識別フィールドとMフィールドと任意データフィールドとからなる。図9(b)はMTU確認応答メッセージ(形式1)B1を示しており、MTU確認応答メッセージ(形式1)B1はメッセージタイプ識別フィールドとMフィールドとFフィールドとからなる。
図6はMTU確認手段21がICMP MTU処理手段18から通知を受ける毎に行う処理を示している。これら図4と図6とを参照してMTU確認手段21がICMP MTU処理手段18から通知を受ける毎に行う処理について説明する。
MTU確認手段21は通知されたXの値及びMの値をそれぞれ変数Xと変数Mとに代入する(図6ステップS31)。次に、MTU確認手段21はパケット長(オクテット数)が変数Mを超えかつ最小であるようにサイズを調整したMTU確認要求メッセージにMの値を記載したうえで、IPアドレスX宛てに送信する。すなわち、MTU確認手段21はXを終点アドレスとするIPパケットに載せてIPパケット出力手段15に渡し(図6ステップS32)、処理を終了する。
このステップS32にて送信するMTU確認要求メッセージは、図9(a)に示すフィールドから構成されており、メッセージタイプ識別フィールドとして「メッセージがMTU確認要求メッセージであることを識別するためのコード」を格納し、Mフィールドとして上述したMの値を格納し、任意データフィールドとして任意のデータを格納する。
但し、この任意データフィールドのデータ長については、このMTU確認要求メッセージA1を載せるIPパケットがIPパケット出力処理手段15によってIPsecヘッダ等を加えられて出力IF16に渡される際のパケット長(オクテット数)がMより大きく、かつ最小となるように決定する。
目安としてはMの値からIPパケットのヘッダ長(IPsecヘッダ分を除く)と、IPsecのオーバヘッド長(AHではヘッダ長、ESPではヘッダ長+トレイラ長+認証データフィールド長)と、MTU確認要求メッセージのその他のフィールド長を差し引いたものに1を加えた値である。
また、ESPを用いる場合には、そのトレイラ長がパディング長によって変化するため、メッセージ長が1オクテット違うMTU確認要求メッセージ2つをそれぞれ格納する2つのIPパケットのパケット長が同じであったり、数オクテット異なったりする場合がある。
このため、特にESPを用いる場合には、任意データフィールドのデータ長をMからの単純な引き算で求めることはできない。より一般的に求めるには、関数K(s,x)を任意データフィールド長sのMTU確認要求メッセージが終点アドレスxのIPパケットに格納されてIPパケット出力処理手段15に渡され、IPsecヘッダ等の付与がされ、仮にフラグメント処理が省略されて出力IF16に渡されたとした時の、その出力IF16に渡されたパケットのパケット長を出力する関数であるとして、任意データフィールドのデータ長は、
n=min{自然数s|K(s,X)>M}
で求まるn、もしくは、
N∈{自然数s|K(s,X)=K(n,X)}
であるようなNがn以外にあればそれを用いることもできる。
図7はMTU確認手段21がMTU確認要求メッセージを含むIPパケットを受ける毎に行う処理を示している。これら図4と図7とを参照してMTU確認手段21がMTU確認要求メッセージを含むIPパケットを受ける毎に行う処理について説明する。
MTU確認手段21はIPパケットの始点アドレスを変数Yに代入し、IPパケットのMTU確認要求メッセージのMフィールドの値を変数Mに代入し、IPパケットがIPパケット入力処理手段12から渡された際に付されかつフラグメント化されていたかの情報に基づくブーリアン値(フラグメント化されていた場合は真値、さもなくば偽値)を変数Fに代入する(図7ステップS41)。次に、MTU確認手段21は変数M及び変数Fの値をMTU確認応答メッセージでIPアドレスY宛てに送信し(図7ステップS42)、処理を終了する。
上記のステップS42にて送信するMTU確認応答メッセージは、図9(b)に示すフィールドから構成されており、メッセージタイプ識別フィールドとして「メッセージがMTU確認応答メッセージであることを識別するためのコード」を格納し、Mフィールドとして上記の変数Mの値を格納し、Fフィールドとして上記の変数Fの値をそれぞれ格納する。
図8はMTU確認手段21がMTU確認応答メッセージを含むIPパケットを受ける毎に行う処理を示している。これら図4と図8とを参照してMTU確認手段21がMTU確認応答メッセージを含むIPパケットを受ける毎に行う処理について説明する。
MTU確認手段21はIPパケットの始点アドレスを変数Xに代入し、IPパケットのMTU確認応答メッセージのMフィールドの値を変数Mに代入し、IPパケットのMTU確認応答メッセージのFフィールドの値を変数Fに代入し(図8ステップS51)、変数Fが真値であるならば(図8ステップS52)、変数Mの値がMTUの値として妥当かどうか、すなわちIPv4(Internet Protocol version 4)においては「68」、IPv6(Internet Protocol version 6)においては「1280」以上、またはそれらのいずれかより大きく設定した値以上であることを確認する(図8ステップS53)。
MTU確認手段21は変数Mの値がMTUの値として妥当である場合、IP出力処理手段15に対してXを終点アドレスとするパケットに適用するMTU値を変数Mに設定し(図8ステップS54)、値Miをパケット長がMiであるインナパケットが仮想出力IF17−1〜17−nに渡されて終点アドレスがXであるアウタパケットに格納される。
最終的に、IPパケット出力処理手段15が出力IF16に渡す時にパケット長がMを超えてしまうため、フラグメント化されて渡されることがないような最大の値として求め、仮想出力IF17−1〜17−nの中でアウタパケットの終点アドレスをXとして作成するものがある場合には値Miをその仮想出力IF17−1〜17−nのMTUの値として設定し(図8ステップS55)、処理を終了する。
ここで、Miの値はパケット長がMiのインナパケットがアウタパケットにカプセル化され、さらにIPsecのヘッダ等が付加されて出力IF16に渡されようとする時に、パケットサイズがMを超えるためにフラグメント化されてしまうことが起こらないような最大値である。
目安としてはMの値からアウタパケットのヘッダ長(IPsecヘッダ分を除く)と、IPsecのオーバヘッド長(AHではヘッダ長、ESPではヘッダ長+トレイラ長+認証データフィールド長)と、カプセル化にGRE(Generic Routing Encapsulation)等を用いる際にはそのヘッダ長を差し引いた値となる。
但し、ESPを用いる場合には、そのトレイラ長がパディング長によって変化するため、パケット長が1オクテット違うインナパケット2つをそれぞれ格納する2つのアウタパケットのパケット長が同じであったり、数オクテット異なったりする場合がある。このため、特にESPを用いる場合には、Miの値をMからの単純な引き算で求めることはできない。
より一般的にMiの値を求めるには、関数L(s,x)をパケット長sのインナパケットが終点アドレスxのアウタパケットに格納する仮想出力IFに渡されてカプセル化が行われ、そのアウタパケットがIPパケット出力処理手段15に渡され、IPsecヘッダ等の付与がされ、仮にフラグメント処理が省略されて出力IF16に渡されたとした時の、その出力IF16に渡されたパケットのパケット長を出力する関数であるとして、Miの値は、
Mi=max{自然数s|L(s,X)≦M}
として求めることができる。
一方、MTU確認手段21は変数Fが偽値である場合(図8ステップS52)、変数Mの値がMTUの値として妥当でない場合(図8ステップS53)、パケットの含むMTU確認応答メッセージについて何も処理を行うことなく(図8ステップS56)、処理を終了する。
図10は本発明の第2の実施例における通信ノード間でメッセージがやり取りされる状況例を説明するためのタイミングチャートである。この図10を参照して本発明の第2の実施例における通信ノード間でメッセージがやり取りされる状況例について説明する。
ルータ33がICMP MTUメッセージを通信ノード31に送信し(図10のa1)、通信ノード32宛てのパケットに適用すべきMTU値をある値Maにするように伝えると、通信ノード31はそのMTU確認手段の働きによってMTU確認要求メッセージをパケット長が値Maを超える最小のIPパケットに載せて通信ノード32に送信する(図10のa2)。
通信ノード32はMTU確認要求メッセージを受信すると、そのMTU確認手段の働きによってMTU確認要求メッセージがフラグメント化されたIPパケットによって送られたかどうかの情報をFフィールドに含むMTU確認応答メッセージで通信ノード31に送信する(図10のa3)。
ルータ33が正常に動作している場合には、ICMP MTUメッセージは正当であり、すなわちパケット長が値Maを超える最小のIPパケットに載せたMTU確認要求メッセージは通信ノード32への到着時にフラグメント化されているはずである。よって、MTU確認応答メッセージのFフィールドの値は真値であり、MTU確認応答メッセージを受信した通信ノード31はそのMTU確認手段の働きによって通信ノード32宛てのパケットに適用すべきMTU値を値Maとする。
一方、攻撃端末34がICMP MTUメッセージを通信ノード31に送信し(図10のa4)、通信ノード32宛てのパケットに適用すべきMTU値を本来あるべき値よりも小さいが、MTUの値としては妥当な大きさの値Mbにするように伝えると、通信ノード31はそのMTU確認手段の働きによってMTU確認要求メッセージをパケット長が値Mbを超える最小のIPパケットに載せて通信ノード32に送信する(図10のa5)。
通信ノード32はMTU確認要求メッセージを受信すると、そのMTU確認手段の働きによってMTU確認要求メッセージがフラグメント化されたIPパケットによって送られたかどうかの情報をFフィールドに含むMTU確認応答メッセージで通信ノード31に送信する(図10のa6)。
値Mbは本来設定すべきMTUよりも小さいため、パケット長が値Mbを超える最小のIPパケットに載せたMTU確認要求メッセージは通信ノード32への到着時にフラグメント化されていない。よって、MTU確認応答メッセージのFフィールドの値は偽値であり、MTU確認応答メッセージを受信した通信ノード31はそのMTU確認手段の働きによってMTU確認応答メッセージを無視し、通信ノード32宛てのパケットに適用すべきMTU値は変更しない。
本発明の第2の実施例において用いるMTU確認要求メッセージ及びMTU確認応答メッセージのMフィールドの値としてはMTU値を直接用いているが、MTU値をそれらのメッセージで直接交換せずに、MTUへのポインタをそれらメッセージのMフィールドに格納する派生形の実施の形態も有効である。
この場合の動作としては、MTU確認手段21のステップS32にてM値をMTU確認要求メッセージのMフィールドに格納することに代えて、M値をメモリ(図示せず)に格納し、そのポインタをMTU確認要求メッセージのMフィールドに格納する。
また、上記の動作ではステップS51にてMTU確認応答メッセージのMフィールドの値を変数Mに代入することに代えて、Mフィールドの値をポインタの値として捉えた時にそれが参照するメモリの格納する値を変数Mに代入する。尚、ポインタとしてはメモリのアドレス値、表形式のデータ構造における行や列の位置、連想記憶における連想キーの値等を用いることができる。
このように、本実施例では、MTU確認手段21がMTU確認要求メッセージ及びMTU確認応答メッセージを送受することによってICMP MTUメッセージの正当性を確認し、正当性が確認された場合のみICMP MTUメッセージの提示するMTU値を適用するため、正当でないICMP MTUメッセージの提示するMTU値を適用したり、逆に正当であるICMP MTUメッセージを無視したりすることがない。
よって、本実施例では、通信ノードが送信しようとするIPパケットに対して本来適用すべき値と異なるMTU値を適用してフラグメント化処理を行ってしまう可能性が従来に比べて小さい。したがって、本実施例では、不必要なフラグメント化処理が行われる可能性やパケットが通信経路途上で破棄される可能性も従来に比べて小さいため、従来に比べて通信効率を向上させることができる。
図11は本発明の第3の実施例による通信ノードの構成を示すブロック図である。図11において、通信ノード4はタイマ制御手段41を加えた以外は図4に示す本発明の第2の実施例と同様の構成となっており、同一構成要素には同一符号を付してある。
つまり、通信ノード4は入力IF11と、IPパケット入力処理手段12と、セキュリティ処理手段13と、デカプセル化処理手段14と、IPパケット出力処理手段15と、出力IF16と、終端する仮想リンク数以上の数の仮想出力IF17−1〜17−nと、ICMP MTU処理手段18と、MTU確認手段21と、タイマ制御手段41と、各部の処理を実現するためのプログラムを格納する記録媒体42とから構成されている。
入力IF11はリンクレイヤ以下の処理を担当するデータ入力インタフェースであり、すなわちネットワーク(図示せず)から受信した電気的信号や電磁波的信号を解釈して得られたIPパケットをIPパケット入力処理手段12に渡す手段である。
セキュリティ処理手段13はIPsec形式のIPパケットが渡されると、IPsec SAを特定し、SAのパラメタに基づいてICVのチェックや復号化、セレクタのチェックを行い、これらを通ったIPパケットをIPパケット入力処理手段12に渡す。
デカプセル化処理手段14はIPパケットが渡されると、そのIPパケットに対してデカプセル化処理を行う。すなわち、デカプセル化処理手段14は渡されたIPパケットのペイロードからIPパケット(インナパケット)を取出し、そのインナパケットをIPパケット入力処理手段12に渡す。
IPパケット出力処理手段15はIPパケットが渡されると、セキュリティポリシに適うSA(Security Association)を選択し、そのSAの指定するパラメタにしたがってIPパケットへのIPsecのヘッダやトレイラ、認証データの付与及びペイロードの暗号化を行い、その結果のIPパケットの終点アドレスに基づいてそのIPパケットを渡す出力IFを決定し、その出力IFにそのIPパケットを渡す。
但し、IPパケットを出力IFに渡す際に、そのIPパケットのパケット長が、その出力IFのMTU値及びパケットの終点アドレスに応じて適用すべきMTU値を知り得た場合、IPパケット出力処理手段15はその値のいずれかを超える時に、適切にフラグメント処理をした上でその出力IFに渡す。
出力IF16はIPパケットが渡されると、そのIPパケットに対してリンクレイヤ以下の処理を行い、電気的信号や電磁波的信号としてネットワークに送信する。
仮想出力IF17−1〜17−nは仮想的な出力IFであり、IPパケット出力処理手段15から見て出力IF16と同等の出力IFとみなされるが、上記の出力IF16のようなリンクレイヤ以下の処理を行う代わりに、IPパケットに対してカプセル化処理を行う。
すなわち、仮想出力IF17−1〜17−nはIPパケットを渡される毎に新しいIPパケット(アウタパケット)を作成し、渡されたIPパケットをアウタパケットのペイロードとして格納し、そのアウタパケットをIPパケット出力処理手段15に渡す処理を行う。
仮想出力IF17−1〜17−nはアウタパケットを作成する際に、その終点アドレスとして仮想出力IF17−1〜17−n毎に予め設定されたアドレスを用いる。また、仮想出力IF17−1〜17−nはMTU確認手段21からMTU値が設定された場合、その値を自らのMTU値として採用する。
ICMP MTU処理手段18はICMP MTUメッセージの形式チェックを行い、そのメッセージの内容をMTU確認手段21に通知する。
IPパケット入力処理手段12はセキュリティ処理手段13以外からIPパケットが入力されると、そのパケットの終点アドレスが通信ノード4のIPアドレス以外である場合に、そのパケットをIPパケット出力処理手段15に渡す。それ以外のパケットについては、フラグメント化されている場合にリアセンブリ処理を行い、セキュリティ処理手段13にIPパケットを渡す。
IPパケット入力処理手段12はセキュリティ処理手段13からIPパケットが渡されると、そのIPパケットをパケットの種類に応じて選択した次の機能ブロックに渡す。すなわち、IPパケット入力処理手段12はペイロードに別のIPパケットを格納するカプセル化パケットであればデカプセル化処理手段14に渡し、ICMP MTUメッセージを格納するパケットであればICMP MTU処理手段18に渡し、後述するMTU確認要求メッセージやMTU確認応答メッセージを格納するパケットであればMTU確認手段21に渡に渡す。
MTU確認手段21はICMP MTU処理手段18からの通知を受けてそのMTUの値の正当性をMTU確認要求メッセージ及びMTU確認応答メッセージの送受と、タイマ制御手段41からのタイムアウト通知とによって確認し、その結果、MTUの値の正当性が確認された場合にそのMTUをIPパケット出力処理手段15に設定し、さらに仮想出力IFのMTUを設定する。
タイマ制御手段41はMTU確認手段21からのcreate手続き依頼と、restart手続き依頼とに基づいてタイマの作成を行い、タイマがタイムアウトした時にタイムアウト通知をMTU確認手段21に通知する。
図12〜図15は図11のMTU確認手段21の動作を示すフローチャートであり、図16(a),(b)は本発明の第3の実施例で用いるメッセージの構造を示す図である。これら図11〜図16を参照してMTU確認手段21の動作について説明する。尚、入力IF11、IPパケット入力処理手段12、セキュリティ処理手段13、デカプセル化処理手段14、IPパケット出力処理手段15、出力IF16、仮想出力IF17−1〜17−n各々は上述した従来技術のそれらと同等の動作を行うため、その動作についての説明は省略する。また、MTU確認手段21は上述した本発明の第2の実施例のそれと同等の動作を行うため、その動作についての説明は省略する。尚、図12〜図15に示す処理はMTU確認手段21が記録媒体42のプログラムを実行することで実現される。
図16(a)はMTU確認要求メッセージ(形式2)A2を示しており、MTU確認要求メッセージ(形式2)A2はメッセージタイプ識別フィールドと任意データフィールドとからなる。図16(b)はMTU確認応答メッセージ(形式2)B2を示しており、MTU確認応答メッセージ(形式2)B2はメッセージタイプ識別フィールドからなる。
図12はMTU確認手段21がICMP MTU処理手段18から通知を受ける毎に行う処理を示している。MTU確認手段21は通知のX値とM値とをそれぞれ変数Xと変数Mとに代入し(図12ステップS61)、タイマ制御手段41に手続きcreateをパラメタx,m,tとしてそれぞれX,M,Aを指定して依頼する(図12ステップS62)。ここで、Aはある時間量であり、その決め方については後述する。
MTU確認手段21はcreate手続きが失敗すると(図12ステップS63)、処理を終了する。また、MTU確認手段21はcreate手続きが失敗しなければ(図12ステップS63)、オクテット数によるパケット長がMを超えかつ最小であるようにサイズを調整したMTU確認要求メッセージをDF(Don´t Fragment)フラグを立てたIPv4パケットまたはIPv6パケットでIPアドレスX宛てに送信、すなわちXを終点アドレスとするIPパケットに載せてIPパケット出力手段15に渡し(図12ステップS64)、処理を終了する。
上記のステップS64にて送信するMTU確認要求メッセージは図16(a)に示すフィールドから構成されており、メッセージタイプ識別フィールドとしてはメッセージがMTU確認要求メッセージであることを識別するためのコードを格納し、任意データフィールドとしては任意のデータを格納する。この任意のデータフィールドのデータ長の決め方については本発明の第2の実施例のMTU確認手段21における任意データフィールドのデータ長の決め方に準ずるため、ここではその説明を省略する。
図13はMTU確認手段21がMTU確認要求メッセージを含むIPパケットを受ける毎に行う処理を示している。MTU確認手段21はIPパケットの始点アドレスを変数Yに代入し(図13ステップS71)、MTU確認応答メッセージをIPアドレスY宛てに送信し(図13ステップS72)、処理を終了する。
上記のステップS72にて送信するMTU確認応答メッセージは図16(b)に示すフィールドから構成されており、メッセージタイプ識別フィールドとしてはメッセージがMTU確認応答メッセージであることを識別するためのコードを格納する。
図14はMTU確認手段21がMTU確認応答メッセージを含むIPパケットを受ける毎に行う処理を示している。MTU確認手段21はIPパケットの始点アドレスを変数Xに代入し(図14ステップS81)、ある時間量をBとしてタイマ制御手段41に手続きrestartをパラメタx,m,tとしてそれぞれX,無効値,Bを指定して依頼する(図14ステップS82)。ここで、Bはある正数であり、その決め方については後述する。無効値としてはMTUとして妥当でない値、例えば0を指定する。
図15はMTU確認手段21がタイマ制御手段41からタイムアウト通知を受ける毎に行う処理を示している。MTU確認手段21は変数Xと変数Mとにタイムアウト通知のx値とm値とをそれぞれ代入し(図15ステップS91)、変数Mの値がMTUの値として妥当かどうか、すなわちIPv4においては68、IPv6においては1280以上、またはそれらのいずれかより大きく設定した値以上であることを確認する(図15ステップS92)。
MTU確認手段21は変数Mの値が妥当でなければ、処理を終了する。また、MTU確認手段21は変数Mの値が妥当であれば、IP出力処理手段15に対して変数Xを終点アドレスとするパケットに適用するMTU値を変数Mに設定する(図15ステップS93)。
また、MTU確認手段21はパケット長が値Miであるインナパケットが仮想出力IFに渡されて終点アドレスが変数Xであるアウタパケットに格納され、最終的にIPパケット出力処理手段15が出力IF16に渡す時にパケット長がMを超えてしまうためにフラグメント化されて渡されることがないような最大の値として値Miを求め、仮想出力IFの中でアウタパケットの終点アドレスを変数Xとして作成するものがある場合に値Miをその仮想出力IFのMTUの値として設定し(図15ステップS94)、処理を終了する。ここで、値Miは上述したステップS55における決定方法と同様である。
図17は図11のタイマ制御手段41の動作を説明するための状態遷移図である。この図17を参照してタイマ制御手段41の動作について説明する。タイマ制御手段41は全てのIPアドレスに対して、それと対応するタイマを作成することができる。以下、IPアドレスXに対応するタイマを作成した時には、そのタイマのことをタイマXと呼ぶものとする。
タイマにはそれぞれ状態値として、タイマが不在の状態と、タイマが存在する状態との2つがある。また、タイマはそれぞれ任意のデータを記憶する変数mを持つ。タイマが不在の状態からタイマが存在する状態に遷移させる手続きがcreate手続きであり、パラメタとしてx,m,tの3つを指定する。xはIPアドレス値であり、どのタイマを作成するのかを指定する。mは任意のデータであり、作成されたタイマがそれをタイマ固有の変数mに記憶する。tは時間であり、作成されたタイマがタイムアウトするまでの時間を指定する。作成しようとするタイマがすでに存在している場合、create手続きは失敗する。
図17に示す例では、タイマXが不在の状態C1において、create手続きをパラメタx,m,tとしてそれぞれX,Ma,Taを指定して行うことによって[create(x=X,m=Ma,t=Ta)]、タイマXが存在する状態C2に遷移することを示している。
タイマが存在する状態からタイマが不在の状態への遷移は、そのタイマがタイムアウトした時に自発的に行われる。その際、create手続きのパラメタxの値と、タイマ固有の変数mの値とがタイムアウト通知としてMTU確認手段21に通知される。
タイマがタイムアウトする時刻はcreate手続きによってそのタイマが作成された時刻からcreate手続きのパラメタtで指定される時間が経過した時刻であるが、タイマ制御手段41のもう一つの手続きであるrestart手続きによって変更し得る。
restart手続きはパラメタとしてx,m,tの3つを指定する。xはIPアドレス値であり、手続きの対象のタイマを指定する。mは任意のデータであり、手続きの対象のタイマがそれをタイマ固有の変数mに上書き記憶する。tは時間であり、手続きの対象のタイマがタイムアウトするまでの時間を指定する。手続きの対象のタイマが不在の状態の場合、restart手続きは失敗する。
図17に示す例では、タイマXが存在する状態C2においてrestart手続きをパラメタx,m,tとしてそれぞれX,Mb,Tbを指定して行っている[restart(x=X,m=Mb,t=Tb)]。
restart手続きが行われると、手続きの対象のタイマXのタイムアウト時刻はcreate手続きやそれまでのrestart手続きと関係なく、最新のrestart手続きの時刻から当該restart手続きのパラメタtで指定した時間が経過した時刻となる。
図17に示す例では、restart手続きによってタイムアウト時刻がrestart手続きから時間Tbが経過した時刻となるように変更される。また、タイマX固有の変数mの値はcreate手続き直後にMaだったものが、Mbに変更される。
図18は本発明の第3の実施例における通信ノード間でメッセージがやり取りされる状況例を説明するためのタイミングチャートである。この図18を参照して本発明の第3の実施例における通信ノード間でメッセージがやり取りされる状況例について説明する。
ルータ53がICMP MTUメッセージを通信ノード51に送信し(図18のb1)、通信ノード54宛てのパケットに適用すべきMTU値をある値Maにするように伝えると、通信ノード51はそのMTU確認手段の働きによってMTU確認要求メッセージをパケット長がMaを超える最小値であり、かつIPv6パケットまたはDFフラグを立てたIPv4パケットであるIPパケットに載せて通信ノード52に送信する(図18のb2)。また、通信ノード51ではタイマ制御手段によってタイマX(Xは通信ノード52のIPアドレスとする)がパラメタt,mの値としてそれぞれA,Maで作成される。
ルータ53が正常に動作している場合には、ICMP MTUメッセージが正当であり、すなわちパケット長がMaを超える最小値であり、かつIPv6パケットまたはDFフラグを立てたIPv4パケットであるIPパケットに載せたMTU確認要求メッセージが通信ノード52に到着せず、ルータ53もしくはその他のルータにてそれ以上転送できずに破棄される。よって、通信ノード52はMTU確認要求メッセージを受信せず、MTU確認応答メッセージを送り返すこともない。
したがって、通信ノード51は通信ノード52からMTU確認応答メッセージを受信することなしに時間が経過し、タイマ制御手段においてタイマがタイムアウトし、タイムアウト通知がMTU確認手段に通知される(図18のb3,b4)。タイムアウト通知があったことをもって、MTU確認要求メッセージは通信ノード52に届かなかったものとみなせるので、通信ノード51のMTU確認手段はICMP MTUメッセージが正当であったと判断し、タイムアウト通知で指定されるx値、すなわち通信ノード52のアドレス宛てのパケットに適用すべきMTU値をタイムアウト通知で指定されるm値、すなわちMaとする。
一方、攻撃端末54がICMP MTUメッセージを通信ノード51に送信し、通信ノード52宛てのパケットに適用すべきMTU値を本来あるべき値よりも小さいが、MTUの値としては妥当な大きさの値Mbにするように伝えると(図18のb5)、通信ノード51はそのMTU確認手段の働きによってMTU確認要求メッセージをパケット長がMbを超える最小値であり、かつIPv6パケットまたはDFフラグを立てたIPv4パケットであるIPパケットに載せて通信ノード52に送信する(図18のb6)。
また、通信ノード51ではタイマ制御手段によってタイマX(Xは通信ノード52のIPアドレスとする)がパラメタt,mの値としてそれぞれA,Mbで作成される。
Mbの値は通信ノード51から通信ノード52へ送信するパケットに適用すべきMTU値より小さいため、MTU確認要求メッセージは通信ノード52に到達する。通信ノード52はMTU確認要求メッセージを受信すると、そのMTU確認手段の働きによってMTU確認応答メッセージを通信ノード51に送信する(図18のb7)。
通信ノード51はMTU確認応答メッセージを受信すると、MTU確認要求メッセージが通信ノード52に到達したので、すなわちICMP MTUメッセージの指定するMTU値を不正であると判断し、タイマ制御手段41に対してrestart手続きを、パラメタxとして通信ノード52のIPアドレスを、パラメタmとして0またはその他の妥当でないMTU値を、パラメタtとしてBをそれぞれ指定して依頼する。
このrestart手続きによって、タイマXは時間Bが経過するまで引き続き「存在」状態にあるので、その期間はパラメタxとしてXを指定するcreate手続きが失敗する。よって、MTU確認手段21のステップS63の処理によってステップS64の処理がスキップされることになる。
すなわち、通信ノード51は通信ノード52宛てのパケットに適用すべきMTU値を不当に変更しようとするICMP MTUメッセージを受信し、それが不当であることを確認した後、時間Bが経過するまでは新たなICMP MTUメッセージを受信してもMTU確認要求メッセージを送らない。
この動作によって、本実施例では、ICMP MTUメッセージを通信ノード51に大量に送付することで、通信ノード51が通信ノード52にMTU確認要求メッセージを大量に送付するように仕向ける攻撃を防止することができる。
本発明の第3の実施例のMTU確認手段21において用いるAの値及びBの値の設定について説明する。Aとしては定数とすることも、変数または関数とすることも可能であり、Aを定数とする場合にはネットワークにおける最大のラウンドトリップ時間より大きい時間を指定する。また、Aを変数とする場合にはネットワークの最大のラウンドトリップ時間を推定するなんらかの手法を逐次実行し、その結果の最大ラウンドトリップ時間が得られる毎にそれより大きい時間を変数Aに代入する。
Aを関数とする場合には、パラメタをIPアドレスxとしてx宛てのIPパケットの最大のラウンドトリップ時間を推定するなんらかの手法によって得られた最大のラウンドトリップ時間より大きな値を出力する関数A(x)を用意し、MTU確認手段21のステップS62において、create手続きのパラメタtとしてA(X)を指定する。
Bとしては定数とすることも、変数または関数とすることも可能であり、Bを定数とする場合には、適当な正数を指定する。但し、過大な値を指定すると、正当なICMP MTUメッセージをも無視してしまうことになり、過小な値を指定すると、通信ノードに不正なICMP MTUメッセージを大量に送りつけることで、MTU確認要求メッセージを大量に送信させる攻撃に対して脆弱となる。これらのことから、定数Bの値の範囲としては数秒から数十秒程度とすることが妥当である。
Bを変数とする場合には、変数Bの初期値として比較的小さい値を指定しておき、不正なICMP MTUメッセージの受信頻度が高ければ大きな値を、低ければ小さい値を逐次代入する。Bを関数とする場合には、パラメタをIPアドレスxとして、x宛てのMTUを不正に操作しようとするICMP MTUメッセージの受信頻度が高ければ大きな値を、低ければ小さい値を出力する関数B(x)を用意し、MTU確認手段21のステップS82においてはrestart手続きのパラメタtとしてB(X)を指定する。
本実施例において用いるcreate手続きのパラメタmの値としてはMTU値を直接用いているが、MTU値をパラメタとして直接指定せずに、MTUへのポインタをパラメタmに指定する派生形の実施の形態も有効である。この場合の動作としては、MTU確認手段21のステップS62にてM値をcreate手続きのパラメタに指定することに代えて、M値をメモリ(図示せず)に格納し、そのポインタをcreate手続きのパラメタに指定する。
また、この動作ではステップS91にてタイムアウト通知のm値を変数Mに代入することに代えて、m値をポインタの値として捉えた時にそれが参照するメモリの格納する値を変数Mに代入する。尚、ポインタとしてはメモリのアドレス値や、表形式のデータ構造における行や列の位置、連想記憶における連想キーの値等を用いることができる。
このように、本実施例では、MTU確認手段21がMT確認要求メッセージ及びMTU確認応答メッセージを送受することでICMP MTUメッセージの正当性を確認し、正当性が確認された場合のみICMP MTUメッセージの提示するMTU値を適用するため、正当でないICMP MTUメッセージの提示するMTU値を適用したり、逆に正当であるICMP MTUメッセージを無視したりすることがない。
よって、本実施例では、通信ノードが送信しようとするIPパケットに対して本来適用すべき値と異なるMTU値を適用してフラグメント化処理を行ってしまう可能性が従来に比べて小さくなる。したがって、本実施例では、不必要なフラグメント化処理が行われる可能性やパケットが通信経路途上で破棄される可能性も従来に比べて小さくなるため、従来に比べて通信効率を向上させることができる。
本発明は、仮想リンクを用いてVPN(Virtual Private Network:仮想閉域網)を構築するVPN装置といった用途にも適用可能である。また、本発明は、上記の各実施例を組み合わせることも可能である。
本発明の第1の実施例による通信ノードの構成を示すブロック図である。 図1のインナヘッダアドレスDBの構成例を示す図である。 図1のセキュリティ処理手段がIPsec形式のパケットを渡された時に行う処理を示すフローチャートである。 本発明の第2の実施例による通信ノードの構成を示すブロック図である。 図4のICMP MTU処理手段がICMP MTUメッセージを受けた時に行う処理を示すフローチャートである。 図4のMTU確認手段の動作を示すフローチャートである。 図4のMTU確認手段の動作を示すフローチャートである。 図4のMTU確認手段の動作を示すフローチャートである。 (a),(b)は本発明の第2の実施例で用いるメッセージの構造を示す図である。 本発明の第2の実施例における通信ノード間でメッセージがやり取りされる状況例を説明するためのタイミングチャートである。 本発明の第3の実施例による通信ノードの構成を示すブロック図である。 図11のMTU確認手段の動作を示すフローチャートである。 図11のMTU確認手段の動作を示すフローチャートである。 図11のMTU確認手段の動作を示すフローチャートである。 図11のMTU確認手段の動作を示すフローチャートである。 (a),(b)は本発明の第3の実施例で用いるメッセージの構造を示す図である。 図11のタイマ制御手段の動作を説明するための状態遷移図である。 本発明の第3の実施例における通信ノード間でメッセージがやり取りされる状況例を説明するためのタイミングチャートである。 従来の通信ノードの構成を示すブロック図である。 図19のセキュリティ処理手段がIPsec形式のIPパケットを渡された時に行う処理を示すフローチャートである。 図19のICMP MTU処理手段がICMP MTUメッセージを受けた時に行う処理を示すフローチャートである。 従来の通信ノード間でメッセージがやり取りされる状況例を説明するための図である。
符号の説明
1,2,4,31,
32,51,52 通信ノード
11 入力IF
12 IPパケット入力処理手段
13 セキュリティ処理手段
14 デカプセル化処理手段
15 IPパケット出力処理手段
16 出力IF
17−1〜17−n 仮想出力IF
18 ICMP MTU処理手段
19 インナヘッダアドレスDB
21 MTU確認手段
20,22,42 記録媒体
33,53 ルータ
34,54 攻撃端末
41 タイマ制御手段

Claims (14)

  1. 認証情報の付与を行ったパケットを用いて構成した仮想リンクを複数終端し、前記パケットを前記仮想リンク間で中継する通信ノードを含むネットワークであって、
    前記仮想リンクを通るIPパケットの始点アドレスをチェックするセキュリティ処理手段と、前記始点アドレスチェックのために必要な情報を前記セキュリティ処理手段に提供するデータベースとを前記通信ノードに有し、
    ICMP MTU(Internet Control Message Protocol Maximum Transmission Unit)メッセージの正当性を確認するMTU(Maximum Transmission Unit)確認手段を前記通信ノードに含み、
    前記MTU確認手段は、他の通信ノード宛てのパケットに適用すべきMTUを指示するICMP MTUメッセージを受け取った時に当該ICMP MTUメッセージが正当であればフラグメント化されるはずのパケット長となる長さのMTU確認要求メッセージを前記他の通信ノードに送信し、
    前記MTU確認手段は、前記他の通信ノードから前記MTU確認要求メッセージを受信した時に当該MTU確認要求メッセージのIPパケットがフラグメント化されていたかどうかを示す情報を含むMTU確認応答メッセージを前記他の通信ノードに送信し、
    前記MTU確認手段は、前記他の通信ノードから前記MTU確認応答メッセージを受信した時に当該MTU確認応答メッセージに基づいて前記ICMP MTUメッセージ通りに前記MTU確認要求メッセージのIPパケットがフラグメント化されていたかどうかを判定することを特徴とするネットワーク。
  2. 前記MTUの暫定値を記憶しかつ指定時間後に前記暫定値を前記MTU確認手段に通知するタイマ制御手段を前記通信ノードに含み、
    前記MTU確認手段は、前記MTU確認要求メッセージの送信時に前記タイマ制御手段に前記ICMP MTUメッセージが正当であればメッセージが届かないはずのパケット長となる長さを前記暫定値として記憶させるとともに、タイマを起動させ、前記タイマ制御手段からのタイムアウト通知の有無に応じて前記ICMP MTUメッセージの正当性を確認することを特徴とする請求項1記載のネットワーク。
  3. 認証情報の付与を行ったパケットを用いて構成した仮想リンクを複数終端し、前記パケットを前記仮想リンク間で中継する通信ノードを含むネットワークであって、
    ICMP MTU(Internet Control Message Protocol Maximum Transmission Unit)メッセージの正当性を確認するMTU(Maximum Transmission Unit)確認手段を前記通信ノードに有し、
    前記MTU確認手段は、他の通信ノード宛てのパケットに適用すべきMTUを指示するICMP MTUメッセージを受け取った時に当該ICMP MTUメッセージが正当であればフラグメント化されるはずのパケット長となる長さのMTU確認要求メッセージを前記他の通信ノードに送信し、
    前記MTU確認手段は、前記他の通信ノードから前記MTU確認要求メッセージを受信した時に当該MTU確認要求メッセージのIPパケットがフラグメント化されていたかどうかを示す情報を含むMTU確認応答メッセージを前記他の通信ノードに送信し、
    前記MTU確認手段は、前記他の通信ノードから前記MTU確認応答メッセージを受信した時に当該MTU確認応答メッセージに基づいて前記ICMP MTUメッセージ通りに前記MTU確認要求メッセージのIPパケットがフラグメント化されていたかどうかを判定することを特徴とするネットワーク。
  4. 前記MTUの暫定値を記憶しかつ指定時間後に前記暫定値を前記MTU確認手段に通知するタイマ制御手段を前記通信ノードに含み、
    前記MTU確認手段は、前記MTU確認要求メッセージの送信時に前記タイマ制御手段に前記ICMP MTUメッセージが正当であればメッセージが届かないはずのパケット長となる長さを前記暫定値として記憶させるとともに、タイマを起動させ、前記タイマ制御手段からのタイムアウト通知の有無に応じて前記ICMP MTUメッセージの正当性を確認することを特徴とする請求項3記載のネットワーク。
  5. 認証情報の付与を行ったパケットを用いて構成した仮想リンクを複数終端し、前記パケットを前記仮想リンク間で中継する通信ノードであって、
    前記仮想リンクを通るIPパケットの始点アドレスをチェックするセキュリティ処理手段と、前記始点アドレスチェックのために必要な情報を前記セキュリティ処理手段に提供するデータベースとを有し、
    ICMP MTU(Internet Control Message Protocol Maximum Transmission Unit)メッセージの正当性を確認するMTU(Maximum Transmission Unit)確認手段を含み、
    前記MTU確認手段は、他の通信ノード宛てのパケットに適用すべきMTUを指示するICMP MTUメッセージを受け取った時に当該ICMP MTUメッセージが正当であればフラグメント化されるはずのパケット長となる長さのMTU確認要求メッセージを前記他の通信ノードに送信し、
    前記MTU確認手段は、前記他の通信ノードから前記MTU確認要求メッセージを受信した時に当該MTU確認要求メッセージのIPパケットがフラグメント化されていたかどうかを示す情報を含むMTU確認応答メッセージを前記他の通信ノードに送信し、
    前記MTU確認手段は、前記他の通信ノードから前記MTU確認応答メッセージを受信した時に当該MTU確認応答メッセージに基づいて前記ICMP MTUメッセージ通りに前記MTU確認要求メッセージのIPパケットがフラグメント化されていたかどうかを判定することを特徴とする通信ノード。
  6. 前記MTUの暫定値を記憶しかつ指定時間後に前記暫定値を前記MTU確認手段に通知するタイマ制御手段を含み、
    前記MTU確認手段は、前記MTU確認要求メッセージの送信時に前記タイマ制御手段に前記ICMP MTUメッセージが正当であればメッセージが届かないはずのパケット長となる長さを前記暫定値として記憶させるとともに、タイマを起動させ、前記タイマ制御手段からのタイムアウト通知の有無に応じて前記ICMP MTUメッセージの正当性を確認することを特徴とする請求項5記載の通信ノード。
  7. 認証情報の付与を行ったパケットを用いて構成した仮想リンクを複数終端し、前記パケットを前記仮想リンク間で中継する通信ノードであって、
    ICMP MTU(Internet Control Message Protocol Maximum Transmission Unit)メッセージの正当性を確認するMTU(Maximum Transmission Unit)確認手段を有し、
    前記MTU確認手段は、他の通信ノード宛てのパケットに適用すべきMTUを指示するICMP MTUメッセージを受け取った時に当該ICMP MTUメッセージが正当であればフラグメント化されるはずのパケット長となる長さのMTU確認要求メッセージを前記他の通信ノードに送信し、
    前記MTU確認手段は、前記他の通信ノードから前記MTU確認要求メッセージを受信した時に当該MTU確認要求メッセージのIPパケットがフラグメント化されていたかどうかを示す情報を含むMTU確認応答メッセージを前記他の通信ノードに送信し、
    前記MTU確認手段は、前記他の通信ノードから前記MTU確認応答メッセージを受信した時に当該MTU確認応答メッセージに基づいて前記ICMP MTUメッセージ通りに前記MTU確認要求メッセージのIPパケットがフラグメント化されていたかどうかを判定することを特徴とする通信ノード。
  8. 前記MTUの暫定値を記憶しかつ指定時間後に前記暫定値を前記MTU確認手段に通知するタイマ制御手段を前記通信ノードに含み、
    前記MTU確認手段は、前記MTU確認要求メッセージの送信時に前記タイマ制御手段に前記ICMP MTUメッセージが正当であればメッセージが届かないはずのパケット長となる長さを前記暫定値として記憶させるとともに、タイマを起動させ、前記タイマ制御手段からのタイムアウト通知の有無に応じて前記ICMP MTUメッセージの正当性を確認することを特徴とする請求項7記載の通信ノード。
  9. 認証情報の付与を行ったパケットを用いて構成した仮想リンクを複数終端し、前記パケットを前記仮想リンク間で中継する通信ノードを含むネットワークのキュリティ方法であって、
    前記通信ノード側に、データベースから提供される前記仮想リンクを通るI(Internet Protocol)パケットの始点アドレスをチェックするために必要な情報を基に前記始点アドレスをチェックするステップを有し、
    前記通信ノード側に、ICMP MTU(Internet Control Message Protocol Maximum Transmission Unit)メッセージの正当性を確認するステップを含み、
    前記正当性を確認するステップにおいて、他の通信ノード宛てのパケットに適用すべきMTUを指示するICMP MTUメッセージを受け取った時に当該ICMP MTUメッセージが正当であればフラグメント化されるはずのパケット長となる長さのMTU確認要求メッセージを前記他の通信ノードに送信し、
    前記正当性を確認するステップにおいて、前記他の通信ノードから前記MTU確認要求メッセージを受信した時に当該MTU確認要求メッセージのIPパケットがフラグメント化されていたかどうかを示す情報を含むMTU確認応答メッセージを前記他の通信ノードに送信し、
    前記正当性を確認するステップにおいて、前記他の通信ノードから前記MTU確認応答メッセージを受信した時に当該MTU確認応答メッセージに基づいて前記ICMP MTUメッセージ通りに前記MTU確認要求メッセージのIPパケットがフラグメント化されていたかどうかを判定することを特徴とするセキュリティ方法。
  10. 前記正当性を確認するステップにおいて、前記MTU確認要求メッセージの送信時に前記タイマ制御手段に前記ICMP MTUメッセージが正当であればメッセージが届かないはずのパケット長となる長さを前記MTUの暫定値として記憶させるとともに、予め設定された所定時間の経過を示すタイムアウト通知の有無に応じて前記ICMP MTUメッセージの正当性を確認することを特徴とする請求項9記載のセキュリティ方法。
  11. 認証情報の付与を行ったパケットを用いて構成した仮想リンクを複数終端し、前記パケットを前記仮想リンク間で中継する通信ノードを含むネットワークのセキュリティ方法であって、
    前記通信ノード側に、ICMP MTU(Internet Control Message Protocol Maximum Transmission Unit)メッセージの正当性を確認するステップを有し、
    前記正当性を確認するステップにおいて、他の通信ノード宛てのパケットに適用すべきMTUを指示するICMP MTUメッセージを受け取った時に当該ICMP MTUメッセージが正当であればフラグメント化されるはずのパケット長となる長さのMTU確認要求メッセージを前記他の通信ノードに送信し、
    前記正当性を確認するステップにおいて、前記他の通信ノードから前記MTU確認要求メッセージを受信した時に当該MTU確認要求メッセージのIPパケットがフラグメント化されていたかどうかを示す情報を含むMTU確認応答メッセージを前記他の通信ノードに送信し、
    前記正当性を確認するステップにおいて、前記他の通信ノードから前記MTU確認応答メッセージを受信した時に当該MTU確認応答メッセージに基づいて前記ICMP MTUメッセージ通りに前記MTU確認要求メッセージのIPパケットがフラグメント化されていたかどうかを判定することを特徴とするセキュリティ方法。
  12. 前記正当性を確認するステップにおいて、前記MTU確認要求メッセージの送信時に前記タイマ制御手段に前記ICMP MTUメッセージが正当であればメッセージが届かないはずのパケット長となる長さを前記MTUの暫定値として記憶させるとともに、予め設定された所定時間の経過を示すタイムアウト通知の有無に応じて前記ICMP MTUメッセージの正当性を確認することを特徴とする請求項12記載のセキュリティ方法。
  13. 認証情報の付与を行ったパケットを用いて構成した仮想リンクを複数終端し、前記パケットを前記仮想リンク間で中継する通信ノード内のコンピュータに実行させるプログラムであって、
    データベースから提供される前記仮想リンクを通るIP(Internet Protocol)パケットの始点アドレスをチェックするために必要な情報を基に前記始点アドレスをチェックする処理と、ICMP MTU(Internet Control Message Protocol Maximum Transmission Unit)メッセージの正当性を確認する処理とを含み、
    前記正当性を確認する処理において、他の通信ノード宛てのパケットに適用すべきMTUを指示するICMP MTUメッセージを受け取った時に当該ICMP MTUメッセージが正当であればフラグメント化されるはずのパケット長となる長さのMTU確認要求メッセージを前記他の通信ノードに送信させ、
    前記正当性を確認する処理において、前記他の通信ノードから前記MTU確認要求メッセージを受信した時に当該MTU確認要求メッセージのIPパケットがフラグメント化されていたかどうかを示す情報を含むMTU確認応答メッセージを前記他の通信ノードに送信させ、
    前記正当性を確認する処理において、前記他の通信ノードから前記MTU確認応答メッセージを受信した時に当該MTU確認応答メッセージに基づいて前記ICMP MTUメッセージ通りに前記MTU確認要求メッセージのIPパケットがフラグメント化されていたかどうかを判定させることを特徴とするプログラム。
  14. 認証情報の付与を行ったパケットを用いて構成した仮想リンクを複数終端し、前記パケットを前記仮想リンク間で中継する通信ノード内のコンピュータに実行させるプログラムであって、
    ICMP MTU(Internet Control Message Protocol Maximum Transmission Unit)メッセージの正当性を確認する処理を含み、
    前記正当性を確認する処理において、他の通信ノード宛てのパケットに適用すべきMTUを指示するICMP MTUメッセージを受け取った時に当該ICMP MTUメッセージが正当であればフラグメント化されるはずのパケット長となる長さのMTU確認要求メッセージを前記他の通信ノードに送信させ、
    前記正当性を確認する処理において、前記他の通信ノードから前記MTU確認要求メッセージを受信した時に当該MTU確認要求メッセージのIPパケットがフラグメント化されていたかどうかを示す情報を含むMTU確認応答メッセージを前記他の通信ノードに送信させ、
    前記正当性を確認する処理において、前記他の通信ノードから前記MTU確認応答メッセージを受信した時に当該MTU確認応答メッセージに基づいて前記ICMP MTUメッセージ通りに前記MTU確認要求メッセージのIPパケットがフラグメント化されていたかどうかを判定させることを特徴とするプログラム。
JP2003394852A 2003-11-26 2003-11-26 ネットワーク、通信ノード及びそれらに用いるセキュリティ方法並びにそのプログラム Expired - Fee Related JP4367106B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003394852A JP4367106B2 (ja) 2003-11-26 2003-11-26 ネットワーク、通信ノード及びそれらに用いるセキュリティ方法並びにそのプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003394852A JP4367106B2 (ja) 2003-11-26 2003-11-26 ネットワーク、通信ノード及びそれらに用いるセキュリティ方法並びにそのプログラム

Publications (2)

Publication Number Publication Date
JP2005159688A JP2005159688A (ja) 2005-06-16
JP4367106B2 true JP4367106B2 (ja) 2009-11-18

Family

ID=34720763

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003394852A Expired - Fee Related JP4367106B2 (ja) 2003-11-26 2003-11-26 ネットワーク、通信ノード及びそれらに用いるセキュリティ方法並びにそのプログラム

Country Status (1)

Country Link
JP (1) JP4367106B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4647481B2 (ja) * 2005-12-19 2011-03-09 三菱電機株式会社 暗号化通信装置
JP6151906B2 (ja) * 2012-10-10 2017-06-21 キヤノン株式会社 通信装置及びその制御方法

Also Published As

Publication number Publication date
JP2005159688A (ja) 2005-06-16

Similar Documents

Publication Publication Date Title
US10616379B2 (en) Seamless mobility and session continuity with TCP mobility option
US7143282B2 (en) Communication control scheme using proxy device and security protocol in combination
US10404588B2 (en) Path maximum transmission unit handling for virtual private networks
US7434045B1 (en) Method and apparatus for indexing an inbound security association database
US20070214502A1 (en) Technique for processing data packets in a communication network
EP1775910A1 (en) Application layer ingress filtering
EP1968272A1 (en) Loop detection for mobile IP home agents
US20110119534A1 (en) Method and apparatus for processing packets
JP2003244233A (ja) インターネット鍵交換データパケットをフラグメント化および再組み立てするための方法および装置
WO2005101721A1 (en) Method and apparatus for preventing network attacks by authenticating internet control message protocol packets
US10911581B2 (en) Packet parsing method and device
JP4468453B2 (ja) 往復経路確認の最適化
WO2007053325A2 (en) Approaches for automatically switching message authentication keys
US20070217424A1 (en) Apparatus and method for processing packets in secure communication system
JP4367106B2 (ja) ネットワーク、通信ノード及びそれらに用いるセキュリティ方法並びにそのプログラム
JP4647481B2 (ja) 暗号化通信装置
EP2953311B1 (en) Packet identification method and protective device
Smyslov Internet Key Exchange Protocol Version 2 (IKEv2) Message Fragmentation
CN112787905A (zh) Mtu确定方法及系统、电子设备及存储介质
CN116471345B (zh) 一种数据通信方法、装置、设备及介质
WO2023159346A1 (en) Communication devices and methods therein for facilitating ipsec communications
WO2023179174A1 (zh) 一种报文传输方法及相关设备
Bahnasse et al. Security of Dynamic and Multipoint Virtual Private Network
Hinden et al. RFC 9268: IPv6 Minimum Path MTU Hop-by-Hop Option
KR100617315B1 (ko) 인터넷 보안 프로토콜 터널 모드 처리 방법 및 장치

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20061013

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20081128

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090616

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090721

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: 20090804

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090817

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: 20120904

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20130904

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees