0

AndroidクライアントをWCFWebサービスに接続したい。これを行う方法を説明するいくつかの優れたガイドがありますが、httpsの概念は私にとって本当にぼやけています。これが私が欲しいものです:

1)認証されたクライアントとhttpsを介して通信するセルフホストWebサービス。ユーザーデータベースはSQLServer上にあります。サービスは、すべてのユーザーが実行できる「単純なインストール」である必要があります。ユーザーは自分のPCにサービスをインストールし、GooglePlayからクライアントをダウンロードしてIPアドレスのみを使用して構成します。

問題:wshttpがmasineに証明書をインストールする必要があるように見えるため、WCFを使用してこれを実行することは不可能のようです。可能な方法は、インストール中に自己署名された証明書を生成することですが、ユーザーフレンドリーな方法でAndroidクライアントに証明書を取得するにはどうすればよいですか?

2)サービスと通信できるGooglePlayで公開されているAndroidアプリ。サービスに送信されるデータは、単純なデータ型(文字列データと整数データ)だけでなく、3〜25Mbの大きなバイナリにもなります。

サービスをインストールするユーザーは、自分のIPアドレス以上の知識を持っていないため、証明書の問題やその他の技術的な詳細に煩わされることはありません。1つのオプションは、トランスポートセキュリティの代わりにメッセージを使用することかもしれませんが、私の知識はこの分野では非常に限られています。

サーバーとクライアント間で受け渡される情報は個人的なものであり、パスワードが使用されるマッチングサイト、個人情報、カレンダーイベントなどを含むパスワードが含まれる場合があります。送金注文、クレジットカード番号、アカウント番号は含まれません。

サーバーとクライアントの両方のコア機能は、多かれ少なかれすでに実装されています。クライアントとサーバー間の通信を保護する必要があります。

これを開発するための良いアプローチの推奨はありがたいです!

4

1 に答える 1

0

サーバー サービスをエンド ユーザーに展開する方法により、ssl で WCF を使用することが難しくなります。他のオプションは別の問題を引き起こします。この特定のプロジェクトでは、Bouncy Castle、SslSocket、およびカスタム プロトコルを使用した古き良きソケット プログラミングを優先して、WCF を放棄しました。やり過ぎかもしれませんが、認証証明書の管理と送信されるデータの両方を完全に制御できます。私は自己署名証明書でsslを使用しており、Androidの証明書検証方法をオーバーライドして、ホスト名の再設定を除いて証明書内のすべてのデータを手動で検証しています...事前共有キーを使用してデータを暗号化および復号化するので、私にとっては十分です。

助けてくれてありがとう

于 2012-10-10T14:23:27.977 に答える