TCP通信方式
【課題】端末の近傍の通信経路まで通信が安全に行なうことができるとともに、ハッカーなどからの直接的攻撃を受けることがなくなる方法を提供する。
【解決手段】TCP通信の両端に位置するエンドポント端末を端末A及び端末Bとし、端末A及び端末Bは、装置X及び装置Yに接続され、装置X,Yは、ネットワークNETにそれぞれ接続される。装置X及びYは、従来TCP通信を行っていた端末A及びBの間に挟みこむように設置され、自身にIPアドレスを有しない。装置X及びYは、端末A−端末B間のTCP接続を横取りして3つのTCP接続に分割し、接続手順の過程で接続手順成立前に情報を中継装置X,中継装置Yで交換して、装置X,装置Yを認証する際に装置X及び装置Yのみ、TCP接続を成立させる。
【解決手段】TCP通信の両端に位置するエンドポント端末を端末A及び端末Bとし、端末A及び端末Bは、装置X及び装置Yに接続され、装置X,Yは、ネットワークNETにそれぞれ接続される。装置X及びYは、従来TCP通信を行っていた端末A及びBの間に挟みこむように設置され、自身にIPアドレスを有しない。装置X及びYは、端末A−端末B間のTCP接続を横取りして3つのTCP接続に分割し、接続手順の過程で接続手順成立前に情報を中継装置X,中継装置Yで交換して、装置X,装置Yを認証する際に装置X及び装置Yのみ、TCP接続を成立させる。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、TCPネットワークを中継し、特定の機能(例えば、暗号通信機能)を付加したTCP通信方式に関するものである。
【背景技術】
【0002】
通信端末のエンドポイント間に挿入され、その間の通信に何らかの特定機能を付加する装置として、VPN(Virtual Private Network)ルータがある。このVPNルータは、2つのネットワークの間に設置され、その間の通信を暗号化するという機能を付加する装置である。
【0003】
VPNルータには、通信事業者が提供するVPN網を利用して接続するIP−VPNと、ユーザ自身がVPN機器を挿入してインターネット経由で接続するインターネットVPNとの2つの形態がある。主に、前者はLAN同士を接続するLAN間接続VPN(図9に示す)として、後者は端末PCをLANに接続するリモートアクセスVPN(図10に示す)として利用されることが多い。
【0004】
図9において、1,2はローカルLAN、3,4はVPNルータで、VPNルータ3,4間がVPN区間である(特許文献1,2参照。)。
【0005】
また、図10において、5はVPN端末PC、6はVPNルータ、7はローカルLANで、VPN端末PC5とVPNルータ6間がインターネットVPN区間である(特許文献3,4参照。)。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開2008−118577号公報
【特許文献2】特開2008−227923号公報
【特許文献3】特開2008−219531号公報
【特許文献4】特開2008−301024号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
前述したVPNには、次のような問題がある。
【0008】
(a)VPN区間外の通信は、侵入などが自由であり安全でない。このため、端末の近傍までVPN区間となるように設置するためには、コスト高となる。
【0009】
(b)VPN装置自身にも希少なグローバルIPアドレスを割り当てる必要がある。
【0010】
(c)機器の設定が煩雑であり、高度な知識が要求される。
【0011】
本発明の目的は、上記の事情に鑑みてなされたもので、端末の近傍の通信経路まで通信が安全に行なうことができ、また、IPレスのためネットワーク上で装置を不可視化できるようになるため、ハッカーなどからの直接的攻撃を受けることがなくなるTCP通信方式を提供することにある。
【課題を解決するための手段】
【0012】
上記の課題を達成するために、請求項1の発明は、TCP通信方式であって、ネットワークを挟んでTCP接続される第1、第2端末を設け、この第1端末とネットワークとの伝送路間に第1中継装置を、第2端末とネットワークとの伝送路間に第2中継装置をそれぞれ設け、第1、第2中継装置はネットワークを介して接続され、第1端末と第1中継装置、第1中継装置と第2中継装置、第2中継装置と第2端末の3つのTCP接続手順に分割し、その接続手順の過程で接続手順成立前に情報を第1、第2中継装置で交換して、第1、第2中継装置を認証する際に前記第1、第2中継装置のみ、TCP接続を成立させることを特徴とする。
【0013】
請求項2の発明は、請求項1のTCP通信方式において、前記TCP接続のSYNパケットを捕らえて、前記第1、第2端末に成り代わり、IPアドレスを持たないでTCP接続を行うことを特徴とする。
【0014】
請求項3の発明は、請求項1または2のTCP通信方式において、前記第1、第2中継装置の認証機能を、機種識別情報を交換して実現可能としたことを特徴とする。
【0015】
請求項4の発明は、請求項1または2のTCP通信方式において、鍵情報を事前に交換することで、暗号通信の事前鍵交換機能を実現可能としたことを特徴とする。
【0016】
請求項5の発明は、請求項1から4のいずれかのTCP通信方式において、前記TCP接続によるTCP通信に特定の機能を付加したことを特徴とする。
【0017】
請求項6の発明は、請求項5のTCP通信方式において、前記特定の機能は、暗号化/復号化手順を構成する暗号通信機能、不正のTCP通信の遮断手順を構成するアンチウィルス機能、負荷状況に応じて伝送の振り分け手順に構成する負荷分散機能、輻輳制御及び帯域制御手順に構成する帯域制御機能、及び特殊回線の中継手順に構成するゲートウェイ機能のいずれかであることを特徴とする。
【発明の効果】
【0018】
本発明によれば、端末の近傍の通信経路まで通信が安全に行なうことができるとともに、IPアドレスレスのため、ネットワーク上で装置を不可視化できるようになり、ハッカーなどからの直接的攻撃を受けることがなくなる利点がある。また、ネットワーク構成及び設定を変更する必要が無く、端末に専用のソフトウェアをインストールする必要も無く、さらに、アプリケーションに依存しないため、端末のアプリケーションを変更する必要も無くなる利点がある。この他、従来の通信に影響を与えずに他の通信プロトコルと共存が可能であるとともに、付加する機能を自由に選択及び拡張することが可能であるなどの利点がある。
【0019】
また、本発明によれば、ネットワーク構成及び設定を変更する必要がなくなるとともに、既存の標準プロトコルスタックを利用するため、実装コストを低減でき、さらに、標準のTCP接続手順内で完結するため、通信帯域を余分に消費しないとともに、正しくない相手とはTCP接続を成立させないので、悪意ある攻撃によってコンピュータ資源を浪費することが無い利点もある。この他、第1、第2中継装置が当該TCPオプションに標準で対応しているか、または未対応の場合でも目的を達することができ、また、新たにTCPポート番号を必要としない等の利点がある。
【図面の簡単な説明】
【0020】
【図1】図1は、TCP通信方式の実施例1を示すネットワーク構成説明図である。
【図2】図2は、イーサネット(登録商標)のフレームフォーマットである。
【図3】図3(a),(b)は、TCP接続の分割説明図である。
【図4】図4は、応用例1の暗号通信装置を示すブロック構成図である。
【図5】図5は、応用例2のアンチウィルス装置を示すブロック構成図である。
【図6】図6は、応用例3の負荷分散装置を示すブロック構成図である。
【図7】図7は、応用例4の帯域制御装置を示すブロック構成図である。
【図8】図8は、応用例5のゲートウェイ装置を示すブロック構成図である。
【図9】図9は、LAN間接続VPN説明図である。
【図10】図10は、リモートアクセスVPN説明図である。
【図11】図11は、TCPオプションフィールド種別「06」及び「07」の標準使用形態説明図である。
【図12】図12は、中継装置Yが存在する場合の確認シーケンスの説明図である。
【図13】図13は、中継装置Yが非存在で端末Bが種別「6」に対応している場合における確認シーケンスの説明図である。
【図14】図14は、中継装置Yが非存在で端末Bが種別「6」に未対応の場合における確認シーケンスの説明図である。
【図15】図15は、TCPオプションフィールド種別「19」の標準使用形態説明図である。
【図16】図16は、中継装置Yが存在する場合の確認シーケンスの説明図である。
【図17】図17は、中継装置Yが非存在で端末Bが種別「19」に未対応の場合における確認シーケンスの説明図である。
【図18】図18は、応用例6の処理手順説明図である。
【発明を実施するための形態】
【0021】
以下本発明の実施例を図面に基づいて詳細に説明する。
【実施例1】
【0022】
図1は本発明の実施例1を示すネットワーク構成説明図で、図1において、TCP通信の両端に位置するエンドポント端末を端末A及び端末Bとし、端末A及び端末Bは、中継装置X及び中継装置Yに伝送路11,14を介して接続され、中継装置X,Yは、ネットワークNETに伝送路12,13を介してそれぞれ接続されている。
【0023】
中継装置X及びYは、従来TCP通信を行っていた端末A及びBの間に挟みこむように設置され、自身にIPアドレスを有しない。説明の便宜上、以下、端末AをTCP接続(コネクション)のアクティブ側、端末Bをパッシブ側と称する。
【0024】
中継装置X及びYは、端末A−端末B間のTCP接続を横取りして3つのTCP接続に分割し、TCP通信を成立させる。
【0025】
次に、アクティブ側とパッシブ側の中継装置X,Yの処理について以下に述べる。
(1)アクティブ側の中継装置Xの処理について
(a)プロミスキャス・モードで待ち受ける。プロミスキャス・モードとは、LANカードの動作モードの一つであり、通常モードでは、宛先アドレスが自局宛のパケットしか受信しないのに対し、プロミスキャス・モードでは、あらゆる宛先アドレスのパケットを受信する。
【0026】
(b)端末Aの送信するTCP接続の開始パケットであるSYN(synchronize)パケットを捕らえる。
【0027】
(c)SYNパケットの情報から送信元IPアドレス(IPヘッダから取り込む)と送信元ポート番号(TCPヘッダから取り込む)及び送信先IPアドレス(IPヘッダから取り込む)と送信先ポート番号(TCPヘッダから取り込む)を取得する。
【0028】
(d)端末Aになりすまして、取得した送信先アドレスに対して新たにTCP接続を開始する。
【0029】
(e)このとき、SYNパケット内に当該中継装置であることを示す識別子を付加しておく。この識別子について図2に示すイーサネット(登録商標)のフレームフォーマットを基に述べる。TCPヘッダに含まれるTCPオプションフィールド(以下TCPオプションと称す)を使用する。
【0030】
アクティブ側はTCPオプションの種別コード「06」を、パッシブ側はTCPオプションの種別コード「07」を使用し、それぞれの種別コード「06」、「07」に続く各々「06」の数字は、TCPオプションのデータ長を示している。また、それに続く、「04・・0400100」と「C0・・C00100」は、独自に決めた識別コード(識別子)で、この識別コードの値の意味を様々に定義することで種々な用途に使用できる。
【0031】
(f)パッシブ側中継装置Yからの応答パケット(SYN+ACK(Acknowledge))に同様の識別子が付加されていた場合は、対向側にも当該中継装置が存在することを認識し処理を継続する。この例としては、例えば、パッシブ側中継装置YにACKパケットを返送する処理がある。
【0032】
(g)パッシブ側中継装置YとのTCP接続が完了した時点で、端末A側のTCP接続を完結させる。この接続により、端末Aに(SYN+ACK)パケットを返送し、端末AからのACKパケットを待ち受ける処理を行う。
【0033】
上記の説明を図示したのが図3(a)で、この図3(a)はTCP接続の分割説明図である。
(2)パッシブ側の中継装置Yの処理について
(a)プロミスキャス・モードで待ち受ける。
【0034】
(b)中継装置Xの送信するSYNパケットを捕らえる。
【0035】
(c)SYNパケットの情報から送信元IPアドレスと送信元ポート番号及び送信先IPアドレスと送信先ポート番号を取得する。
【0036】
(d)端末Aになりすまして、端末B側とのTCP接続を開始する。
【0037】
(e)端末Bから(SYN+ACK)の応答パケットを受信すると、端末Bになりすまして、(SYN+ACK)のTCPオプション内に“識別子”を付加して中継装置Xへ(SYN+ACK)の応答パケットを送信する。
【0038】
(f)アクティブ側中継装置XとのTCP接続が完了した時点で、端末B側のTCP接続を完結させる。
【0039】
上記の説明を図示したのが図3(a)である。
(3)分割されたTCP接続の成立について
上記(1)、(2)の処理が完了すると、本来、端末A−端末B間で1本であったTCP接続が、端末A−中継装置X、中継装置X−中継装置Y、中継装置Y−端末B間それぞれのTCP接続が3本に分割される。
【0040】
このため、TCPのペイロードデータは、上記の3本に中継されて、端末間でデータがやり取りされる。このとき端末からは、当該中継装置の存在は見えない、すなわち、不可視になる。
【0041】
中継装置間のTCP接続は、装置間の取り決めによって如何様にもペイロードデータに加工を施すことができる。これを利用して、分割したTCP通信に、ある特定の機能を付加することができる。
【0042】
上記説明には、データ送信については述べていないが、データ送信は端末Aと端末B間で単純に転送されるだけあり、中継装置Xと中継装置Yとの間で、データに何かしら加工が施されて転送される。
【0043】
上記図3(a)は、中継装置X,Yがある場合のものであるが、中継装置XだけあるいはYだけの場合を図3(b)に示した。図3(b)は、中継装置Xだけの場合の分割説明図であり、後述する<応用例2>、<応用例3>、および<応用例5>に適用される。
【0044】
なお、この場合、中継装置Xは、端末Bからの応答パケット(SYN+ACK)内のTCPオプションの種別コード「07」内に識別子が付加されていないことを確認後、端末BにACKパケットを返送し、端末Aには(SYN+ACK)パケットを送出する。
【実施例2】
【0045】
実施例2は、TCPオプションの種別コード「06」及び種別コード「07」を利用するもので、種別コード「06」は、[Echo(obsolyted by option 8)RFC1072]であり、種別コード「07」は、[Echo Reply(obsolyted by option 8)RFC1072]である。
【0046】
図11は、TCPオプションの種別コード「06」及び種別コード「07」の標準使用形態におけるシーケンスの説明図で、TCPオプションの種別コード「06」及び種別コード「07」は、本来、TCP輻輳制御における応答時間の測定に使用される。例えば、種別コード「06」に任意の数値が設定されたパケットを図2に示す送信元機器(中継装置X)から対向機器である相手機器(中継装置Y)へ送信すると、受信した相手機器は、種別コード「07」で受信した任意の数値のパケットを折り返して送信元機器に送信する。送信元機器では、同一の数値が設定されたパケットが到達した時間を計測し、輻輳制御に使用する。
【0047】
前述のTCPオプション機能を利用し、任意値として固有の意味を持つ数値(パケット)を送信し合うことで、事前情報の交換を行う。中継装置Xが対向側に同等の機能を持つ中継装置Yが存在することを、上記手順を用いて確認(認証)する場合について、以下に説明する。
(1)同等の中継装置Yが存在する場合
中継装置Xの対向側に同等の中継装置Yが存在する場合は、以下の手順によって、中継装置Xは、中継装置Yの存在を確認する。
【0048】
以下、図12に示す確認シーケンスの説明図により述べる。
【0049】
(a)中継装置Xは、TCPスリーウェイハンドシェイクのSYNパケットのTCPオプションに固有の識別子A(例えば、0x404040404040等)を含む種別コード「06」を付加して送信する。
【0050】
(b)中継装置Yは、上記識別子Aを受信すると、対向側に同等の中継装置Xが存在することを認識し、同様にSYN+ACKパケットのTCPオプションに固有の識別子B(例えば、0XC0C0C0C0C0C0等)を含む種別コード「07」を付加して返信する。
【0051】
(c)中継装置Xは、上記識別子Bを受信すると、対向側に同等の中継装置Yが存在することを確認し、ACKを返信してスリーウェイハンドシェイクを完結させコネクションを確立する。
(2)TCPオプションの種別コード「06」及び「07」に標準対応の機器が存在する場合
中継装置Xの対向側に同等の中継装置Yが存在せず、TCPオプションの種別コード「06」及び「07」に対応するのみの装置が存在する場合は、以下の手順によって、中継装置Xは同等の中継装置Yの非存在を確認する。
【0052】
以下、図13に示す確認シーケンスの説明図により述べる。
【0053】
(a)中継装置Xは、TCPスリーウェイハンドシェイクのSYNパケットのTCPオプションに固有の識別子A(例えば、0x404040404040等)を含む種別コード「06」を付加して送信する。
【0054】
(b)中継装置Yは、上記識別子Aを受信すると標準の規定に従って、SYN+ACKパケットのTCPオプションに受取った識別子Aを含む種別コード「07」を付加して返信する。
【0055】
(c)中継装置Xは、上記識別子Aを受信すると、対向側に同等の中継装置Yが存在しないことを認識し、ACKを返信してスリーウェイハンドシェイクを完結させコネクションを確立するか、あるいはRST(リセット)を返信してスリーウェイハンドシェイクを終了させコネクションの開設をキャンセルする。
(3)TCPオプションの種別コード「06」及び「07」に未対応の機器が存在する場合
中継装置Xの対向側に同等の中継装置Yが存在せず、TCPオプションの種別コード「06」及び「07」にも対応していない装置が存在する場合は、以下の手順によって、中継装置Xは同等の中継装置Yの非存在を確認する。
【0056】
以下、図14に示す確認シーケンスの説明図により述べる。
【0057】
(a)中継装置Xは、TCPスリーウェイハンドシェイクのSYNパケットのTCPオプションに固有の識別子A(例えば、0x404040404040等)を含む種別コード「06」を付加して送信する。
【0058】
(b)中継装置Yは、TCPオプションを付加しないでSYN+ACKパケットを返信する。
【0059】
(c)中継装置Xは、上記識別子Aを受信すると、対向側に同等の中継装置Yが存在しないことを認識し、ACKを返信してスリーウェイハンドシェイクを完結させコネクションを確立するか、あるいはRST(リセット)を返信してスリーウェイハンドシェイクを終了させコネクションの開設をキャンセルする。
【実施例3】
【0060】
実施例3は、TCPオプションの種別「19」を利用するものである。なお、種別「19」は、「MD5 Signature Option RFC2385」である。
【0061】
図15は、TCPオプションの種別「19」の標準使用形態におけるシーケンスの説明図で、この種別「19」は、本来BGP(Boarder Gateway Protocol)専用のオプションであり、TCPセグメントのMD5ハッシュ値による署名として使用される。BGPセッションに流れるあらゆるTCPセグメントに付加され、BGPセッションを保護する。
【0062】
実施例3は、図15に示すTCPオプション機能を利用し、任意値として固有の意味を持つ数値を送信し合うことで、事前情報の交換を行う。ただし、本方式は、BGPセッション上では標準の使用方法と競合するため、使用できないため、BGP以外のセッション限定とする。中継装置Xが、対向側に同等の機能を持つ中継装置Yが存在することを、上記手順を用いて確認(認証)する場合について、以下に述べる。
(1)同等の中継装置Yが存在する場合
図16は、中継装置Xの対向側に同等の中継装置Yが存在する場合の確認シーケンスの説明図で、この図16においては、以下の手順によって中継装置Xは、中継装置Yの存在を確認する。ただし、送信先TCPポート番号がBGP(179)の場合は実施しない。
【0063】
(a)中継装置Xは、TCPスリーウェイハンドシェイクのSYNパケットのTCPオプションに固有の識別子A(例えば、0x404040404040等)を含む種別コード「19」を付加して送信する。
【0064】
(b)中継装置Yは、上記識別子Aを受信すると、対向側に同等の中継装置Xが存在することを認識し、同様にSYN+ACKパケットのTCPオプションに固有の識別子B(例えば、0XC0C0C0C0C0C0等)を含む種別コード「19」を付加して返信する。
【0065】
(c)中継装置Xは、上記識別子Bを受信すると、対向側に同等の中継装置Yが存在することを確認し、ACKを返信してスリーウェイハンドシェイクを完結させコネクションを確立する。
(2)TCPオプションの種別コード「19」に未対応の機器が存在する場合
中継装置Xの対向側に同等の中継装置Yが存在しない場合は、以下の手順によって中継装置Xは同等の中継装置Yの非存在を確認する。ただし、送信先TCPポート番号がBGP(179)の場合は実施しない。
【0066】
以下図17に示す確認シーケンスの説明図により説明する。
【0067】
(a)中継装置Xは、TCPスリーウェイハンドシェイクのSYNパケットのTCPオプションに固有の識別子A(例えば、0x404040404040等)を含む種別コード「19」を付加して送信する。
【0068】
(b)中継装置Yは、TCPオプションを付加しないでSYN+ACKパケットを返信する。
【0069】
(c)中継装置Xは、TCPオプションの種別コード「19」を受信できないことで、対向側に同等の中継装置Yが存在しないことを認識し、ACKを返信してスリーウェイハンドシェイクを完結させコネクションを確立するか、あるいはRST(リセット)を返信してスリーウェイハンドシェイクを終了させコネクションの開設をキャンセルする。
【0070】
上記実施例3においては、特別なパケットを使用しないため、ファイアウォールの通過設定等を変更する必要が無く、また、識別子を複数定義することによって、機能を拡張することができるなどの作用効果が得られる。
【産業上の利用可能性】
【0071】
上記実施例1として、本発明は、以下に示す幾つかの応用例に適用が可能である。
【0072】
<応用例1>
図4は応用例を暗号通信装置に適用したもので、この暗号通信装置は、端末A−装置X−装置Y−端末Bのように構成されている。装置Xは、内側TCP接続処理部X1、暗号処置部X2、外側TCP接続処理部X3、X4及び復号処理部X5から構成され、装置Yは、内側TCP接続処理部Y1、暗号処置部Y2、外側TCP接続処理部Y3、Y4及び復号処理部Y5から構成されている。
【0073】
このように構成された応用例1では、端末A→端末B方向へのデータ通信の場合には、端末Aからのデータは、装置Xの内側TCP接続処理部X1でデータ処理された後、暗号処置部X2でデータは暗号化処理されて、外側TCP接続処理部X3を介して、装置Yの外側TCP接続処理部Y4に入力された後、復号処理部Y5でデータは復号処理されて内側TCP接続処理部Y1から端末Bに送られる。
【0074】
一方、端末B→端末A方向へのデータ通信の場合は、上記とは逆に装置Yの内側TCP接続処理部Y1でデータ処理されて暗号処置部Y2でデータが暗号化処理され、外側TCP接続処理部Y3から装置Xの外側TCP接続処理部X4に入力された後、復号処理部X5でデータを復号処理して内側TCP接続処理部X1から端末Aに送られる。
【0075】
上記のように暗号通信装置を機能させることで、端末A−端末Bまたは端末B−端末A間の通信経路の暗号通信が実現できる。例えば、事前に鍵情報を交換しておくことにより、暗号通信の事前鍵交換機能が実現できる。
【0076】
<応用例2>
図5は応用例をアンチウィルス装置に適用したもので、このアンチウィルス装置は、端末A−装置X−端末B,C,Dのように構成され、装置Xは、外側TCP接続処理部41、ウィルス検査処理部42及び内側TCP接続処理部43から構成されている。このように構成された装置Xにおいて、TCP通信の中継処理の過程で、ウィルス検査処理部42でウィルス検査処理を行い、検査に合格しないTCP通信は中継しないように処理することで、例えば、端末Aから端末B,C,Dへの不正アクセスもしくは、端末B,C,Dから端末Aへの不正アクセスを排除する。
【0077】
<応用例3>
図6は応用例を負荷分散装置に適用したもので、この負荷分散装置は、端末A,B,C−ルータR−装置X−複数のサーバ1〜Nのように構成され、装置Xは、外側TCP接続処理部51、負荷分散処理部52及び内側TCP接続処理部53から構成されている。このように構成された負荷分散装置で、サーバ1〜Nの前段の装置Xにおいて、負荷状況に応じて適切なサーバ1〜Nヘ伝送を振り分けるようにすることで、負荷分散を実現できる。
【0078】
例えば、端末A、端末B、端末Cは公開された1つのIPアドレスへ接続する。その瞬間に装置Xは、サーバ1〜Nの負荷状態によりサーバ1〜Nの1つを選んでTCP接続を中継する。これによって、端末A〜Cは公開されたIPアドレスとTCP接続しているように見える。また、サーバ1〜Nは各々異なるIPアドレスと外部にある端末のIPアドレスで接続しているように見える。
【0079】
<応用例4>
図7は応用例を帯域制御装置に適用したもので、この帯域制御装置は、端末A−装置X−装置Y−端末Bのように構成されていて、装置Xは、内側TCP接続処理部61x、輻輳制御帯域制御処理部62x及び専用プロトコル処理部63xから構成され、装置Yは、内側TCP接続処理部61y、輻輳制御帯域制御処理部62y及び専用プロトコル処理部63yから構成されている。
【0080】
上記のように構成された端末A−装置X−装置Y−端末Bの構成で、装置X−装置Y間において専用のプロトコルによって、輻輳制御と帯域制御をきめ細かく行うことで、汎用のTCPでは適切に対応しきれない回線に応じた適切な帯域制御を実現できる。
【0081】
<応用例5>
図8は応用例をゲートウェイ装置に適用したもので、このゲートウェイ装置は、端末A−装置X−端末Bのように構成され、装置Xは、外側TCP接続処理部71、ゲートウェイ処理部72及び内側TCP接続処理部73から構成されている。
【0082】
上記のように構成された装置において、端末Bは特別なプロトコルあるいはデータにて動作する。また、端末Aは、通常のプロトコルあるいはデータで通信するため変換する装置としてゲートウェイ装置が必要となる。このため、端末Bの直前に装置Xを設置することでプロトコルまたはデータの変換処理を行う。通常にゲートウェイ装置は、その装置にIPアドレスが設定され端末Aと装置X、装置Xと端末Bの通信になるが、この応用例では装置Xは存在しないように見える。
【0083】
<応用例6>
応用例6は、実施例1および応用例1〜5の全てを、端末内のTCPプロトコルスタックソフトウェアに機能を組み込むことで、外部のハードウェア装置を用いることなくソフトウェアでも実現できるようにしたものである。
【0084】
TCPプロトコルスタックで接続待ちを行う場合は、通常、事前にソケットを作成し、受付けるポート番号を指定(バインド)して接続待ち(アクセプト)を行う。
【0085】
しかし、実施例1における中継装置Xでは、送信元と送信先のIPアドレス、および送信元と送信先のポート番号を予め知ることができない。そこで、接続の最初に送信されるTCPのSYNパケットをプロミスキャス・モードにて捕捉して、接続先情報を入手し、接続待ち用ソケットを用意し、バインド+アクセプト手続きを先回りして実行し、該パケットをTCPプロトコルスタックに処理させる。このように処理することによって、あたかも対向側の端末Bの振りをしてTCP接続を完結させることができるようになる。
【0086】
次に上記の場合における処理手順の詳細を図18の説明図を参照して述べる。
(a)先ず、プロミスキャス・モードでSYNパケットを捕捉する。(ネットワークドライバ)
(b)捕捉したSYNパケットから宛先IPアドレスとポート番号を得る。(ネットワークドライバ)
(c)取得した宛先情報をアプリケーションに通知する。(ネットワークドライバ)
(d)通知された情報を使用してソケット作成+バインド+アクセプト手続きを行います。(アプリケーション)
(e)SYNパケットをTCPプロトコルスタックへ引き渡す。(ネットワークドライバ)
(f)正規の手順によってTCPコネクションを接続し、当該ソケットを接続完了状態にする。(TCPプロトコルスタック)
【符号の説明】
【0087】
A,B…端末
X,Y…中継装置
NET…ネットワーク
11〜14…伝送路
【技術分野】
【0001】
本発明は、TCPネットワークを中継し、特定の機能(例えば、暗号通信機能)を付加したTCP通信方式に関するものである。
【背景技術】
【0002】
通信端末のエンドポイント間に挿入され、その間の通信に何らかの特定機能を付加する装置として、VPN(Virtual Private Network)ルータがある。このVPNルータは、2つのネットワークの間に設置され、その間の通信を暗号化するという機能を付加する装置である。
【0003】
VPNルータには、通信事業者が提供するVPN網を利用して接続するIP−VPNと、ユーザ自身がVPN機器を挿入してインターネット経由で接続するインターネットVPNとの2つの形態がある。主に、前者はLAN同士を接続するLAN間接続VPN(図9に示す)として、後者は端末PCをLANに接続するリモートアクセスVPN(図10に示す)として利用されることが多い。
【0004】
図9において、1,2はローカルLAN、3,4はVPNルータで、VPNルータ3,4間がVPN区間である(特許文献1,2参照。)。
【0005】
また、図10において、5はVPN端末PC、6はVPNルータ、7はローカルLANで、VPN端末PC5とVPNルータ6間がインターネットVPN区間である(特許文献3,4参照。)。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開2008−118577号公報
【特許文献2】特開2008−227923号公報
【特許文献3】特開2008−219531号公報
【特許文献4】特開2008−301024号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
前述したVPNには、次のような問題がある。
【0008】
(a)VPN区間外の通信は、侵入などが自由であり安全でない。このため、端末の近傍までVPN区間となるように設置するためには、コスト高となる。
【0009】
(b)VPN装置自身にも希少なグローバルIPアドレスを割り当てる必要がある。
【0010】
(c)機器の設定が煩雑であり、高度な知識が要求される。
【0011】
本発明の目的は、上記の事情に鑑みてなされたもので、端末の近傍の通信経路まで通信が安全に行なうことができ、また、IPレスのためネットワーク上で装置を不可視化できるようになるため、ハッカーなどからの直接的攻撃を受けることがなくなるTCP通信方式を提供することにある。
【課題を解決するための手段】
【0012】
上記の課題を達成するために、請求項1の発明は、TCP通信方式であって、ネットワークを挟んでTCP接続される第1、第2端末を設け、この第1端末とネットワークとの伝送路間に第1中継装置を、第2端末とネットワークとの伝送路間に第2中継装置をそれぞれ設け、第1、第2中継装置はネットワークを介して接続され、第1端末と第1中継装置、第1中継装置と第2中継装置、第2中継装置と第2端末の3つのTCP接続手順に分割し、その接続手順の過程で接続手順成立前に情報を第1、第2中継装置で交換して、第1、第2中継装置を認証する際に前記第1、第2中継装置のみ、TCP接続を成立させることを特徴とする。
【0013】
請求項2の発明は、請求項1のTCP通信方式において、前記TCP接続のSYNパケットを捕らえて、前記第1、第2端末に成り代わり、IPアドレスを持たないでTCP接続を行うことを特徴とする。
【0014】
請求項3の発明は、請求項1または2のTCP通信方式において、前記第1、第2中継装置の認証機能を、機種識別情報を交換して実現可能としたことを特徴とする。
【0015】
請求項4の発明は、請求項1または2のTCP通信方式において、鍵情報を事前に交換することで、暗号通信の事前鍵交換機能を実現可能としたことを特徴とする。
【0016】
請求項5の発明は、請求項1から4のいずれかのTCP通信方式において、前記TCP接続によるTCP通信に特定の機能を付加したことを特徴とする。
【0017】
請求項6の発明は、請求項5のTCP通信方式において、前記特定の機能は、暗号化/復号化手順を構成する暗号通信機能、不正のTCP通信の遮断手順を構成するアンチウィルス機能、負荷状況に応じて伝送の振り分け手順に構成する負荷分散機能、輻輳制御及び帯域制御手順に構成する帯域制御機能、及び特殊回線の中継手順に構成するゲートウェイ機能のいずれかであることを特徴とする。
【発明の効果】
【0018】
本発明によれば、端末の近傍の通信経路まで通信が安全に行なうことができるとともに、IPアドレスレスのため、ネットワーク上で装置を不可視化できるようになり、ハッカーなどからの直接的攻撃を受けることがなくなる利点がある。また、ネットワーク構成及び設定を変更する必要が無く、端末に専用のソフトウェアをインストールする必要も無く、さらに、アプリケーションに依存しないため、端末のアプリケーションを変更する必要も無くなる利点がある。この他、従来の通信に影響を与えずに他の通信プロトコルと共存が可能であるとともに、付加する機能を自由に選択及び拡張することが可能であるなどの利点がある。
【0019】
また、本発明によれば、ネットワーク構成及び設定を変更する必要がなくなるとともに、既存の標準プロトコルスタックを利用するため、実装コストを低減でき、さらに、標準のTCP接続手順内で完結するため、通信帯域を余分に消費しないとともに、正しくない相手とはTCP接続を成立させないので、悪意ある攻撃によってコンピュータ資源を浪費することが無い利点もある。この他、第1、第2中継装置が当該TCPオプションに標準で対応しているか、または未対応の場合でも目的を達することができ、また、新たにTCPポート番号を必要としない等の利点がある。
【図面の簡単な説明】
【0020】
【図1】図1は、TCP通信方式の実施例1を示すネットワーク構成説明図である。
【図2】図2は、イーサネット(登録商標)のフレームフォーマットである。
【図3】図3(a),(b)は、TCP接続の分割説明図である。
【図4】図4は、応用例1の暗号通信装置を示すブロック構成図である。
【図5】図5は、応用例2のアンチウィルス装置を示すブロック構成図である。
【図6】図6は、応用例3の負荷分散装置を示すブロック構成図である。
【図7】図7は、応用例4の帯域制御装置を示すブロック構成図である。
【図8】図8は、応用例5のゲートウェイ装置を示すブロック構成図である。
【図9】図9は、LAN間接続VPN説明図である。
【図10】図10は、リモートアクセスVPN説明図である。
【図11】図11は、TCPオプションフィールド種別「06」及び「07」の標準使用形態説明図である。
【図12】図12は、中継装置Yが存在する場合の確認シーケンスの説明図である。
【図13】図13は、中継装置Yが非存在で端末Bが種別「6」に対応している場合における確認シーケンスの説明図である。
【図14】図14は、中継装置Yが非存在で端末Bが種別「6」に未対応の場合における確認シーケンスの説明図である。
【図15】図15は、TCPオプションフィールド種別「19」の標準使用形態説明図である。
【図16】図16は、中継装置Yが存在する場合の確認シーケンスの説明図である。
【図17】図17は、中継装置Yが非存在で端末Bが種別「19」に未対応の場合における確認シーケンスの説明図である。
【図18】図18は、応用例6の処理手順説明図である。
【発明を実施するための形態】
【0021】
以下本発明の実施例を図面に基づいて詳細に説明する。
【実施例1】
【0022】
図1は本発明の実施例1を示すネットワーク構成説明図で、図1において、TCP通信の両端に位置するエンドポント端末を端末A及び端末Bとし、端末A及び端末Bは、中継装置X及び中継装置Yに伝送路11,14を介して接続され、中継装置X,Yは、ネットワークNETに伝送路12,13を介してそれぞれ接続されている。
【0023】
中継装置X及びYは、従来TCP通信を行っていた端末A及びBの間に挟みこむように設置され、自身にIPアドレスを有しない。説明の便宜上、以下、端末AをTCP接続(コネクション)のアクティブ側、端末Bをパッシブ側と称する。
【0024】
中継装置X及びYは、端末A−端末B間のTCP接続を横取りして3つのTCP接続に分割し、TCP通信を成立させる。
【0025】
次に、アクティブ側とパッシブ側の中継装置X,Yの処理について以下に述べる。
(1)アクティブ側の中継装置Xの処理について
(a)プロミスキャス・モードで待ち受ける。プロミスキャス・モードとは、LANカードの動作モードの一つであり、通常モードでは、宛先アドレスが自局宛のパケットしか受信しないのに対し、プロミスキャス・モードでは、あらゆる宛先アドレスのパケットを受信する。
【0026】
(b)端末Aの送信するTCP接続の開始パケットであるSYN(synchronize)パケットを捕らえる。
【0027】
(c)SYNパケットの情報から送信元IPアドレス(IPヘッダから取り込む)と送信元ポート番号(TCPヘッダから取り込む)及び送信先IPアドレス(IPヘッダから取り込む)と送信先ポート番号(TCPヘッダから取り込む)を取得する。
【0028】
(d)端末Aになりすまして、取得した送信先アドレスに対して新たにTCP接続を開始する。
【0029】
(e)このとき、SYNパケット内に当該中継装置であることを示す識別子を付加しておく。この識別子について図2に示すイーサネット(登録商標)のフレームフォーマットを基に述べる。TCPヘッダに含まれるTCPオプションフィールド(以下TCPオプションと称す)を使用する。
【0030】
アクティブ側はTCPオプションの種別コード「06」を、パッシブ側はTCPオプションの種別コード「07」を使用し、それぞれの種別コード「06」、「07」に続く各々「06」の数字は、TCPオプションのデータ長を示している。また、それに続く、「04・・0400100」と「C0・・C00100」は、独自に決めた識別コード(識別子)で、この識別コードの値の意味を様々に定義することで種々な用途に使用できる。
【0031】
(f)パッシブ側中継装置Yからの応答パケット(SYN+ACK(Acknowledge))に同様の識別子が付加されていた場合は、対向側にも当該中継装置が存在することを認識し処理を継続する。この例としては、例えば、パッシブ側中継装置YにACKパケットを返送する処理がある。
【0032】
(g)パッシブ側中継装置YとのTCP接続が完了した時点で、端末A側のTCP接続を完結させる。この接続により、端末Aに(SYN+ACK)パケットを返送し、端末AからのACKパケットを待ち受ける処理を行う。
【0033】
上記の説明を図示したのが図3(a)で、この図3(a)はTCP接続の分割説明図である。
(2)パッシブ側の中継装置Yの処理について
(a)プロミスキャス・モードで待ち受ける。
【0034】
(b)中継装置Xの送信するSYNパケットを捕らえる。
【0035】
(c)SYNパケットの情報から送信元IPアドレスと送信元ポート番号及び送信先IPアドレスと送信先ポート番号を取得する。
【0036】
(d)端末Aになりすまして、端末B側とのTCP接続を開始する。
【0037】
(e)端末Bから(SYN+ACK)の応答パケットを受信すると、端末Bになりすまして、(SYN+ACK)のTCPオプション内に“識別子”を付加して中継装置Xへ(SYN+ACK)の応答パケットを送信する。
【0038】
(f)アクティブ側中継装置XとのTCP接続が完了した時点で、端末B側のTCP接続を完結させる。
【0039】
上記の説明を図示したのが図3(a)である。
(3)分割されたTCP接続の成立について
上記(1)、(2)の処理が完了すると、本来、端末A−端末B間で1本であったTCP接続が、端末A−中継装置X、中継装置X−中継装置Y、中継装置Y−端末B間それぞれのTCP接続が3本に分割される。
【0040】
このため、TCPのペイロードデータは、上記の3本に中継されて、端末間でデータがやり取りされる。このとき端末からは、当該中継装置の存在は見えない、すなわち、不可視になる。
【0041】
中継装置間のTCP接続は、装置間の取り決めによって如何様にもペイロードデータに加工を施すことができる。これを利用して、分割したTCP通信に、ある特定の機能を付加することができる。
【0042】
上記説明には、データ送信については述べていないが、データ送信は端末Aと端末B間で単純に転送されるだけあり、中継装置Xと中継装置Yとの間で、データに何かしら加工が施されて転送される。
【0043】
上記図3(a)は、中継装置X,Yがある場合のものであるが、中継装置XだけあるいはYだけの場合を図3(b)に示した。図3(b)は、中継装置Xだけの場合の分割説明図であり、後述する<応用例2>、<応用例3>、および<応用例5>に適用される。
【0044】
なお、この場合、中継装置Xは、端末Bからの応答パケット(SYN+ACK)内のTCPオプションの種別コード「07」内に識別子が付加されていないことを確認後、端末BにACKパケットを返送し、端末Aには(SYN+ACK)パケットを送出する。
【実施例2】
【0045】
実施例2は、TCPオプションの種別コード「06」及び種別コード「07」を利用するもので、種別コード「06」は、[Echo(obsolyted by option 8)RFC1072]であり、種別コード「07」は、[Echo Reply(obsolyted by option 8)RFC1072]である。
【0046】
図11は、TCPオプションの種別コード「06」及び種別コード「07」の標準使用形態におけるシーケンスの説明図で、TCPオプションの種別コード「06」及び種別コード「07」は、本来、TCP輻輳制御における応答時間の測定に使用される。例えば、種別コード「06」に任意の数値が設定されたパケットを図2に示す送信元機器(中継装置X)から対向機器である相手機器(中継装置Y)へ送信すると、受信した相手機器は、種別コード「07」で受信した任意の数値のパケットを折り返して送信元機器に送信する。送信元機器では、同一の数値が設定されたパケットが到達した時間を計測し、輻輳制御に使用する。
【0047】
前述のTCPオプション機能を利用し、任意値として固有の意味を持つ数値(パケット)を送信し合うことで、事前情報の交換を行う。中継装置Xが対向側に同等の機能を持つ中継装置Yが存在することを、上記手順を用いて確認(認証)する場合について、以下に説明する。
(1)同等の中継装置Yが存在する場合
中継装置Xの対向側に同等の中継装置Yが存在する場合は、以下の手順によって、中継装置Xは、中継装置Yの存在を確認する。
【0048】
以下、図12に示す確認シーケンスの説明図により述べる。
【0049】
(a)中継装置Xは、TCPスリーウェイハンドシェイクのSYNパケットのTCPオプションに固有の識別子A(例えば、0x404040404040等)を含む種別コード「06」を付加して送信する。
【0050】
(b)中継装置Yは、上記識別子Aを受信すると、対向側に同等の中継装置Xが存在することを認識し、同様にSYN+ACKパケットのTCPオプションに固有の識別子B(例えば、0XC0C0C0C0C0C0等)を含む種別コード「07」を付加して返信する。
【0051】
(c)中継装置Xは、上記識別子Bを受信すると、対向側に同等の中継装置Yが存在することを確認し、ACKを返信してスリーウェイハンドシェイクを完結させコネクションを確立する。
(2)TCPオプションの種別コード「06」及び「07」に標準対応の機器が存在する場合
中継装置Xの対向側に同等の中継装置Yが存在せず、TCPオプションの種別コード「06」及び「07」に対応するのみの装置が存在する場合は、以下の手順によって、中継装置Xは同等の中継装置Yの非存在を確認する。
【0052】
以下、図13に示す確認シーケンスの説明図により述べる。
【0053】
(a)中継装置Xは、TCPスリーウェイハンドシェイクのSYNパケットのTCPオプションに固有の識別子A(例えば、0x404040404040等)を含む種別コード「06」を付加して送信する。
【0054】
(b)中継装置Yは、上記識別子Aを受信すると標準の規定に従って、SYN+ACKパケットのTCPオプションに受取った識別子Aを含む種別コード「07」を付加して返信する。
【0055】
(c)中継装置Xは、上記識別子Aを受信すると、対向側に同等の中継装置Yが存在しないことを認識し、ACKを返信してスリーウェイハンドシェイクを完結させコネクションを確立するか、あるいはRST(リセット)を返信してスリーウェイハンドシェイクを終了させコネクションの開設をキャンセルする。
(3)TCPオプションの種別コード「06」及び「07」に未対応の機器が存在する場合
中継装置Xの対向側に同等の中継装置Yが存在せず、TCPオプションの種別コード「06」及び「07」にも対応していない装置が存在する場合は、以下の手順によって、中継装置Xは同等の中継装置Yの非存在を確認する。
【0056】
以下、図14に示す確認シーケンスの説明図により述べる。
【0057】
(a)中継装置Xは、TCPスリーウェイハンドシェイクのSYNパケットのTCPオプションに固有の識別子A(例えば、0x404040404040等)を含む種別コード「06」を付加して送信する。
【0058】
(b)中継装置Yは、TCPオプションを付加しないでSYN+ACKパケットを返信する。
【0059】
(c)中継装置Xは、上記識別子Aを受信すると、対向側に同等の中継装置Yが存在しないことを認識し、ACKを返信してスリーウェイハンドシェイクを完結させコネクションを確立するか、あるいはRST(リセット)を返信してスリーウェイハンドシェイクを終了させコネクションの開設をキャンセルする。
【実施例3】
【0060】
実施例3は、TCPオプションの種別「19」を利用するものである。なお、種別「19」は、「MD5 Signature Option RFC2385」である。
【0061】
図15は、TCPオプションの種別「19」の標準使用形態におけるシーケンスの説明図で、この種別「19」は、本来BGP(Boarder Gateway Protocol)専用のオプションであり、TCPセグメントのMD5ハッシュ値による署名として使用される。BGPセッションに流れるあらゆるTCPセグメントに付加され、BGPセッションを保護する。
【0062】
実施例3は、図15に示すTCPオプション機能を利用し、任意値として固有の意味を持つ数値を送信し合うことで、事前情報の交換を行う。ただし、本方式は、BGPセッション上では標準の使用方法と競合するため、使用できないため、BGP以外のセッション限定とする。中継装置Xが、対向側に同等の機能を持つ中継装置Yが存在することを、上記手順を用いて確認(認証)する場合について、以下に述べる。
(1)同等の中継装置Yが存在する場合
図16は、中継装置Xの対向側に同等の中継装置Yが存在する場合の確認シーケンスの説明図で、この図16においては、以下の手順によって中継装置Xは、中継装置Yの存在を確認する。ただし、送信先TCPポート番号がBGP(179)の場合は実施しない。
【0063】
(a)中継装置Xは、TCPスリーウェイハンドシェイクのSYNパケットのTCPオプションに固有の識別子A(例えば、0x404040404040等)を含む種別コード「19」を付加して送信する。
【0064】
(b)中継装置Yは、上記識別子Aを受信すると、対向側に同等の中継装置Xが存在することを認識し、同様にSYN+ACKパケットのTCPオプションに固有の識別子B(例えば、0XC0C0C0C0C0C0等)を含む種別コード「19」を付加して返信する。
【0065】
(c)中継装置Xは、上記識別子Bを受信すると、対向側に同等の中継装置Yが存在することを確認し、ACKを返信してスリーウェイハンドシェイクを完結させコネクションを確立する。
(2)TCPオプションの種別コード「19」に未対応の機器が存在する場合
中継装置Xの対向側に同等の中継装置Yが存在しない場合は、以下の手順によって中継装置Xは同等の中継装置Yの非存在を確認する。ただし、送信先TCPポート番号がBGP(179)の場合は実施しない。
【0066】
以下図17に示す確認シーケンスの説明図により説明する。
【0067】
(a)中継装置Xは、TCPスリーウェイハンドシェイクのSYNパケットのTCPオプションに固有の識別子A(例えば、0x404040404040等)を含む種別コード「19」を付加して送信する。
【0068】
(b)中継装置Yは、TCPオプションを付加しないでSYN+ACKパケットを返信する。
【0069】
(c)中継装置Xは、TCPオプションの種別コード「19」を受信できないことで、対向側に同等の中継装置Yが存在しないことを認識し、ACKを返信してスリーウェイハンドシェイクを完結させコネクションを確立するか、あるいはRST(リセット)を返信してスリーウェイハンドシェイクを終了させコネクションの開設をキャンセルする。
【0070】
上記実施例3においては、特別なパケットを使用しないため、ファイアウォールの通過設定等を変更する必要が無く、また、識別子を複数定義することによって、機能を拡張することができるなどの作用効果が得られる。
【産業上の利用可能性】
【0071】
上記実施例1として、本発明は、以下に示す幾つかの応用例に適用が可能である。
【0072】
<応用例1>
図4は応用例を暗号通信装置に適用したもので、この暗号通信装置は、端末A−装置X−装置Y−端末Bのように構成されている。装置Xは、内側TCP接続処理部X1、暗号処置部X2、外側TCP接続処理部X3、X4及び復号処理部X5から構成され、装置Yは、内側TCP接続処理部Y1、暗号処置部Y2、外側TCP接続処理部Y3、Y4及び復号処理部Y5から構成されている。
【0073】
このように構成された応用例1では、端末A→端末B方向へのデータ通信の場合には、端末Aからのデータは、装置Xの内側TCP接続処理部X1でデータ処理された後、暗号処置部X2でデータは暗号化処理されて、外側TCP接続処理部X3を介して、装置Yの外側TCP接続処理部Y4に入力された後、復号処理部Y5でデータは復号処理されて内側TCP接続処理部Y1から端末Bに送られる。
【0074】
一方、端末B→端末A方向へのデータ通信の場合は、上記とは逆に装置Yの内側TCP接続処理部Y1でデータ処理されて暗号処置部Y2でデータが暗号化処理され、外側TCP接続処理部Y3から装置Xの外側TCP接続処理部X4に入力された後、復号処理部X5でデータを復号処理して内側TCP接続処理部X1から端末Aに送られる。
【0075】
上記のように暗号通信装置を機能させることで、端末A−端末Bまたは端末B−端末A間の通信経路の暗号通信が実現できる。例えば、事前に鍵情報を交換しておくことにより、暗号通信の事前鍵交換機能が実現できる。
【0076】
<応用例2>
図5は応用例をアンチウィルス装置に適用したもので、このアンチウィルス装置は、端末A−装置X−端末B,C,Dのように構成され、装置Xは、外側TCP接続処理部41、ウィルス検査処理部42及び内側TCP接続処理部43から構成されている。このように構成された装置Xにおいて、TCP通信の中継処理の過程で、ウィルス検査処理部42でウィルス検査処理を行い、検査に合格しないTCP通信は中継しないように処理することで、例えば、端末Aから端末B,C,Dへの不正アクセスもしくは、端末B,C,Dから端末Aへの不正アクセスを排除する。
【0077】
<応用例3>
図6は応用例を負荷分散装置に適用したもので、この負荷分散装置は、端末A,B,C−ルータR−装置X−複数のサーバ1〜Nのように構成され、装置Xは、外側TCP接続処理部51、負荷分散処理部52及び内側TCP接続処理部53から構成されている。このように構成された負荷分散装置で、サーバ1〜Nの前段の装置Xにおいて、負荷状況に応じて適切なサーバ1〜Nヘ伝送を振り分けるようにすることで、負荷分散を実現できる。
【0078】
例えば、端末A、端末B、端末Cは公開された1つのIPアドレスへ接続する。その瞬間に装置Xは、サーバ1〜Nの負荷状態によりサーバ1〜Nの1つを選んでTCP接続を中継する。これによって、端末A〜Cは公開されたIPアドレスとTCP接続しているように見える。また、サーバ1〜Nは各々異なるIPアドレスと外部にある端末のIPアドレスで接続しているように見える。
【0079】
<応用例4>
図7は応用例を帯域制御装置に適用したもので、この帯域制御装置は、端末A−装置X−装置Y−端末Bのように構成されていて、装置Xは、内側TCP接続処理部61x、輻輳制御帯域制御処理部62x及び専用プロトコル処理部63xから構成され、装置Yは、内側TCP接続処理部61y、輻輳制御帯域制御処理部62y及び専用プロトコル処理部63yから構成されている。
【0080】
上記のように構成された端末A−装置X−装置Y−端末Bの構成で、装置X−装置Y間において専用のプロトコルによって、輻輳制御と帯域制御をきめ細かく行うことで、汎用のTCPでは適切に対応しきれない回線に応じた適切な帯域制御を実現できる。
【0081】
<応用例5>
図8は応用例をゲートウェイ装置に適用したもので、このゲートウェイ装置は、端末A−装置X−端末Bのように構成され、装置Xは、外側TCP接続処理部71、ゲートウェイ処理部72及び内側TCP接続処理部73から構成されている。
【0082】
上記のように構成された装置において、端末Bは特別なプロトコルあるいはデータにて動作する。また、端末Aは、通常のプロトコルあるいはデータで通信するため変換する装置としてゲートウェイ装置が必要となる。このため、端末Bの直前に装置Xを設置することでプロトコルまたはデータの変換処理を行う。通常にゲートウェイ装置は、その装置にIPアドレスが設定され端末Aと装置X、装置Xと端末Bの通信になるが、この応用例では装置Xは存在しないように見える。
【0083】
<応用例6>
応用例6は、実施例1および応用例1〜5の全てを、端末内のTCPプロトコルスタックソフトウェアに機能を組み込むことで、外部のハードウェア装置を用いることなくソフトウェアでも実現できるようにしたものである。
【0084】
TCPプロトコルスタックで接続待ちを行う場合は、通常、事前にソケットを作成し、受付けるポート番号を指定(バインド)して接続待ち(アクセプト)を行う。
【0085】
しかし、実施例1における中継装置Xでは、送信元と送信先のIPアドレス、および送信元と送信先のポート番号を予め知ることができない。そこで、接続の最初に送信されるTCPのSYNパケットをプロミスキャス・モードにて捕捉して、接続先情報を入手し、接続待ち用ソケットを用意し、バインド+アクセプト手続きを先回りして実行し、該パケットをTCPプロトコルスタックに処理させる。このように処理することによって、あたかも対向側の端末Bの振りをしてTCP接続を完結させることができるようになる。
【0086】
次に上記の場合における処理手順の詳細を図18の説明図を参照して述べる。
(a)先ず、プロミスキャス・モードでSYNパケットを捕捉する。(ネットワークドライバ)
(b)捕捉したSYNパケットから宛先IPアドレスとポート番号を得る。(ネットワークドライバ)
(c)取得した宛先情報をアプリケーションに通知する。(ネットワークドライバ)
(d)通知された情報を使用してソケット作成+バインド+アクセプト手続きを行います。(アプリケーション)
(e)SYNパケットをTCPプロトコルスタックへ引き渡す。(ネットワークドライバ)
(f)正規の手順によってTCPコネクションを接続し、当該ソケットを接続完了状態にする。(TCPプロトコルスタック)
【符号の説明】
【0087】
A,B…端末
X,Y…中継装置
NET…ネットワーク
11〜14…伝送路
【特許請求の範囲】
【請求項1】
ネットワークを挟んでTCP接続される第1、第2端末を設け、この第1端末とネットワークとの伝送路間に第1中継装置を、第2端末とネットワークとの伝送路間に第2中継装置をそれぞれ設け、第1、第2中継装置はネットワークを介して接続され、第1端末と第1中継装置、第1中継装置と第2中継装置、第2中継装置と第2端末の3つのTCP接続手順に分割し、
その接続手順の過程で接続手順成立前に情報を第1、第2中継装置で交換して、第1、第2中継装置を認証する際に前記第1、第2中継装置のみ、TCP接続を成立させることを特徴とするTCP通信方式。
【請求項2】
請求項1に記載のTCP通信方式において、
前記TCP接続のSYNパケットを捕らえて、前記第1、第2端末に成り代わり、IPアドレスを持たないでTCP接続を行うことを特徴とするTCP通信方式。
【請求項3】
請求項1または2に記載のTCP通信方式において、
前記第1、第2中継装置の認証機能を、機種識別情報を交換して実現可能としたことを特徴とするTCP通信方式。
【請求項4】
請求項1または2に記載のTCP通信方式において、
鍵情報を事前に交換することで、暗号通信の事前鍵交換機能を実現可能としたことを特徴とするTCP通信方式。
【請求項5】
請求項1から4のいずれか1項に記載のTCP通信方式において、
前記TCP接続によるTCP通信に特定の機能を付加したことを特徴とするTCP通信方式。
【請求項6】
請求項5に記載のTCP通信方式において、
前記特定の機能は、暗号化/復号化手順を構成する暗号通信機能、不正のTCP通信の遮断手順を構成するアンチウィルス機能、負荷状況に応じて伝送の振り分け手順に構成する負荷分散機能、輻輳制御及び帯域制御手順に構成する帯域制御機能、及び特殊回線の中継手順に構成するゲートウェイ機能のいずれかであることを特徴とするTCP通信方式。
【請求項1】
ネットワークを挟んでTCP接続される第1、第2端末を設け、この第1端末とネットワークとの伝送路間に第1中継装置を、第2端末とネットワークとの伝送路間に第2中継装置をそれぞれ設け、第1、第2中継装置はネットワークを介して接続され、第1端末と第1中継装置、第1中継装置と第2中継装置、第2中継装置と第2端末の3つのTCP接続手順に分割し、
その接続手順の過程で接続手順成立前に情報を第1、第2中継装置で交換して、第1、第2中継装置を認証する際に前記第1、第2中継装置のみ、TCP接続を成立させることを特徴とするTCP通信方式。
【請求項2】
請求項1に記載のTCP通信方式において、
前記TCP接続のSYNパケットを捕らえて、前記第1、第2端末に成り代わり、IPアドレスを持たないでTCP接続を行うことを特徴とするTCP通信方式。
【請求項3】
請求項1または2に記載のTCP通信方式において、
前記第1、第2中継装置の認証機能を、機種識別情報を交換して実現可能としたことを特徴とするTCP通信方式。
【請求項4】
請求項1または2に記載のTCP通信方式において、
鍵情報を事前に交換することで、暗号通信の事前鍵交換機能を実現可能としたことを特徴とするTCP通信方式。
【請求項5】
請求項1から4のいずれか1項に記載のTCP通信方式において、
前記TCP接続によるTCP通信に特定の機能を付加したことを特徴とするTCP通信方式。
【請求項6】
請求項5に記載のTCP通信方式において、
前記特定の機能は、暗号化/復号化手順を構成する暗号通信機能、不正のTCP通信の遮断手順を構成するアンチウィルス機能、負荷状況に応じて伝送の振り分け手順に構成する負荷分散機能、輻輳制御及び帯域制御手順に構成する帯域制御機能、及び特殊回線の中継手順に構成するゲートウェイ機能のいずれかであることを特徴とするTCP通信方式。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【公開番号】特開2013−102454(P2013−102454A)
【公開日】平成25年5月23日(2013.5.23)
【国際特許分類】
【出願番号】特願2012−274435(P2012−274435)
【出願日】平成24年12月17日(2012.12.17)
【分割の表示】特願2009−260553(P2009−260553)の分割
【原出願日】平成21年11月16日(2009.11.16)
【出願人】(000006105)株式会社明電舎 (1,739)
【Fターム(参考)】
【公開日】平成25年5月23日(2013.5.23)
【国際特許分類】
【出願日】平成24年12月17日(2012.12.17)
【分割の表示】特願2009−260553(P2009−260553)の分割
【原出願日】平成21年11月16日(2009.11.16)
【出願人】(000006105)株式会社明電舎 (1,739)
【Fターム(参考)】
[ Back to top ]