Windows Phone 8 用の安全なチャット アプリケーションの作成に取り組んでいます。
ASMX SOAP サービスを使用する予定であり、公開キー暗号化技術を使用してデータを暗号化することにしましたが、ネットワーク セキュリティについてはまったくの初心者です。
私のアプローチは次のとおりです。
- ユーザーがサインアップするとすぐに、公開鍵と秘密鍵のペアがサーバーで生成されます。
- その後、公開鍵は電話アプリ クライアントに送り返され、クライアントからサーバーに送信されるすべてのデータは、クライアントの公開鍵によって暗号化され、サーバーの秘密鍵によって復号化されます。
ここで知りたいのは、サーバーがクライアントに送信する応答について、それらがどのように暗号化および復号化されるかということです。
サーバー上の秘密鍵を使用して応答を暗号化すると、「公開」鍵が公開されているため、誰でも復号化できます。
これは、サーバー上で 1 世代、クライアント上で 1 世代の 2 つの公開鍵と秘密鍵のペアを生成する必要があることを意味します。
1 つのペアは、サーバーに送信されるデータを暗号化および復号化し、他のペア (クライアントで生成) は、データがサーバーから応答として送信されるときに同じことを行います。