私が知りたいのは、構成ファイルで接続文字列を暗号化するための明確なアプローチです。ここに私の質問があります:
マシンレベルの暗号化を使用すると、私のサーバーにアクセスする人は、接続文字列の内容を読み取る小さな .Net プログラムを作成できませんか?
エンタープライズ環境のユーザー マシンにアプリケーションを展開していて、アプリケーションの構成ファイルに接続文字列が含まれている場合、自分のアプリケーションだけがそれを復号化できるようにするにはどうすればよいですか? このシナリオは、ClickOnce 展開シナリオで特に興味深いものです。パブリッシャーサーバーで暗号化されていない構成を保存し、アプリが初めてダウンロード、インストール、実行されるときにマシンレベルで暗号化する人々について読んだことがあります。これは私には非常に間違っているように思えます.接続文字列が保護されずにワイヤを通過し、ダウンロードとアプリケーションの実行の間の短い時間、保護されずに座っています.
公開鍵と秘密鍵を取得し、アプリに署名し、構成ファイルをキーで暗号化できますか? ユーザーがそれを実行すると、署名付きアプリケーションからのみ復号化が可能になりますか?
私は ClickOnce を使用しているので、暗号化された機密情報をコードに含めたり埋め込んだりすることができます。これは、バージョン # が変更されない限り ClickOnce が変更を検出しないためです。したがって、接続文字列を変更して再コンパイルする必要がある場合、app.config のポイントはミュートされます。サーバー、クライアント、およびその間で接続文字列を保護するために、構成ファイルを使用する以外に、他にどのようなアプローチをとればよいでしょうか?