app.configは、何らかの理由でオプションではないものとします。app.configなしで接続文字列を暗号化する方法
暗号化された接続文字列を、アセンブリ自体またはXMLファイルのような別のapp.configに保存するにはどうすればよいですか?
(私はそれが重要とは思わないが、これはCOMアドインでExcel 2003のためのものです)
app.configは、何らかの理由でオプションではないものとします。app.configなしで接続文字列を暗号化する方法
暗号化された接続文字列を、アセンブリ自体またはXMLファイルのような別のapp.configに保存するにはどうすればよいですか?
(私はそれが重要とは思わないが、これはCOMアドインでExcel 2003のためのものです)
これは、分離ストレージの良いアプリケーションになることができます。
http://msdn.microsoft.com/en-us/library/3ak841sy(VS.80).aspx
あなたはファイルを復号化/暗号化 にSystem.Security.Cryptography名前空間のクラスを使用することができます。しかし、あなたは別の問題に遭遇します。 あなたは鍵を保存しますか?アセンブリに格納する場合は、 を参照してキーを検索し、他の誰かがそれを使用して データを復号化することができます。
http://www.codeproject.com/KB/security/encryptstrings.aspx
と
http://sharpertutorials.com/simple-string-encryption-and-decryption/
右の大きな問題は、キーを保護する方法を考え出すことです。 – Arlen
私は大きな問題は言っていませんが、私は不可能な問題を言っています。アセンブリにキーがある場合は、攻撃者がキーを持っています。それは困難にすることができますが、それはちょうど "不明瞭なセキュリティ"です。それは接続文字列を保護するほど暗号化されていないので、攻撃者にとって価値がないほど鍵を隠してしまう可能性があります。それが価値があるなら...彼らは鍵を見つけるでしょう。 –
をチェックアウトするかはProtectedDataクラスのために良い使用のようですね。
http://msdn.microsoft.com/en-us/library/system.security.cryptography.protecteddata.aspx
保護呼び出すと、あなたの接続文字列を含むバイト配列を渡すと、その後をbase64に変換し、ローカルファイルに保存することができた(暗号化されたデータのバイト配列を返します。プロテクト解除を呼び出す
暗号化された接続文字列を含むバイト配列を渡すと、平文接続文字列を含むバイト配列が返されます。単純にASCIIまたはUTF-8などに変換してください。
明らかに、攻撃者がアプリケーションを実行しているユーザーアカウント彼らはできるだろう文字列を回復するには、暗号化文字列をアセンブリに格納する(ユーザーアカウントにアクセスせずに回復できる)よりも少し安全です。
これはwinformアプリケーションですか?ウェブアプリケーション??それとも? – Singleton
@ Hansmukh:Excel 2003のCOMアドイン。 – Arlen