6

私のアプリケーションには、選択した構成ファイルを保護する可能性があります。これはSectionInformation.ProtectSection、ロードされたの指定されたセクションのメソッドを使用して行われますConfiguration。標準プロバイダーを使用していますRsaProtectedConfigurationProvider

コードは非常に単純です-MSDNの例と非常によく似ています。

プロバイダーが使用する必要のあるキーサイズを設定する方法はありますか?ご存知のように、RSAのデフォルトは1024です。2048以上に設定する必要があります。

asp_regiis.exeを使用する場合は、コマンドラインオプション-sizeを使用して同様のことを行うことができます。しかし、私はコードからそれを行う必要があります。たぶん、キーを構成または事前作成して、デフォルトのキーストアに何らかの方法で挿入する方法があるので、次にを使用すると、キーに追いつくでしょう...RsaProtectedConfigurationProviderSectionInformation.ProtectSection

アドバイスや例をありがとう。

4

1 に答える 1

1

RSAProtectedConfigurationProvider2つの異なる方法を提供します。呼び出されAddKeyたものを使用して、コンテナ内にキーを作成できます。キーをエクスポート可能としてマークすると、ExportKey後でメソッドを使用してそのキーを取得し、別の場所に保存できます。

既存のキーがすでにある場合は、このメソッドを使用できる場合がありますImportKey。から出てくるものとよく似たXMLブロブを受け入れますExportKey

RsaProtectedConfigurationProviderNetFrameworkConfigurationKeyが提供されていない場合は、デフォルトのコンテナ名を使用します。したがって、キーを事前に作成してそのコンテナに追加する場合、プロバイダーはそれを使用するときにそれを取得する必要があります。

// Same properties as .NET uses to load the key
CspParameters csp = new CspParameters();
csp.KeyContainerName = "NetFrameworkConfigurationKey"; 
csp.KeyNumber = 1;
csp.ProviderType = 1;

// Create the new key, and save it in the key store
rsa = new RSACryptoServiceProvider(2048, csp);
rsa.PersistKeyInCsp = true;
rsa.Clear();
于 2013-10-18T20:15:27.967 に答える