私は今、次のように(クライアント/サーバー通信)セットアップを行っています:
1)クライアントはユーザーにユーザー名とパスを要求します
2)クライアントはこれをポート80(Web経由)を使用してサーバーに送信します
3)サーバーは、これが正しいパスワード(正しいパス/間違ったパス)であるかどうかを通知し、正しい場合は暗号化キーをクライアントに送信します。
4)クライアントは一連のコマンドをサーバーに送信します(すべてのコマンドは、サーバーがクライアントに提供した暗号化キーで始まります)。
5)サーバーはencryptionKeyをチェックしてクライアントを識別し、コマンドに応答します
私の質問は:
これは物事を安全に保つ正しい方法ですか?単一の暗号化キーを前後に送信することが効果があるかどうかはわかりません。クライアントに暗号化キーを生成させ、サーバーにそれを検証させると、さらに役立ちますか?
私がやりたいことは、Facebookがアプリを認証するために行うことのようなものです。たとえば、facebookは、wiresharkやtcpアナライザーなどのプログラムを介して生のパスワードを盗むのを防ぐために何かをしていると想像できます。
それがまったく重要な場合、私のプログラムはc#で記述されており、標準のhttpを使用してデータを送受信します。
ありがとう、
Rohit