1

サーバーに接続する多くのクライアントで構成されるシステムを構築しています。クライアントは、Web サービス呼び出しを介してサーバーにデータを自動的にプッシュします。クライアントがサーバーで認証するための認証メカニズムを構築し、認証されたクライアントのみがデータをアップロードできるようにしました。問題は、私がパスワードをクライアント コードにハードコーディングしており、誰かがリフレクターを使用している場合にアクセスできることです。ユーザー入力がないこのシナリオでは、静的パスワードをクライアントに保存する最良の方法は何でしょうか? ありがとうございます (クライアントの .Net バージョンは 2.0 で、サーバーの .net バージョンは 3.5 です)

4

4 に答える 4

1

http://msdn.microsoft.com/en-us/library/system.security.cryptography.protecteddata.aspxを見ましたか?

また、Web サービスは WCF ですか? その場合は、相互証明書セキュリティを使用できます。パスワードよりもはるかに堅牢です。

HTH

于 2009-12-14T16:19:14.367 に答える
1

「認証されたクライアントのみがデータをアップロードできるように、クライアントがサーバーで認証するための認証メカニズムを構築しました。」

「認証済みクライアント」になるためにどのように認証されますか?

誰かがあなたのアプリケーションを自宅のコンピューターにコピーするだけで、認証されたクライアントになる可能性はありますか?

アセンブリの値に基づいて誰がアップロードできるかを決定しようとしている場合、これは大きなセキュリティ上の見落としのように思えます。

パスワードとログインメカニズムを回避したい場合は、IPベースの検証を行うことができます。

于 2009-12-14T16:38:30.290 に答える
1

使用できる方法はいくつかありますが、最も簡単に実装できる方法の 1 つは、パスワードを暗号化し、それをユーザーにデプロイされるアプリケーションの app.config に保存することです。

于 2009-12-14T16:04:00.873 に答える
0

一つには、あなたのコードに適した難読化ツールを入手することを検討します。これにより、人々がアセンブリでリフレクターを使用するのを防ぐ (または少なくとも抑止する) ことができます。

ただし、認証システムはあまり安全ではないようです。パスワードを暗号化したとしても、パスワードが常に同じであれば、パケットをスニッフィングして、認証のためにサーバーに送信する必要があるものを特定するのと同じくらい簡単です。送信前に復号化する必要があるためです。

少なくともSSLを通過する必要があります。

また、パブリック クライアントの環境にこれをインストールする場合は、マシン ハッシュを使用して署名付き XML で非同期暗号化を使用することを検討することもできます。ライセンススキームのようなもの。

私はあなたのアーキテクチャやあなたが実行している環境について何も知らないので、何が最善のセキュリティ実装になるかについて推奨することはできませんが、現在のセットアップは安全ではないと言えます自分。

于 2009-12-14T16:25:19.677 に答える