Qual é o protocolo de segurança padrão para comunicação com servidores que suportam até TLS 1.2? Vai .NETpor 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.0apenas 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 SSLv3no 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 ServicePointManagerclasse, .NET 4.0não vejo valores enumerados para TLS 1.0e 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 SSLv3o registro.
No entanto, decidi que tenho de atualizar todos os aplicativos .NET 4.5e 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 SSLv3e 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.0talvez 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".
