1

Windows Phone 8 用の安全なチャット アプリケーションの作成に取り組んでいます。

ASMX SOAP サービスを使用する予定であり、公開キー暗号化技術を使用してデータを暗号化することにしましたが、ネットワーク セキュリティについてはまったくの初心者です。

私のアプローチは次のとおりです。

  1. ユーザーがサインアップするとすぐに、公開鍵と秘密鍵のペアがサーバーで生成されます。
  2. その後、公開鍵は電話アプリ クライアントに送り返され、クライアントからサーバーに送信されるすべてのデータは、クライアントの公開鍵によって暗号化され、サーバーの秘密鍵によって復号化されます。

ここで知りたいのは、サーバーがクライアントに送信する応答について、それらがどのように暗号化および復号化されるかということです。

サーバー上の秘密鍵を使用して応答を暗号化すると、「公開」鍵が公開されているため、誰でも復号化できます。

これは、サーバー上で 1 世代、クライアント上で 1 世代の 2 つの公開鍵と秘密鍵のペアを生成する必要があることを意味します。

1 つのペアは、サーバーに送信されるデータを暗号化および復号化し、他のペア (クライアントで生成) は、データがサーバーから応答として送信されるときに同じことを行います。

4

2 に答える 2

0

はい、クライアントで鍵ペアを生成し、クライアントの公開鍵をサーバーに送信できます。しかし、公開鍵暗号化を使用してメッセージを暗号化すると、(a) 小さなメッセージに制限されます。1024 ビットの RSA キーは 128 バイト未満を暗号化し、(b) 公開鍵暗号化は、 AES 暗号化などの対称キー暗号化。

クライアントからサーバーに秘密裏に何かを送信する方法ができたので、サーバーの公開鍵で暗号化することにより、クライアントでランダムな対称鍵を生成し、それを秘密裏にサーバーに送信できます。現在、両側に対称鍵があり、非常に大きなメッセージを暗号化でき、特に電話でははるかに効率的です。

たとえば、AES や、メッセージが秘密であるだけでなく、改ざんが防止される認証済み暗号化モードを調べてください。

サーバーの公開鍵を見れば、誰かが簡単にクライアントになりすますことができるという問題がありますが、それは独自の暗号を実装するリスクです. :^) SSL を使用しないように求められる大学のプロジェクト以外では、独自の暗号を実装しないでください。

于 2014-06-20T18:40:05.153 に答える
0

メッセージが「飛行中*」に傍受されることを懸念している場合は、API を HTTPS サーバーに配置することをお勧めします。そうすれば、すべてがエンコードされます。

HTTPS は、バックグラウンドで発生し、アプリケーションがそれについて何も知る必要がないことを除いて、説明したことと非常によく似た処理を行います。

Hypertext Transfer Protocol Secure (HTTPS) は、コンピューター ネットワークを介した安全な通信のための通信プロトコルであり、特にインターネット上で広く展開されています。技術的には、それ自体はプロトコルではありません。むしろ、SSL/TLS プロトコルの上に Hypertext Transfer Protocol (HTTP) を単純に重ね合わせて、SSL/TLS のセキュリティ機能を標準の HTTP 通信に追加した結果です。HTTPS の主な目的は、盗聴や中間者攻撃を防ぐことです。

より詳しい情報

于 2014-06-20T18:26:28.697 に答える