gtalk、whatsapp などのチャット アプリケーションを考えてみましょう。私の質問は、これらのサーバー側の実装がどのように行われるかに関連しています。シナリオは次のとおりです。クライアント A は、チャット サーバー Sを
介してクライアント B と話したいと考えています。通信が実装されている場合、S で実行されている NAT (ネットワーク アドレス変換) サーバーがあると仮定します。
この時点で、S または S で実行されている任意のチャット サーバーが、A と B の間の仲介役として機能します。 .
私の最初の質問は次のとおりです。クライアントとサーバー間の通信は暗号化されていますか? データは TCP/IP 通信スタックに従ってパケット化され、このパケットのデータ部分には送信された実際のテキスト A が含まれることはわかっています。でもこのデータ部分、暗号化で守られているの?つまり、誰かがパケットを盗聴してデータを抽出する場合、A が B に何を送信したかを突き止めることができるでしょうか?
質問する理由: チャット アプリケーションを作成する場合、見知らぬ人や自分自身からユーザーのプライバシーを保護するにはどうすればよいでしょうか (A が送信したものはサーバー コードに表示されるため、ファイル; 誰が知っている、Google がこれをやっている可能性があります :P)。
ここで、B がオフラインであると仮定すると、S は、B がオンラインになり、保存されたメッセージを要求するまで、B へのメッセージの送信を遅らせる必要があります。または、この時点で、一時的にファイルを保存する Dropbox のようなアプリケーションを考えてみましょう。
2 番目の質問: S はこのメッセージまたはファイルをどのように保存しますか? 暗号化はどのように行われますか? 要するに、もし私がそのような製品を作るとしたら、ユーザーのデータが私たちのサーバー上で安全かつプライベートであり、私や私の会社でさえ、たとえ望んでいてもそれを読むことができないことをどのようにユーザーに保証できるでしょうか.
要約すると、パブリック ドメインの Web サイトは、どのようにしてユーザーのデータを非公開にし、見知らぬ人やそれ自体から安全に保つことができるのでしょうか?
提案をありがとう!