2012-01-09 5 views
1

私は最近、aspnet_regiisを使用してweb.configの一部を暗号化する機能を発見しました。別の鍵でデータベースに格納されたデータをさらに暗号化したいが、web.configの暗号化に使用したシステムと同じ鍵を使用してその鍵を暗号化して保管したい。 C#/ ASP.Net自体からプログラムでアクセスする方法はありますか?aspnet_regiisがweb.configを暗号化してプログラムでデータを暗号化するのに使用するのと同じ鍵を使用

基本的に、シナリオは次のとおりです。web.configの接続文字列は、aspnet_regiis(現在RSAプロバイダを使用してAESプロバイダを動作させるまで)で暗号化されます。次に、別のキーで暗号化されて格納されている初期データベース(初期データベースの書き込み可能な接続を含む)に格納されている追加の接続文字列情報(他のデータベース用)が必要ですが、そのキーは初期データベースに格納され、 web.configが使用した初期暗号化。

それ以外の場合は、web.configで使用されているアルゴリズムのキーとIVを保存する必要があります.Webの暗号化に使用したWindowsセキュリティ「キーチェーン」を使用する方が安全です最初に.configを実行します。

+0

あなたが所有していないRSA秘密鍵を使用することはめったに望ましくありません。 –

答えて

0

まず、aspnet_setregで使用される暗号化キーを取得できるかどうかはわかりません。

第2に、マシン固有のキーを使用してデータベース内のデータを暗号化することは大変良い考えではないと思います。そのマシンが停止し、データベースをバックアップから別のマシンにリストアする必要がある場合、データベース内のデータはどうなりますか?

データを抽出するために使用されるコンパイル済みアプリケーションに格納されているキーとivを使用して、可逆暗号化アルゴリズム(Rinjadel)を使用するほうがずっと良いと思います。

他のアプリケーションで接続文字列が必要な場合は、Windowsセキュリティ資格情報を使用してWCFサービスを通じてアクセスを集中管理できます。

関連する問題