「マイクロソフト系技術情報 Wiki」は、「Open棟梁Project」,「OSSコンソーシアム .NET開発基盤部会」によって運営されています。
目次 †
概要 †
- DevPartner?の解析結果で気がついたのだけど、
\*.configのRSA 暗号化はconnectionStringSection?以外も可能らしい。
対象 †
ファイル †
Machine.config †
マシンの設定
Web.config †
ASP.NET のWebアプリケーション毎の設定
app.config(*.exe.config) †
app.configのビルド出力が、*.exe.configになる。
任意の*.configファイル †
appSettingsSection?を切り出した*.configなど。
Section †
通常、暗号化の必要な機密情報を収めたSectionをaspnet_regiis.exeで暗号化。
appSettings †
カスタム アプリケーションの設定
connectionStrings †
DBMSなどへの、接続文字列
identity †
偽装資格情報
sessionState †
セッション状態プロバイダ用の接続文字列
暗号化できないSection †
- 以下のSectionは通常、暗号化が出来ない。
- processModel
- runtime
- mscorlib
- startup
- system.runtime.remoting
- configProtectedData?
- satelliteassemblies
- cryptographySettings
- cryptoNameMapping?
- cryptoClasses
- ただし、aspnet_setreg.exe ツールを使用すれば暗号化が可能。
方法 †
以下の方法で暗号化できる。
プロバイダ †
CNGのプロパイダを使用している模様。
キーコンテナ(鍵コンテナ) †
- このため、キーコンテナ(鍵コンテナ)のアクセス権云々でハマることがある模様。
- また、開発サーバから運用サーバへのデプロイのシナリオ、
Web ファームでの RSA 暗号化シナリオでは、
カスタムの RSA 暗号鍵をエクスポート&インポートすることで対応する。
RSAProtectedConfigurationProvider? †
- 既定のプロバイダ
- RSA 公開鍵暗号化を使用して、データの暗号化と暗号化解除
DPAPIProtectedConfigurationProvider? †
- Windows データ保護 API (DPAPI) を使用して、データの暗号化と暗号化解除
ツール、API †
aspnet_regiisコマンドライン・ツール †
- web.configしか暗号化出来ない(ディレクトリ指定しかサポートしない)ので、
\*.configを対象とする場合は、web.configにリネームしてaspnet_regiisで暗号化処理をする。
API(自作プログラム) †
SectionInformation?.ProtectSection?メソッド、Configuration.Saveメソッドを使用する。
- MSDN ライブラリ > .NET 開発 > .NET Framework 4.6 and 4.5 > .NET Framework クラス ライブラリ
参考 †
msdn †
その他 †
- むりせず♪なまけず? ~ぷろくらすてぃねいたーの言い訳雑記~
Tags: :.NET開発, :セキュリティ, :暗号化