ServicePointManager.SecurityProtocol Propiedad

Definición

Obtiene o establece el protocolo de seguridad usado por los objetos ServicePoint administrados por el 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; }
member this.SecurityProtocol : System.Net.SecurityProtocolType with get, set
Public Shared Property SecurityProtocol As SecurityProtocolType

Valor de propiedad

SecurityProtocolType

Uno de los valores definidos en la enumeración SecurityProtocolType.

Excepciones

El valor especificado para establecer la propiedad no es un valor de enumeración SecurityProtocolType válido.

Comentarios

Esta propiedad selecciona la versión del protocolo Capa de sockets seguros (SSL) o Seguridad de la capa de transporte (TLS) que se va a usar para las nuevas conexiones; Las conexiones existentes no se cambian.

A partir de .NET Framework 4.7, el valor predeterminado de esta propiedad es SecurityProtocolType.SystemDefault. Esto permite que las API de red de .NET Framework basadas SslStream en (como FTP, HTTP y SMTP) hereden los protocolos de seguridad predeterminados del sistema operativo o de las configuraciones personalizadas realizadas por un administrador del sistema. Para obtener información sobre qué protocolos SSL/TLS están habilitados de forma predeterminada en cada versión del sistema operativo Windows, consulte Protocolos en TLS/SSL (Schannel SSP).

Para las versiones de .NET Framework a través de .NET Framework 4.6.2, no se muestra ningún valor predeterminado para esta propiedad. El panorama de seguridad cambia constantemente y los protocolos predeterminados y los niveles de protección se cambian con el tiempo para evitar puntos débiles conocidos. Los valores predeterminados varían en función de la configuración individual de la máquina, el software instalado y las revisiones aplicadas.

El código nunca debe depender implícitamente del uso de un nivel de protección determinado o de la suposición de que se usa un nivel de seguridad determinado de forma predeterminada. Si la aplicación depende del uso de un nivel de seguridad concreto, debes especificar explícitamente ese nivel y, a continuación, comprobar que realmente se usa en la conexión establecida. Además, el código debe diseñarse para ser sólido frente a los cambios en los que se admiten los protocolos, ya que a menudo se realizan cambios con poca antelación para mitigar las amenazas emergentes.

.NET Framework 4.6 incluye una nueva característica de seguridad que bloquea algoritmos de cifrado y hash no seguros para las conexiones. Las aplicaciones que usan TLS/SSL a través de API como HttpClient, HttpWebRequest, FTPClient, SmtpClient, SslStream, etc. y que tienen como destino .NET Framework 4.6 obtienen el comportamiento más seguro de forma predeterminada.

Es posible que los desarrolladores quieran dejar de participar en este comportamiento para mantener la interoperabilidad con sus servicios SSL3 existentes O servicios TLS w/ RC4. En este artículo se explica cómo modificar el código para que el nuevo comportamiento esté deshabilitado.

Se aplica a

Consulte también