(57)【要約】クライアント装置は送出パケットを傍受するよう構成される。送出パケットは送信先ネットワークアドレスを含む。クライアント装置は暗号化鍵を用いて送出パケットを暗号化して暗号化パケットを生成し、ルーティングサーバの一意の識別子によって定義されるパターンロジックに従って暗号化鍵を暗号化パケット内に分散し、分散された暗号化鍵を含む暗号化パケットをルーティングサーバへ送信するよう更に構成される。ルーティングサーバは分散された暗号化鍵を含む暗号化パケットを受信し、一意の識別子によって定義されるパターンロジックを用いて暗号化パケットから暗号化鍵を抽出し、暗号化鍵を用いて暗号化パケットを復号して送信先ネットワークアドレスを含む送出パケットを取得し、送出パケットを送信先ネットワークアドレスへ送信するように構成される。【選択図】図１
2016510196.tif 000002
【特許請求の範囲】
【請求項１】
ネットワーク上で通信するシステムであって、
送信先ネットワークアドレスを含む送出パケットを傍受するように構成されるクライアント装置であって、暗号化鍵を用いて前記送出パケットを暗号化して暗号化パケットを生成し、ルーティングサーバの一意の識別子によって定義されるパターンロジックに従って前記暗号化鍵を前記暗号化パケットへと分散させ、前記分散された暗号化鍵を含む前記暗号化パケットを前記ルーティングサーバへ送信するように更に構成される、クライアント装置と、
前記分散された暗号化鍵を含む前記暗号化パケットを受信し、前記一意の識別子によって定義される前記パターンロジックを用いて前記暗号化パケットから前記暗号化鍵を抽出し、前記暗号化鍵を用いて前記暗号化パケットを復号して前記送信先ネットワークアドレスを含む前記送出パケットを得て、前記送出パケットを前記送信先ネットワークアドレスへ送信するように構成されるルーティングサーバと、を含む、システム。
【請求項２】
請求項１に記載のシステムであって、前記クライアント装置は、前記暗号化パケットとそれに内包される分散された暗号化鍵とを前記ルーティングサーバへの送信に先立って圧縮するように更に構成され、
前記ルーティングサーバは、前記暗号化パケットとそれに内包される分散された暗号化鍵とを展開するように構成される、システム。
【請求項３】
請求項１に記載のシステムであって、
前記ルーティングサーバは、前記送信先ネットワークアドレスから、前記送出パケットへの応答として応答パケットを受信し、前記暗号化鍵を用いて前記応答パケットを暗号化し、前記パターンロジックに従って前記暗号化鍵を暗号化応答パケットへと分散させ、前記分散された暗号化鍵を含む前記暗号化応答パケットを前記クライアント装置へ送信するように更に構成され、
前記クライアント装置は、前記暗号化応答パケットを受信及び復号するように更に構成される、システム。
【請求項４】
請求項３に記載のシステムであって、前記送信先ネットワークアドレスは、もう１台の前記クライアント装置のアドレスである、システム。
【請求項５】
請求項１に記載のシステムであって、前記クライアント装置は、特定の送出パケット向けに、複数のルーティングサーバのうちの１台をランダムに選択するように更に構成される、システム。
【請求項６】
クライアント装置であって、
それぞれが送信先ネットワークアドレスを含む送出パケットを傍受するように構成されるネットワークインターフェースコントローラと、
前記傍受された送出パケットを受信し、暗号化エンジンを制御して前記送出パケットから新規パケットを生成し、前記新規パケットを１以上のルーティングサーバへ送信するように構成されるローカルプロキシサーバと、
暗号化鍵を用いて前記傍受された送出パケットを暗号化して暗号化パケットを生成し、前記１以上のルーティングサーバの１以上の一意の識別子によって定義されるパターンロジックに従って前記暗号化鍵を前記暗号化パケットへと分散させて前記新規パケットを得るように構成される前記暗号化エンジンと、
を含む、クライアント装置。
【請求項７】
請求項６に記載の装置であって、前記装置は、
前記クライアント装置においてユーザを認証し、
前記ユーザが認証されると、ネットワークアドレスとそれに関連付けられた一意の識別子とを含む複数のノードをサーバから取得し、
前記複数のノードのうち１つを前記１以上のルーティングサーバとして選択する、
ように更に構成される、装置。
【請求項８】
請求項７に記載の装置であって、前記ローカルプロキシサーバは、前記複数のノードを切り替えて、前記１以上のルーティングサーバを選択するように構成される、装置。
【請求項９】
請求項７に記載の装置であって、前記複数のノードのうち前記１つは、ランダムに選択される、装置。
【請求項１０】
請求項６に記載の装置であって、前記暗号化エンジンは、少なくともユーザエントロピーを用いて暗号化鍵を生成するように更に構成される、装置。
【請求項１１】
請求項６に記載の装置であって、前記ローカルプロキシサーバは、それぞれの送信先ネットワークアドレスから応答パケットを受信するまで送出パケットをキープアライブするように更に構成される、装置。
【請求項１２】
ルーティングサーバであって、
１以上のクライアント装置からネットワーク経由で暗号化パケットを受信するように構成されるネットワークインターフェースコントローラと、
暗号化エンジンを制御して前記受信された暗号化パケットを復号し、前記ネットワーク経由で１以上の送信先アドレスへパケットを送信するように構成されるプロトコル非依存のプロキシサーバと、
前記ルーティングサーバの一意の識別子によって定義されるパターンロジックを用いて分散された暗号化鍵を前記受信された暗号化パケットから抽出し、前記暗号化鍵を用いて前記暗号化パケットを復号して、前記１以上の送信先アドレスへ送信する前記パケットを得るように構成される前記暗号化エンジンと、
を含む、ルーティングサーバ。
【請求項１３】
請求項１２に記載のルーティングサーバであって、１以上の前記抽出された暗号化鍵を格納するための１以上のセッション変数を更に含む、ルーティングサーバ。
【請求項１４】
ネットワークに接続されたクライアント装置によって実行される方法であって、
送信先ネットワークアドレスを含む送出パケットを傍受するステップと、
暗号化鍵を用いて前記送信先ネットワークアドレスを含む前記送出パケットを暗号化して暗号化パケットを得るステップと、
ルーティングサーバの一意の識別子によって定義されるパターンロジックに従って前記暗号化鍵を前記暗号化パケットへと分散させて新規パケットを得るステップと、
前記新規パケットを前記ルーティングサーバへ送信するステップと、
を含む、方法。
【請求項１５】
請求項１４に記載の方法であって、前記送信先ネットワークアドレスから応答パケットを受信するまで前記送出パケットをキープアライブするステップを更に含む、方法。
【請求項１６】
請求項１４に記載の方法であって、
前記クライアント装置においてユーザを認証するステップと、
前記ユーザが認証されると、ネットワークアドレスとそれに関連付けられた一意の識別子とを含む複数のノードをサーバから取得するステップと、
前記複数のノードのうち１つを前記１以上のルーティングサーバとして選択するステップと、
を更に含む、方法。
【請求項１７】
請求項１４に記載の方法であって、
複数のノードを切り替えて、前記１以上のルーティングサーバを選択するステップを更に含む、方法。
【請求項１８】
請求項１４に記載の方法であって、
前記暗号化鍵を用いて前記送出パケットを暗号化する前に、
少なくともユーザエントロピーを用いて前記暗号化鍵をランダムに生成するステップと、
前記送出パケットのデータコンテンツに暗号化ハッシュを行うステップと、
前記暗号化鍵を用いて前記送出パケットを暗号化した後で、
前記暗号化パケットに暗号化ハッシュを行うステップと、
前記暗号化パケットを圧縮するステップと、
を含む、方法。
【請求項１９】
請求項１８に記載の方法であって、前記暗号化鍵を前記暗号化パケットへ分散した後で前記新規パケットを圧縮するステップを更に含む、方法。
【請求項２０】
請求項１９に記載の方法であって、前記方法は、複数の送出パケットのうちそれぞれの送出パケットについて別々に行われる、方法。
【請求項２１】
請求項１９に記載の方法であって、前記方法は、複数の送出パケットのうちそれぞれの送出パケットについて、異なる暗号化鍵と、異なる暗号化ハッシュと、異なる一意の識別子とを用いて、別々に行われる、方法。
【請求項２２】
ネットワーク内で機能するルーティングサーバによって行われる方法であって、
暗号化パケットを前記ネットワーク経由でクライアント装置から受信するステップと、
前記ルーティングサーバの一意の識別子によって定義されたパターンロジックを用いて、前記受信された暗号化パケットから暗号化鍵を抽出するステップと、
前記暗号化鍵を用いて前記受信された暗号化パケットを復号して、送信先ネットワークアドレスを含む前記クライアント装置の送出パケットを得るステップと、
前記送出パケットを前記送信先ネットワークアドレスへ送信するステップと、
を含む、方法。
【請求項２３】
請求項２２に記載の方法であって、
前記ネットワーク経由で前記送信先ネットワークアドレスから応答パケットを受信するステップと、
前記暗号化鍵を用いて、前記送信先ネットワークアドレスから受信した前記応答パケットを暗号化して暗号化応答パケットを得るステップと、
前記パターンロジックに従って前記暗号化鍵を前記暗号化応答パケットへと分散するステップと、
前記分散された暗号化鍵を含む前記暗号化応答パケットを前記クライアント装置へ送信するステップと、
を更に含む、方法。
【請求項２４】
請求項２３に記載の方法であって、前記暗号化鍵をセッション変数に格納するステップを更に含む、方法。
【請求項２５】
請求項２３に記載の方法であって、前記暗号化鍵を抽出する前に前記暗号化パケットを展開するステップを更に含む、方法。
【請求項２６】
パケットを暗号化する方法であって、
少なくともユーザエントロピーから暗号化鍵をランダムに生成するステップと、
送出パケットのデータコンテンツに暗号化ハッシュを行うステップと、
前記暗号化鍵を用いて前記送出パケットを暗号化して暗号化パケットを得るステップと、
前記暗号化パケットに暗号化ハッシュを行うステップと、
前記暗号化パケットを圧縮するステップと、
を含む、方法。
【請求項２７】
請求項２６に記載の方法であって、ルーティングサーバの一意の識別子によって定義されるパターンロジックに従って前記暗号化鍵を前記暗号化パケットへと分散させて新規パケットを得ることを更に含む、方法。
【請求項２８】
請求項２７に記載の方法であって、前記方法は、複数の送出パケットのうちそれぞれの送出パケットについて別々に行われる、方法。
【請求項２９】
請求項２７に記載の方法であって、前記方法は、複数の送出パケットのうちそれぞれの送出パケットについて、異なる暗号化鍵と、異なる暗号化ハッシュと、異なる一意の識別子とを用いて、別々に行われる、方法。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の参照
本願は、参照により本願に援用される２０１３年３月１３日出願の米国仮出願第６１／７８０，１０６号、ならびに２０１３年３月２２日出願の第６１／８０４，５０９号の優先権を主張する。
【０００２】
本発明は、インターネット上ならびに仮想プライベートネットワーク内の装置及びコンピュータの間の安全な接続及び通信に関する。
【背景技術】
【０００３】
インターネット上ならびに仮想プライベートネットワーク内での装置及びコンピュータの通信に安全性と匿名性とを提供するために、多様な方法が提案及び実装されている。安全な仮想プライベートネットワークを含む従来の通信ソリューションは、何らかの形のデータ暗号化を用いてデータセキュリティに対処しつつ、リモートデバイス又はコンピュータを標的装置又はコンピュータに接続する。仮想プライベートネットワーク内のこれらの装置及びコンピュータはパブリック及びプライベート暗号化鍵を交換することにより、もしくは（ａ）保護データのパケット及び（ｂ）その暗号化鍵を、複数の装置又はコンピュータを網羅する異なるネットワークパスを通じて送信元から送信先へと別々にルーティングすることにより、安全に通信できる。この類の安全性は、広範な通信ポリシーを必要とし、そのため装置及びコンピュータを特定のネットワークに結びつけることが望ましい企業の仮想プライベートネットワークで主に利用される。
【０００４】
これらの典型的な仮想プライベートネットワークソリューションには、（ａ）外部ネットワークを通じた装置及びコンピュータからの、特定のアプリケーション及びそのプロトコルへの通信を安全に制御すること、（ｂ）これらのアプリケーション及びそのプロトコルが所望の外部ネットワーク内においてのみ通信可能であることを保証すること、及び（ｃ）暗号化鍵が追跡又は探知され得ないこと、ならびにデータが解析され得ないことを保証すること、の必要性が存在する、数多くの潜在的な安全面の問題が含まれる。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
例えばＬａｒｓｏｎ（米国特許第８，０５１，１８１号）は、コンピュータと仮想プライベートネットワークとの間に安全な通信リンクを確立する技術として、送信先に到達するまでの複数のパスを提供するために、擬似乱数列に応じて変化する１以上のデータ値を各データパケットに挿入する技術を開示している。Ｌａｒｓｏｎは典型的な仮想プライベートネットワーク向けのセキュリティの強化を提供するが、装置にインストールされたアプリケーション間の安全かつ効率的なインターネット通信の必要性が未だ存在する。
【課題を解決するための手段】
【０００６】
本発明の一の態様によれば、ネットワーク上で通信するシステムは、送信先ネットワークアドレスを含む送出パケット（ｏｕｔｇｏｉｎｇ  ｐａｃｋｅｔ）を傍受するように構成されるクライアント装置を含む。クライアント装置は、暗号化鍵を用いて送出パケットを暗号化して暗号化パケットを生成し、ルーティングサーバの一意の識別子によって定義されるパターンロジックに従って暗号化鍵を暗号化パケットへと分散させ、分散された暗号化鍵を含む暗号化パケットをルーティングサーバへ送信するように更に構成される。システムは、分散された暗号化鍵を含む暗号化パケットを受信し、一意の識別子によって定義されるパターンロジックを用いて暗号化パケットから暗号化鍵を抽出し、暗号化鍵を用いて暗号化パケットを復号して送信先ネットワークアドレスを含む送出パケットを得て、送出パケットを送信先ネットワークアドレスへ送信するように構成されるルーティングサーバと、を更に含む。
【０００７】
本発明の別の態様によれば、クライアント装置は、それぞれが送信先ネットワークアドレスを含む送出パケットを傍受するように構成されるネットワークインターフェースコントローラを含む。クライアント装置は、傍受された送出パケットを受信し、暗号化エンジンを制御して送出パケットから新規パケットを生成し、新規パケットを１以上のルーティングサーバへ送信するように構成されるローカルプロキシサーバを更に含む。クライアント装置は、暗号化鍵を用いて傍受された送出パケットを暗号化して暗号化パケットを生成し、１以上のルーティングサーバの１以上の一意の識別子によって定義されるパターンロジックに従って暗号化鍵を暗号化パケットへと分散させて新規パケットを得るように構成される暗号化エンジンを更に含む。
【０００８】
本発明の別の態様によれば、ルーティングサーバは、１以上のクライアント装置からネットワーク経由で暗号化パケットを受信するように構成されるネットワークインターフェースコントローラと、暗号化エンジンを制御して受信された暗号化パケットを復号し、ネットワーク経由で１以上の送信先アドレスへパケットを送信するように構成されるプロトコル非依存のプロキシサーバと、ルーティングサーバの一意の識別子によって定義されるパターンロジックを用いて分散された暗号化鍵を受信された暗号化パケットから抽出し、暗号化鍵を用いて暗号化パケットを復号して、１以上の送信先アドレスへ送信するパケットを得るように構成される暗号化エンジンと、を含む。
【０００９】
本発明の別の態様によれば、ネットワークに接続されたクライアント装置によって実行される方法は、送信先ネットワークアドレスを含む送出パケットを傍受することを含む。方法は、暗号化鍵を用いて送信先ネットワークアドレスを含む送出パケットを暗号化して暗号化パケットを得るステップと、ルーティングサーバの一意の識別子によって定義されるパターンロジックに従って暗号化鍵を暗号化パケットへと分散させて新規パケットを得るステップと、新規パケットをルーティングサーバへ送信するステップと、を更に含む。
【００１０】
本発明の別の態様によれば、ネットワーク内で機能するルーティングサーバによって行われる方法は、暗号化パケットをネットワーク経由でクライアント装置から受信するステップと、ルーティングサーバの一意の識別子によって定義されたパターンロジックを用いて、受信された暗号化パケットから暗号化鍵を抽出するステップと、暗号化鍵を用いて受信された暗号化パケットを復号して、送信先ネットワークアドレスを含む前ライアント装置の送出パケットを得るステップと、送出パケットを送信先ネットワークアドレスへ送信するステップと、を含む。
【００１１】
本発明の別の態様によれば、パケットを暗号化する方法は、少なくともユーザエントロピーから暗号化鍵をランダムに生成するステップと、送出パケットのデータコンテンツに暗号化ハッシュを行うステップと、暗号化鍵を用いて送出パケットを暗号化して暗号化パケットを得るステップと、暗号化パケットに暗号化ハッシュを行うステップと、暗号化パケットを圧縮するステップと、を含む。
【００１２】
方法は、ルーティングサーバの一意の識別子によって定義されるパターンロジックに従って暗号化鍵を暗号化パケットへと分散させて新規パケットを得るステップを更に含んでよい。
【００１３】
方法は、複数の送出パケットのうちそれぞれの送出パケットについて、異なる暗号化鍵と、異なる暗号化ハッシュと、異なる一意の識別子とを用いて、別々に行われてよい。
【図面の簡単な説明】
【００１４】
添付の図面を例示のみを目的として参照して、本発明の実施形態が以下に説明される。
【図１】ソフトウェアコンポーネントのブロック図である。
【図２】ハードウェアコンポーネントのブロック図である。
【図３】サーバコンピュータに接続することのプロセス図である。
【図４】送出ネットワークパケットを傍受し、更なる処理のためにローカルプロキシサーバへ転送することのプロセス図である。
【図５】ランダム暗号化鍵を生成すること、及びネットワークデータパケットを暗号化することのプロセス図である。
【図６】第１の一意のノード識別子を分散ロジックのパターンとして用いることによる暗号化されたコンテンツ内で暗号化鍵を分散させることのプロセス図である。
【図７】パケットをサーバコンピュータに送信し、暗号化鍵の再構築のために展開して転送するプロトコル非依存のプロキシサーバで処理することのプロセス図である。
【図８】一意のノード識別子を再構築ロジックのパターンとして用いることによる暗号化コンテンツ及び暗号化鍵の再構築のプロセス図である。
【図９】復号されたネットワークパケットを標的送信先へ送信すること、及び更なる処理のためにその返信を暗号化エンジンに転送することのプロセス図である。
【図１０】所定の暗号化鍵を用いて、ネットワークパケットをその戻り経路で暗号化することのプロセス図である。
【図１１】第２の一意のノード識別子を分散ロジックのパターンとして用いることによる暗号化コンテンツにおいて暗号化鍵を分散させることのプロセス図である。
【図１２】暗号化ネットワークパケットをクライアント送信先に送り返し、暗号化鍵の再構築のために展開して転送するローカルプロキシサーバへ転送することのプロセス図である。
【図１３】一意のノード識別子を再構築ロジックのパターンとして用いることによる暗号化コンテンツ及び暗号化鍵の再構築のプロセス図である。パケットは復号され、そのコンテンツは当初のネットワーク要求への返信としてローカルプロキシサーバ経由で返される。
【図１４】グローバル変数を変更することによりサーバコンピュータの位置を切り替えるプロセス図である。
【発明を実施するための形態】
【００１５】
本発明は、インターネット上ならびに仮想プライベートネットワーク内の装置及びコンピュータの間の安全な接続及び通信の分野に関する。より具体的には、本発明は、装置及びコンピュータにインストールされたアプリケーションと安全に接続及び通信して仮想クラウドネットワークを形成することに関する。より具体的には、本発明は、アプリケーション固有のプロトコルフィルタリング、及び、任意の仮想クラウドネットワークの国内からの安全なリモート通信のためのルーティングを含む。
【００１６】
本発明は、安全な通信を実現するために（ａ）装置又はコンピュータを概同一のネットワークに結合すること、（ｂ）絶えず暗号化鍵を交換すること、（ｃ）異なる経路を通じて、及び複数サーバを経由して複雑なパケットルーティングを行うこと、を必要とせずに、装置にインストールされたアプリケーション間に安全なネットワーク通信を提供できる。
【００１７】
本発明はまた、プライベートで安全な匿名インターネット接続のために、多数の外部ネットワークに接続された異質の装置又はコンピュータ上の特定のプロトコルを用いる特定のアプリケーションに対し、安全かつ効率的に接続するためのより高い柔軟性を提供できる。
【００１８】
本発明は、接続された装置上で新しいセキュリティ及びネットワークルーティング技術を採用することにより、外部ネットワーク内の装置及びコンピュータをインターネット上で安全かつ効率的に接続し、安全な仮想クラウドネットワークを形成するための方法を提供できる。
【００１９】
本発明は、（ａ）装置及びコンピュータ上の全ての送出トラフィックを傍受するローカルのソフトウェアファイアウォール、（ｂ）暗号化鍵を公開しない暗号化及び圧縮を含むデータパケットの多層セキュリティ保護、（ｃ）マルチレイヤーの安全なプロキシサーバ、及び（ｄ）特化された通信ルーティングサーバ、を利用する、インターネット上での装置及びコンピュータ通信のための安全なメカニズムを提供できる。全ての接続された装置及びコンピュータにインストールされる１つの統合されたソフトウェアソリューションにおいてこれらのプロセスを組み合わせて用いることで、安全な仮想クラウドネットワークの作成が可能になる。装置及びコンピュータが仮想クラウドネットワークに認証されると、接続された装置及びコンピュータにインストールされた全てのアプリケーションは、異種ネットワーク内のリモートデバイス及びコンピュータにインストールされたその他のアプリケーションと安全に接続、共有、通信可能である。
【００２０】
本発明の各態様を利用することで、ブラウズ及びダウンロード用アプリ、安全なファイル共有アプリ、安全なメールアプリ、安全なテキスト、音声、及び動画アプリを含むクラウドベースのアプリケーションを、仮想クラウドネットワークに認証された任意の装置又はコンピュータ、すなわちコンピュータ、タブレット、スマートフォン、スマートＴＶを含む接続された装置、から安全にアクセス可能にすることができる。本発明の各態様は、インターネット上の任意の場所に接続された任意の装置又はコンピュータから、アプリケーションとそれに関連するデータへの安全で匿名のアクセスを、ユーザに提供できる。
【００２１】
図１及び図２において本発明をより詳細に参照すると、それぞれに、本発明の実施形態を実装するために用いることができる複数のソフトウェア及びハードウェアコンポーネントが図示されている：
２００  プロセッサ
２０２  入力装置
２２０  プロセッサ
２２２  メモリ
３００  暗号化エンジン
３１０  ランダム暗号化鍵の生成
３２０  データの暗号化
３３０  データの復号
３４０  暗号化ハッシュの生成
３５０  暗号化鍵の構築
３６０  暗号化鍵の分散
３７０  データの圧縮
３８０  データの展開
４００  ローカルプロキシサーバ
４１０  ネットワークパケットの構築と送信
４２０  ネットワークパケットの分解
４３０  ノードコネクタ
４４０  ノードスイッチャ
５００  安全なクラウド通信機
５１０  利用可能なノードの一覧
６００  パケットフィルタリング機能付きのローカルファイアウォール
７００  サーバコンピュータ
７１０  暗号化エンジン
７１１  データの暗号化
７１２  データの復号
７１３  暗号化鍵の構築
７１４  暗号化鍵の分散
７１５  データの圧縮
７１６  データの展開
７２０  プロトコル非依存プロキシサーバ
９２１  暗号化鍵
９２２  一意のサーバノード識別子
９２３  ネットワークインターフェースコントローラ
９２４  装置
９２５  ネットワークパケット
９２６  パケット送信先
９２７  ドライバ
９２８  パブリックインターネット
９２９  暗号化パケット
９３０  ノードのＩＰ変数
９３１  暗号化されていないパケット
【００２２】
図２を参照すると、クライアント装置９２４はプロセッサ（例：ＣＰＵ）２００、入力装置２０２、ネットワークインターフェースコントローラ９２３、及びメモリ内に存在する傍受ドライバ９２３（図示せず）を含んでよい。ルーティングサーバ７００はプロセッサ（例：ＣＰＵ）２２０、ランダムアクセスメモリ（ＲＡＭ）２２２、及びネットワークインターフェースコントローラ９２３を含んでよい。
【００２３】
図１及び図２を参照すると、本発明の実施形態は、インターネット上の装置及びコンピュータを安全に接続して安全な仮想クラウドネットワークを形成する技術を含む。まず、傍受ドライバを含むパケットフィルタリング機能付きのファイアウォール６００が、ネットワークインターフェースコントローラ９２３上の全てのデータパケットを監視及び傍受し、ユーザが装置及びコンピュータ上の全てのネットワークトラフィックを傍受することを可能にする。データパケットは暗号化及び圧縮を含むマルチレイヤーセキュリティによって保護される。保護されたパケットは隠された分散済暗号化鍵の配列を含む。これらは、インターネットに接続されたリモートサーバコンピュータ７００を含む多層プロキシサーバ４００を通じて安全にルーティングされる。サーバコンピュータ７００は保護されたパケットを受信及び読み取りするが、この際暗号化鍵は公開されない。
【００２４】
更に詳細には、引き続き図１及び図２を参照すると、傍受ドライバは送出ネットワークパケットを傍受して、パケットを処理して暗号化するローカルプロキシサーバ４００に転送する。傍受ドライバは、中断されたパケットの暗号化されたコンテンツで新規パケットを作成している間、接続をオープンにしておき、ローカルプロキシサーバ４００を経由してそれをサーバコンピュータ７００へ送信する。サーバコンピュータ７００は受信されたコンテンツを復号し、当初の要求からデータを収集して、それを要求したクライアント装置又はコンピュータに暗号化された形で返す。オープンのままのオープンな接続のパケットは、プロキシサーバから受信した応答を挿入される。個別のパケットはそれぞれ変更、暗号化、及び圧縮される。変更済のパケットは隠された分散済暗号化鍵の配列を含む。
【００２５】
ここで図３を参照すると、ノード４３０に接続するプロセスは、ローカルプロキシサーバプロセスが、要求されるパラメータ「一意のノード識別子（ｕｎｉｑｕｅ  ｎｏｄｅ  ｉｄｅｎｔｉｆｉｃａｔｉｏｎ）」と共にコマンド「ノードに接続（ｃｏｎｎｅｃｔ  ｎｏｄｅ）」を受信した際にトリガされる。第１のステップにおいて、ノード４３０に接続するプロセスは利用可能なノードの一覧５１０をクエリする。安全なネットワーク上の全ての利用可能なサーバノードの一覧５１０を取得して返すプロセスは、「ノードをリスト（ｌｉｓｔ  ｎｏｄｅｓ）」コマンドによって安全なクラウド通信機プロセスを呼び出すことによりトリガされる。ノードコネクタ４３０はネットワークサーバと通信して、「一意のノード識別子」の数と、接続に利用可能な着信ＩＰアドレスの配列と共に、ネットワーク上の全ての利用可能なノードのリストを取得する。第２のステップは、プロセスの結果として、構築されたリストを返す。ローカルの安全なクラウド通信機５００は、ユーザの装置にインストール及び実行されているソフトウェアコンポーネント又はスクリプトである。これは希望に従って定期的又は手動でネットワークサーバに接続し、発行されたコマンドに従ってデータを設定又は取得する。安全なクラウド通信機５００は、装置上でローカルユーザを認証し、利用可能なノードのリストを取得するために用いられる。安全なネットワーク上の全ての利用可能なサーバノードの一覧５１０を取得して返すプロセスは、「ノードをリスト」コマンドで安全なクラウド通信機プロセス５００を呼び出すことによりトリガされる。ノードコネクタ４３０はネットワークサーバと通信して、「一意のノード識別子」の数と、接続に利用可能な着信ＩＰアドレスの配列と共に、ネットワーク上の全ての利用可能なノードのリストを取得する。第２のステップは、プロセスの結果として、構築されたリストを返す。利用可能なサーバノードのリストプロセス５１０は、接続先として利用可能なＩＰアドレスの配列を返し、それを一時変数「Ａ」に格納する。変数「Ａ」内の配列からランダムなＩＰアドレスが選択され、グローバルノードＩＰ変数９３０として設定される。グローバルノードＩＰ変数９３０は、接続のルーティングに使われているノードサーバのＩＰアドレスを含むソフトウェア内でグローバルに設定された変数である。ノードへの接続が確立される。
【００２６】
ここで図４を参照すると、ネットワークパケット９２５がローカルネットワークによって送信され、パケットフィルタリング機能付きローカルファイアウォール６００によって傍受される。パケットフィルタリング機能付きローカルファイアウォール６００は、パケットを傍受して更なる処理のためにローカルプロキシサーバ４００に転送するために、特殊なパケット傍受ドライバ９２７をネットワークインターフェースコントローラ９２３にインストールすることを必要とする。ネットワークインターフェースコントローラ９２３は、コンピュータをコンピュータネットワークに接続するコンピュータハードウェアコンポーネントである。傍受ドライバ９２７はネットワークインターフェースコントローラを操作及び制御するコンピュータプログラムであり、アプリケーションレイヤーのローカルプロキシサーバ４００と通信するようにカスタマイズされる。ローカルプロキシサーバ４００は、ユーザの装置上でインストール及び実行されるソフトウェアコンポーネント又はスクリプトである。それは本明細書に記載のプロセス、本明細書に記載のドライバ、並びにプロセス間通信を用いるその他のソフトウェアからのコマンドを待機する。それは傍受された送出パケット（ｏｕｔｇｏｉｎｇ  ｐａｃｋｅｔ）のトラフィックをルーティングし、ネットワークパケットを送受信し、接続ノードを切り替え、データをルーティングするノードの最適な場所を検出し、ノード及び／又は接続ノードの送出ＩＰアドレスをランダム化するように構成される。プロキシサーバは、９３０に記載されたグローバルノードＩＰ変数内で定義されたサーバノードＩＰアドレスに接続してトラフィックを転送する。グローバルノードＩＰ変数９３０は、接続のルーティングに使われているノードサーバのＩＰアドレスを含むソフトウェア内でグローバルに設定された変数である。
【００２７】
図５の実施形態を参照すると、ネットワークパケットを構築するプロセス４１０は、ローカルプロキシサーバが、要求されるパラメータ「パケットＡ（ｐａｃｋｅｔ  Ａ）」及び「接続先ＩＰアドレス（ｄｅｓｔｉｎａｔｉｏｎ  ＩＰ  ａｄｄｒｅｓｓ）」と共にコマンド「構築（ｃｏｎｓｔｒｕｃｔ）」を受信したときにトリガされる。ネットワークパケットの構築４１０を行った結果は、新規ネットワークパケット「パケットＢ（ｐａｃｋｅｔ  Ｂ）」の作成である。「パケットＢ」のヘッダは「接続先ＩＰアドレス」にルーティングするように設定されている。「パケットＡ」は、応答が受信されて挿入されるまで装置を出ずに、キープアライブされる（ｋｅｐｔ  ａｌｉｖｅ）。パラメータ「パケットＡ」内で渡されるパケット全体は、暗号化エンジンならびに３２０に記載のプロセスを用いて暗号化され、一時変数「Ａ」に格納される。データの暗号化プロセス３２０は、暗号化エンジン３００プロセスが、要求されるパラメータ「データ」及び「一意の標的識別子」と共にアクションコマンド「データの暗号化」を受信した時にトリガされる。暗号化エンジン３００は、ユーザの装置上でインストール及び実行されるソフトウェアコンポーネント又はスクリプトである。それは本明細書に記載のプロセス、本明細書に記載のドライバ、並びにプロセス間通信を用いるその他のソフトウェアからのコマンドを待機する。それは送出パケットのコンテンツを暗号化し、着信パケットのデータを復号し、ランダム暗号化鍵を生成し、動的暗号化のために暗号化鍵を分散しそれを再構築し、暗号化ハッシュを生成するように構成される。データパラメータは一時変数「Ａ」に格納され、データの暗号化が成功裏に完了した後クリアされる。一意の標的送信先は一時変数「Ｂ」に格納され、データの暗号化が成功裏に完了した後クリアされる。
【００２８】
第１のステップにおいて、ネットワークパケットの作成及び送信プロセス４１０は、プロセス３１０と内部的に通信して、生成された暗号化鍵を変数「Ｃ」に格納する。ランダム暗号化鍵の作成プロセス３１０は、暗号化エンジンプロセスがアクションコマンド「鍵の生成（ｇｅｎｅｒａｔｅ  ｋｅｙ）」を受信するとトリガされる。暗号化鍵は、Ｕｎｉｘ（登録商標）エポック時間、３２桁のランダムな数字、及びマウスエントロピーを用いて生成される。これらの値は、一時変数「Ｚ」において格納及び組み合わされる。変数「Ｚ」は、内部プロセス３４０を用いて暗号学的にハッシュ化される。暗号化ハッシュ３４０を生成するプロセスは、暗号化エンジンプロセス３００が、要求されるパラメータ「値」と共にコマンド「ハッシュ」を受信した際にトリガされる。値パラメータは一時変数「Ｚ」に格納される。このプロセスが成功裏に完了すると、変数「Ｚ」の値はクリアされ、メモリから削除される。暗号化エンジン３００は、例えばグローバルなシステム（ＳＨＡ−２、ＳＨＡ−３）によって定義された不可逆暗号ハッシュ化方法の１つを用いて変数「Ｚ」の値をハッシュ化し、このプロセスの結果としてそれを返す。変数の値はクリアされ、メモリから削除される。暗号学的にハッシュ化された値は最終結果として返される。
【００２９】
第２のステップにおいて、ネットワークパケットの作成及び送信プロセス４１０は変数「Ａ」を、システム定義された暗号化アルゴリズム（例えばＡＥＳ、ＲＳＡ、Ｓｅｒｐｅｎｔ、Ｔｗｏ−ｆｉｓｈ）を利用して変数「Ｃ」の暗号化鍵によって暗号化する。暗号化されたデータは返されて、変数「Ｄ」に格納される。
【００３０】
第３のステップにおいて、ネットワークパケットの構築及び送信プロセス４１０は、プロセス３６０と内部的に通信し、変数「Ｄ」内の暗号化鍵を、一意の標的識別子に依存する所定のパターンで分散させる。変数「Ｄ」の値は更新される。
【００３１】
第４のステップにおいて、ネットワークパケットの作成及び送信プロセス４１０は、変数「Ｄ」の分散された値をより小さい値に圧縮するプロセス３７０と内部的に通信する。変数「Ｄ」の値は更新される。暗号化プロセスの結果として、圧縮された変数「Ｄ」が返される。これらの変数はクリアされ、システムメモリから削除される。これにより、データの暗号化プロセスが完了する。暗号化された変数「Ａ」は、新規に構築された「パケットＢ」のデータ及び／又はコンテンツパラメータとして用いられる。このプロセスの結果は、暗号化鍵の分散を行う次のプロセス３６０で必要となる変数の作成の完了である。
【００３２】
ここで図６を参照すると、暗号化鍵を分散させるプロセス３６０は、暗号化エンジンプロセスが、必要となるパラメータ「暗号化データ」９２９、「暗号化鍵」９２１、及び「一意の標的識別子」９２２と共にコマンド「鍵の分散（ｓｃａｔｔｅｒ  ｋｅｙ）」を受信した時にトリガされる。暗号化鍵９２１は、ネットワークパケットの２進値を暗号化及び復号化するのに用いられる。暗号化鍵は３１０プロセスにおいて生成される。一意のサーバノード識別子９２２は、サーバノードを一意に識別する一連の文字である。一意のサーバノード識別子９２２は、暗号化エンジン内で暗号化鍵を分散及び構築するための論理パターンとして用いられる。暗号化鍵の分散プロセス３６０は、暗号化鍵を分割して、「一意の標的識別子」からの論理パターンを用いて暗号化データ内に分散させる。一部の例では、一意のサーバノード識別子（一意の識別子）はそれが識別するサーバにのみ知られており、そのためそのサーバのみがパケットから暗号化鍵を抽出できる。暗号化鍵の分散に係る一意の標的識別子の相互動作を定義する方法は、暗号化エンジン３００にハードコーディングされている。暗号化エンジン３００はユーザの装置にインストール及び実行されているソフトウェアコンポーネント又はスクリプトである。それは本明細書に記載のプロセス、本明細書に記載のドライバ、並びにプロセス間通信を用いるその他のソフトウェアからのコマンドを待機する。それは送出パケットのコンテンツを暗号化し、着信パケットのデータを復号し、ランダム暗号化鍵を生成し、動的暗号化のために暗号化鍵を分散しそれを再構築し、暗号化ハッシュを生成するように構成される。「データの暗号化」及び「データの復号化」プロセスが機能し、情報を正しくコンパイル及びデコンパイルするために、ハードコーディングされた方法は、ローカル暗号化エンジン３００においてとサーバコンピュータ７００にある暗号化エンジンにおいてほぼ同じでなければならない。例を挙げるために、一意の標的識別子９２２として値「ＳＣＢＡ１３４２」を、生成された暗号化鍵９２１として値「ＸＹ９８７６ＷＺ」を、暗号化コンテンツ９２９として値「Ｃ６６ＡＢ６５７ＢＦ３１９Ｂ３８２８４４９２ＡＤ２Ｅ２１５１４Ｅ」を用いる。暗号化鍵９２１内の対応する各文字の位置マークとして一意の標的識別子から数字及び文字を利用して、暗号化鍵を暗号化コンテンツ内に分散させるパターンロジックを用いる。０〜９の数字は０〜９の値範囲を有する。英語のアルファベットの文字は１０〜３５の値範囲を有する。暗号化鍵を分散させるパターンを把握した上で、一意の標的識別子の値「ＳＣＢＡ１３４２」を位置値に変換する。文字「Ｓ」は一意の標的識別子の１文字目であり、変換されると位置値２８を有する、すなわち、暗号化鍵９２１の１文字目は暗号化データ９２９の２８文字目の前に挿入される。分散パターン「ＳＣＢＡ１３４２」の正確な位置変換は、「２８−１２−１１−１０−１−３−４−２」となる。暗号化鍵９２１の分散が完了した後、結果として「７Ｚ６ＷＣ６６ＡＢ８９Ｙ６５７ＢＦ３１９Ｂ３８２８４４Ｘ９２ＡＤ２Ｅ２１５１４Ｅ」が得られ、これが新規暗号化パケットとして変数９２９に取って代わる。暗号���鍵の長さは、暗号化データ値を伸長する。分散された暗号化鍵を含む、伸長された暗号化データは、プロセス３６０の結果として返される。なお、このパターン例は、暗号化鍵の分散の概念を説明するための例示のみを目的としたものである。実装例は、実装方法、暗号化鍵の長さ、一意の標的識別子の長さ、及びパターン構造の複雑さが異なる。分散暗号化は、データの暗号化プロセス３２０に返され、プロセス３２０はネットワークのパフォーマンス向上のために圧縮プロセス３７０を用いてデータを圧縮し、それをローカルプロキシサーバ４００内の４１０プロセスに返す。データの圧縮プロセス３７０は、暗号化エンジンプロセスが、要求されるパラメータ「暗号化データ（ｅｎｃｒｙｐｔｅｄ  ｄａｔａ）」と共にコマンド「データの圧縮（ｃｏｍｐｒｅｓｓ  ｄａｔａ）」を受信した時にトリガされる。暗号化鍵の分散プロセス３６０は、システム定義された圧縮アルゴリズム（例えばＬＺ４、ＺＩＰ、ＲＡＲ、ＴＡＲ、又はＴＡＲ．ＧＺ）を用いてパラメータ「暗号化データ」を圧縮する。圧縮されたデータは、このプロセスの結果として返される。プロセス４１０内のパケットには、パケットフィルタリング機能付きローカルファイアウォール６００にトラフィック処理の間フィルタリング処理を無視するよう伝えるイグノアビット（ｉｇｎｏｒｅ  ｂｉｔｓ）でフラグが立てられる。このプロセスの結果は、システムから、一意の標的識別子によって識別されたサーバコンピュータ７００へのパケットの送信である。サーバコンピュータ７００は、暗号化エンジンとプロトコル非依存プロキシサーバ７２０がインストールされた、例えばＣＥＮＴＯＳで実行されるハードウェアサーバである。
【００３３】
ここで図７を参照すると、暗号化パケット９２９はパブリックインターネット９２８を経由してサーバコンピュータ７００へ送信される。パケットはプロトコル非依存プロキシサーバ７２０によって受信及び処理される。プロトコル非依存プロキシサーバ７２０はサーバコンピュータ上で実行され、特定のポートの着信ネットワーク接続を選択されたＩＰアドレスの範囲内で受け付ける。種類（例えばＵＤＰ、ＴＣＰ／ＩＰ）にかかわらずネットワークプロトコルを処理可能である。パケットは、暗号化エンジン７１０内のデータ復号プロセス７１２に転送される。暗号化エンジン７１０はサーバコンピュータにインストール及び実行されているソフトウェアコンポーネント又はスクリプトである。それは本明細書に記載のプロセス、本明細書に記載のドライバ、並びにプロセス間通信を用いるその他のソフトウェアからのコマンドを待機する。それは送出パケットのコンテンツを暗号化し、着信パケット（ｉｎｃｏｍｉｎｇ  ｐａｃｋｅｔ）のデータを復号化し、ランダム暗号化鍵を生成し、動的暗号化のために暗号化鍵を分散しそれを再構築し、暗号化ハッシュを生成するように構成される。データの復号プロセス７１２は、暗号化エンジン７１０が、要求されるパラメータ「暗号化データ」及び「一意の標的識別子」と共にアクションコマンド「データの復号化（ｄｅｃｒｙｐｔ  ｄａｔａ）」を受信した時にトリガされる。暗号化データパラメータは一時変数「Ａ」に格納され、データの復号が成功裏に完了した後でクリアされる。一意の標的識別子は一時変数「Ｂ」に格納され、データの暗号化が成功裏に完了した後でクリアされる。
【００３４】
第１のステップにおいて、暗号化パケットプロセス９２９は、変数「Ｂ」から受信したデータを展開するプロセス７１６と内部的に通信する。データの展開プロセス７１６は、暗号化エンジン７１０プロセスが、要求されるパラメータ「圧縮されたデータ（ｃｏｍｐｒｅｓｓｅｄ  ｄａｔａ）」と共にコマンド「データの展開（ｄｅｃｏｍｐｒｅｓｓ  ｄａｔａ）」を受信した時にトリガされる。暗号化パケットのプロセス９２９は、システム定義された圧縮アルゴリズム（例えばＬＺ４、ＺＩＰ、ＲＡＲ、ＴＡＲ、又はＴＡＲ．ＧＺ）を用いてパラメータ「圧縮されたデータ」を展開する。展開されたデータはこのプロセスの結果として返される。変数「Ｂ」の値は新規の展開された値で更新される。第２のステップにおいて、暗号化パケットのプロセス９２９は、変数「Ｂ」内に一意の標的識別子に依存する所定のパターンで分散された暗号化鍵を構築するプロセス７１３と内部的に通信する。
【００３５】
ここで図８を参照すると、暗号化鍵を構築するプロセス７１３は、暗号化エンジンプロセスが、要求されるパラメータ「暗号化データ」９２９及び「一意の標的識別子」９２２と共にコマンド「鍵の構築（ｂｕｉｌｄ  ｋｅｙ）」を受信した時にトリガされる。暗号化鍵の構築プロセス７１３は、「一意の標的識別子」パラメータからの論理パターンを用いて、暗号化データパラメータから暗号化鍵と暗号化コンテンツとを抽出する。暗号化鍵の分散に係る一意の標的識別子の相互動作を定義する方法は、暗号化エンジン７１０にハードコーディングされている。暗号化エンジン７１０はサーバコンピュータにインストール及び実行されているソフトウェアコンポーネント又はスクリプトである。それは本明細書に記載のプロセス、本明細書に記載のドライバ、並びにプロセス間通信を用いるその他のソフトウェアからのコマンドを待機する。それは送出パケットのコンテンツを暗号化し、着信パケットのデータを復号し、ランダム暗号化鍵を生成し、動的暗号化のために暗号化鍵を分散しそれを再構築し、暗号化ハッシュを生成するように構成される。「データの暗号化」及び「データの復号化」プロセスが機能し、情報を正しくコンパイル及びデコンパイルするために、ハードコーディングされた方法は、ローカル暗号化エンジン３００においてとサーバコンピュータ７００にある暗号化エンジンにおいてほぼ同じでなければならない。例を挙げるために、一意の標的識別子９２２として値「ＳＣＢＡ１３４２」を、秘密の分散された暗号化鍵を含む暗号化コンテンツ９２９として「７Ｚ６ＷＣ６６ＡＢ８９Ｙ６５７ＢＦ３１９Ｂ３８２８４４Ｘ９２ＡＤ２Ｅ２１５１４Ｅ」を用いる。暗号化鍵９２１内の対応する各文字の位置マークとして一意の標的識別子から数字及び文字を利用して、暗号化コンテンツから、分散された暗号化鍵と暗号化コンテンツとを再構築して分割するパターンロジックを用いる。０〜９の数字は０〜９の値範囲を有する。英語のアルファベットの文字は１０〜３５の値範囲を有する。暗号化鍵を分散させるパターンを把握した上で、一意の標的識別子の値「ＳＣＢＡ１３４２」を位置値に変換する。文字「Ｓ」は一意の標的識別子の１文字目であり、変換されると位置値２８を有する、すなわち、暗号化鍵９２１の１文字目は暗号化データ９２９の２８文字目である。分散パターン「ＳＣＢＡ１３４２」の正確な位置変換は、「２８−１２−１１−１０−１−３−４−２」となる。暗号化コンテンツ内の暗号化鍵の分散が完了した後、このプロセスの結果として２つの変数が得られる。復号されるべき新規データとしての、暗号化鍵９２１の値「ＸＹ９８７６ＷＺ」、及び暗号化コンテンツ９２９の値「Ｃ６６ＡＢ６５７ＢＦ３１９Ｂ３８２８４４９２ＡＤ２Ｅ２１５１４Ｅ」である。抽出された暗号化鍵と抽出されたコンテンツは、このプロセスの結果として返される。これらは、データの復号のために、データの復号プロセス７１２に転送し返される。データの復号プロセス７１２は、暗号化エンジン７１０プロセスが、要求されるパラメータ「暗号化データ」及び「暗号化鍵」と共にアクションコマンド「データの復号」を受信した時にトリガされる。暗号化鍵は一時変数「Ｃ」と、返信ネット���ークパッケージの作成中の暗号化中に用いられるセッション永続変数に格納される。暗号化コンテンツは一時変数「Ｄ」に格納される。暗号化鍵の構築プロセス７１３は、システム定義された暗号化アルゴリズム（例えばＡＥＳ、ＲＳＡ、Ｓｅｒｐｅｎｔ、Ｔｗｏ−ｆｉｓｈ）を利用して変数「Ｃ」から構築された暗号化鍵によって変数「Ｄ」を復号する。復号されたデータはこのプロセスの結果として返される。変数はクリアされシステムメモリから削除される。データの復号が完了する。暗号化されていないパケット９３１は更なる処理のためにプロトコル非依存プロキシサーバ７２０に転送される。プロトコル非依存プロキシサーバ７２０のプロセスは、サーバコンピュータ上で実行され、特定のポートの着信ネットワーク接続を選択されたＩＰアドレスの範囲内で受け付ける。プロキシサーバは、受信された暗号化された要求を処理及び復号し、当初意図された送信先への新規要求を作成する。送信先は暗号化されていないネットワークパケット９３１のヘッダから読み取られ、ネットワークコントローラインタフェース９２３経由で送出される。
【００３６】
ここで図９を参照すると、暗号化されていないネットワークパケット９３１はサーバコンピュータ７００によってパケット送信先サーバ９２６へ送信される。パケット送信先サーバ９２６は、図４における当初の傍受されたネットワークパケット内でアドレスされたコンピュータサーバである。サーバコンピュータ７００は、暗号化エンジンとプロトコル非依存プロキシサーバ７２０がインストールされた、例えばＣＥＮＴＯＳで実行されるハードウェアサーバである。暗号化されていないネットワークパケット９３１からの要求は、パケット送信先サーバ９２６によって処理され、暗号化されていないパケットを、送信された要求への処理された返信として、プロトコル非依存プロキシサーバ７２０に返す。プロトコル非依存プロキシサーバ７２０のプロセスは、サーバコンピュータ上で実行され、特定のポートの着信ネットワーク接続を選択されたＩＰアドレスの範囲内で受け付ける。パケットは、プロトコル非依存プロキシサーバ７２０で受信されると、暗号化エンジン７１０内のデータ暗号化７１１プロセスに転送され、当初の要求をトリガした接続された装置への組み立てられた返信用にパケットを準備及び暗号化する。
【００３７】
ここで図１０を参照すると、暗号化されていないパケット９３１は、データ暗号化プロセス７１１内のデータ暗号化のために暗号化エンジン７１０に転送される。暗号化エンジン７１０はサーバコンピュータにインストール及び実行されているソフトウェアコンポーネント又はスクリプトである。それは本明細書に記載のプロセス、本明細書に記載のドライバ、並びにプロセス間通信を用いるその他のソフトウェアからのコマンドを待機する。それは送出パケットのコンテンツを暗号化し、着信パケットのデータを復号し、ランダム暗号化鍵を生成し、動的暗号化のために暗号化鍵を分散しそれを再構築し、暗号化ハッシュを生成するように構成される。データの暗号化プロセス７１１は、暗号化エンジン７１０が、要求されるパラメータ「データ」と共にアクションコマンド「データの暗号化」を受信した時にトリガされる。データパラメータは一時変数「Ａ」に格納され、データの暗号化が成功裏に完了した後でクリアされる。データの暗号化に用いられる暗号化鍵９２１は、図８に記載のとおり追加され設定されたセッション永続変数から取り出される。暗号化されていないパケットのプロセス９３１は変数「Ａ」を、システム定義された暗号化アルゴリズム（例えばＡＥＳ、ＲＳＡ、Ｓｅｒｐｅｎｔ、Ｔｗｏ−ｆｉｓｈ）を利用して暗号化鍵９２１で暗号化する。暗号化されたデータは返されて、変数「Ｄ」に格納される。これらの変数はクリアされシステムメモリから削除される。これにより、データの暗号化プロセスが完了する。このプロセスの結果として、暗号化ネットワークパケット９２９が返される。
【００３８】
ここで図１１を参照すると、暗号化鍵を分散させるプロセス７１４は、暗号化エンジンプロセスが、必要となるパラメータ「暗号化データ」９２９、「暗号化鍵」９２１、及び「一意の標的識別子」９２２と共にコマンド「鍵の分散」を受信した時にトリガされる。暗号化鍵９２１は、ネットワークパケットの２進値を暗号化及び復号するのに用いられる。一意のサーバノード識別子９２２は、サーバノードを一意に識別する一連の文字である。一意のサーバノード識別子９２２は、暗号化エンジン内で暗号化鍵を分散及び構築するための論理パターンとして用いられる。暗号化鍵の分散プロセス７１４は、暗号化鍵を分割して、「一意の標的識別子」パラメータからの論理パターンを用いて暗号化データ内に分散させる。一部の例では、一意のサーバノード識別子（一意の識別子）はそれが識別するサーバにのみ知られており、そのためそのサーバのみがパケットから暗号化鍵を抽出できる。暗号化鍵の分散に係る一意の標的識別子の相互動作を定義する方法は、暗号化エンジン７１０にハードコーディングされている。暗号化エンジン７１０はユーザの装置にインストール及び実行されているソフトウェアコンポーネント又はスクリプトである。それは本明細書に記載のプロセス、本明細書に記載のドライバ、並びにプロセス間通信を用いるその他のソフトウェアからのコマンドを待機する。それは送出パケットのコンテンツを暗号化し、着信パケットのデータを復号し、ランダム暗号化鍵を生成し、動的暗号化のために暗号化鍵を分散しそれを再構築し、暗号化ハッシュを生成するように構成される。「データの暗号化」及び「データの復号化」プロセスが機能し、情報を正しくコンパイル及びデコンパイルするために、ハードコーディングされた方法は、ローカル暗号化エンジン３００においてとサーバコンピュータ７００にある暗号化エンジンにおいてほぼ同じでなければならない。例を挙げるために、一意の標的識別子９２２として値「ＳＣＢＡ１３４２」を、すでに格納されている暗号化鍵９２１として値「ＸＹ９８７６ＷＺ」を、暗号化コンテンツ９２９として値「７５６ＥＦ５３Ａ４１６２３６ＢＤ２Ｄ３ＢＡ３３１Ｅ３Ｄ３６７Ｃ５」を用いる。暗号化鍵９２１内の対応する各文字の位置マークとして一意の標的識別子から数字及び文字を利用して、暗号化鍵を暗号化コンテンツ内に分散させるパターンロジックを用いる。０〜９の数字は０〜９の値範囲を有する。英語のアルファベットの文字は１０〜３５の値範囲を有する。暗号化鍵を分散させるパターンを把握した上で、一意の標的識別子の値「ＳＣＢＡ１３４２」を位置値に変換する。文字「Ｓ」は一意の標的識別子の１文字目であり、変換されると位置値２８を有する、すなわち、暗号化鍵９２１の１文字目は暗号化データ９２９の２８文字目の前に挿入される。分散パターン「ＳＣＢＡ１３４２」の正確な位置変換は、「２８−１２−１１−１０−１−３−４−２」となる。暗号化コンテンツ内での暗号化鍵の分散が完了した後、結果として「７Ｚ６Ｗ７５６ＥＦ８９Ｙ５３Ａ４１６２３６ＢＤ２Ｄ３ＢＸＡ３３１Ｅ３Ｄ３６７Ｃ５」が得られ、これが新規暗号化パケットとして変数９２９に取って代わる。暗号化鍵の長さは、暗号化データ値を伸長する。分散された暗号化鍵を含む、伸長された暗号化データは、プロセス７１４の結果として返される。なお、このパターン例は、暗号化鍵の分散の概念を説明するための例示のみを目的としたものである。実装例は、実装方法、暗号化鍵の長さ、一意の標的識別子の長さ、及びパターン構造の複雑さが異なる。分散暗号化は、データの暗号化プロセス７１１に返され、プロセス７１１はネットワークのパフォーマンス向上のために圧縮プロセス７１５を用いてデータを圧縮し、さらなる処理のためにそれをプロトコル非依存プロキシサーバ７１０プロセスに返す。データの圧縮プロセス７１５は、暗号化エンジンプロセスが、要求されるパラメータ「暗号化データ」と共にコマンド「データの圧縮」を受信した時にトリガされる。暗号化鍵の分散プロセス７１４は、システム定義された圧縮アルゴリズム（例えばＬＺ４、ＺＩＰ、ＲＡＲ、ＴＡＲ、又はＴＡＲ．ＧＺ）を用いてパラメータ「暗号化データ」を圧縮する。圧縮されたデータは、このプロセスの結果として返される。このプロセスの結果は、サーバコンピュータ７００からネットワークインターフェースコントローラ９２３を経由して要求側クライアント装置へパケットを送り返すことである。サーバコンピュータ７００は、暗号化エンジンとプロトコル非依存プロキシサーバ７２０がインストールされた、例えばＣＥＮＴＯＳで実行されるハードウェアサーバである。
【００３９】
ここで図１２を参照すると、ローカルプロキシサーバ４００はサーバコンピュータ７００から暗号化パケット９２９を受信してネットワークパケットの分解プロセス４２０をトリガする。ネットワークパケットの分解プロセス４２０は、プロセス４１０内のパケット送信からの応答でトリガされる。受信されたパケットのデータとコンテンツとは変数「Ａ」に格納され、データの復号プロセス３３０で暗号化エンジンによって復号される。受信されたパケットの復号されたコンテンツは、プロセス４１０内で「パケットＡ」に応答として挿入される応答である。ローカルプロキシサーバ４００はユーザの装置にインストール及び実行されているソフトウェアコンポーネント又はスクリプトである。それは本明細書に記載のプロセス、本明細書に記載のドライバ、並びにプロセス間通信を用いるその他のソフトウェアからのコマンドを待機する。それは傍受された送出パケットのトラフィックをルーティングし、ネットワークパケットを送受信し、接続ノードを切り替え、データをルーティングするノードの最適な場所を検出し、ノード及び／又は接続ノードの送出ＩＰアドレスをランダム化するように構成される。プロキシサーバは、９３０に記載されたグローバルノードＩＰ変数内で定義されたサーバノードＩＰアドレスに接続してトラフィックを転送する。グローバルノードＩＰ変数９３０は、接続のルーティングに使われているノードサーバのＩＰアドレスを含むソフトウェア内でグローバルに設定された変数である。サーバコンピュータ７００は、暗号化エンジンとプロトコル非依存プロキシサーバ７２０がインストールされた、例えばＣＥＮＴＯＳで実行されるハードウェアサーバである。データの復号プロセス３３０は、暗号化エンジンプロセス３００が、必要となるパラメータ「暗号化データ」及び「一意の標的識別子」と共にアクションコマンド「データの復号」を受信した時にトリガされる。暗号化データパラメータは変数「Ａ」内に格納され、データの復号が成功裏に完了した後でクリアされる。一意の標的識別子は変数「Ｂ」内に格納され、データの暗号化が成功裏に完了した後でクリアされる。
【００４０】
第１のステップにおいて、ローカルプロキシサーバ４００は、変数「Ｂ」から受信されたデータを展開するプロセス３８０と内部的に通信する。変数「Ｂ」の値は新規の展開された値で更新される。データの展開プロセス３８０は、暗号化エンジンプロセスが、要求されるパラメータ「圧縮データ」と共にコマンド「データの展開」を受信した時にトリガされる。ローカルプロキシサーバ４００は、システム定義された圧縮アルゴリズム（例えばＬＺ４、ＺＩＰ、ＲＡＲ、ＴＡＲ、又はＴＡＲ．ＧＺ）を用いてパラメータ「圧縮データ」を展開する。展開されたデータはこのプロセスの結果として返される。
【００４１】
第２のステップにおいて、ローカルプロキシサーバ４００は、変数「Ｂ」内に一意の標的識別子に依存する所定のパターンで分散された暗号化鍵を構築するプロセス３５０と内部的に通信する。
【００４２】
ここで図１３を参照すると、暗号化鍵の構築プロセス３５０と暗号化コンテンツの再構築は、暗号化エンジンプロセス３００が、必要となるパラメータ「暗号化データ」及び「一意の標的識別子」と共にコマンド「鍵の構築」を受信した時にトリガされる。暗号化エンジン３００はユーザの装置にインストール及び実行されているソフトウェアコンポーネント又はスクリプトである。それは本明細書に記載のプロセス、本明細書に記載のドライバ、並びにプロセス間通信を用いるその他のソフトウェアからのコマンドを待機する。それは送出パケットのコンテンツを暗号化し、着信パケットのデータを復号し、ランダム暗号化鍵を生成し、動的暗号化のために暗号化鍵を分散しそれを再構築し、暗号化ハッシュを生成するように構成される。暗号化鍵の構築プロセス３５０は、「一意の標的識別子」パラメータからの論理パターンを用いて暗号化データパラメータから暗号化鍵と暗号化コンテンツを抽出する。暗号化鍵の分散に係る一意の標的識別子の相互動作を定義する方法は、暗号化エンジン３００にハードコーディングされている。「データの暗号化」及び「データの復号」プロセスが機能し、情報を正しくコンパイル及びデコンパイルするために、ハードコーディングされた方法は、ローカル暗号化エンジン３００においてとサーバコンピュータ７００にある暗号化エンジンにおいて略同じでなければならない。例を挙げるために、一意の標的識別子９２２として値「ＳＣＢＡ１３４２」を、秘密の分散された暗号化鍵を含む暗号化コンテンツ９２９として値「７Ｚ６Ｗ７５６ＥＦ８９Ｙ５３Ａ４１６２３６ＢＤ２Ｄ３ＢＸＡ３３１Ｅ３Ｄ３６７Ｃ５」を用いる。暗号化鍵９２１内の対応する各文字の位置マークとして一意の標的識別子から数字及び文字を利用して、暗号化コンテンツから、分散された暗号化鍵と暗号化コンテンツとを再構築して分割するパターンロジックを用いる。０〜９の数字は０〜９の値範囲を有する。英語のアルファベットの文字は１０〜３５の値範囲を有する。暗号化鍵を分散させるパターンを把握した上で、一意の標的識別子の値「ＳＣＢＡ１３４２」を位置値に変換する。文字「Ｓ」は一意の標的識別子の１文字目であり、変換されると位置値２８を有する、すなわち、暗号化鍵９２１の１文字目は暗号化データ９２９の２８文字目である。分散パターン「ＳＣＢＡ１３４２」の正確な位置変換は、「２８−１２−１１−１０−１−３−４−２」となる。暗号化コンテンツ内の暗号化鍵の分散が完了した後、このプロセスの結果として２つの変数が得られる。復号エンジン３３０によって復号されるべき新規データとしての、暗号化鍵９２１の値「ＸＹ９８７６ＷＺ」、及び暗号化コンテンツ９２９の値「７５６ＥＦ５３Ａ４１６２３６ＢＤ２Ｄ３ＢＡ３３１Ｅ３Ｄ３６７Ｃ５」である。プロセス３５０は２つの変数を返す：動的暗号化鍵９２１と暗号化コンテンツ９２９である。暗号化鍵は一時変数「Ｃ」に格納され、暗号化コンテンツは一時変数「Ｄ」に格納される。第３のステップは、システム定義された暗号化アルゴリズム（例えばＡＥＳ、ＲＳＡ、Ｓｅｒｐｅｎｔ、Ｔｗｏ−ｆｉｓｈ）を利用して、復号プロセス３００を用いて、変数「Ｃ」から構築された暗号化鍵で変数「Ｄ」を復号する。このプロセスの結果として復号されたデータが返される。これらの変数はクリアされ、メモリから削除される。これにより、データの復号が完了する。復号されたパケット９３１は返され、当初のネットワーク要求への返信を含むネットワークパケットとしてのネットワークパケット９２５に挿入される。
【００４３】
ここで図１４を参照すると、ローカルプロキシサーバ４００プロセスが、要求されるパラメータ「一意のノード識別子」と共にコマンド「ノードの切り替え」を受信した時に、ノード接続を切断したり、ネットワークセキュリティを一時的に無効にしたり損傷したりすることなくノードスイッチャプロセス４４０アドレスがトリガされる。ローカルプロキシサーバ４００はユーザの装置上でインストール及び実行されるソフトウェアコンポーネント又はスクリプトである。それは本明細書に記載のプロセス、本明細書に記載のドライバ、並びにプロセス間通信を用いるその他のソフトウェアからのコマンドを待機する。それは傍受された送出パケットのトラフィックをルーティングし、ネットワークパケットを送受信し、接続ノードを切り替え、データをルーティングするノードの最適な場所を検出し、ノード及び／又は接続ノードの送出ＩＰアドレスをランダム化するように構成される。プロキシサーバは、９３０に記載されたグローバルノードＩＰ変数内で定義されたサーバノードＩＰアドレスに接続してトラフィックを転送する。グローバルノードＩＰ変数９３０は、接続のルーティングに使われているノードサーバのＩＰアドレスを含むソフトウェア内でグローバルに設定された変数である。ノードスイッチャプロセス４４０は、利用可能なノード５１０のリストをクエリする。利用可能なノードのリストプロセス５１０は、接続に利用可能なＩＰアドレスの配列を返し、それを一時変数「Ａ」に格納する。変数「Ａ」内の配列から、ランダムＩＰアドレスが選択され、グローバルノードＩＰ変数５１０として設定される。送出ネットワークパケットによりトリガされる次の要求で、ノードへの接続が自動的に確立される。
【００４４】
上記から明らかであるとおり、介在するルーティングサーバのみがそれを復号可能であるように各クライアントのパケットが異なる形で暗号化され、ルーティングサーバを経由して複数のクライアント装置が安全に相互に通信可能である。このような例において、各クライアント装置からの送出パケットは、送信先アドレスによって他のクライアント装置を識別する。
【００４５】
本明細書において用いられる用語「サーバ」は限定的でなく、本明細書に記載の機能を実行可能なあらゆる電子機器、例えばサーバ、コンピュータ、モバイル機器、スマートフォン等を指す。
【００４６】
上述の内容は、特定の非限定的な例示的実施形態を提供するが、上述の事項の組み合わせ、部分集合、変異が想定されることが理解されるべきである。意図される独占権は請求の範囲によって定義される。
【図１】
2016510196.tif 000003
【図２】
2016510196.tif 000004
【図３】
2016510196.tif 000005
【図４】
2016510196.tif 000006
【図５】
2016510196.tif 000007
【図６】
2016510196.tif 000008
【図７】
2016510196.tif 000009
【図８】
2016510196.tif 000010
【図９】
2016510196.tif 000011
【図１０】
2016510196.tif 000012
【図１１】
2016510196.tif 000013
【図１２】
2016510196.tif 000014
【図１３】
2016510196.tif 000015
【図１４】
2016510196.tif 000016
【国際調査報告】
2016510196.tif 000017
2016510196.tif 000018