No asp.net2.0, há uma nova função para criptografar alguns dados em web.config. Você pode usar RSAProtectedConfigurationProvider e DPAPIProtectedConfigurationProvider para criptografar. Este artigo explica as etapas de uso de RSAProtectedConfigurationProvidert e contêiner de chave em nível de computador para criptografia.
1. Primeiro determine se a seção de configuração em web.config a ser criptografada pode ser criptografada
2. Crie um contêiner de chave RSA
3. Identifique o contêiner de chave a ser usado em web.config
4. Criptografe web.config
5. Conceda permissões de acesso para o contêiner de chave RSA
Etapa 1: primeiro determine se a seção de configuração em web.config a ser criptografada pode ser criptografada
O ASP.NET 2.0 oferece suporte à criptografia de algumas seções de configuração do Web.config Os dados nas seguintes seções de configuração não podem ser criptografados:
<processModel>
.
<tempo de execução>
<mscorlib>
<inicialização>
<system.runtime.remoting>
<configProtectedData>
<montagens de satélites>
<configurações de criptografia>
<cryptoNameMapping>
<criptoClasses>
Etapa 2: Crie um contêiner de chave RSA Para criar um contêiner de chave RSA, use a ferramenta de registro ASP.NET IIS (Aspnet_regiis.exe) e a opção –pc. Você deve fornecer ao contêiner de chave um nome que identifique o contêiner de chave usado pelo RsaProtectedConfigurationProvider especificado na seção configProtectedData do arquivo Web.config do aplicativo. Para garantir que o contêiner de chave RSA recém-criado possa ser exportado, a opção -exp deve ser incluída.
Por exemplo, o comando a seguir cria um contêiner de chave RSA chamado ABeenKeys, que é um contêiner de chave exportável no nível da máquina.
aspnet_regiis -pc "ABeenKeys"–exp
Etapa 3: Modifique web.config para identificar o contêiner de chave
Edite o arquivo Web.config para identificar o contêiner de chave a ser usado.
Adicione <configProtectedData> ao web.config para configurar o contêiner de chave RSA em nível de máquina chamado ABeenKeys, adicione o atributo xmlns a <configuration>.
<configuration xmlns=" http://schemas.microsoft.com/.NetConfiguration/v2.0 ">saProtectedConfigurationProvider usando um contêiner de chave RSA em nível de máquina chamado ABeenKeys.
<configProtectedData > <providers> <add name="ABeenProvider" type="System.Configuration.RsaProtectedConfigurationProvider, System.Configuration, Version=2.0.0.0,Culture=neutral, processadorArchitecture=MSIL" keyContainerName="ABeenKeys"/> </providers > </configProtectedData>
Etapa 4: criptografe a seção <connectionStrings> do seu arquivo web.config
Criptografe a seção de configuração em seu arquivo web.config
> aspnet_regiis -pe "connectionStrings" -app "/connectionTest"
Etapa 5: A concessão de acesso ao contêiner de chave RSA pode ser determinada pelo código a seguir ao qual as permissões do usuário devem receber
Response.Write(System.Security.Principal.WindowsIdentity.GetCurrent().Name);
Por padrão, os contêineres de chave RSA são totalmente protegidos pela lista de controle de acesso (ACL) NTFS no servidor onde estão localizados. Isto aumenta a segurança das informações criptografadas, limitando quem tem acesso às chaves de criptografia. Antes que o ASP.NET possa usar o contêiner de chave RSA, a identidade do processo do aplicativo ASP.NET deve receber acesso de leitura ao contêiner de chave RSA. Você pode usar a ferramenta Aspnet_regiis.exe com a opção -pa para conceder permissão de leitura à identidade de um aplicativo ASP.NET para o contêiner de chave RSA. Por exemplo, o comando a seguir concede à conta NETWORK SERVICE do Windows Server 2003 acesso de leitura a um contêiner de chave RSA em nível de máquina chamado ABeenKeys:
aspnet_regiis -pa "ABeenKeys" "NT AUTHORITYNETWORK SERVICE"
Perceber:
Se o contêiner de chave RSA for um contêiner de nível de usuário, você deverá estar conectado como o usuário cujo perfil do Windows tem a chave armazenada e deverá incluir a opção -pku para conceder acesso ao contêiner de chave RSA de nível de usuário.
Para usar o RsaProtectedConfigurationProvider padrão especificado na configuração do computador, primeiro você deve conceder acesso de identidade do Windows do aplicativo ao contêiner de chave do computador denominado NetFrameworkConfigurationKey, que é o contêiner de chave especificado para o provedor padrão. Por exemplo, o comando a seguir concede à conta NETWORK SERVICE acesso ao contêiner de chave RSA usado pelo RsaProtectedConfigurationProvider padrão.
aspnet_regiis -pa "NetFrameworkConfigurationKey" "NT AUTHORITYNETWORK SERVICE"
O contêiner de chave RSA NetFrameworkConfigurationKey é o contêiner de chave padrão para comandos emitidos pela ferramenta Aspnet_regiis.exe. Portanto, o comando acima também pode ser emitido da seguinte forma:
aspnet_regiis -pa "NT AUTHORITYNETWORK SERVICE"
code download