Sumário
A actualização de segurança descrita no boletim de segurança MS10-070 da Microsoft efectua alterações ao mecanismo de encriptação predefinido do ASP.NET para que efectue a validação (assinatura), bem como a encriptação. Este artigo descreve opções de configuração para reverter o comportamento legado da encriptação no ASP.NET.
Para mais informações sobre esta actualização de segurança, visite o seguinte Web site:
http://www.microsoft.com/portugal/technet/seguranca/boletins/MS10-070.mspx
Mais Informação
O ASP.NET permite aos utilizadores optar por encriptar ou validar dados através da configuração da secção MachineKey. A actualização de segurança à qual o boletim MS10-070 se refere altera o comportamento predefinido da encriptação no ASP.NET para efectuar tanto a validação como a encriptação, mesmo que apenas seja necessária a encriptação.
Após instalar a actualização de segurança descrita no boletim de segurança MS10-070, são realizadas as seguintes operações ao configurar a encriptação para o ASP.NET:
-
Durante a encriptação de dados, é gerada uma assinatura HMAC para os dados encriptados, a qual é anexada aos mesmos.
-
Durante a desencriptação dos dados, a assinatura HMAC é validada antes da desencriptação dos dados.
As seguintes chaves das definições de aplicação (appSettings) do ASP.NET controlam tanto o comportamento da assinatura como o da encriptação.
Chave |
Tipo |
Valor Predefinido |
Suportado em versões .NET |
---|---|---|---|
aspnet:UseLegacyEncryption |
Boolean |
False |
Microsoft .NET Framework 2.0 Service Pack 1 |
aspnet:UseLegacyMachineKeyEncryption |
Boolean |
False |
Microsoft .NET Framework 4.0 |
aspnet:ScriptResourceAllowNonJsFiles |
Boolean |
False |
Microsoft .NET Framework 3.5 Service Pack 1 |
Descrição da definição de aplicação aspnet:UseLegacyEncryption
Esta definição de aplicação especifica se a encriptação efectua adicionalmente a validação com uma chave HMAC, mesmo que a secção de validação da secção machineKey da configuração do ASP.NET não esteja configurada para a validação de assinaturas HMAC.
aspnet:UseLegacyEncryption |
Descrição |
---|---|
False (Predefinido) |
Esta definição configura o ASP.NET para efectuar adicionalmente a validação de assinaturas HMAC quando o ASP.NET estiver configurado para utilizar encriptação. Isto irá ocorrer mesmo que a validação em machineKey não esteja configurada para assinar utilizando uma chave HMAC. |
True |
Esta definição configura o ASP.NET para não efectuar a validação de assinaturas HMAC quando estiver configurado para utilizar encriptação e não utilizar a assinatura HMAC através de validação em machineKey. |
Para configurar esta definição, adicione a seguinte configuração ao ficheiro web.config do computador ou da aplicação:
<configuration> ... <appSettings> ... <add key="aspnet:UseLegacyEncryption" value="false" /> </appSettings> </configuration>
Descrição da definição de aplicação aspnet:UseLegacyMachineKeyEncryption
Esta definição de aplicação especifica se a encriptação através da classe System.Web.Security.MachineKey irá efectuar adicionalmente a validação com uma chave HMAC mesmo que o argumento MachineKeyProtection fornecido não especifique que a validação seja efectuada.
aspnet:UseLegacyMachineKeyEncryption |
Descrição |
---|---|
False (Predefinido) |
Esta definição configura o ASP.NET para efectuar adicionalmente a validação de assinaturas HMAC através da classe MachineKey quando o ASP.NET estiver configurado para utilizar encriptação. Isto irá ocorrer mesmo que o argumento MachineKeyProtection fornecido não especifique que a validação seja efectuada. |
True |
Esta definição configura o ASP.NET para não efectuar a validação de assinaturas HMAC através da classe MachineKey quando estiver configurado para utilizar encriptação e não utilizar a assinatura HMAC através do argumento MachineKeyProtection fornecido. |
Para configurar esta definição, adicione a seguinte configuração ao ficheiro web.config do computador ou da aplicação:
<configuration> ... <appSettings> ... <add key="aspnet:UseLegacyMachineKeyEncryption" value="false" /> </appSettings> </configuration>
Descrição da definição de aplicação aspnet:ScriptResourceAllowNonJsFiles
Esta definição de aplicação especifica se o processador ScriptResource.axd do ASP.NET irá servir ficheiros que não JavaScript (extensão .js). O ScriptResource.axd é um processador do ASP.NET que devolve ficheiros de origem JavaScript a componentes AJAX numa página Web do ASP.NET.
aspnet:ScriptResourceAllowNonJsFiles |
Descrição |
---|---|
False (Predefinido) |
Esta definição configura o ASP.NET para apenas servir ficheiros estáticos que tenham a extensão .js (JavaScript) através do processador ScriptResource.axd. |
True |
Esta definição configura o ASP.NET para servir quaisquer ficheiros estáticos aos quais a aplicação ASP.NET tenha acesso através do processador ScriptResource.axd. |
Para configurar esta definição, adicione a seguinte configuração ao ficheiro web.config do computador ou da aplicação:
<configuration> ... <appSettings> ... <add key="aspnet:ScriptResourceAllowNonJsFiles" value="false" /> </appSettings> </configuration>
Referências
Para mais informações sobre a secção MachineKey, visite o seguinte Web site da Microsoft:
http://msdn.microsoft.com/pt-pt/library/w8h3skw9.aspx Para mais informações sobre a classe System.Web.Security.MachineKey, visite o seguinte Web site da Microsoft:
http://msdn.microsoft.com/pt-pt/library/system.web.security.machinekey.aspxPara mais informações sobre como utilizar definições de aplicação (appSettings), clique nos números de artigo que se seguem para visualizar os artigos na Base de Dados de Conhecimento Microsoft:
815786 Como armazenar e obter informações personalizadas a partir de um ficheiro de configuração de aplicação utilizando Visual C#
313405 Como armazenar e obter informações personalizadas a partir de um ficheiro de configuração de aplicação utilizando Visual Basic .NET ou Visual Basic 2005
Para mais informações sobre a configuração do ASP.NET, clique no número de artigo que se segue para visualizar o artigo na Base de Dados de Conhecimento Microsoft:
307626 INFORMAÇÕES: Descrição geral da Configuração do ASP.NET