Depois de aplicar a atualização de segurança MS10-070 aos servidores que atendem sites da Microsoft ASP.NET implantados em uma web farm, alguns servidores ou aplicativos na web farm podem encontrar um ou mais dos seguintes sintomas:
- Falha ao desencriptar dados
- Exceptions in the WebResource or ScriptResource handlers
- Falhas de autenticação ao usar a Autenticação de Formulários
- Exceções de "Viewstate inválido"
- Exceções "Não é possível validar dados" ao tentar desencriptar dados, como o cookie de Autenticação de Formulários
A falha pode manifestar-se como uma exceção de aplicação ao aceder à aplicação ASP.NET, e informações semelhantes à seguinte também podem ser registadas no registo de Aplicações.
Mensagem 1:
System.Web.HttpException : Não é possível validar dados. em System.Web.Configuration.MachineKeySection.EncryptOrDecryptData(Boolean fEncrypt, Byte[] buf, Byte[] modificador, Int32 start, Int32 length, IVType ivType, Boolean useValidationSymAlgo, Boolean signData)
Mensagem 2:
Tipo de Evento: Aviso
Origem do evento: ASP.NET 2.0.50727.0
Categoria do Evento: Evento Web
ID do evento: 1309
Data: Data
Tempo: Hora
Usuário: N/A
Descrição:
Código do evento: 3005
Mensagem do evento: Ocorreu uma exceção não processada.
Informações de exceção:
Tipo de exceção: HttpException
Mensagem de exceção: Não é possível validar os dados.
Sintomas
A atualização de segurança abordada pelo boletim MS10-070 altera o comportamento padrão da criptografia no ASP.NET. O novo comportamento predefinido após a instalação da actualização de segurança é efectuar a validação para além da encriptação, mesmo que apenas seja pedida encriptação. Este comportamento predefinido altera o payload encriptado nos servidores onde esta atualização é aplicada. O payload pode incluir cookies de autenticação de estado de visualização e formulários. Se uma web farm tiver apenas alguns servidores nos quais a atualização de segurança é aplicada, haverá uma diferença nos métodos de criptografia e descriptografia na mesma carga entre diferentes servidores na web farm, e essa diferença de comportamento resultará em exceções. Esse comportamento também pode ocorrer se os cookies de autenticação de formulários que persistem nos sistemas antes da aplicação da atualização de segurança forem consumidos após a aplicação da atualização de segurança.
Além disso, os métodos de encriptação e desencriptação diferem entre as versões de service packs do Microsoft .NET Framework 2.0. Portanto, ter diferentes níveis de service pack para o .NET Framework em um ambiente de web farm que tenha a atualização de segurança instalada resulta em cargas criptografadas diferentes e uma falha de descriptografia semelhante.
Causa
Verifique se as seguintes condições são verdadeiras em todos os servidores que estão a servir o conteúdo ASP.NET:
- Todos os servidores que servem um site ASP.NET na web farm precisam instalar a atualização de segurança. Se alguns servidores não tiverem a actualização de segurança instalada, tem de aplicar a actualização a esses servidores.
- Todos os computadores que estão executando alguma versão do .NET Framework 2.0 na web farm precisam estar no mesmo nível de service pack se a atualização de segurança MS10-070 for aplicada a todos os sistemas. Se houver uma diferença nos níveis do service pack nos servidores, você deverá atualizar todos os servidores para o service pack mais recente e reaplicar todas as atualizações de segurança. Portanto, se alguns servidores na web farm estiverem executando o .NET Framework 2.0 SP1 e outros servidores estiverem executando o .NET Framework 2.0 SP2, todos os servidores do .NET Framework 2.0 SP1 deverão ser atualizados para o .NET Framework 2.0 SP2 antes de aplicar a atualização de segurança a todos os servidores na web farm.
- Certifique-se de que as aplicações não estão a consumir dados encriptados, como cookies de Autenticação de Formulários que foram gerados antes da aplicação da atualização. Os dados encriptados anteriormente têm de ser atualizados após a aplicação da atualização de segurança.
Para obter mais informações sobre como detectar as versões .NET Framework e para a instalação de atualizações de segurança em seus servidores, consulte a seção "Referências".
Resolução
Para obter mais informações sobre o estado de exibição ASP.NET, consulte o seguinte artigo:
Visão geral do estado de exibição do ASP.NET Para obter mais informações sobre ASP.NET autenticação de formulários, consulte o seguinte artigo:
Descrição Geral da Autenticação de Formulários do ASP.NET Para obter mais informações sobre ASP.NET de autenticação de formulários e cookies, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
910443 Noções básicas sobre o tíquete e o cookie de autenticação de formulários Para obter mais informações sobre ASP.NET manipulador de recursos da Web, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
910442 Trabalhando com recursos da Web no ASP.NET 2.0