(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-11-27
(45)【発行日】2023-12-05
(54)【発明の名称】パケット通信システム
(51)【国際特許分類】
H04L 12/66 20060101AFI20231128BHJP
H04L 61/00 20220101ALI20231128BHJP
【FI】
H04L12/66
H04L61/00
(21)【出願番号】P 2018111204
(22)【出願日】2018-06-11
【審査請求日】2021-04-20
【審判番号】
【審判請求日】2022-12-01
(73)【特許権者】
【識別番号】000002897
【氏名又は名称】大日本印刷株式会社
(74)【代理人】
【識別番号】100114557
【氏名又は名称】河野 英仁
(74)【代理人】
【識別番号】100078868
【氏名又は名称】河野 登夫
(72)【発明者】
【氏名】太治 和樹
(72)【発明者】
【氏名】矢野 義博
(72)【発明者】
【氏名】小川 隆
(72)【発明者】
【氏名】仲谷 伸乃助
(72)【発明者】
【氏名】大木 正
(72)【発明者】
【氏名】加藤 大樹
(72)【発明者】
【氏名】岡野 卓矢
(72)【発明者】
【氏名】中井 俊之
【合議体】
【審判長】岩間 直純
【審判官】富澤 哲生
【審判官】山内 裕史
(56)【参考文献】
【文献】特開2003-316742(JP,A)
【文献】特開2005-117246(JP,A)
【文献】国際公開第2013/179551(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 12/66, 61/00
(57)【特許請求の範囲】
【請求項1】
アクセスの対象となる対象サーバ装置に対してネットワークを介して接続し、パケット通信を行うためのパケット通信システムであって、
前記対象サーバ装置との間でパケット通信を行うクライアント装置と、前記クライアント装置と前記対象サーバ装置との間のパケット通信を中継する中継サーバ装置と、を備え、
前記クライアント装置は、
前記クライアント装置を送信元とし前記対象サーバ装置をあて先として、前記対象サーバ装置に対して送信すべき所定の送信データをデータ部に含む第1のパケットを作成する処理を行う通信制御部と、
前記第1のパケットの少なくとも一部を暗号化して送信用暗号データを作成するクライアント用暗号化処理部と、
前記クライアント装置を送信元とし前記中継サーバ装置をあて先として、暗号化した前記第1のパケットをカプセル化し、前記送信用暗号データをデータ部に含み、所定のパケット識別コードが書き込まれた第2のパケットを作成して送信するパケット送信部と、
を有し、
前記中継サーバ装置は、
前記第2のパケットを受信し、受信した第2のパケットに前記所定のパケット識別コードが書き込まれている場合、そのデータ部に含まれている前記送信用暗号データを復号して前記第1のパケットを復元する中継サーバ用復号処理部と、
復元された前記第1のパケットの送信元を前記中継サーバ装置に変更することにより第3のパケットを作成し、作成した前記第3のパケットを送信するパケット転送部と、
前記第3のパケットに対する応答として前記対象サーバ装置から返信され、前記所定のパケット識別コードが書き込まれていない第4のパケットを受信し、受信した第4のパケットに前記所定のパケット識別コードが書き込まれていない場合、その少なくとも一部を暗号化して返信用暗号データを作成する中継サーバ用暗号化処理部と、
前記中継サーバ装置を送信元とし前記クライアント装置をあて先として、前記返信用暗号データをデータ部に含む第5のパケットを作成し、作成した前記第5のパケットを送信するパケット返信部と、
を有し、
前記クライアント装置は、更に、
前記第5のパケットを受信し、そのデータ部に含まれている前記返信用暗号データを復号して前記第4のパケットを復元するクライアント用復号処理部と、
復元された前記第4のパケットのあて先を前記クライアント装置に変更することにより第6のパケットを作成するパケット受信部と、
を有し、
前記通信制御部は、更に、前記第6のパケットのデータ部に含まれている返信データを取り出す処理を行
い、
複数n台のクライアント装置とこれらn台のクライアント装置のそれぞれに対応づけられたn台の中継サーバ装置とを備え、
各クライアント装置のパケット送信部は、それぞれ対応づけられた特定の中継サーバ装置宛に第2のパケットを送信し、
各中継サーバ装置のパケット返信部は、それぞれ対応づけられた特定のクライアント装置宛に第5のパケットを送信することを特徴とするパケット通信システム。
【請求項2】
アクセスの対象となる対象サーバ装置に対してネットワークを介して接続し、パケット通信を行うためのパケット通信システムであって、
前記対象サーバ装置との間でパケット通信を行うクライアント装置と、前記クライアント装置と前記対象サーバ装置との間のパケット通信を中継する中継サーバ装置と、を備え、
前記クライアント装置は、
前記クライアント装置を送信元とし前記対象サーバ装置をあて先として、前記対象サーバ装置に対して送信すべき所定の送信データをデータ部に含む第1のパケットを作成する処理を行う通信制御部と、
前記第1のパケットの少なくとも一部を暗号化して送信用暗号データを作成するクライアント用暗号化処理部と、
前記クライアント装置を送信元とし前記中継サーバ装置をあて先として、暗号化した前記第1のパケットをカプセル化し、前記送信用暗号データをデータ部に含み、所定のパケット識別コードが書き込まれた第2のパケットを作成して送信するパケット送信部と、
を有し、
前記中継サーバ装置は、
前記第2のパケットを受信し、受信した第2のパケットに前記所定のパケット識別コードが書き込まれている場合、そのデータ部に含まれている前記送信用暗号データを復号して前記第1のパケットを復元する中継サーバ用復号処理部と、
復元された前記第1のパケットの送信元を前記中継サーバ装置に変更することにより第3のパケットを作成し、作成した前記第3のパケットを送信するパケット転送部と、
前記第3のパケットに対する応答として前記対象サーバ装置から返信され、前記所定のパケット識別コードが書き込まれていない第4のパケットを受信し、受信した第4のパケットに前記所定のパケット識別コードが書き込まれていない場合、その少なくとも一部を暗号化して返信用暗号データを作成する中継サーバ用暗号化処理部と、
前記中継サーバ装置を送信元とし前記クライアント装置をあて先として、前記返信用暗号データをデータ部に含む第5のパケットを作成し、作成した前記第5のパケットを送信するパケット返信部と、
を有し、
前記クライアント装置は、更に、
前記第5のパケットを受信し、そのデータ部に含まれている前記返信用暗号データを復号して前記第4のパケットを復元するクライアント用復号処理部と、
復元された前記第4のパケットのあて先を前記クライアント装置に変更することにより第6のパケットを作成するパケット受信部と、
を有し、
前記通信制御部は、更に、前記第6のパケットのデータ部に含まれている返信データを取り出す処理を行
い、
前記パケット転送部が、復元された第1のパケットの送信元を示す情報を第3のパケットに埋め込む処理を行い、
前記中継サーバ用暗号化処理部が、受信した第4のパケットに埋め込まれていた前記送信元を示す情報を読み出してパケット返信部に伝達する処理を行い、
前記パケット返信部が、前記送信元を示す情報をあて先となるクライアント装置とする第5のパケットを作成することを特徴とするパケット通信システム。
【請求項3】
アクセスの対象となる対象サーバ装置に対してネットワークを介して接続し、パケット通信を行うためのパケット通信システムであって、
前記対象サーバ装置との間でパケット通信を行うクライアント装置と、前記クライアント装置と前記対象サーバ装置との間のパケット通信を中継する中継サーバ装置と、を備え、
前記クライアント装置は、
前記クライアント装置を送信元とし前記対象サーバ装置をあて先として、前記対象サーバ装置に対して送信すべき所定の送信データをデータ部に含む第1のパケットを作成する処理を行う通信制御部と、
前記第1のパケットの少なくとも一部を暗号化して送信用暗号データを作成するクライアント用暗号化処理部と、
前記クライアント装置を送信元とし前記中継サーバ装置をあて先として、暗号化した前記第1のパケットをカプセル化し、前記送信用暗号データをデータ部に含み、所定のパケット識別コードが書き込まれた第2のパケットを作成して送信するパケット送信部と、
を有し、
前記中継サーバ装置は、
前記第2のパケットを受信し、受信した第2のパケットに前記所定のパケット識別コードが書き込まれている場合、そのデータ部に含まれている前記送信用暗号データを復号して前記第1のパケットを復元する中継サーバ用復号処理部と、
復元された前記第1のパケットの送信元を前記中継サーバ装置に変更することにより第3のパケットを作成し、作成した前記第3のパケットを送信するパケット転送部と、
前記第3のパケットに対する応答として前記対象サーバ装置から返信され、前記所定のパケット識別コードが書き込まれていない第4のパケットを受信し、受信した第4のパケットに前記所定のパケット識別コードが書き込まれていない場合、その少なくとも一部を暗号化して返信用暗号データを作成する中継サーバ用暗号化処理部と、
前記中継サーバ装置を送信元とし前記クライアント装置をあて先として、前記返信用暗号データをデータ部に含む第5のパケットを作成し、作成した前記第5のパケットを送信するパケット返信部と、
を有し、
前記クライアント装置は、更に、
前記第5のパケットを受信し、そのデータ部に含まれている前記返信用暗号データを復号して前記第4のパケットを復元するクライアント用復号処理部と、
復元された前記第4のパケットのあて先を前記クライアント装置に変更することにより第6のパケットを作成するパケット受信部と、
を有し、
前記通信制御部は、更に、前記第6のパケットのデータ部に含まれている返信データを取り出す処理を行
い、
前記中継サーバ装置が、更に、通信情報記録部を有し、
前記パケット転送部が、第3のパケットを送信する際に、復元された第1のパケットの送信元を示す情報と前記第3のパケットとの対応関係を示す対応関係情報を前記通信情報記録部に記録する処理を行い、
前記パケット返信部が、第5のパケットを送信する際に、前記通信情報記録部に記録されている前記対応関係情報に基づいて、第5のパケットの送信先を決定することを特徴とするパケット通信システム。
【請求項4】
請求項1
~3のいずれかに記載のパケット通信システムにおいて、
通信制御部が、
ヘッダ部とデータ部とを含む第1のパケットを作成する処理を行い、
前記第1のパケットのデータ部には、対象サーバ装置に対して送信すべき所定の送信データを格納し、
前記第1のパケットのヘッダ部には、クライアント装置のアドレスを示す送信元アドレスと、対象サーバ装置のアドレスを示すあて先アドレスと、を格納することを特徴とするパケット通信システム。
【請求項5】
請求項
4に記載のパケット通信システムにおいて、
通信制御部が、
第1のパケットとして、IPヘッダ部とIPデータ部とを含むIPパケットを作成する処理を行い、
前記IPデータ部には、TCPヘッダ部とTCPデータ部とを含むTCPパケットを格納し、前記TCPデータ部には、送信データを格納することを特徴とするパケット通信システム。
【請求項6】
請求項
4または
5に記載のパケット通信システムにおいて、
クライアント用暗号化処理部が、第1のパケットのデータ部の全部もしくは一部を暗号化して送信用暗号データを作成し、
パケット送信部が、
ヘッダ部とデータ部とを含む第2のパケットを作成する処理を行い、
前記第2のパケットのデータ部には、前記送信用暗号データを格納するカプセル化処理を行い、
前記第2のパケットのヘッダ部には、クライアント装置のアドレスを示す送信元アドレスと、中継サーバ装置のアドレスを示すあて先アドレスと、を格納することを特徴とするパケット通信システム。
【請求項7】
請求項
6に記載のパケット通信システムにおいて、
パケット送信部が、
第2のパケットとして、IPヘッダ部とIPデータ部とを含むIPパケットを作成する処理を行い、
前記IPデータ部に、送信用暗号データを格納することによりカプセル化処理を行い、前記第2のパケットをTCP/IPのプロトコルに従って送信することを特徴とするパケット通信システム。
【請求項8】
請求項
6または
7に記載のパケット通信システムにおいて、
パケット転送部が、
ヘッダ部とデータ部とを含む第3のパケットを作成する処理を行い、
前記第3のパケットのデータ部には、復元された第1のパケットのデータ部を格納し、
前記第3のパケットのヘッダ部には、中継サーバ装置のアドレスを示す送信元アドレスと、対象サーバ装置のアドレスを示すあて先アドレスと、を格納することを特徴とするパケット通信システム。
【請求項9】
請求項
8に記載のパケット通信システムにおいて、
パケット転送部が、
第3のパケットとして、IPヘッダ部とIPデータ部とを含むIPパケットを作成する処理を行い、
前記IPデータ部に、復元された第1のパケットのデータ部を格納し、前記第3のパケットをTCP/IPのプロトコルに従って送信することを特徴とするパケット通信システム。
【請求項10】
請求項1~
9のいずれかに記載のパケット通信システムにおいて、
中継サーバ用暗号化処理部が、ヘッダ部とデータ部とを含む第4のパケットを受信し、受信した前記第4のパケットのデータ部の全部もしくは一部を暗号化して返信用暗号データを作成し、
パケット返信部が、
ヘッダ部とデータ部とを含む第5のパケットを作成する処理を行い、
前記第5のパケットのデータ部には、前記返信用暗号データを格納するカプセル化処理を行い、
前記第5のパケットのヘッダ部には、中継サーバ装置のアドレスを示す送信元アドレスと、クライアント装置のアドレスを示すあて先アドレスと、を格納することを特徴とするパケット通信システム。
【請求項11】
請求項
10に記載のパケット通信システムにおいて、
パケット返信部が、
第5のパケットとして、IPヘッダ部とIPデータ部とを含むIPパケットを作成する処理を行い、
前記IPデータ部に、返信用暗号データを格納することによりカプセル化処理を行い、前記第5のパケットをTCP/IPのプロトコルに従って送信することを特徴とするパケット通信システム。
【請求項12】
請求項
10または
11に記載のパケット通信システムにおいて、
パケット受信部が、
ヘッダ部とデータ部とを含む第6のパケットを作成する処理を行い、
前記データ部には、復元された第4のパケットのデータ部を格納し、
前記第6のパケットのヘッダ部には、対象サーバ装置のアドレスを示す送信元アドレスと、クライアント装置のアドレスを示すあて先アドレスと、を格納することを特徴とするパケット通信システム。
【請求項13】
請求項
12に記載のパケット通信システムにおいて、
パケット受信部が、
第6のパケットとして、IPヘッダ部とIPデータ部とを含むIPパケットを作成する処理を行い、
前記IPデータ部に、復元された第4のパケットに含まれていた返信データを格納することを特徴とするパケット通信システム。
【請求項14】
請求項
2に記載のパケット通信システムにおいて、
パケット転送部が、TCP/IPのプロトコルに従った第3のパケットを作成し、その際に、第3のパケットに含まれるTCPヘッダ部内に、送信元ポート番号として第1のパケットの送信元を示す情報を埋め込む処理を行い、
パケット返信部が、第4のパケットに含まれるTCPヘッダ部内に、あて先ポート番号として埋め込まれていた情報に基づいて、第5のパケットの送信先を決定することを特徴とするパケット通信システム。
【請求項15】
請求項
3に記載のパケット通信システムにおいて、
パケット転送部が、TCP/IPのプロトコルに従った第3のパケットを作成し、その際に、第3のパケットに含まれるTCPヘッダ部内に、前記第3のパケットを示すためのパケット識別子をポート番号として埋め込み、当該パケット識別子と復元された第1のパケットの送信元を示す情報との対応関係を対応関係情報として通信情報記録部に記録する処理を行い、
パケット返信部が、第4のパケットに含まれるTCPヘッダ部内にポート番号として埋め込まれていたパケット識別子を利用して、前記通信情報記録部に記録されている前記対応関係情報を参照することにより、前記第1のパケットの送信元に対して、第5のパケットを送信することを特徴とするパケット通信システム。
【請求項16】
請求項1~
15のいずれかに記載のパケット通信システムにおいて、
中継サーバ装置が第1国の領域内に設置されており、クライアント装置が第2国の領域内に設置されており、前記クライアント装置が、前記第1国の領域内に設置されている対象サーバ装置に対してアクセスを行う際に、前記第1国の領域内に設置されている中継サーバ装置による中継を介してアクセスを行うことを特徴とするパケット通信システム。
【請求項17】
請求項1~
16のいずれかに記載のパケット通信システムにおいて、
クライアント装置が、所定のOSプログラムと、このOSプログラムの下で動作する1つもしくは複数のアプリケーションプログラムと、をインストールしたコンピュータによって構成されており、
クライアント用暗号化処理部、パケット送信部、クライアント用復号処理部およびパケット受信部が、前記アプリケーションプログラムの実行により機能することを特徴とするパケット通信システム。
【請求項18】
請求項1~
16のいずれかに記載のパケット通信システムにおける1台のクライアント装置。
【請求項19】
請求項1~
16のいずれかに記載のパケット通信システムにおけるクライアント用暗号化処理部、パケット送信部、クライアント用復号処理部およびパケット受信部としてコンピュータを機能させるプログラム。
【請求項20】
請求項1~
16のいずれかに記載のパケット通信システムにおいて、
中継サーバ装置が、所定のOSプログラムと、このOSプログラムの下で動作する1つもしくは複数のアプリケーションプログラムと、をインストールしたコンピュータによって構成されており、
中継サーバ用復号処理部、パケット転送部、中継サーバ用暗号化処理部およびパケット返信部が、前記アプリケーションプログラムの実行により機能することを特徴とするパケット通信システム。
【請求項21】
請求項1~
16のいずれかに記載のパケット通信システムにおける1台の中継サーバ装置。
【請求項22】
請求項1~
16のいずれかに記載のパケット通信システムにおける中継サーバ用復号処理部、パケット転送部、中継サーバ用暗号化処理部およびパケット返信部としてコンピュータを機能させるプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、パケット通信システムに関し、特に、ネットワークを介して特定のサーバ装置との間でパケット通信プロトコルに従ったデータパケットのやりとりにより、相互に通信を行うシステムに関する。
【背景技術】
【0002】
インターネットに代表されるネットワークを介したデータ通信では、TCP/IPやUDP/IP等のパケット通信プロトコルに従って、データを個々のパケットとして送受信する方法が一般化している。また、基本的には、これらの既存の通信プロトコルに従いつつ、より多様な通信方式を実現する工夫も種々提案されている。
【0003】
たとえば、下記の特許文献1には、TCP/IPプロトコルと同程度の信頼性を確保した通信を、UDP/IPプロトコルを利用して行うパケット通信方式が開示されている。また、特許文献2には、LANで接続された通信端末とホストとの間において、カプセル化の技術を用いることにより、TCP/IPプロトコルを利用して通信制御を行う方法が開示されている。
【先行技術文献】
【特許文献】
【0004】
【文献】特開平10-056479号公報
【文献】特開平10-233820号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
インターネット等の通信環境の普及により、現在は、個人ユーザが、パソコン、携帯電話、タブレット型端末などのクライアント装置を利用して、世界中の様々なサーバ装置にアクセスを行い、必要な情報を得るようになってきている。このような個人ユーザのプライバシーを保護するために、どの個人ユーザが、どのクライアント装置から、どのサーバ装置にアクセスし、どのようなデータを取得したか、といった個人情報を保護することが非常に重要になってきている。しかしながら、現在普及している通信システムでは、必ずしも個人情報の保護を十分に行うことはできない。
【0006】
第1の問題は、ユーザがクライアント装置から特定のサーバ装置に対してアクセスした場合、当該サーバ装置に対して、クライアント装置の所在を示す送信元アドレスが送信されるため、アクセス元の匿名性、覆面性が失われる点である。たとえば、クライアント装置に組み込まれたWebブラウザを用いて、特定のWebサーバ装置をアクセスする際には、当該クライアント装置のIPアドレスを送信元アドレスとして、当該Webサーバ装置に送信する必要がある。
【0007】
最近は、ルータを介した通信が一般的になってきているため、Webサーバ装置に直接的に送信される送信元アドレスは、クライアント装置に付されたプライベートIPアドレスではなく、ルータに付与されたグローバルIPアドレスということになるが、それでも、送信元としてのルータがグローバルIPアドレスとして特定されてしまう。また、当該ルータに接続された個々のクライアント装置はポート番号として区別されることになるが、当該ポート番号もWebサーバ装置に送信されるため、ポート番号の解析により、送信元のクライアント装置まで特定されてしまうおそれもある。その結果、Webサーバ装置に対してアクセスを行ったユーザの匿名性、覆面性が失われる可能性があり、当該Webサーバ装置の管理者が悪意をもった者であった場合、送信元のクライアント装置に対して不正な攻撃が行われるおそれもある。
【0008】
第2の問題は、クライアント装置とサーバ装置との間の通信経路において、情報漏洩が生じる可能性がある点である。両者間で送受されるデータパケットが不正な方法で第三者に取得されると、情報が漏れてしまう。特に、最近は、無線ルータなどの普及により、無線通信経路が介在する環境でアクセスを行うケースも少なくない。このようなケースでは、無線通信経路が盗聴されると、情報が漏洩することになる。
【0009】
最近は、SSL等を利用したセキュアな通信経路も普及してきており、オンラインバンキングサービスを提供するWebサイトなど、情報を暗号化してやりとりするサイトも増えてきているが、そのためには、Webサーバ装置側に対応機能を設ける必要があり、一般のWebサイトにまで普及するには至っていない。実際、個人ユーザが一般的なWebサイトを閲覧する場合、クライアント装置とサーバ装置との間には、十分セキュアな通信経路が確立されていないケースがほとんどである。特に、移動中のユーザがWiFiスポットなどを利用してWebサイトにアクセスした場合、盗聴の危険性が非常に高くなり、情報漏洩が生じやすい。
【0010】
そこで本発明は、任意のサーバ装置に対してネットワークを介してアクセスする際に、アクセス元の匿名性、覆面性を確保するとともに、通信経路における情報漏洩を防ぐことができるパケット通信システムを提供し、個人情報に関するセキュリティを向上させることを目的とする。
【課題を解決するための手段】
【0011】
(1) 本発明の第1の態様は、アクセスの対象となる対象サーバ装置に対してネットワークを介して接続し、パケット通信を行うためのパケット通信システムにおいて、
対象サーバ装置との間でパケット通信を行うクライアント装置と、クライアント装置と対象サーバ装置との間のパケット通信を中継する中継サーバ装置と、を設け、
クライアント装置は、
当該クライアント装置を送信元とし対象サーバ装置をあて先として、対象サーバ装置に対して送信すべき所定の送信データをデータ部に含む第1のパケットを作成する処理を行う通信制御部と、
第1のパケットの少なくとも一部を暗号化して送信用暗号データを作成するクライアント用暗号化処理部と、
クライアント装置を送信元とし中継サーバ装置をあて先として、送信用暗号データをデータ部に含む第2のパケットを作成して送信するパケット送信部と、
を有し、
中継サーバ装置は、
第2のパケットを受信し、そのデータ部に含まれている送信用暗号データを復号して第1のパケットを復元する中継サーバ用復号処理部と、
復元された第1のパケットの送信元を中継サーバ装置に変更することにより第3のパケットを作成し、作成した第3のパケットを送信するパケット転送部と、
第3のパケットに対する応答として対象サーバ装置から返信されてきた第4のパケットを受信し、その少なくとも一部を暗号化して返信用暗号データを作成する中継サーバ用暗号化処理部と、
中継サーバ装置を送信元としクライアント装置をあて先として、返信用暗号データをデータ部に含む第5のパケットを作成し、作成した第5のパケットを送信するパケット返信部と、
を有し、
クライアント装置は、更に、
第5のパケットを受信し、そのデータ部に含まれている返信用暗号データを復号して第4のパケットを復元するクライアント用復号処理部と、
復元された第4のパケットのあて先をクライアント装置に変更することにより第6のパケットを作成するパケット受信部と、
を有し、
通信制御部は、更に、第6のパケットのデータ部に含まれている返信データを取り出す処理を行うようにしたものである。
【0012】
(2) 本発明の第2の態様は、上述した第1の態様に係るパケット通信システムにおいて、
通信制御部が、
ヘッダ部とデータ部とを含む第1のパケットを作成する処理を行い、
第1のパケットのデータ部には、対象サーバ装置に対して送信すべき所定の送信データを格納し、
第1のパケットのヘッダ部には、クライアント装置のアドレスを示す送信元アドレスと、対象サーバ装置のアドレスを示すあて先アドレスと、を格納するようにしたものである。
【0013】
(3) 本発明の第3の態様は、上述した第2の態様に係るパケット通信システムにおいて、
通信制御部が、
第1のパケットとして、IPヘッダ部とIPデータ部とを含むIPパケットを作成する処理を行い、
IPデータ部には、TCPヘッダ部とTCPデータ部とを含むTCPパケットを格納し、TCPデータ部には、送信データを格納するようにしたものである。
【0014】
(4) 本発明の第4の態様は、上述した第2または第3の態様に係るパケット通信システムにおいて、
クライアント用暗号化処理部が、第1のパケットのデータ部の全部もしくは一部を暗号化して送信用暗号データを作成し、
パケット送信部が、
ヘッダ部とデータ部とを含む第2のパケットを作成する処理を行い、
第2のパケットのデータ部には、送信用暗号データを格納するカプセル化処理を行い、
第2のパケットのヘッダ部には、クライアント装置のアドレスを示す送信元アドレスと、中継サーバ装置のアドレスを示すあて先アドレスと、を格納するようにしたものである。
【0015】
(5) 本発明の第5の態様は、上述した第4の態様に係るパケット通信システムにおいて、
パケット送信部が、
第2のパケットとして、IPヘッダ部とIPデータ部とを含むIPパケットを作成する処理を行い、
IPデータ部に、送信用暗号データを格納することによりカプセル化処理を行い、第2のパケットをTCP/IPのプロトコルに従って送信するようにしたものである。
【0016】
(6) 本発明の第6の態様は、上述した第4または第5の態様に係るパケット通信システムにおいて、
パケット転送部が、
ヘッダ部とデータ部とを含む第3のパケットを作成する処理を行い、
第3のパケットのデータ部には、復元された第1のパケットのデータ部を格納し、
第3のパケットのヘッダ部には、中継サーバ装置のアドレスを示す送信元アドレスと、対象サーバ装置のアドレスを示すあて先アドレスと、を格納するようにしたものである。
【0017】
(7) 本発明の第7の態様は、上述した第6の態様に係るパケット通信システムにおいて、
パケット転送部が、
第3のパケットとして、IPヘッダ部とIPデータ部とを含むIPパケットを作成する処理を行い、
IPデータ部に、復元された第1のパケットのデータ部を格納し、第3のパケットをTCP/IPのプロトコルに従って送信するようにしたものである。
【0018】
(8) 本発明の第8の態様は、上述した第1~第7の態様に係るパケット通信システムにおいて、
中継サーバ用暗号化処理部が、ヘッダ部とデータ部とを含む第4のパケットを受信し、受信した第4のパケットのデータ部の全部もしくは一部を暗号化して返信用暗号データを作成し、
パケット返信部が、
ヘッダ部とデータ部とを含む第5のパケットを作成する処理を行い、
第5のパケットのデータ部には、返信用暗号データを格納するカプセル化処理を行い、
第5のパケットのヘッダ部には、中継サーバ装置のアドレスを示す送信元アドレスと、クライアント装置のアドレスを示すあて先アドレスと、を格納するようにしたものである。
【0019】
(9) 本発明の第9の態様は、上述した第8の態様に係るパケット通信システムにおいて、
パケット返信部が、
第5のパケットとして、IPヘッダ部とIPデータ部とを含むIPパケットを作成する処理を行い、
IPデータ部に、返信用暗号データを格納することによりカプセル化処理を行い、第5のパケットをTCP/IPのプロトコルに従って送信するようにしたものである。
【0020】
(10) 本発明の第10の態様は、上述した第8または第9の態様に係るパケット通信システムにおいて、
パケット受信部が、
ヘッダ部とデータ部とを含む第6のパケットを作成する処理を行い、
データ部には、復元された第4のパケットのデータ部を格納し、
第6のパケットのヘッダ部には、対象サーバ装置のアドレスを示す送信元アドレスと、クライアント装置のアドレスを示すあて先アドレスと、を格納するようにしたものである。
【0021】
(11) 本発明の第11の態様は、上述した第10の態様に係るパケット通信システムにおいて、
パケット受信部が、
第6のパケットとして、IPヘッダ部とIPデータ部とを含むIPパケットを作成する処理を行い、
IPデータ部に、復元された第4のパケットに含まれていた返信データを格納するようにしたものである。
【0022】
(12) 本発明の第12の態様は、上述した第1~第11の態様に係るパケット通信システムにおいて、
複数n台のクライアント装置とこれらn台のクライアント装置のそれぞれに対応づけられたn台の中継サーバ装置とを設け、
各クライアント装置のパケット送信部は、それぞれ対応づけられた特定の中継サーバ装置宛に第2のパケットを送信し、
各中継サーバ装置のパケット返信部は、それぞれ対応づけられた特定のクライアント装置宛に第5のパケットを送信するようにしたものである。
【0023】
(13) 本発明の第13の態様は、上述した第1~第11の態様に係るパケット通信システムにおいて、
パケット転送部が、復元された第1のパケットの送信元を示す情報を第3のパケットに埋め込む処理を行い、
中継サーバ用暗号化処理部が、受信した第4のパケットに埋め込まれていた上記送信元を示す情報を読み出してパケット返信部に伝達する処理を行い、
パケット返信部が、上記送信元を示す情報をあて先となるクライアント装置とする第5のパケットを作成するようにしたものである。
【0024】
(14) 本発明の第14の態様は、上述した第13の態様に係るパケット通信システムにおいて、
パケット転送部が、TCP/IPのプロトコルに従った第3のパケットを作成し、その際に、第3のパケットに含まれるTCPヘッダ部内に、送信元ポート番号として第1のパケットの送信元を示す情報を埋め込む処理を行い、
パケット返信部が、第4のパケットに含まれるTCPヘッダ部内に、あて先ポート番号として埋め込まれていた情報に基づいて、第5のパケットの送信先を決定するようにしたものである。
【0025】
(15) 本発明の第15の態様は、上述した第1~第11の態様に係るパケット通信システムにおいて、
中継サーバ装置が、更に、通信情報記録部を有し、
パケット転送部が、第3のパケットを送信する際に、復元された第1のパケットの送信元を示す情報と第3のパケットとの対応関係を示す対応関係情報を通信情報記録部に記録する処理を行い、
パケット返信部が、第5のパケットを送信する際に、通信情報記録部に記録されている対応関係情報に基づいて、第5のパケットの送信先を決定するようにしたものである。
【0026】
(16) 本発明の第16の態様は、上述した第15の態様に係るパケット通信システムにおいて、
パケット転送部が、TCP/IPのプロトコルに従った第3のパケットを作成し、その際に、第3のパケットに含まれるTCPヘッダ部内に、第3のパケットを示すためのパケット識別子をポート番号として埋め込み、当該パケット識別子と復元された第1のパケットの送信元を示す情報との対応関係を対応関係情報として通信情報記録部に記録する処理を行い、
パケット返信部が、第4のパケットに含まれるTCPヘッダ部内にポート番号として埋め込まれていたパケット識別子を利用して、通信情報記録部に記録されている対応関係情報を参照することにより、第1のパケットの送信元に対して、第5のパケットを送信するようにしたものである。
【0027】
(17) 本発明の第17の態様は、上述した第1~第16の態様に係るパケット通信システムにおいて、
中継サーバ装置が第1国の領域内に設置されており、クライアント装置が第2国の領域内に設置されており、クライアント装置が、第1国の領域内に設置されている対象サーバ装置に対してアクセスを行う際に、第1国の領域内に設置されている中継サーバ装置による中継を介してアクセスを行うようにしたものである。
【0028】
(18) 本発明の第18の態様は、上述した第1~第17の態様に係るパケット通信システムにおいて、
クライアント装置が、所定のOSプログラムと、このOSプログラムの下で動作する1つもしくは複数のアプリケーションプログラムと、をインストールしたコンピュータによって構成されており、
クライアント用暗号化処理部、パケット送信部、クライアント用復号処理部およびパケット受信部が、アプリケーションプログラムの実行により機能するようにしたものである。
【0029】
(19) 本発明の第19の態様は、上述した第1~第17の態様に係るパケット通信システムを構成する1台のクライアント装置を提供するものである。
【0030】
(20) 本発明の第20の態様は、上述した第1~第17の態様に係るパケット通信システムにおけるクライアント用暗号化処理部、パケット送信部、クライアント用復号処理部およびパケット受信部としてコンピュータを機能させるプログラムを提供するものである。
【0031】
(21) 本発明の第21の態様は、上述した第1~第17の態様に係るパケット通信システムにおいて、
中継サーバ装置が、所定のOSプログラムと、このOSプログラムの下で動作する1つもしくは複数のアプリケーションプログラムと、をインストールしたコンピュータによって構成されており、
中継サーバ用復号処理部、パケット転送部、中継サーバ用暗号化処理部およびパケット返信部が、アプリケーションプログラムの実行により機能するようにしたものである。
【0032】
(22) 本発明の第22の態様は、上述した第1~第17の態様に係るパケット通信システムを構成する1台の中継サーバ装置を提供するものである。
【0033】
(23) 本発明の第23の態様は、上述した第1~第17の態様に係るパケット通信システムにおける中継サーバ用復号処理部、パケット転送部、中継サーバ用暗号化処理部およびパケット返信部としてコンピュータを機能させるプログラムを提供するものである。
【発明の効果】
【0034】
本発明に係るパケット通信システムによれば、クライアント装置とサーバ装置との間の通信は中継サーバ装置を介して行われるため、任意のサーバ装置に対してネットワークを介してアクセスする際に、アクセス元の匿名性、覆面性を確保することができるようになる。また、少なくともクライアント装置と中継サーバ装置との間の通信は、暗号化して行われるため、通信経路における情報漏洩の可能性を低減することができる。かくして、個人情報に関するセキュリティを向上させることができる。
【図面の簡単な説明】
【0035】
【
図1】TCP/IPプロトコルを利用して、従来から行われている一般的なクライアント装置とサーバ装置との間のネットワークを介した通信形態を示すブロック図である。
【
図2】
図1に示す通信形態において、クライアント装置からサーバ装置に向けて送信されるHTTPリクエスト送信用のパケットの構造を示すブロック図である。
【
図3】
図1に示す通信形態において、サーバ装置からクライアント装置に向けて送信されるHTTPレスポンス返信用のパケットの構造を示すブロック図である。
【
図4】本発明の基本的な実施形態に係るパケット通信システムを利用した通信形態を示すブロック図である。
【
図5】本発明の基本的な実施形態に係るパケット通信システムの構成を示すブロック図である。
【
図6】
図5に示す構成において、クライアント装置400内の通信制御部430で作成される第1のIPパケットIP10の構造の一例を示すブロック図である。
【
図7】
図5に示す構成において、クライアント装置400から中継サーバ装置300に向けて送信される第2のIPパケットIP20の構造の一例を示すブロック図である。
【
図8】
図5に示す構成において、中継サーバ装置300から対象サーバ装置100に向けて送信される第3のIPパケットIP30の構造の一例を示すブロック図である。
【
図9】
図5に示す構成において、対象サーバ装置100から中継サーバ装置300に向けて送信される第4のIPパケットIP40の構造の一例を示すブロック図である。
【
図10】
図5に示す構成において、中継サーバ装置300からクライアント装置400に向けて送信される第5のIPパケットIP50の構造の一例を示すブロック図である。
【
図11】
図5に示す構成において、クライアント装置400内のパケット受信部450で作成される第6のIPパケットIP60の構造の一例を示すブロック図である。
【
図12】本発明の変形例に係るパケット通信システムの構成を示すブロック図である。
【
図13】本発明に係るパケット通信システムを2つの国の領域を跨いで設置した例を示すブロック図である。
【発明を実施するための形態】
【0036】
以下、本発明を図示する実施形態に基づいて説明する。
【0037】
<<< §1. ネットワークを介した一般的な通信形態 >>>
はじめに、説明の便宜上、ネットワークを介した一般的な通信形態を簡単に説明しておく。
図1は、TCP/IPプロトコルを利用して、従来から行われている一般的なクライアント装置とサーバ装置との間のネットワークを介した通信形態を示すブロック図である。図には、アクセスの対象となる対象サーバ装置100に対して、5台のクライアント装置201~205がネットワークNを介してアクセスしている例が示されている。
【0038】
ここで、各クライアント装置201~205は、パソコン、携帯電話、タブレット型端末など、ネットワークを介した通信機能を備えたコンピュータによって構成されており、対象サーバ装置100は、このようなクライアントとなるコンピュータからのアクセスを受けて必要な情報を提供するサーバコンピュータによって構成されており、たとえば、Webサーバ等によって構成される。
【0039】
このようなクライアント・サーバ間の通信は、通常、IPプロトコルを用いて行われる。図には、各装置に付与されたIPアドレスの一例が示されている。たとえば、クライアント装置201には、「xx.5.1.1」なるグローバルIPアドレスが付与されている。なお、本願では、グローバルIPアドレスを例示する際に、実在する特定のアドレスの記載を避けるため、アドレス先頭の1バイトのデータを「xx」,「yy」,「zz」などの符号で示すことにする。したがって、クライアント装置201に付与された「xx.5.1.1」なるグローバルIPアドレスの先頭「xx」には、実際には、所定の1バイトのデータが入ることになる。
【0040】
このようなグローバルIPアドレス「xx.5.1.1」が付与されたクライアント装置201は、図示のように、インターネットNに直接接続することができる。一方、対象サーバ装置(たとえば、Webサーバ)100にも、グローバルIPアドレス「yy.6.1.1」が付与されており、この対象サーバ装置100もインターネットNに直接接続されている。ここで、クライアント装置201が、対象サーバ装置100にアクセスする際には、自己を送信元とし、対象サーバ装置100をあて先とするデータパケットを送信することになる。
【0041】
図において、クライアント装置201からインターネットNへの接続経路脇に記載されている「201: xx.5.1.1 → 100: yy.6.1.1」なる記述は、クライアント装置201のIPアドレス「xx.5.1.1」を送信元とし、対象サーバ装置100のIPアドレス「yy.6.1.1」をあて先とするデータパケットが送信されることを示している。このようなデータパケットの送信を受けた対象サーバ装置100では、これに応答するためのデータパケットを返信することになる。返信されるデータパケットは、対象サーバ装置100のIPアドレス「yy.6.1.1」を送信元とし、クライアント装置201のIPアドレス「xx.5.1.1」をあて先とするものになる。こうして、クライアント装置201と対象サーバ装置100との間でのデータパケットのやりとりとして、両者間の通信が実行されることになる。
【0042】
対象サーバ装置100がWebサーバの場合、クライアント装置201側では、通常、組み込まれたWebブラウザによって、送信すべきデータが作成され、受信したデータに対する処理が行われる。具体的には、Web閲覧に一般的に用いられているHTTPプロトコルに従った通信では、クライアント装置201内のWebブラウザによってHTTPリクエストが作成され、Webサーバ100に対して送信される。Webサーバ100は、このHTTPリクエストに応じて、HTTPレスポンスを作成し、これをクライアント装置201に返信する。クライアント装置201内のWebブラウザは、たとえば、このHTTPレスポンスに含まれるHTML形式のデータに基づいて、ディスプレイ上へのWeb画面の表示などの処理を行う。
【0043】
一方、クライアント装置202,203は、ルータR1を介してインターネットNに接続されている。ここに示す例の場合、クライアント装置202,203とルータR1との間は、イーサネット(登録商標)ケーブルなどを用いて有線接続されている。このように、ルータを介してインターネットNに接続されたクライアント装置には、当該ルータから、DHCPなどの仕様に基づいて、所定のプライベートIPアドレスが付与される。図示の例の場合、クライアント装置201には、プライベートIPアドレス「192.168.2.1」が付与されており、クライアント装置203には、プライベートIPアドレス「192.168.2.2」が付与されている。このようなプライベートIPアドレスでは、インターネットNへの直接アクセスはできないので、各クライアント装置202,203からインターネットNへデータ送信を行う場合、ルータR1によって、送信元のアドレスが、プライベートIPアドレスからグローバルIPアドレスに変換される。
【0044】
図示の例の場合、ルータR1には、「xx.5.2.1」なるグローバルIPアドレスが付与されており、各クライアント装置202,203からのデータ送信は、いずれも、このグローバルIPアドレス「xx.5.2.1」を送信元として行われる。ただ、クライアント装置202,203を相互に区別するために、ポート番号が利用される。図示の例では、ルータR1によって、クライアント装置202にはポート番号P1が付与され、クライアント装置203にはポート番号P2が付与されており、これらのポート番号が、グローバルIPアドレス「xx.5.2.1」とともに、送信元を示すアドレスとして用いられることになる。結局、ルータR1の機能により、クライアント装置202のプライベートIPアドレス「192.168.2.1」は、ポート番号付きのグローバルIPアドレス「xx.5.2.1(P1)」に変換され、クライアント装置203のプライベートIPアドレス「192.168.2.2」は、ポート番号付きのグローバルIPアドレス「xx.5.2.1(P2)」に変換されることになる。
【0045】
図において、ルータR1からインターネットNへの接続経路脇に記載されている「202: xx.5.2.1(P1) → 100: yy.6.1.1」なる記述は、クライアント装置202に対応するグローバルIPアドレス「xx.5.2.1(P1)」を送信元とし、対象サーバ装置100のIPアドレス「yy.6.1.1」をあて先とするデータパケットが送信されることを示しており、「203: xx.5.2.1(P2) → 100: yy.6.1.1」なる記述は、クライアント装置203に対応するグローバルIPアドレス「xx.5.2.1(P2)」を送信元とし、対象サーバ装置100のIPアドレス「yy.6.1.1」をあて先とするデータパケットが送信されることを示している。
【0046】
このようなデータパケットの送信を受けた対象サーバ装置100が、これに応答するためのデータパケットを返信する点は、上述したとおりである。返信されるデータパケットは、対象サーバ装置100のIPアドレス「yy.6.1.1」を送信元とし、クライアント装置202のIPアドレス「xx.5.2.1(P1)」やクライアント装置203のIPアドレス「xx.5.2.1(P2)」をあて先とするものになる。これらの返信パケットを受け取ったルータR1は、あて先に記載されたポート番号P1,P2に基づいて、当該パケットをクライアント装置202もしくは203に転送する処理を行う。このようなルータの処理機能は、NAPTと呼ばれる公知の処理であるため、ここでは詳しい説明は省略する。
【0047】
図示のクライアント装置204,205は、無線ルータR2を介してインターネットNに接続されている。無線ルータR2の基本的な機能は、ルータR1と同様であるが、クライアント装置204,205と無線ルータR2との間は、無線接続されている。最近は、多くのクライアント装置がWiFi機能を搭載しており、無線ルータに対して無線接続することにより、インターネットNに接続することができる。
【0048】
このような無線ルータR2を用いた場合も、各クライアント装置には、当該ルータから、所定のプライベートIPアドレスが付与される。図示の例の場合、クライアント装置204には、プライベートIPアドレス「192.168.10.1」が付与されており、クライアント装置205には、プライベートIPアドレス「192.168.10.2」が付与されている。無線ルータR2もNAPTの処理機能を有しており、プライベートIPアドレスをポート番号付きのグローバルIPアドレスに変換することができる。図示の例では、無線ルータR2によって、クライアント装置204にはポート番号P1が付与され、クライアント装置205にはポート番号P2が付与されている。
【0049】
図において、無線ルータR2からインターネットNへの接続経路脇に記載されている「204: xx.5.3.1(P1) → 100: yy.6.1.1」なる記述は、クライアント装置204に対応するグローバルIPアドレス「xx.5.3.1(P1)」を送信元とし、対象サーバ装置100のIPアドレス「yy.6.1.1」をあて先とするデータパケットが送信されることを示しており、「205: xx.5.3.1(P2) → 100: yy.6.1.1」なる記述は、クライアント装置205に対応するグローバルIPアドレス「xx.5.3.1(P2)」を送信元とし、対象サーバ装置100のIPアドレス「yy.6.1.1」をあて先とするデータパケットが送信されることを示している。
【0050】
図2は、
図1に示す通信形態において、クライアント装置201~205から対象サーバ装置100に向けて送信されるHTTPリクエスト送信用のパケットの構造を示すブロック図である。この例は、TCP/IPのプロトコルに従ったデータパケットの構造を示すものであり、TCPパケットがIPパケット内にカプセル化された構造になっている。
【0051】
すなわち、
図2の上段に示すTCPパケットTCP1は、TCPヘッダ部Ht1とTCPデータ部Dt1とを有しており、対象サーバ装置100に送信すべき本体の送信データ(この例の場合、Webサーバ100に宛てたHTTPリクエスト)がTCPデータ部Dt1に格納され、TCPヘッダ部Ht1には、必要に応じて、送信元ポート番号Ht1aおよびあて先ポート番号Ht1bが格納されている。
図1に示す例の場合、クライアント装置201からのTCPパケットにはポート番号は不要であるが、クライアント装置202~205からのTCPパケットには、各ルータによって決められたポート番号P1,P2等が、送信元ポート番号Ht1aに格納されることになる。
【0052】
図2の下段に示すIPパケットIP1は、IPヘッダ部Hi1とIPデータ部Di1とを有しており、IPデータ部Di1には、上段に示すTCPパケットがそっくり格納される。IPヘッダ部Hi1には、送信元IPアドレスHi1aとあて先IPアドレスHi1bとが格納される。
【0053】
たとえば、
図1に示すクライアント装置201から送信されるIPパケットの場合は、送信元IPアドレスHi1aには「xx.5.1.1」なるクライアント装置201自身に付与されたグローバルIPアドレスが格納される。一方、クライアント装置202または203から送信されるIPパケットの場合は、送信元IPアドレスHi1aには「xx.5.2.1」なるルータR1のグローバルIPアドレスが格納され、クライアント装置204または205から送信されるIPパケットの場合は、送信元IPアドレスHi1aには「xx.5.3.1」なる無線ルータR2のグローバルIPアドレスが格納される。
【0054】
また、あて先IPアドレスHi1bには、対象サーバ装置(Webサーバ)100のグローバルIPアドレス「yy.6.1.1」が格納される。したがって、この
図2に示すIPパケットIP1は、あて先IPアドレス「yy.6.1.1」によって示されたWebサーバ100に届くことになる。Webサーバ100では、このIPパケットIP1にカプセル化されているTCPパケットTCP1を抽出し、TCPデータ部Dt1に含まれている送信データ(HTTPリクエスト)を解釈する。そして、返信データとして、このHTTPリクエストに応じたHTTPレスポンスを作成する。
【0055】
図3は、Webサーバ100が、
図2に示すHTTPリクエスト送信用のパケット(IPパケットIP1)に応じて作成したHTTPレスポンス返信用のパケット(IPパケットIP2)の構造を示すブロック図である。この例も、TCP/IPのプロトコルに従ったデータパケットの構造を示すものであり、TCPパケットがIPパケット内にカプセル化された構造になっている。
【0056】
具体的には、
図3の上段に示すTCPパケットTCP2は、TCPヘッダ部Ht2とTCPデータ部Dt2とを有しており、HTTPリクエストの送信元となるクライアント装置に返信すべき本体の返信データ(たとえば、閲覧要求のあったWebページに表示すべきテキストや画像データを含むHTTPレスポンス)がTCPデータ部Dt2に格納され、TCPヘッダ部Ht2には、必要に応じて、送信元ポート番号Ht2aおよびあて先ポート番号Ht2bが格納されている。たとえば、
図2に示すTCPパケットTCP1内に送信元ポート番号Ht1aが格納されていた場合、
図3に示すTCPパケットTCP2内には、この送信元ポート番号Ht1aが、あて先ポート番号Ht2bとして格納されることになる。
【0057】
図3の下段に示すIPパケットIP2は、IPヘッダ部Hi2とIPデータ部Di2とを有しており、IPデータ部Di2には、上段に示すTCPパケットがそっくり格納される。IPヘッダ部Hi2には、送信元IPアドレスHi2aとあて先IPアドレスHi2bとが格納される。ここで、送信元IPアドレスHi2aは、
図2に示すIPパケットIP1に格納されていたあて先IPアドレスHi1bであり、あて先IPアドレスHi2bは、
図2に示すIPパケットIP1に格納されていた送信元IPアドレスHi1aである。
【0058】
したがって、
図1に示す例の場合、対象サーバ装置100から返信されるIPパケットIP2内の送信元IPアドレスは、いずれも「yy.6.1.1」になり、あて先IPアドレスは、HTTPリクエストを送信してきた送信元のクライアント装置のグローバルIPアドレスになる。たとえば、
図1に示すクライアント装置201からのHTTPリクエストに応じたHTTPレスポンスであれば、IPパケットIP2内のあて先IPアドレスは「xx.5.1.1」になる。同様に、クライアント装置202,203からのHTTPリクエストに応じたHTTPレスポンスであれば、IPパケットIP2内のあて先IPアドレスは「xx.5.2.1」になり、クライアント装置204,205からのHTTPリクエストに応じたHTTPレスポンスであれば、IPパケットIP2内のあて先IPアドレスは「xx.5.3.1」になる。
【0059】
かくして、
図2に示すようなHTTPリクエスト送信用のパケットIP1を送信したクライアント装置には、
図3に示すようなHTTPレスポンス返信用のパケットIP2が返信されてくる。返信を受けたクライアント装置では、このIPパケットIP2にカプセル化されているTCPパケットTCP2を抽出し、TCPデータ部Dt2に含まれている返信データ(HTTPレスポンス)を解釈し、必要な処理を実行する。
【0060】
ここで、
図1~
図3に例示した従来の通信形態には、既に述べたように、個人情報に関するセキュリティを損なう2つの問題がある。
【0061】
第1の問題は、対象サーバ装置100側に、クライアント装置の所在を示す送信元アドレスが送信されるため、アクセス元の匿名性、覆面性が失われる点である。
図2に示すように、対象サーバ装置100に届くIPパケットIP1には、送信元IPアドレスHi1aや送信元ポート番号Ht1aが含まれているため、
図1に示すクライアント装置201によってアクセスした場合、アクセス元のグローバルIPアドレス「xx.5.1.1」が対象サーバ装置100の管理者に知られることになり、当該管理者に対する匿名性、覆面性が失われる。
【0062】
一方、
図1に示すクライアント装置202~205によってアクセスした場合、少なくとも、ルータR1,R2のグローバルIPアドレス「xx.5.2.1」,「xx.5.3.1」が対象サーバ装置100の管理者に知られることになり、更に、ポート番号P1,P2も知られることになる。よって、ポート番号の解析により、アクセス元のクライアント装置まで特定されてしまうおそれもある。したがって、対象サーバ装置100の管理者が悪意をもった者であった場合、アクセス元のクライアント装置に対して不正な攻撃が行われるおそれもある。
【0063】
第2の問題は、クライアント装置とサーバ装置との間の通信経路における情報漏洩の問題である。インターネットを利用した通信には、常に情報漏洩の危険性が存在することになるが、特に、
図1に示すような無線ルータR2を介した通信を行う場合、無線通信経路の盗聴により、情報漏洩の危険性が高まる。前述したとおり、一部のWebサイトなどでは、SSL等を利用したセキュアな通信経路を確立させた後に重要な情報の送受を行う対策を講じているが、一般のWebサイトにまで普及するには至っていない。したがって、個人ユーザがWiFiスポットなどを利用して任意のWebサイトにアクセスした場合、盗聴の危険性が非常に高くなり、情報漏洩が生じやすい。
【0064】
本発明は、このような問題を解決するために発案されたものであり、任意のサーバ装置に対してネットワークを介してアクセスする際に、アクセス元の匿名性、覆面性を確保するとともに、通信経路における情報漏洩を防ぐことができるパケット通信システムを提供し、個人情報に関するセキュリティを向上させることを目的としている。
【0065】
<<< §2. 本発明の基本概念 >>>
図4は、本発明の基本的な実施形態に係るパケット通信システムを利用した通信形態を示すブロック図である。
図1に示す従来例と同様に、アクセスの対象となる対象サーバ装置100に対して、5台のクライアント装置401~405がネットワークNを介してアクセスしている例が示されている。本発明の特徴は、新たに中継サーバ装置300を設けるとともに、各クライアント装置401~405に、この中継サーバ装置300を介して対象サーバ装置100にアクセスする機能を設けた点にある。
【0066】
各クライアント装置401~405は、
図1に示す各クライアント装置201~205と同様に、パソコン、携帯電話、タブレット型端末など、ネットワークを介した通信機能を備えたコンピュータによって構成されている。また、対象サーバ装置100は、
図1に示す対象サーバ装置100と同一のものであり、クライアントとなるコンピュータからのアクセスを受けて必要な情報を提供するサーバコンピュータによって構成されている。
【0067】
なお、本発明に係るパケット通信システムでは、TCP/IPプロトコル、UDP/IPプロトコルなど、様々な通信プロトコルを利用することが可能であるが、ここでは、説明の便宜上、対象サーバ装置100がWebサーバである例を説明し、Web閲覧で一般的に利用されているTCP/IPプロトコルを用いて通信を行う実施例を述べることにする。また、
図4に示す各クライアント装置401~405に対して付与されたIPアドレス(グローバルIPアドレスおよびプライベートIPアドレス)やポート番号、各クライアント装置401~405に関するインターネットNへの接続形態(ルータの構成)は、
図1に示す各クライアント装置201~205に関するものと同一であるため、説明は省略する。
【0068】
図1に示す従来のクライアント装置201~205(以下、代表して、クライアント装置200と呼ぶ)と、
図4に示す本発明に係るクライアント装置401~405(以下、代表して、クライアント装置400と呼ぶ)と、の相違点は、後者には、送信するパケットを暗号化するとともに受信したパケットを復号する暗号処理機能と、対象サーバ装置100へ送信すべきパケットの送信先を、中継サーバ装置300に変更する中継転送機能と、が備わっている点である。一方、本発明に固有の構成要素である中継サーバ装置300には、クライアント装置400から受信したパケットを復号して対象サーバ装置100へ転送するとともに、対象サーバ装置100から受信したパケットを暗号化してクライアント装置400へ転送する機能が備わっている。
【0069】
この
図4に示す実施形態に係るパケット通信システムには、大きな2つの特徴が備わっている。第1の特徴は、クライアント装置400から対象サーバ装置100へ宛てるべき送信パケットは、まず、中継サーバ装置300へ送信された後、この中継サーバ装置300によって対象サーバ装置100へ転送され、対象サーバ装置100からクライアント装置400へ宛てるべき返信パケットは、まず、中継サーバ装置300へ返信された後、この中継サーバ装置300によってクライアント装置400へ転送される点である。そして、第2の特徴は、クライアント装置400と中継サーバ装置300との間では、暗号化された状態でデータパケットのやりとりが行われる点である。
【0070】
上記第1の特徴により、前述した第1の問題が解決できる。すなわち、クライアント装置400から対象サーバ装置100へ宛てるべき送信パケットでは、クライアント装置400のアドレスが送信元アドレスとして格納されているが、中継サーバ装置300によってこの送信元アドレスが書き換えられ、中継サーバ装置300から対象サーバ装置100へ宛てた送信パケットでは、中継サーバ装置300のアドレスが送信元アドレスとして格納されることになる。このため、対象サーバ装置100からの返信パケットは、送信パケットの送信元である中継サーバ装置300宛てに返信されることになり、返信パケットは、中継サーバ装置300によってクライアント装置400宛てに転送される。
【0071】
結局、対象サーバ装置100に対しては、クライアント装置400のアドレスは秘匿され、対象サーバ装置100の管理者に対する匿名性、覆面性が確保されることになる。したがって、万一、対象サーバ装置100の管理者が悪意をもった者であり、送信元に対して何らかの攻撃を仕掛けた場合であっても、被害を受けるのは中継サーバ装置300ということになり、クライアント装置400のセキュリティは確保される。
【0072】
そして、上記第2の特徴により、前述した第2の問題の一部が解決できる。すなわち、クライアント装置400と中継サーバ装置300との間では、暗号化された状態でデータパケットのやりとりが行われるので、これらの間での情報漏洩を防ぐことができる。特に、
図4に示す例の場合、クライアント装置404,405のように、無線ルータR2を介してインターネットNに接続する設定がなされたクライアント装置400について、無線通信経路の盗聴による情報漏洩の危険性が高くなる。個人ユーザの場合、WiFiスポットなどを利用してインターネットNに接続するケースが多いため、クライアント装置400とインターネットNとの間では情報漏洩が生じやすい。
【0073】
本発明では、WiFiスポットなどを利用してインターネットNに接続するケースであっても、クライアント装置400と中継サーバ装置300との間では暗号通信が行われるため、クライアント装置400とWiFiスポットとの間の無線通信を盗聴されることにより情報漏洩が生じることを防ぐことができる。
【0074】
図において、クライアント装置401からインターネットNへの接続経路脇に記載されている「401: xx.5.1.1 → 300: zz.7.1.1」なる記述は、クライアント装置401のIPアドレス「xx.5.1.1」を送信元とし、中継サーバ装置300のIPアドレス「zz.7.1.1」をあて先とするデータパケットが送信されることを示している。このようなデータパケットの送信を受けた中継サーバ装置300では、当該データパケットを、自己のIPアドレス「zz.7.1.1」を送信元とし、対象サーバ装置100のIPアドレス「yy.6.1.1」をあて先とするデータパケットに変換して、対象サーバ装置100宛てに送信する。
【0075】
これに応じて、対象サーバ装置100は、自己のIPアドレス「yy.6.1.1」を送信元とし、中継サーバ装置300のIPアドレス「zz.7.1.1」をあて先とするデータパケットを返信する。このようなデータパケットの返信を受けた中継サーバ装置300では、当該データパケットを、自己のIPアドレス「zz.7.1.1」を送信元とし、クライアント装置401のIPアドレス「xx.5.1.1」をあて先とするデータパケットに変換して、クライアント装置401宛てに返信する。
【0076】
クライアント装置402~405が対象サーバ装置100にアクセスする場合も、同様に、中継サーバ装置300への転送処理が行われる。
【0077】
図4において、ルータR1からインターネットNへの接続経路脇に記載されている「402: xx.5.2.1(P1) → 300: zz.7.1.1」なる記述は、クライアント装置402に対応するグローバルIPアドレス「xx.5.2.1(P1)」を送信元とし、中継サーバ装置300のIPアドレス「zz.7.1.1」をあて先とするデータパケットが送信されることを示しており、「403: xx.5.2.1(P2) → 300: zz.7.1.1」なる記述は、クライアント装置403に対応するグローバルIPアドレス「xx.5.2.1(P2)」を送信元とし、中継サーバ装置300のIPアドレス「zz.7.1.1」をあて先とするデータパケットが送信されることを示している。
【0078】
同様に、
図4において、無線ルータR2からインターネットNへの接続経路脇に記載されている「404: xx.5.3.1(P1) → 300: zz.7.1.1」なる記述は、クライアント装置404に対応するグローバルIPアドレス「xx.5.3.1(P1)」を送信元とし、中継サーバ装置300のIPアドレス「zz.7.1.1」をあて先とするデータパケットが送信されることを示しており、「405: xx.5.3.1(P2) → 300: zz.7.1.1」なる記述は、クライアント装置405に対応するグローバルIPアドレス「xx.5.3.1(P2)」を送信元とし、中継サーバ装置300のIPアドレス「zz.7.1.1」をあて先とするデータパケットが送信されることを示している。
【0079】
なお、本発明に係る中継サーバ装置300に類似した機能を果たすサーバ装置として、プロキシサーバ装置が知られているが、§3以降で詳述するように、本発明に係る中継サーバ装置300の構成および処理動作は、従来のプロキシサーバ装置とは異なるものである。特に、本発明では、クライアント装置400から中継サーバ装置300の間について、暗号化によるセキュア通信が担保されることになる。また、本発明では、特定の通信プロトコルに限らず、あらゆる通信プロトコルに準拠したネットワークサービスが可能になる。
【0080】
更に、プロキシサーバ装置を利用する場合は、各クライアント装置に対して、使用するアプリケーションプログラムごとにそれぞれプロキシサーバ利用のための設定を行う必要があるが、本発明に係るクライアント装置400では、後述するように、クライアント用アプリケーションプログラムをインストールすることにより、クライアント装置400を構成することができ、各アプリケーションプログラムについての個別設定は不要である。
【0081】
<<< §3. 本発明の基本的な実施形態 >>>
図4では、本発明に係るパケット通信システムの全体構成を説明するために、その構成要素である中継サーバ装置300とクライアント装置400とを簡単なブロック図として示した。ここでは、中継サーバ装置300とクライアント装置400の詳細な構成とデータパケットの流れを示す。
【0082】
<3-1. 本発明に係るパケット通信システムの基本構成>
図5は、本発明の基本的な実施形態に係るパケット通信システムの構成を示すブロック図である。このパケット通信システムは、アクセスの対象となる対象サーバ装置100に対してネットワークNを介して接続し、パケット通信を行うためのパケット通信システムであり、中継サーバ装置300とクライアント装置400とを有している。
【0083】
ここで、本発明に固有の構成要素は、図示する中継サーバ装置300とクライアント装置400であり、図示されている対象サーバ装置(たとえば、Webサーバ)100や、ネットワーク(たとえば、インターネット)Nは、公知である既存の設備をそのまま利用すればよい。別言すれば、本発明を実施するに際して、アクセスの対象となる対象サーバ装置100には、特別な工夫を施す必要はなく、一般的なWebサーバなどの既存の装置を対象サーバ装置100として利用すればよい。したがって、本願では、対象サーバ装置100の内部構成についての説明は省略する。
【0084】
要するに、本発明においてアクセスの対象となる対象サーバ装置100としては、クライアント装置から送信されてきた送信パケットに対して、何らかの応答を行い、所定の返信パケットを返送する処理機能を有していれば足りる。たとえば、Webサーバの場合、§1で述べたように、HTTPリクエストに応じてHTTPレスポンスを返信する機能をもった一般的なWebサーバであれば、本発明における対象サーバ装置100として利用可能であり、本発明に係るパケット通信システムを利用すれば、任意のWebサーバにアクセスしてWebページの閲覧が可能である。
【0085】
ここでは、まず、クライアント装置400の構成を説明する。クライアント装置400は、対象サーバ装置100との間でパケット通信を行う構成要素であり、図示のとおり、パケット送信部410、クライアント用暗号化処理部420、通信制御部430、クライアント用復号処理部440、パケット受信部450を有している。前述したとおり、クライアント装置400の実体は、パソコン、携帯電話、タブレット型端末など、ネットワークを介した通信機能を備えたコンピュータである。
【0086】
したがって、実際には、クライアント装置400には、CPU、メモリ、ディスプレイ、入力機器など、図示されていない様々な構成要素が含まれている。ただ、ここでは便宜上、本発明に係るパケット通信に関与する構成要素のみを図示し、図示されていない構成要素についての説明は省略する。
【0087】
ここに示す実施例の場合、クライアント装置400は、所定のOSプログラムと、このOSプログラムの下で動作する1つもしくは複数のアプリケーションプログラムと、をインストールしたコンピュータによって構成されており、パケット送信部410、クライアント用暗号化処理部420、クライアント用復号処理部440およびパケット受信部450は、本発明に係るクライアント用アプリケーションプログラムをコンピュータに組み込んで実行することにより機能する。このクライアント用アプリケーションプログラムは、単独で配布することができ、ユーザは、汎用のコンピュータ(パソコン、携帯電話、タブレット型端末など)に、このクライアント用アプリケーションプログラムをインストールすることにより、本発明に係るクライアント装置400を構成することができる。
【0088】
なお、通信制御部430は、図示されていない構成要素によって作成された所望の送信データSを、TCP/IPプロトコルに基づいて外部に送信するために、送信用のIPパケットIP10を作成する処理と、TCP/IPプロトコルに基づいて外部から送信されてきたIPパケットIP60に含まれている返信データRを取り出す処理と、を行う構成要素であり、そのような処理機能は、パソコン、携帯電話、タブレット型端末などには、通常、OSプログラムもしくはOSプログラムが利用するライブラリプログラムとして備わっている標準機能である。したがって、一般的には、上述した本発明に係るクライアント用アプリケーションプログラムには、通信制御部430としての機能を含ませておく必要はない。
【0089】
一方、中継サーバ装置300は、本発明を実施するために新たに設けれらた構成要素であり、クライアント装置400と対象サーバ装置100との間のパケット通信を中継する役割を果たす。図示のとおり、中継サーバ装置300は、パケット転送部310、中継サーバ用復号処理部320、中継サーバ用暗号化処理部330、パケット返信部340を有している。この中継サーバ装置300の実体は、インターネットNに接続する機能をもったサーバコンピュータである。
【0090】
ここに示す実施例の場合、中継サーバ装置300は、所定のOSプログラムと、このOSプログラムの下で動作する1つもしくは複数のアプリケーションプログラムと、をインストールしたコンピュータによって構成されており、パケット転送部310、中継サーバ用復号処理部320、中継サーバ用暗号化処理部330およびパケット返信部340は、本発明に係るサーバ用アプリケーションプログラムをコンピュータに組み込んで実行することにより機能する。このサーバ用アプリケーションプログラムは、単独で配布することができ、ユーザは、汎用のサーバ用コンピュータに、このサーバ用アプリケーションプログラムをインストールすることにより、本発明に係る中継サーバ装置300を構成することができる。
【0091】
<3-2. HTTPリクエストの送信プロセス>
続いて、Webサーバからなる対象サーバ装置100に対して、クライアント装置400からHTTPリクエストを送信する際の処理プロセスを例にとりながら、関連する各構成要素の具体的な処理機能を説明する。
【0092】
まず、図示されていない構成要素(たとえば、Webブラウザプログラム)によって、HTTPリクエストが作成される。このHTTPリクエストは、送信データSとして通信制御部430に与えられる。通信制御部430は、クライアント装置400を送信元とし対象サーバ装置100をあて先として、対象サーバ装置100に対して送信すべき所定の送信データSをデータ部に含む第1のIPパケットIP10を作成する処理を行う。ここに示す例の場合、送信データSは、対象サーバ装置100宛てのHTTPリクエストということになる。
【0093】
図6は、通信制御部430で作成される第1のIPパケットIP10の構造の一例を示すブロック図である。ここに示す例の場合、対象サーバ装置100に対して送信すべき送信データSは、HTTPリクエストであるため、この
図6に示す第1のIPパケットIP10の内容は、実質的に、
図2に示すIPパケットIP1の内容と同じである。
【0094】
具体的には、
図6に示す第1のIPパケットIP10は、IPヘッダ部Hi10とIPデータ部Di10とを含んでおり、IPヘッダ部Hi10には、クライアント装置400のアドレスを示す送信元IPアドレスHi10aと、対象サーバ装置100のアドレスを示すあて先IPアドレスHi10bと、が格納されている。たとえば、
図4に示す例において、クライアント装置401から対象サーバ装置100に対してHTTPリクエストを送信する場合、送信元IPアドレスHi10aとして、クライアント装置401のIPアドレス「xx.5.1.1」が書き込まれ、あて先IPアドレスHi10bとして、対象サーバ装置100のIPアドレス「yy.6.1.1」が書き込まれる。
【0095】
一方、IPデータ部Di10には、対象サーバ装置100に対して送信すべき送信データS(この例の場合、HTTPリクエスト)を含んだTCPパケットTCP10が格納されている。このTCPパケットTCP10は、TCPヘッダ部Ht10とTCPデータ部Dt10とを含んでおり、TCPデータ部Dt10には、送信データS(この例の場合、HTTPリクエスト)が格納されている。また、TCPヘッダ部Ht10には、送信元ポート番号Ht10a,あて先ポート番号Ht10bを格納することができる。クライアント装置400がルータを介してインターネットNに接続されている場合は、ルータのNAPT機能により送信元ポート番号Ht10aが付与され、TCPヘッダ部Ht10内に書き込まれる。
【0096】
クライアント用暗号化処理部420は、
図6に示す第1のIPパケットIP10の少なくとも一部を暗号化して送信用暗号データC20を作成する処理を行う。実際には、IPヘッダ部Hi10には、送信元IPアドレスHi10aやあて先IPアドレスHi10bが格納されているので、基本的には、暗号化の対象は、IPデータ部Di10ということになる。なお、TCPヘッダ部Ht10内のデータ(たとえば、ポート番号など)を参照したり、書き換えたりする必要がある場合は、TCPデータ部Dt10のみを暗号化の対象とすればよい。もちろん、TCPデータ部Dt10の一部分のみを暗号化の対象としてもよい。このような暗号化処理により、第1のIPパケットIP10は、送信用暗号データC20に変換される。
【0097】
パケット送信部410は、クライアント装置400を送信元とし、中継サーバ装置300をあて先として、送信用暗号データC20をデータ部に含む第2のIPパケットIP20を作成して送信する機能を有する。
図7は、こうして作成された第2のIPパケットIP20の構造の一例を示すブロック図である。
図7の上段に示すとおり、第2のIPパケットIP20は、IPヘッダ部Hi20とIPデータ部Di20とを含んでいる。一方、
図7の下段には、クライアント用暗号化処理部420による暗号化処理が示されている。上述したように、クライアント用暗号化処理部420は、第1のIPパケットIP10のIPデータ部Di10の全部もしくは一部(たとえば、TCPデータ部Dt10)を暗号化したデータとして送信用暗号データC20を作成する。第2のIPパケットIP20のIPデータ部Di20には、こうして作成された送信用暗号データC20がそのまま格納される。
【0098】
いわば、
図6に示す第1のIPパケットIP10を、暗号化した状態で、第2のIPパケットIP20内にカプセル化する処理が行われたことになる。そして、第2のIPパケットIP20のヘッダ部Hi20には、クライアント装置400のアドレスを示す送信元IPアドレスHi20aと、中継サーバ装置300のアドレスを示すあて先IPアドレスHi20bと、が格納される。たとえば、
図4に示す例において、クライアント装置401から対象サーバ装置100に対してHTTPリクエストを送信する場合、送信元IPアドレスHi20aとして、クライアント装置401のIPアドレス「xx.5.1.1」が書き込まれ、あて先IPアドレスHi20bとして、中継サーバ装置300のIPアドレス「zz.7.1.1」が書き込まれる。
【0099】
結局、パケット送信部410は、第2のIPパケットIP20として、IPヘッダ部Hi20とIPデータ部Di20とを含むIPパケットを作成する処理を行い、IPデータ部Di20に、送信用暗号データC20を格納することによりカプセル化処理を行い、第2のIPパケットIP20をTCP/IPのプロトコルに従って送信する処理を行うことになる。
【0100】
こうして送信された第2のIPパケットIP20は、ネットワークNを介して、あて先となる中継サーバ装置300に到達する。
図5では、クライアント装置400から中継サーバ装置300に至る第2のIPパケットIP20の通信経路が白抜矢印で示されているが、これは、当該通信経路が暗号化通信経路になっていることを示す。したがって、この白抜矢印で示す通信経路上に無線通信路が介在していたために盗聴が行われたとしても、情報漏洩の危険性は排除できる。
【0101】
続いて、この第2のIPパケットIP20を受信した中継サーバ装置300内の処理を、関連する構成要素の機能とともに説明する。
【0102】
まず、中継サーバ用復号処理部320は、第2のIPパケットIP20を受信し、そのIPデータ部Di20に含まれている送信用暗号データC20を復号して、
図6に示す第1のIPパケットIP10を復元する処理を行う。もちろん、中継サーバ用復号処理部320による復号処理は、クライアント用暗号化処理部420で行われた暗号化処理を踏まえて実行される。具体的には、中継サーバ用復号処理部320は、第2のIPパケットIP20の送信元であるクライアント装置400を、送信元IPアドレスHi20aに基づいて特定することができるので、クライアント用暗号化処理部420で行われた暗号化処理のアルゴリズムとは逆の復号アルゴリズムを、暗号化に用いられた暗号化キーに応じた復号キーを用いて実行することにより、送信用暗号データC20を第1のIPパケットIP10に変換する処理を行うことができる。
【0103】
一方、パケット転送部310は、中継サーバ用復号処理部320によって復元された第1のIPパケットIP10の送信元を、クライアント装置400から中継サーバ装置300に変更することにより第3のIPパケットIP30を作成し、作成した第3のIPパケットIP30を送信する機能を有する。
【0104】
図8は、こうして作成された第3のIPパケットIP30の構造の一例を示すブロック図である。図示のとおり、第3のIPパケットIP30は、IPヘッダ部Hi30とIPデータ部Di30とを含んでいる。パケット転送部310は、第3のIPパケットIP30のIPデータ部Di30に、復元された第1のIPパケットIP10(
図6参照)のIPデータ部Di10を格納する。
図8には、IPデータ部Di30に、TCPパケットTCP30が格納されている状態が示されているが、実は、このTCPパケットTCP30は、
図6に示すTCPパケットTCP10と同じものである。
【0105】
従って、
図8に示されているTCPヘッダ部Ht30は、
図6に示されているTCPヘッダ部Ht10と同じものであり、
図8に示されているTCPデータ部Dt30は、
図6に示されているTCPデータ部Dt10と同じものである。よって、このTCPデータ部Dt30には、送信データS(この例の場合、HTTPリクエスト)が格納されている。同様に、
図8に示されている送信元ポート番号Ht30aおよびあて先ポート番号Ht30bは、
図6に示されている送信元ポート番号Ht10aおよびあて先ポート番号Ht10bと同じものである。
【0106】
これに対して、
図8に示す第3のIPパケットIP30のIPヘッダ部Hi30の内容は、
図6に示す第1のIPパケットIP10のIPヘッダ部Hi10の内容とは若干異なっており、送信元IPアドレスHi30aとしては、中継サーバ装置300のアドレスが格納されており、あて先IPアドレスHi30bとしては、対象サーバ装置100のアドレスが格納されている。すなわち、
図6に示す第1のIPパケットIP10の送信元IPアドレスを、クライアント装置400から中継サーバ装置300に変更したものが、
図8に示す第3のIPパケットIP30ということになる。
【0107】
たとえば、
図4に示す例において、クライアント装置401から対象サーバ装置100に対してHTTPリクエストを送信する場合、第3のIPパケットIP30のIPヘッダ部Hi30には、送信元IPアドレスHi30aとして、中継サーバ装置300のIPアドレス「zz.7.1.1」が書き込まれ、あて先IPアドレスHi30bとして、対象サーバ装置100のIPアドレス「yy.6.1.1」が書き込まれる。
【0108】
結局、パケット転送部310は、第3のIPパケットIP30として、IPヘッダ部Hi30とIPデータ部Di30とを含むIPパケットを作成する処理を行い、IPデータ部Di30には、復元された第1のIPパケットIP10のデータ部Di10を格納し、IPヘッダ部Hi30には、送信元IPアドレスHi30aとして中継サーバ装置300のアドレスを格納し、あて先IPアドレスHi30bとして対象サーバ装置100のアドレスを格納する処理を行い、こうして作成された第3のIPパケットIP30をTCP/IPのプロトコルに従って送信する処理を行うことになる。
【0109】
こうして送信された第3のIPパケットIP30は、ネットワークNを介して、あて先となる対象サーバ装置100に到達する。
図5では、中継サーバ装置300から対象サーバ装置100に至る第3のIPパケットIP30の通信経路が通常の矢印で示されているが、これは、当該通信経路が平文による通常の通信経路になっていることを示す。したがって、この通常の通信経路上で盗聴が行われた場合は、情報漏洩が生じる可能性があるが、対象サーバ装置100に到達した第3のIPパケットIP30は、平文による通常のIPパケットであるため、対象サーバ装置100内で復号処理などを行う必要はない。これは、対象サーバ装置100が、暗号通信を前提とした特別な装置である必要はないことを意味する。ここに示す例のように、Webサーバを対象サーバ装置100とする場合、任意のWebサーバを対象サーバ装置100として選択することが可能である。
【0110】
以上が、Webサーバからなる対象サーバ装置100に対して、クライアント装置400からHTTPリクエストを送信する際の一連の処理プロセスである。第3のIPパケットIP30のIPヘッダ部Hi30には、送信元IPアドレスとして、中継サーバ装置300のアドレスが格納されているため、対象サーバ装置100に対しては、クライアント装置400のアドレスは秘匿されることになる。したがって、万一、対象サーバ装置100の管理者が悪意をもった者であっても、クライアント装置400については匿名性、覆面性が確保されているため、クライアント装置400のセキュリティは確保される。
【0111】
<3-3. HTTPレスポンスの返信プロセス>
続いて、Webサーバからなる対象サーバ装置100が、クライアント装置400から中継サーバ装置300を介して送信されてきたHTTPリクエストに応じて、HTTPレスポンスを作成し、これを返信する際の処理プロセスを例にとりながら、関連する各構成要素の具体的な処理機能を説明する。
【0112】
図9は、対象サーバ装置100によって作成された第4のIPパケットIP40の構造の一例を示すブロック図である。この第4のIPパケットIP40は、対象サーバ装置100から中継サーバ装置300に向けて送信される。ここに示す例の場合、対象サーバ装置100が受信した第3のIPパケットIP30に含まれる送信データSはHTTPリクエストであるため、対象サーバ装置100は、まず、このHTTPリクエストに応じたHTTPレスポンスを返信データRとして作成する。このHTTPレスポンスには、たとえば、閲覧要求のあったWebページに表示すべきテキストや画像データが含まれている。
【0113】
図9に示す第4のIPパケットIP40は、IPヘッダ部Hi40とIPデータ部Di40とを含んでおり、IPヘッダ部Hi40には、対象サーバ装置100自身のアドレスを示す送信元IPアドレスHi40aと、直接的な返信先である中継サーバ300のアドレスを示すあて先IPアドレスHi40bと、が格納されている。あて先IPアドレスHi40bが、クライアント装置400のアドレスではなく、中継サーバ300のアドレスになっているのは、第3のIPパケットIP30の送信元が中継サーバ300のアドレスになっていたためである。
【0114】
別言すれば、対象サーバ装置100は、中継サーバ装置300からHTTPリクエストが送信されてきたので、これに応じたHTTPレスポンスを、中継サーバ装置300に対して返信する処理を行うことになる。これは、一般的なWebサーバで行われている通常の処理である。具体的には、
図4に示す例の場合、第4のIPパケットIP40のIPヘッダ部Hi40には、送信元IPアドレスHi40aとして、対象サーバ装置100のIPアドレス「yy.6.1.1」が書き込まれ、あて先IPアドレスHi40bとして、中継サーバ装置300のIPアドレス「zz.7.1.1」が書き込まれる。
【0115】
一方、第4のIPパケットIP40のIPデータ部Di40には、中継サーバ装置300に対して返信すべき返信データR(この例の場合、HTTPレスポンス)を含んだTCPパケットTCP40が格納されている。このTCPパケットTCP40は、TCPヘッダ部Ht40とTCPデータ部Dt40とを含んでおり、TCPデータ部Dt40には、返信データR(この例の場合、HTTPレスポンス)が格納されている。また、TCPヘッダ部Ht40には、必要に応じて、送信元ポート番号Ht40a,あて先ポート番号Ht40bを格納することができる。
【0116】
結局、対象サーバ装置100からは、
図8に示す第3のIPパケットIP30に対する応答として、
図9に示す第4のIPパケットIP40が返信されることになる。
図5に示すように、中継サーバ装置300は、このような第4のIPパケットIP40をネットワークNを介して受信し、次のような処理を行う。
【0117】
まず、中継サーバ用暗号化処理部330は、この第4のIPパケットIP40を受信し、その少なくとも一部を暗号化して返信用暗号データC50を作成する。実際には、IPヘッダ部Hi40には、送信元IPアドレスHi40aやあて先IPアドレスHi40bが格納されているので、基本的には、暗号化の対象は、IPデータ部Di40ということになる。なお、TCPヘッダ部Ht40内のデータ(たとえば、ポート番号など)を参照したり、書き換えたりする必要がある場合は、TCPデータ部Dt40のみを暗号化の対象とすればよい。もちろん、TCPデータ部Dt40の一部分のみを暗号化の対象としてもよい。このような暗号化処理により、第4のIPパケットIP40は、返信用暗号データC50に変換される。
【0118】
要するに、中継サーバ用暗号化処理部330は、
図9に示すようなIPヘッダ部Hi40とIPデータ部Di40とを含む第4のIPパケットIP40を受信し、受信した第4のIPパケットIP40のデータ部Di40の全部もしくは一部を暗号化して返信用暗号データC50を作成する処理を行うことになる。
【0119】
パケット返信部340は、中継サーバ装置300を送信元とし、クライアント装置400をあて先として、上記返信用暗号データC50をデータ部に含む第5のIPパケットIP50を作成して送信する機能を有する。
図10は、こうして作成された第5のIPパケットIP50の構造の一例を示すブロック図である。
図10の上段に示すとおり、第5のIPパケットIP50は、IPヘッダ部Hi50とIPデータ部Di50とを含んでいる。一方、
図10の下段には、中継サーバ用暗号化処理部330による暗号化処理が示されている。上述したように、中継サーバ用暗号化処理部330は、第4のIPパケットIP40のIPデータ部Di40の全部もしくは一部(たとえば、TCPデータ部Dt40)を暗号化したデータとして返信用暗号データC50を作成する。第5のIPパケットIP50のIPデータ部Di50には、こうして作成された返信用暗号データC50がそのまま格納される。
【0120】
要するに、パケット返信部340は、
図10に示すように、IPヘッダ部Hi50とIPデータ部Di50とを含む第5のIPパケットIP50を作成する処理を行い、IPデータ部Di50には、返信用暗号データC50を格納するカプセル化処理を行い、IPヘッダ部Hi50には、中継サーバ装置300のアドレスを示す送信元IPアドレスHi50aと、クライアント装置400のアドレスを示すあて先IPアドレスHi50bと、を格納する処理を行うことになる。
【0121】
この処理は、いわば、
図9に示す第4のIPパケットIP40を、暗号化した状態で、第5のIPパケットIP50内にカプセル化する処理と言うことができる。ここで、
図4に示す例において、クライアント装置401から対象サーバ装置100に対してHTTPリクエストを送信し、これに対するHTTPレスポンスが返信されてきた場合、第5のIPパケットIP50内のIPヘッダ部Hi50には、送信元IPアドレスHi50aとして、中継サーバ装置300のIPアドレス「zz.7.1.1」が書き込まれ、あて先IPアドレスHi50bとして、クライアント装置401のIPアドレス「xx.5.1.1」が書き込まれる。
【0122】
なお、パケット返信部340は、第5のIPパケットIP50を作成する際に、返信先となるクライアント装置401のIPアドレス「xx.5.1.1」をあて先IPアドレスHi50bとしてIPヘッダ部Hi50に書き込む必要があるので、このクライアント装置401のIPアドレス「xx.5.1.1」を何らかの方法で入手する必要がある。別言すれば、
図9に示す第4のIPパケットIP40のIPヘッダ部Hi40には、送信元IPアドレスHi40aとして対象サーバ装置100のアドレス「yy.5.1.1」が格納され、あて先IPアドレスHi40bとして中継サーバ装置300のアドレス「zz.7.1.1」が格納されているだけであり、第5のIPパケットIP50の返信先であるクライアント装置401のアドレス「xx.5.1.1」は格納されていない。したがって、パケット返信部340は、返信先となるクライアント装置を何らかの方法で特定し、そのアドレスを入手する必要がある。説明の便宜上、この返信先となるクライアント装置の特定方法については、後述する§4-2で述べることにする。
【0123】
結局、パケット返信部340は、第5のIPパケットIP50として、IPヘッダ部Hi50とIPデータ部Di50とを含むIPパケットを作成する処理を行い、IPデータ部Di50に、返信用暗号データC50を格納することによりカプセル化処理を行い、第5のIPパケットIP50をTCP/IPのプロトコルに従って送信する処理を行うことになる。
【0124】
こうして返信された第5のIPパケットIP50は、ネットワークNを介して、あて先となるクライアント装置400に到達する。
図5では、中継サーバ装置300からクライアント装置400に至る第5のIPパケットIP50の通信経路が白抜矢印で示されているが、これは、当該通信経路が暗号化通信経路になっていることを示す。したがって、この白抜矢印で示す通信経路上に無線通信路が介在していたために盗聴が行われたとしても、情報漏洩の危険性は排除できる。
【0125】
続いて、この第5のIPパケットIP50を受信したクライアント装置400内の処理を、関連する構成要素の機能とともに説明する。
【0126】
まず、クライアント用復号処理部440は、第5のIPパケットIP50を受信し、そのIPデータ部Di50に含まれている返信用暗号データC50を復号して、
図9に示す第4のIPパケットIP40を復元する処理を行う。もちろん、クライアント用復号処理部440による復号処理は、中継サーバ用暗号化処理部330で行われた暗号化処理を踏まえて実行される。具体的には、クライアント用復号処理部440は、第5のIPパケットIP50の送信元である中継サーバ装置300を、送信元IPアドレスHi50aに基づいて特定することができるので、中継サーバ用暗号化処理部330で行われた暗号化処理のアルゴリズムとは逆の復号アルゴリズムを、暗号化に用いられた暗号化キーに応じた復号キーを用いて実行することにより、返信用暗号データC50を第4のIPパケットIP40に変換する処理を行うことができる。
【0127】
一方、パケット受信部450は、クライアント用復号処理部440によって復元された第4のIPパケットIP40のあて先を、中継サーバ装置300からクライアント装置400に変更することにより第6のIPパケットIP60を作成する機能を有する。
【0128】
図11は、こうして作成された第6のIPパケットIP60の構造の一例を示すブロック図である。図示のとおり、第6のIPパケットIP60は、IPヘッダ部Hi60とIPデータ部Di60とを含んでいる。パケット受信部450は、第6のIPパケットIP60のIPデータ部Di60に、復元された第4のIPパケットIP40(
図9参照)のIPデータ部Di40を格納する。
図11には、IPデータ部Di60に、TCPパケットTCP60が格納されている状態が示されているが、実は、このTCPパケットTCP60は、
図9に示すTCPパケットTCP40と同じものである。
【0129】
従って、
図11に示されているTCPヘッダ部Ht60は、
図9に示されているTCPヘッダ部Ht40と同じものであり、
図11に示されているTCPデータ部Dt60は、
図9に示されているTCPデータ部Dt40と同じものである。よって、このTCPデータ部Dt60には、返信データR(この例の場合、HTTPレスポンス)が格納されている。同様に、
図11に示されている送信元ポート番号Ht60aおよびあて先ポート番号Ht60bは、
図9に示されている送信元ポート番号Ht40aおよびあて先ポート番号Ht40bと同じものである。
【0130】
これに対して、
図11に示す第6のIPパケットIP60のIPヘッダ部Hi60の内容は、
図9に示す第4のIPパケットIP40のIPヘッダ部Hi40の内容とは若干異なっており、送信元IPアドレスHi60aとしては、対象サーバ装置100のアドレスが格納されており、あて先IPアドレスHi60bとしては、クライアント装置400のアドレスが格納されている。すなわち、
図9に示す第4のIPパケットIP40のあて先IPアドレスを、中継サーバ装置300からクライアント装置400に変更したものが、
図11に示す第6のIPパケットIP60ということになる。
【0131】
たとえば、
図4に示す例において、クライアント装置401から対象サーバ装置100に対してHTTPリクエストを送信し、これに対するHTTPレスポンスが返信されてきた場合、第6のIPパケットIP60のIPヘッダ部Hi60には、送信元IPアドレスHi60aとして、対象サーバ装置100のIPアドレス「yy.6.1.1」が書き込まれ、あて先IPアドレスHi60bとして、クライアント装置401のIPアドレス「xx.5.1.1」が書き込まれる。
【0132】
結局、パケット受信部450は、第6のIPパケットIP60として、IPヘッダ部Hi60とIPデータ部Di60とを含むIPパケットを作成する処理を行い、IPデータ部Di60に、復元された第4のIPパケットIP40に含まれていた返信データR(この例では、HTTPレスポンス)を格納する処理を行うことになる。
【0133】
最後に、通信制御部430が、この第6のIPパケットIP60のデータ部Di60に含まれている返信データR(この例では、HTTPレスポンス)を取り出す処理を行う。かくして、送信データS(HTTPリクエスト)に応じた返信データR(HTTPレスポンス)が得られることになる。この返信データR(HTTPレスポンス)は、たとえば、Webブラウザプログラムによって利用され、ディスプレイ画面上にWebページの表示が行われる。
【0134】
<<< §4. 中継サーバ装置の処理機能についての補足説明 >>>
上述した§3では、
図5を参照しながら、本発明の基本的な実施形態に係るパケット通信システムの基本構成およびIPパケットの流れを説明した。ここでは、§3で述べた中継サーバ装置300の処理機能について、若干の補足説明を行うことにする。
【0135】
<4-1. 受信したパケットの選別>
図5に示すとおり、中継サーバ装置300には、クライアント装置400から送信されてきた第2のIPパケットIP20と、対象サーバ装置100から送信されてきた第4のIPパケットIP40と、の2通りのIPパケットが届くことになる。そして、§3で説明したように、前者は、中継サーバ用復号処理部320によって処理され、後者は、中継サーバ用暗号化処理部330によって処理される。したがって、実際には、中継サーバ装置300に届いたIPパケットが、第2のIPパケットIP20なのか、第4のIPパケットIP40なのかを判断し、前者であれば中継サーバ用復号処理部320による処理対象とし、後者であれば中継サーバ用暗号化処理部330の処理対象とする選別処理が必要となる。そのような選別処理を行うための方法としては、いくつかの方法が考えられる。
【0136】
(1) たとえば、第1の方法として、パケット送信部410において、第2のIPパケットIP20に対して何らかのマーキングを行う方法を採ることができる。
図7に示すとおり、第2のIPパケットIP20は、IPヘッダ部Hi20を含んでおり、ここには、図示されている送信元IPアドレスHi20aやあて先IPアドレスHi20bの他にも、様々な情報を格納しておくことができる。そこで、パケット送信部410が、第2のIPパケットIP20を作成する際に、IPヘッダ部Hi20の特定箇所に、「当該IPパケットが第2のIPパケットIP20である」ことを示すパケット識別コードを書き込むようにすればよい。
【0137】
この第1の方法を採る場合、外部からのIPパケットを受け取った中継サーバ装置300は、まず、IPヘッダ部の上記特定箇所に、上記パケット識別コードが書き込まれているか否かを判断する。そして、パケット識別コードが書き込まれていた場合には、届いたIPパケットを第2のIPパケットIP20であると判断し、中継サーバ用復号処理部320の処理対象とし、パケット識別コードが書き込まれていなかった場合には、届いたIPパケットを第4のIPパケットIP40であると判断し、中継サーバ用暗号化処理部330の処理対象とすればよい。
【0138】
(2) あるいは、第2の方法として、外部からのIPパケットを受け取った中継サーバ装置300は、とりあえず、これを第2のIPパケットIP20であると仮定し、中継サーバ用復号処理部320で復号処理を試行し、復号されたパケットのデータ構造に異常がなければ、当該IPパケットを第2のIPパケットIP20であると判断して処理を続けるようにし、異常が認められた場合には、当該IPパケットを第4のIPパケットIP40であると判断して、中継サーバ用暗号化処理部330の処理対象とする方法を採ることができる。
【0139】
図7に示すように、第2のIPパケットIP20のIPデータ部Di20には、送信用暗号データC20がカプセル化されており、この部分を復号すると、第1のIPパケットIP10が復元されるはずである。そして、この復元された第1のIPパケットIP10は、IPパケットとして定められた正規のデータ構造を有しているはずである。したがって、中継サーバ用復号処理部320で復号処理を試行した結果、このような正規のデータ構造を有するIPパケットが復元されなかった場合は、復号処理の対象となったIPパケットは、第2のIPパケットIP20ではなく、第4のIPパケットIP40であると判断することができる。
【0140】
(3) また、第3の方法として、中継サーバ装置300に、2通りのIPアドレスを設定する方法を採ることも可能である。
図4に示す実施例は、中継サーバ装置300に単一のグローバルIPアドレス「zz.7.1.1」を設定した例であるが、2通りのIPアドレスを設定し、一方をクライアント装置400に対する送受信窓口として用い、他方を対象サーバ装置100に対する送受信窓口として用いるようにすれば、いずれの送受信窓口に届いたIPパケットであるかを認識することにより、第2のIPパケットIP20と第4のIPパケットIP40との選別が可能である。
【0141】
たとえば、クライアント装置400に対する送受信窓口としてIPアドレス「zz.7.1.1」を用い、対象サーバ装置100に対する送受信窓口としてIPアドレス「zz.8.1.1」を用いるようにした場合を考えてみよう。この場合、クライアント装置400のパケット送信部410は、IPアドレス「zz.7.1.1」宛に第2のIPパケットIP20を送信することになり、中継サーバ装置300のパケット返信部340は、IPアドレス「zz.7.1.1」を送信元として第5のIPパケットIP50を返信することになる。一方、中継サーバ装置300のパケット転送部310は、IPアドレス「zz.8.1.1」を送信元として第3のIPパケットIP30を送信することになるので、対象サーバ装置100からは、IPアドレス「zz.8.1.1」宛に第4のIPパケットが返信されてくることになる。
【0142】
したがって、中継サーバ装置300では、IPアドレス「zz.7.1.1」宛にIPパケットが届いた場合には、これを第2のIPパケットIP20と判断して中継サーバ用復号処理部320の処理対象とし、IPアドレス「zz.8.1.1」宛にIPパケットが届いた場合には、これを第4のIPパケットIP40と判断して中継サーバ用暗号化処理部330の処理対象とすればよい。
【0143】
以上、中継サーバ装置300に届いたIPパケットが、第2のIPパケットIP20なのか、第4のIPパケットIP40なのかを選別する方法の例として、3つの方法を述べたが、もちろん、本発明は、これら3つの方法に限定されるものではなく、この他にも任意の選別方法を採用することができる。
【0144】
<4-2. 返信先となるクライアント装置の特定方法>
§3-3で説明したとおり、中継サーバ装置300内のパケット返信部340は、
図10に例示するような第5のIPパケットIP50を作成する処理を行う。この第5のIPパケットIP50のIPヘッダ部Hi50には、送信元IPアドレスHi50aとして、中継サーバ装置300自身のIPアドレスが格納されており、あて先IPアドレスHi50bとして、クライアント装置400のIPアドレスが格納されている。したがって、パケット返信部340は、このクライアント装置400のIPアドレスを書き込むために、返信先となるクライアント装置を特定する必要がある。
【0145】
具体的には、
図4に示す実施例の場合、中継サーバ装置300は、5台のクライアント装置401~405から中継依頼のアクセス(第2のIPパケットIP20の送信)を受けることになる。そして、中継サーバ装置300は、この中継依頼の実行によって対象サーバ装置100から得られる返信パケットを、依頼元である特定のクライアント装置に返信(第5のIPパケットIP50の送信)する必要がある。
【0146】
たとえば、
図4に示す実施例において、クライアント装置401(IPアドレス「xx.5.1.1」)からの中継依頼(第2のIPパケットIP20の送信)によって対象サーバ装置100から得られた返信パケットは、第5のIPパケットIP50として、依頼元であるクライアント装置401(IPアドレス「xx.5.1.1」)へ返信する必要がある。したがって、中継サーバ装置300内のパケット返信部340は、返信先となるクライアント装置401のIPアドレス「xx.5.1.1」を、あて先IPアドレスHi50bとして第5のIPパケットIP50内のIPヘッダ部Hi50に書き込む必要がある。
【0147】
ただ、
図9に示すように、第4のIPパケットIP40のIPヘッダ部Hi40には、送信元IPアドレスHi40aとして対象サーバ装置100のアドレス「yy.6.1.1」が格納され、あて先IPアドレスHi40bとして中継サーバ装置300のアドレス「zz.7.1.1」が格納されているだけであり、第5のIPパケットIP50の返信先であるクライアント装置401のアドレス「xx.5.1.1」は格納されていない。したがって、パケット返信部340は、返信先となるクライアント装置を何らかの方法で特定し、そのアドレスを入手する必要がある。以下、パケット返信部340が返信先となるクライアント装置を特定するための具体的な方法をいくつか述べる。
【0148】
(1) 第1の方法は、1台のクライアント装置に1台の中継サーバ装置を割り当て、1対1に対応させた運用を行う方法である。
図4に示す実施例では、1台の中継サーバ装置300が、5台のクライアント装置401~405を受け持っているため、パケット返信部340は、返信先となるクライアント装置が5台のうちのどれかを特定する必要がある。これに対して、5台の中継サーバ装置301~305を設けるようにし、それぞれがクライアント装置401~405のいずれか1台をを受け持つようにすれば、各中継サーバ装置301~305は、常に、受け持ちの1台のクライアント装置からの中継依頼を受けることになるので、パケット返信部340は、常に、受け持ちの1台のクライアント装置に対して第5のIPパケットIP50を返信すればよいことになる。
【0149】
要するに、この第1の方法では、複数n台のクライアント装置400とこれらn台のクライアント装置400のそれぞれに対応づけられたn台の中継サーバ装置300とを設け、各クライアント装置400のパケット送信部410は、それぞれ対応づけられた特定の中継サーバ装置300宛に第2のIPパケットIP20を送信し、各中継サーバ装置300のパケット返信部340は、それぞれ対応づけられた特定のクライアント装置400宛に第5のIPパケットIP50を送信するようにすればよい。
【0150】
なお、実用上は、複数n台の中継サーバ装置300として、それぞれハードウェアとして別個独立したサーバ装置を設置する必要はなく、組み込むソフトウェアによって、ハードウェア的には1台のサーバ装置を、複数n台の中継サーバ装置300として機能させるようにすれば十分である。たとえば、ハードウェア的には1台のサーバ装置に、5つのIPアドレス「zz.7.1.1」~「zz.7.1.5」を設定すれば、当該1台のサーバ装置を、本発明における5台の中継サーバ装置300として機能させることができる。もちろん、この5台の中継サーバ装置300については、パケット転送部310、中継サーバ用復号処理部320、中継サーバ用暗号化処理部330、パケット返信部340を共通して利用することが可能であり、ハードウェア的には1台のサーバ装置に、上記各構成要素としての機能を実行する共通プログラムをインストールすれば足りる。
【0151】
(2) 第2の方法は、対象サーバ装置100に送信する第3のIPパケットIP30に、中継依頼を行った依頼元のクライアント装置を示す情報を埋め込む方法である。この方法を採る場合は、まず、パケット転送部310が、復元された第1のIPパケットIP10の送信元(中継依頼を行った依頼元のクライアント装置)を示す情報を、第3のIPパケットIP30に埋め込む処理を行うようにする。そして、中継サーバ用暗号化処理部330が、受信した第4のIPパケットIP40に埋め込まれていた上記送信元を示す情報を読み出してパケット返信部340に伝達する処理を行うようにし、パケット返信部340が、上記送信元を示す情報をあて先となるクライアント装置400とする第5のIPパケットIP50を作成するようにすればよい。
【0152】
もっとも、この第2の方法を採る場合は、第3のIPパケットIP30に埋め込まれた情報が、そのまま第4のIPパケットIP40にも埋め込まれた状態で、対象サーバ装置100から戻ってくることが前提となる。そのためには、たとえば、上記送信元を示す情報を、TCPパケット内のポート番号として埋め込むようにすればよい。
【0153】
これまで述べてきた実施例では、パケット転送部310は、
図8に示すように、TCP/IPのプロトコルに従った第3のIPパケットIP30を作成する。そこで、その際に、パケット転送部310が、第3のIPパケットIP30に含まれるTCPヘッダ部Ht30内に、送信元ポート番号Ht30aとして第1のIPパケットIP10の送信元を示す情報を埋め込む処理を行うようにすればよい。そうすれば、対象サーバ装置100から返信されてくる第4のIPパケットIP40には、埋め込んだ情報があて先ポート番号Ht40bとして含まれることになる。
【0154】
すなわち、
図8に示す第3のIPパケットIP30を受信した対象サーバ装置100は、
図9に示す第4のIPパケットIP40を返信することになるが、その際に、第3のIPパケットIP30内の送信元IPアドレスHi30aを、第4のIPパケットIP40内のあて先IPアドレスHi40bとし、第3のIPパケットIP30に含まれるTCPパケットTCP30内の送信元ポート番号Ht30aを、第4のIPパケットIP40に含まれるTCPパケットTCP40内のあて先ポート番号Ht40bとする処理が行われる。したがって、必要な情報を、第3のIPパケットIP30内に送信元ポート番号Ht30aとして書き込んでおけば、当該情報は、第4のIPパケットIP40内のあて先ポート番号Ht40bとして読み出すことが可能になる。
【0155】
そこで、パケット返信部340は、第4のIPパケットIP40に含まれるTCPヘッダ部Ht40内に、あて先ポート番号Ht40bとして埋め込まれていた情報(中継依頼を行った依頼元のクライアント装置を示す情報)に基づいて、第5のIPパケットIP50の送信先を決定することができる。
【0156】
(3) 第3の方法は、中継依頼を行った依頼元のクライアント装置と、第3のIPパケットとの対応関係を、中継サーバ装置300内に記録しておく方法である。
図12は、この第3の方法を採用した本発明の変形例に係るパケット通信システムの構成を示すブロック図である。
図5に示す基本的な実施形態と
図12に示す変形例との相違は、前者の中継サーバ装置300が、後者では中継サーバ装置300′に置き換えられている点だけである。ここで、
図12に示す中継サーバ装置300′は、
図5に示す中継サーバ装置300におけるパケット転送部310をパケット転送部310′に置き換え、パケット返信部340をパケット返信部340′に置き換え、更に、新たな構成要素として、通信情報記録部350を付加したものである。この通信情報記録部350は、中継依頼を行った依頼元のクライアント装置と、第3のIPパケットとの対応関係を記録しておく機能を果たす。
【0157】
中継サーバ装置300′のパケット転送部310′は、基本的な実施形態に係る中継サーバ装置300のパケット転送部310の機能に加えて、更に、第3のIPパケットIP30を送信する際に、復元された第1のIPパケットIP10の送信元を示す情報と、当該第3のIPパケットIP30との対応関係を示す対応関係情報を通信情報記録部350に記録する処理を行う。一方、中継サーバ装置300′のパケット返信部340′は、基本的な実施形態に係る中継サーバ装置300のパケット返信部340の機能に加えて、更に、第5のIPパケットIP50を送信する際に、通信情報記録部350に記録されている対応関係情報に基づいて、第5のIPパケットIP50の送信先を決定する処理を行う。
【0158】
もっとも、この第3の方法を採る場合は、第4のIPパケットIP40内に第3のIPパケットIP30との対応を示す情報が残されていることが前提となる。すなわち、通信情報記録部350には、パケット転送部310′が第3のIPパケットIP30を送信する際に、第1のIPパケットIP10の送信元を示す情報と、第3のIPパケットIP30との対応関係を示す対応関係情報が記録されているので、パケット返信部340′が、この通信情報記録部350に記録されている対応関係情報に基づいて、第5のIPパケットIP50の送信先(すなわち、第1のIPパケットIP10の送信元)を決定するためには、第5のIPパケットIP50の元になる第4のIPパケットIP40内に、第3のIPパケットIP30を特定するための情報が含まれている必要がある。
【0159】
そのためには、たとえば、第3のIPパケットIP30を特定するための情報を、TCPパケット内のポート番号として埋め込むようにすればよい。具体的には、パケット転送部310′が、TCP/IPのプロトコルに従って、
図8に示すような第3のIPパケットIP30を作成する際に、当該第3のIPパケットIP30に含まれるTCPヘッダ部Ht30内に、当該第3のIPパケットIP30を示すためのパケット識別子をポート番号として埋め込み、当該パケット識別子と復元された第1のIPパケットIP10の送信元を示す情報との対応関係を対応関係情報として通信情報記録部350に記録する処理を行えばよい。
【0160】
たとえば、
図4に示す実施例において、クライアント装置401(IPアドレス「xx.5.1.1」)からの中継依頼として、第2のIPパケットIP20が送信され、パケット転送部310′が、この第2のIPパケットIP20に基づいて、
図8に示すような第3のIPパケットIP30を作成したものとしよう。このとき、パケット転送部310′は、TCPヘッダ部Ht30内に、当該第3のIPパケットIP30を示すためのパケット識別子(たとえば、「1234」なるデータ)をポート番号として埋め込む処理をする(送信元ポート番号Ht30aとして埋め込んでもよいし、あて先ポート番号Ht30bとして埋め込んでもよい)。
【0161】
そして、パケット転送部310′は、当該パケット識別子(たとえば、「1234」なるデータ)と復元された第1のIPパケットIP10の送信元を示す情報(上例の場合、たとえば、クライアント装置401のIPアドレス「xx.5.1.1」)との対応関係を、対応関係情報として通信情報記録部350に記録する。具体的には、上例の場合、通信情報記録部350には、「1234:xx.5.1.1」なる対応関係情報が記録されることになる。
【0162】
上記プロセスで作成された第3のIPパケットIP30が対象サーバ装置100に送信されると、これに応じて、
図9に示すような第4のIPパケットIP40が返信されてくる。前述したように、対象サーバ装置100では、第3のIPパケットIP30内の送信元ポート番号Ht30aを、第4のIPパケットIP40内のあて先ポート番号Ht40bとし、第3のIPパケットIP30内の送信元ポート番号Ht30aを、第4のIPパケットIP40内のあて先ポート番号Ht40bとする処理が行われる。したがって、パケット転送部310′が第3のIPパケットIP30内のTCPヘッダ部Ht30内にポート番号として埋め込んだパケット識別子(上例の場合「1234」)は、第4のIPパケットIP40内のTCPヘッダ部Ht40内にポート番号として残存していることになる。
【0163】
そこで、パケット返信部340′は、第4のIPパケットIP40に含まれるTCPヘッダ部Ht40内にポート番号として埋め込まれていたパケット識別子(上例の場合「1234」)を利用して、通信情報記録部350に記録されている対応関係情報を参照することにより、第1のIPパケットIP10の送信元に対して、第5のIPパケットIP50を送信することができる。すなわち、上例の場合、パケット返信部340′は、通信情報記録部350に対して、パケット識別子「1234」を用いた検索を行うことにより、「1234:xx.5.1.1」なる対応関係情報を取得することができるので、第5のIPパケットIP50のIPヘッダ部Hi50のあて先IPアドレスとして、クライアント装置401のIPアドレス「xx.5.1.1」を書き込むことができる。
【0164】
以上、パケット返信部340′が返信先となるクライアント装置を特定するための具体的な方法の例として、3つの方法を述べたが、もちろん、本発明は、これら3つの方法に限定されるものではなく、この他にも任意の特定方法を採用することができる。
【0165】
<<< §5. 2つの国の領域を跨いだ設置例 >>>
ここでは、本発明に係るパケット通信システムを、2つの国の領域を跨いで設置した変形例を示すとともに、当該変形例に基づいて得られる付加的な効果を説明する。
【0166】
図13は、本発明に係るパケット通信システムを2つの国の領域を跨いで設置した変形例を示すブロック図である。この変形例に係るパケット通信システムは、1台の中継サーバ装置300と、4台のクライアント装置401~404と、によって構成され、アクセスの対象となる対象サーバ装置100に対してネットワークNを介して接続し、パケット通信を行う機能を有している。ここで中継サーバ装置300および各クライアント装置401~404の構成および機能は、これまで述べてきた実施例と全く同様である。
【0167】
この変形例の特徴は、2台のクライアント装置401,402および中継サーバ装置300が、対象サーバ装置100と同一のA国の領域内に設置されているのに対して、2台のクライアント装置403,404が、対象サーバ装置100の設置領域とは異なるB国の領域内に設置されている点である。
【0168】
要するに、
図13に示す変形例の場合、中継サーバ装置300が第1国Aの領域内に設置されており、クライアント装置403,404が第2国Bの領域内に設置されている。このような設置状態において、クライアント装置403,404が、第1国Aの領域内に設置されている対象サーバ装置100に対してアクセスを行う際には、第1国Aの領域内に設置されて中継サーバ装置300による中継を介してアクセスを行うことになる。この変形例における具体的なアクセスのプロセスは、既に§3で述べたとおりである。また、このパケット通信システムを利用すれば、アクセス元の匿名性、覆面性を確保するとともに、通信経路における情報漏洩を防ぐことができるようになり、個人情報に関するセキュリティが向上するという特有の効果が得られる点も既に述べたとおりである。
【0169】
ただ、この変形例によれば、国外からのアクセスを拒否しているWebサイト等への外国からのアクセスを可能にする、という付加的な効果が得られる。以下、この付加的な効果について説明しよう。
【0170】
図13に示す例では、A国の領域に設置されたクライアント装置401,402は、「xxxx@xxx.ne.aa」なるドメイン名が付された無線ルータRaを介してインターネットNに接続されており、B国の領域に設置されたクライアント装置403,403は、「gggg@ggg.ne.bb」なるドメイン名が付された無線ルータRbを介してインターネットNに接続されている。また、対象サーバ装置100には、「yyyy@yyy.co.aa」なるドメイン名が付され、中継サーバ装置300には、「zzzz@zzz.ne.aa」なるドメイン名が付されている。これらの各ドメイン名は、DNSを利用することにより、特定のグローバルIPアドレス(図示省略)に変換される。
【0171】
ここで、各ドメイン名の末尾「aa」および「bb」は、各装置が設置されている国を示すトップレベルドメインであり、末尾「aa」のドメイン名が付された装置はA国の領域内に設置されていることを示し、末尾「bb」のドメイン名が付された装置はB国の領域内に設置されていることを示している。インターネットNを介したホスト間のアクセスは、基本的には自由であるが、セキュリテイ上の理由や、政治的・経済的な事情により、外国からのアクセスを制限するサイトも少なくない。
【0172】
たとえば、
図13に示す例において、対象サーバ装置100の運営者が、外国からのアクセスを制限する運用を行っており、対象サーバ装置100にそのような設定がなされていると、末尾「aa」のドメイン名が付されたホストからのアクセスは認容されるが、それ以外のドメイン名が付されたホストからのアクセスは拒絶されてしまう。具体的には、クライアント装置401,402は、対象サーバ装置100にアクセスすることは可能であるが、クライアント装置403,404は、対象サーバ装置100にアクセスすることができなくなる。
【0173】
このような場合であっても、本発明に係るパケット通信システムを利用すれば、クライアント装置403,404から対象サーバ装置100へのアクセスが可能になる。すなわち、クライアント装置403,404から無線ルータRbを介して直接的に対象サーバ装置100にアクセスした場合、アクセス元が末尾「bb」のドメイン名が付された外国のホストであることが確認されてしまうため、当該アクセスは拒絶される。しかしながら、本発明に係るパケット通信システムを利用した場合、クライアント装置403,404から無線ルータRbを介して対象サーバ装置100にアクセスしようとすると、実際には、当該アクセスは中継サーバ装置300により中継されることになるので、対象サーバ装置100に対する直接的なアクセス元は、末尾「aa」のドメイン名が付されたA国内のホストということになり、当該アクセスは認容される。
【0174】
このように、本発明に係るパケット通信システムを、2つの国の領域を跨いで設置すると、上例のように、国外からのアクセスを拒否しているWebサイト等への外国からのアクセスを可能にする、という付加的な効果が得られることになる。
【0175】
<<< §6. その他の変形例 >>>
最後に、これまで述べてきた基本的な実施形態やその変形例に加えて、更なる変形例の態様を記載しておく。
【0176】
(1) これまで述べてきた実施例では、いずれもTCP/IPプロトコルを用いた通信を前提としていたが、本発明を実施する上では、UDP/IPプロトコルなど、様々な通信プロトコルを利用することが可能である。
【0177】
(2) これまで述べてきた実施例では、対象サーバ装置100として、Webサーバを用いているが、本発明を実施する上で、対象サーバ装置100はWebサーバに限定されるものではなく、メールサーバやデータサーバなどを利用することも可能である。要するに、本発明に係るパケット通信システムは、クライアント・サーバ間通信を行う場合に広く適用可能である。
【0178】
(3) これまで述べてきた実施例では、単一のIPパケットの送受を行うプロセスを説明してきたが、単一のIPパケットに収容可能なデータ容量には制限があり、実際には、1つのデータを複数のIPパケットに分割して送信するケースも少なくない。たとえば、Webページを表示するためにWebサーバに対して送信するHTTPリクエストは、通常、単一のIPパケットに収容することが可能であるが、これに応じてWebサーバから返信されるHTTPレスポンスは、画像データなども含まれているため、複数のIPパケットに分割されることが多い。この場合、送信データS(HTTPリクエスト)として単一のIPパケットを送信すると、返信データR(HTTPレスポンス)として複数のIPパケットが返信されることになるが、個々のIPパケットの基本的な処理プロセスに変わりはない。
【0179】
(4) 対象サーバ装置100によっては、SSLの暗号通信などのセキュアな通信を行う設定がなされている場合もあり、その場合は、当該セキュアな通信を確保するために、送信データSや返信データRに対して暗号化が行われることになる。この場合、クライアント用暗号化処理部420や中継サーバ用暗号化処理部330による二重の暗号化を行ってもよいし、これらの処理部420,330による暗号化を省略するようにしてもよい。
【0180】
(5)
図4に示す基本的な実施形態の場合、ルータR1によって構築されたサブネットにクライアント装置402,403が接続され、無線ルータR2によって構築されたサブネットにクライアント装置404,405が接続されている。そして、対象サーバ装置100は、これらサブネット外に接続されている。このような場合、これまで述べてきたとおりの運用を行えばよいが、対象サーバ装置が同一のサブネット内に接続されたサーバ装置であった場合、当該サーバ装置宛ての送信データSや、これに応じた返信データRについては、本発明に固有の暗号化処理や中継サーバ装置300を介した中継処理を行わないようにすることも可能である。
【0181】
たとえば、
図4に示す実施例において、ルータR1によって構築されたサブネットに、プリンタサーバ109が接続されており、クライアント装置402から上記プリンタサーバ109にアクセスする場合を考えてみる。この場合、アクセス元のクライアント装置402とアクセス先のプリンタサーバ109は、同一のサブネットに所属しているため、アクセス元の匿名性、覆面性を確保したり、通信経路における情報漏洩を防止する対策をとったりする必要性は低く、データの暗号化を行ったり、中継サーバ装置300による中継を行ったりする必要性に乏しい。
【0182】
そこで、クライアント装置が同一のサブネットに所属する対象サーバ装置にアクセスする場合には、本発明に固有の通信プロセスを実行せず、通常の通信プロセスを行うようにしてもかまわない。具体的には、
図5に示すクライアント装置400内の通信制御部430に、アクセスの対象となる対象サーバ装置が、同一のサブネットに所属しているか否かを判定する機能をもたせ、同一のサブネットに所属していた場合には、クライアント用暗号化処理部420やパケット送信部410を通さずに、第1のIPパケットをそのままサブネットに送信する機能をもたせておけばよい。また、クライアント装置400に同一のサブネットに所属する対象サーバ装置からの返信があった場合には、クライアント用復号処理部440やパケット受信部450を通さずに、返信されてきたIPパケットを通信制御部430が直接受信するようにしておけばよい。
【0183】
(6) 本発明に係るパケット通信システムは、別な発明に係るシステムと併用して導入することが可能である。たとえば、本願出願人は、本発明に関連する別発明として、国際公開第WO2017/145984号にネットワーク通信システムの発明を開示している。本発明に係るパケット通信システムは、前記別発明に係るネットワーク通信システムと併用して導入することが可能である。この場合、ネットワークNには、本発明に係る中継サーバ装置300と、前記別発明に係る接続仲介装置とが併設されることになるが、これらの装置は、ハードウェア的には単一のサーバ装置によって構成することができる。
【産業上の利用可能性】
【0184】
本発明に係るパケット通信システムは、パソコン、携帯電話、タブレット型端末など、ネットワークを介して所望のサーバ装置に接続可能な様々クライアント装置が利用されている状態において、任意のサーバ装置に対するセキュアな通信環境を提供するものであり、産業上、十分な利用可能性を有している。
【符号の説明】
【0185】
100:対象サーバ装置(Webサーバ等)
200:クライアント装置
201~205:クライアント装置
300,300′:中継サーバ装置
310,310′:パケット転送部
320:中継サーバ用復号処理部
330:中継サーバ用暗号化処理部
340,340′:パケット返信部
350:通信情報記録部
400:クライアント装置
401~405:クライアント装置
410:パケット送信部
420:クライアント用暗号化処理部
430:通信制御部
440:クライアント用復号処理部
450:パケット受信部
C20:送信用暗号データ
C50:返信用暗号データ
Dt1,Dt2:TCPデータ部
Di1,Di2:IPデータ部
Ht1~Ht60:TCPヘッダ部
Ht1a~Ht60a:送信元ポート番号
Ht1b~Ht60b:あて元ポート番号
Hi1~Hi60:IPヘッダ部
Hi1a~Hi60a:送信元IPアドレス
Hi1b~Hi60b:あて元IPアドレス
IP1,IP2:IPパケット
IP10:第1のIPパケット
IP20:第2のIPパケット
IP30:第3のIPパケット
IP40:第4のIPパケット
IP50:第5のIPパケット
IP60:第6のIPパケット
N:ネットワーク(インターネット)
P1,P2:ポート番号
R:返信データ(HTTPレスポンス)
R1:ルータ
R2,Ra,Rb:無線ルータ
S:送信データ(HTTPリクエスト)
TCP1,TCP2:TCPパケット