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; }
static member SecurityProtocol : System.Net.SecurityProtocolType with get, set
Public Shared Property SecurityProtocol As SecurityProtocolType

Valor de propiedad

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 usará para las nuevas conexiones; No se cambian las conexiones existentes.

A partir de .NET Framework 4.7, el valor predeterminado de esta propiedad es SecurityProtocolType.SystemDefault. Esto permite a las API de red de .NET Framework basadas SslStream en (como FTP, HTTP y SMTP) heredar los protocolos de seguridad predeterminados del sistema operativo o de cualquier configuración personalizada realizada 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 y niveles de protección predeterminados 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 los cambios a menudo se realizan con poco aviso previo 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 no participar en este comportamiento para mantener la interoperabilidad con sus servicios SSL3 existentes o con 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