machineKey Element (ASP.NET Settings Schema)

[Esta documentação destina-se apenas à visualização e está sujeita a alterações em versões posteriores. Os tópicos em branco estão incluídos como espaços reservados.]

Configura os algoritmos e as chaves usadas para criptografia, descriptografia e validação de dados de autenticação de formulários e dados do estado de exibição e para a identificação do 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]
/>

Attributes and Elements

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

Attributes

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) algoritmo para criptografar e descriptografar dados. AESé o algoritmo 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 Data Encryption Standard (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ário.

  • 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ário.

  • 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 que 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 manualmente 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 criptografia ou 192 bits (48 caracteres hexadecimais) de comprimento para 3DES. Para AES, a chave pode ser de 128 bits (32 caracteres), 192 bits (48 caracteres) ou 256 bits (64 caracteres) de tempo. 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: Configurar 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 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ê armazena 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 dados de estado de exibição e 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 os 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ário.

  • SHA1Especifica que o ASP.NET usa o HMACSHA1 o algoritmo de hash para validar os 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ário.

  • HMACSHA256Especifica que o ASP.NET usa o HMACSHA256 o algoritmo de hash para validar os 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 os 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 os 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 identificações para garantir que as variáveis de estado de sessão estão isoladas entre as sessões de sessão de out-of-process, específicos do aplicativo.

Esse atributo pode ter um dos seguintes valores:

  • AutoGenerate, IsolateAppsEspecifica que a chave é gerada automaticamente. Este é o valor padrão. O AutoGenerate modificador Especifica que ASP.NET gera uma chave aleatória e armazena em LSA da autoridade de segurança Local. 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 manualmente 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: Configurar 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ê especifica o comprimento da chave correto.

Para obter mais informações, consulte ValidationKey.

Child Elements

Nenhum.

Parent Elements

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 que configurar aplicativos ASP.NET e controlar como os aplicativos se comportam.

Remarks

O exemplo de código a seguir demonstra como definir ambos os validationKey e decryptionKey atributos ao 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 de atributo para valores aleatórios gerados manualmente. 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

Tasks

Walkthrough: Encrypting Configuration Information Using Protected Configuration

How to: Configure Specific Folders Using Location Settings

How to: Lock ASP.NET Configuration Settings

Reference

System. Web Element (ASP.NET Settings Schema)

configuração Element (General Settings Schema)

System.Configuration

System.Web.Configuration

MachineKeySection

MachineKey

Concepts

Forms Authentication Across Applications

Securing Roles

Securing Membership

Securing Profile Properties

Securing SessionState

ASP.NET Configuration File Hierarchy

Securing Configuration

Configuration Inheritance

Other Resources

Configurações gerais (ASP.NET)

ASP.Definições de configuração de rede

Configuring ASP.NET Applications

ASP.NET Configuration API