machineKey Element (ASP.NET Settings Schema)

Configura os algoritmos e as chaves usadas para criptografia, descriptografia e validação de dados de autenticação de formulários e dados de estado de exibição e para identificação de estado de sessão fora do processo.

<machineKey 
  validationKey="AutoGenerate,IsolateApps" [String]
  decryptionKey="AutoGenerate,IsolateApps" [String]
  validation="HMACSHA256" [SHA1 | MD5 | 3DES | AES | HMACSHA256 | 
    HMACSHA384 | HMACSHA512 | alg:algorithm_name]
  decryption="Auto" [Auto | DES | 3DES | AES | alg:algorithm_name]
/>

Atributos e elementos

As seções a seguir descrevem atributos, elementos filho, e elementos pai.

Atributos

Atributo

Descrição

decryption

Opcional String atributo.

Especifica o algoritmo usado para criptografar e descriptografar os dados de autenticação de formulários.

Esse atributo pode ter um dos seguintes valores:

  • AutoEspecifica que o ASP.NET determina automaticamente qual algoritmo de descriptografia para usar. Este é o valor padrão deste atributo.

  • AESEspecifica que o ASP.NET usa o AES (Rijndael) o algoritmo para criptografar e descriptografar dados. AESé o algoritmo de padrão e é o que é usado quando o valor desse atributo é Auto. Esse algoritmo é compatível com os Estados Unidos Federal Information Processing Standards (FIPS).

  • DESEspecifica que o ASP.NET usa o algoritmo padrão de criptografia de dados (DES) para criptografar e descriptografar dados. Esse algoritmo está incluído somente para fins de legado e deve ser usado somente se a compatibilidade com versões anteriores do ASP.NET é necessária.

  • 3DESEspecifica que o ASP.NET usa o TripleDES algoritmo (3DES) para criptografar e descriptografar dados. Esse algoritmo está incluído somente para fins de legado e deve ser usado somente se a compatibilidade com versões anteriores do ASP.NET é necessária.

  • alg:algorithm_name Especifica que o ASP.NET usa um algoritmo personalizado para criptografar e descriptografar dados. O algoritmo de criptografia deve ser definido em uma classe que deriva de SymmetricAlgorithm. ASP.NET chamadas a SymmetricAlgorithm.Create método e passa o nome do algoritmo que é especificado aqui.

decryptionKey

Obrigatório String atributo.

Especifica a chave que é usada para criptografar e descriptografar dados ou o processo pelo qual a chave é gerada. Este atributo é usado para autenticação de formulários criptografia e descriptografia e para o estado de exibição criptografia e descriptografia quando o estado de exibição é criptografado.

Esse atributo pode ter um dos seguintes valores:

  • AutoGenerate, IsolateAppsEspecifica a chave é gerada automaticamente. Este é o valor padrão. O AutoGenerate modificador Especifica que ASP.NET gera uma chave aleatória e a armazena na autoridade de segurança Local (LSA). O IsolateApps modificador Especifica que ASP.NET gera uma chave criptografada exclusiva para cada aplicativo usando a identificação do aplicativo de cada aplicativo.

  • valor de chave Especifica uma chave atribuída manualmente. O decryptionKey valor deve ser definido como uma seqüência de caracteres hexadecimais para garantir uma configuração consistente em todos os servidores em um Web farm. A chave deve ser de 64 bits (16 caracteres hexadecimais) tempo para DES 192 bits (48 caracteres hexadecimais) ou criptografia, comprimento de 3DES. Para AES, a chave pode ser de 128 bits (32 caracteres), 192 bits (48 caracteres) ou longo de 256 bits (64 caracteres). A chave mais longa fornece segurança máxima.Chaves aleatórias podem ser geradas usando a RNGCryptoServiceProvider classe. Para obter mais informações, consulte How To: Configure MachineKey no ASP.NET 2.0.

Para obter mais informações, consulte DecryptionKey.

validation

Obrigatório MachineKeyValidation atributo.

Especifica o algoritmo de hash é usado para validar os dados.

Por padrão, o estado de exibição é transmitido como uma seqüência de codificação base 64. Embora à primeira vista dados codificados são ininteligíveis, a codificação base 64 não fornece segurança porque ele é facilmente decodificado. Se você armazenar dados confidenciais no estado da exibição, você pode especificar que o ASP.NET criptografa os dados de estado de exibição para além de validá-lo. Você pode especificar a criptografia do estado de exibição para todas as páginas do seu aplicativo da Web ou para páginas selecionadas. Para obter informações sobre essa opção, consulte ViewStateEncryptionMode e RegisterRequiresViewStateEncryption().

Se você quiser usar a criptografia do estado de exibição, definir esse atributo para AES. Nesse caso, o valor de decryptionKey será usado para criptografar os dados de estado de exibição e o ASP.NET usará a HMACSHA1 o algoritmo de hash para validação de dados.

Esse atributo pode ter um dos seguintes valores.

  • AESEspecifica que o ASP.NET usa o AES (Rijndael) o algoritmo de criptografia para criptografar e descriptografar os dados quando o estado de exibição é criptografado. Se esta opção for especificada para o validation atributo, o HMACSHA1 algoritmo é usado para validação.

  • MD5Especifica que o ASP.NET usa o Message Digest 5 (MD5) algoritmo de hash para validar dados. Esse algoritmo está incluído somente para fins de legado e deve ser usado somente se a compatibilidade com versões anteriores do ASP.NET é necessária.

  • SHA1Especifica que o ASP.NET usa o HMACSHA1 o algoritmo de hash para validar dados. Este algoritmo só deve ser usado se você precisar definir esse atributo para AES para oferecer suporte à criptografia do estado de exibição. Otherwise, use HMACSHA256, HMACSHA384, or HMACSHA512.

  • 3DESEspecifica que o ASP.NET usa o TripleDES (3DES) algoritmo para criptografar e descriptografar os dados quando o estado de exibição é criptografado. Se esta opção for especificada para o validation atributo, o HMACSHA1 algoritmo é usado para validação. Esse algoritmo está incluído somente para fins de legado e deve ser usado somente se a compatibilidade com versões anteriores do ASP.NET é necessária.

  • HMACSHA256Especifica que o ASP.NET usa o HMACSHA256 o algoritmo de hash para validar dados. Este é o valor padrão. Esse algoritmo é compatível com a United afirmado Federal Information Processing Standards (FIPS).

  • HMACSHA384Especifica que o ASP.NET usa o HMACSHA384 o algoritmo de hash para validar dados. Essa opção está disponível para aplicativos que exigem mais segurança do que é fornecida pelo HMACSHA256 algoritmo. Esse algoritmo é compatível com os Estados Unidos Federal Information Processing Standards (FIPS).

  • HMACSHA512Especifica que o ASP.NET usa o HMACSHA512 o algoritmo de hash para validar dados. Essa opção está disponível para aplicativos que exigem mais segurança do que é fornecida pelo HMACSHA384 algoritmo. Esse algoritmo é compatível com os Estados Unidos Federal Information Processing Standards (FIPS).

  • alg:algorithm_name Especifica que o ASP.NET usa um algoritmo personalizado. O prefixo "alg:" é seguido pelo nome de uma classe que deriva de KeyedHashAlgorithm. ASP.NET chamadas a Create() método e passa o nome do algoritmo que é especificado aqui.

validationKey

Obrigatório String atributo.

Especifica a chave que é usada para validar os dados ou o processo pelo qual ele é gerado. O validationKey valor também é usado para gerar a sessão de out-of-process, específicos do aplicativo IDs para garantir que as variáveis de estado de sessão estão isoladas entre sessões.

Esse atributo pode ter um dos seguintes valores:

  • AutoGenerate, IsolateAppsEspecifica a chave é gerada automaticamente. Este é o valor padrão. O AutoGenerate modificador Especifica que ASP.NET gera uma chave aleatória e a armazena na autoridade de segurança Local LSA. O IsolateApps modificador Especifica que ASP.NET gera uma chave criptografada exclusiva para cada aplicativo usando a identificação do aplicativo de cada aplicativo.

  • valor de chave Especifica uma chave atribuída manualmente. O validationKey valor deve ser definido como uma seqüência de caracteres hexadecimais para garantir uma configuração consistente em todos os servidores em um Web farm. O comprimento da chave depende do algoritmo de hash usado:

    • AESrequer uma chave de 256 bits (64 caracteres hexadecimais).

    • MD5requer uma chave de 128 bits (32 caracteres hexadecimais).

    • SHA1requer uma chave de 160 bits (40 caracteres hexadecimais).

    • 3DESrequer uma chave de 192 bits (48 caracteres hexadecimais).

    • HMACSHA256requer uma chave de 256 bits (64 caracteres hexadecimais).

    • HMACSHA384requer uma chave de 384 bits (96 caracteres hexadecimais).

    • HMACSHA512requer uma chave de 512 bits (128 caracteres hexadecimais).

    Chaves aleatórias podem ser geradas usando a RNGCryptoServiceProvider classe. Para obter mais informações, consulte How To: Configure MachineKey no ASP.NET 2.0. Este tópico não lista o HMACSHA256, HMACSHA384, ou HMACSHA512 algoritmos. No entanto, o processo funciona para esses algoritmos, também, desde que você especificar o comprimento da chave correto.

Para obter mais informações, consulte ValidationKey.

Elementos filho

Nenhum.

Elementos pai

Elemento

Descrição

configuration

Especifica o elemento raiz necessários em cada arquivo de configuração que é usado pelo common language runtime e no.Aplicativos do NET Framework.

system.web

Especifica o elemento raiz para o ASP.Definições de configuração de rede em uma configuração de arquivo e contém elementos de configuração para configurar aplicativos ASP.NET e controlar como os aplicativos se comportam.

Comentários

O exemplo de código a seguir demonstra como definir ambos os validationKey e decryptionKey atributos para AutoGenerate. O isolateApps valor é especificado para gerar chaves exclusivas para cada aplicativo no servidor.

<machineKey 
    validationKey="AutoGenerate,IsolateApps" 
    decryptionKey="AutoGenerate,IsolateApps" 
/>

O exemplo de código a seguir demonstra como definir o validationKey atributo e o decryptionKey atributo gerou manualmente valores aleatórios. O validationKey atributo está definido como uma chave de 256 bits longa para o algoritmo de hash HMACSHA256 e o decryptionKey atributo também é definido como uma chave longa 256 bits, a mais longa possível para o AES algoritmo de criptografia. Esses são apenas exemplos e não devem ser usados em seu aplicativo.

<machineKey 
    validationKey="32E35872597989D14CC1D5D9F5B1E94238D0EE32CF10AA2D2059533DF6035F4F" 
    decryptionKey="B179091DBB2389B996A526DE8BCD7ACFDBCAB04EF1D085481C61496F693DF5F4" 
/>

Consulte também

Tarefas

Passo a passo: criptografando informações de configuração usando configuração protegida

Como: Configurar Diretórios Específicos Usando Configurações por Localização

Como: Bloquear definições de configuração ASP.NET

Referência

system.web Element (ASP.NET Settings Schema)

configuração Element (Geral Configurações Schema)

System.Configuration

System.Web.Configuration

MachineKeySection

MachineKey

Conceitos

Formulários de Autenticação Através de Aplicativos

Protegendo funções

Protegendo a associação

Protegendo propriedades de perfil

Protegendo estado da sessão

Hierarquia e Herança do Arquivo de Configuração do ASP.NET

Protegendo a configuração do ASP.NET

Cenários de configuração ASP.NET

Outros recursos

General Configuration Settings (ASP.NET)

ASP.NET Configuration Settings

Administração de Sites do ASP.NET

API de Configuração do ASP.NET