Suporte para versões de predefinição de sistema em TLS incluída no .NET Framework 3.5.1 no Windows 7 SP1 e Server 2008 R2 SP1

A versão do .NET framework 3.5.1 e versões anteriores não forneceu suporte para aplicações a utilizar versões de predefinição do sistema de Transport Layer Security (TLS) como um protocolo de criptografia. Esta actualização permite a utilização de v 1.2 TLS no .NET Framework 3.5.1.

Nota este conteúdo foi disponibilizado no Windows Update. Para obter o conteúdo, pesquisa o Windows Update para as actualizações mais recentes do .NET Framework. Se o sistema for totalmente actualizado através do Windows Update, não é necessário tomar medidas adicionais.

Resolução

Informações de transferência

Os ficheiros seguintes estão disponíveis para transferência a partir do Microsoft Download Center:Download Transferir o pacote com base em x86 agora.Download Transferir o pacote baseadas em x64 agora.Download Transferir o pacote baseadas em IA64 agora. Os seguintes melhoramentos foram feitas nesta área:

  • No seguinte registo chaves podem ser definidas para utilizar o sistema operativo assume como predefinição para SSL e TLS em vez do .NET Framework codificado predefinições para uma aplicação gerida em execução no computador.

    • Para sistemas operativos de 64 bits:[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v2.0.50727]"SystemDefaultTlsVersions"=dword:00000001 [HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\v2.0.50727]"SystemDefaultTlsVersions"=dword:00000001

    • Para sistemas operativos de 32 bits:[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v2.0.50727]"SystemDefaultTlsVersions"=dword:00000001

    NotaSe tiver definido a ServicePointManager.SecureProtocol no código ou através de ficheiros de configuração para um valor específico da aplicação ou utiliza as SslStream.AuthenticateAs* API para especificar uma enumeração de SslProtocols específica, a definição do registo comportamento não ocorre.

  • Além disso, foram adicionadas a enumeração de SslProtocolsExtensions que pode utilizar como uma opção para definir v TLS 1.2, v TLS 1.1, bem como as predefinições do sistema operativo para a propriedade ServicePointManager.SecurityProtocol quando o destino .NET versão do Framework 2.0 SP2. (Consulte a secção de Orientações de programação para obter as informações sobre como utilizar as extensões.) Nota Windows Vista SP2 e Windows Server 2008 SP2 não suporta versões de protocolo de Transport Layer Security (TLS) mais recentes do que 1.0. Aplicações geridas do .NET Framework 2.0 SP2 em execução no Windows Vista SP2 ou Windows Server 2008 SP2 não é possível utilizar TLS 1.2 ou TLS 1.1, mesmo se esses protocolos estiverem definidos na propriedade ServicePointManager.SecurityProtocol .

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 online A 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.

Orientações de programação

A definição das extensões para o novas estão nos seguintes ficheiros:

  • SecurityProtocolTypeExtensions.csnamespace System.Net{using System.Security.Authentication;public static class SecurityProtocolTypeExtensions{public const SecurityProtocolType Tls12 = (SecurityProtocolType)SslProtocolsExtensions.Tls12;public const SecurityProtocolType Tls11 = (SecurityProtocolType)SslProtocolsExtensions.Tls11;public const SecurityProtocolType SystemDefault = (SecurityProtocolType)0;}}

  • SslProtocolsExtensions.csnamespace System.Security.Authentication{public static class SslProtocolsExtensions{public const SslProtocols Tls12 = (SslProtocols)0x00000C00;public const SslProtocols Tls11 = (SslProtocols)0x00000300;}}

Para incluir o suporte para v TLS 1.2, incluir os ficheiros de origem no projecto e, em seguida, defina a versão do protocolo, utilizando os seguintes métodos:

  • Aplicações que utilizem APIs baseadas em ServicePointManager podem definir o protocolo utilizando o following:System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolTypeExtensions.Tls12;

  • Aplicações que utilizam a sobrecarga de AuthenticateAsClient (cadeia, X509CertificateCollection, SslProtocols, Boolean)SslStream podem definir o valor de SslProtocols como SslProtocolsExtensions.Tls12.

Se a definição do registo mencionada no primeiro parágrafo é definida e o valor de SslProtocols está definido na aplicação como SslProtocols.None, o comportamento predefinido de sistema que é escolhido depende da versão do Windows. Além disso, quando alterar o código da aplicação para activar o suporte para v 1.2 TLS com o .NET Framework 3.5 SP1, deve certificar-se de que endereço em computadores em que este patch não está implementado, as seguintes excepções:

  1. Se não estiver instalada a correcção, ServicePointManager-baseada em API (HTTP, FTP, SMTP) será throw "System.NotSupportedException: O protocolo de segurança pedido não é suportado" quando a aplicação chamar ServicePointManager.SecurityProtocol para definir o novo valor.

  2. Se não estiver instalada a correcção, SslStream-APIs com base será lançam excepções quando estes telefonam quer as APIs AuthenticateAs *:

    System. ArgumentException: O valor especificado não é válido na enumeração 'SslProtocolType'. O nome do parâmetro: sslProtocolType

NotaPara SslStream apenas, uma combinação de Tls12, Tls11 com qualquer um do existente de Tls, Ssl3, Ssl2 (por exemplo: Tls12 | Tls11 | TLS) irá diminuir silenciosamente para os protocolos existentes (por exemplo: Tls) num sistema sem a correcção. Irá ligar Tls sem eliminar a excepção.

Mais Informações

Para activar v TLS 1.1 ou v 1.2 como predefinições do sistema operativo, siga as instruções apresentadas em https://technet.microsoft.com/en-us/library/dn786418(v=ws.11).aspx#BKMK_SchannelTR_TLS12.Nota V 1.1 TLS e v 1.2 não estão disponíveis no Windows Vista ou Windows Server 2008.If tem de desactivar as predefinições do sistema operativo que estão definidas pela chave de registo que é mencionada na secção "Resolução" para aplicações específicas, pode fazê-lo adicionando a chave do registo seguinte:HKEY_LOCAL_MACHINE\SOFTWARE\[Wow6432Node\]Microsoft\.NETFramework\v2.0.50727\System.Net.ServicePointManager.SystemDefaultTlsVersions<<Full path of the .exe for the file>> DWORD 0C:\MyApp\MyApp.exe DWORD 0

Para mais informações sobre v TLS 1.2, consulte v introdução TLS 1.2. Depois de activar a chave de registo do .NET SystemDefaultTlsVersions , ocorre um comportamento diferente para cada versão do Windows, tal como é mostrado na seguinte tabela.

Versão do Windows

Cliente de SSL2

Servidor de SSL2

Cliente de SSL3

Servidor de SSL3

TLS 1.0 cliente

TLS 1.0 Server

TLS 1.1 cliente

TLS 1.1 servidor

TLS 1.2 cliente

TLS 1.2 servidor

Windows Vista SP2 e Windows Server 2008 SP2

Desactivar

No

No

No

No

No

N/A

N/A

N/A

N/A

Windows 7 SP1 e Windows Server 2008 R2 SP1

Desactivar

No

No

No

No

No

Desactivar

Desactivar

Desactivar

Desactivar

Windows Server 2012

Desactivar

Desactivar

No

No

No

No

No

No

No

No

Windows 8.1 e Windows Server 2012 R2

Desactivar

Desactivar

No

No

No

No

No

No

No

No

Windows 10

Desactivar

Desactivar

No

No

No

No

No

No

No

No

Windows 10 (1511)

Desactivar

Desactivar

No

No

No

No

No

No

No

No

Windows 10 (1607) e Windows Server de 2016

N/A

N/A

Desactivar

Desactivar

No

No

No

No

No

No

Precisa de mais ajuda?

Aumente os seus conhecimentos
Explore as formações
Seja o primeiro a obter novas funcionalidades
Aderir ao Microsoft insiders

As informações foram úteis?

Obrigado pelos seus comentários!

Obrigado pelo seu feedback! Parece que poderá ser benéfico reencaminhá-lo para um dos nossos agentes de suporte do Office.

×