Iniciar sessão com a Microsoft
Iniciar sessão ou criar uma conta.
Olá,
Selecione uma conta diferente.
Tem várias contas
Selecione a conta com a qual pretende iniciar sessão.

Sumário

Existe uma vulnerabilidade de divulgação de informações o protocolo de segurança de camada de transporte e o protocolo de camada segura de Sockets (TLS/SSL), implementadas no componente de encriptação do Microsoft .NET Framework. Um intruso que explorasse com sucesso esta vulnerabilidade poderia desencriptar tráfego TLS/SSL encriptado.

Para explorar a vulnerabilidade, um intruso teria primeiro injectar dados não encriptados para o canal de segurança e, em seguida, efectuar um ataque de (MiTM) de man-in-the-middle entre o cliente de destino e um servidor legítimo. Esta actualização resolve a vulnerabilidade modificando a forma como o que o componente de encriptação .NET envia e recebe pacotes de rede encriptadas.

Esta vulnerabilidade é fixada como parte do boletim de segurança MS16-065. Esta actualização altera a forma que o componente de encriptação do .NET Framework envia e recebe pacotes de rede encriptadas.

A tabela seguinte contém hiperligações para a entrada padrão para cada vulnerabilidade na lista de vulnerabilidades e exposições comuns.

Título de vulnerabilidade

Número CVE

Divulgadas publicamente

Explorada

Vulnerabilidade de Ocultação de TLS/SSL

CVE-2016-0149

Sim

N

Resolução da vulnerabilidade

A alteração introduzida no boletim de segurança da Microsoft MS16-065 faz com que o primeiro registo TLS após o handshake a ser dividida. Isto faz com que o SslStream, WebRequest (HttpWebRequest, FtpWebRequest), SmtpClient e HttpClient (onde com base em HttpWebRequest) transmissões em sequência para devolver um único byte para ler primeiro, imediatamente seguidos pelos bytes restantes (n-1) no leituras sucessivas. Esta alteração de comportamento ocorre apenas para aplicações que utilizam TLS 1.0 + cifragem progressiva, mas não quando utilizar TLS 1.1 ou TLS 1.2.

Nota Como um pré-requisito, tem de instalar o boletim de segurança MS12-006 para permitir que esta actualização.

Esta alteração pode fazer com que algumas aplicações baseadas no .NET Framework para dividir. Este artigo descreve duas abordagens que pode utilizar para actualizar a aplicação funcione correctamente depois de aplicar o boletim de segurança MS16-065.

Factores atenuantes para problemas de compatibilidade

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

Esta opção faz com que a aplicação utiliza o protocolo TLS 1.2 quer modificando o registo ou configurar programaticamente a versão do protocolo.

  • Modificar o registo

    Importante
    Siga os passos nesta secção cuidadosamente. Poderão ocorrer problemas graves se modificar o registo incorretamente. Antes, modificá-lo, cópias de segurança do registo para restauro no caso de ocorrerem problemas.

    O .NET Framework 4.0 e as aplicações de 4.5.x do .NET Framework que estão em execução no .NET Framework 4.5 e versões posteriores podem mudar o protocolo predefinido para a TLS 1.2, o TLS 1.1 e o TLS 1.0, activando a chave de registo SchUseStrongCrypto . Esta chave de registo é discutida na secção Acções sugeridas no tópico de aviso de segurança da Microsoft 2960358 no Web site da Microsoft TechNet.

    Importante Esta alteração de registo só funcionará caso se verifiquem as seguintes condições:

    • Aplicações que utilizem APIs baseadas em ServicePointManager não está a definir o valor de ServicePointManager.SecurityProtocol explicitamente. Os exemplos dessas classes incluem System.Net.Http.HttpClient, System.Net.FtpWebRequest, System.Net.HttpWebRequeste System.Net.Mail.SmtpClient. Definir o ServicePointManager.SecurityProtocol no código tem precedência sobre o registo.

    • As aplicações utilizam a sobrecarga de SslStream AuthenticateAsClient(String) .


  • Configurar programaticamente a versão do protocolo

    O .NET Framework 4.0 e 4.5 aplicações que estão em execução no .NET Framework 4.5 e versões posteriores e que utilizam a sobrecarga de SslStream AuthenticateAsClient(String, X509CertificateCollection, SslProtocols, Boolean) devem ser recompiladas, especificando SslProtocols.Tls12, SslProtocols.Tls11e SslProtocols.Tls como o terceiro parâmetro. Para obter uma descrição detalhada de como utilizar a classe de SslStream, consulte o tópico de Classe de SslStream no Web site da Microsoft para programadores (MSDN).

    Nota O .NET Framework 4.6 e versões posteriores utilizam TLS 1.2, o TLS 1.1 e o TLS 1.0 como as predefinições de protocolo. Este assunto é discutido no tópico de aviso de segurança da Microsoft 2960358 no Web site da Microsoft TechNet.


Opção 2: Dividir do identificador de pacotes

Esta actualização faz com que um único registo a ser dividida em vários registos. Por conseguinte, se uma aplicação espera que o registo completo esteja disponível numa única chamada de leitura , esses pedidos poderão quebrar. Para se certificar de que a aplicação funciona correctamente, certifique-se de que a aplicação processa pacotes de divisão por efectuar a chamada de Stream.Read correctamente. Pode utilizar o exemplo código disponíveis aqui uma referência para a correcção da aplicação para efectuar correctamente a chamada de leitura .

Para um exemplo de pedido HTTP que mostra a diferença no comportamento anterior (com a mitigação) e depois de (sem as medidas de atenuação) foram instaladas actualizações 3147461 e 3147458 , consulte a secção "Mais informação".

Para um exemplo do método Stream.Read completo, consulte o tópico do Método Stream.Read (Byte [], Int32, Int32) no Web site da Microsoft para programadores (MSDN).

Soluções para problemas de compatibilidade de aplicações

Aviso Estas medidas podem tornar um computador ou de uma rede mais vulnerável a ataques por utilizadores mal intencionados ou software malicioso como vírus. Não é recomendada a estas soluções alternativas, mas fornece estas informações para que possa implementar estas soluções alternativas à sua própria responsabilidade. Utilize estas soluções na sua conta e risco.

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

Desactivar a estrutura SCH_SEND_AUX_RECORD (Globally Unique Identifier)

Desactivar a estrutura SCH_SEND_AUX_RECORD para aplicações individuais

Desactivar a estrutura SCH_SEND_AUX_RECORD (Globally Unique Identifier)

Para todas as aplicações, adicione a seguinte subchave de registo:

Localização do registo: HKEY_LOCAL_MACHINE\Software\Microsoft\ de . NETFramework\ < version_number >
Nome DWORD: SchSendAuxRecord
Dados do valor: 0
Nota O marcador de posição de < version_number > é v4.0.30319 ou v2.0.50727, dependendo da versão.

Para aplicações de 32 bits executados em computadores de 64 bits, adicione também a seguinte subchave de registo:

Localização do registo: HKEY_LOCAL_MACHINE\Software\Wow6432Node\Microsoft\ de . NETFramework\ < version_number >
Nome DWORD: SchSendAuxRecord
Dados do valor: 0
Nota O marcador de posição de < version_number > é v4.0.30319 ou v2.0.50727, dependendo da versão.

Solução alternativa

Para desactivar temporariamente o modo de segurança descrito neste artigo, clique na hiperligação adequada para transferir um ficheiro. reg e, em seguida, faça duplo clique sobre o ficheiro transferido. reg para efectuar as alterações de registo.

Para aplicações do Microsoft .NET Framework 3.5 de aplicação de destinos:

Download Transferir o ficheiro ManualOptOutSchSendAuxRecord20.reg. exe agora.
Para aplicações de filtragem de Microsoft .NET Framework 4.0 e versões posteriores:

Download Transferir o ficheiro ManualOptOutSchSendAuxRecord40.reg. exe agora.
Para voltar a activar o modo de segurança descrito neste artigo, clique na hiperligação adequada para transferir um ficheiro. reg e, em seguida, faça duplo clique sobre o ficheiro transferido. reg para efectuar as alterações de registo.

Para aplicações de filtragem de Microsoft .NET Framework 3.5:

Download Transferir o ficheiro ManualOptInSchSendAuxRecord20.reg. exe agora.
Para aplicações de filtragem de Microsoft .NET Framework 4.0 e versões posteriores:

Download Transferir o ficheiro ManualOptInSchSendAuxRecord40.reg. exe agora.
Para mais informações sobre como transferir ficheiros de suporte da Microsoft, clique no número de artigo seguinte para visualizar o artigo na Base de Dados de Conhecimento Microsoft:

119591 como obter ficheiros de suporte da Microsoft a partir de serviços onlineA Microsoft analisou este ficheiro quanto à presença de virus. A Microsoft utilizou o software de deteção de vírus mais atual, que estava disponível na data em que o ficheiro foi publicado. O ficheiro está armazenado em servidores com segurança melhorada que ajudam a impedir alterações não autorizadas ao ficheiro.


Desactivar a estrutura SCH_SEND_AUX_RECORD para aplicações individuais

Para todas as aplicações, adicione a seguinte subchave de registo:

Localização do registo: HKEY_LOCAL_MACHINE\Software\Microsoft\ de . NETFramework\ < version_number > \System.Net.ServicePointManager.SchSendAuxRecord
Nome DWORD: Caminho totalmente qualificado para .exe a aplicação (por exemplo, C:\MyApp\MyApp.exe)
Dados do valor: 0
Nota O marcador de posição de < version_number > é v4.0.30319 ou v2.0.50727, dependendo da versão.

Para aplicações de 32 bits executados em computadores de 64 bits, adicione também a seguinte subchave de registo:

Localização do registo: HKEY_LOCAL_MACHINE\Software\Wow6432Node\Microsoft\ de . NETFramework\ < version_number > \System.Net.ServicePointManager.SchSendAuxRecord
Nome DWORD: Caminho totalmente qualificado para .exe a aplicação (por exemplo, C:\MyApp\MyApp.exe)
Dados do valor: 0 (o único valor válido é 0. Qualquer outro valor será ignorado.)
Nota O marcador de posição de < version_number > é v4.0.30319 ou v2.0.50727, dependendo da versão.

Método 2: Alterar a configuração ao nível da aplicação (disponível apenas para o .NET Framework versão 4.6 e versões posteriores)

Começando a 4.6. .NET Framework, pode alterar a configuração de um nível da aplicação através das alterações de configuração ou registo de código ou aplicação.

4.6 de Framework .NET, pode definir o parâmetro utilizando qualquer um dos seguintes métodos. Estes exemplos desactivar a funcionalidade de segurança.

  • Através de programação

    A primeira coisa que deve fazer a aplicação está a executar o seguinte código. Isto acontece porque o Gestor do serviço de ponto será inicializado apenas 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 da aplicação

    Para alterar a configuração da aplicação, adicione a seguinte entrada:

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

    Localizações no registo: HKEY_LOCAL_MACHINE\Software\Microsoft\ de . NETFramework\AppContextHKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\. NETFramework\AppContext
    Valor: Switch.System.Net.DontEnableSchSendAuxRecord
    Tipo: Cadeia de caracteres
    Valor: VERDADEIRO

    Nota Switch.System.Net.DontEnableSchSendAuxRecord = False para todas as aplicações.

Mais informações

Segue-se um padrão de comunicação de cliente/servidor amostra antes e depois de instalar esta actualização. Esta informação é fornecida para ilustração para identificar quaisquer ruptura da aplicação devido a instalação desta correcção.

Sem medidas de atenuação

Com a mitigação

[Servidor] em espera para ligações (127.0.0.1:4431)
[Cliente] Ligar a localhost:4431
[Servidor] Cliente ligado.
[Cliente] Ligado. Autenticar...
[Servidor] Cliente autenticado.
[Cliente] Enviar o pedido (94 Bytes)
[Cliente] A aguardar resposta...

[Servidor] Recebido 94 bytes: <<< obter / HTTP/1.0
Host: contoso.com
Agente do utilizador: Aplicação de testes

>>>
[Servidor] Respondeu com 476 bytes.

[Cliente Bytes 1: 476] Resposta: <<<<< HTTP/1.1 200 OK

>>>>>

[Servidor] em espera para ligações (127.0.0.1:4431)
[Cliente] Ligar a localhost:4431
[Servidor] Cliente ligado.
[Cliente] Ligado. Autenticar...
[Servidor] Cliente autenticado.
[Cliente] Enviar o pedido (94 Bytes)
[Cliente] A aguardar resposta...
[Servidor] Recepção 1 bytes: <<< G >>>
[Servidor] Recepção 93 bytes: <<< ET / HTTP/1.0
Host: contoso.com
Agente do utilizador: Aplicação de testes

>>>
[Servidor] Respondeu com 476 bytes.
[Cliente Bytes de 1: 1] Resposta: <<<<< H >>>>>
[Cliente 2: 475 Bytes] Resposta: <<<<< http/1.1 200 OK

>>>>>


Precisa de mais ajuda?

Quer mais opções?

Explore os benefícios da subscrição, navegue em cursos de formação, saiba como proteger o seu dispositivo e muito mais.

As comunidades ajudam-no a colocar e a responder perguntas, a dar feedback e a ouvir especialistas com conhecimentos abrangentes.

Estas informações foram úteis?

Quão satisfeito está com a qualidade do idioma?
O que afetou a sua experiência?
Ao selecionar submeter, o seu feedback será utilizado para melhorar os produtos e serviços da Microsoft. O seu administrador de TI poderá recolher estes dados. Declaração de Privacidade.

Obrigado pelo seu feedback!

×