マイクロソフト系技術情報 Wiki」は、「Open棟梁Project」,「OSSコンソーシアム .NET開発基盤部会」によって運営されています。

目次

概要

  • .NET の config
  • 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のプロパイダを使用している模様。

キーコンテナ(鍵コンテナ)

  • 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

その他


Tags: :.NET開発, :セキュリティ, :暗号化


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2019-04-07 (日) 06:48:35 (103d)