ServicePointManager.SecurityProtocol Propriedade
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Obtém ou define o protocolo de segurança usado pelos objetos ServicePoint gerenciados pelo objeto ServicePointManager.
public:
static property System::Net::SecurityProtocolType SecurityProtocol { System::Net::SecurityProtocolType get(); void set(System::Net::SecurityProtocolType value); };
public static System.Net.SecurityProtocolType SecurityProtocol { get; set; }
static member SecurityProtocol : System.Net.SecurityProtocolType with get, set
Public Shared Property SecurityProtocol As SecurityProtocolType
Valor da propriedade
Um dos valores definidos na enumeração SecurityProtocolType.
Exceções
O valor especificado para definir a propriedade não é um valor de enumeração SecurityProtocolType válido.
Comentários
Essa propriedade seleciona a versão do protocolo SSL (Secure Sockets Layer) ou TLS (Transport Layer Security) a ser usada para novas conexões; As conexões existentes não são alteradas.
A partir do .NET Framework 4.7, o valor padrão dessa propriedade é SecurityProtocolType.SystemDefault. Isso permite que as APIs de rede do .NET Framework baseadas em SslStream (como FTP, HTTP e SMTP) herdem os protocolos de segurança padrão do sistema operacional ou de quaisquer configurações personalizadas executadas por um administrador do sistema. Para obter informações sobre quais protocolos SSL/TLS estão habilitados por padrão em cada versão do sistema operacional Windows, consulte Protocolos no TLS/SSL (SSP Schannel).
Para versões do .NET Framework por meio do .NET Framework 4.6.2, nenhum valor padrão é listado para essa propriedade. O cenário de segurança muda constantemente, e os protocolos padrão e os níveis de proteção são alterados ao longo do tempo para evitar fraquezas conhecidas. Os padrões variam dependendo da configuração individual do computador, do software instalado e dos patches aplicados.
Seu código nunca deve depender implicitamente do uso de um nível de proteção específico ou da suposição de que um determinado nível de segurança é usado por padrão. Se o seu aplicativo depende do uso de um determinado nível de segurança, você deve especificar explicitamente esse nível e, em seguida, verificar se ele está efetivamente em uso na conexão estabelecida. Além disso, seu código deve ser projetado para ser robusto diante das alterações às quais há suporte para protocolos, pois essas alterações geralmente são feitas com pouco aviso prévio para atenuar ameaças emergentes.
O .NET Framework 4.6 inclui um novo recurso de segurança que bloqueia algoritmos de codificação e hash inseguros para conexões. Os aplicativos que usam TLS/SSL por meio de APIs como HttpClient, HttpWebRequest, FTPClient, SmtpClient, SslStream etc. e direcionamento ao .NET Framework 4.6 obtêm o comportamento mais seguro por padrão.
Talvez os desenvolvedores desejem recusar esse comportamento para manter a interoperabilidade com seus serviços SSL3 ou TLS w/ RC4 existentes. Este artigo explica como modificar seu código para que o novo comportamento seja desabilitado.