2012-02-22 19 views
2

最も安全な方法で接続文字列を格納することに関する質問。C#で暗号化されたデータと秘密鍵を保持する安全で安全な方法Dll

現在の方法(笑いません)
1. RSAEncryptionプログラムを書き込み、接続文字列を渡してcypherを生成しました。
2.リソースファイルに格納されているCypherと秘密鍵
3.取得した暗号化ファイルを再度実行します。

設定ファイル
を使用しての私の懸念 - 私のDLLを使用しますプロジェクトは、私が

をたくない私の設定ファイルをコピーする必要がありますので、私は、ライブラリを作成しています内の接続文字列を格納するために私のベストプラクティスを教えてくださいdll。

よろしく、 Omkar

+1

プログラムで実行されるすべては、手動で設定ファイルを使用して – zerkms

+0

を再現できますか?私に例を挙げてください。 – om471987

+2

アプリケーションがMITM攻撃を使用してデータベースに接続するときに、ローカル保護がどの程度複雑であるかにかかわらず、接続文字列を取得できます。 – Andreas

答えて

1

設定のセクションを暗号化するために、.NETでのメカニズムに組み込まれてあります。 DPAPIを使用してマシン自体にキーを作成させることができるので、Windows以外のものは何もわかりません。最も良いことは、これを無料で手に入れること(小さな学習曲線)であり、学習曲線は設定ファイルの暗号化に関するGoogleの迅速な検索で簡単に処理できます。すべてのシナリオに当てはまるわけではありませんが、迅速に構想されたものよりも安全性が高い可能性があります。

ここで唯一の問題は、シュリンクラップウェア(ソフトウェアを販売している)の場合ですが、インストールにネットワークが必要で、暗号化中に知ることができないビットを追加することで対応できますインストール中にメモリに保存されます。 :-)

+0

保護コストは製品コストより高くはならない;-) – zerkms

+0

hmmm。本当に多くのオーバーヘッド。私が結論に至る前に、それを徹底的に勉強しましょう。どうもありがとう。誰かが情報をチェックしたい場合は、このリンクを訪問してください。 http://msdn.microsoft.com/en-us/library/ff647398.aspx – om471987

+0

この方法のもう一つの欠点は、ローカルコンピュータでのみ動作することです。共有ディレクトリからプログラムを起動すると、これは実行されません。作業。私の頭の後ろにはサーバのためのものがありますが、それ以降はもうそれを気にしませんでした。 – bernhardrusch

関連する問題