Especificando um Provedor de Configuração Protegida
Você pode criptografar e descriptografar seções de um arquivo Web.config usando uma classe ProtectedConfigurationProvider.The following list describes the protected configuration providers included in the .NET Framework:
DpapiProtectedConfigurationProvider.Usa a DPAPI (API de Proteção de Dados) do Windows para criptografar e descriptografar dados.
RsaProtectedConfigurationProvider.Usa o algoritmo de criptografia RSA para criptografar e descriptografar dados.
Ambos provedores oferecem criptografia forte de dados.No entanto, se você estiver planejando usando o mesmo criptografados arquivo de configuração em vários servidores, como uma Web farm, apenas o RsaProtectedConfigurationProvider permite que você exportar as chaves de criptografia e importá-los em outro servidor.
O .NET Framework também permite que você defina seus próprios provedores de configuração protegida.Para obter detalhes, consulte:Implementing a Protected Configuration Provider.
Configurando um provedor de configuração protegida
Você pode especificar seus próprios protegida de provedor de configuração ou usar um dos provedores incorporados no ASP.NET.Por padrão, o arquivo computador.config especifica os seguintes provedores de configuração protegida:
Uma instância RsaProtectedConfigurationProvider denominada RsaProtectedConfigurationProvider.Este é configurado como o provedor padrão.
Uma instância DpapiProtectedConfigurationProvider denominada DataProtectionConfigurationProvider.
Você especifica um provedor de configuração protegida na seção configProtectedData de um arquivo de configuração.Se você desejar especificar seu próprio provedor com configurações personalizadas, você pode declarar uma nova instância do provedor usando o elemento add do elemento providers.Você pode identificar sua instância do provedor como o provedor padrão usando o atributo defaultProvider do elemento configProtectedData.
O exemplo a seguir configura uma instância RsaProtectedConfigurationProvider com o nome SampleProvider e a define como provedor padrão.
<configuration>
<configProtectedData defaultProvider="SampleProvider">
<providers>
<add name="SampleProvider"
type="System.Configuration.RsaProtectedConfigurationProvider,
System.Configuration, Version=2.0.0.0, Culture=neutral,
PublicKeyToken=b03f5f7f11d50a3a,
processorArchitecture=MSIL"
keyContainerName="SampleKeys"
useMachineContainer="true" />
</providers>
</configProtectedData>
</configuration>
Você usar o nome da instância do provedor de configuração protegida ao criptografar seções de configuração.Para obter mais informações, consulte Criptografando e Descriptografando Seções de Configuração.
Opções de provedor de configuração protegida
Cada provedor de configuração protegida expõe opções que você pode definir usando atributos de declaração do provedor no arquivo de configuração.Todos os provedores exigem o atributo type e description, bem como o keyName referente à instância do provedor.Além disso, as opções são exclusivas para cada tipo de provedor.
A tabela a seguir descreve as opções de configuração para o RsaProtectedConfigurationProvider.
Atributo |
Descrição |
---|---|
type |
O tipo de provedor de configuração protegida.O exemplo a seguir mostra uma definição de tipo para o RsaProtectedConfigurationProvider:
|
description |
Uma descrição da instância do provedor. |
keyContainerName |
O nome do contêiner de chave RSA usado para criptografar ou descriptografar o conteúdo do arquivo web.config.
Observação:
O processo do ASP.NET deve ter acesso de leitura para o contêiner de chave RSA especificado.Você pode conceder acesso a um contêiner de chave RSA com a ferramenta Aspnet_regiis.exe usando a opção -pa.Para obter mais informações, consulte Importando e exportando containers protegidos de configuração de chaves RSA.
|
useMachineContainer |
true Se o contêiner de chave RSA é um contêiner de chave a nível máquina; false se contêiner de chave RSA é um contêiner de chave a nível de usuário.Para obter mais informações, consulte Criptografando informações de configuração usando configuração protegida. |
useOAEP |
true para usar preenchimento de criptografia assimétrica ideal (OAEP) ao criptografar e descriptografar; caso contrário, false.Para mais informações, consulte a classe RSAOAEPKeyExchangeFormatter. |
cspProviderName |
O nome da criptografia API Windows (API crypto) de provedor de serviços de criptografia (CSP).Para obter mais informações, consulte ProviderName. |
A tabela a seguir descreve as opções de configuração para o DpapiProtectedConfigurationProvider.
Atributo |
Descrição |
---|---|
type |
O tipo de provedor de configuração protegida.O exemplo a seguir mostra uma definição de tipo para o DpapiProtectedConfigurationProvider:
|
description |
Uma descrição da instância do provedor. |
keyEntropy |
Um valor específico do aplicativo para incluir o chave de criptografia para se proteger contra outros aplicativos que possam descriptografar informações criptografadas.Para obter mais informações, consulte o parâmetro OptionalEntropy do método CryptProtectData da proteção de dados Windows API (DPAPI). |
useMachineProtection |
true para usar proteção específicas de computador; false para usar proteção específicas de conta de usuário.Quando true, qualquer processo em execução no computador pode desproteger os dados, e é recomendável que você restrinja o acesso aos dados criptografados usando uma lista de controle acesso (ACL).Para obter mais informações, consulte o valor CRYPTPROTECT_LOCAL_MACHINE para o parâmetro dwFlags do método CryptProtectData da proteção de dados Windows API (DPAPI). |
Consulte também
Tarefas
Demonstra Passo a passo: Criptografando informações de configuração usando configuração protegida
Outros recursos
Criptografando informações de configuração usando configuração protegida