簡単に安全・プライベートなデータ通信環境を構築するP2Pテクノロジーとは [アーキテクチャー]
December 24, 2024
スマートフォンやパソコンを使って、外出先など何処からでも自宅にアクセスできる環境がほしいと思うことはないでしょうか? 「トンネルアプリ」は、そのような環境を安全で簡単に構築することが可能なツールとして、無料でサービス提供しています。 この記事では、そんな「トンネルアプリ」がどのような仕組や技術によって実現しているかをご紹介したいと思います。
「トンネルアプリ」のP2Pテクノロジーについて、この記事を含めて以下の説明をしています。
「トンネルアプリ」は、スマホやPCなどの端末の間に、独自のP2P技術で簡単に安全・プライベートなトンネル環境を作り、異なるネットワークのクライアントアプリとサーバーアプリのデータ通信を可能にします。
P2P基盤のアーキテクチャー
P2P基盤のアーキテクチャーは、端末側でアプリとのデータ通信を担うプロキシーサーバー層と、プロキシーサーバー層間のデータ通信を繋ぐ中継サーバー層によって構成されます。
プロキシーサーバー層は、クライアントアプリからの要求データを受信するフォワードプロキシー機能と、 クライアントアプリから受信した要求データをサーバーアプリに送信するリバースプロキシー機能を有しています。 アプリとのデータ通信は、TCPとUDPに対応しています。
データ通信の流れ
データ通信を開始する前に、リバースプロキシーは、中継サーバーへ接続(1)を行い、フォワードプロキシーから受信した要求データの橋渡しを待ちます。
クライアントアプリは、フォワードプロキシーへ接続(2)を行い、サーバーアプリへの要求データを送信します。 フォワードプロキシーは、中継サーバーへ接続(3)を行い、クライアントアプリから受信した要求データを暗号化して送信します。 その際に、繋ぎ先となるリバースプロキシーの端末情報とサーバーアプリの接続先情報も合わせて送信します。
中継サーバーは、受信した繋ぎ先のリバースプロキシーの端末情報から接続(1)を選択して橋渡し(4)を行い、さらに受信した暗号化データとサーバーアプリの接続先情報をリバースプロキシーに送信します。
リバースプロキシーは、受信した暗号化データを元の要求データに複合化したうえで、合わせて受信した接続先情報を元にサーバーアプリへ接続(5)を行い、元の要求データを送信します。 サーバーアプリからの応答データは、一連の接続の応答経路を通じて、クライアントアプリへ送信されます。
次の記事で、「トンネルアプリ」のP2Pテクノロジーにおけるセキュリティを説明します。
最後までお読みいただきありがとうございました!ご意見などございましたらメッセージをお寄せいただけると幸いです。
P2P · IoT/M2M · Security · Android


