asp.net2.0 には、web.config の一部のデータを暗号化する新しい関数があります。この記事では、RSAProtectedConfigurationProvider と DPAPIProtectedConfigurationProvider を使用して暗号化する手順について説明します。
1. まず、暗号化する web.config 内の構成セクションを暗号化できるかどうかを判断します
。 2. RSA キー コンテナーを作成します。
3. web.config で使用するキー コンテナーを特定します。
4. web.config を暗号化します。
5. にアクセス許可を付与します。 RSA キー コンテナー
ステップ 1: まず、暗号化する web.config の構成セクションを暗号化できるかどうかを判断します。
ASP.NET 2.0 は、Web.config の一部の構成セクションの暗号化をサポートしています。次の構成セクションのデータは暗号化できません:
<processModel>
<ランタイム>
<mscorlib>
<起動>
<system.runtime.remoting>
<configProtectedData>
<衛星アセンブリ>
<暗号化設定>
<cryptoNameMapping>
<暗号クラス>
ステップ 2: RSA キー コンテナーを作成する RSA キー コンテナーを作成するには、ASP.NET IIS 登録ツール (Aspnet_regiis.exe) と –pc スイッチを使用してください。キー コンテナーには、アプリケーションの Web.config ファイルの configProtectedData セクションで指定された RsaProtectedConfigurationProvider によって使用されるキー コンテナーを識別する名前を付ける必要があります。新しく作成した RSA キー コンテナを確実にエクスポートできるようにするには、-exp オプションを含める必要があります。
たとえば、次のコマンドは、エクスポート可能なマシンレベルのキー コンテナである ABeenKeys という名前の RSA キー コンテナを作成します。
aspnet_regiis -pc "ABeenKeys"–exp
ステップ 3: web.config を変更してキー コンテナーを識別する
Web.config ファイルを編集して、使用するキー コンテナを特定します。
<configProtectedData> を web.config に追加して、ABeenKeys という名前のマシンレベルの RSA キー コンテナの場合、xmlns 属性を <configuration> に追加します。
<configuration xmlns=" http://schemas.microsoft.com/.NetConfiguration/v2.0 ">saProtectedConfigurationProvider は、ABeenKeys という名前のマシンレベルの RSA キー コンテナーを使用します。
<configProtectedData > <providers> <add name="ABeenProvider" type="System.Configuration.RsaProtectedConfigurationProvider, System.Configuration, Version=2.0.0.0,Culture=neutral,processorArchitecture=MSIL" keyContainerName="ABeenKeys"/> </providers > </configProtectedData>
ステップ 4: web.config ファイルの <connectionStrings> セクションを暗号化する
web.config ファイルの構成セクションを暗号化
> aspnet_regiis -pe "connectionStrings" -app "/connectionTest"
ステップ 5: RSA キー コンテナーへのアクセス許可は、どのユーザー アクセス許可を与える必要があるかという次のコードによって決定できます
。
デフォルトでは、RSA キー コンテナは、それが配置されているサーバー上の NTFS アクセス制御リスト (ACL) によって厳重に保護されています。これにより、暗号化キーにアクセスできるユーザーが制限されるため、暗号化された情報のセキュリティが強化されます。 ASP.NET が RSA キー コンテナーを使用できるようにするには、ASP.NET アプリケーションのプロセス ID に RSA キー コンテナーへの読み取りアクセスを許可する必要があります。 -pa スイッチを指定して Aspnet_regiis.exe ツールを使用すると、ASP.NET アプリケーションの ID に RSA キー コンテナーへの読み取りアクセス許可を付与できます。たとえば、次のコマンドは、Windows Server 2003 NETWORK SERVICE アカウントに、ABeenKeys という名前のマシンレベルの RSA キー コンテナへの読み取りアクセスを付与します:
aspnet_regiis -pa "ABeenKeys" "NT AUTHORITYNETWORK SERVICE"
知らせ:
RSA キー コンテナがユーザー レベルのコンテナである場合は、Windows プロファイルにキーが保存されているユーザーとしてログインする必要があります。また、ユーザー レベルの RSA キー コンテナへのアクセスを許可するには、-pku オプションを含める必要があります。
コンピューター構成で指定されたデフォルトの RsaProtectedConfigurationProvider を使用するには、まずアプリケーションの Windows ID に NetFrameworkConfigurationKey という名前のコンピューター キー コンテナーへのアクセスを許可する必要があります。これは、デフォルト プロバイダーに指定されたキー コンテナーです。たとえば、次のコマンドは、デフォルトの RsaProtectedConfigurationProvider によって使用される RSA キー コンテナへのアクセスを NETWORK SERVICE アカウントに許可します。
aspnet_regiis -pa "NetFrameworkConfigurationKey" "NT AUTHORITYNETWORK SERVICE"
NetFrameworkConfigurationKey RSA キー コンテナーは、Aspnet_regiis.exe ツールによって発行されるコマンドのデフォルトのキー コンテナーです。したがって、上記のコマンドは次のように発行することもできます:
aspnet_regiis -pa "NT AUTHORITYNETWORK SERVICE"
code download