自動化されたクライアント上で静的なパスワードを格納するための最良の方法

StackOverflow https://stackoverflow.com/questions/1901765

質問

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

役に立ちましたか?

解決

私は1つの事のために、あなたのコードのための良い難読化ツールを取得して検討します。それはあなたのアセンブリに反射板を使用してから人々を防ぐ(または少なくとも阻止)されます。

しかし、あなたの認証システムがあまりにも安全な音ではありません。 を使用すると、パスワードが常に同じであれば、パスワードを暗号化しなかった場合でも、それが認証するために何をサーバーに送信する必要が把握するパケットを盗聴するのと同じくらい簡単になります。それはそれが送信された前に復号化されなければならないので。

あなたは非常に少なくとも、SSLを介して行かなければならないと思います。

また、あなたはあなたには、いくつかの公共のクライアントの環境でこれをインストールしている場合はマシンのハッシュを使用して署名されたXMLと非同期暗号化を使用してに見たいと思うかもしれません。ライセンス方式のような何かます。

私はあなたのアーキテクチャやあなたが実行している環境について何も知らないので、私は最高のセキュリティ実装であるものについてどのような勧告を行うことはできませんが、私は、現在の設定がないあなたを伝えることができます私に安全な音ます。

他のヒント

あなたが使用できるメソッドの数を持っていますが、実装が最も簡単なの一つは、パスワードを暗号化してからちょうどユーザーにデプロイされるアプリケーションのためのapp.configに保管することです。

// MSDN:

あなたは HTTPを見てきました.microsoft.com / EN-US /ライブラリ/ system.security.cryptography.protecteddata.aspx に?

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

HTH

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

彼らは、「認証されたクライアント」になるために認証された

どのように?

誰かがちょうど彼らが認証されたクライアントです今では自宅のコンピュータにアプリケーションをコピーしてすることはできますか?

あなたのアセンブリ内の値に基づいてアップロードできるユーザーを決定しようとしている場合は、

この巨大なセキュリティの監督のように思える。

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

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top