Entrar com a conta da Microsoft
Entrar ou criar uma conta.
Olá,
Selecionar uma conta diferente.
Você tem várias contas
Escolha a conta com a qual você deseja entrar.

Sumário

Existe uma vulnerabilidade de divulgação de informações nos protocolos TLS e SSL conforme implementados no componente de criptografia do Microsoft .NET Framework. Um atacante que explorar com êxito essa vulnerabilidade poderá descriptografar o tráfego TLS/SSL criptografado.

Para explorar a vulnerabilidade, um atacante primeiro tem que injetar dados não criptografados no canal seguro e depois realizar um ataque intermediário (MiTM, man-in-the-middle) entre um cliente de destino e um servidor legítimo. A atualização aborda a vulnerabilidade modificando a maneira que o componente de criptografia .NET envia e recebe pacotes de rede criptografados.

Esta vulnerabilidade é corrigida como parte do Boletim de Segurança da Microsoft MS16-065. Esta atualização altera a maneira que o componente de criptografia do .NET Framework envia e recebe pacotes de rede criptografados.

A tabela a seguir contém links para a entrada padrão para cada vulnerabilidade na lista Vulnerabilidades Comuns e Exposições.

Título da vulnerabilidade

Número de CVE

Divulgadas de forma pública

Explorado

Vulnerabilidade de falsificação de TLS/SSL

CVE-2016-0149

Sim

Não

Resolução da vulnerabilidade

A mudança introduzida no Boletim de Segurança da Microsoft MS16-065 causa a divisão do primeiro registro de TLS depois do handshake. Isso faz com que os fluxos SslStream, WebRequest (HttpWebRequest, FtpWebRequest), SmtpClient e HttpClient (quando baseados no HttpWebRequest) retornem um único byte para a primeira leitura, seguido imediatamente pelos (n-1) bytes restantes em leituras sucessivas. Esta alteração de comportamento ocorre somente para aplicativos que usam o TLS 1.0 + Encadeamento de Blocos de Criptografia, mas não quando eles usam TLS 1.1 ou TLS 1.2.

Observação Como um pré-requisito, é necessário instalar o Boletim de Segurança da Microsoft MS12-006 para ativar esta atualização.

Essa alteração pode fazer com que alguns aplicativos que são baseados no.NET Framework parem de funcionar. Este artigo descreve duas abordagens que podem ser usadas para atualizar o aplicativo para funcionar corretamente depois de aplicar o Boletim de Segurança da Microsoft MS16-065.

Mitigação para problemas de compatibilidade

Opção 1: Mudar para o protocolo TLS 1.2

Esta opção faz o aplicativo usar o protocolo TLS 1.2 modificando o Registro ou configurando de forma programática a versão do protocolo.

  • Modificar o Registro

    Importante 
    Siga as etapas nesta seção com cuidado. Sérios problemas poderão ocorrer caso você modifique o Registro incorretamente. Antes de modificá-lo, faça o backup do Registro para a restauração no caso de ocorrer problemas.

    Os aplicativos .NET Framework 4.0 e .NET Framework 4.5.x que estão executando no .NET Framework 4.5 e versões posteriores podem mudar o protocolo padrão para o TLS 1.2, TLS 1.1 e TLS 1.0 ativando a chave de Registro SchUseStrongCrypto. Essa chave de Registro é discutida na seção Ações sugeridas do tópico Microsoft Security Advisory 2960358 no site do Microsoft TechNet.

    Importante Essa alteração do Registro só funcionará se as seguintes condições forem verdadeiras:

    • Aplicativos que usam APIs baseadas em ServicePointManager não definem o valor de ServicePointManager.SecurityProtocol explicitamente. Exemplos dessas classes incluem System.Net.Http.HttpClient, System.Net.FtpWebRequest, System.Net.HttpWebRequest e System.Net.Mail.SmtpClient. A definição de ServicePointManager.SecurityProtocol no código tem precedência sobre o Registro.

    • Aplicativos estão usando a sobrecarga SslStream AuthenticateAsClient(String).


  • Configurar de forma programática a versão do protocolo

    Os aplicativos do .NET Framework 4.0 e 4.5 que estão executando no .NET Framework 4.5 e versões posteriores e que usam a sobrecarga SslStream AuthenticateAsClient(String, X509CertificateCollection, SslProtocols, Boolean) devem ser recompilados, especificando SslProtocols.Tls12, SslProtocols.Tls11 e SslProtocols.Tls como o terceiro parâmetro. Para uma descrição completa de como usar a classe SslStream, consulte o tópico SslStream Class no site do Microsoft Developer (MSDN).

    Observação O .NET Framework 4.6 e versões posteriores usam o TLS 1.2, TLS 1.1 e TLS 1.0 como os protocolos padrão. Isso é discutido no tópico Microsoft Security Advisory 2960358 no site do Microsoft TechNet.


Opção 2: Gerenciar a divisão dos pacotes

Essa atualização causa a divisão de um único registro em vários registros. Portanto, se um aplicativo está esperando o registro completo estar disponível em uma única chamada Read, esse aplicativo pode parar de funcionar. Para garantir que o aplicativo tem o comportamento correto, verifique se o aplicativo gerencia os pacotes divididos realizando a chamada Stream.Read de forma correta. É possível usar o código de amostra disponível aqui como uma referência para como corrigir o aplicativo para realizar a chamada Read de forma correta.

Para uma solicitação HTTP de amostra que mostre a diferença no comportamento antes (com a mitigação) e depois (sem a mitigação) de as atualizações 3147461 e 3147458 serem instaladas, consulte a seção "Mais informações".

Para um exemplo completo do método Stream.Read, consulte o tópico Stream.Read Method (Byte[], Int32, Int32) no site do Microsoft Developer (MSDN).

Soluções alternativas para problemas de compatibilidade de aplicativos

Aviso Estas soluções alternativas podem tornar um computador ou uma rede mais vulneráveis a ataque por usuários mal-intencionados ou software mal-intencionado, como vírus. Não recomendamos estas soluções alternativas, mas estamos fornecendo estas informações para que você possa implementar estas soluções alternativas segundo seus próprios critérios. O uso destas soluções alternativas é de sua responsabilidade.

Método 1: Atualizar as chaves de Registro (disponíveis para todas as versões do.NET Framework)

Desativar a estrutura SCH_SEND_AUX_RECORD (global)

Desativar a estrutura SCH_SEND_AUX_RECORD para aplicativos individuais

Desativar a estrutura SCH_SEND_AUX_RECORD (globalmente)

Para todos os aplicativos, adicione a seguinte subchave do Registro:

Local do Registro:HKEY_LOCAL_MACHINE\Software\Microsoft\.NETFramework\<version_number>
Nome da DWORD: SchSendAuxRecord
Dados do valor: 0
ObservaçãoO espaço reservado <número_da_versão> é v4.0.30319 ou v2.0.50727, dependendo da versão.

Para aplicativos de 32 bits que são executados em computadores de 64 bits, adicione também a seguinte subchave do Registro:

Local do Registro:HKEY_LOCAL_MACHINE\Software\Wow6432Node\Microsoft\.NETFramework\<version_number>
Nome da DWORD: SchSendAuxRecord
Dados do valor: 0
ObservaçãoO espaço reservado <número_da_versão> é v4.0.30319 ou v2.0.50727, dependendo da versão.

Solução alternativa

Para desativar temporariamente o modo de segurança descrito neste artigo, clique no link apropriado para baixar um arquivo .reg e clique duas vezes no arquivo .reg baixado para fazer as alterações no Registro.

Para aplicativos destinados ao Microsoft .NET Framework 3.5:

Download Baixe o arquivo ManualOptOutSchSendAuxRecord20.reg agora.
Para aplicativos destinados ao Microsoft .NET Framework 4.0 e versões posteriores:

Download Baixe o arquivo ManualOptOutSchSendAuxRecord40.reg agora.
Para reativar o modo de segurança descrito neste artigo, clique no link apropriado para baixar um arquivo .reg e clique duas vezes no arquivo .reg baixado para fazer as alterações no Registro.

Para aplicativos destinados ao Microsoft .NET Framework 3.5:

Download Baixe o arquivo ManualOptInSchSendAuxRecord20.reg agora.
Para aplicativos destinados ao Microsoft .NET Framework 4.0 e versões posteriores:

Download Baixe o arquivo ManualOptInSchSendAuxRecord40.reg agora.
Para obter mais informações sobre como baixar arquivos de suporte da Microsoft, clique no número abaixo para ler o artigo na Base de Dados de Conhecimento Microsoft:

119591 Como obter os arquivos de suporte da Microsoft nos serviços onlineA Microsoft examinou o arquivo em busca de vírus. A Microsoft usou o software de detecção de vírus mais recente disponível na data de publicação do arquivo. O arquivo está armazenado em servidores de segurança avançada que ajudam a evitar alterações não autorizadas.


Desativar a estrutura SCH_SEND_AUX_RECORD para aplicativos individuais

Para todos os aplicativos, adicione a seguinte subchave do Registro:

Local do Registro:HKEY_LOCAL_MACHINE\Software\Microsoft\.NETFramework\<version_number>\System.Net.ServicePointManager.SchSendAuxRecord
Nome da DWORD:Caminho totalmente qualificado para o aplicativo .exe (por exemplo, C:\MyApp\MyApp.exe)
Dados do valor: 0
ObservaçãoO espaço reservado <número_da_versão> é v4.0.30319 ou v2.0.50727, dependendo da versão.

Para aplicativos de 32 bits que são executados em computadores de 64 bits, adicione também a seguinte subchave do Registro:

Local do Registro:HKEY_LOCAL_MACHINE\Software\Wow6432Node\Microsoft\.NETFramework\<version_number>\System.Net.ServicePointManager.SchSendAuxRecord
Nome da DWORD:Caminho totalmente qualificado para o aplicativo .exe (por exemplo, C:\MyApp\MyApp.exe)
Dados do valor: 0 (o único valor válido é 0. Qualquer outro valor será ignorado.)
ObservaçãoO espaço reservado <número_da_versão> é v4.0.30319 ou v2.0.50727, dependendo da versão.

Método 2: Alterar a configuração no nível de aplicativo (disponível somente para a do .NET Framework 4.6 e versões posteriores)

Começando com o .NET Framework 4.6, você pode alterar a configuração no nível de um aplicativo por meio do código ou configuração do aplicativo ou alterações no Registro.

No .NET Framework 4.6, você pode definir a opção usando qualquer um dos seguintes métodos. Estes exemplos desativam o recurso de segurança.

  • De forma programática

    A primeira coisa que o aplicativo deve fazer é executar o código a seguir. Isso ocorre porque o Service Point Manager irá inicializar somente uma vez.

    private const string DisableCachingName = @"TestSwitch.LocalAppContext.DisableCaching"; 
    private const string DontEnableSchSendAuxRecordName = @"Switch.System.Net.DontEnableSchSendAuxRecord";
    AppContext.SetSwitch(DisableCachingName, true);
    AppContext.SetSwitch(DontEnableSchSendAuxRecordName , true);
  • Configuração do aplicativo

    Para alterar a configuração do aplicativo, adicione a seguinte entrada:

    <runtime>
    <AppContextSwitchOverrides value="Switch.System.Net.DontEnableSchSendAuxRecord=true"/>
    </runtime>
  • Chave do Registro (computador global)

    Locais do Registro:HKEY_LOCAL_MACHINE\Software\Microsoft\.NETFramework\AppContextHKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\.NETFramework\AppContext
    Valor: Switch.System.Net.DontEnableSchSendAuxRecord
    Tipo: Cadeia
    Valor: Verdadeiro

    Observação Switch.System.Net.DontEnableSchSendAuxRecord = False para todos os aplicativos.

Mais Informações

A seguir está uma amostra do padrão de comunicação cliente/servidor antes e depois de a atualização ser instalada. Estas informações são fornecidas para ilustração para identificar qualquer quebra de aplicativos devido a instalação dessa correção.

Sem a mitigação

Com a mitigação

[Server] waiting for connections (127.0.0.1:4431)
[Client] Connecting to localhost:4431
[Server] Client connected.
[Client] Connected. Authenticating...
[Server] Client authenticated.
[Client] Sending request (94 Bytes)
[Client] Waiting for reply…

[Server] Received 94 bytes: <<<GET / HTTP/1.0
Host: contoso.com
User-Agent: Testing application

>>>
[Server] Replied with 476 bytes.

[Client 1: 476 Bytes] Response: <<<<<HTTP/1.1 200 OK

>>>>>

[Server] waiting for connections (127.0.0.1:4431)
[Client] Connecting to localhost:4431
[Server] Client connected.
[Client] Connected. Authenticating...
[Server] Client authenticated.
[Client] Sending request (94 Bytes)
[Client] Waiting for reply...
[Server] Received 1 bytes: <<<G>>>
[Server] Received 93 bytes: <<<ET / HTTP/1.0
Host: contoso.com
User-Agent: Testing application

>>>
[Server] Replied with 476 bytes.
[Client 1: 1 Bytes] Response: <<<<<H>>>>>
[Client 2: 475 Bytes] Response: <<<<<TTP/1.1 200 OK

>>>>>


Precisa de mais ajuda?

Quer mais opções

Explore os benefícios da assinatura, procure cursos de treinamento, saiba como proteger seu dispositivo e muito mais.

As comunidades ajudam você a fazer e responder perguntas, fazer comentários e ouvir especialistas com conhecimento avançado.

Essas informações foram úteis?

Qual é o seu grau de satisfação com a qualidade do idioma?
O que afetou sua experiência?
Ao pressionar enviar, seus comentários serão usados para aprimorar os produtos e serviços da Microsoft. Seu administrador de TI poderá coletar esses dados. Política de Privacidade.

Agradecemos seus comentários!

×