Qual é o protocolo de segurança padrão para comunicação com servidores que suportam até TLS 1.2
? Vai .NET
por padrão, escolha a maior protocolo de segurança suportado no lado do servidor ou eu tenho que adicionar explicitamente esta linha de código:
System.Net.ServicePointManager.SecurityProtocol =
SecurityProtocolType.Tls | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12;
Existe uma maneira de alterar esse padrão, além de uma alteração de código?
Por fim, suporta .NET 4.0
apenas até TLS 1.0
? ou seja, eu tenho que atualizar os projetos do cliente para 4.5 para dar suporte TLS 1.2
.
Minha motivação é remover o suporte SSLv3
no lado do cliente, mesmo que o servidor o suporte (eu já tenho um script do PowerShell para desativá-lo no registro da máquina) e oferecer suporte ao protocolo TLS mais alto suportado pelo servidor.
Atualização:
Olhando para a ServicePointManager
classe, .NET 4.0
não vejo valores enumerados para TLS 1.0
e 1.1
. Nos dois .NET 4.0/4.5
, o padrão é SecurityProtocolType.Tls|SecurityProtocolType.Ssl3
. Esperamos que esse padrão não seja quebrado ao desativar SSLv3
o registro.
No entanto, decidi que tenho de atualizar todos os aplicativos .NET 4.5
e adicioná- SecurityProtocolType.Tls | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12;
los explicitamente de qualquer maneira a todos os códigos de inicialização de todos os aplicativos.
Isso fará solicitações de saída para várias APIs e serviços para não fazer o downgrade SSLv3
e deve selecionar o nível mais alto de TLS
.
Essa abordagem parece razoável ou exagerada? Eu tenho muitos aplicativos para atualizar e quero protegê-los no futuro, pois ouvi dizer que TLS 1.0
talvez sejam preteridos no futuro próximo por alguns fornecedores.
Como cliente que faz solicitações de saída para APIs, a desativação do SSL3 no registro tem efeito na estrutura .NET? Vejo por padrão que o TLS 1.1 e 1.2 não estão habilitados, precisamos habilitá-lo através do registro? RE http://support.microsoft.com/kb/245030 .
Após um pouco de investigação, acredito que as configurações do registro não terão efeito, pois se aplicam ao IIS (subchave do servidor) e navegadores (subchave do cliente).
Desculpe, este post se transformou em várias perguntas, seguido de respostas "talvez".